<?php
$this->load->view ( $left );
$this->load->view ( $header );
?>
<div class="row wrapper border-bottom white-bg page-heading">
    <div class="col-sm-12">
        <h2>Cusomer Payment/Balance Report</h2>
    </div>
    <!-- <div class="col-sm-8">
        <div class="title-action">
            <a href="<?php //echo site_url("bank/newbank");?>" class="btn btn-primary">
                <i class="fa fa-plus-square-o"></i>
                <span class="m-l-xs">Add Bank</span>
            </a>
        </div>
    </div> -->
</div>
<div class="wrapper wrapper-content">
<?php $state_array = array('-','Jammu & Kashmir','Himachal Pradesh','Punjab','Chandigarh','Uttarakhand','Haryana','Delhi','Rajasthan','Uttar Pradesh','Bihar','Sikkim','Arunachal Pradesh','Nagaland','Manipur','Mizoram','Tripura','Meghalaya','Assam','West Bengal','Jharkhand','Odisha','Chhattisgarh','Madhya Pradesh','Gujarat','Daman & Diu','Dadra & Nagar Haveli','Maharashtra','Karnataka','Goa','Lakshdweep','Kerala','Tamil Nadu','Pondicherry','Andaman & Nicobar Islands','Telengana','Andhra Pradesh','Other Territory');?>
    <div class="row text-center animated fadeInRightBig">
        <div class="ibox float-e-margins">
            <div class="ibox-content" style="padding: 15px 20px 15px 20px;">
                <div class="row">
                    <div class="col-lg-3">
                        <label class="col-lg-3 m-t-xs">Customer</label>
                        <div class="col-lg-9">
                            <select class="form-control" name="customer_id" id="choose_customer">
                                <option value="">Customer</option>
                                <?php if (count($customer_list) > 0) {
                                    foreach ($customer_list as $key => $value) {?>
                                        <option value="<?php echo $value->id;?>" <?php echo (!empty($invoice_id) && isset($invoice_data) && ($invoice_data['customer_id'] == $value->id)) ? 'selected="selected"' : '';?>><?php echo $value->name;?></option>
                                    <?php }
                                }?>
                            </select>
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <label class="col-lg-3 m-t-xs">From</label>
                        <div class="date_calender col-lg-9">
                            <div class="input-group date">
                                <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
                                <input type="text" name="start_date" id="start_date" class="form-control" value="<?php echo (!empty($start_date) ? date('d/m/Y',strtotime(str_replace('-', '/', $start_date))) : date('d/m/Y'));?>">
                            </div>
                        </div>
                    </div>
                    <div class="col-lg-3">
                        <label class="col-lg-3 m-t-xs">To</label>
                        <div class="date_calender col-lg-9">
                            <div class="input-group date">
                                <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
                                <input type="text" name="end_date" id="end_date" class="form-control" value="<?php echo (!empty($end_date) ? date('d/m/Y',strtotime(str_replace('-', '/', $end_date))) : date('d/m/Y'));?>">
                            </div>
                        </div>
                    </div>
                    <div class="col-lg-1"><button type="button" class="btn btn-info generate_report"><i class="fa fa-search"></i> Search</button></div>
                    <!-- <div class="col-lg-2"><button type="button" class="btn btn-info generate_excel"><i class="fa fa-file-excel-o"></i> Export Excel</button></div> -->
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-lg-6">
                <div class="ibox float-e-margins">
                    <div class="ibox-content" style="padding: 15px 20px 15px 20px;">
                        <div class="row">
                            <table class="table myTable">
                                <thead>
                                    <tr>
                                        <th>Invoice Date</th>
                                        <th>Invoice#</th>
                                        <th>Invoice Amount</th>
                                        <th>Total GST</th>
                                        <th>Amount</th>
                                    </tr>
                                </thead>
                                <tbody id="data_report_invoice">
                                    <?php 
                                    if (count($invoice_report) > 0) { 
                                        $payment_type = array(1 => 'Cash',2 => 'Check');
                                        foreach ($invoice_report as $key_invoice => $value_invoice) {
                                            if ($value_invoice->sale_invoice_id == $value_invoice->paid_invoice) {
                                                continue;
                                            } ?>
                                            <tr>
                                               <td><?php echo !empty($value_invoice->invoice_date) ? date('d/m/Y',strtotime(str_replace('-', '/', $value_invoice->invoice_date))) : '';?></td>
                                               <td><?php echo !empty($value_invoice->invoice_no) ? $value_invoice->invoice_no : '-';?></td>
                                               <td><?php echo !empty($value_invoice->sub_total) ? number_format((float)($value_invoice->sub_total), 2, '.', '')  : '';?></td>
                                               <td><?php echo !empty($value_invoice->total) ? number_format((float)($value_invoice->total - $value_invoice->sub_total), 2, '.', '') : '';?></td>
                                               <td><?php echo !empty($value_invoice->total) ? number_format((float)$value_invoice->total, 2, '.', '') : '';?></td>
                                            </tr>
                                    <?php }
                                    }?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-lg-6">
                <div class="ibox-content" style="padding: 15px 20px 15px 20px;">
                        <table class="table myTable">
                            <thead>
                                <tr>
                                    <th>Payment Date</th>
                                    <th>Diposit In</th>
                                    <th>Payment Type</th>
                                    <th>Referance</th>
                                    <th>Note</th>
                                    <th>Bank Charges</th>
                                    <th>Amount</th>
                                </tr>
                            </thead>
                            <tbody id="data_report_payment">
                                <?php 
                                if (count($payment_report) > 0) { 
                                    $payment_type = array(1 => 'Cash',2 => 'Check');
                                    foreach ($payment_report as $key_payment => $value_payment) {?>
                                        <tr>
                                           <td><?php echo !empty($value_payment->payment_date) ? date('d/m/Y',strtotime(str_replace('-', '/', $value_payment->payment_date))) : '';?></td>
                                           <td><?php echo !empty($value_payment->account_name) ? $value_payment->account_name  : '';?></td>
                                           <td><?php echo !empty($value_payment->payment_type) ? $payment_type[$value_payment->payment_type] : '';?></td>
                                           <td><?php echo !empty($value_payment->reference) ? $value_payment->reference : 'NA';?></td>
                                           <td><?php echo !empty($value_payment->note) ? $value_payment->note : '-';?></td>
                                           <td><?php echo !empty($value_payment->bank_charges) ? number_format((float)$value_payment->bank_charges, 2, '.', '') : '0.00';?></td>
                                           <td><?php echo !empty($value_payment->amount) ? number_format((float)$value_payment->amount, 2, '.', '') : '';?></td>
                                        </tr>
                                <?php }
                                }?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
        
    </div>
