@extends('layouts/contentLayoutMaster')

@section('title', 'Transactions')

@section('vendor-style')
    <link rel="stylesheet" href="{{ asset(mix('vendors/css/extensions/toastr.min.css')) }}">
@endsection
@section('page-style')
    <link rel="stylesheet" href="{{ asset(mix('css/base/plugins/extensions/ext-component-sliders.css')) }}">
    <link rel="stylesheet" href="{{ asset(mix('css/base/plugins/extensions/ext-component-toastr.css')) }}">
@endsection
@section('content')
    <div class="card">
        <div class="card-header">
            <div class="row">
                <div class="col-xl-4 float-left">
                   <!-- <button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#add-vendor-payment">Add Vendor Payment</button>-->
                </div>
                <div class="col-xl-4 float-right">
                    <h4>Vendor Balance: <span id="nvendorBalance"> </span></h4>
                </div>
                <div class="col-xl-4 float-right">
                    <h4>Total Transaction: <span id="ntotalDebit"></span></h4>
                </div>
            </div>
        </div>
        <div class="card-body">
            <hr>
            <div class="row">
                <div class="col-md-1">
                    <select name="per_page" id="per-page" class="form-control" onchange="normalVendorCreditDebitList('<?= $token ?>', 1,25,'GOLD');">
                        <option value="<?= PAGINATE_LIMIT ?>"><?= PAGINATE_LIMIT ?></option>
                        <option value="50">50</option>
                        <option value="100">100</option>
                        <option value="250">250</option>
                        <option value="500">500</option>
                    </select>
                </div>
                <div class="col-md-3"></div>
                <div class="col-md-2">
                    <select class="form-control nvendor-dropdown" id="nvendor-uuid" onchange="normalVendorCreditDebitList('<?= $token ?>', 1,25,'GOLD');"><option value="">Select Vendor</option></select>
                </div>
                <div class="col-md-2">
                    <input type="date" class="form-control" name="from_date" id="from_date">
                </div>
                <div class="col-md-2">
                    <input type="date" class="form-control" name="till_date" id="till_date">
                </div>
                <div class="col-md-1">
                    <button class="btn btn-success btn-block" onclick="normalVendorCreditDebitList('<?= $token ?>', 1,25,'GOLD');">Search</button>
                </div>
                <div class="col-md-1">
                    <button class="btn btn-warning btn-block">Report</button>
                </div>
            </div>
            <br>
            
            <!--<div class="row">
                <div class="col-md-6">
                    <h4>Credit - <span id="totalCredit"></span></h4>
                    
                </div>
                <div class="col-md-6">
                    <h4>Debit - <span id="totalDebit"></span></h4>
                    
                </div>
                <div class="col-md-6">
                    <h5>Total Transaction: <span id="totaltransaction"></span></h5>
                </div>
                
            </div>-->
            <br/>
            <div class="row">
                <div class="col-md-12">
                    <div class="table-responsive">
                        <table class="table">
                             <thead>
                                <tr>
                                    <th>No.</th>
                                    <th>Purchase Jewellery Code</th>
                                    <th>Vendor</th>
                                    <!--<th>Value Type</th>-->
                                    <th>Particular</th>
                                    <th>Final Weight</th>
                                    <th>Paid</th>
                                    <th>Purchase Jewellery Date</th>
                                    <!--<th>Updated At</th>-->
                                    <th>Status</th>
                                    <th></th>
                                    <!--<th>Credit/Debit</th>-->
                                </tr>
                            </thead>
                            <tbody id="purchase-fine-list">
                                
                            </tbody>
                        </table>
                    </div>
                    
                    <br>
                    <br>
                    <div id="paginataion-vendor-debitcredit-links"></div>
                </div>
            </div>
          
        </div>
        <lable id="totalofrecord"></lable>  
    </div>
    
    <button type="button" class="btn btn-success btn-block" data-bs-toggle="modal" data-bs-target="#add-vendor-payment-status">Add </button>
    <div class="modal fade text-start" id="add-vendor-payment" tabindex="-1" aria-labelledby="myModalLabel16" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered modal-lg">
            <div class="modal-content">
                <div class="modal-header">
                  <h4 class="modal-title" id="myModalLabel16">Add Payment</h4>
                  <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <select class="form-control mb-2" id="nvendor-dropdown1">
                        <option value="0">Select Vendor</option>
                    </select>
                    <input type="radio" name="payment_type" class="payment_type" id="pay" value="pay"/> Pay
                    <input type="radio" name="payment_type" class="payment_type" id="recived" value="recived"/> Recived
                    <input type="number" class="form-control fine" id="fine_in_gram" placeholder="Fine Wt">
                    Rate
                    <input type="number" class="form-control rate" id="per_gm_rate" placeholder="Per Gram Rate">
                    <input type="number" class="form-control totalAmt" id="total_amt" placeholder="Amount">
                    <hr>
                    Reminder
                    <input type="date" class="form-control" id="reminder_date" required><br>
                    <textarea class="form-control" id="reminder_note" placeholder="Note"></textarea>
                </div>
                <div class="modal-footer">
                  <button type="button" class="btn btn-primary" onclick="js:normalpurchaseFine1('{{ $token }}')">Submit</button>
                </div>
            </div>
        </div>
    </div>
    <div class="modal fade text-start" id="add-vendor-payment-status" tabindex="-1" aria-labelledby="myModalLabel17" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered modal-lg">
            <div class="modal-content">
                <form id="normal_purchase_form">
                <div class="modal-header">
                  <h4 class="modal-title" id="myModalLabel17">Add Payment</h4>
                  <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <input type="hidden" class="form-control" id="metal_type" placeholder="metal_type" name="metal_type" value="GOLD">
                    <select class="form-control mb-2" id="nvendor-dropdown" name="normal_vendor_uuid">
                        <option value="">Select Vendor</option>
                    </select>
                    <input type="radio" name="payment_type" class="payment_type" id="pays" value="pay"/> Pay
                    <input type="radio" name="payment_type" class="payment_type" id="reciveds" value="recived"/> Recived
                    <input type="number" class="form-control" id="fine_in_grams" placeholder="Fine" name="fine_in_grams">
                    
                    <hr>
                    Reminder
                    <input type="date" class="form-control" id="reminder_dates" name="reminder_date" required><br>
                    <textarea class="form-control" id="reminder_notes" placeholder="Note" name="reminder_note"></textarea>
                </div>
                <div class="modal-footer">
                  <button type="button" class="btn btn-primary" onclick="js:normalVendorPurchaseFineStatus('{{ $token }}')">Submit</button>
                </div>
                </form>
            </div>
        </div>
    </div>
    <div class="modal fade text-start" id="transaction-log" tabindex="-1" aria-labelledby="myModalLabel17" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered modal-xl">
            <div class="modal-content">
                
                <div class="modal-header">
                  <h4 class="modal-title" id="myModalLabel17">Transaction Details</h4>
                  <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <table class="table"><thead><tr><th>Sr.</th><th>Vendor Name</th><th>Fine Weight</th><th>Purity</th><th>Fine As Per Purity</th><th>Mode</th><th>Transaction Date</th><th>Created By</th></tr></thead>
    <tbody id="normal-vendor-transaction-list"></tbody></table>
                </div>
                <div class="modal-footer">
                 
                </div>
                
            </div>
        </div>
    </div>
    <!--<div class="modal fade text-start" id="transaction-log" tabindex="-1" aria-labelledby="myModalLabel17" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered modal-lg">
        
        
            <div class="modal-content">
               <div class="modal-header">
                  <h4 class="modal-title" id="myModalLabel17">Transaction Log </h4
                  <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                        <table class="table"><thead><tr><th>Sr.</th><th>Vendor Name</th><th>Fine Weight</th><th>Purity</th><th>Fine As Per Purity</th><th>Transaction Date</th><th>Created By</th></tr></thead>
    <tbody id="normal-vendor-transaction-list"></tbody></table>
                    </div>
                    <div class="modal-footer">
                      
                    </div>
                </div>
            </div>
        </div>-->
@endsection



@section('vendor-script')
    <script src="{{ asset(mix('vendors/js/extensions/toastr.min.js')) }}"></script>
@endsection
@section('page-script')

    <script src="{{ asset(mix('js/scripts/custom/common.js')) }}"></script>
    <!--<script src="{{ asset(mix('js/scripts/custom/gold_transactions.js')) }}"></script>
    
    <script src="{{ asset(mix('js/scripts/custom/reminder.js')) }}"></script>-->
    <script>
        $(document).ready(function() {
            normalVendorCreditDebitList('<?= $token ?>', 1,25,'GOLD');
           
            
            
        });
        $("#nvendor-uuid").change(function()
        {
            normalVendorCreditDebitList('<?= $token ?>', 1,25,'GOLD');

        });
        $("#transcation-type").change(function()
        {
            normalVendorCreditDebitList('<?= $token ?>', 1,25,'GOLD');

        });
        
        function normalpurchaseFine1(token)
        {
            try {
                var normal_vendor_uuid = $('#nvendor-dropdown1').val();
                var fine_in_gram = $('#fine_in_gram').val();
                
                var reminder_date = $('#reminder_date').val();
                var reminder_note = $('#reminder_note').val();
                var payment_type = $('.payment_type:checked').val();
                var per_gm_rate = $('#per_gm_rate').val();
                var amount = $('#totalAmt').val();
                //alert($('.payment_type:checked').val());
                $.ajax({
                    url: "/api/gold-management/normal-vendor/purchase-fine",
                    type: "post",
                    dataType: 'json',
                    headers: {
                        'Authorization': 'Bearer '+token 
                    },
                    data:{
                        'normal_vendor_uuid':normal_vendor_uuid,
                        'fine_wt':fine_in_gram,
                        'reminder_date':reminder_date,
                        'reminder_note':reminder_note,
                        'payment_type':payment_type,
                        'per_gm_rate':per_gm_rate,
                        'amount':amount
                    },
                    success: function(response){
                        $("#add-vendor-payment").modal('hide');
                        setTimeout(function () {
                            toastr["success"](
                                "",
                                "Saved",
                                {
                                    closeButton: false,
                                    tapToDismiss: false,
                                    rtl: "rtl",
                                }
                            );
                        }, 2000);
                        location.replace("/gold-management/normal-vendor/transactions");
                        // location.reload();
                    }
                });
            } catch (e) {
                console.log(e);
            }
        }
        
        function normalVendorCreditDebitList(token, page_no,perpage,metal) {
            let vendor_uuid = $("#nvendor-uuid").val();
            let transcation_type = $("#transcation-type").val();
            let from_date = $("#from_date").val();
            let till_date = $("#till_date").val();
            var per_page = $('#per-page').val();
            var nArray = new Array();
            var diffArray = new Array();
            var finArray = new Array();
            var metal_type = metal;
            //alert(transcation_type);
            //alert('purchaseFineVendorList');
            $.ajax({
                url: "/api/gold-management/normal-vendor/transactions",
                type: "get",
                dataType: "json",
                headers: {
                    Authorization: "Bearer " + token,
                },
                data: {
                    page:page_no,
                    per_page:per_page,
                    vendor_uuid:vendor_uuid,
                    transcation_type:transcation_type,
                    from_transaction_date:from_date,
                    till_transaction_date:till_date,
                    metal_type:metal_type
                },
                success: function (response) {
                    //alert(response);
                    console.log(response);
                    $("#purchase-fine-list").empty();
                    $("#paginataion-vendor-debitcredit-links").empty()
                    /* $("#purchase-fine-credit-list").empty();
                    $("#paginataion-credit-links").empty();*/
                    $("#totalCredit").empty();
                    $("#totalDebit").empty();
                    //console.log(response.data);
                    //TABLE DATA
                    var i=0;
                    response.result.data.forEach(response_data => {
                        console.log(response_data.id);
                        
                         i++;
                         var detail = '';
                         if(response_data.particular){
                         var particular = JSON.parse(response_data.particular);
                         console.log(response_data.particular);
                         
                         particular.forEach(e => {
                            // var particular = JSON.parse(e.particular);
                             //console.log(particular);
                               detail+= `Item: ${e.item} <br>
                                    Item wt: ${e.item_wt_in_gram} <br>
                                    Purity: ${e.purity}%<br>
                                    Garbage: ${e.garbage}%<br>`;
                         });
                         }
                       // 
                        
                        var jewellery_wt = response_data.jewellery_wt;
                        var fine_wt = parseFloat(response_data.fine_gave);
                        var gold_wt = jewellery_wt == '0.000' ? fine_wt : jewellery_wt;
                        var balance = parseFloat(jewellery_wt) - parseFloat(fine_wt);
                        console.log('balance '+balance);
                        finArray.push(fine_wt);
                        var item = '';
                        if (response_data.particular == null ||response_data.particular == '') {}else{
                             item+='';
                        nArray.push(balance);
                        item+='Item: '+particular.item+'<br>'
                                +'Item wt: '+particular.item_wt_in_gram+'<br>'
                                +'Purity: '+particular.purity+'%<br>'
                                +'Garbage: '+particular.garbage+'%<br>';
                        }
                        var tkn = '{{$token}}';
                        var tkn = tkn.toString();
                        //alert(tkn);
                        if(!isNaN(response_data.jewellery_wt) && response_data.jewellery_wt != null) { 
                            var wt = parseFloat(response_data.jewellery_wt).toFixed(3);
                            
                        }else{ 
                            var wt = ''; 
                            
                        }
                        
                        var purchase_fine_list = '<tr id="'+response_data.id+'">'
                                +'<td>'+i+'.</td>'
                                +'<td>PJC-'+response_data.id+'</td>'
                                +'<td>'+response_data.name+'</td>'
                                +'<td>'+detail+'</td>'
                                +'<td>'+wt+'</td>'
                                +'<td>'+response_data.fine_gave+'</td>'
                                +'<td>'+response_data.purchase_jewellery_date+'</td>'
                                +'<td>'+response_data.paymentStatus+'</td>';
                                if(particular != null){
                                purchase_fine_list+='<td><button type="button" class="btn btn-success detail" id="transaction_list_'+response_data.id+'" data-bs-toggle="modal" data-bs-target="#transaction-log" onclick="js:transactionList(\''+token+'\','+response_data.id+')">Detail </button></td>';
                                }
                            purchase_fine_list+='</tr>';
                        $("#nvendorBalance").html(parseFloat(response_data.vendorValance).toFixed(3));
                        $("#purchase-fine-list").append(purchase_fine_list);
                       // }
                    });
                    
                        //console.log(finArray);
                         var diffsum = nArray.reduce((a, b) => a + b, 0);
                         //console.log('diffsum = '+diffsum);
                         var tsum = finArray.reduce((a, b) => a + b, 0);
                         //console.log('tsum = '+tsum);
                         //console.log(tsum);
                         var vBalance = parseFloat(diffsum)+parseFloat(tsum);
                         //console.log('vBalance = '+vBalance);
                         //$("#ntotalDebit").html(parseFloat(tsum).toFixed(3));
                         $("#ntotalDebit").html(parseFloat(response.transactions).toFixed(3));
                         $("#nvendorBalance").html(parseFloat(response.vendorBalance).toFixed(3));
                         //$("#nvendorBalance").html(parseFloat(vBalance).toFixed(3));
                    //PAGINATION LINKS
                    response.result.links.forEach(element => {
                        let url_page_no = 1;
                        if (element.url != null) {
                            url_page_no = element.url.split('?')[1].split('=')[1];   
                        }
                        $("#paginataion-vendor-debitcredit-links").append(`
                            <button onclick="js:normalVendorCreditDebitList('`+token+`',${url_page_no}, ${per_page},'`+metal+`')" class="btn btn-dark">${element.label}</button>
                        `);
                    });
                    $('#totalofrecord').text('Total No. of Records = '+response.result.total);
                },
            });
        }
        
        function transactionList(token,transId){
        
        var id = transId;
        try{
            $.ajax({
                url: "/api/gold-management/normal-vendor/getTransactionList",
                type: "get",
                dataType: 'json',
                headers: {
                    'Authorization': 'Bearer '+token 
                },
                data:{
                    'transId':id
                },
                success: function(response){
                    if(response.status === 'true'){
                        $('#transaction-log #normal-vendor-transaction-list').empty();
                        var i =0;
                        response.data.forEach(response_data =>{
                            i++;
                            var transactionList = '<tr>'
                            +'<td>'+i+'</td>'
                            +'<td>'+response_data.vendor_name+'</td>'
                            +'<td>'+response_data.fine_gave+'</td>'
                            +'<td>'+response_data.purity+'</td>'
                            +'<td>'+response_data.fine_as_per_purity+'</td>'
                             +'<td>'+response_data.payment_mode+'</td>'
                            +'<td>'+response_data.transaction_date+'</td>'
                            +'<td>'+response_data.createdperson+'</td>'
                            +'</tr>';
                            $('#transaction-log #normal-vendor-transaction-list').append(transactionList);
                           //console.log(transactionList);
                        });
                        
                    }else{
                       // alert('response false');
                    }
                   return response;
                }
            });
        }catch(e){
            console.log(e);
        }
    }    
    
    function normalVendorPurchaseFineStatus(token){
        try {
            //alert('reached in status');
            
            if ( !($(".payment_type").is(':checked')) ){
                alert('Please Select Payment Type!');
                return false;
            }
            var formData = new FormData(document.getElementById('normal_purchase_form'));
            $.ajax({
                url: "/api/gold-management/normal-vendor/purchase-fine-status-normal-vendor",
                type: "post",
                dataType: 'json',
                headers: {
                    'Authorization': 'Bearer '+token 
                },
                data:formData,
                async:false,
                cache:false,
                contentType:false,
                processData:false,
                success: function(response){
                    console.log('in purchase fine status response = '+response);
                    
                    if(response.status == true){
                        $("#add-vendor-payment-status").modal('hide');
                        $('#normal_purchase_form')[0].reset();
                    setTimeout(function () {
                        toastr["success"](
                            "",
                           // "Saved", 
                            response.msg,
                            {
                                closeButton: false,
                                tapToDismiss: false,
                                rtl: "rtl",
                            }
                        );
                    }, 2000);
                    normalVendorCreditDebitList(token, 1,25,'GOLD');
                    //normalVendorReminder(token, 1,25,metal);
                    //location.replace("/gold-management/normal-vendor/reminder");
                     //location.reload();
                    }
                }
            });
        } catch (e) {
            console.log(e);
        }
    }
        
    </script>
@endsection
