Server IP : 150.95.80.236 / Your IP : 3.141.201.106 Web Server : Apache System : Linux host-150-95-80-236 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : social-telecare ( 10000) PHP Version : 7.4.33 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/pcu.in.th/uat.pcu.in.th/demo15/src/js/custom/apps/invoices/ |
Upload File : |
"use strict"; // Class definition var KTAppInvoicesCreate = function () { var form; // Private functions var updateTotal = function() { var items = [].slice.call(form.querySelectorAll('[data-kt-element="items"] [data-kt-element="item"]')); var grandTotal = 0; var format = wNumb({ //prefix: '$ ', decimals: 2, thousand: ',' }); items.map(function (item) { var quantity = item.querySelector('[data-kt-element="quantity"]'); var price = item.querySelector('[data-kt-element="price"]'); var priceValue = format.from(price.value); priceValue = (!priceValue || priceValue < 0) ? 0 : priceValue; var quantityValue = parseInt(quantity.value); quantityValue = (!quantityValue || quantityValue < 0) ? 1 : quantityValue; price.value = format.to(priceValue); quantity.value = quantityValue; item.querySelector('[data-kt-element="total"]').innerText = format.to(priceValue * quantityValue); grandTotal += priceValue * quantityValue; }); form.querySelector('[data-kt-element="sub-total"]').innerText = format.to(grandTotal); form.querySelector('[data-kt-element="grand-total"]').innerText = format.to(grandTotal); } var handleEmptyState = function() { if (form.querySelectorAll('[data-kt-element="items"] [data-kt-element="item"]').length === 0) { var item = form.querySelector('[data-kt-element="empty-template"] tr').cloneNode(true); form.querySelector('[data-kt-element="items"] tbody').appendChild(item); } else { KTUtil.remove(form.querySelector('[data-kt-element="items"] [data-kt-element="empty"]')); } } var handeForm = function (element) { // Add item form.querySelector('[data-kt-element="items"] [data-kt-element="add-item"]').addEventListener('click', function(e) { e.preventDefault(); var item = form.querySelector('[data-kt-element="item-template"] tr').cloneNode(true); form.querySelector('[data-kt-element="items"] tbody').appendChild(item); handleEmptyState(); updateTotal(); }); // Remove item KTUtil.on(form, '[data-kt-element="items"] [data-kt-element="remove-item"]', 'click', function(e) { e.preventDefault(); KTUtil.remove(this.closest('[data-kt-element="item"]')); handleEmptyState(); updateTotal(); }); // Handle price and quantity changes KTUtil.on(form, '[data-kt-element="items"] [data-kt-element="quantity"], [data-kt-element="items"] [data-kt-element="price"]', 'change', function(e) { e.preventDefault(); updateTotal(); }); } var initForm = function(element) { // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/ var invoiceDate = $(form.querySelector('[name="invoice_date"]')); invoiceDate.flatpickr({ enableTime: false, dateFormat: "d, M Y", }); // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/ var dueDate = $(form.querySelector('[name="invoice_due_date"]')); dueDate.flatpickr({ enableTime: false, dateFormat: "d, M Y", }); } // Public methods return { init: function(element) { form = document.querySelector('#kt_invoice_form'); handeForm(); initForm(); updateTotal(); } }; }(); // On document ready KTUtil.onDOMContentLoaded(function () { KTAppInvoicesCreate.init(); });