</div>
<?php $this->load->view($footer); ?>
<script type="text/javascript">
	$(document).ready(function(){
        var state = <?php echo json_encode($state_array);?>;
        //$('.myTable').DataTable();

        $('.date_calender .input-group.date').datepicker({
            todayBtn: "linked",
            keyboardNavigation: false,
            forceParse: false,
            calendarWeeks: true,
            language: 'en',
            autoclose: true
        });

        $('.generate_report').on('click',function(){ 
            var from = $('#start_date').val();
            var to = $('#end_date').val();
            var customer = $('#choose_customer').val();

            $.ajax({
                url: '<?php echo site_url('reports/customer_balance');?>',
                type: "POST",
                data:{
                    'from'          : from,
                    'to'            : to,
                    'customer'      : customer,
                    'data'          :'json'
                },
                success: function(response){ 
                    var data = JSON.parse(response);
                    var tr_invoice = '';
                    var tr_payment = '';
                    if (data.invoice_report.length > 0) {
                        data.invoice_report.map(function(value,index){
                            if (value.sale_invoice_id != value.paid_invoice) {
                                tr_invoice += '<tr>';
                                tr_invoice += '<td>'+value.invoice_date+'</td>';
                                tr_invoice += '<td>'+((value.invoice_no == null) ? '-' : value.invoice_no)+'</td>';
                                tr_invoice += '<td>'+value.sub_total+'</td>';
                                tr_invoice += '<td>'+(parseFloat(value.total) - parseFloat(value.sub_total))+'</td>';
                                tr_invoice += '</tr>';
                            }
                        });
                    }
                    if (data.payment_report.length > 0) {
                        data.payment_report.map(function(value,index){
                            tr_payment += '<tr>';
                            tr_payment += '<td>'+value.payment_date+'</td>';
                            tr_payment += '<td>'+value.account_name+'</td>';
                            tr_payment += '<td>'+value.amount+'</td>';
                            tr_payment += '<td>'+value.bank_charges+'</td>';
                            tr_payment += '<td>'+((value.payment_type == 1) ? 'Cash' : 'Cheque')+'</td>';
                            tr_payment += '<td>'+((value.reference == '') ? 'NA' : value.reference)+'</td>';
                            tr_payment += '<td>'+((value.note == '') ? '-' : value.note)+'</td>';
                            tr_payment += '</tr>';
                        });
                    }
                    $('#data_report_invoice').html('');
                    $('#data_report_invoice').html(tr_invoice);

                    $('#data_report_payment').html('');
                    $('#data_report_payment').html(tr_payment);
                }
            });
        });

        $('.generate_excel').on('click',function(){
            var from = $('#start_date').val();
            var to = $('#end_date').val();
            $.ajax({
                    url: '<?php echo site_url('reports/customer_balance');?>',
                    type: "POST",
                    data:{
                        'from'  : from,
                        'to'    : to,
                        'data' :'json',
                        'excel' :'1'
                    },
                    success: function(response){ 
                        var data = JSON.parse(response);
                        JSONToCSVConvertor(data, "B2B Report", true);
                    }
                });
        });

        function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
            //If JSONData is not an object then JSON.parse will parse the JSON string in an Object
            var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
            var CSV = '';    
            //Set Report title in first row or line
            //CSV += ReportTitle + '\r\n\n';
            //This condition will generate the Label/Header
            if (ShowLabel) {
                var row = "";
                //This loop will extract the label from 1st index of on array
                for (var index in arrData[0]) {
                    //Now convert each value to string and comma-seprated
                    row += index + ',';
                }
                row = row.slice(0, -1);
                //append Label row with line break
                CSV += row + '\r\n';
            }
            //1st loop is to extract each row
            for (var i = 0; i < arrData.length; i++) {
                var row = "";   
                //2nd loop will extract each column and convert it in string comma-seprated
                for (var index in arrData[i]) {
                    row += '"' + arrData[i][index] + '",';
                }
                row.slice(0, row.length - 1);
                //add a line break after each row
                CSV += row + '\r\n';
            }
            if (CSV == '') {        
                alert("Invalid data");
                return;
            }   
            //Generate a file name
            var fileName = "";
            //this will remove the blank-spaces from the title and replace it with an underscore
            fileName += ReportTitle.replace(/ /g,"_");   
            //Initialize file format you want csv or xls
            var uri = 'data:text/csv;charset=utf-8,' + escape(CSV);
            // Now the little tricky part.
            // you can use either>> window.open(uri);
            // but this will not work in some browsers
            // or you will not get the correct file extension    
            
            //this trick will generate a temp <a /> tag
            var link = document.createElement("a");    
            link.href = uri;
            
            //set the visibility hidden so it will not effect on your web-layout
            link.style = "visibility:hidden";
            link.download = fileName + ".csv";
            
            //this part will append the anchor tag and remove it after automatic click
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
	});
</script>