Advertisement
Guest User

Untitled

a guest
Nov 26th, 2016
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(document).ready(function() {
  2.  
  3.     var editor2 = new $.fn.dataTable.Editor( {
  4.         table: "#order-table",
  5.         idSrc:  'kod',
  6.         fields: [ {
  7.                 label: "Код:", name: "kod"
  8.             },
  9.                 {
  10.                 label: "Наименование:", name: "name"
  11.             },
  12.                 {
  13.                 label: "Производитель:", name: "proizvod"
  14.             },
  15.                 {
  16.                 label: "Срок годности", name: "srok"
  17.             },
  18.                 {
  19.                 label: "Количество", name: "kol"
  20.             },
  21.                 {
  22.                 label: "К заказу", name: 'zakaz'
  23.             },
  24.                 {
  25.                 label: "ЖНВЛП", name: "flag"
  26.             },
  27.                 {
  28.                 label: "Цена:", name: "price"
  29.             },
  30.                 {
  31.                 label: "Цена реестрная:", name: "rprice"
  32.             },
  33.                 {
  34.                 label: "Ставка НДС", name: "nds"
  35.             },
  36.                 {
  37.                 label: "Штрихкод", name: "ean13"
  38.             },
  39.                 {
  40.                 label: "Комментарий", name: "comment"
  41.             },
  42.                 {
  43.                 label: "Обновлено", name: "updated_at"
  44.             },
  45.         ],
  46.             ajax: function ( method, url, d, successCallback, errorCallback ) {
  47.                var output = { data: [] };
  48.  
  49.                 if ( d.action === 'edit' ) {
  50.                 var key = Object.keys(d.data)[0];
  51.                     var editedRow = d.data[Object.keys(d.data)[0]];
  52.                     editedRow.id = key;
  53.  
  54.                     output.data.push(editedRow);
  55.                 }
  56.  
  57.             successCallback(output);
  58.             }
  59.     } );
  60.  
  61.     var editor = new $.fn.dataTable.Editor( {
  62.             table: "#mytable",
  63.             idSrc:  'kod',
  64.             fields: [ {
  65.                     label: "Код:",
  66.                     name: "kod"
  67.                 },
  68.                     {
  69.                     label: "Наименование:",
  70.                     name: "name"
  71.                 },
  72.                     {
  73.                     label: "Производитель:",
  74.                     name: "proizvod"
  75.                 },
  76.                     {
  77.                     label: "Срок годности",
  78.                     name: "srok"
  79.                 },
  80.                     {
  81.                     label: "Количество",
  82.                     name: "kol"
  83.                 },
  84.                     {
  85.                     label: "К заказу",
  86.                     name: 'zakaz'
  87.                 },
  88.                     {
  89.                     label: "ЖНВЛП",
  90.                     name: "flag"
  91.                 },
  92.                     {
  93.                     label: "Цена:",
  94.                     name: "price"
  95.                 },
  96.                     {
  97.                     label: "Цена реестрная:",
  98.                     name: "rprice"
  99.                 },
  100.                     {
  101.                     label: "Ставка НДС",
  102.                     name: "nds"
  103.                 },
  104.                     {
  105.                     label: "Штрихкод",
  106.                     name: "ean13"
  107.                 },
  108.                     {
  109.                     label: "Комментарий",
  110.                     name: "comment"
  111.                 },
  112.                     {
  113.                     label: "Обновлено",
  114.                     name: "updated_at"
  115.                 },
  116.             ],
  117.             ajax: function ( method, url, d, successCallback, errorCallback ) {
  118.                var output = { data: [] };
  119.  
  120.                 if ( d.action === 'edit' ) {
  121.                 var key = Object.keys(d.data)[0];
  122.                     var editedRow = d.data[Object.keys(d.data)[0]];
  123.                     editedRow.id = key;
  124.  
  125.                     output.data.push(editedRow);
  126.                 }
  127.  
  128.                   $.ajax({
  129.                       type: "POST",
  130.                       url: "{% url 'order_api' %}",
  131.                       data: {'kod':editedRow.kod, 'name':editedRow.name, 'proizvod':editedRow.proizvod, 'srok':editedRow.srok, 'kol':editedRow.kol, 'flag':editedRow.flag, 'zakaz':editedRow.zakaz,
  132.                       'price':editedRow.price, 'rprice':editedRow.rprice, 'nds':editedRow.nds, 'comment':editedRow.comment, 'ean13':editedRow.ean13, 'updated_at':editedRow.updated_at },
  133.                       success: function(data) {
  134.                        var adata = {'kod': data.kod, 'name': data.name, 'proizvod': data.proizvod, 'srok': data.srok.toString(), 'kol': data.kol, 'zakaz': data.zakaz, 'flag': data.flag, 'price': data.price, 'rprice': data.rprice, 'nds':data.nds, 'ean13': data.ean13, 'comment': data.comment, 'updated_at': data.updated_at}
  135.                        orderTable.row.add(adata).draw();
  136.                       }
  137.                     });
  138.  
  139.             successCallback(output);
  140.             }
  141.         } );
  142.  
  143.  
  144.  
  145.     var orderTable = $('#order-table').DataTable({
  146.         dom: "Bfrtp",
  147.         domTable: "#order-table",
  148.         paging:   false,
  149.         columns: [
  150.             { data: "kod", orderable: 'False' },
  151.             { data: "name" },
  152.             { data: "proizvod" },
  153.             { data: "srok" },
  154.             { data: "kol" },
  155.             { data: "zakaz", className: 'editable' },
  156.             { data: "flag" },
  157.             { data: "price" },
  158.             { data: "rprice" },
  159.             { data: "nds" },
  160.             { data: "ean13" },
  161.             { data: "comment" },
  162.             { data: "updated_at"}
  163.         ],
  164.         language: {
  165.             "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Russian.json"
  166.         },
  167.         select: true,
  168.         buttons: [
  169.             { extend: "edit",   editor: editor2 },
  170.             { extend: "remove", editor: editor2 }
  171.         ]
  172.     });
  173.  
  174.  
  175.     $('#mytable').DataTable( {
  176.         dom: 'Bfrtip',
  177.         ajax: "{% url 'price_json' %}",
  178.         language: {
  179.             "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Russian.json"
  180.         },
  181.         ordering: true,
  182.         columns: [
  183.             { data: "kod", orderable: false },
  184.             { data: "name" },
  185.             { data: "proizvod" },
  186.             { data: "srok", orderable: false },
  187.             { data: "kol" },
  188.             { data: "zakaz", className: 'editable' },
  189.             { data: "flag", orderable: false },
  190.             { data: "price" },
  191.             { data: "rprice", orderable: false },
  192.             { data: "nds", orderable: false },
  193.             { data: "ean13", orderable: false },
  194.             { data: "comment", orderable: false },
  195.             { data: "updated_at"}
  196.         ],
  197.         select: {
  198.             style:    'os',
  199.             selector: 'td:first-child'
  200.         },
  201.  
  202.         buttons: [
  203.             ]
  204.  
  205.     } );
  206.  
  207.     // Activate an inline edit on click of a table cell
  208.     $('#mytable').on(  'click', 'tbody td.editable', function (e) {
  209.         editor.inline( this, {
  210.             submit: 'allIfChanged',
  211.         } );
  212.     } );
  213.  
  214.     $('#save_order').on('click', function () {
  215.         var table = $('#order-table').DataTable();
  216.         var order = {
  217.             kod_klienta: "{{ user.username }}",
  218.             goods: []
  219.         };
  220.  
  221.         table.data().each( function (d) {
  222.             order.goods.push({
  223.             "kod": d.kod,
  224.             "name": d.name,
  225.             "proizvod": d.proizvod,
  226.             "srok": d.srok,
  227.             "kol": d.kol,
  228.             "zakaz": d.zakaz,
  229.             "flag": d.flag,
  230.             "price": d.price,
  231.             "rprice": d.rprice,
  232.             "nds": d.nds,
  233.             "comment": d.comment,
  234.             "ean13": d.ean13,
  235.             "updated_at": d.updated_at
  236.             })
  237.         } );
  238.  
  239.         $.ajax({
  240.            type: "POST",
  241.            data: JSON.stringify({ massiv: order }),
  242.            contentType: "application/json; charset=utf-8",
  243.            dataType: "json",
  244.            url: "{% url 'order_create_ajax' %}",
  245.            success: function(data){
  246.              alert(data['msg']);
  247.            }
  248.         });
  249.  
  250.  
  251.         function csrfSafeMethod(method) {
  252.             // these HTTP methods do not require CSRF protection
  253.             return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
  254.         }
  255.         $.ajaxSetup({
  256.             beforeSend: function(xhr, settings) {
  257.                 if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
  258.                     xhr.setRequestHeader("X-CSRFToken", csrftoken);
  259.                 }
  260.             }
  261.         });
  262.  
  263.     });
  264.  
  265. } );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement