<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="selectionRow">
       <input class="btn btn-primary btn-sm" type=button  onclick="showAllRows(); return false;" value="Expand All Rows" > 
    </div>
    
 </div> 
    <div class="row row-padding">
            <div class="col-12">
                <div class="card">
                    <div class="card-body">
                        <table id="salespersonBillTo" class="" width="100%">
                            <thead style="display: none"></thead>
                        </table>
                    </div>
    
                </div>
            </div>
    </div>
    
  </body>
</html>
 
var salespersonBillTo_childTable1;
var salespersonBillTo_childTable2;
//var salespersonBillTo_childTableForm3;
var salespersonBillTo_childTable3;
var salespersonBillTo_editor; // use a global for the submit and return data rendering
$(document).ready(function() {  
    // Table search
     $("#BR_CBT_tableSearch").on("keyup", function() {
            var value = $(this).val().toLowerCase();
            $("#salespersonBillTo tr").filter(function() {
              $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
            });
      });
      
    //Budget numeric value test with 1 decimal 
    //Supports Copy+Paste, Drag+Drop, keyboard shortcuts, context menu operations, non-typeable keys, the caret position, different keyboard layouts
    (function($) {
          $.fn.inputFilter = function(inputFilter) {
            return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {
              if (inputFilter(this.value)) {
                this.oldValue = this.value;
                this.oldSelectionStart = this.selectionStart;
                this.oldSelectionEnd = this.selectionEnd;
              } else if (this.hasOwnProperty("oldValue")) {
                this.value = this.oldValue;
                this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
              } else {
                this.value = "";
              }
            });
          };
        }(jQuery));
    $("#BR_CBT_setBudgetWithSameValueModalBudgetValue").inputFilter(function(value) { return /^-?\d*[.,]?\d{0,1}$/.test(value);  });
        //*****************************************************
        // Show Salesperson Level 1 Rows  (Customer Bill To)
        //*****************************************************
        function BR_CBT_format1(BR_CBT_rowData1) {
         
            var salespersonBillTo_childTable1 = '<table id="salespersonBillTo_customerRows_'+ BR_CBT_rowData1.returnedSalespersonGroupNumber +'" class="display nowrap" width="100%">' +
                '<thead style="display:none"></thead >' +
                '</table>';
             return $(salespersonBillTo_childTable1).toArray();
       }
        //*****************************************************
        // Show Customer Level 2 Row (Products)
        //***************************************************** 
         function BR_CBT_format2(BR_CBT_rowData2) {
        
            var salespersonBillTo_childTable2 = '<table id="salespersonBillTo_productRows_' + BR_CBT_rowData2.customerNumber + '" class="display compact nowrap  "width="100%">' +
                '<thead style="display:none"></thead >' +
                '</table>';
             return $(salespersonBillTo_childTable2).toArray();
       }
        //***********************************************************************
        // Show Budget Form and Sales and Budget Level 3 Rows (Budget Details)
        //***********************************************************************   
        function BR_CBT_format3(BR_CBT_rowData3) { 
            var salespersonBillTo_childTable3 = 
                '<div class="budgetDetailRowForm col-12 py-3">' +
                       '<div class="col-12 flex budgetFormRow">' +
                           '<div class="budgetDetailFormRow-1-format-1"><label>Location:</label> <select id="BR_CBT_locationSelection_' + BR_CBT_rowData3.productNumber +'" name="BR_CBT_locationSelection_' + BR_CBT_rowData3.productNumber +'" onchange="BR_CBT_changeLocation(this.value, '+ BR_CBT_rowData3.returnedSalespersonGroupNumber +',  '+ BR_CBT_rowData3.customerNumber +', \''+ BR_CBT_rowData3.productNumber +'\')"></select></div>' + 
            
                           '<div class="budgetDetailFormRow-1-format-2"><label>Customer Number:</label><span>  ' + BR_CBT_rowData3.customerNumber +' </span></div>' +
                           '<div class="budgetDetailFormRow-1-format-3"><label>Ship Code:</label><span>  ' + BR_CBT_rowData3.shipToCode +' </span></div>' +
                           '<div class="budgetDetailFormRow-1-format-4"><label>Ship Message:</label><span>  ' + BR_CBT_rowData3.shipMessage +' </span></div>' +
                             
                           '<div class="budgetDetailFormRow-1-format-5"><label>Product Number:</label><span>  ' + BR_CBT_rowData3.productNumber +' </span></div>' +
                           '<div class="budgetDetailFormRow-1-format-6"><label>Product Name:</label><span>  ' + BR_CBT_rowData3.productDescription +' </span></div>' +
                        '</div>' +    
                        //Bill To and Ship To Information
                        '<div class="flex pt-3 pb-1">' +
                         
                            '<div class="col-3"><label><u>Bill To</u></label></div>' +
        
                            '<div class="col-3"><label><u>Ship To</u></label></div>' +
                        '</div>' +   
                                
                        '<div class="flex budgetFormRow"> ' +
                     
                            '<div class="col-3"><label>Name:</label><span>  ' + BR_CBT_rowData3.customerBillToName +' </span></div>' +
          
                            '<div class="col-3"><label>Name:</label><span>  ' + BR_CBT_rowData3.customerShipToName +' </span></div>' +
      
                        '</div>' +
                        '<div class="flex budgetFormRow">' +
      
                            '<div class="col-3"><label>Address 1:</label><span>  ' + BR_CBT_rowData3.customerBillToAddress1 +' </span></div>' +
      
                            '<div class="col-3"><label>Address 1:</label><span>  ' + BR_CBT_rowData3.customerShipToAddress1 +' </span></div>' +
       
                        '</div>' +
                        '<div class="flex budgetFormRow">' +
                     
                            '<div class="col-3"><label>Address 2:</label><span>  ' + BR_CBT_rowData3.customerBillToAddress2 +' </span></div>' +
                            '<div class="col-3"><label>Address 2:</label><span>  ' + BR_CBT_rowData3.customerShipToAddress2 +' </span></div>' +
                        '</div>' + 
                        
                        '<div class="flex budgetFormRow">' +
                         
                            '<div class="col-3"><label>Address 3:</label><span>  ' + BR_CBT_rowData3.customerBillToAddress3 +' </span></div>' +
                            '<div class="col-3"><label>Address 3:</label><span>  ' + BR_CBT_rowData3.customerShipToAddress3 +' </span></div>' +
                    '</div>' +  
                        
                '</div>' + 
                // Last Year Sales table
                 '<table id="salespersonBillTo_salesYearTable" class="center">' +
                    '<div class="col-5 poundsExpression text-primary" id="poundsExpression"><p>All pounds are expressed in thousands</p></div>' +
                    
                   '<thead>'+
                      '<tr><th></th><th>January</th><th>February</th><th>March</th><th>April</th><th>May</th><th>June</th><th>July</th><th>August</th><th>September</th><th>October</th><th>November</th><th>December</th><th>Totals</th><th></th></tr>'+
                    '</thead>' +
                   '<tbody>'+
                        '<tr><td class="px-2"><b>Last Year Sales</b></td><td>' + parseFloat(BR_CBT_rowData3.lastYear_JanuarySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_FebruarySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_MarchSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_AprilSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_MaySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_JuneSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_JulySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_AugustSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_SeptemberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_OctoberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_NovemberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_DecemberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.lastYear_TotalSales).toFixed(1) +'</td><td></td></tr>' +
                        '<tr><td class="px-2"><b>This Year Sales</b></td><td>' + parseFloat(BR_CBT_rowData3.thisYear_JanuarySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_FebruarySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_MarchSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_AprilSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_MaySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_JuneSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_JulySales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_AugustSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_SeptemberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_OctoberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_NovemberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_DecemberSales).toFixed(1) +'</td><td>' + parseFloat(BR_CBT_rowData3.thisYear_TotalSales).toFixed(1) +'</td><td></td></tr>'+ 
                   '</tbody>' +
                   
                 '</table>' +
        
                // Budget table
                '<table id="salespersonBillTo_budgetRows_' + BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '"class="budgetDetailTable budgetDetailRow">' +
                '</table>' +
                '<div class="py-2"><button id="BR_CBT_setBudgetWithSameValue_'+ BR_CBT_rowData3.locationCode + BR_CBT_rowData3.returnedSalespersonGroupNumber + BR_CBT_rowData3.customerNumber + BR_CBT_rowData3.productNumber + '" class="btn btn-secondary btn-xs" onclick="BR_CBT_showSetBudgetWithSameValueModal(\''+ BR_CBT_rowData3.locationCode +'\', \''+ BR_CBT_rowData3.returnedSalespersonGroupNumber +'\', \''+ BR_CBT_rowData3.customerNumber +'\', \''+ BR_CBT_rowData3.productNumber +'\' )">Enter same value for each month</button></div >' ;
        // console.log($(salespersonBillTo_childTable3).toArray())
         return $(salespersonBillTo_childTable3).toArray();
           
        }
        //**************************************************************************
        //  Main table (Salesperson)
        //************************************************************************** 
        var table = $('#salespersonBillTo').DataTable({
             //Store budget status total number (used to reset button badge totals when budget is marked complteted)
            rowCallback: function(row, data, index){ 
             salespersonRowBudgetCounts.push({id:data.returnedSalespersonGroupNumber, open:data.openBudget, closed:data.completedBudget});
             },
        
           // dom: 'ft',
             language: {search: "Table Search: "},
            dom: 't',
            ajax: {
                   type: 'POST',
                   url: 'BudgetReporting/getBudgetReporting_SalepersonData.php',
                   data: {salespersonGroupingNumber: salespersonGroupingNumber},
            },
            pageLength:100,
            columns: [
                {
                    className: 'BR_CBT_detail-level-control_1',
                    orderable: false,
                    data: null,
                    defaultContent: '',
                },
                
                { data: "salespersonName", orderable: false },
                 {
                     data: null,
                     searchable: false,
                     orderable: false,
                     render: function ( data, type, row ) {
                         
                         if (row.openBudget != 0) {
                             return '<td><button id="BR_CBT_SalespersonOpenBudgetButton">Open '+ row.openBudget + '</button></td>';
                          
                             }else{
                                     return '<td><button id="budgetCompletedBadge">Budget Completed</button></td>';
                              
                            }
                       }
                  },  
                  {
                      data: null,
                      searchable: false,
                      orderable: false,
                      render: function ( data, type, row ) {
    
                              return '<td><button id="BR_CBT_SalespersonCompletedBudgetButton">Completed '+ row.completedBudget + '</button></td>';
                          
                      }
                   },  
                   {
                       data: null,
                       searchable: false,
                       orderable: false,
                       render: function ( data, type, row ) {
                               return '<td><button id="BR_CBT_SalespersonTotalBudgetButton">Total '+ row.totalBudget + '</button></td>';
                        }
                    },
                { data: 'returnedSalespersonGroupNumber', visible: false, orderable: false,}
            ],
            
            // Set rows IDs
             rowId: function(a) {
              return 'salespersonBillTo_' + a.returnedSalespersonGroupNumber;
            },
            
              columnDefs: [
//                           { targets: [0], className: 'level-1-control-row-format-0'},
                             { targets: [1], className: 'level-1-control-row-format-1' },
                             { targets: [2], className: 'level-1-control-row-format-2' },
                             { targets: [3], className: 'level-1-control-row-format-3' },
                             { targets: [4], className: 'level-1-control-row-format-4' },
                         
                           ],
        });
      //***********************************************************************************
      // Event listener for opening and closing 1st level child details (Customer Bill To)
      //***********************************************************************************
        $('#salespersonBillTo tbody').on('click', 'td.BR_CBT_detail-level-control_1', function () {
    
            var tr = $(this).closest('tr');
            var row = table.row(tr);
            var BR_CBT_rowData1 = row.data();  
            if (row.child.isShown()) {
                // This row is already open - close it
                row.child.hide();
                tr.removeClass('shown');
                // Destroy the Child Datatable
               $('#salespersonBillTo_customerRows_' + BR_CBT_rowData1.returnedSalespersonGroupNumber).DataTable().destroy();
            }
            else {
                // Open this row 
             
                row.child(BR_CBT_format1(BR_CBT_rowData1)).show();
  
               // salespersonGroupingNumber = BR_CBT_rowData1.salespersonGroupingNumber;
                   
                //use salespersonGroupingNumber from returned rows
                salespersonBillTo_childTable1 = $('#salespersonBillTo_customerRows_' + BR_CBT_rowData1.returnedSalespersonGroupNumber).DataTable({
                 //Store budget status total number (used to reset button badge totals when budget is marked complteted)
                    rowCallback: function(row, data, index){   
                            customerRowBudgetCounts.push({id:data.customerNumber, open:data.openBudget, closed:data.completedBudget});
                         },
                                 
                    dom: 't',
                    ajax: { 
                            type: 'POST',
                            url: 'BudgetReporting/getBudgetReporting_CustomerBillToData.php',
                            data: {salespersonGroupingNumber: BR_CBT_rowData1.returnedSalespersonGroupNumber},
                    },
                    pageLength:100,
                    columns: [
                        {
                            className: 'BR_CBT_detail-level-control_2',
                            orderable: false,
                            data: null,
                            defaultContent: ''
                         },
                        { 
                            data: 'customer'
                        },
                        {
                            data: null,
                            searchable: false,
                            orderable: false,
                            render: function ( data, type, row ) {
                                if (row.openBudget != 0) {
                                     return '<td><button id="BR_CBT_customerOpenBudgetButton">Open '+ row.openBudget + '</button></td>';
                                      
                                       }else{
                                         return '<td><button id="budgetCompletedBadge">Budget Completed</button></td>';
                                          
                                      }
                              }
                         },  
                         {
                             data: null,
                             searchable: false,
                             orderable: false,
                             render: function ( data, type, row ) {
                                  
                                      return '<td><button id="BR_CBT_customerCompletedBudgetButton">Completed '+ row.completedBudget + '</button></td>';
                                }
                          },  
                          {
                              data: null,
                              searchable: false,
                              orderable: false,
                              render: function ( data, type, row ) {
                                      return '<td><button id="BR_CBT_customerTotalBudgetButton">Total '+ row.totalBudget + '</button></td>';
                                }
                           },
                        { data: 'customerNumber',  visible: false },
                        { data: 'returnedSalespersonGroupNumber', visible: false }],
                        // Set rows IDs
                        rowId: function(a) {
                          return 'salespersonBillTo_' + a.customerNumber;
                        },
                        
                     columnDefs: [
                        // { targets: [0],  className: 'level-2-control-row-format-0'},
                         { targets: [1], className: 'level-2-control-row-format-1' },
                         { targets: [2], className: 'level-2-control-row-format-2' },
                         { targets: [3], className: 'level-2-control-row-format-3' },
                         { targets: [4], className: 'level-2-control-row-format-4' },
                        
                    ],
                    select: false,
                });
                tr.addClass('shown');
            }
        });
        //**************************************************************************
        // Event listener for opening and closing 2nd level child details (Products)
        //**************************************************************************
        // 
        $('#salespersonBillTo tbody').on('click', 'td.BR_CBT_detail-level-control_2', function () { 
            var tr = $(this).closest('tr');
            
            var row = salespersonBillTo_childTable1.row(tr);
            var BR_CBT_rowData2 = row.data();
             
            if (row.child.isShown()) { 
                // This row is already open - close it
                row.child.hide();
                tr.removeClass('shown');
                // Destroy the Child Datatable
                $('#salespersonBillTo_productRows_' + BR_CBT_rowData2.customerNumber).DataTable().destroy();
            }
            else {
                // Open this row
                row.child(BR_CBT_format2(BR_CBT_rowData2)).show();
 
                salespersonBillTo_childTable2 = $('#salespersonBillTo_productRows_' + BR_CBT_rowData2.customerNumber).DataTable({
                    rowCallback: function(row, data, index){ 
                         if ( data.status =='Open'){
                            $(row).find('td:eq(1)').css('font-weight', 'bold'); // text bold
                            $(row).find('td:eq(1)').css('color', '#dc3545'); // text color
                         }else{
                            $(row).find('td:eq(1)').css('font-weight', 'bold'); // text bold
                            $(row).find('td:eq(1)').css('color', '#28a745'); // text color
                          } 
                     },
                    dom: "t",
                    ajax: {
                            type: 'POST',
                            url: 'BudgetReporting/getBudgetReporting_CustomerProductsData.php',
                            data: {salespersonGroupingNumber: BR_CBT_rowData2.returnedSalespersonGroupNumber,
                                   customerNumber: BR_CBT_rowData2.customerNumber
                                  },
                    },
                    pageLength:100,
                  //   rowId: 'salespersonBillTo_productNumber',
                    
                    columns: [
                        {
                            className: 'BR_CBT_detail-level-control_3',
                            orderable: false,
                            data: null,
                            defaultContent: '',
                          },
                            { data: 'status',
                              id: 'status' },
                            { data: 'productNumber'},
                            { data: 'productDescription' },
                            { data: 'locationCode' },
                            //Columns used for budget row data information
                            { data: 'shipToCode', visible: false },
                            { data: 'shipMessage', visible: false },    
                            { data: 'customerBillToName', visible: false },
                            { data: 'customerBillToAddress1', visible: false },
                            { data: 'customerBillToAddress2', visible: false },
                            { data: 'customerBillToAddress3', visible: false },
                            { data: 'customerShipToName', visible: false },
                            { data: 'customerShipToAddress1', visible: false },
                            { data: 'customerShipToAddress2', visible: false },
                            { data: 'customerShipToAddress3', visible: false } , 
                             
                            { data: 'lastYear_JanuarySales', visible: false },
                            { data: 'lastYear_FebruarySales', visible: false },
                            { data: 'lastYear_MarchSales', visible: false },
                            { data: 'lastYear_AprilSales', visible: false },
                            { data: 'lastYear_MaySales', visible: false },
                            { data: 'lastYear_JuneSales', visible: false },
                            { data: 'lastYear_JulySales', visible: false },
                            { data: 'lastYear_AugustSales', visible: false },
                            { data: 'lastYear_SeptemberSales', visible: false },
                            { data: 'lastYear_OctoberSales', visible: false },
                            { data: 'lastYear_NovemberSales', visible: false },
                            { data: 'lastYear_DecemberSales', visible: false },
                            { data: 'lastYear_TotalSales', visible: false },
                            { data: 'thisYear_JanuarySales', visible: false },
                            { data: 'thisYear_FebruarySales', visible: false },
                            { data: 'thisYear_MarchSales', visible: false },
                            { data: 'thisYear_AprilSales', visible: false },
                            { data: 'thisYear_MaySales', visible: false },
                            { data: 'thisYear_JuneSales', visible: false },
                            { data: 'thisYear_JulySales', visible: false },
                            { data: 'thisYear_AugustSales', visible: false },
                            { data: 'thisYear_SeptemberSales', visible: false },
                            { data: 'thisYear_OctoberSales', visible: false },
                            { data: 'thisYear_NovemberSales', visible: false },
                            { data: 'thisYear_DecemberSales', visible: false }, 
                            { data: 'thisYear_TotalSales', visible: false },
                            { data: 'returnedSalespersonGroupNumber', visible: false }
                ],
                // Set rows IDs
                rowId: function(a) {
                  return 'salespersonBillTo_' + a.productNumber;
                },
                    columnDefs: [
                                 {
                                   targets: [1],
                                   className: 'level-3-control-row-format-1',
                                   createdCell:  function (td, cellData, rowData, row, col) {
                                           $(td).attr('name', 'status'); 
                                        }
                                 },
                                 {
                                   targets: [2],
                                   className: 'level-3-control-row-format-2'
                                 },
                                 {
                                   targets: [3],
                                   className: 'level-3-control-row-format-3'
                                 },
                                 {
                                   targets: [4],
                                   className: 'level-3-control-row-format-4'
                                 },
                    ],
                    
                    select: false,
                });
                tr.addClass('shown');
            }
        });
        //********************************************************************************
        // Event listener for opening and closing 3nd level child details (Budget Details)
        //*********************************************************************************
        $('#salespersonBillTo tbody').on('click', 'td.BR_CBT_detail-level-control_3', function () {
      
             var tr = $(this).closest('tr');
         
             var row = salespersonBillTo_childTable2.row(tr);
             
             var BR_CBT_rowData3 = row.data();
                 
         if (row.child.isShown()) {
             // This row is already open - close it
             row.child.hide();
             tr.removeClass('shown');
             // Destroy the Child Datatable
             $('#salespersonBillTo_budgetRows_' + BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber).DataTable().destroy();
         }
         else {
             // Open this row
             row.child(BR_CBT_format3(BR_CBT_rowData3)).show();
             
             //Set location select with array data found in HomePage.js and built in HomePage.js
             $("#BR_CBT_locationSelection_" + BR_CBT_rowData3.productNumber).html(locationSelectionArrayData);
            //Set current location code for updating existing location in Budget record (global variable found in HomePage.php)
             currentLocationCode = BR_CBT_rowData3.locationCode;
             //Set value of location select with current value.
             $("#BR_CBT_locationSelection_" + BR_CBT_rowData3.productNumber).val(BR_CBT_rowData3.locationCode);
      
             salespersonBillTo_editor = new $.fn.dataTable.Editor( {
             ajax: {
                     type: 'POST',
                     url: 'BudgetReporting/ssp_BudgetData.php',
                     data: { locationCode:BR_CBT_rowData3.locationCode,  
                             salespersonGroupingNumber: BR_CBT_rowData3.returnedSalespersonGroupNumber,
                             customerNumber: BR_CBT_rowData3.customerNumber,
                             productNumber: BR_CBT_rowData3.productNumber
                      },
                  },
                 table: '#salespersonBillTo_budgetRows_' + BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber,
          
                 formOptions: { inline: { onBlur: 'submit' } },
                 fields: [
                            {
                            //  label: 'January Budget:',
                            name:  'BD$01',
                            }, 
                            {name:  'BD$02'},
                            {name:  'BD$03'},
                            {name:  'BD$04'},
                            {name:  'BD$05'},
                            {name:  'BD$06'},
                            {name:  'BD$07'},
                            {name:  'BD$08'},
                            {name:  'BD$09'},
                            {name:  'BD$10'},
                            {name:  'BD$11'},
                            {name:  'BD$12'},
                          ]
             } );
      
            // Set inline cell as selected to immediately start typing in new value          
             salespersonBillTo_editor.on('open', function () { 
                $('div.DTE input')[0].select();
            });
             
             salespersonBillTo_childTable3 = $('#salespersonBillTo_budgetRows_' + BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber).DataTable({
              createdRow: function ( row, data, index ) {
                      $('td', row).eq(1).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_janBudget');
                      $('td', row).eq(2).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_febBudget');
                      $('td', row).eq(3).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_marBudget');
                      $('td', row).eq(4).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_aprBudget');
                      $('td', row).eq(5).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_mayBudget');
                      $('td', row).eq(6).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_juneBudget');
                      $('td', row).eq(7).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_julyBudget');
                      $('td', row).eq(8).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_augBudget');
                      $('td', row).eq(9).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_septBudget');
                      $('td', row).eq(10).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_octBudget');
                      $('td', row).eq(11).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_novBudget');
                      $('td', row).eq(12).attr('id', BR_CBT_rowData3.locationCode + '-' + BR_CBT_rowData3.customerNumber + '-' + BR_CBT_rowData3.productNumber + '_decBudget');
                   },
                  
                 dom: 't',
                 ajax: {
                        type: 'POST',
                        url: 'BudgetReporting/ssp_BudgetData.php',
                        data: { locationCode:BR_CBT_rowData3.locationCode,  
                                salespersonGroupingNumber: BR_CBT_rowData3.returnedSalespersonGroupNumber,
                                customerNumber: BR_CBT_rowData3.customerNumber,
                                productNumber: BR_CBT_rowData3.productNumber
                         },
                    },
                 autoWidth: false,
                 serverSide: true,
                 order: [ 1, 'asc' ],
                 keys: {
                        columns: ':not(:first-child, .markCompleteButton)',
                        keys: [ 9 ],
                        editor: salespersonBillTo_editor,
                        editOnFocus: true
                 },
                 columns: [
                             {
                                 data: null,
                                 searchable: false,
                                 orderable: false,
                                 className: 'budgetRowTitle',
                                 render: function ( data, type, row ) {
                                      return '<td><b>Next Year Budget</b></td>';
                                   }
                              },  
                             { data: 'BD$01', "width": "7%" },
                             { data: 'BD$02', "width": "7%" },
                             { data: 'BD$03', "width": "7%" },
                             { data: 'BD$04', "width": "7%" },
                             { data: 'BD$05', "width": "7%" },
                             { data: 'BD$06', "width": "7%" },
                             { data: 'BD$07', "width": "7%" },
                             { data: 'BD$08', "width": "7%" },
                             { data: 'BD$09', "width": "7%" },
                             { data: 'BD$10', "width": "7%" },
                             { data: 'BD$11', "width": "7%" },
                             { data: 'BD$12', "width": "7%" },
                             
                             {
                                 data: null,
                                 className: 'totalBudgetTD',
                                 render: function(data, type, full, row ) {
                                     var sum = 0;
                                     for (var i=1 ; i<13 ; i++) {
                                       sum += parseFloat(full['BD$' + (i<10 ? '0' : '') + i]);
                                       sum = Math.round(sum * 10) / 10;
                                     }
                                 
                                     return '<span id="salespersonBillTo_totalBudgetSpan">'+sum+'</span>';
                                 }
                             },
                             // ** Mark Completed Button
                             {
                                 data: null,
                                 searchable: false,
                                 orderable: false,
                                 className: 'markCompleteButton',
                                 render: function ( data, type, full, meta ) {
                                     
                                      if( full.SYNCFL == 'N'){ 
                                            return '<button id="BR_CBT_markBudgetRecordCompletedButon_'+ full.PKLOC + full.PKGRP + full.PKCUST + full.PKPROD +'"class="btn btn-primary btn-xs" onclick="BR_CBT_showMarkBudgetRecordCompletedModal(\''+ full.PKLOC +'\', \''+ full.PKGRP +'\', \''+ full.PKCUST +'\', \''+ full.PKPROD +'\' )">Mark Completed</button>';
                                      }else{
                                           return '<button id="BR_CBT_markBudgetRecordCompletedButon_'+ full.PKLOC + full.PKGRP + full.PKCUST + full.PKPROD +'"class="unstyled-button" )">Mark Completed</button>';
                                      }
                                  }
                              },  
                 ],                                                                                                              
           
                 columnDefs: [ 
                                { targets: "_all" , className: "text-center" },
                                //{ targets: 13, className: "text-center" },
                                { targets: "_all", orderable: false}
                            ],
                 
                 select: {
                     style:    'os',
                     selector: 'td:first-child'
                 },
             } );
             tr.addClass('shown');
        }//END - else 
     });  
          
    } );//END $(document).ready(function() 
    
    function showAllRows(){
            $('#salespersonBillTo td.BR_CBT_detail-level-control_1').trigger('click');
            $('#salespersonBillTo td.BR_CBT_detail-level-control_2').trigger('click');
    }
2 warnings
Line 197: Use '!==' to compare with '0'.
Line 305: Use '!==' to compare with '0'.
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers