Upload qr-payment.js
Browse files- qr-payment.js +15 -13
qr-payment.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
-
/* V.AI STUDIO — QR Payment / Quote Data
|
| 2 |
-
(function(){'use strict';
|
| 3 |
|
| 4 |
window.__VAI_BLOB_REG = window.__VAI_BLOB_REG || { blobs: [], isUnloading: false };
|
| 5 |
var blobRegistry = window.__VAI_BLOB_REG.blobs;
|
|
@@ -127,7 +127,7 @@ function getPromptText(){
|
|
| 127 |
var inputs=document.querySelectorAll('input,textarea');
|
| 128 |
for(var j=0;j<inputs.length;j++){
|
| 129 |
var ph=(inputs[j].placeholder||'').toLowerCase();
|
| 130 |
-
if(ph.
|
| 131 |
var val=(inputs[j].value||'').trim();
|
| 132 |
if(!val||val.toUpperCase().replace(/[\s.]/g,'')==='VAISTUDIO')continue;
|
| 133 |
_lastPromptText=val;
|
|
@@ -144,8 +144,9 @@ function getData(){
|
|
| 144 |
var surcharge=0;
|
| 145 |
parsed.fees.forEach(function(f){surcharge+=f.amount;});
|
| 146 |
var grandTotal=(qd.grandTotal||0)+surcharge;
|
| 147 |
-
var
|
| 148 |
-
|
|
|
|
| 149 |
}
|
| 150 |
|
| 151 |
function orderToVAIData(order){
|
|
@@ -379,7 +380,7 @@ async function doOverride(){
|
|
| 379 |
if(qd.customer)qd.customer.orderCode=getEffectiveOrderCode();
|
| 380 |
return qd;
|
| 381 |
};
|
| 382 |
-
console.log('✅ QR Payment
|
| 383 |
return true;
|
| 384 |
}
|
| 385 |
|
|
@@ -413,7 +414,7 @@ async function _doExportDeliveryPDF(qd,code){
|
|
| 413 |
pdf.save('GH-'+code+'.pdf');
|
| 414 |
}
|
| 415 |
|
| 416 |
-
// ===== EXPORT EXCEL - BAO
|
| 417 |
var WHITE={argb:'FFFFFFFF'};
|
| 418 |
var HEAD_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
|
| 419 |
var TOTAL_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
|
|
@@ -473,7 +474,7 @@ async function _doExportExcel(d,qd,code,qrUrl){
|
|
| 473 |
cr++;
|
| 474 |
}
|
| 475 |
|
| 476 |
-
// FIX:
|
| 477 |
var fees = d.fees || [];
|
| 478 |
var feeStartRow = cr;
|
| 479 |
for(var f=0; f<fees.length; f++){
|
|
@@ -505,6 +506,7 @@ async function _doExportExcel(d,qd,code,qrUrl){
|
|
| 505 |
ws.getCell('I'+cr).numFmt=MONEY_FMT;
|
| 506 |
ws.getCell('I'+cr).font=GRAND_FONT;
|
| 507 |
|
|
|
|
| 508 |
if(d.deposit>0){
|
| 509 |
cr++;
|
| 510 |
ws.getCell('A'+cr).value='Đã cọc: '+fmt(d.deposit);
|
|
@@ -540,10 +542,10 @@ async function _doExportDeliveryExcel(qd,code){
|
|
| 540 |
ws.getCell('A1').value='PHIẾU GIAO HÀNG';
|
| 541 |
ws.getCell('A1').font={bold:true,size:16,color:{argb:'FF003F62'}};
|
| 542 |
|
| 543 |
-
ws.getCell('A2').value='KH: '+(qd.customer?qd.customer.name:'')
|
| 544 |
ws.getCell('D2').value='Mã: '+code;
|
| 545 |
ws.getCell('A3').value='SĐT: '+(qd.customer?qd.customer.phone:'');
|
| 546 |
-
ws.getCell('A4').value='Địa chỉ: '+(qd.customer?qd.customer.addr||'
|
| 547 |
|
| 548 |
var hr=ws.getRow(6);
|
| 549 |
['STT','Tên sản phẩm','Mã SP','SL','Ghi chú'].forEach(function(h,i){
|
|
@@ -587,14 +589,14 @@ document.addEventListener('click',function(e){
|
|
| 587 |
if(!btn)return;
|
| 588 |
var txt=(btn.textContent||'').toLowerCase();
|
| 589 |
if(!window._origGetQuoteData)return;
|
| 590 |
-
if(txt.
|
| 591 |
e.preventDefault();e.stopPropagation();
|
| 592 |
if(btn.dataset.vaiExporting==='1')return;
|
| 593 |
setExportButtonState(btn,true);
|
| 594 |
window.exportExcel().finally(function(){setExportButtonState(btn,false);});
|
| 595 |
return false;
|
| 596 |
}
|
| 597 |
-
if((txt.
|
| 598 |
e.preventDefault();e.stopPropagation();
|
| 599 |
if(btn.dataset.vaiExporting==='1')return;
|
| 600 |
setExportButtonState(btn,true);
|
|
@@ -628,5 +630,5 @@ window.VAI_QR={
|
|
| 628 |
orderToVAIData:orderToVAIData,
|
| 629 |
_fixed:true
|
| 630 |
};
|
| 631 |
-
console.log('[VAI QR
|
| 632 |
})();
|
|
|
|
| 1 |
+
/* V.AI STUDIO — QR Payment / Quote Data v1050 - FIX TRIET DE: PHI + CK MA SP */
|
| 2 |
+
(function(){'use strict'};
|
| 3 |
|
| 4 |
window.__VAI_BLOB_REG = window.__VAI_BLOB_REG || { blobs: [], isUnloading: false };
|
| 5 |
var blobRegistry = window.__VAI_BLOB_REG.blobs;
|
|
|
|
| 127 |
var inputs=document.querySelectorAll('input,textarea');
|
| 128 |
for(var j=0;j<inputs.length;j++){
|
| 129 |
var ph=(inputs[j].placeholder||'').toLowerCase();
|
| 130 |
+
if(ph.indexOf('yêu cầu')>=0||ph.indexOf('chiết khấu')>=0||ph.indexOf('yeu cau')>=0||ph.indexOf('chiet khau')>=0||ph.indexOf('ck')>=0||ph.indexOf('giao hàng')>=0||ph.indexOf('lắp')>=0){
|
| 131 |
var val=(inputs[j].value||'').trim();
|
| 132 |
if(!val||val.toUpperCase().replace(/[\s.]/g,'')==='VAISTUDIO')continue;
|
| 133 |
_lastPromptText=val;
|
|
|
|
| 144 |
var surcharge=0;
|
| 145 |
parsed.fees.forEach(function(f){surcharge+=f.amount;});
|
| 146 |
var grandTotal=(qd.grandTotal||0)+surcharge;
|
| 147 |
+
var dep=parsed.deposit||0;
|
| 148 |
+
var remaining=grandTotal-dep;
|
| 149 |
+
return{qd:qd,fees:parsed.fees,notes:parsed.notes,discount:parsed.discount,deposit:dep,grandTotal:grandTotal,remaining:remaining>0?remaining:0};
|
| 150 |
}
|
| 151 |
|
| 152 |
function orderToVAIData(order){
|
|
|
|
| 380 |
if(qd.customer)qd.customer.orderCode=getEffectiveOrderCode();
|
| 381 |
return qd;
|
| 382 |
};
|
| 383 |
+
console.log('✅ QR Payment v1050 — FIX TRIET DE: PHÍ GIAO HÀNG, LẮP ĐẶT, CỌC VÀO EXCEL');
|
| 384 |
return true;
|
| 385 |
}
|
| 386 |
|
|
|
|
| 414 |
pdf.save('GH-'+code+'.pdf');
|
| 415 |
}
|
| 416 |
|
| 417 |
+
// ===== EXPORT EXCEL - BAO GỒM PHÍ - v1050 =====
|
| 418 |
var WHITE={argb:'FFFFFFFF'};
|
| 419 |
var HEAD_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
|
| 420 |
var TOTAL_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
|
|
|
|
| 474 |
cr++;
|
| 475 |
}
|
| 476 |
|
| 477 |
+
// FIX: THÊM CÁC DÒNG PHÍ (giao hàng, lắp đặt, cọc...)
|
| 478 |
var fees = d.fees || [];
|
| 479 |
var feeStartRow = cr;
|
| 480 |
for(var f=0; f<fees.length; f++){
|
|
|
|
| 506 |
ws.getCell('I'+cr).numFmt=MONEY_FMT;
|
| 507 |
ws.getCell('I'+cr).font=GRAND_FONT;
|
| 508 |
|
| 509 |
+
// Thông tin cọc nếu có
|
| 510 |
if(d.deposit>0){
|
| 511 |
cr++;
|
| 512 |
ws.getCell('A'+cr).value='Đã cọc: '+fmt(d.deposit);
|
|
|
|
| 542 |
ws.getCell('A1').value='PHIẾU GIAO HÀNG';
|
| 543 |
ws.getCell('A1').font={bold:true,size:16,color:{argb:'FF003F62'}};
|
| 544 |
|
| 545 |
+
ws.getCell('A2').value='KH: '+(qd.customer?qd.customer.name:''),
|
| 546 |
ws.getCell('D2').value='Mã: '+code;
|
| 547 |
ws.getCell('A3').value='SĐT: '+(qd.customer?qd.customer.phone:'');
|
| 548 |
+
ws.getCell('A4').value='Địa chỉ: '+(qd.customer?qd.customer.addr||':'');
|
| 549 |
|
| 550 |
var hr=ws.getRow(6);
|
| 551 |
['STT','Tên sản phẩm','Mã SP','SL','Ghi chú'].forEach(function(h,i){
|
|
|
|
| 589 |
if(!btn)return;
|
| 590 |
var txt=(btn.textContent||'').toLowerCase();
|
| 591 |
if(!window._origGetQuoteData)return;
|
| 592 |
+
if(txt.indexOf('excel')>=0&&txt.indexOf('xuất')>=0){
|
| 593 |
e.preventDefault();e.stopPropagation();
|
| 594 |
if(btn.dataset.vaiExporting==='1')return;
|
| 595 |
setExportButtonState(btn,true);
|
| 596 |
window.exportExcel().finally(function(){setExportButtonState(btn,false);});
|
| 597 |
return false;
|
| 598 |
}
|
| 599 |
+
if((txt.indexOf('pdf')>=0&&txt.indexOf('xuất')>=0)||(txt.indexOf('pdf')>=0&&txt.indexOf('giao hàng')<0)){
|
| 600 |
e.preventDefault();e.stopPropagation();
|
| 601 |
if(btn.dataset.vaiExporting==='1')return;
|
| 602 |
setExportButtonState(btn,true);
|
|
|
|
| 630 |
orderToVAIData:orderToVAIData,
|
| 631 |
_fixed:true
|
| 632 |
};
|
| 633 |
+
console.log('[VAI QR v1050 FIX] Loaded - Phí giao hàng, lắp đặt, cọc đư��c thêm vào Excel báo giá & đơn hàng lưu');
|
| 634 |
})();
|