bep40 commited on
Commit
9e4e5ed
·
verified ·
1 Parent(s): 036b3b0

Upload qr-payment.js

Browse files
Files changed (1) hide show
  1. qr-payment.js +6 -6
qr-payment.js CHANGED
@@ -1,4 +1,4 @@
1
- /* V.AI STUDIO — QR Payment / Quote Data v1047 - FIX TRIỆT ĐỂ: PHÍ + CK MÃ SP + TYPO remaining */
2
  (function(){'use strict';
3
 
4
  // ===== BLOB REGISTRY =====
@@ -37,7 +37,7 @@ function fmt(n){if(!n||isNaN(n))return'0đ';return Number(n).toLocaleString('vi-
37
  function compactKey(s){return stripDiacritics(String(s||'')).toLowerCase().replace(/[^a-z0-9]/g,'');}
38
  function itemKeys(it){var arr=[];['model','sku','code','ma','name'].forEach(function(k){if(it&&it[k])arr.push(compactKey(it[k]));});if(it&&it.name){String(it.name).split('|').forEach(function(x){arr.push(compactKey(x));});}return arr.filter(function(x){return x&&x.length>=3;});}
39
  function matchItemDiscount(it,itemDiscounts){itemDiscounts=itemDiscounts||{};var keys=itemKeys(it);for(var i=0;i<keys.length;i++){var k=keys[i];if(itemDiscounts[k])return itemDiscounts[k];}for(var code in itemDiscounts){for(var j=0;j<keys.length;j++){var kk=keys[j];if(code.length>=3&&kk.length>=3&&(kk.indexOf(code)!==-1||code.indexOf(kk)!==-1))return itemDiscounts[code];}}return 0;}
40
- // FIX: \\b (word boundary) instead of \b (backspace) in string literal
41
  function parseItemDiscountLine(line,map){
42
  var lo=stripDiacritics(String(line||'')).toLowerCase();
43
  var re1=/\b([a-z]{1,8}[a-z0-9._\-\/]{1,30}\d[a-z0-9._\-\/]*)\b\s*(?:[:=\-]|\s+)?\s*(?:ck|chiet\s*khau|giam|discount)\s*([\d.,]+)\s*%?/gi;
@@ -53,7 +53,7 @@ function parsePrompt(text){
53
  var fees=[],notes=[],discount=null,deposit=0,discountPercent=0,itemDiscounts={};
54
  if(!text)return{fees:fees,notes:notes,discount:discount,deposit:deposit,discountPercent:discountPercent,itemDiscounts:itemDiscounts};
55
 
56
- text.split(/[,;\n]+/).forEach(function(line){
57
  line=line.trim();if(!line)return;
58
  parseItemDiscountLine(line,itemDiscounts);
59
 
@@ -382,7 +382,7 @@ async function doOverride(){
382
  if(qd.customer)qd.customer.orderCode=getEffectiveOrderCode();
383
  return qd;
384
  };
385
- console.log('✅ QR Payment v1047 — FIX TRIỆT ĐỂ: PHÍ GIAO HÀNG, LẮP ĐẶT, CỌC VÀO EXCEL');
386
  return true;
387
  }
388
 
@@ -416,7 +416,7 @@ async function _doExportDeliveryPDF(qd,code){
416
  pdf.save('GH-'+code+'.pdf');
417
  }
418
 
419
- // ===== EXPORT EXCEL - BAO GỒM PHÍ - v1047 =====
420
  var WHITE={argb:'FFFFFFFF'};
421
  var HEAD_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
422
  var TOTAL_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
@@ -634,5 +634,5 @@ window.VAI_QR={
634
  orderToVAIData:orderToVAIData,
635
  _fixed:true
636
  };
637
- console.log('[VAI QR v1047 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');
638
  })();
 
1
+ /* V.AI STUDIO — QR Payment / Quote Data v1048 - FIX TRIỆT ĐỂ: PHÍ + CK MÃ SP */
2
  (function(){'use strict';
3
 
4
  // ===== BLOB REGISTRY =====
 
37
  function compactKey(s){return stripDiacritics(String(s||'')).toLowerCase().replace(/[^a-z0-9]/g,'');}
38
  function itemKeys(it){var arr=[];['model','sku','code','ma','name'].forEach(function(k){if(it&&it[k])arr.push(compactKey(it[k]));});if(it&&it.name){String(it.name).split('|').forEach(function(x){arr.push(compactKey(x));});}return arr.filter(function(x){return x&&x.length>=3;});}
39
  function matchItemDiscount(it,itemDiscounts){itemDiscounts=itemDiscounts||{};var keys=itemKeys(it);for(var i=0;i<keys.length;i++){var k=keys[i];if(itemDiscounts[k])return itemDiscounts[k];}for(var code in itemDiscounts){for(var j=0;j<keys.length;j++){var kk=keys[j];if(code.length>=3&&kk.length>=3&&(kk.indexOf(code)!==-1||code.indexOf(kk)!==-1))return itemDiscounts[code];}}return 0;}
40
+ // FIX: \\b (word boundary) thay vì \b (backspace) trong string literal
41
  function parseItemDiscountLine(line,map){
42
  var lo=stripDiacritics(String(line||'')).toLowerCase();
43
  var re1=/\b([a-z]{1,8}[a-z0-9._\-\/]{1,30}\d[a-z0-9._\-\/]*)\b\s*(?:[:=\-]|\s+)?\s*(?:ck|chiet\s*khau|giam|discount)\s*([\d.,]+)\s*%?/gi;
 
53
  var fees=[],notes=[],discount=null,deposit=0,discountPercent=0,itemDiscounts={};
54
  if(!text)return{fees:fees,notes:notes,discount:discount,deposit:deposit,discountPercent:discountPercent,itemDiscounts:itemDiscounts};
55
 
56
+ text.split(/[,\;\n]+/).forEach(function(line){
57
  line=line.trim();if(!line)return;
58
  parseItemDiscountLine(line,itemDiscounts);
59
 
 
382
  if(qd.customer)qd.customer.orderCode=getEffectiveOrderCode();
383
  return qd;
384
  };
385
+ console.log('✅ QR Payment v1048 — FIX TRIỆT ĐỂ: PHÍ GIAO HÀNG, LẮP ĐẶT, CỌC VÀO EXCEL');
386
  return true;
387
  }
388
 
 
416
  pdf.save('GH-'+code+'.pdf');
417
  }
418
 
419
+ // ===== EXPORT EXCEL - BAO GỒM PHÍ - v1048 =====
420
  var WHITE={argb:'FFFFFFFF'};
421
  var HEAD_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
422
  var TOTAL_FILL={type:'pattern',pattern:'solid',fgColor:{argb:'FF003F62'}};
 
634
  orderToVAIData:orderToVAIData,
635
  _fixed:true
636
  };
637
+ console.log('[VAI QR v1048 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');
638
  })();