tplus-components-touch 3.41.8 → 3.41.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -81,7 +81,8 @@ var PrintUtil = function () {
81
81
  BalanceIntegral = _ref.BalanceIntegral,
82
82
  Integral = _ref.Integral,
83
83
  BalanceStorage = _ref.BalanceStorage,
84
- RetailPaymentDetails = _ref.RetailPaymentDetails;
84
+ RetailPaymentDetails = _ref.RetailPaymentDetails,
85
+ TotalDiscountAmount = _ref.TotalDiscountAmount;
85
86
 
86
87
  var details = [];
87
88
 
@@ -128,7 +129,8 @@ var PrintUtil = function () {
128
129
  BalanceIntegral: BalanceIntegral,
129
130
  Integral: Integral,
130
131
  BalanceStorage: BalanceStorage,
131
- RetailPaymentDetails: RetailPaymentDetails
132
+ RetailPaymentDetails: RetailPaymentDetails,
133
+ TotalDiscountAmount: TotalDiscountAmount
132
134
  });
133
135
 
134
136
  // let constr = _this.loadBTPrintData ({
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-components-touch/components/cloudPrint/index.js"],"names":["PrintUtil","doTestPrint","printParams","callback","cloudAddList","ret","result","cloudPrint","doPrint","Id","_this","API","getPrintDataInfo","then","Store","UserName","Code","CreatedTime","TotalCount","TotalTaxAmount","WipeChange","RetailDetails","Member","BalanceIntegral","Integral","BalanceStorage","RetailPaymentDetails","details","tools","changePrivateInfo","length","map","inventoryCode","item","Inventory","NameAndCode","Name","quantity","toDecimal2NoZero","Quantity","Unit","quantityAndUnit","constr","loadBTPrintDataByTemplate","doDialyPrint","getDialyPrintDataInfo","loadBTDutyAndDialyPrintData","doDutyPrint","getDutyPrintDataInfo","doStoragePrint","getStoragePrintDataInfo","loadBTStoragePrintData","printEntity","StorageDetails","Person","StorageMutiSettleDetails","Mobilephone","MemberName","StorageName","template","dutyPrintStringByTemplate","type","WorkingDate","WorkingTime","DailyDate","DailyTime","RetailAmount","ReturnAmount","InitialAmount","ImprestAmount","ShiftDate","ShiftTime","ShiftVoucherDetails","WorkingDateAndTime","DailyDateAndTime","DutyDateAndTime","NetAmount","ImprestBalance","SettleStyle","pBodyValueList","forEach","items","Amount","push","TotalAmount","tool","format","data","width","templateBody","body","templateContent","BTPrintFormatUtil","setLineByteSize","Math","floor","lineSize","index","printTemplateItem","height","value","drawSeparateLine","printTitle","JSON","getCellValue","attribute","printStarTitle","spaceCenterPrintMsg","valueMap","name","attr","symbolList","attributeList","replace","symbol","split","totalValue","formatValue","set","leftPrintMsg","headerList","bodyList","bodyListArray","listArray","list","i","arr","listArr","printMenuMSG","loadBTPrintData","params","headerMap","detailTopList","paymentTypeTopList","paymentTypeDetailList","detailContentList","footerMap1","footerMap2","Telephone","Caption","IsTitle","IsFoot","CardCode","size","mhList","mh","headerText","headerWeight","isTitle","isFoot","bodyValueList","bodyValue","phList","drawSeparateLine2","cloudContents","Open","Key","Sign","Card","isLocalSunMi","isHorizontalSunMi","sunMiLocalPrint","console","log","sunmiPrint","printerContent","join","PrintCount","openPrintMsg","content","apiname","deviceCode","times","s","window","sunMi_OperatingCashier","updatePrinterState","status","state","message","PrintSmallTicketter","msg","deviceName","LocalPrintPlugin","printByDeviceName","printContent","res","catch","error","openPrinterAddlist","BTPrintEntity","BTPrintContent","Precision","Price","TaxAmount","platform","enumController","getEnumOj","Differentiate","IdsettleStyleList","x","f","round","toString"],"mappings":"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B,cAAMD,aAJW;AAKjB,aAAK,IALY;AAMjB,aAAK,IANY;AAOjB,aAAK,MAPY;AAQjB,aAAK,MARY;AASjB,aAAK,KATY;AAUjB,aAAK,OAVY;AAWjB,aAAK,KAXY;AAYjB,aAAK,MAZY;AAajB,aAAK;AAbY;AADR,KAAb;AAiBD;;AAED;;;AAgBA;;;AAwFA;;;AAUA;;;AAUA;;;AAUA;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqIA;;;AAsKA;;;AA6BA;;;;;qCAqEiBE,C,EAAG;AAChB,UAAIC,IAAI3G,KAAK4G,KAAL,CAAWF,IAAI,GAAf,IAAsB,GAA9B;AACA,UAAI3B,IAAI4B,EAAEE,QAAF,EAAR;AACA,aAAO9B,CAAP;AACH;;;;;kBAEY7K,S","file":"index.js","sourcesContent":["import BTPrintFormatUtil from './BTPrintFormatUtil';\r\nimport API from './api';\r\nimport {tools as tool} from 'mutants-util';\r\nimport {PosInitData} from 'tplus-poslogin';\r\nimport {platform, enumController} from 'mutants-util';\r\nimport tools from \"../../util/tools\";\r\nimport retailTemplateOne from './printTemplate/retail_one.json'\r\nclass PrintUtil {\r\n constructor () {\r\n this.BTPrintEntity = {};\r\n this.BTPrintContent = '';\r\n this.PrintCount = 1;\r\n this.lineSize = 32;\r\n this.Precision = {\r\n Quantity: PosInitData ('QuantityPrecision'),\r\n Price: PosInitData ('PricePrecision'),\r\n TaxAmount: PosInitData ('AmountPrecision'),\r\n };\r\n const {isHorizontalSunMi} = platform || {};\r\n this.isHorizontalSunMi = !!isHorizontalSunMi;\r\n const { Differentiate } = enumController.getEnumOj();\r\n this.state = {\r\n IdsettleStyleList: {\r\n '10': '微信',\r\n '11': '转账',\r\n '12': '扫码收款',\r\n '13': Differentiate,\r\n '1': '现金',\r\n '5': '支票',\r\n '4': '银行汇款',\r\n '3': '银行本票',\r\n '2': '信用卡',\r\n '6': '积分储值卡',\r\n '7': '储值卡',\r\n '8': '积分抵现',\r\n '9': '支付宝',\r\n }\r\n }\r\n }\r\n\r\n //执行测试打印\r\n doTestPrint = (printParams, callback) => {\r\n this.cloudAddList (printParams, result => {\r\n const {ret} = result;\r\n if (ret === 0) {\r\n this.cloudPrint (\r\n '\\n\\n' + '飞蛾打印机测试打印成功。' + '\\n\\n',\r\n printParams,\r\n callback\r\n );\r\n } else {\r\n if (typeof callback == 'function') callback (result);\r\n }\r\n });\r\n };\r\n\r\n // 触发打印\r\n doPrint = (printParams, Id, callback) => {\r\n if (!printParams || !Id) return;\r\n let _this = this;\r\n API.getPrintDataInfo (Id).then (ret => {\r\n let {\r\n Store,\r\n UserName,\r\n Code,\r\n CreatedTime,\r\n TotalCount,\r\n TotalTaxAmount,\r\n WipeChange,\r\n RetailDetails,\r\n Member,\r\n BalanceIntegral,\r\n Integral,\r\n BalanceStorage,\r\n RetailPaymentDetails\r\n } = ret || {};\r\n let details = [];\r\n\r\n Member = tools.changePrivateInfo(Member, 'print');\r\n\r\n if (RetailDetails && RetailDetails.length > 0) {\r\n RetailDetails.map (item => {\r\n const inventoryCode = item.Inventory.Code\r\n item.Inventory.NameAndCode = item.Inventory.Name + `(${inventoryCode})`;\r\n let quantity = this.toDecimal2NoZero (item.Quantity) \r\n quantity += item.Unit.Name || '';\r\n item.quantityAndUnit = quantity;\r\n\r\n // 零售价\r\n // let Price = this.toDecimal2NoZero (item.Price);\r\n\r\n // // 商品编码\r\n // let inventoryCode = item.Inventory.Code;\r\n\r\n // let taxPrice = this.toDecimal2NoZero (item.TaxPrice);\r\n // // item.TaxPrice,\r\n // // this.Precision.Price\r\n\r\n // // 金额\r\n // let taxAmount = tool.formatPrecision (\r\n // item.TaxAmount,\r\n // this.Precision.TaxAmount\r\n // );\r\n // details.push ([item.Inventory.Name + `(${inventoryCode})`, quantity,taxPrice, Price, taxAmount]);\r\n\r\n });\r\n // 总优惠金额\r\n // let totalDiscount = this.toDecimal2NoZero(item.TotalDiscount);\r\n }\r\n let constr = _this.loadBTPrintDataByTemplate (printParams,{\r\n Store,\r\n UserName,\r\n Code,\r\n CreatedTime,\r\n details:RetailDetails,\r\n TotalCount,\r\n TotalTaxAmount,\r\n WipeChange,\r\n Member,\r\n BalanceIntegral,\r\n Integral,\r\n BalanceStorage,\r\n RetailPaymentDetails\r\n });\r\n\r\n // let constr = _this.loadBTPrintData ({\r\n // Store,\r\n // UserName,\r\n // Code,\r\n // CreatedTime,\r\n // details,\r\n // TotalCount,\r\n // TotalTaxAmount,\r\n // WipeChange,\r\n // Member,\r\n // BalanceIntegral,\r\n // Integral,\r\n // BalanceStorage,\r\n // RetailPaymentDetails\r\n // });\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n // 日结打印\r\n doDialyPrint = (printParams, Id, callback) => {\r\n if (!Id) return;\r\n let _this = this;\r\n API.getDialyPrintDataInfo (Id).then (ret => {\r\n let constr = _this.loadBTDutyAndDialyPrintData (printParams, ret || {}, 'Dialy');\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n // 交班打印\r\n doDutyPrint = (printParams, Id, callback) => {\r\n if (!Id) return;\r\n let _this = this;\r\n API.getDutyPrintDataInfo (Id).then (ret => {\r\n let constr = _this.loadBTDutyAndDialyPrintData (printParams, ret, 'Duty');\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n // 储值打印\r\n doStoragePrint = (printParams, Id, callback) => {\r\n if (!Id) return;\r\n let _this = this;\r\n API.getStoragePrintDataInfo (Id).then (ret => {\r\n let constr = _this.loadBTStoragePrintData (printParams, ret || {});\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n //储值打印\r\n loadBTStoragePrintData = (printParams, printEntity) => {\r\n let { Member = {}, StorageDetails = [], Person, StorageMutiSettleDetails} = printEntity || {};\r\n const { Mobilephone, Name : MemberName } = Member;\r\n const { Name : StorageName} = Person || {};\r\n printEntity.StorageName = StorageName\r\n printEntity.MemberName = MemberName\r\n \r\n const { template } = printParams;\r\n return this.dutyPrintStringByTemplate(template,printEntity)\r\n }\r\n\r\n //储值打印\r\n // loadBTStoragePrintData = (printParams, params) => {\r\n // let templateContent = '';\r\n // let printEntity = {};\r\n // const {\r\n // Store,\r\n // StorageDetails,\r\n // CreatedTime,\r\n // Member,\r\n // CardCode,\r\n // StorageMutiSettleDetails,\r\n // Person,\r\n // } = params || {};\r\n // const { Mobilephone, Name : MemberName } = Member || {};\r\n // const { Name : StorageName} = Person || {};\r\n // const {\r\n // ThisStorageAmount,\r\n // ThisPresentAmount,\r\n // AfterBalanceStorage,\r\n // } = StorageDetails[0] || {};\r\n // printEntity.headerMap = new Map ();\r\n // printEntity.footerMap1 = new Map ();\r\n // printEntity.footerMap2 = new Map ();\r\n // printEntity.headerMap.set ('日期', CreatedTime || '');\r\n // printEntity.headerMap.set ('储值业务员', StorageName || '');\r\n // printEntity.headerMap.set ('会员卡号', CardCode || '');\r\n // printEntity.headerMap.set ('手机号', Mobilephone || '');\r\n // printEntity.headerMap.set ('会员姓名', MemberName || '');\r\n // printEntity.headerMap.set ('本次储存金额', tool.format (ThisStorageAmount) || '');\r\n // printEntity.headerMap.set ('本次赠送金额', tool.format (ThisPresentAmount) || '');\r\n // printEntity.headerMap.set (\r\n // '本次储值后金额',\r\n // tool.format (AfterBalanceStorage) || ''\r\n // );\r\n // if (StorageMutiSettleDetails && StorageMutiSettleDetails.length != 0) {\r\n // StorageMutiSettleDetails.forEach (details => {\r\n // const {StorageAmount,SettleStyle} = details || {};\r\n // const { Name } = SettleStyle || {}\r\n // printEntity.headerMap.set (\r\n // Name,\r\n // StorageAmount || '0.00'\r\n // );\r\n // });\r\n // }\r\n // printEntity.headerMap.set ('顾客签字', '');\r\n\r\n // // 设定打印尺寸\r\n // BTPrintFormatUtil.setLineByteSize (this.lineSize);\r\n\r\n // //单据头部\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printTitle (Store.Name || '');\r\n // if (printEntity.headerMap && printEntity.headerMap.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (printEntity.headerMap);\r\n // }\r\n // templateContent += '\\n\\n\\n\\n';\r\n // return templateContent;\r\n // };\r\n\r\n // 交班日结打印 type: Duty 交班 Dialy 日结\r\n loadBTDutyAndDialyPrintData = (printParams, printEntity, type) => {\r\n const { WorkingDate, WorkingTime, DailyDate, DailyTime, RetailAmount, ReturnAmount, InitialAmount, ImprestAmount, ShiftDate, ShiftTime, ShiftVoucherDetails } = printEntity\r\n printEntity.WorkingDateAndTime = WorkingDate + ' ' + WorkingTime\r\n printEntity.DailyDateAndTime = DailyDate + ' ' + DailyTime\r\n printEntity.DutyDateAndTime = ShiftDate + ' ' + ShiftTime\r\n printEntity.NetAmount = RetailAmount + ReturnAmount\r\n printEntity.ImprestBalance = InitialAmount + ImprestAmount\r\n printEntity.ShiftVoucherDetails = ShiftVoucherDetails.map(item => {\r\n const { SettleStyle: {Name} = {} } = item\r\n return {\r\n Name,\r\n ...item\r\n }\r\n })\r\n const { template } = printParams;\r\n return this.dutyPrintStringByTemplate(template,printEntity)\r\n }\r\n\r\n // 交班日结打印 type: Duty 交班 Dialy 日结\r\n // loadBTDutyAndDialyPrintData = (printParams, params, type) => {\r\n // let templateContent = '';\r\n // let printEntity = {};\r\n // const {\r\n // Code,\r\n // Store,\r\n // UserName,\r\n // POSCode,\r\n // POS,\r\n // POSName,\r\n // WorkingDate,\r\n // StartDate,\r\n // ShiftDate,\r\n // DailyDate,\r\n // RetailAmount,\r\n // ReturnAmount,\r\n // SalesStorageTotalAmount,\r\n // CashOutAmount,\r\n // CouponsDeduct,\r\n // CouponsAmount,\r\n // OnlineAmount,\r\n // TotalCount,\r\n // TotalCustom,\r\n // Price,\r\n // InitialAmount,\r\n // ImprestAmount,\r\n // ImprestBalanceAmount,\r\n // ShiftVoucherDetails,\r\n // DailyDetails,\r\n // WorkingTime,\r\n // ShiftTime,\r\n // StartTime,\r\n // DailyTime,\r\n // Memo\r\n // } = params || {};\r\n // printEntity.headerMap = new Map ();\r\n // printEntity.footerMap1 = new Map ();\r\n // printEntity.footerMap2 = new Map ();\r\n // printEntity.detailTopList = [];\r\n // printEntity.detailContentList = [];\r\n // printEntity.headerMap.set ('单号', Code);\r\n // printEntity.headerMap.set ('门店', Store.Name || '');\r\n // printEntity.headerMap.set ('POS编码', POSCode || '');\r\n // printEntity.headerMap.set ('POS名称', POSName || '');\r\n // printEntity.headerMap.set ('收 银 员', UserName || '');\r\n // printEntity.headerMap.set (\r\n // '上班日期',\r\n // WorkingDate + \" \" +WorkingTime \r\n // );\r\n // printEntity.headerMap.set (\r\n // type == 'Duty' ? '交班日期' : '日结日期',\r\n // type == 'Duty' ? ShiftDate + \" \" + ShiftTime : DailyDate + \" \" + DailyTime\r\n // );\r\n\r\n // printEntity.footerMap1.set ('销售金额', tool.format (RetailAmount) || '0.00');\r\n // printEntity.footerMap1.set ('退货金额', tool.format (ReturnAmount) || '0.00');\r\n // printEntity.footerMap1.set (\r\n // '净销售金额',\r\n // tool.format (RetailAmount + ReturnAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap1.set (\r\n // '储值销售金额',\r\n // tool.format (SalesStorageTotalAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap1.set (\r\n // '抵现销售金额',\r\n // tool.format (CashOutAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap1.set (\r\n // '券抵扣(负劳务行)',\r\n // tool.format (CouponsDeduct) || '0.00'\r\n // );\r\n // const { Differentiate } = enumController.getEnumOj();\r\n // printEntity.footerMap1.set (`${Differentiate.COUPON}抵扣`, tool.format (CouponsAmount) || '0.00');\r\n // printEntity.footerMap1.set ('线上收款金额', tool.format (OnlineAmount) || '0.00');\r\n // printEntity.footerMap1.set ('水单总数', TotalCount || '0');\r\n // printEntity.footerMap1.set ('来客数量', TotalCustom || '0');\r\n // printEntity.footerMap1.set ('客单价', tool.format (Price) || '0.00');\r\n\r\n // printEntity.detailTopList.push ({\r\n // Caption: '结算方式',\r\n // IsTitle: false,\r\n // IsFoot: false,\r\n // });\r\n // printEntity.detailTopList.push ({\r\n // Caption: '零售收款金额',\r\n // IsTitle: false,\r\n // IsFoot: false,\r\n // });\r\n // printEntity.detailTopList.push ({\r\n // Caption: '储值金额',\r\n // IsTitle: false,\r\n // IsFoot: false,\r\n // });\r\n\r\n // let details = [];\r\n // let DailyDetailsCommon = [];\r\n // if (type == 'Duty') {\r\n // DailyDetailsCommon = ShiftVoucherDetails;\r\n // } else {\r\n // DailyDetailsCommon = DailyDetails;\r\n // }\r\n // if (DailyDetailsCommon && DailyDetailsCommon.length != 0) {\r\n // DailyDetailsCommon.forEach (detailsOb => {\r\n // const { OrigAmount, MemberDepositAmount,SettleStyle} = detailsOb;\r\n // const { Name } = SettleStyle || {}\r\n // details.push ([\r\n // Name,\r\n // tool.format (OrigAmount) || '0.00',\r\n // tool.format (MemberDepositAmount) || '0.00',\r\n // ]);\r\n // });\r\n // }\r\n // printEntity.detailContentList.push (...details);\r\n\r\n // templateContent += '\\n';\r\n // // printEntity.footerMap2.set('现金', BalanceIntegral || '');\r\n // printEntity.footerMap2.set (\r\n // '备用金初始金额',\r\n // tool.format (InitialAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap2.set ('增减备用金', tool.format (ImprestAmount) || '0.00');\r\n // printEntity.footerMap2.set (\r\n // '备用金余额',\r\n // tool.format (InitialAmount+ImprestAmount) || '0.00'\r\n // );\r\n // // 设定打印尺寸\r\n // BTPrintFormatUtil.setLineByteSize (this.lineSize);\r\n\r\n // //单据头部\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printTitle (\r\n // type == 'Duty' ? '交班' : '日结'\r\n // );\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine ();\r\n // if (printEntity.headerMap && printEntity.headerMap.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (printEntity.headerMap);\r\n // }\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printStarTitle ('销售看板');\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine ();\r\n // //单据底部1\r\n // if (printEntity.footerMap1 && printEntity.footerMap1.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (\r\n // printEntity.footerMap1\r\n // );\r\n // }\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printStarTitle ('收银统计');\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine ();\r\n\r\n // //单据内容--头部\r\n // let mhList = [];\r\n // if (printEntity.detailTopList && printEntity.detailTopList.length > 0) {\r\n // printEntity.detailTopList.forEach (item => {\r\n // let mh = {\r\n // headerText: item.Caption,\r\n // headerWeight: 1,\r\n // isTitle: item.IsTitle,\r\n // isFoot: item.IsFoot,\r\n // };\r\n // mhList.push (mh);\r\n // });\r\n // }\r\n // //单据内容--明细\r\n // let bodyValueList = [];\r\n // printEntity.detailContentList.forEach (items => {\r\n // let bodyValue = [];\r\n // items.forEach (item => {\r\n // bodyValue.push (item);\r\n // });\r\n // bodyValueList.push (bodyValue);\r\n // });\r\n // templateContent += BTPrintFormatUtil.printMenuMSG (\r\n // bodyValueList,\r\n // mhList,\r\n // true\r\n // );\r\n\r\n // //单据底部2\r\n // if (printEntity.footerMap2 && printEntity.footerMap2.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (\r\n // printEntity.footerMap2\r\n // );\r\n // }\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine2 ();\r\n // templateContent += '备注:'+ (Memo || '');\r\n // templateContent += '\\n'; //备注\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.spaceCenterPrintMsg (\r\n // '收银员签字:',\r\n // '收银主管签字:'\r\n // );\r\n // templateContent += '\\n\\n\\n\\n';\r\n // return templateContent;\r\n // };\r\n\r\n loadBTPrintDataByTemplate = (printParams,printEntity) => {\r\n //支付方式--明细\r\n let pBodyValueList = [];\r\n printEntity.RetailPaymentDetails.forEach (items => {\r\n const { Amount = '0.00', SettleStyle: { Name = \"其他方式\" } } = items;\r\n // bodyValue.push(tool.format (Amount));\r\n pBodyValueList.push ({\r\n NameAndCode: Name,\r\n TotalAmount: tool.format (Amount)\r\n });\r\n });\r\n printEntity.RetailPaymentDetails = pBodyValueList;\r\n const { template } = printParams;\r\n return this.dutyPrintStringByTemplate(template,printEntity)\r\n }\r\n\r\n dutyPrintStringByTemplate = (template,data) => {\r\n const { width, body:templateBody } = template;\r\n let templateContent = \"\"\r\n BTPrintFormatUtil.setLineByteSize (Math.floor( width/58 * this.lineSize));\r\n for (let index = 0; index < templateBody.length; index++) {\r\n const printTemplateItem = templateBody[index];\r\n switch(printTemplateItem.type){\r\n case 'lineFeed':{\r\n if(printTemplateItem.height){\r\n let height = printTemplateItem.height;\r\n do{\r\n templateContent += '\\n'; \r\n height --;\r\n }while(height >0)\r\n }\r\n break;\r\n }\r\n case 'separateLine':{\r\n if(printTemplateItem.height){\r\n const { value } = printTemplateItem\r\n let height = printTemplateItem.height;\r\n do{\r\n templateContent += BTPrintFormatUtil.drawSeparateLine(value);\r\n height --;\r\n }while(height >0)\r\n }\r\n break;\r\n }\r\n case 'printTitle':{\r\n templateContent += BTPrintFormatUtil.printTitle(printTemplateItem.value || JSON.getCellValue(data,printTemplateItem.attribute) || \"\");\r\n break;\r\n }\r\n case 'printStarTitle':{\r\n templateContent += BTPrintFormatUtil.printStarTitle(printTemplateItem.value);\r\n break;\r\n }\r\n case 'spaceCenterPrintMsg':{\r\n templateContent += BTPrintFormatUtil.spaceCenterPrintMsg (...printTemplateItem.value);\r\n break;\r\n }\r\n case 'leftPrintMsg':{\r\n const { body } = printTemplateItem;\r\n const valueMap = new Map ();\r\n body.forEach(attr => {\r\n const { name , attribute , type } = attr;\r\n let value = ''\r\n if (attribute && attribute.length) {\r\n let symbolList = [];\r\n const attributeList = attribute && attribute.replace(/\\+{1}|\\-{1}/g,(symbol)=>{\r\n symbolList.push(symbol);\r\n return \"**_**\"\r\n }).split(\"**_**\");\r\n let totalValue = JSON.getCellValue(data,attributeList[0]);\r\n if (symbolList.length > 0) {\r\n for (let index = 0; index < symbolList.length; index++) {\r\n switch (symbolList[index]) {\r\n case \"+\": {\r\n totalValue += JSON.getCellValue(data, attributeList[index + 1]);\r\n break;\r\n }\r\n case \"-\": {\r\n totalValue -= JSON.getCellValue(data, attributeList[index + 1]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n value = this.formatValue(type,totalValue);\r\n }\r\n valueMap.set (name, value);\r\n });\r\n templateContent += BTPrintFormatUtil.leftPrintMsg (valueMap);\r\n break;\r\n }\r\n case 'printMenuMSG':{\r\n const { headerList , bodyList } = printTemplateItem;\r\n let bodyListArray = [];\r\n const listArray = JSON.getCellValue(data,bodyList.attribute);\r\n \r\n bodyList.list.forEach ((list, index)=>{\r\n const { type , attribute} = list \r\n // bodyListArray.push(this.formatValue(type,listArray[attribute]))\r\n \r\n listArray.map((item, i) => {\r\n const arr = bodyListArray[i] || []\r\n const listArr = arr[index] || []\r\n arr[index] = this.formatValue(type, JSON.getCellValue(item, attribute))\r\n bodyListArray[i] = arr\r\n })\r\n })\r\n templateContent += BTPrintFormatUtil.printMenuMSG (\r\n bodyListArray,\r\n headerList,\r\n true\r\n );\r\n break;\r\n }\r\n case 'text':{\r\n templateContent += printTemplateItem.value;\r\n break;\r\n }\r\n }\r\n }\r\n return templateContent;\r\n }\r\n\r\n formatValue = (type,value) => {\r\n switch(type){\r\n case \"string\":return value || \"\";\r\n case \"number\":return value || '0';\r\n case \"price\": return tool.format(value) || '0.00';\r\n default:return value || \"\";\r\n }\r\n }\r\n\r\n //正常打印机(58mm)数据 小票打印\r\n loadBTPrintData = params => {\r\n let templateContent = '';\r\n let printEntity = {};\r\n const {\r\n Store,\r\n UserName,\r\n Code,\r\n CreatedTime,\r\n details,\r\n TotalCount,\r\n TotalTaxAmount,\r\n WipeChange,\r\n Member,\r\n BalanceIntegral,\r\n Integral,\r\n BalanceStorage,\r\n RetailPaymentDetails\r\n } = params || {};\r\n printEntity.headerMap = new Map ();\r\n printEntity.detailTopList = [];\r\n printEntity.paymentTypeTopList = [];\r\n printEntity.paymentTypeDetailList = [];\r\n printEntity.detailContentList = [];\r\n printEntity.footerMap1 = new Map ();\r\n printEntity.footerMap2 = new Map ();\r\n printEntity.headerMap.set ('门店名称', Store.Name || '');\r\n printEntity.headerMap.set ('门店电话', Store.Telephone || '');\r\n printEntity.headerMap.set ('收银员', UserName || '');\r\n printEntity.headerMap.set ('单号', Code);\r\n printEntity.headerMap.set ('日期', CreatedTime || '');\r\n printEntity.detailTopList.push ({\r\n Caption: '商品名称',\r\n IsTitle: true,\r\n IsFoot: false,\r\n });\r\n printEntity.detailTopList.push ({\r\n Caption: '数量',\r\n IsTitle: false,\r\n IsFoot: false,\r\n });\r\n printEntity.detailTopList.push ({\r\n Caption: '单价',\r\n IsTitle: false,\r\n IsFoot: false,\r\n });\r\n printEntity.detailTopList.push ({\r\n Caption: '金额',\r\n IsTitle: false,\r\n IsFoot: false,\r\n });\r\n\r\n //支付方式\r\n printEntity.paymentTypeTopList.push ({\r\n Caption: '支付方式',\r\n IsTitle: false,\r\n IsFoot: false,\r\n })\r\n printEntity.paymentTypeTopList.push ({\r\n Caption: '金额',\r\n IsTitle: false,\r\n IsFoot: false,\r\n })\r\n printEntity.paymentTypeDetailList.push(...RetailPaymentDetails)\r\n\r\n printEntity.detailContentList.push (...details);\r\n printEntity.footerMap1.set ('数量', TotalCount);\r\n printEntity.footerMap1.set ('金额', TotalTaxAmount);\r\n printEntity.footerMap1.set ('抹零', WipeChange || '0.00');\r\n\r\n printEntity.footerMap2.set ('会员卡号', (Member && Member.CardCode) || '');\r\n printEntity.footerMap2.set ('会员手机', (Member && Member.Mobilephone) || '');\r\n printEntity.footerMap2.set ('积分余额', BalanceIntegral || '0');\r\n printEntity.footerMap2.set ('本次积分', Integral || '0');\r\n printEntity.footerMap2.set ('储值余额', BalanceStorage || '0.00');\r\n // 设定打印尺寸\r\n BTPrintFormatUtil.setLineByteSize (this.lineSize);\r\n\r\n //单据头部\r\n templateContent += '\\n';\r\n if (printEntity.headerMap && printEntity.headerMap.size > 0) {\r\n templateContent += BTPrintFormatUtil.leftPrintMsg (printEntity.headerMap);\r\n }\r\n\r\n templateContent += '\\n';\r\n\r\n //单据内容--头部\r\n let mhList = [];\r\n if (printEntity.detailTopList && printEntity.detailTopList.length > 0) {\r\n printEntity.detailTopList.forEach (item => {\r\n let mh = {\r\n headerText: item.Caption,\r\n headerWeight: 1,\r\n isTitle: item.IsTitle,\r\n isFoot: item.IsFoot,\r\n };\r\n mhList.push (mh);\r\n });\r\n }\r\n //单据内容--明细\r\n let bodyValueList = [];\r\n printEntity.detailContentList.forEach (items => {\r\n let bodyValue = [];\r\n items.forEach (item => {\r\n bodyValue.push (item);\r\n });\r\n bodyValueList.push (bodyValue);\r\n });\r\n templateContent += BTPrintFormatUtil.printMenuMSG (\r\n bodyValueList,\r\n mhList,\r\n true\r\n );\r\n\r\n //单据底部1\r\n if (printEntity.footerMap1 && printEntity.footerMap1.size > 0) {\r\n templateContent += BTPrintFormatUtil.leftPrintMsg(\r\n printEntity.footerMap1\r\n );\r\n }\r\n templateContent += BTPrintFormatUtil.drawSeparateLine();\r\n templateContent += '\\n';\r\n\r\n //支付方式--头部\r\n let phList = [];\r\n if (printEntity.paymentTypeTopList && printEntity.paymentTypeTopList.length > 0) {\r\n printEntity.paymentTypeTopList.forEach ((item,index) => {\r\n let mh = {\r\n headerText: item.Caption,\r\n headerWeight: index == 0 ? 3 : 1,\r\n isTitle: item.IsTitle,\r\n isFoot: item.IsFoot,\r\n };\r\n phList.push (mh);\r\n });\r\n }\r\n //支付方式--明细\r\n let pBodyValueList = [];\r\n printEntity.paymentTypeDetailList.forEach (items => {\r\n let bodyValue = [];\r\n const { Amount = '0.00', SettleStyle: { Name = \"其他方式\" } } = items;\r\n bodyValue.push(Name);\r\n bodyValue.push(tool.format (Amount));\r\n pBodyValueList.push (bodyValue);\r\n });\r\n templateContent += BTPrintFormatUtil.printMenuMSG (\r\n pBodyValueList,\r\n phList,\r\n true\r\n );\r\n\r\n \r\n //单据底部2\r\n if (printEntity.footerMap2 && printEntity.footerMap2.size > 0) {\r\n templateContent += BTPrintFormatUtil.leftPrintMsg (\r\n printEntity.footerMap2\r\n );\r\n }\r\n templateContent += '\\n';\r\n templateContent += BTPrintFormatUtil.drawSeparateLine2 ();\r\n templateContent += '\\n';\r\n templateContent += '\\t谢谢惠顾,欢迎再次光临';\r\n templateContent += '\\n\\n\\n';\r\n return templateContent;\r\n };\r\n\r\n //小票-云打印\r\n cloudPrint = (cloudContents, printParams, callback) => {\r\n const { Open ,Key, Sign, Name, Card,isLocalSunMi} = printParams || {};\r\n // 商米没有配置则调用本地打印接口\r\n if(this.isHorizontalSunMi && isLocalSunMi){\r\n this.sunMiLocalPrint(cloudContents, Name, callback);\r\n }else if (this.isHorizontalSunMi && !Open) {\r\n console.log (cloudContents);\r\n this.sunmiPrint (cloudContents, callback);\r\n } else if(Open) {\r\n const {Key, Sign, Name, Card} = printParams || {};\r\n let arr = [];\r\n arr.push (Sign, Key);\r\n if (Name) arr.push (Name);\r\n if (Card) arr.push (Card);\r\n let printerContent = arr.join ('#');\r\n let PrintCount = this.PrintCount; //打印次数\r\n API.openPrintMsg ({\r\n content: cloudContents,\r\n printerContent: printerContent,\r\n apiname: 'Open_printMsg',\r\n deviceCode: Sign,\r\n times: PrintCount,\r\n }).then (s => {\r\n if (typeof callback == 'function' && s && s.data) callback (s.data);\r\n });\r\n }\r\n };\r\n\r\n //小票-商米打印\r\n sunmiPrint = (cloudContents, callback) => {\r\n window.sunMi_OperatingCashier &&\r\n window.sunMi_OperatingCashier\r\n // 检测打印机状态\r\n .updatePrinterState().then(status => {\r\n const { state , message } = status || {};\r\n if(state == 1){\r\n window.sunMi_OperatingCashier &&\r\n window.sunMi_OperatingCashier\r\n .PrintSmallTicketter (cloudContents + '\\n\\n',this.PrintCount)\r\n .then (ret => {\r\n if(ret && ret.state && ret.state == 200){\r\n callback && callback ({\r\n ret:0,\r\n msg:\"打印成功\"\r\n });\r\n }else{\r\n callback && callback ({\r\n ret:-1,\r\n msg:ret.message?ret.message:\"打印失败\"\r\n });\r\n }\r\n });\r\n }else{\r\n callback && callback ({\r\n ret:-1,\r\n msg:message?message:\"打印失败\"\r\n });\r\n }\r\n })\r\n };\r\n\r\n sunMiLocalPrint = (cloudContents,deviceName,callback)=>{\r\n window.LocalPrintPlugin.printByDeviceName({deviceName,printContent:cloudContents,PrintCount:this.PrintCount}).then((res)=>{\r\n console.log(\"商米本地打印成功\",res);\r\n callback && callback ({\r\n ret:0,\r\n msg:\"打印成功\"\r\n });\r\n }).catch((error)=>{\r\n console.log(\"商米本地打印失败\",error)\r\n const { message } = error || {}\r\n callback && callback ({\r\n ret:-1,\r\n msg: message ||\"打印失败\"\r\n });\r\n })\r\n }\r\n\r\n\r\n cloudAddList = (printParams, callback) => {\r\n const {Key, Sign, Name, Card} = printParams || {};\r\n let arr = [];\r\n arr.push (Sign, Key);\r\n if (Name) arr.push (Name);\r\n if (Card) arr.push (Card);\r\n let printerContent = arr.join ('#');\r\n let PrintCount = this.PrintCount; //按照添加一次的\r\n API.openPrinterAddlist ({\r\n content: '',\r\n printerContent,\r\n apiname: 'Open_printerAddlist',\r\n deviceCode: Sign,\r\n times: PrintCount,\r\n }).then (s => {\r\n if (typeof callback == 'function' && s && s.data) callback (s.data);\r\n });\r\n };\r\n toDecimal2NoZero(x) {\r\n var f = Math.round(x * 100) / 100;\r\n var s = f.toString();\r\n return s;\r\n }\r\n}\r\nexport default PrintUtil;\r\n"]}
1
+ {"version":3,"sources":["tplus-components-touch/components/cloudPrint/index.js"],"names":["PrintUtil","doTestPrint","printParams","callback","cloudAddList","ret","result","cloudPrint","doPrint","Id","_this","API","getPrintDataInfo","then","Store","UserName","Code","CreatedTime","TotalCount","TotalTaxAmount","WipeChange","RetailDetails","Member","BalanceIntegral","Integral","BalanceStorage","RetailPaymentDetails","TotalDiscountAmount","details","tools","changePrivateInfo","length","map","inventoryCode","item","Inventory","NameAndCode","Name","quantity","toDecimal2NoZero","Quantity","Unit","quantityAndUnit","constr","loadBTPrintDataByTemplate","doDialyPrint","getDialyPrintDataInfo","loadBTDutyAndDialyPrintData","doDutyPrint","getDutyPrintDataInfo","doStoragePrint","getStoragePrintDataInfo","loadBTStoragePrintData","printEntity","StorageDetails","Person","StorageMutiSettleDetails","Mobilephone","MemberName","StorageName","template","dutyPrintStringByTemplate","type","WorkingDate","WorkingTime","DailyDate","DailyTime","RetailAmount","ReturnAmount","InitialAmount","ImprestAmount","ShiftDate","ShiftTime","ShiftVoucherDetails","WorkingDateAndTime","DailyDateAndTime","DutyDateAndTime","NetAmount","ImprestBalance","SettleStyle","pBodyValueList","forEach","items","Amount","push","TotalAmount","tool","format","data","width","templateBody","body","templateContent","BTPrintFormatUtil","setLineByteSize","Math","floor","lineSize","index","printTemplateItem","height","value","drawSeparateLine","printTitle","JSON","getCellValue","attribute","printStarTitle","spaceCenterPrintMsg","valueMap","name","attr","symbolList","attributeList","replace","symbol","split","totalValue","formatValue","set","leftPrintMsg","headerList","bodyList","bodyListArray","listArray","list","i","arr","listArr","printMenuMSG","loadBTPrintData","params","headerMap","detailTopList","paymentTypeTopList","paymentTypeDetailList","detailContentList","footerMap1","footerMap2","Telephone","Caption","IsTitle","IsFoot","CardCode","size","mhList","mh","headerText","headerWeight","isTitle","isFoot","bodyValueList","bodyValue","phList","drawSeparateLine2","cloudContents","Open","Key","Sign","Card","isLocalSunMi","isHorizontalSunMi","sunMiLocalPrint","console","log","sunmiPrint","printerContent","join","PrintCount","openPrintMsg","content","apiname","deviceCode","times","s","window","sunMi_OperatingCashier","updatePrinterState","status","state","message","PrintSmallTicketter","msg","deviceName","LocalPrintPlugin","printByDeviceName","printContent","res","catch","error","openPrinterAddlist","BTPrintEntity","BTPrintContent","Precision","Price","TaxAmount","platform","enumController","getEnumOj","Differentiate","IdsettleStyleList","x","f","round","toString"],"mappings":"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jB,cAAM,IADW;AAEjB,cAAM,IAFW;AAGjB,cAAM,MAHW;AAIjB,cAAMD,aAJW;AAKjB,aAAK,IALY;AAMjB,aAAK,IANY;AAOjB,aAAK,MAPY;AAQjB,aAAK,MARY;AASjB,aAAK,KATY;AAUjB,aAAK,OAVY;AAWjB,aAAK,KAXY;AAYjB,aAAK,MAZY;AAajB,aAAK;AAbY;AADR,KAAb;AAiBD;;AAED;;;AAgBA;;;AA0FA;;;AAUA;;;AAUA;;;AAUA;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqIA;;;AAsKA;;;AA6BA;;;;;qCAqEiBE,C,EAAG;AAChB,UAAIC,IAAI3G,KAAK4G,KAAL,CAAWF,IAAI,GAAf,IAAsB,GAA9B;AACA,UAAI3B,IAAI4B,EAAEE,QAAF,EAAR;AACA,aAAO9B,CAAP;AACH;;;;;kBAEY9K,S","file":"index.js","sourcesContent":["import BTPrintFormatUtil from './BTPrintFormatUtil';\r\nimport API from './api';\r\nimport {tools as tool} from 'mutants-util';\r\nimport {PosInitData} from 'tplus-poslogin';\r\nimport {platform, enumController} from 'mutants-util';\r\nimport tools from \"../../util/tools\";\r\nimport retailTemplateOne from './printTemplate/retail_one.json'\r\nclass PrintUtil {\r\n constructor () {\r\n this.BTPrintEntity = {};\r\n this.BTPrintContent = '';\r\n this.PrintCount = 1;\r\n this.lineSize = 32;\r\n this.Precision = {\r\n Quantity: PosInitData ('QuantityPrecision'),\r\n Price: PosInitData ('PricePrecision'),\r\n TaxAmount: PosInitData ('AmountPrecision'),\r\n };\r\n const {isHorizontalSunMi} = platform || {};\r\n this.isHorizontalSunMi = !!isHorizontalSunMi;\r\n const { Differentiate } = enumController.getEnumOj();\r\n this.state = {\r\n IdsettleStyleList: {\r\n '10': '微信',\r\n '11': '转账',\r\n '12': '扫码收款',\r\n '13': Differentiate,\r\n '1': '现金',\r\n '5': '支票',\r\n '4': '银行汇款',\r\n '3': '银行本票',\r\n '2': '信用卡',\r\n '6': '积分储值卡',\r\n '7': '储值卡',\r\n '8': '积分抵现',\r\n '9': '支付宝',\r\n }\r\n }\r\n }\r\n\r\n //执行测试打印\r\n doTestPrint = (printParams, callback) => {\r\n this.cloudAddList (printParams, result => {\r\n const {ret} = result;\r\n if (ret === 0) {\r\n this.cloudPrint (\r\n '\\n\\n' + '飞蛾打印机测试打印成功。' + '\\n\\n',\r\n printParams,\r\n callback\r\n );\r\n } else {\r\n if (typeof callback == 'function') callback (result);\r\n }\r\n });\r\n };\r\n\r\n // 触发打印\r\n doPrint = (printParams, Id, callback) => {\r\n if (!printParams || !Id) return;\r\n let _this = this;\r\n API.getPrintDataInfo (Id).then (ret => {\r\n let {\r\n Store,\r\n UserName,\r\n Code,\r\n CreatedTime,\r\n TotalCount,\r\n TotalTaxAmount,\r\n WipeChange,\r\n RetailDetails,\r\n Member,\r\n BalanceIntegral,\r\n Integral,\r\n BalanceStorage,\r\n RetailPaymentDetails,\r\n TotalDiscountAmount\r\n } = ret || {};\r\n let details = [];\r\n\r\n Member = tools.changePrivateInfo(Member, 'print');\r\n\r\n if (RetailDetails && RetailDetails.length > 0) {\r\n RetailDetails.map (item => {\r\n const inventoryCode = item.Inventory.Code\r\n item.Inventory.NameAndCode = item.Inventory.Name + `(${inventoryCode})`;\r\n let quantity = this.toDecimal2NoZero (item.Quantity) \r\n quantity += item.Unit.Name || '';\r\n item.quantityAndUnit = quantity;\r\n\r\n // 零售价\r\n // let Price = this.toDecimal2NoZero (item.Price);\r\n\r\n // // 商品编码\r\n // let inventoryCode = item.Inventory.Code;\r\n\r\n // let taxPrice = this.toDecimal2NoZero (item.TaxPrice);\r\n // // item.TaxPrice,\r\n // // this.Precision.Price\r\n\r\n // // 金额\r\n // let taxAmount = tool.formatPrecision (\r\n // item.TaxAmount,\r\n // this.Precision.TaxAmount\r\n // );\r\n // details.push ([item.Inventory.Name + `(${inventoryCode})`, quantity,taxPrice, Price, taxAmount]);\r\n\r\n });\r\n // 总优惠金额\r\n // let totalDiscount = this.toDecimal2NoZero(item.TotalDiscount);\r\n }\r\n let constr = _this.loadBTPrintDataByTemplate (printParams,{\r\n Store,\r\n UserName,\r\n Code,\r\n CreatedTime,\r\n details:RetailDetails,\r\n TotalCount,\r\n TotalTaxAmount,\r\n WipeChange,\r\n Member,\r\n BalanceIntegral,\r\n Integral,\r\n BalanceStorage,\r\n RetailPaymentDetails,\r\n TotalDiscountAmount\r\n });\r\n\r\n // let constr = _this.loadBTPrintData ({\r\n // Store,\r\n // UserName,\r\n // Code,\r\n // CreatedTime,\r\n // details,\r\n // TotalCount,\r\n // TotalTaxAmount,\r\n // WipeChange,\r\n // Member,\r\n // BalanceIntegral,\r\n // Integral,\r\n // BalanceStorage,\r\n // RetailPaymentDetails\r\n // });\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n // 日结打印\r\n doDialyPrint = (printParams, Id, callback) => {\r\n if (!Id) return;\r\n let _this = this;\r\n API.getDialyPrintDataInfo (Id).then (ret => {\r\n let constr = _this.loadBTDutyAndDialyPrintData (printParams, ret || {}, 'Dialy');\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n // 交班打印\r\n doDutyPrint = (printParams, Id, callback) => {\r\n if (!Id) return;\r\n let _this = this;\r\n API.getDutyPrintDataInfo (Id).then (ret => {\r\n let constr = _this.loadBTDutyAndDialyPrintData (printParams, ret, 'Duty');\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n // 储值打印\r\n doStoragePrint = (printParams, Id, callback) => {\r\n if (!Id) return;\r\n let _this = this;\r\n API.getStoragePrintDataInfo (Id).then (ret => {\r\n let constr = _this.loadBTStoragePrintData (printParams, ret || {});\r\n _this.cloudPrint (constr, printParams, callback);\r\n });\r\n };\r\n\r\n //储值打印\r\n loadBTStoragePrintData = (printParams, printEntity) => {\r\n let { Member = {}, StorageDetails = [], Person, StorageMutiSettleDetails} = printEntity || {};\r\n const { Mobilephone, Name : MemberName } = Member;\r\n const { Name : StorageName} = Person || {};\r\n printEntity.StorageName = StorageName\r\n printEntity.MemberName = MemberName\r\n \r\n const { template } = printParams;\r\n return this.dutyPrintStringByTemplate(template,printEntity)\r\n }\r\n\r\n //储值打印\r\n // loadBTStoragePrintData = (printParams, params) => {\r\n // let templateContent = '';\r\n // let printEntity = {};\r\n // const {\r\n // Store,\r\n // StorageDetails,\r\n // CreatedTime,\r\n // Member,\r\n // CardCode,\r\n // StorageMutiSettleDetails,\r\n // Person,\r\n // } = params || {};\r\n // const { Mobilephone, Name : MemberName } = Member || {};\r\n // const { Name : StorageName} = Person || {};\r\n // const {\r\n // ThisStorageAmount,\r\n // ThisPresentAmount,\r\n // AfterBalanceStorage,\r\n // } = StorageDetails[0] || {};\r\n // printEntity.headerMap = new Map ();\r\n // printEntity.footerMap1 = new Map ();\r\n // printEntity.footerMap2 = new Map ();\r\n // printEntity.headerMap.set ('日期', CreatedTime || '');\r\n // printEntity.headerMap.set ('储值业务员', StorageName || '');\r\n // printEntity.headerMap.set ('会员卡号', CardCode || '');\r\n // printEntity.headerMap.set ('手机号', Mobilephone || '');\r\n // printEntity.headerMap.set ('会员姓名', MemberName || '');\r\n // printEntity.headerMap.set ('本次储存金额', tool.format (ThisStorageAmount) || '');\r\n // printEntity.headerMap.set ('本次赠送金额', tool.format (ThisPresentAmount) || '');\r\n // printEntity.headerMap.set (\r\n // '本次储值后金额',\r\n // tool.format (AfterBalanceStorage) || ''\r\n // );\r\n // if (StorageMutiSettleDetails && StorageMutiSettleDetails.length != 0) {\r\n // StorageMutiSettleDetails.forEach (details => {\r\n // const {StorageAmount,SettleStyle} = details || {};\r\n // const { Name } = SettleStyle || {}\r\n // printEntity.headerMap.set (\r\n // Name,\r\n // StorageAmount || '0.00'\r\n // );\r\n // });\r\n // }\r\n // printEntity.headerMap.set ('顾客签字', '');\r\n\r\n // // 设定打印尺寸\r\n // BTPrintFormatUtil.setLineByteSize (this.lineSize);\r\n\r\n // //单据头部\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printTitle (Store.Name || '');\r\n // if (printEntity.headerMap && printEntity.headerMap.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (printEntity.headerMap);\r\n // }\r\n // templateContent += '\\n\\n\\n\\n';\r\n // return templateContent;\r\n // };\r\n\r\n // 交班日结打印 type: Duty 交班 Dialy 日结\r\n loadBTDutyAndDialyPrintData = (printParams, printEntity, type) => {\r\n const { WorkingDate, WorkingTime, DailyDate, DailyTime, RetailAmount, ReturnAmount, InitialAmount, ImprestAmount, ShiftDate, ShiftTime, ShiftVoucherDetails } = printEntity\r\n printEntity.WorkingDateAndTime = WorkingDate + ' ' + WorkingTime\r\n printEntity.DailyDateAndTime = DailyDate + ' ' + DailyTime\r\n printEntity.DutyDateAndTime = ShiftDate + ' ' + ShiftTime\r\n printEntity.NetAmount = RetailAmount + ReturnAmount\r\n printEntity.ImprestBalance = InitialAmount + ImprestAmount\r\n printEntity.ShiftVoucherDetails = ShiftVoucherDetails.map(item => {\r\n const { SettleStyle: {Name} = {} } = item\r\n return {\r\n Name,\r\n ...item\r\n }\r\n })\r\n const { template } = printParams;\r\n return this.dutyPrintStringByTemplate(template,printEntity)\r\n }\r\n\r\n // 交班日结打印 type: Duty 交班 Dialy 日结\r\n // loadBTDutyAndDialyPrintData = (printParams, params, type) => {\r\n // let templateContent = '';\r\n // let printEntity = {};\r\n // const {\r\n // Code,\r\n // Store,\r\n // UserName,\r\n // POSCode,\r\n // POS,\r\n // POSName,\r\n // WorkingDate,\r\n // StartDate,\r\n // ShiftDate,\r\n // DailyDate,\r\n // RetailAmount,\r\n // ReturnAmount,\r\n // SalesStorageTotalAmount,\r\n // CashOutAmount,\r\n // CouponsDeduct,\r\n // CouponsAmount,\r\n // OnlineAmount,\r\n // TotalCount,\r\n // TotalCustom,\r\n // Price,\r\n // InitialAmount,\r\n // ImprestAmount,\r\n // ImprestBalanceAmount,\r\n // ShiftVoucherDetails,\r\n // DailyDetails,\r\n // WorkingTime,\r\n // ShiftTime,\r\n // StartTime,\r\n // DailyTime,\r\n // Memo\r\n // } = params || {};\r\n // printEntity.headerMap = new Map ();\r\n // printEntity.footerMap1 = new Map ();\r\n // printEntity.footerMap2 = new Map ();\r\n // printEntity.detailTopList = [];\r\n // printEntity.detailContentList = [];\r\n // printEntity.headerMap.set ('单号', Code);\r\n // printEntity.headerMap.set ('门店', Store.Name || '');\r\n // printEntity.headerMap.set ('POS编码', POSCode || '');\r\n // printEntity.headerMap.set ('POS名称', POSName || '');\r\n // printEntity.headerMap.set ('收 银 员', UserName || '');\r\n // printEntity.headerMap.set (\r\n // '上班日期',\r\n // WorkingDate + \" \" +WorkingTime \r\n // );\r\n // printEntity.headerMap.set (\r\n // type == 'Duty' ? '交班日期' : '日结日期',\r\n // type == 'Duty' ? ShiftDate + \" \" + ShiftTime : DailyDate + \" \" + DailyTime\r\n // );\r\n\r\n // printEntity.footerMap1.set ('销售金额', tool.format (RetailAmount) || '0.00');\r\n // printEntity.footerMap1.set ('退货金额', tool.format (ReturnAmount) || '0.00');\r\n // printEntity.footerMap1.set (\r\n // '净销售金额',\r\n // tool.format (RetailAmount + ReturnAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap1.set (\r\n // '储值销售金额',\r\n // tool.format (SalesStorageTotalAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap1.set (\r\n // '抵现销售金额',\r\n // tool.format (CashOutAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap1.set (\r\n // '券抵扣(负劳务行)',\r\n // tool.format (CouponsDeduct) || '0.00'\r\n // );\r\n // const { Differentiate } = enumController.getEnumOj();\r\n // printEntity.footerMap1.set (`${Differentiate.COUPON}抵扣`, tool.format (CouponsAmount) || '0.00');\r\n // printEntity.footerMap1.set ('线上收款金额', tool.format (OnlineAmount) || '0.00');\r\n // printEntity.footerMap1.set ('水单总数', TotalCount || '0');\r\n // printEntity.footerMap1.set ('来客数量', TotalCustom || '0');\r\n // printEntity.footerMap1.set ('客单价', tool.format (Price) || '0.00');\r\n\r\n // printEntity.detailTopList.push ({\r\n // Caption: '结算方式',\r\n // IsTitle: false,\r\n // IsFoot: false,\r\n // });\r\n // printEntity.detailTopList.push ({\r\n // Caption: '零售收款金额',\r\n // IsTitle: false,\r\n // IsFoot: false,\r\n // });\r\n // printEntity.detailTopList.push ({\r\n // Caption: '储值金额',\r\n // IsTitle: false,\r\n // IsFoot: false,\r\n // });\r\n\r\n // let details = [];\r\n // let DailyDetailsCommon = [];\r\n // if (type == 'Duty') {\r\n // DailyDetailsCommon = ShiftVoucherDetails;\r\n // } else {\r\n // DailyDetailsCommon = DailyDetails;\r\n // }\r\n // if (DailyDetailsCommon && DailyDetailsCommon.length != 0) {\r\n // DailyDetailsCommon.forEach (detailsOb => {\r\n // const { OrigAmount, MemberDepositAmount,SettleStyle} = detailsOb;\r\n // const { Name } = SettleStyle || {}\r\n // details.push ([\r\n // Name,\r\n // tool.format (OrigAmount) || '0.00',\r\n // tool.format (MemberDepositAmount) || '0.00',\r\n // ]);\r\n // });\r\n // }\r\n // printEntity.detailContentList.push (...details);\r\n\r\n // templateContent += '\\n';\r\n // // printEntity.footerMap2.set('现金', BalanceIntegral || '');\r\n // printEntity.footerMap2.set (\r\n // '备用金初始金额',\r\n // tool.format (InitialAmount) || '0.00'\r\n // );\r\n // printEntity.footerMap2.set ('增减备用金', tool.format (ImprestAmount) || '0.00');\r\n // printEntity.footerMap2.set (\r\n // '备用金余额',\r\n // tool.format (InitialAmount+ImprestAmount) || '0.00'\r\n // );\r\n // // 设定打印尺寸\r\n // BTPrintFormatUtil.setLineByteSize (this.lineSize);\r\n\r\n // //单据头部\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printTitle (\r\n // type == 'Duty' ? '交班' : '日结'\r\n // );\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine ();\r\n // if (printEntity.headerMap && printEntity.headerMap.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (printEntity.headerMap);\r\n // }\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printStarTitle ('销售看板');\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine ();\r\n // //单据底部1\r\n // if (printEntity.footerMap1 && printEntity.footerMap1.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (\r\n // printEntity.footerMap1\r\n // );\r\n // }\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.printStarTitle ('收银统计');\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine ();\r\n\r\n // //单据内容--头部\r\n // let mhList = [];\r\n // if (printEntity.detailTopList && printEntity.detailTopList.length > 0) {\r\n // printEntity.detailTopList.forEach (item => {\r\n // let mh = {\r\n // headerText: item.Caption,\r\n // headerWeight: 1,\r\n // isTitle: item.IsTitle,\r\n // isFoot: item.IsFoot,\r\n // };\r\n // mhList.push (mh);\r\n // });\r\n // }\r\n // //单据内容--明细\r\n // let bodyValueList = [];\r\n // printEntity.detailContentList.forEach (items => {\r\n // let bodyValue = [];\r\n // items.forEach (item => {\r\n // bodyValue.push (item);\r\n // });\r\n // bodyValueList.push (bodyValue);\r\n // });\r\n // templateContent += BTPrintFormatUtil.printMenuMSG (\r\n // bodyValueList,\r\n // mhList,\r\n // true\r\n // );\r\n\r\n // //单据底部2\r\n // if (printEntity.footerMap2 && printEntity.footerMap2.size > 0) {\r\n // templateContent += BTPrintFormatUtil.leftPrintMsg (\r\n // printEntity.footerMap2\r\n // );\r\n // }\r\n // templateContent += BTPrintFormatUtil.drawSeparateLine2 ();\r\n // templateContent += '备注:'+ (Memo || '');\r\n // templateContent += '\\n'; //备注\r\n // templateContent += '\\n';\r\n // templateContent += BTPrintFormatUtil.spaceCenterPrintMsg (\r\n // '收银员签字:',\r\n // '收银主管签字:'\r\n // );\r\n // templateContent += '\\n\\n\\n\\n';\r\n // return templateContent;\r\n // };\r\n\r\n loadBTPrintDataByTemplate = (printParams,printEntity) => {\r\n //支付方式--明细\r\n let pBodyValueList = [];\r\n printEntity.RetailPaymentDetails.forEach (items => {\r\n const { Amount = '0.00', SettleStyle: { Name = \"其他方式\" } } = items;\r\n // bodyValue.push(tool.format (Amount));\r\n pBodyValueList.push ({\r\n NameAndCode: Name,\r\n TotalAmount: tool.format (Amount)\r\n });\r\n });\r\n printEntity.RetailPaymentDetails = pBodyValueList;\r\n const { template } = printParams;\r\n return this.dutyPrintStringByTemplate(template,printEntity)\r\n }\r\n\r\n dutyPrintStringByTemplate = (template,data) => {\r\n const { width, body:templateBody } = template;\r\n let templateContent = \"\"\r\n BTPrintFormatUtil.setLineByteSize (Math.floor( width/58 * this.lineSize));\r\n for (let index = 0; index < templateBody.length; index++) {\r\n const printTemplateItem = templateBody[index];\r\n switch(printTemplateItem.type){\r\n case 'lineFeed':{\r\n if(printTemplateItem.height){\r\n let height = printTemplateItem.height;\r\n do{\r\n templateContent += '\\n'; \r\n height --;\r\n }while(height >0)\r\n }\r\n break;\r\n }\r\n case 'separateLine':{\r\n if(printTemplateItem.height){\r\n const { value } = printTemplateItem\r\n let height = printTemplateItem.height;\r\n do{\r\n templateContent += BTPrintFormatUtil.drawSeparateLine(value);\r\n height --;\r\n }while(height >0)\r\n }\r\n break;\r\n }\r\n case 'printTitle':{\r\n templateContent += BTPrintFormatUtil.printTitle(printTemplateItem.value || JSON.getCellValue(data,printTemplateItem.attribute) || \"\");\r\n break;\r\n }\r\n case 'printStarTitle':{\r\n templateContent += BTPrintFormatUtil.printStarTitle(printTemplateItem.value);\r\n break;\r\n }\r\n case 'spaceCenterPrintMsg':{\r\n templateContent += BTPrintFormatUtil.spaceCenterPrintMsg (...printTemplateItem.value);\r\n break;\r\n }\r\n case 'leftPrintMsg':{\r\n const { body } = printTemplateItem;\r\n const valueMap = new Map ();\r\n body.forEach(attr => {\r\n const { name , attribute , type } = attr;\r\n let value = ''\r\n if (attribute && attribute.length) {\r\n let symbolList = [];\r\n const attributeList = attribute && attribute.replace(/\\+{1}|\\-{1}/g,(symbol)=>{\r\n symbolList.push(symbol);\r\n return \"**_**\"\r\n }).split(\"**_**\");\r\n let totalValue = JSON.getCellValue(data,attributeList[0]);\r\n if (symbolList.length > 0) {\r\n for (let index = 0; index < symbolList.length; index++) {\r\n switch (symbolList[index]) {\r\n case \"+\": {\r\n totalValue += JSON.getCellValue(data, attributeList[index + 1]);\r\n break;\r\n }\r\n case \"-\": {\r\n totalValue -= JSON.getCellValue(data, attributeList[index + 1]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n value = this.formatValue(type,totalValue);\r\n }\r\n valueMap.set (name, value);\r\n });\r\n templateContent += BTPrintFormatUtil.leftPrintMsg (valueMap);\r\n break;\r\n }\r\n case 'printMenuMSG':{\r\n const { headerList , bodyList } = printTemplateItem;\r\n let bodyListArray = [];\r\n const listArray = JSON.getCellValue(data,bodyList.attribute);\r\n \r\n bodyList.list.forEach ((list, index)=>{\r\n const { type , attribute} = list \r\n // bodyListArray.push(this.formatValue(type,listArray[attribute]))\r\n \r\n listArray.map((item, i) => {\r\n const arr = bodyListArray[i] || []\r\n const listArr = arr[index] || []\r\n arr[index] = this.formatValue(type, JSON.getCellValue(item, attribute))\r\n bodyListArray[i] = arr\r\n })\r\n })\r\n templateContent += BTPrintFormatUtil.printMenuMSG (\r\n bodyListArray,\r\n headerList,\r\n true\r\n );\r\n break;\r\n }\r\n case 'text':{\r\n templateContent += printTemplateItem.value;\r\n break;\r\n }\r\n }\r\n }\r\n return templateContent;\r\n }\r\n\r\n formatValue = (type,value) => {\r\n switch(type){\r\n case \"string\":return value || \"\";\r\n case \"number\":return value || '0';\r\n case \"price\": return tool.format(value) || '0.00';\r\n default:return value || \"\";\r\n }\r\n }\r\n\r\n //正常打印机(58mm)数据 小票打印\r\n loadBTPrintData = params => {\r\n let templateContent = '';\r\n let printEntity = {};\r\n const {\r\n Store,\r\n UserName,\r\n Code,\r\n CreatedTime,\r\n details,\r\n TotalCount,\r\n TotalTaxAmount,\r\n WipeChange,\r\n Member,\r\n BalanceIntegral,\r\n Integral,\r\n BalanceStorage,\r\n RetailPaymentDetails\r\n } = params || {};\r\n printEntity.headerMap = new Map ();\r\n printEntity.detailTopList = [];\r\n printEntity.paymentTypeTopList = [];\r\n printEntity.paymentTypeDetailList = [];\r\n printEntity.detailContentList = [];\r\n printEntity.footerMap1 = new Map ();\r\n printEntity.footerMap2 = new Map ();\r\n printEntity.headerMap.set ('门店名称', Store.Name || '');\r\n printEntity.headerMap.set ('门店电话', Store.Telephone || '');\r\n printEntity.headerMap.set ('收银员', UserName || '');\r\n printEntity.headerMap.set ('单号', Code);\r\n printEntity.headerMap.set ('日期', CreatedTime || '');\r\n printEntity.detailTopList.push ({\r\n Caption: '商品名称',\r\n IsTitle: true,\r\n IsFoot: false,\r\n });\r\n printEntity.detailTopList.push ({\r\n Caption: '数量',\r\n IsTitle: false,\r\n IsFoot: false,\r\n });\r\n printEntity.detailTopList.push ({\r\n Caption: '单价',\r\n IsTitle: false,\r\n IsFoot: false,\r\n });\r\n printEntity.detailTopList.push ({\r\n Caption: '金额',\r\n IsTitle: false,\r\n IsFoot: false,\r\n });\r\n\r\n //支付方式\r\n printEntity.paymentTypeTopList.push ({\r\n Caption: '支付方式',\r\n IsTitle: false,\r\n IsFoot: false,\r\n })\r\n printEntity.paymentTypeTopList.push ({\r\n Caption: '金额',\r\n IsTitle: false,\r\n IsFoot: false,\r\n })\r\n printEntity.paymentTypeDetailList.push(...RetailPaymentDetails)\r\n\r\n printEntity.detailContentList.push (...details);\r\n printEntity.footerMap1.set ('数量', TotalCount);\r\n printEntity.footerMap1.set ('金额', TotalTaxAmount);\r\n printEntity.footerMap1.set ('抹零', WipeChange || '0.00');\r\n\r\n printEntity.footerMap2.set ('会员卡号', (Member && Member.CardCode) || '');\r\n printEntity.footerMap2.set ('会员手机', (Member && Member.Mobilephone) || '');\r\n printEntity.footerMap2.set ('积分余额', BalanceIntegral || '0');\r\n printEntity.footerMap2.set ('本次积分', Integral || '0');\r\n printEntity.footerMap2.set ('储值余额', BalanceStorage || '0.00');\r\n // 设定打印尺寸\r\n BTPrintFormatUtil.setLineByteSize (this.lineSize);\r\n\r\n //单据头部\r\n templateContent += '\\n';\r\n if (printEntity.headerMap && printEntity.headerMap.size > 0) {\r\n templateContent += BTPrintFormatUtil.leftPrintMsg (printEntity.headerMap);\r\n }\r\n\r\n templateContent += '\\n';\r\n\r\n //单据内容--头部\r\n let mhList = [];\r\n if (printEntity.detailTopList && printEntity.detailTopList.length > 0) {\r\n printEntity.detailTopList.forEach (item => {\r\n let mh = {\r\n headerText: item.Caption,\r\n headerWeight: 1,\r\n isTitle: item.IsTitle,\r\n isFoot: item.IsFoot,\r\n };\r\n mhList.push (mh);\r\n });\r\n }\r\n //单据内容--明细\r\n let bodyValueList = [];\r\n printEntity.detailContentList.forEach (items => {\r\n let bodyValue = [];\r\n items.forEach (item => {\r\n bodyValue.push (item);\r\n });\r\n bodyValueList.push (bodyValue);\r\n });\r\n templateContent += BTPrintFormatUtil.printMenuMSG (\r\n bodyValueList,\r\n mhList,\r\n true\r\n );\r\n\r\n //单据底部1\r\n if (printEntity.footerMap1 && printEntity.footerMap1.size > 0) {\r\n templateContent += BTPrintFormatUtil.leftPrintMsg(\r\n printEntity.footerMap1\r\n );\r\n }\r\n templateContent += BTPrintFormatUtil.drawSeparateLine();\r\n templateContent += '\\n';\r\n\r\n //支付方式--头部\r\n let phList = [];\r\n if (printEntity.paymentTypeTopList && printEntity.paymentTypeTopList.length > 0) {\r\n printEntity.paymentTypeTopList.forEach ((item,index) => {\r\n let mh = {\r\n headerText: item.Caption,\r\n headerWeight: index == 0 ? 3 : 1,\r\n isTitle: item.IsTitle,\r\n isFoot: item.IsFoot,\r\n };\r\n phList.push (mh);\r\n });\r\n }\r\n //支付方式--明细\r\n let pBodyValueList = [];\r\n printEntity.paymentTypeDetailList.forEach (items => {\r\n let bodyValue = [];\r\n const { Amount = '0.00', SettleStyle: { Name = \"其他方式\" } } = items;\r\n bodyValue.push(Name);\r\n bodyValue.push(tool.format (Amount));\r\n pBodyValueList.push (bodyValue);\r\n });\r\n templateContent += BTPrintFormatUtil.printMenuMSG (\r\n pBodyValueList,\r\n phList,\r\n true\r\n );\r\n\r\n \r\n //单据底部2\r\n if (printEntity.footerMap2 && printEntity.footerMap2.size > 0) {\r\n templateContent += BTPrintFormatUtil.leftPrintMsg (\r\n printEntity.footerMap2\r\n );\r\n }\r\n templateContent += '\\n';\r\n templateContent += BTPrintFormatUtil.drawSeparateLine2 ();\r\n templateContent += '\\n';\r\n templateContent += '\\t谢谢惠顾,欢迎再次光临';\r\n templateContent += '\\n\\n\\n';\r\n return templateContent;\r\n };\r\n\r\n //小票-云打印\r\n cloudPrint = (cloudContents, printParams, callback) => {\r\n const { Open ,Key, Sign, Name, Card,isLocalSunMi} = printParams || {};\r\n // 商米没有配置则调用本地打印接口\r\n if(this.isHorizontalSunMi && isLocalSunMi){\r\n this.sunMiLocalPrint(cloudContents, Name, callback);\r\n }else if (this.isHorizontalSunMi && !Open) {\r\n console.log (cloudContents);\r\n this.sunmiPrint (cloudContents, callback);\r\n } else if(Open) {\r\n const {Key, Sign, Name, Card} = printParams || {};\r\n let arr = [];\r\n arr.push (Sign, Key);\r\n if (Name) arr.push (Name);\r\n if (Card) arr.push (Card);\r\n let printerContent = arr.join ('#');\r\n let PrintCount = this.PrintCount; //打印次数\r\n API.openPrintMsg ({\r\n content: cloudContents,\r\n printerContent: printerContent,\r\n apiname: 'Open_printMsg',\r\n deviceCode: Sign,\r\n times: PrintCount,\r\n }).then (s => {\r\n if (typeof callback == 'function' && s && s.data) callback (s.data);\r\n });\r\n }\r\n };\r\n\r\n //小票-商米打印\r\n sunmiPrint = (cloudContents, callback) => {\r\n window.sunMi_OperatingCashier &&\r\n window.sunMi_OperatingCashier\r\n // 检测打印机状态\r\n .updatePrinterState().then(status => {\r\n const { state , message } = status || {};\r\n if(state == 1){\r\n window.sunMi_OperatingCashier &&\r\n window.sunMi_OperatingCashier\r\n .PrintSmallTicketter (cloudContents + '\\n\\n',this.PrintCount)\r\n .then (ret => {\r\n if(ret && ret.state && ret.state == 200){\r\n callback && callback ({\r\n ret:0,\r\n msg:\"打印成功\"\r\n });\r\n }else{\r\n callback && callback ({\r\n ret:-1,\r\n msg:ret.message?ret.message:\"打印失败\"\r\n });\r\n }\r\n });\r\n }else{\r\n callback && callback ({\r\n ret:-1,\r\n msg:message?message:\"打印失败\"\r\n });\r\n }\r\n })\r\n };\r\n\r\n sunMiLocalPrint = (cloudContents,deviceName,callback)=>{\r\n window.LocalPrintPlugin.printByDeviceName({deviceName,printContent:cloudContents,PrintCount:this.PrintCount}).then((res)=>{\r\n console.log(\"商米本地打印成功\",res);\r\n callback && callback ({\r\n ret:0,\r\n msg:\"打印成功\"\r\n });\r\n }).catch((error)=>{\r\n console.log(\"商米本地打印失败\",error)\r\n const { message } = error || {}\r\n callback && callback ({\r\n ret:-1,\r\n msg: message ||\"打印失败\"\r\n });\r\n })\r\n }\r\n\r\n\r\n cloudAddList = (printParams, callback) => {\r\n const {Key, Sign, Name, Card} = printParams || {};\r\n let arr = [];\r\n arr.push (Sign, Key);\r\n if (Name) arr.push (Name);\r\n if (Card) arr.push (Card);\r\n let printerContent = arr.join ('#');\r\n let PrintCount = this.PrintCount; //按照添加一次的\r\n API.openPrinterAddlist ({\r\n content: '',\r\n printerContent,\r\n apiname: 'Open_printerAddlist',\r\n deviceCode: Sign,\r\n times: PrintCount,\r\n }).then (s => {\r\n if (typeof callback == 'function' && s && s.data) callback (s.data);\r\n });\r\n };\r\n toDecimal2NoZero(x) {\r\n var f = Math.round(x * 100) / 100;\r\n var s = f.toString();\r\n return s;\r\n }\r\n}\r\nexport default PrintUtil;\r\n"]}
@@ -84,10 +84,6 @@
84
84
  "attribute":"TaxPrice",
85
85
  "type":"price"
86
86
  },
87
- {
88
- "attribute":"Price",
89
- "type":"price"
90
- },
91
87
  {
92
88
  "attribute":"TaxAmount",
93
89
  "type":"price"
@@ -95,7 +95,7 @@
95
95
  "type":"price"
96
96
  },
97
97
  {
98
- "attribute":"taxAmount",
98
+ "attribute":"TaxAmount",
99
99
  "type":"price"
100
100
  }
101
101
  ]
@@ -1492,6 +1492,7 @@ var SettlementStore = (_class = function () {
1492
1492
  DynamicPropertyValues: [],
1493
1493
  DataSource: { Id: _this12.dataSource },
1494
1494
  ThirdPaymentInfo: themode.thridPayment || null,
1495
+ SettleStyle: { Name: mode.name },
1495
1496
  ThirdPaymentReturnInfo: mode.thirdPaymentReturnInfo || null
1496
1497
  });
1497
1498
  if (mode.paymentType == PayStyle.djq) {
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","dtoParams","member","brefund","bquick","boriginReturn","isFull","handleCzkData","m","StorageCardNo","currentMode","errinfo","memberId","ID","value","receivable","Math","max","updateEvent","message","sum","thePaymodes","total","cur","String","isNullOrEmpty","checkReceived","amount","parseFloat","setTimeout","nextInput","document","querySelector","select","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","onlinePaymentAmount","OnlinePaymentAmount","promoLinks","djqs","djq","checked","totalAmountWithTax","Minus","TotalTaxAmount","redBlueFlagEnum","meMemberId","Idmember","storeFactorId","Idstore","voucherDetailList","RetailDetails","forEach","detailDTO","uuid","item","Code","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","bookingQuantity","BookingQuantity","listPrice","JSON","getCellValue","netAmountWithTax","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","length","promotion","push","promoId","IdSalesPromotionDTO","promoRuleId","PromotionRuleId","method","timeout_skip","then","result","element","couponCode","name","tieredAmountResult","fromDate","dateMount","promoMethodEnum","discountPct","nominalAmount","id","condValue","promoDiscount","displayText","couponCategoryEnum","IsRepelWithPoints","themode","paymentType","jfdx","Message","error","COUPON","SN","IsEnable","addDjq","calcDjqCheckValue","info","getSettleGift","billID","getRefWareHouseList","checkCoupon","sn","platform","isNewRetailBCPos","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","code","Title","ReduceAmount","StartAmount","LastTS","UMemberID","repeatStorageModal","content","resolve","reject","ModalWraper","confirm","title","okText","className","zIndex","onOk","saveMember","ret","onCancel","checkIntegralExchangeReturn","param","refVoucherId","resp","expireIntegral","cancelable","PayMode","params","localStore","get","cloudPrintArguments","setNewStyle","event","type","isIntegralExchange","setPaymodes","context","amounthandler","datasource","storeinfo","data","payModeKey","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","isQuickCash","xianjin","DealAmountSettingProcessorBlock","Member","isNotFullBook","isNotFullOnlyBook","getLoginInfo","PreSellOrBook","PercentageWhenBook","IdbusiType","DistributionMode","Id","bookMaxValue","PrepaidAmount","BuyerPayFreight","stores","drawerStore","thisWaitPaidAmount","totalWaitPaidAmount","setAmount","clean","initByOriginReturn","newStyle","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","console","log","checkList","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","thirdPaymentReturnInfo","ThirdPaymentReturnInfo","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","MeStorageCardId","Password","balance","calcReserved","key","bookType","currentFocus","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","integralCashOverOrderAmount","user","options","v","returnType","isOnlyEnabled","address","CardTypeEnum","updateCardInfo","result1","data1","parse","enable","warn","disableReason","promoCouponCode","doorsill","expired","unCheck","count","calcDjqValue","append","afterSetCurrentMode","setExchangable","MaxAmount","perIntegral","cashAmount","maxamount","notwithm","isQuick","counter","exchangeRate","calDirection","thridPayment","value2","value3","order","card","virtualPay","setMaxAmount","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","undefined","StorageMutiSettleDetails","giveChange","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","bTest","status","paylist","filter","findStorageBillValidate","returnMsg","state","ret1","offlineSys","generatorCode","save","ret2","retailSequenceUpload","thirdPayRefund","DoNameList","DO_STORAGE_PRINT","TradeType","ThirdPaymentInfo","IPMSG","window","localStorage","payList","payment","tradeType","PAY","REFUND","thirdPay","msg","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","prepaidAmount","reduce","c","fullPayment","TaxAmount","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","vType","trade","cto","removeThirdPayDto","VoucherType","Payment","nativeMs","setIpcRendererMethod","res","Result","duration","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","memberStorageId","hasOwnProperty","cardTypeEnum","cardStatusEnum","md5Password","User","pwdEncrypt","pwd","cardType","password","setCookie","Success","observable","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","IdStore","updateMemberStorageCardNo","WalletEnabled","ctMode","cardNo","_counter","onlineamount","settle","hotKey","a","o","received","walletEnabled","CardStatusEnum","isNeedPassword","IsNeedPassword","rawbalance","freePaymentPasswordStore","FreePaymentPasswordStore","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","ceil","v1","floor","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","settleStyleType","memberStoreCode","settlementCode","modes","settleLists","SettleStyles","Name","isDefault","IsDefaultSettleStyle","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","VirtualPay","couponNum","MemberType","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\r\nimport { stores, i18n, localStore, nativeMs } from 'mutants-microfx';\r\nimport _find from 'lodash/find';\r\nimport _remove from 'lodash/remove';\r\nimport _each from 'lodash/each';\r\nimport _map from 'lodash/map';\r\nimport _join from 'lodash/join';\r\nimport _trim from 'lodash/trim';\r\nimport _filter from 'lodash/filter';\r\nimport _findIndex from 'lodash/findIndex';\r\nimport _findLastIndex from 'lodash/findLastIndex';\r\nimport _findKey from 'lodash/findKey';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { getFixedNumber, stopPropagation } from './utils'\r\nimport {ccApi,tApi, User} from 'tplus-api';\r\nimport _clonedeep from 'lodash/cloneDeep';\r\nimport Message from '../message';\r\nimport { platform,enumController } from 'mutants-util';\r\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\r\nimport moment from \"moment\";\r\nimport _reduce from 'lodash/reduce';\r\nimport { Card } from 'antd';\r\n\r\nconst t = i18n.getFixedT(null, 'newretail');\r\n\r\nexport default class SettlementStore {\r\n paymode = null\r\n dto=null\r\n dtoParams = null\r\n member=null\r\n brefund=false\r\n context\r\n bquick=false;\r\n amountHandler\r\n dataSource\r\n storeInfo\r\n updateEvent\r\n type\r\n boriginReturn=false\r\n @observable newStyle=true//type==2\r\n billID\r\n isFull = true; // 预售都是全款;预订是否全款,在点击确认支付时计算订金和商品金额计算得出\r\n constructor(){\r\n this.paymode= new PayMode()\r\n let params = localStore && localStore.get('cloudPrintArguments');\r\n if (params) this.cloudPrintArguments = params;\r\n this.setNewStyle();\r\n }\r\n\r\n @action\r\n setNewStyle = () => {\r\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\r\n }\r\n\r\n initPaymodes(event,type,isIntegralExchange){\r\n this.isIntegralExchange = isIntegralExchange;\r\n this.paymode.setPaymodes(type,isIntegralExchange);\r\n this.updateEvent=event;\r\n }\r\n\r\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data,payModeKey){\r\n this.setNewStyle();\r\n this.type=type;\r\n if(context){\r\n this.context=context;\r\n this.amountHandler=amounthandler;\r\n this.dataSource=datasource;\r\n this.storeInfo=storeinfo;\r\n this.dto=context.viewModel.data;\r\n runInAction(()=>{\r\n // 单品金额抹零\r\n if (global.DealSingleRowAmountSettingProcessorBlock) {\r\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\r\n }\r\n const { PayStyle } = enumController.getEnumOj();\r\n const isQuickCash = bquick && payModeKey == PayStyle.xianjin;\r\n\r\n // 成交金额抹零\r\n if (global.DealAmountSettingProcessorBlock) {\r\n global.DealAmountSettingProcessorBlock.execute(this.dto,isQuickCash);\r\n }\r\n });\r\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\r\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\r\n\r\n this.paymode.isNotFullBook = false;\r\n this.paymode.isNotFullOnlyBook = false;\r\n //预订按比例收取订金处理\r\n let value = this.dto.TotalTaxAmount;\r\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\r\n const { IdbusiType, DistributionMode } = this.dto || {};\r\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n this.paymode.bookMaxValue = value;\r\n this.paymode.isNotFullBook = true;\r\n this.paymode.isNotFullOnlyBook = true;\r\n value = value * PercentageWhenBook / 100;\r\n }\r\n if (IdbusiType == 38 && PreSellOrBook == 'BOOK'){\r\n runInAction(()=>{\r\n this.dto.PrepaidAmount = value;\r\n });\r\n }\r\n //预订计算快递或同城配送运费\r\n if (IdbusiType == 38 && PreSellOrBook != 'DISABLED' && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\r\n value += this.dto.BuyerPayFreight || 0;\r\n }\r\n //预订取货应补款金额\r\n if (IdbusiType == 39){\r\n value = stores.drawerStore.thisWaitPaidAmount;\r\n if(stores.drawerStore.totalWaitPaidAmount > 0){\r\n this.paymode.isNotFullBook = true;\r\n this.paymode.bookMaxValue = stores.drawerStore.totalWaitPaidAmount;\r\n }\r\n }\r\n\r\n this.brefund=this.paymode.setAmount( value ,this.dto.OnlinePaymentAmount );\r\n }else{\r\n this.brefund=this.paymode.setAmount( amount ,0 );\r\n this.dto=data;\r\n }\r\n this.paymode.clean();\r\n\r\n //this.dto.TotalTaxAmount<0;\r\n this.bquick=!!bquick;\r\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\r\n if(this.boriginReturn){\r\n this.initByOriginReturn();\r\n }\r\n if(this.newStyle){\r\n this.setModes();\r\n }\r\n }\r\n\r\n setModes(){\r\n _each(this.paymode.paymodes,(p)=>{\r\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\r\n this.addPay(p.paymentType);\r\n }\r\n });\r\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\r\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\r\n }\r\n }\r\n\r\n amountChanged(amount){\r\n if(this.type==1){\r\n this.brefund=this.paymode.setAmount( amount ,0 );\r\n }\r\n\r\n }\r\n\r\n @action queryPwd = (newPass, newPassConfirm) => {\r\n if (!newPass || !newPassConfirm) {\r\n return Message.warn('您还有未填写项');\r\n }\r\n if (newPass !== newPassConfirm) {\r\n return Message.warn('您两次输入的密码不一致');\r\n }\r\n let idstore = PosInitData('storeID');\r\n return ccApi({\r\n Idstore: idstore,\r\n meMemberId: this.paymode.currentMode.memberId,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(newPassConfirm),\r\n dataSource:\"POS\"\r\n }, '/member/MeMemberWallet/setWalletPayPassword', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n if (resp.successful) {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n @action\r\n initByOriginReturn(){\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { isNewRetailBCPos } = platform || {};\r\n console.log(this.dto, 'dto==========');\r\n this.paymode.checkList = [];\r\n _each(this.dto.RetailPaymentDetails,(detail)=>{\r\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\r\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\r\n ModalWraper.info({\r\n title: '温馨提示',\r\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\r\n okText:'确定',\r\n okType:'primary'\r\n });\r\n }\r\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\r\n let newmode={\r\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\r\n authCode:detail.PaymentCode,\r\n steadCashIntegral:detail.SteadCashIntegral,\r\n overchargesAmount:detail.OverchargesAmount,\r\n boriginReturn:true,\r\n thirdPaymentReturnInfo: detail.ThirdPaymentReturnInfo\r\n };\r\n this.paymode.currentMode=newmode;\r\n if(themode.paymentType==PayStyle.djq){\r\n _each(this.dto.RetailCouponDetails,(djq)=>{\r\n if (isNewRetailBCPos) {\r\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\r\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null,djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,\r\n this.dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n null,\r\n id,\r\n true);\r\n return;\r\n }\r\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\r\n })\r\n }\r\n this.paymode.thePaymodes.push(newmode)\r\n }\r\n })\r\n _each(this.dto.RetailStorageDetails,(detail)=>{\r\n let balanceAmount = null;\r\n let storageCardNo = null;\r\n let meStorageCardId = null;\r\n detail.DynamicPropertyKeys.forEach((ele, index) => {\r\n if (ele === \"mestoragecard\") {\r\n balanceAmount = detail.DynamicPropertyValues[index].BalanceStorage - detail.StoragePaymentAmount;\r\n storageCardNo = detail.DynamicPropertyValues[index].StorageCardNo;\r\n meStorageCardId = detail.DynamicPropertyValues[index].MeStorageCardId;\r\n }\r\n })\r\n let newmode={\r\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\r\n member:new Member(detail.Member ? detail.Member :null),\r\n authCode:detail.Password ? detail.Password: null,\r\n balance:balanceAmount,\r\n boriginReturn:true,\r\n meStorageCardId: meStorageCardId ? meStorageCardId : detail.MeStorageCardId,\r\n storageCardNo: storageCardNo ? storageCardNo : detail.StorageCardNo\r\n };\r\n this.paymode.thePaymodes.push(newmode)\r\n })\r\n this.paymode.calcReserved();\r\n }\r\n\r\n clean(){\r\n this.bquick=false;\r\n this.paymode.clean();\r\n }\r\n\r\n @action quickSettle(key){\r\n this.addPay(key,null, true);\r\n }\r\n\r\n //outer call\r\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\r\n @action changeFocusAndAddPay(type, bookType){\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.paymode.currentFocus=type;\r\n if(this.paymode.currentMode){\r\n if(type==PayStyle.jfdx){\r\n if(this.newStyle){\r\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\r\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\r\n this.paymode.calcReserved();\r\n }else{\r\n this.addPayDirectly(this.paymode.currentMode);\r\n }\r\n\r\n //抵现积分\r\n tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.memberId,\r\n TotalTaxAmount:this.paymode.amount,\r\n BalanceTaxAmount: this.paymode.currentMode.value,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n // this.paymode.currentMode.steadCashIntegral=result.Integral;\r\n // this.paymode.currentMode.perIntegral=result.perIntegral;\r\n // this.paymode.currentMode.cashAmount=result.cashAmount;\r\n this.paymode.currentMode.integralCashOverOrderAmount=result.integralCashOverOrderAmount;\r\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\r\n });\r\n }else{\r\n this.addPayDirectly(this.paymode.currentMode);\r\n }\r\n }else{\r\n this.addPay(type, bookType);\r\n }\r\n }\r\n\r\n // 设置密码后更新会员信息\r\n @action updateMemberInfo = async (_this) => {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n const resp = await tApi({ Idmember: this.member.ID, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\r\n _this.member = resp;\r\n _this.paymode.updateMemberStorageCardNo(resp.StorageCardNo, resp.WalletEnabled);\r\n return Promise.resolve(resp);\r\n }\r\n\r\n // 查看会员卡信息\r\n @action updateCurrentMode = async (memberId, returnType) => {\r\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\r\n const result = await ccApi({}, `/marketingtool/MeStorageCard/getCardInfoByMemberId/${memberId}/${isOnlyEnabled}`, false, false, { method: 'get' })\r\n if (result && result.data.length) {\r\n if (result.data.length === 1) {\r\n this.paymode.updateCardInfo(result.data[0]);\r\n return result.data;\r\n } else {\r\n if (result.data && result.data.length === 1) {\r\n this.paymode.updateCardInfo(result.data[0]);\r\n return result.data;\r\n } else if (result.data && result.data.length > 1) {\r\n return result.data;\r\n } else {\r\n Message.warn('没有可用储值卡!');\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action updateCardInfo = async () => {\r\n const ctMode = this.paymode && this.paymode.currentMode;\r\n let cardNo = ctMode && ctMode.storageCardNo;\r\n let result = await ccApi({}, `/marketingtool/MeStorageCard/getCardInfoByCardNo/${cardNo}`, false, false, { method: 'get', timeout_skip: true })\r\n this.paymode.updateCardInfo(result && result.data);\r\n }\r\n\r\n getLoginInfo() {\r\n return stores.user.options.get('loginInfo');\r\n }\r\n\r\n handleCzkData = (m) => {\r\n if(!m || !m.StorageCardNo){\r\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\r\n }\r\n else{\r\n runInAction(()=>{\r\n this.paymode.currentMode.errinfo=\"\";\r\n this.paymode.currentMode.memberId = m.ID;\r\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\r\n this.updateEvent();\r\n let message='';\r\n const sum = _reduce(this.paymode.thePaymodes, (total, cur) => total + cur.value, 0)\r\n // 对于卡不用判断会员的一些信息\r\n // if (global.CheckMemberStorageProcessorBlock ) {\r\n // message= CheckMemberStorageProcessorBlock.execute(m);\r\n // }\r\n if (!String.isNullOrEmpty(message)) {\r\n this.paymode.currentMode.errinfo=message;\r\n }\r\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\r\n this.paymode.currentMode.errinfo=\"余额不足\";\r\n }else if(this.paymode.amount>0 && parseFloat(this.paymode.amount) !== sum && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n setTimeout(() => {\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.select();\r\n }, 300)\r\n }\r\n });\r\n }\r\n }\r\n\r\n loadCzk(v, returnType) {\r\n if (_trim(v) === \"\") {\r\n runInAction(() => {\r\n this.paymode.currentMode.errinfo = \"请输入储值卡\";\r\n });\r\n return;\r\n }\r\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\r\n let address = `/marketingtool/MeStorageCard/getCardInfoByCardNo/${v}/${isOnlyEnabled}`;\r\n return ccApi({ code: v }, address, false, false, { method: 'get', timeout_skip: true })\r\n .then(async (result) => {\r\n let data = result.data;\r\n let m = (data && data.length && data[0]);\r\n if (result && result.data.length) {\r\n if (result.data.length === 1) {\r\n if (m.CardTypeEnum === 'BALANCE_CARD') {\r\n this.paymode.updateCardInfo(m);\r\n this.handleCzkData(m);\r\n return result.data;\r\n } else {\r\n // 校验储值卡是否可用\r\n await ccApi({ dto: this.dto, meStorageCardId: m.MeStorageCardId }, '/retail/RetailPos/validateRetailStorageCard', false, false)\r\n .then((result1) => {\r\n let data1 = result1.data ? JSON.parse(result1.data)[0] : {};\r\n if (data1.enable) {\r\n this.paymode.updateCardInfo(m);\r\n this.handleCzkData(m)\r\n return result1.data;\r\n } else {\r\n Message.warn(data1.disableReason);\r\n }\r\n })\r\n }\r\n } else {\r\n if (result.data && result.data.length === 1) {\r\n this.paymode.updateCardInfo(result.data[0]);\r\n return result.data;\r\n } else if (result.data && result.data.length > 1) {\r\n return result.data;\r\n } else {\r\n Message.warn('没有可用储值卡!');\r\n return false;\r\n }\r\n }\r\n }\r\n })\r\n }\r\n getCouponList = coupon_code => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n const couponApplyRule = PosInitData('CouponApplyRule');\r\n const { CouponApplyRule } = enumController.getEnumOj();\r\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\r\n let dto = this.dto;\r\n let promoVoucher = {};\r\n this.paymode.clearDjqs();\r\n this.paymode.reCalculationDjqs();\r\n promoVoucher.coupon_code = coupon_code || \"\";\r\n promoVoucher.boName = \"Retail\";\r\n promoVoucher.voucherId = dto.ID;\r\n let onlinePaymentAmount=0;\r\n if(dto.OnlinePaymentAmount)\r\n {\r\n onlinePaymentAmount=dto.OnlinePaymentAmount;\r\n }\r\n promoVoucher.promoLinks = _filter(this.paymode.currentMode.djqs,djq=>djq.checked);\r\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\r\n promoVoucher.redBlueFlagEnum = \"BLUE\";\r\n promoVoucher.meMemberId = dto.Idmember;\r\n promoVoucher.storeFactorId = dto.Idstore;\r\n promoVoucher.voucherDetailList = [];\r\n dto.RetailDetails.forEach(item => {\r\n let detailDTO = {};\r\n detailDTO.uuid = item.Code;\r\n detailDTO.detailBoName = \"RetailDetail\";\r\n detailDTO.voucherDetailId = item.ID;\r\n detailDTO.productId = item.Idinventory;\r\n detailDTO.uomId = item.Idunit;\r\n detailDTO.productSpecId=item.ProductSpecId;\r\n detailDTO.isManualFreeGift = item.IsPresent;\r\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\r\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\r\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\r\n // {\r\n // detailDTO.listPrice = item.TaxPrice;\r\n // detailDTO.netAmountWithTax = item.TaxAmount;\r\n // }\r\n // else\r\n // {\r\n let bookingQuantity=0;\r\n if(item.BookingQuantity)\r\n {\r\n bookingQuantity=item.BookingQuantity;\r\n }\r\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\r\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\r\n //}\r\n detailDTO.taxRate = item.TaxRate;\r\n detailDTO.quantity = item.Quantity;\r\n\r\n detailDTO.amountWithTax = item.RetailAmount;\r\n // 促销 start\r\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\r\n let promoLinks = [];\r\n item.PromotionDetails.forEach((promotion)=>{\r\n promoLinks.push({\r\n promoId:promotion.IdSalesPromotionDTO,\r\n promoRuleId:promotion.PromotionRuleId\r\n })\r\n })\r\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\r\n }\r\n // 促销 end\r\n promoVoucher.voucherDetailList.push(detailDTO);\r\n });\r\n\r\n return ccApi({\r\n ...promoVoucher\r\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\r\n .then((result)=>{\r\n if(result && result.length != 0 ){\r\n result.forEach((element)=>{\r\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\r\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\r\n if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\r\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\r\n }\r\n else {\r\n let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\r\n this.addDjq(\r\n couponCode,\r\n name,\r\n IsEnable,\r\n promoMethodEnum == \"CASH_COUPON\" && nominalAmount,\r\n promoDiscount,\r\n condValue,\r\n null,\r\n false,\r\n !result.IsRepelWithPoints,\r\n dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id,\r\n true, 1)\r\n }\r\n })\r\n if(promoVoucher.coupon_code){\r\n this.paymode.calcDjqCheckValue(this.paymode.currentMode.djqs[0], this.dto, 'single')\r\n }\r\n }else{\r\n if (promoVoucher.coupon_code) {\r\n Message.info(`${Differentiate.COUPON}号不存在!`);\r\n this.getCouponList();\r\n } else {\r\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n getSettleGift = () => {\r\n return ccApi({ }, `/marketingtool/paygift/executeRightsForPos/${this.billID}`, false, false, { method: 'get', timeout_skip: true });\r\n }\r\n\r\n getRefWareHouseList = () => {\r\n return ccApi({}, `/retail/RetailPos/getRefWareHouseList`, false, false);\r\n }\r\n\r\n checkCoupon = async (sn) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n return await this.getCouponList(sn, 'sinlge');\r\n } else {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n return tApi({request:{\r\n Uid:this.paymode.currentMode.member.uid || '',\r\n SN:sn,\r\n StoreCode:this.dto.Idstore,\r\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\r\n IdInventory:detail.Inventory.ID,\r\n IdUnit:detail.Idunit,\r\n Code:detail.Inventory.Code,\r\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\r\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\r\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\r\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\r\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\r\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\r\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\r\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\r\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\r\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\r\n }}),\r\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\r\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\r\n Amount:this.paymode.amount\r\n }}, 'chanjet.AA.DR.coupon.CheckCoupon', false, false)\r\n .then((result)=>{\r\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\r\n Message.info(`${Differentiate.COUPON}已添加`);\r\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\r\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\r\n }\r\n else{\r\n this.addDjq(\r\n result.SN,\r\n result.Title,\r\n result.ReduceAmount,\r\n result.StartAmount,\r\n result.LastTS,\r\n false,\r\n !result.IsRepelWithPoints,\r\n result.UMemberID)\r\n }\r\n\r\n })\r\n }\r\n }\r\n @action addDjq(\r\n promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id,\r\n unCheck,count\r\n ){\r\n let djq={\r\n code: promoCouponCode,\r\n promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,//:\"无门槛\"\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired, //还剩多少过期\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id,\r\n count: (count === 1 && (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? 1 : null)\r\n };\r\n this.paymode.currentMode.djqs.push(\r\n djq\r\n );\r\n // let copyData = _clonedeep(this.data[targetIndex]);\r\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\r\n }\r\n\r\n setCurrentMode(id,type,append){\r\n const { PayStyle } = enumController.getEnumOj();\r\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\r\n if(mode){\r\n this.paymode.currentMode=mode;\r\n if(this.newStyle){\r\n this.afterSetCurrentMode(type);\r\n }\r\n }else{\r\n this.paymode.currentMode=this.genNewMode(type,append);\r\n this.afterSetCurrentMode(type);\r\n }\r\n }\r\n afterSetCurrentMode(type){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(type==PayStyle.djq){\r\n this.paymode.calcDjqValue();\r\n }else if(type==PayStyle.jfdx){\r\n //获取可兑换的金额\r\n if(this.newStyle){\r\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\r\n if(themode && parseFloat(themode.value||0)!=0){\r\n this.paymode.currentMode.value=themode.value;\r\n }\r\n }\r\n\r\n //积分抵现不包含运费\r\n let BuyerPayFreight = this.dto.BuyerPayFreight;\r\n let DistributionMode = this.dto.DistributionMode;\r\n let IdbusiType = this.dto.IdbusiType;\r\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\r\n let value = 0;\r\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0){\r\n value = getFixedNumber(Math.Minus(this.paymode.amount, BuyerPayFreight))\r\n } else if (IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n //预订场景下:现场提货,且订金比例非100%时,积分抵现按全款计算(因为只有全款才能使用积分抵现)\r\n value = this.paymode.bookMaxValue;\r\n } else {\r\n value = this.paymode.amount;\r\n }\r\n\r\n tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.memberId,\r\n TotalTaxAmount:value,\r\n BalanceTaxAmount:value,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\r\n this.paymode.currentMode.perIntegral=result.perIntegral;\r\n this.paymode.currentMode.cashAmount=result.cashAmount;\r\n this.paymode.currentMode.integralCashOverOrderAmount=result.integralCashOverOrderAmount;\r\n this.updateEvent();\r\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\r\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n checkReceived(mode,name){\r\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\r\n }\r\n\r\n genNewMode(type,notwithm,v,isQuick){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\r\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\r\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\r\n const mode = observable({\r\n paymethodId:this.paymode.counter,\r\n name:themode.name,\r\n exchangeRate:themode.exchangeRate,\r\n calDirection:themode.calDirection,\r\n thridPayment: themode.thridPayment,\r\n value,\r\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\r\n value3:value,\r\n order:this.paymode.thePaymodes.length+1,\r\n paymentType:type,\r\n djqs:[],\r\n card: null,\r\n memberId: !notwithm?memberId:null,\r\n member:new Member(!notwithm?this.member:null),\r\n authCode:'',\r\n steadCashIntegral:null,\r\n errinfo:'',\r\n maxamount:this.paymode.amount,\r\n virtualPay: themode.virtualPay\r\n });\r\n if(type==PayStyle.hyczk){\r\n if(!mode.storageCardNo){\r\n runInAction(()=>{mode.errinfo='未录入手机号或储值卡号'})\r\n }else if(this.checkReceived(mode,\"balance\")){\r\n runInAction(()=>{mode.errinfo='余额不足'})\r\n }\r\n\r\n }\r\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\r\n this.setMaxAmount(type,mode);\r\n }\r\n console.log(`当前操作结算方式信息:${mode}`);\r\n return mode;\r\n }\r\n\r\n setMaxAmount(type,mode){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let sum=0;\r\n if(type==PayStyle.hyczk){\r\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\r\n sum=Math.Add(sum,q.value);\r\n });\r\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\r\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\r\n sum=Math.Add(sum,q.value);\r\n });\r\n }\r\n\r\n this.amountHandler && this.amountHandler(type).then(()=>{\r\n runInAction(()=>{\r\n\r\n //预售储值结算应包含运费\r\n let BuyerPayFreight = this.dto.BuyerPayFreight;\r\n let DistributionMode = this.dto.DistributionMode;\r\n let value = 0;\r\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 && type == PayStyle.hyczk){\r\n value = getFixedNumber(parseFloat(this.context.viewModel.getViewItem('Voucher').availableAmount) + parseFloat(BuyerPayFreight))\r\n } else {\r\n value = this.context.viewModel.getViewItem('Voucher').availableAmount;\r\n }\r\n mode.maxamount=getFixedNumber(Math.Minus(value,sum));\r\n this.updateEvent();\r\n })\r\n })\r\n }\r\n\r\n @action changeFocusOnly(type){\r\n this.paymode.currentFocus=type;\r\n }\r\n\r\n @action changeClickFocusOnly(type) {\r\n this.paymode.currentFocus=type;\r\n // 获取焦点时带入剩余的值\r\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\r\n if(mode){\r\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\r\n mode.value = shouldSetValue;\r\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\r\n mode.value3 = shouldSetValue;\r\n this.paymode.calcReserved('bookPay'); //参数multiPay代表复合结算\r\n }\r\n }\r\n\r\n @action changeValue(index,value,blur,type){\r\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\r\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\r\n if(mode){\r\n if(mode.exchangeRate != 1){\r\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\r\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\r\n }\r\n else{\r\n mode.value=mode.value3;\r\n }\r\n mode.value2=v;\r\n }else{\r\n mode.value=v;\r\n mode.value2=v;\r\n }\r\n\r\n this.paymode.calcReserved(type);\r\n }\r\n }\r\n\r\n @action addPayDirectly(pay){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\r\n let pos=this.paymode.thePaymodes.length;\r\n if(pay.paymentType==PayStyle.hyczk){\r\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\r\n pos=index==-1?pos:(index+1);\r\n }\r\n // this.paymode.thePaymodes.push(pay);\r\n this.paymode.thePaymodes.splice(pos,0,pay);\r\n }\r\n this.paymode.calcReserved();\r\n }\r\n\r\n @action addPay(type, bookType, isQuick){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let pos = this.paymode.thePaymodes.length;\r\n if (type == PayStyle.hyczk) {\r\n let index = _findLastIndex(this.paymode.thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk });\r\n pos = index == -1 ? pos : (index + 1);\r\n }\r\n this.paymode.thePaymodes.splice(pos, 0, this.genNewMode(type,this.newStyle && type==PayStyle.hyczk,undefined, isQuick));\r\n this.paymode.calcReserved(bookType);\r\n }\r\n\r\n @action delPay(index, bookType){\r\n const { PayStyle } = enumController.getEnumOj();\r\n _remove(this.paymode.thePaymodes,(mode)=>{\r\n return mode.paymethodId===index;\r\n });\r\n this.paymode.currentFocus = -1;\r\n this.paymode.calcReserved(bookType);\r\n }\r\n\r\n // 获取储值是否重复, 在commit方法中使用\r\n findStorageBillValidate () {\r\n const { PayStyle } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.StorageMutiSettleDetails=[];\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.StorageMutiSettleDetails.push({\r\n Code:mode.paymethodId,\r\n StorageAmount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n PaymentCode:mode.authCode,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n })\r\n });\r\n\r\n });\r\n return ccApi(\r\n {...this.dto},\r\n '/marketingtool/Storage/findStorageBillValidate',\r\n false,\r\n false\r\n )\r\n }\r\n\r\n //判断是否重复弹框\r\n repeatStorageModal = (content) => {\r\n return new Promise((resolve, reject) => {\r\n ModalWraper.confirm({\r\n title: '',\r\n okText: '继续储值',\r\n className: 'repeat-modal',\r\n zIndex: 1007,\r\n content,\r\n onOk: async () => {\r\n let ret = await this.saveMember();\r\n if (ret === false) {\r\n resolve(false)\r\n } else {\r\n resolve(true)\r\n }\r\n },\r\n onCancel() {\r\n resolve(false)\r\n }\r\n })\r\n })\r\n }\r\n\r\n async commit(bTest){\r\n console.log('settlementStore.commit开始,参数:' + bTest);\r\n if (bTest) {\r\n return Promise.resolve(true);\r\n }\r\n const status = this.type;\r\n try {\r\n const paylist = this.paymode.thePaymodes.filter(v => !!v.thridPayment && Math.abs(v.value) > 0) || [];\r\n if (paylist && paylist.length > 1) {\r\n Message.warn('二开支付目前仅支持单一结算方式。');\r\n return Promise.resolve(false);\r\n }\r\n if (status == 1) {\r\n const ret = await this.findStorageBillValidate();\r\n const { data: { code, returnMsg } = {} } = ret || {}\r\n if (code && code == 10001) {\r\n const state = await this.repeatStorageModal(returnMsg);\r\n if (state === false) return Promise.resolve(false);\r\n } else {\r\n let ret1 = await this.saveMember();\r\n if (ret1 === false) {\r\n Promise.resolve(false);\r\n }\r\n }\r\n } else {\r\n await stores.offlineSys.generatorCode(this.dto);\r\n let ret2 = await this.save();\r\n if (ret2 === false) {\r\n return Promise.resolve(false);\r\n }\r\n await stores.offlineSys.retailSequenceUpload();\r\n }\r\n return Promise.resolve(true);\r\n } catch (err) {\r\n console.error('settlementStore.commit失败,错误信息:' + err);\r\n //其他支付失败时,处理二开支付情况。\r\n this.thirdPayRefund(status == 1 ? 2 : 1);\r\n return Promise.resolve(err);\r\n }\r\n }\r\n\r\n handlePrint(resp) {\r\n // 储值打印\r\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{})\r\n }\r\n\r\n async saveMember(){\r\n const { PayStyle, TradeType } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.StorageMutiSettleDetails=[];\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.StorageMutiSettleDetails.push({\r\n Code:mode.paymethodId,\r\n StorageAmount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n PaymentCode:mode.authCode,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n ThirdPaymentInfo: themode.thridPayment || null,\r\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\r\n })\r\n });\r\n\r\n });\r\n // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n let dtoParams = this.dto;\r\n //处理存在二开支付情况\r\n let payList = dtoParams.StorageMutiSettleDetails.filter(v => v.ThirdPaymentInfo);\r\n if (payList && payList.length > 0) {\r\n let payment = payList[0];\r\n let tradeType = payment && payment.StorageAmount > 0 ? TradeType.PAY : TradeType.REFUND;\r\n const ret = await this.thirdPay(2, payment, tradeType, dtoParams);\r\n const { type, data, msg, code } = ret || {};\r\n if (type === true) {\r\n dtoParams = data;\r\n } else {\r\n Message.warn(`刷卡支付失败,错误码:${code}`);\r\n return false;\r\n }\r\n }\r\n this.dtoParams = dtoParams;\r\n console.log('储值结算信息:', dtoParams);\r\n return tApi({ dto: dtoParams }, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp) => {\r\n this.handlePrint(resp);\r\n });\r\n }\r\n\r\n async save(){\r\n const { PayStyle, TradeType } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.RetailPaymentDetails=[];\r\n this.dto.RetailStorageDetails=[];\r\n this.dto.RetailCouponDetails=[];\r\n let czkSum=0;\r\n let count = 0;\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode, index)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n if(mode.paymentType==PayStyle.hyczk){\r\n czkSum=Math.Add(czkSum,mode.value);\r\n this.dto.RetailStorageDetails.push({\r\n Code:mode.paymethodId,\r\n MeStorageCardId: mode.meStorageCardId,\r\n StoragePaymentAmount:mode.value,\r\n IsOrigReturn:false,\r\n BalanceStorage:mode.balance,\r\n Idmember:mode.memberId,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n Password:mode.authCode,\r\n })\r\n }else{\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.RetailPaymentDetails.push({\r\n Code:mode.paymethodId,\r\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\r\n Amount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n Idcurrency:themode.idCurrency,\r\n ExchangeRate:themode.exchangeRate,\r\n PaymentCode:mode.authCode,\r\n SteadCashIntegral:mode.steadCashIntegral,\r\n OverchargesAmount:mode.overchargesAmount,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n ThirdPaymentInfo: themode.thridPayment || null,\r\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\r\n })\r\n if(mode.paymentType==PayStyle.djq){\r\n _each(this.paymode.checkList && this.paymode.checkList.length ? this.paymode.checkList: mode.djqs,(djq)=>{\r\n this.dto.RetailCouponDetails.push({\r\n CouponCode:djq.promoCouponCode,\r\n ReductionAmount:djq.amount,\r\n EnableAmount:djq.doorsill,\r\n CouponTitle:djq.name,\r\n IdMember:djq.UMemberID?mode.memberId:null,\r\n LastTS:djq.LastTS,\r\n PromotionId:djq.promoId,\r\n PromotionRuleId:djq.promoRuleId,\r\n PromoCouponAllocatedId:djq.id,\r\n DataSource:{Id:this.dataSource},\r\n })\r\n })\r\n }\r\n }\r\n });\r\n if (this.dto.RetailStorageDetails.length > 0) {\r\n const themode = _find(this.paymode.paymodes, { 'paymentType': PayStyle.hyczk });\r\n this.dto.RetailPaymentDetails.push({\r\n Code: this.paymode.counter,\r\n OrigAmount: czkSum,\r\n Amount: czkSum,\r\n IdsettleStyle: themode.idSettleStyle,\r\n IdbankAccount: themode.idBankAccount,\r\n DynamicPropertyKeys: [],\r\n DynamicPropertyValues: [],\r\n DataSource: { Id: this.dataSource },\r\n RetailStorageDetails: this.dto.RetailStorageDetails,\r\n })\r\n }\r\n });\r\n console.log(`结算数据:`, this.dto);\r\n // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n const RetailTypeEnum = this.dto.IdbusiType == 36 ? \"INTEGRAL_EXCHANGE\" : \"NORMAL\";\r\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\r\n const { IdbusiType, DistributionMode } = this.dto || {};\r\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n let prepaidAmount = getFixedNumber(this.dto.RetailPaymentDetails.reduce((c, item) => c + (item.Amount || 0), 0));\r\n let fullPayment = getFixedNumber(this.dto.RetailDetails.reduce((c, item) => c + (item.TaxAmount || 0), 0));\r\n this.isFull = fullPayment == prepaidAmount; // 是否全款\r\n runInAction(()=>{\r\n this.dto.PrepaidAmount = prepaidAmount;\r\n });\r\n }\r\n if (this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37) {\r\n let dtoParams = { ...this.dto.cut(), RetailOms: { RetailTypeEnum } };\r\n //处理存在二开支付情况\r\n let payList = dtoParams.RetailPaymentDetails.filter(v => v.ThirdPaymentInfo);\r\n if (payList && payList.length > 0) {\r\n let payment = payList[0];\r\n let tradeType = payment && payment.Amount > 0 ? TradeType.PAY : TradeType.REFUND;\r\n const ret = await this.thirdPay(1, payment, tradeType, dtoParams);\r\n const { type, data, msg, code } = ret || {};\r\n if (type === true) {\r\n dtoParams = data;\r\n } else {\r\n Message.warn(`刷卡支付失败,错误码:${code}`);\r\n return false;\r\n }\r\n }\r\n this.dtoParams = dtoParams;\r\n console.log('结算信息:', dtoParams);\r\n return ccApi({ dto: dtoParams, cip: IPMSG.query || \"\" }, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n const { ID } = resp || {};\r\n this.setDtoID(ID);\r\n this.billID = ID;\r\n this.paymode.checkList = [];\r\n })\r\n }\r\n }\r\n\r\n //裁剪二开支付数据\r\n removeThirdPayDto(dto) {\r\n let data = {...dto};\r\n delete data['DynamicPropertyKeys'];\r\n delete data['DynamicPropertyValues'];\r\n return data;\r\n }\r\n\r\n /**\r\n * 二开支付\r\n * vType:1零售单、2储值单\r\n * payment:结算方式\r\n * trade:00表示结算、02表示退款\r\n * dto:结算数据集合\r\n */\r\n async thirdPay(vType, payment, trade, dto) {\r\n try {\r\n let cto = this.removeThirdPayDto(dto);\r\n const params = { VoucherType: vType, Payment: payment, TradeType: trade, dto: cto };\r\n console.log('刷卡信息:', JSON.stringify(params));\r\n let ret = await new Promise((resolve, reject) => {\r\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\r\n return resolve(res);\r\n })\r\n })\r\n console.log('刷卡返回信息:', ret);\r\n ret = JSON.parse(ret);\r\n const { Code, Message, Result } = ret || {};\r\n if (Code > 0) {\r\n return { type: false, data: null, msg: Message, code: Code };\r\n } else if (trade == '00') {\r\n const { ThirdPaymentReturnInfo } = Result || {};\r\n if (vType == 1) {\r\n dto.RetailPaymentDetails.forEach(v => {\r\n if (v.ThirdPaymentInfo != null && Math.abs(v.Amount) > 0) {\r\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\r\n }\r\n })\r\n } else if (vType == 2) {\r\n dto.StorageMutiSettleDetails.forEach(v => {\r\n if (v.ThirdPaymentInfo != null && Math.abs(v.StorageAmount) > 0) {\r\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\r\n }\r\n })\r\n }\r\n return { type: true, data: dto, msg: Message, code: Code };\r\n } else if (trade == '02') {\r\n return { type: true, data: dto, msg: Message, code: Code };\r\n }\r\n } catch (ex) {\r\n return { type: false, data: null, msg: ex, code: '9999' }\r\n }\r\n }\r\n\r\n //二开支付强制退款情况\r\n async thirdPayRefund(type) {\r\n const dto = (type == 1) ? this.dtoParams.RetailPaymentDetails : this.dtoParams.StorageMutiSettleDetails;\r\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\r\n if (pay && pay.length > 0) {\r\n setTimeout(() => {\r\n Message.warn(\"支付出现异常,将发起刷卡退款。\", { duration: 4.5 })\r\n }, 1000);\r\n const payment = pay[0];\r\n const { TradeType } = enumController.getEnumOj();\r\n setTimeout(async () => {\r\n let ret = await this.thirdPay(type, payment, TradeType.REFUND, dto);\r\n const { msg } = ret || {};\r\n console.log(`刷卡支付退款:${msg}`);\r\n }, 4500);\r\n }\r\n }\r\n\r\n\r\n @action setDtoID(id){\r\n this.context.viewModel.data.ID=id;\r\n }\r\n\r\n checkIntegralExchangeReturn = (id) => {\r\n return new Promise((resolve, reject) => {\r\n tApi({param: {refVoucherId:id}}, 'chanjet.RE.NewPos.GetNewIntegralExchange', false, false,{timeout_skip:true}).then((resp) => {\r\n if( resp && resp.expireIntegral>0){\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: \"温馨提示\",\r\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\r\n cancelable: false,\r\n onOk() {\r\n resolve(true);\r\n },\r\n onCancel() {\r\n reject(false);\r\n }\r\n })\r\n }else{\r\n resolve(true);\r\n }\r\n })\r\n })\r\n }\r\n\r\n async querySettleResult(){\r\n try{\r\n return Promise.resolve(await tApi({RetailCode: this.dto.Code}, 'chanjet.RE.newRetail.QuerySettleResult', false, false,{timeout_skip:true}));\r\n }catch(e){\r\n return Promise.resolve({Flag:\"1\"});\r\n }\r\n }\r\n\r\n setCookie(key, val) {\r\n var exp = new Date();\r\n exp.setTime(moment().endOf('day').valueOf());\r\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\r\n }\r\n\r\n getAllCookies() {\r\n var cookies = document.cookie.split(/;\\s/g);\r\n var cookieObj = {};\r\n cookies.forEach(function (item) {\r\n var key = item.split('=')[0];\r\n cookieObj[key] = item.split('=')[1];\r\n });\r\n return cookieObj;\r\n }\r\n\r\n async validePwd(value){\r\n let { isNewRetailBCPos } = platform || {};\r\n try{\r\n if (isNewRetailBCPos) {\r\n let cook1 = this.getAllCookies()['errorPwd'];\r\n let cook2 = cook1 && JSON.parse(cook1);\r\n let message = '密码输入错误';\r\n let memberStorageId = this.paymode.currentMode.meStorageCardId;\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\r\n if (cook2[memberStorageId] > 3) {\r\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\r\n return Promise.resolve(message);\r\n }\r\n }\r\n }\r\n const {cardTypeEnum, memberId, meStorageCardId, cardStatusEnum} = this.paymode.currentMode;\r\n let result = null;\r\n if (cardTypeEnum === 'BALANCE_CARD') {\r\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${memberId}`, false, false);\r\n } else {\r\n if (cardStatusEnum === 'BINDING' && this.member && this.member.ID === memberId) {\r\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\r\n } else {\r\n result = await ccApi({password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\r\n }\r\n }\r\n if (!result.data) {\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\r\n let count = cook2[memberStorageId];\r\n cook2[memberStorageId] = count + 1;\r\n } else {\r\n cook2[memberStorageId] = 1;\r\n }\r\n } else {\r\n cook2 = {};\r\n cook2[memberStorageId] = 1;\r\n }\r\n this.setCookie('errorPwd', '', -1);\r\n this.setCookie('errorPwd', JSON.stringify(cook2));\r\n }\r\n return Promise.resolve(result.data?\"\":message);\r\n } else {\r\n const result = await tApi({\"CheckoutParams\": {\r\n \"Idmember\": value.id,\r\n \"Password\":value.pwd\r\n }}, 'AA.DR.newRetailMember.CheckoutMemberPassword', false, false);\r\n return Promise.resolve(result.Success?\"\":result.Message);\r\n }\r\n }catch(e){\r\n return \"failed\";\r\n }\r\n }\r\n}\r\n\r\nexport class PayMode{\r\n _counter=0\r\n amount=0 //应收\r\n onlineamount=0\r\n maxamount=0;\r\n @observable currentFocus=\"\"\r\n @observable received=0;\r\n @observable receivable=0;\r\n @observable paymodes =[]\r\n @observable thePaymodes=[]\r\n bookMaxValue=0;\r\n isNotFullBook=false; //预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true\r\n isNotFullOnlyBook=false; //只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true\r\n @observable storageCardNo = null;\r\n @observable balance = null;\r\n // @observable store = null;\r\n currentMode=null;\r\n checkList = [];\r\n updateEvent\r\n settle={\r\n name:\"复合结算\",\r\n hotKey:\"Ctrl+M\",\r\n }\r\n constructor (){\r\n // this.amount=getFixedNumber(amount);\r\n // this.calcReserved();\r\n }\r\n\r\n @action clean(){\r\n this.thePaymodes=[];\r\n this.calcReserved();\r\n }\r\n\r\n @action clear(){\r\n this.thePaymodes=[];\r\n this.calcReserved();\r\n this.paymodes = [];\r\n }\r\n\r\n setAmount(a,o){\r\n this.amount=getFixedNumber((a || 0)-(o || 0));\r\n this.onlineamount=getFixedNumber(o || 0);\r\n this.calcReserved();\r\n return this.amount<0;\r\n }\r\n\r\n @action calcReserved(type){\r\n var sum=0;\r\n _each(this.thePaymodes,(mode)=>{\r\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\r\n });\r\n this.received = getFixedNumber(sum);\r\n if(type === 'bookPay' && this.isNotFullBook){\r\n if ( this.amount <= sum && sum <= this.bookMaxValue){\r\n this.receivable = getFixedNumber(0);\r\n }\r\n if (sum < this.amount){\r\n this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n if (sum > this.bookMaxValue){\r\n this.receivable = getFixedNumber(this.bookMaxValue - sum);\r\n }\r\n }else{\r\n this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n }\r\n\r\n @action calcCheckList = () => {\r\n this.checkList = [];\r\n }\r\n\r\n @action updateMemberStorageCardNo(storageCardNo, walletEnabled) {\r\n this.currentMode.storageCardNo = storageCardNo;\r\n this.currentMode.walletEnabled = walletEnabled;\r\n }\r\n\r\n @action updateCardInfo(m) {\r\n this.currentMode.cardStatusEnum = m.CardStatusEnum;\r\n this.currentMode.isNeedPassword = m.IsNeedPassword;\r\n this.currentMode.meStorageCardId = m.MeStorageCardId;\r\n this.currentMode.storageCardNo = m.StorageCardNo;\r\n this.currentMode.balance = m.BalanceStorage;\r\n this.currentMode.rawbalance = m.BalanceStorage;\r\n this.currentMode.cardTypeEnum = m.CardTypeEnum;\r\n this.currentMode.walletEnabled = m.WalletEnabled;\r\n this.currentMode.memberId = m.ID;\r\n this.currentMode.freePaymentPasswordStore = m.FreePaymentPasswordStore;\r\n }\r\n\r\n @action calcDjqCheckValue(q1, dto, params) {\r\n let useLimitPerOrder = PosInitData('UseLimitPerOrder');\r\n let qList = _filter(this.currentMode.djqs,djq=>djq.checked);\r\n if (qList.length === useLimitPerOrder && !q1.checked) {\r\n Message.warn('本单最多可用'+useLimitPerOrder+'张');\r\n return;\r\n }\r\n if (params === 'single') {\r\n this.checkList = [];\r\n }\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n\r\n if(q1){\r\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\r\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\r\n return ;\r\n }\r\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.promoCouponCode==q1.promoCouponCode});\r\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\r\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\r\n return ;\r\n }\r\n //判断是否是选择优惠券 //CC优惠券只能使用一个\r\n // if (q1 && !q1.checked && isNewRetailBCPos) {\r\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\r\n // this.currentMode.djqs.forEach((djq, index) => {\r\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\r\n // })\r\n // }\r\n q && (q.checked = !q.checked);\r\n }\r\n var sum=0;\r\n // console.log(this.store, 'stores-------');\r\n if (!q1.checked) {\r\n this.checkList.forEach((ele, i) => {\r\n if (ele.id === q1.id) {\r\n this.checkList.splice(i, 1);\r\n }\r\n })\r\n } else {\r\n this.checkList.push(q1);\r\n }\r\n\r\n this.checkList.forEach((ele) => {\r\n sum=Math.Add(sum,ele.amount);\r\n })\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n console.log(this.receivable, sum, Math.min(this.receivable,sum,this.currentMode.maxamount), 'sum---------');\r\n this.currentMode.receivable = getFixedNumber(this.receivable - Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n if (params === 'single') {\r\n return;\r\n }\r\n let promoVoucher = {};\r\n promoVoucher.boName = \"Retail\";\r\n // promoVoucher.promoLinks = _filter(this.currentMode.djqs,djq=>djq.checked);\r\n promoVoucher.meMemberId = this.currentMode.member.id;\r\n promoVoucher.storeFactorId = PosInitData('storeID');\r\n promoVoucher.voucherDetailList = [];\r\n dto.RetailDetails.forEach(item => {\r\n let detailDTO = {};\r\n detailDTO.uuid = item.Code;\r\n detailDTO.detailBoName = \"RetailDetail\";\r\n detailDTO.voucherDetailId = item.ID;\r\n detailDTO.productId = item.Idinventory;\r\n detailDTO.uomId = item.Idunit;\r\n detailDTO.productSpecId=item.ProductSpecId;\r\n detailDTO.isManualFreeGift = item.IsPresent;\r\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\r\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\r\n\r\n\r\n\r\n\r\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\r\n // {\r\n // detailDTO.listPrice = item.TaxPrice;\r\n // detailDTO.netAmountWithTax = item.TaxAmount;\r\n // }\r\n // else\r\n // {\r\n\r\n let bookingQuantity=0;\r\n if(item.BookingQuantity)\r\n {\r\n bookingQuantity=item.BookingQuantity;\r\n }\r\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\r\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\r\n detailDTO.taxRate = item.TaxRate;\r\n detailDTO.quantity = item.Quantity;\r\n\r\n detailDTO.amountWithTax = item.RetailAmount;\r\n // 促销 start\r\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\r\n let promoLinks = [];\r\n item.PromotionDetails.forEach((promotion)=>{\r\n promoLinks.push({\r\n promoId:promotion.IdSalesPromotionDTO,\r\n promoRuleId:promotion.PromotionRuleId\r\n })\r\n })\r\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\r\n }\r\n // 促销 end\r\n promoVoucher.voucherDetailList.push(detailDTO);\r\n });\r\n promoVoucher.promoLinks = this.checkList;\r\n return ccApi({\r\n ...promoVoucher\r\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\r\n .then((result)=>{\r\n if(result && result.length != 0 ){\r\n result.forEach((element, index) => {\r\n let djq1 = false;\r\n this.currentMode.djqs.forEach((djq) => {\r\n if (element.id === djq.id) {\r\n djq1 = true;\r\n }\r\n })\r\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id, doorsill} = element || {};\r\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\r\n if(!djq1) {\r\n // this.currentMode.djqs.push({\r\n // promoCouponCode: element.CouponCode,\r\n // name: element.CouponTitle,\r\n // IsEnable: true,\r\n // amount: element.ReductionAmount,\r\n // doorsill: element.EnableAmount,\r\n // LastTS: element.LastTS,\r\n // checked: false,\r\n // IsRepelWithPoints: true,\r\n // UMemberID: dto.Idmember,\r\n // expired: null,\r\n // displayText,\r\n // promoMethodEnum,\r\n // discountPct,\r\n // promoId,\r\n // promoRuleId,\r\n // couponCategoryEnum: tieredAmountResult.couponCategoryEnum,\r\n // id\r\n // })\r\n this.addDjqs(couponCode,name,true,nominalAmount,promoDiscount,doorsill,element.LastTS,false,true,\r\n dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n tieredAmountResult.couponCategoryEnum,\r\n id);\r\n djq1 = false;\r\n } else {\r\n this.setCouponNum(element.id, couponCategoryEnum, promoMethodEnum, nominalAmount,promoDiscount);\r\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\r\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\r\n }\r\n })\r\n }\r\n // 优惠券【6052098985043】与【6120822326451】不可叠加使用\r\n })\r\n //this.receivable = getFixedNumber(this.receivable - sum);\r\n }\r\n\r\n @action setCouponNum = (id, couponNum, promoMethodEnum, nominalAmount,promoDiscount) => {\r\n this.currentMode.djqs.forEach((ele) => {\r\n if (ele.id === id) {\r\n ele.amount = promoDiscount;\r\n promoMethodEnum == \"CASH_COUPON\" && (ele.nominalAmount = nominalAmount);\r\n ele.couponCategoryEnum = couponNum;\r\n let IsEnable = (ele.couponCategoryEnum === 'RIGUP' || ele.couponCategoryEnum === 'UN_MATCH' || ele.couponCategoryEnum === \"PREPARING\" || ele.couponCategoryEnum === 'PROMO_LIMITED' || ele.couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\r\n ele.IsEnable = IsEnable;\r\n }\r\n })\r\n }\r\n\r\n @action addDjqs = (promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id) => {\r\n let djq={\r\n promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id\r\n };\r\n this.currentMode.djqs.push(\r\n djq\r\n );\r\n }\r\n\r\n @action calcDjqValue(q1){\r\n const { Differentiate } = enumController.getEnumOj();\r\n if(q1){\r\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\r\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\r\n return ;\r\n }\r\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\r\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\r\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\r\n return ;\r\n }\r\n //判断是否是选择优惠券 //CC优惠券只能使用一个\r\n // if (q1 && !q1.checked && isNewRetailBCPos) {\r\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\r\n // this.currentMode.djqs.forEach((djq, index) => {\r\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\r\n // })\r\n // }\r\n q && (q.checked = !q.checked);\r\n }\r\n var sum=0;\r\n // console.log(this.store, 'stores-------');\r\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\r\n sum=Math.Add(sum,q.amount);\r\n });\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n\r\n //this.receivable = getFixedNumber(this.receivable - sum);\r\n }\r\n\r\n @action reCalculationDjqs() {\r\n var sum=0;\r\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\r\n sum=Math.Add(sum,q.amount);\r\n });\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\r\n }\r\n\r\n @action clearDjqs() {\r\n this.currentMode.djqs = [];\r\n }\r\n\r\n @action setCurrentModeValue(v,max){\r\n this.currentMode.value=parseFloat(v) || 0;\r\n this.currentMode.errinfo='';\r\n let sum = this.amount;\r\n const { PayStyle} = enumController.getEnumOj();\r\n this.thePaymodes && this.thePaymodes.forEach((mode) => {\r\n if (mode.paymentType === PayStyle.hyczk) {\r\n sum -= mode.value;\r\n }\r\n })\r\n\r\n if(this.amount>0 && (v==='' || v==='0.00') && sum !== 0){\r\n this.currentMode.errinfo=\"实收金额必须录入\";\r\n }else if(Math.abs(parseFloat(v))>Math.abs(getFixedNumber(sum))){\r\n this.currentMode.errinfo=\"实收不应大于应收\";\r\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\r\n this.currentMode.errinfo=\"余额不足\";\r\n }\r\n // 如果是积分抵现的一些判断\r\n if (this.currentMode.paymentType === PayStyle.jfdx) {\r\n if (this.currentMode.integralCashOverOrderAmount === true) {\r\n this.currentMode.steadCashIntegral = Math.ceil(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\r\n } else if(this.currentMode.integralCashOverOrderAmount === false){\r\n let v1 = this.currentMode.value/this.currentMode.cashAmount;\r\n if (Number.isInteger(v1)) {\r\n this.currentMode.steadCashIntegral = Math.floor(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\r\n } else {\r\n this.currentMode.errinfo=`请按照积分抵现规则${this.currentMode.perIntegral}积分抵用${this.currentMode.cashAmount}元输入金额`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action calcMemberBalance(){\r\n this.currentMode.balance = this.currentMode.rawbalance - this.currentMode.value;\r\n }\r\n\r\n get charge(){\r\n return Math.abs(this.receivable);\r\n }\r\n\r\n get counter(){\r\n return ++this._counter;\r\n }\r\n\r\n async setPaymodes(type,isIntegralExchange){\r\n // 是否移动端判断\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n const isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\r\n const {memberStoreCode , settlementCode } = settleStyleType;\r\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\r\n let modes = await tApi({ param }, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\r\n if(modes){\r\n runInAction(()=>{\r\n let paymodes = [];\r\n let settleLists = modes.SettleStyles;\r\n settleLists = isMobileEnvironment ? settleLists.filter(v => !v.ThirdPaymentInfo) : settleLists;\r\n _each(settleLists, (mode, index) => {\r\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\r\n if (mode.Code == PayStyle.hyczk) {\r\n mode.Name = '储值卡';\r\n }\r\n paymodes.push({\r\n name:mode.Name,\r\n isDefault:mode.IsDefaultSettleStyle,\r\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\r\n orderBy:1,\r\n paymentType:mode.Code,\r\n offlineDisable:mode.offlineDisable,\r\n idSettleStyle:mode.IdSettleStyle,\r\n idBankAccount:mode.IdBankAccount,\r\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\r\n idCurrency:mode.Currency?mode.Currency.ID:-1,\r\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\r\n virtualPay: mode.VirtualPay,\r\n thridPayment: mode.ThirdPaymentInfo,\r\n })\r\n })\r\n this.paymodes = paymodes;\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport class Member{\r\n id;\r\n uid;\r\n @observable cardNo;\r\n type;\r\n @observable balance;\r\n rawbalance;\r\n needPwd;\r\n bonusPoints;\r\n @observable exchangable;\r\n @observable meStorageCardId;\r\n @observable storageCardNo;\r\n constructor(m){\r\n if(m){\r\n this.id=m.ID;\r\n this.uid=m.Uid;\r\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\r\n this.rawbalance=m.BalanceStorage;\r\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\r\n runInAction(()=>{\r\n this.cardNo=m.CardCode;\r\n if(index>=0){\r\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\r\n }else{\r\n this.balance=this.rawbalance;\r\n }\r\n });\r\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\r\n this.NeedModifyPassword=m.NeedModifyPassword;\r\n this.bonusPoints=m.BalanceIntegral;\r\n }\r\n }\r\n @action setExchangable(v){\r\n this.exchangable=v;\r\n }\r\n @action setCardNo(v){\r\n this.cardNo=v;\r\n this.id=null;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","dtoParams","member","brefund","bquick","boriginReturn","isFull","handleCzkData","m","StorageCardNo","currentMode","errinfo","memberId","ID","value","receivable","Math","max","updateEvent","message","sum","thePaymodes","total","cur","String","isNullOrEmpty","checkReceived","amount","parseFloat","setTimeout","nextInput","document","querySelector","select","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","onlinePaymentAmount","OnlinePaymentAmount","promoLinks","djqs","djq","checked","totalAmountWithTax","Minus","TotalTaxAmount","redBlueFlagEnum","meMemberId","Idmember","storeFactorId","Idstore","voucherDetailList","RetailDetails","forEach","detailDTO","uuid","item","Code","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","bookingQuantity","BookingQuantity","listPrice","JSON","getCellValue","netAmountWithTax","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","length","promotion","push","promoId","IdSalesPromotionDTO","promoRuleId","PromotionRuleId","method","timeout_skip","then","result","element","couponCode","name","tieredAmountResult","fromDate","dateMount","promoMethodEnum","discountPct","nominalAmount","id","condValue","promoDiscount","displayText","couponCategoryEnum","IsRepelWithPoints","themode","paymentType","jfdx","Message","error","COUPON","SN","IsEnable","addDjq","calcDjqCheckValue","info","getSettleGift","billID","getRefWareHouseList","checkCoupon","sn","platform","isNewRetailBCPos","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","code","Title","ReduceAmount","StartAmount","LastTS","UMemberID","repeatStorageModal","content","resolve","reject","ModalWraper","confirm","title","okText","className","zIndex","onOk","saveMember","ret","onCancel","checkIntegralExchangeReturn","param","refVoucherId","resp","expireIntegral","cancelable","PayMode","params","localStore","get","cloudPrintArguments","setNewStyle","event","type","isIntegralExchange","setPaymodes","context","amounthandler","datasource","storeinfo","data","payModeKey","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","isQuickCash","xianjin","DealAmountSettingProcessorBlock","Member","isNotFullBook","isNotFullOnlyBook","getLoginInfo","PreSellOrBook","PercentageWhenBook","IdbusiType","DistributionMode","Id","bookMaxValue","PrepaidAmount","BuyerPayFreight","stores","drawerStore","thisWaitPaidAmount","totalWaitPaidAmount","setAmount","clean","initByOriginReturn","newStyle","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","console","log","checkList","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","thirdPaymentReturnInfo","ThirdPaymentReturnInfo","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","MeStorageCardId","Password","balance","calcReserved","key","bookType","currentFocus","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","integralCashOverOrderAmount","user","options","v","returnType","isOnlyEnabled","address","CardTypeEnum","updateCardInfo","result1","data1","parse","enable","warn","disableReason","promoCouponCode","doorsill","expired","unCheck","count","calcDjqValue","append","afterSetCurrentMode","setExchangable","MaxAmount","perIntegral","cashAmount","maxamount","notwithm","isQuick","counter","exchangeRate","calDirection","thridPayment","value2","value3","order","card","virtualPay","setMaxAmount","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","undefined","StorageMutiSettleDetails","giveChange","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","bTest","status","paylist","filter","findStorageBillValidate","returnMsg","state","ret1","offlineSys","generatorCode","save","ret2","retailSequenceUpload","thirdPayRefund","DoNameList","DO_STORAGE_PRINT","TradeType","ThirdPaymentInfo","IPMSG","window","localStorage","payList","payment","tradeType","PAY","REFUND","thirdPay","msg","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","Name","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","prepaidAmount","reduce","c","fullPayment","TaxAmount","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","vType","trade","cto","removeThirdPayDto","VoucherType","Payment","nativeMs","setIpcRendererMethod","res","Result","duration","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","memberStorageId","hasOwnProperty","cardTypeEnum","cardStatusEnum","md5Password","User","pwdEncrypt","pwd","cardType","password","setCookie","Success","observable","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","IdStore","updateMemberStorageCardNo","WalletEnabled","ctMode","cardNo","_counter","onlineamount","settle","hotKey","a","o","received","walletEnabled","CardStatusEnum","isNeedPassword","IsNeedPassword","rawbalance","freePaymentPasswordStore","FreePaymentPasswordStore","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","ceil","v1","floor","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","settleStyleType","memberStoreCode","settlementCode","modes","settleLists","SettleStyles","isDefault","IsDefaultSettleStyle","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","VirtualPay","couponNum","MemberType","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\r\nimport { stores, i18n, localStore, nativeMs } from 'mutants-microfx';\r\nimport _find from 'lodash/find';\r\nimport _remove from 'lodash/remove';\r\nimport _each from 'lodash/each';\r\nimport _map from 'lodash/map';\r\nimport _join from 'lodash/join';\r\nimport _trim from 'lodash/trim';\r\nimport _filter from 'lodash/filter';\r\nimport _findIndex from 'lodash/findIndex';\r\nimport _findLastIndex from 'lodash/findLastIndex';\r\nimport _findKey from 'lodash/findKey';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { getFixedNumber, stopPropagation } from './utils'\r\nimport {ccApi,tApi, User} from 'tplus-api';\r\nimport _clonedeep from 'lodash/cloneDeep';\r\nimport Message from '../message';\r\nimport { platform,enumController } from 'mutants-util';\r\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\r\nimport moment from \"moment\";\r\nimport _reduce from 'lodash/reduce';\r\nimport { Card } from 'antd';\r\n\r\nconst t = i18n.getFixedT(null, 'newretail');\r\n\r\nexport default class SettlementStore {\r\n paymode = null\r\n dto=null\r\n dtoParams = null\r\n member=null\r\n brefund=false\r\n context\r\n bquick=false;\r\n amountHandler\r\n dataSource\r\n storeInfo\r\n updateEvent\r\n type\r\n boriginReturn=false\r\n @observable newStyle=true//type==2\r\n billID\r\n isFull = true; // 预售都是全款;预订是否全款,在点击确认支付时计算订金和商品金额计算得出\r\n constructor(){\r\n this.paymode= new PayMode()\r\n let params = localStore && localStore.get('cloudPrintArguments');\r\n if (params) this.cloudPrintArguments = params;\r\n this.setNewStyle();\r\n }\r\n\r\n @action\r\n setNewStyle = () => {\r\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\r\n }\r\n\r\n initPaymodes(event,type,isIntegralExchange){\r\n this.isIntegralExchange = isIntegralExchange;\r\n this.paymode.setPaymodes(type,isIntegralExchange);\r\n this.updateEvent=event;\r\n }\r\n\r\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data,payModeKey){\r\n this.setNewStyle();\r\n this.type=type;\r\n if(context){\r\n this.context=context;\r\n this.amountHandler=amounthandler;\r\n this.dataSource=datasource;\r\n this.storeInfo=storeinfo;\r\n this.dto=context.viewModel.data;\r\n runInAction(()=>{\r\n // 单品金额抹零\r\n if (global.DealSingleRowAmountSettingProcessorBlock) {\r\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\r\n }\r\n const { PayStyle } = enumController.getEnumOj();\r\n const isQuickCash = bquick && payModeKey == PayStyle.xianjin;\r\n\r\n // 成交金额抹零\r\n if (global.DealAmountSettingProcessorBlock) {\r\n global.DealAmountSettingProcessorBlock.execute(this.dto,isQuickCash);\r\n }\r\n });\r\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\r\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\r\n\r\n this.paymode.isNotFullBook = false;\r\n this.paymode.isNotFullOnlyBook = false;\r\n //预订按比例收取订金处理\r\n let value = this.dto.TotalTaxAmount;\r\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\r\n const { IdbusiType, DistributionMode } = this.dto || {};\r\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n this.paymode.bookMaxValue = value;\r\n this.paymode.isNotFullBook = true;\r\n this.paymode.isNotFullOnlyBook = true;\r\n value = value * PercentageWhenBook / 100;\r\n }\r\n if (IdbusiType == 38 && PreSellOrBook == 'BOOK'){\r\n runInAction(()=>{\r\n this.dto.PrepaidAmount = value;\r\n });\r\n }\r\n //预订计算快递或同城配送运费\r\n if (IdbusiType == 38 && PreSellOrBook != 'DISABLED' && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\r\n value += this.dto.BuyerPayFreight || 0;\r\n }\r\n //预订取货应补款金额\r\n if (IdbusiType == 39){\r\n value = stores.drawerStore.thisWaitPaidAmount;\r\n if(stores.drawerStore.totalWaitPaidAmount > 0){\r\n this.paymode.isNotFullBook = true;\r\n this.paymode.bookMaxValue = stores.drawerStore.totalWaitPaidAmount;\r\n }\r\n }\r\n\r\n this.brefund=this.paymode.setAmount( value ,this.dto.OnlinePaymentAmount );\r\n }else{\r\n this.brefund=this.paymode.setAmount( amount ,0 );\r\n this.dto=data;\r\n }\r\n this.paymode.clean();\r\n\r\n //this.dto.TotalTaxAmount<0;\r\n this.bquick=!!bquick;\r\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\r\n if(this.boriginReturn){\r\n this.initByOriginReturn();\r\n }\r\n if(this.newStyle){\r\n this.setModes();\r\n }\r\n }\r\n\r\n setModes(){\r\n _each(this.paymode.paymodes,(p)=>{\r\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\r\n this.addPay(p.paymentType);\r\n }\r\n });\r\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\r\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\r\n }\r\n }\r\n\r\n amountChanged(amount){\r\n if(this.type==1){\r\n this.brefund=this.paymode.setAmount( amount ,0 );\r\n }\r\n\r\n }\r\n\r\n @action queryPwd = (newPass, newPassConfirm) => {\r\n if (!newPass || !newPassConfirm) {\r\n return Message.warn('您还有未填写项');\r\n }\r\n if (newPass !== newPassConfirm) {\r\n return Message.warn('您两次输入的密码不一致');\r\n }\r\n let idstore = PosInitData('storeID');\r\n return ccApi({\r\n Idstore: idstore,\r\n meMemberId: this.paymode.currentMode.memberId,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(newPassConfirm),\r\n dataSource:\"POS\"\r\n }, '/member/MeMemberWallet/setWalletPayPassword', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n if (resp.successful) {\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n @action\r\n initByOriginReturn(){\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { isNewRetailBCPos } = platform || {};\r\n console.log(this.dto, 'dto==========');\r\n this.paymode.checkList = [];\r\n _each(this.dto.RetailPaymentDetails,(detail)=>{\r\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\r\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\r\n ModalWraper.info({\r\n title: '温馨提示',\r\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\r\n okText:'确定',\r\n okType:'primary'\r\n });\r\n }\r\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\r\n let newmode={\r\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\r\n authCode:detail.PaymentCode,\r\n steadCashIntegral:detail.SteadCashIntegral,\r\n overchargesAmount:detail.OverchargesAmount,\r\n boriginReturn:true,\r\n thirdPaymentReturnInfo: detail.ThirdPaymentReturnInfo\r\n };\r\n this.paymode.currentMode=newmode;\r\n if(themode.paymentType==PayStyle.djq){\r\n _each(this.dto.RetailCouponDetails,(djq)=>{\r\n if (isNewRetailBCPos) {\r\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\r\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null,djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,\r\n this.dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n null,\r\n id,\r\n true);\r\n return;\r\n }\r\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\r\n })\r\n }\r\n this.paymode.thePaymodes.push(newmode)\r\n }\r\n })\r\n _each(this.dto.RetailStorageDetails,(detail)=>{\r\n let balanceAmount = null;\r\n let storageCardNo = null;\r\n let meStorageCardId = null;\r\n detail.DynamicPropertyKeys.forEach((ele, index) => {\r\n if (ele === \"mestoragecard\") {\r\n balanceAmount = detail.DynamicPropertyValues[index].BalanceStorage - detail.StoragePaymentAmount;\r\n storageCardNo = detail.DynamicPropertyValues[index].StorageCardNo;\r\n meStorageCardId = detail.DynamicPropertyValues[index].MeStorageCardId;\r\n }\r\n })\r\n let newmode={\r\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\r\n member:new Member(detail.Member ? detail.Member :null),\r\n authCode:detail.Password ? detail.Password: null,\r\n balance:balanceAmount,\r\n boriginReturn:true,\r\n meStorageCardId: meStorageCardId ? meStorageCardId : detail.MeStorageCardId,\r\n storageCardNo: storageCardNo ? storageCardNo : detail.StorageCardNo\r\n };\r\n this.paymode.thePaymodes.push(newmode)\r\n })\r\n this.paymode.calcReserved();\r\n }\r\n\r\n clean(){\r\n this.bquick=false;\r\n this.paymode.clean();\r\n }\r\n\r\n @action quickSettle(key){\r\n this.addPay(key,null, true);\r\n }\r\n\r\n //outer call\r\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\r\n @action changeFocusAndAddPay(type, bookType){\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.paymode.currentFocus=type;\r\n if(this.paymode.currentMode){\r\n if(type==PayStyle.jfdx){\r\n if(this.newStyle){\r\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\r\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\r\n this.paymode.calcReserved();\r\n }else{\r\n this.addPayDirectly(this.paymode.currentMode);\r\n }\r\n\r\n //抵现积分\r\n tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.memberId,\r\n TotalTaxAmount:this.paymode.amount,\r\n BalanceTaxAmount: this.paymode.currentMode.value,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n // this.paymode.currentMode.steadCashIntegral=result.Integral;\r\n // this.paymode.currentMode.perIntegral=result.perIntegral;\r\n // this.paymode.currentMode.cashAmount=result.cashAmount;\r\n this.paymode.currentMode.integralCashOverOrderAmount=result.integralCashOverOrderAmount;\r\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\r\n });\r\n }else{\r\n this.addPayDirectly(this.paymode.currentMode);\r\n }\r\n }else{\r\n this.addPay(type, bookType);\r\n }\r\n }\r\n\r\n // 设置密码后更新会员信息\r\n @action updateMemberInfo = async (_this) => {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n const resp = await tApi({ Idmember: this.member.ID, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\r\n _this.member = resp;\r\n _this.paymode.updateMemberStorageCardNo(resp.StorageCardNo, resp.WalletEnabled);\r\n return Promise.resolve(resp);\r\n }\r\n\r\n // 查看会员卡信息\r\n @action updateCurrentMode = async (memberId, returnType) => {\r\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\r\n const result = await ccApi({}, `/marketingtool/MeStorageCard/getCardInfoByMemberId/${memberId}/${isOnlyEnabled}`, false, false, { method: 'get' })\r\n if (result && result.data.length) {\r\n if (result.data.length === 1) {\r\n this.paymode.updateCardInfo(result.data[0]);\r\n return result.data;\r\n } else {\r\n if (result.data && result.data.length === 1) {\r\n this.paymode.updateCardInfo(result.data[0]);\r\n return result.data;\r\n } else if (result.data && result.data.length > 1) {\r\n return result.data;\r\n } else {\r\n Message.warn('没有可用储值卡!');\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action updateCardInfo = async () => {\r\n const ctMode = this.paymode && this.paymode.currentMode;\r\n let cardNo = ctMode && ctMode.storageCardNo;\r\n let result = await ccApi({}, `/marketingtool/MeStorageCard/getCardInfoByCardNo/${cardNo}`, false, false, { method: 'get', timeout_skip: true })\r\n this.paymode.updateCardInfo(result && result.data);\r\n }\r\n\r\n getLoginInfo() {\r\n return stores.user.options.get('loginInfo');\r\n }\r\n\r\n handleCzkData = (m) => {\r\n if(!m || !m.StorageCardNo){\r\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\r\n }\r\n else{\r\n runInAction(()=>{\r\n this.paymode.currentMode.errinfo=\"\";\r\n this.paymode.currentMode.memberId = m.ID;\r\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\r\n this.updateEvent();\r\n let message='';\r\n const sum = _reduce(this.paymode.thePaymodes, (total, cur) => total + cur.value, 0)\r\n // 对于卡不用判断会员的一些信息\r\n // if (global.CheckMemberStorageProcessorBlock ) {\r\n // message= CheckMemberStorageProcessorBlock.execute(m);\r\n // }\r\n if (!String.isNullOrEmpty(message)) {\r\n this.paymode.currentMode.errinfo=message;\r\n }\r\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\r\n this.paymode.currentMode.errinfo=\"余额不足\";\r\n }else if(this.paymode.amount>0 && parseFloat(this.paymode.amount) !== sum && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n setTimeout(() => {\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.select();\r\n }, 300)\r\n }\r\n });\r\n }\r\n }\r\n\r\n loadCzk(v, returnType) {\r\n if (_trim(v) === \"\") {\r\n runInAction(() => {\r\n this.paymode.currentMode.errinfo = \"请输入储值卡\";\r\n });\r\n return;\r\n }\r\n let isOnlyEnabled = returnType ? false : true; //非原单退货为false,其他true\r\n let address = `/marketingtool/MeStorageCard/getCardInfoByCardNo/${v}/${isOnlyEnabled}`;\r\n return ccApi({ code: v }, address, false, false, { method: 'get', timeout_skip: true })\r\n .then(async (result) => {\r\n let data = result.data;\r\n let m = (data && data.length && data[0]);\r\n if (result && result.data.length) {\r\n if (result.data.length === 1) {\r\n if (m.CardTypeEnum === 'BALANCE_CARD') {\r\n this.paymode.updateCardInfo(m);\r\n this.handleCzkData(m);\r\n return result.data;\r\n } else {\r\n // 校验储值卡是否可用\r\n await ccApi({ dto: this.dto, meStorageCardId: m.MeStorageCardId }, '/retail/RetailPos/validateRetailStorageCard', false, false)\r\n .then((result1) => {\r\n let data1 = result1.data ? JSON.parse(result1.data)[0] : {};\r\n if (data1.enable) {\r\n this.paymode.updateCardInfo(m);\r\n this.handleCzkData(m)\r\n return result1.data;\r\n } else {\r\n Message.warn(data1.disableReason);\r\n }\r\n })\r\n }\r\n } else {\r\n if (result.data && result.data.length === 1) {\r\n this.paymode.updateCardInfo(result.data[0]);\r\n return result.data;\r\n } else if (result.data && result.data.length > 1) {\r\n return result.data;\r\n } else {\r\n Message.warn('没有可用储值卡!');\r\n return false;\r\n }\r\n }\r\n }\r\n })\r\n }\r\n getCouponList = coupon_code => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n const couponApplyRule = PosInitData('CouponApplyRule');\r\n const { CouponApplyRule } = enumController.getEnumOj();\r\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\r\n let dto = this.dto;\r\n let promoVoucher = {};\r\n this.paymode.clearDjqs();\r\n this.paymode.reCalculationDjqs();\r\n promoVoucher.coupon_code = coupon_code || \"\";\r\n promoVoucher.boName = \"Retail\";\r\n promoVoucher.voucherId = dto.ID;\r\n let onlinePaymentAmount=0;\r\n if(dto.OnlinePaymentAmount)\r\n {\r\n onlinePaymentAmount=dto.OnlinePaymentAmount;\r\n }\r\n promoVoucher.promoLinks = _filter(this.paymode.currentMode.djqs,djq=>djq.checked);\r\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\r\n promoVoucher.redBlueFlagEnum = \"BLUE\";\r\n promoVoucher.meMemberId = dto.Idmember;\r\n promoVoucher.storeFactorId = dto.Idstore;\r\n promoVoucher.voucherDetailList = [];\r\n dto.RetailDetails.forEach(item => {\r\n let detailDTO = {};\r\n detailDTO.uuid = item.Code;\r\n detailDTO.detailBoName = \"RetailDetail\";\r\n detailDTO.voucherDetailId = item.ID;\r\n detailDTO.productId = item.Idinventory;\r\n detailDTO.uomId = item.Idunit;\r\n detailDTO.productSpecId=item.ProductSpecId;\r\n detailDTO.isManualFreeGift = item.IsPresent;\r\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\r\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\r\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\r\n // {\r\n // detailDTO.listPrice = item.TaxPrice;\r\n // detailDTO.netAmountWithTax = item.TaxAmount;\r\n // }\r\n // else\r\n // {\r\n let bookingQuantity=0;\r\n if(item.BookingQuantity)\r\n {\r\n bookingQuantity=item.BookingQuantity;\r\n }\r\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\r\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\r\n //}\r\n detailDTO.taxRate = item.TaxRate;\r\n detailDTO.quantity = item.Quantity;\r\n\r\n detailDTO.amountWithTax = item.RetailAmount;\r\n // 促销 start\r\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\r\n let promoLinks = [];\r\n item.PromotionDetails.forEach((promotion)=>{\r\n promoLinks.push({\r\n promoId:promotion.IdSalesPromotionDTO,\r\n promoRuleId:promotion.PromotionRuleId\r\n })\r\n })\r\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\r\n }\r\n // 促销 end\r\n promoVoucher.voucherDetailList.push(detailDTO);\r\n });\r\n\r\n return ccApi({\r\n ...promoVoucher\r\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\r\n .then((result)=>{\r\n if(result && result.length != 0 ){\r\n result.forEach((element)=>{\r\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\r\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\r\n if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\r\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\r\n }\r\n else {\r\n let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\r\n this.addDjq(\r\n couponCode,\r\n name,\r\n IsEnable,\r\n promoMethodEnum == \"CASH_COUPON\" && nominalAmount,\r\n promoDiscount,\r\n condValue,\r\n null,\r\n false,\r\n !result.IsRepelWithPoints,\r\n dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id,\r\n true, 1)\r\n }\r\n })\r\n if(promoVoucher.coupon_code){\r\n this.paymode.calcDjqCheckValue(this.paymode.currentMode.djqs[0], this.dto, 'single')\r\n }\r\n }else{\r\n if (promoVoucher.coupon_code) {\r\n Message.info(`${Differentiate.COUPON}号不存在!`);\r\n this.getCouponList();\r\n } else {\r\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n getSettleGift = () => {\r\n return ccApi({ }, `/marketingtool/paygift/executeRightsForPos/${this.billID}`, false, false, { method: 'get', timeout_skip: true });\r\n }\r\n\r\n getRefWareHouseList = () => {\r\n return ccApi({}, `/retail/RetailPos/getRefWareHouseList`, false, false);\r\n }\r\n\r\n checkCoupon = async (sn) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n return await this.getCouponList(sn, 'sinlge');\r\n } else {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n return tApi({request:{\r\n Uid:this.paymode.currentMode.member.uid || '',\r\n SN:sn,\r\n StoreCode:this.dto.Idstore,\r\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\r\n IdInventory:detail.Inventory.ID,\r\n IdUnit:detail.Idunit,\r\n Code:detail.Inventory.Code,\r\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\r\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\r\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\r\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\r\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\r\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\r\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\r\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\r\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\r\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\r\n }}),\r\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\r\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\r\n Amount:this.paymode.amount\r\n }}, 'chanjet.AA.DR.coupon.CheckCoupon', false, false)\r\n .then((result)=>{\r\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\r\n Message.info(`${Differentiate.COUPON}已添加`);\r\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\r\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\r\n }\r\n else{\r\n this.addDjq(\r\n result.SN,\r\n result.Title,\r\n result.ReduceAmount,\r\n result.StartAmount,\r\n result.LastTS,\r\n false,\r\n !result.IsRepelWithPoints,\r\n result.UMemberID)\r\n }\r\n\r\n })\r\n }\r\n }\r\n @action addDjq(\r\n promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id,\r\n unCheck,count\r\n ){\r\n let djq={\r\n code: promoCouponCode,\r\n promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,//:\"无门槛\"\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired, //还剩多少过期\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id,\r\n count: (count === 1 && (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? 1 : null)\r\n };\r\n this.paymode.currentMode.djqs.push(\r\n djq\r\n );\r\n // let copyData = _clonedeep(this.data[targetIndex]);\r\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\r\n }\r\n\r\n setCurrentMode(id,type,append){\r\n const { PayStyle } = enumController.getEnumOj();\r\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\r\n if(mode){\r\n this.paymode.currentMode=mode;\r\n if(this.newStyle){\r\n this.afterSetCurrentMode(type);\r\n }\r\n }else{\r\n this.paymode.currentMode=this.genNewMode(type,append);\r\n this.afterSetCurrentMode(type);\r\n }\r\n }\r\n afterSetCurrentMode(type){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(type==PayStyle.djq){\r\n this.paymode.calcDjqValue();\r\n }else if(type==PayStyle.jfdx){\r\n //获取可兑换的金额\r\n if(this.newStyle){\r\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\r\n if(themode && parseFloat(themode.value||0)!=0){\r\n this.paymode.currentMode.value=themode.value;\r\n }\r\n }\r\n\r\n //积分抵现不包含运费\r\n let BuyerPayFreight = this.dto.BuyerPayFreight;\r\n let DistributionMode = this.dto.DistributionMode;\r\n let IdbusiType = this.dto.IdbusiType;\r\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\r\n let value = 0;\r\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0){\r\n value = getFixedNumber(Math.Minus(this.paymode.amount, BuyerPayFreight))\r\n } else if (IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n //预订场景下:现场提货,且订金比例非100%时,积分抵现按全款计算(因为只有全款才能使用积分抵现)\r\n value = this.paymode.bookMaxValue;\r\n } else {\r\n value = this.paymode.amount;\r\n }\r\n\r\n tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.memberId,\r\n TotalTaxAmount:value,\r\n BalanceTaxAmount:value,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\r\n this.paymode.currentMode.perIntegral=result.perIntegral;\r\n this.paymode.currentMode.cashAmount=result.cashAmount;\r\n this.paymode.currentMode.integralCashOverOrderAmount=result.integralCashOverOrderAmount;\r\n this.updateEvent();\r\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\r\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n checkReceived(mode,name){\r\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\r\n }\r\n\r\n genNewMode(type,notwithm,v,isQuick){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\r\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\r\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\r\n const mode = observable({\r\n paymethodId:this.paymode.counter,\r\n name:themode.name,\r\n exchangeRate:themode.exchangeRate,\r\n calDirection:themode.calDirection,\r\n thridPayment: themode.thridPayment,\r\n value,\r\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\r\n value3:value,\r\n order:this.paymode.thePaymodes.length+1,\r\n paymentType:type,\r\n djqs:[],\r\n card: null,\r\n memberId: !notwithm?memberId:null,\r\n member:new Member(!notwithm?this.member:null),\r\n authCode:'',\r\n steadCashIntegral:null,\r\n errinfo:'',\r\n maxamount:this.paymode.amount,\r\n virtualPay: themode.virtualPay\r\n });\r\n if(type==PayStyle.hyczk){\r\n if(!mode.storageCardNo){\r\n runInAction(()=>{mode.errinfo='未录入手机号或储值卡号'})\r\n }else if(this.checkReceived(mode,\"balance\")){\r\n runInAction(()=>{mode.errinfo='余额不足'})\r\n }\r\n\r\n }\r\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\r\n this.setMaxAmount(type,mode);\r\n }\r\n console.log(`当前操作结算方式信息:${mode}`);\r\n return mode;\r\n }\r\n\r\n setMaxAmount(type,mode){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let sum=0;\r\n if(type==PayStyle.hyczk){\r\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\r\n sum=Math.Add(sum,q.value);\r\n });\r\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\r\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\r\n sum=Math.Add(sum,q.value);\r\n });\r\n }\r\n\r\n this.amountHandler && this.amountHandler(type).then(()=>{\r\n runInAction(()=>{\r\n\r\n //预售储值结算应包含运费\r\n let BuyerPayFreight = this.dto.BuyerPayFreight;\r\n let DistributionMode = this.dto.DistributionMode;\r\n let value = 0;\r\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 && type == PayStyle.hyczk){\r\n value = getFixedNumber(parseFloat(this.context.viewModel.getViewItem('Voucher').availableAmount) + parseFloat(BuyerPayFreight))\r\n } else {\r\n value = this.context.viewModel.getViewItem('Voucher').availableAmount;\r\n }\r\n mode.maxamount=getFixedNumber(Math.Minus(value,sum));\r\n this.updateEvent();\r\n })\r\n })\r\n }\r\n\r\n @action changeFocusOnly(type){\r\n this.paymode.currentFocus=type;\r\n }\r\n\r\n @action changeClickFocusOnly(type) {\r\n this.paymode.currentFocus=type;\r\n // 获取焦点时带入剩余的值\r\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\r\n if(mode){\r\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\r\n mode.value = shouldSetValue;\r\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\r\n mode.value3 = shouldSetValue;\r\n this.paymode.calcReserved('bookPay'); //参数multiPay代表复合结算\r\n }\r\n }\r\n\r\n @action changeValue(index,value,blur,type){\r\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\r\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\r\n if(mode){\r\n if(mode.exchangeRate != 1){\r\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\r\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\r\n }\r\n else{\r\n mode.value=mode.value3;\r\n }\r\n mode.value2=v;\r\n }else{\r\n mode.value=v;\r\n mode.value2=v;\r\n }\r\n\r\n this.paymode.calcReserved(type);\r\n }\r\n }\r\n\r\n @action addPayDirectly(pay){\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\r\n let pos=this.paymode.thePaymodes.length;\r\n if(pay.paymentType==PayStyle.hyczk){\r\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\r\n pos=index==-1?pos:(index+1);\r\n }\r\n // this.paymode.thePaymodes.push(pay);\r\n this.paymode.thePaymodes.splice(pos,0,pay);\r\n }\r\n this.paymode.calcReserved();\r\n }\r\n\r\n @action addPay(type, bookType, isQuick){\r\n const { PayStyle } = enumController.getEnumOj();\r\n let pos = this.paymode.thePaymodes.length;\r\n if (type == PayStyle.hyczk) {\r\n let index = _findLastIndex(this.paymode.thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk });\r\n pos = index == -1 ? pos : (index + 1);\r\n }\r\n this.paymode.thePaymodes.splice(pos, 0, this.genNewMode(type,this.newStyle && type==PayStyle.hyczk,undefined, isQuick));\r\n this.paymode.calcReserved(bookType);\r\n }\r\n\r\n @action delPay(index, bookType){\r\n const { PayStyle } = enumController.getEnumOj();\r\n _remove(this.paymode.thePaymodes,(mode)=>{\r\n return mode.paymethodId===index;\r\n });\r\n this.paymode.currentFocus = -1;\r\n this.paymode.calcReserved(bookType);\r\n }\r\n\r\n // 获取储值是否重复, 在commit方法中使用\r\n findStorageBillValidate () {\r\n const { PayStyle } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.StorageMutiSettleDetails=[];\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.StorageMutiSettleDetails.push({\r\n Code:mode.paymethodId,\r\n StorageAmount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n PaymentCode:mode.authCode,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n })\r\n });\r\n\r\n });\r\n return ccApi(\r\n {...this.dto},\r\n '/marketingtool/Storage/findStorageBillValidate',\r\n false,\r\n false\r\n )\r\n }\r\n\r\n //判断是否重复弹框\r\n repeatStorageModal = (content) => {\r\n return new Promise((resolve, reject) => {\r\n ModalWraper.confirm({\r\n title: '',\r\n okText: '继续储值',\r\n className: 'repeat-modal',\r\n zIndex: 1007,\r\n content,\r\n onOk: async () => {\r\n let ret = await this.saveMember();\r\n if (ret === false) {\r\n resolve(false)\r\n } else {\r\n resolve(true)\r\n }\r\n },\r\n onCancel() {\r\n resolve(false)\r\n }\r\n })\r\n })\r\n }\r\n\r\n async commit(bTest){\r\n console.log('settlementStore.commit开始,参数:' + bTest);\r\n if (bTest) {\r\n return Promise.resolve(true);\r\n }\r\n const status = this.type;\r\n try {\r\n const paylist = this.paymode.thePaymodes.filter(v => !!v.thridPayment && Math.abs(v.value) > 0) || [];\r\n if (paylist && paylist.length > 1) {\r\n Message.warn('二开支付目前仅支持单一结算方式。');\r\n return Promise.resolve(false);\r\n }\r\n if (status == 1) {\r\n const ret = await this.findStorageBillValidate();\r\n const { data: { code, returnMsg } = {} } = ret || {}\r\n if (code && code == 10001) {\r\n const state = await this.repeatStorageModal(returnMsg);\r\n if (state === false) return Promise.resolve(false);\r\n } else {\r\n let ret1 = await this.saveMember();\r\n if (ret1 === false) {\r\n Promise.resolve(false);\r\n }\r\n }\r\n } else {\r\n await stores.offlineSys.generatorCode(this.dto);\r\n let ret2 = await this.save();\r\n if (ret2 === false) {\r\n return Promise.resolve(false);\r\n }\r\n await stores.offlineSys.retailSequenceUpload();\r\n }\r\n return Promise.resolve(true);\r\n } catch (err) {\r\n console.error('settlementStore.commit失败,错误信息:' + err);\r\n //其他支付失败时,处理二开支付情况。\r\n this.thirdPayRefund(status == 1 ? 2 : 1);\r\n return Promise.resolve(err);\r\n }\r\n }\r\n\r\n handlePrint(resp) {\r\n // 储值打印\r\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{})\r\n }\r\n\r\n async saveMember(){\r\n const { PayStyle, TradeType } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.StorageMutiSettleDetails=[];\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.StorageMutiSettleDetails.push({\r\n Code:mode.paymethodId,\r\n StorageAmount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n PaymentCode:mode.authCode,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n ThirdPaymentInfo: themode.thridPayment || null,\r\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\r\n })\r\n });\r\n\r\n });\r\n // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n let dtoParams = this.dto;\r\n //处理存在二开支付情况\r\n let payList = dtoParams.StorageMutiSettleDetails.filter(v => v.ThirdPaymentInfo);\r\n if (payList && payList.length > 0) {\r\n let payment = payList[0];\r\n let tradeType = payment && payment.StorageAmount > 0 ? TradeType.PAY : TradeType.REFUND;\r\n const ret = await this.thirdPay(2, payment, tradeType, dtoParams);\r\n const { type, data, msg, code } = ret || {};\r\n if (type === true) {\r\n dtoParams = data;\r\n } else {\r\n Message.warn(`刷卡支付失败,错误码:${code}`);\r\n return false;\r\n }\r\n }\r\n this.dtoParams = dtoParams;\r\n console.log('储值结算信息:', dtoParams);\r\n return tApi({ dto: dtoParams }, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp) => {\r\n this.handlePrint(resp);\r\n });\r\n }\r\n\r\n async save(){\r\n const { PayStyle, TradeType } = enumController.getEnumOj();\r\n runInAction(()=>{\r\n this.dto.RetailPaymentDetails=[];\r\n this.dto.RetailStorageDetails=[];\r\n this.dto.RetailCouponDetails=[];\r\n let czkSum=0;\r\n let count = 0;\r\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\r\n _each(thePaymodes,(mode, index)=>{\r\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\r\n if(mode.paymentType==PayStyle.hyczk){\r\n czkSum=Math.Add(czkSum,mode.value);\r\n this.dto.RetailStorageDetails.push({\r\n Code:mode.paymethodId,\r\n MeStorageCardId: mode.meStorageCardId,\r\n StoragePaymentAmount:mode.value,\r\n IsOrigReturn:false,\r\n BalanceStorage:mode.balance,\r\n Idmember:mode.memberId,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n Password:mode.authCode,\r\n })\r\n }else{\r\n let value=parseFloat(mode.value);\r\n let giveChange=null;\r\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\r\n value=Math.Add(value,this.paymode.receivable);\r\n giveChange=Math.abs(this.paymode.receivable);\r\n }\r\n this.dto.RetailPaymentDetails.push({\r\n Code:mode.paymethodId,\r\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\r\n Amount:value,\r\n GiveChange:giveChange,\r\n IdsettleStyle:themode.idSettleStyle,\r\n IdbankAccount:themode.idBankAccount,\r\n Idcurrency:themode.idCurrency,\r\n ExchangeRate:themode.exchangeRate,\r\n PaymentCode:mode.authCode,\r\n SteadCashIntegral:mode.steadCashIntegral,\r\n OverchargesAmount:mode.overchargesAmount,\r\n DynamicPropertyKeys:[],\r\n DynamicPropertyValues:[],\r\n DataSource:{Id:this.dataSource},\r\n ThirdPaymentInfo: themode.thridPayment || null,\r\n SettleStyle: {Name: mode.name},\r\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\r\n })\r\n if(mode.paymentType==PayStyle.djq){\r\n _each(this.paymode.checkList && this.paymode.checkList.length ? this.paymode.checkList: mode.djqs,(djq)=>{\r\n this.dto.RetailCouponDetails.push({\r\n CouponCode:djq.promoCouponCode,\r\n ReductionAmount:djq.amount,\r\n EnableAmount:djq.doorsill,\r\n CouponTitle:djq.name,\r\n IdMember:djq.UMemberID?mode.memberId:null,\r\n LastTS:djq.LastTS,\r\n PromotionId:djq.promoId,\r\n PromotionRuleId:djq.promoRuleId,\r\n PromoCouponAllocatedId:djq.id,\r\n DataSource:{Id:this.dataSource},\r\n })\r\n })\r\n }\r\n }\r\n });\r\n if (this.dto.RetailStorageDetails.length > 0) {\r\n const themode = _find(this.paymode.paymodes, { 'paymentType': PayStyle.hyczk });\r\n this.dto.RetailPaymentDetails.push({\r\n Code: this.paymode.counter,\r\n OrigAmount: czkSum,\r\n Amount: czkSum,\r\n IdsettleStyle: themode.idSettleStyle,\r\n IdbankAccount: themode.idBankAccount,\r\n DynamicPropertyKeys: [],\r\n DynamicPropertyValues: [],\r\n DataSource: { Id: this.dataSource },\r\n RetailStorageDetails: this.dto.RetailStorageDetails,\r\n })\r\n }\r\n });\r\n console.log(`结算数据:`, this.dto);\r\n // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n const RetailTypeEnum = this.dto.IdbusiType == 36 ? \"INTEGRAL_EXCHANGE\" : \"NORMAL\";\r\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\r\n const { IdbusiType, DistributionMode } = this.dto || {};\r\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n let prepaidAmount = getFixedNumber(this.dto.RetailPaymentDetails.reduce((c, item) => c + (item.Amount || 0), 0));\r\n let fullPayment = getFixedNumber(this.dto.RetailDetails.reduce((c, item) => c + (item.TaxAmount || 0), 0));\r\n this.isFull = fullPayment == prepaidAmount; // 是否全款\r\n runInAction(()=>{\r\n this.dto.PrepaidAmount = prepaidAmount;\r\n });\r\n }\r\n if (this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37) {\r\n let dtoParams = { ...this.dto.cut(), RetailOms: { RetailTypeEnum } };\r\n //处理存在二开支付情况\r\n let payList = dtoParams.RetailPaymentDetails.filter(v => v.ThirdPaymentInfo);\r\n if (payList && payList.length > 0) {\r\n let payment = payList[0];\r\n let tradeType = payment && payment.Amount > 0 ? TradeType.PAY : TradeType.REFUND;\r\n const ret = await this.thirdPay(1, payment, tradeType, dtoParams);\r\n const { type, data, msg, code } = ret || {};\r\n if (type === true) {\r\n dtoParams = data;\r\n } else {\r\n Message.warn(`刷卡支付失败,错误码:${code}`);\r\n return false;\r\n }\r\n }\r\n this.dtoParams = dtoParams;\r\n console.log('结算信息:', dtoParams);\r\n return ccApi({ dto: dtoParams, cip: IPMSG.query || \"\" }, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n const { ID } = resp || {};\r\n this.setDtoID(ID);\r\n this.billID = ID;\r\n this.paymode.checkList = [];\r\n })\r\n }\r\n }\r\n\r\n //裁剪二开支付数据\r\n removeThirdPayDto(dto) {\r\n let data = {...dto};\r\n delete data['DynamicPropertyKeys'];\r\n delete data['DynamicPropertyValues'];\r\n return data;\r\n }\r\n\r\n /**\r\n * 二开支付\r\n * vType:1零售单、2储值单\r\n * payment:结算方式\r\n * trade:00表示结算、02表示退款\r\n * dto:结算数据集合\r\n */\r\n async thirdPay(vType, payment, trade, dto) {\r\n try {\r\n let cto = this.removeThirdPayDto(dto);\r\n const params = { VoucherType: vType, Payment: payment, TradeType: trade, dto: cto };\r\n console.log('刷卡信息:', JSON.stringify(params));\r\n let ret = await new Promise((resolve, reject) => {\r\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\r\n return resolve(res);\r\n })\r\n })\r\n console.log('刷卡返回信息:', ret);\r\n ret = JSON.parse(ret);\r\n const { Code, Message, Result } = ret || {};\r\n if (Code > 0) {\r\n return { type: false, data: null, msg: Message, code: Code };\r\n } else if (trade == '00') {\r\n const { ThirdPaymentReturnInfo } = Result || {};\r\n if (vType == 1) {\r\n dto.RetailPaymentDetails.forEach(v => {\r\n if (v.ThirdPaymentInfo != null && Math.abs(v.Amount) > 0) {\r\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\r\n }\r\n })\r\n } else if (vType == 2) {\r\n dto.StorageMutiSettleDetails.forEach(v => {\r\n if (v.ThirdPaymentInfo != null && Math.abs(v.StorageAmount) > 0) {\r\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\r\n }\r\n })\r\n }\r\n return { type: true, data: dto, msg: Message, code: Code };\r\n } else if (trade == '02') {\r\n return { type: true, data: dto, msg: Message, code: Code };\r\n }\r\n } catch (ex) {\r\n return { type: false, data: null, msg: ex, code: '9999' }\r\n }\r\n }\r\n\r\n //二开支付强制退款情况\r\n async thirdPayRefund(type) {\r\n const dto = (type == 1) ? this.dtoParams.RetailPaymentDetails : this.dtoParams.StorageMutiSettleDetails;\r\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\r\n if (pay && pay.length > 0) {\r\n setTimeout(() => {\r\n Message.warn(\"支付出现异常,将发起刷卡退款。\", { duration: 4.5 })\r\n }, 1000);\r\n const payment = pay[0];\r\n const { TradeType } = enumController.getEnumOj();\r\n setTimeout(async () => {\r\n let ret = await this.thirdPay(type, payment, TradeType.REFUND, dto);\r\n const { msg } = ret || {};\r\n console.log(`刷卡支付退款:${msg}`);\r\n }, 4500);\r\n }\r\n }\r\n\r\n\r\n @action setDtoID(id){\r\n this.context.viewModel.data.ID=id;\r\n }\r\n\r\n checkIntegralExchangeReturn = (id) => {\r\n return new Promise((resolve, reject) => {\r\n tApi({param: {refVoucherId:id}}, 'chanjet.RE.NewPos.GetNewIntegralExchange', false, false,{timeout_skip:true}).then((resp) => {\r\n if( resp && resp.expireIntegral>0){\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: \"温馨提示\",\r\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\r\n cancelable: false,\r\n onOk() {\r\n resolve(true);\r\n },\r\n onCancel() {\r\n reject(false);\r\n }\r\n })\r\n }else{\r\n resolve(true);\r\n }\r\n })\r\n })\r\n }\r\n\r\n async querySettleResult(){\r\n try{\r\n return Promise.resolve(await tApi({RetailCode: this.dto.Code}, 'chanjet.RE.newRetail.QuerySettleResult', false, false,{timeout_skip:true}));\r\n }catch(e){\r\n return Promise.resolve({Flag:\"1\"});\r\n }\r\n }\r\n\r\n setCookie(key, val) {\r\n var exp = new Date();\r\n exp.setTime(moment().endOf('day').valueOf());\r\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\r\n }\r\n\r\n getAllCookies() {\r\n var cookies = document.cookie.split(/;\\s/g);\r\n var cookieObj = {};\r\n cookies.forEach(function (item) {\r\n var key = item.split('=')[0];\r\n cookieObj[key] = item.split('=')[1];\r\n });\r\n return cookieObj;\r\n }\r\n\r\n async validePwd(value){\r\n let { isNewRetailBCPos } = platform || {};\r\n try{\r\n if (isNewRetailBCPos) {\r\n let cook1 = this.getAllCookies()['errorPwd'];\r\n let cook2 = cook1 && JSON.parse(cook1);\r\n let message = '密码输入错误';\r\n let memberStorageId = this.paymode.currentMode.meStorageCardId;\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\r\n if (cook2[memberStorageId] > 3) {\r\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\r\n return Promise.resolve(message);\r\n }\r\n }\r\n }\r\n const {cardTypeEnum, memberId, meStorageCardId, cardStatusEnum} = this.paymode.currentMode;\r\n let result = null;\r\n if (cardTypeEnum === 'BALANCE_CARD') {\r\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${memberId}`, false, false);\r\n } else {\r\n if (cardStatusEnum === 'BINDING' && this.member && this.member.ID === memberId) {\r\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\r\n } else {\r\n result = await ccApi({password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\r\n }\r\n }\r\n if (!result.data) {\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\r\n let count = cook2[memberStorageId];\r\n cook2[memberStorageId] = count + 1;\r\n } else {\r\n cook2[memberStorageId] = 1;\r\n }\r\n } else {\r\n cook2 = {};\r\n cook2[memberStorageId] = 1;\r\n }\r\n this.setCookie('errorPwd', '', -1);\r\n this.setCookie('errorPwd', JSON.stringify(cook2));\r\n }\r\n return Promise.resolve(result.data?\"\":message);\r\n } else {\r\n const result = await tApi({\"CheckoutParams\": {\r\n \"Idmember\": value.id,\r\n \"Password\":value.pwd\r\n }}, 'AA.DR.newRetailMember.CheckoutMemberPassword', false, false);\r\n return Promise.resolve(result.Success?\"\":result.Message);\r\n }\r\n }catch(e){\r\n return \"failed\";\r\n }\r\n }\r\n}\r\n\r\nexport class PayMode{\r\n _counter=0\r\n amount=0 //应收\r\n onlineamount=0\r\n maxamount=0;\r\n @observable currentFocus=\"\"\r\n @observable received=0;\r\n @observable receivable=0;\r\n @observable paymodes =[]\r\n @observable thePaymodes=[]\r\n bookMaxValue=0;\r\n isNotFullBook=false; //预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true\r\n isNotFullOnlyBook=false; //只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true\r\n @observable storageCardNo = null;\r\n @observable balance = null;\r\n // @observable store = null;\r\n currentMode=null;\r\n checkList = [];\r\n updateEvent\r\n settle={\r\n name:\"复合结算\",\r\n hotKey:\"Ctrl+M\",\r\n }\r\n constructor (){\r\n // this.amount=getFixedNumber(amount);\r\n // this.calcReserved();\r\n }\r\n\r\n @action clean(){\r\n this.thePaymodes=[];\r\n this.calcReserved();\r\n }\r\n\r\n @action clear(){\r\n this.thePaymodes=[];\r\n this.calcReserved();\r\n this.paymodes = [];\r\n }\r\n\r\n setAmount(a,o){\r\n this.amount=getFixedNumber((a || 0)-(o || 0));\r\n this.onlineamount=getFixedNumber(o || 0);\r\n this.calcReserved();\r\n return this.amount<0;\r\n }\r\n\r\n @action calcReserved(type){\r\n var sum=0;\r\n _each(this.thePaymodes,(mode)=>{\r\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\r\n });\r\n this.received = getFixedNumber(sum);\r\n if(type === 'bookPay' && this.isNotFullBook){\r\n if ( this.amount <= sum && sum <= this.bookMaxValue){\r\n this.receivable = getFixedNumber(0);\r\n }\r\n if (sum < this.amount){\r\n this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n if (sum > this.bookMaxValue){\r\n this.receivable = getFixedNumber(this.bookMaxValue - sum);\r\n }\r\n }else{\r\n this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n }\r\n\r\n @action calcCheckList = () => {\r\n this.checkList = [];\r\n }\r\n\r\n @action updateMemberStorageCardNo(storageCardNo, walletEnabled) {\r\n this.currentMode.storageCardNo = storageCardNo;\r\n this.currentMode.walletEnabled = walletEnabled;\r\n }\r\n\r\n @action updateCardInfo(m) {\r\n this.currentMode.cardStatusEnum = m.CardStatusEnum;\r\n this.currentMode.isNeedPassword = m.IsNeedPassword;\r\n this.currentMode.meStorageCardId = m.MeStorageCardId;\r\n this.currentMode.storageCardNo = m.StorageCardNo;\r\n this.currentMode.balance = m.BalanceStorage;\r\n this.currentMode.rawbalance = m.BalanceStorage;\r\n this.currentMode.cardTypeEnum = m.CardTypeEnum;\r\n this.currentMode.walletEnabled = m.WalletEnabled;\r\n this.currentMode.memberId = m.ID;\r\n this.currentMode.freePaymentPasswordStore = m.FreePaymentPasswordStore;\r\n }\r\n\r\n @action calcDjqCheckValue(q1, dto, params) {\r\n let useLimitPerOrder = PosInitData('UseLimitPerOrder');\r\n let qList = _filter(this.currentMode.djqs,djq=>djq.checked);\r\n if (qList.length === useLimitPerOrder && !q1.checked) {\r\n Message.warn('本单最多可用'+useLimitPerOrder+'张');\r\n return;\r\n }\r\n if (params === 'single') {\r\n this.checkList = [];\r\n }\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n\r\n if(q1){\r\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\r\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\r\n return ;\r\n }\r\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.promoCouponCode==q1.promoCouponCode});\r\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\r\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\r\n return ;\r\n }\r\n //判断是否是选择优惠券 //CC优惠券只能使用一个\r\n // if (q1 && !q1.checked && isNewRetailBCPos) {\r\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\r\n // this.currentMode.djqs.forEach((djq, index) => {\r\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\r\n // })\r\n // }\r\n q && (q.checked = !q.checked);\r\n }\r\n var sum=0;\r\n // console.log(this.store, 'stores-------');\r\n if (!q1.checked) {\r\n this.checkList.forEach((ele, i) => {\r\n if (ele.id === q1.id) {\r\n this.checkList.splice(i, 1);\r\n }\r\n })\r\n } else {\r\n this.checkList.push(q1);\r\n }\r\n\r\n this.checkList.forEach((ele) => {\r\n sum=Math.Add(sum,ele.amount);\r\n })\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n console.log(this.receivable, sum, Math.min(this.receivable,sum,this.currentMode.maxamount), 'sum---------');\r\n this.currentMode.receivable = getFixedNumber(this.receivable - Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n if (params === 'single') {\r\n return;\r\n }\r\n let promoVoucher = {};\r\n promoVoucher.boName = \"Retail\";\r\n // promoVoucher.promoLinks = _filter(this.currentMode.djqs,djq=>djq.checked);\r\n promoVoucher.meMemberId = this.currentMode.member.id;\r\n promoVoucher.storeFactorId = PosInitData('storeID');\r\n promoVoucher.voucherDetailList = [];\r\n dto.RetailDetails.forEach(item => {\r\n let detailDTO = {};\r\n detailDTO.uuid = item.Code;\r\n detailDTO.detailBoName = \"RetailDetail\";\r\n detailDTO.voucherDetailId = item.ID;\r\n detailDTO.productId = item.Idinventory;\r\n detailDTO.uomId = item.Idunit;\r\n detailDTO.productSpecId=item.ProductSpecId;\r\n detailDTO.isManualFreeGift = item.IsPresent;\r\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\r\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\r\n\r\n\r\n\r\n\r\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\r\n // {\r\n // detailDTO.listPrice = item.TaxPrice;\r\n // detailDTO.netAmountWithTax = item.TaxAmount;\r\n // }\r\n // else\r\n // {\r\n\r\n let bookingQuantity=0;\r\n if(item.BookingQuantity)\r\n {\r\n bookingQuantity=item.BookingQuantity;\r\n }\r\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\r\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\r\n detailDTO.taxRate = item.TaxRate;\r\n detailDTO.quantity = item.Quantity;\r\n\r\n detailDTO.amountWithTax = item.RetailAmount;\r\n // 促销 start\r\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\r\n let promoLinks = [];\r\n item.PromotionDetails.forEach((promotion)=>{\r\n promoLinks.push({\r\n promoId:promotion.IdSalesPromotionDTO,\r\n promoRuleId:promotion.PromotionRuleId\r\n })\r\n })\r\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\r\n }\r\n // 促销 end\r\n promoVoucher.voucherDetailList.push(detailDTO);\r\n });\r\n promoVoucher.promoLinks = this.checkList;\r\n return ccApi({\r\n ...promoVoucher\r\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\r\n .then((result)=>{\r\n if(result && result.length != 0 ){\r\n result.forEach((element, index) => {\r\n let djq1 = false;\r\n this.currentMode.djqs.forEach((djq) => {\r\n if (element.id === djq.id) {\r\n djq1 = true;\r\n }\r\n })\r\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id, doorsill} = element || {};\r\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\r\n if(!djq1) {\r\n // this.currentMode.djqs.push({\r\n // promoCouponCode: element.CouponCode,\r\n // name: element.CouponTitle,\r\n // IsEnable: true,\r\n // amount: element.ReductionAmount,\r\n // doorsill: element.EnableAmount,\r\n // LastTS: element.LastTS,\r\n // checked: false,\r\n // IsRepelWithPoints: true,\r\n // UMemberID: dto.Idmember,\r\n // expired: null,\r\n // displayText,\r\n // promoMethodEnum,\r\n // discountPct,\r\n // promoId,\r\n // promoRuleId,\r\n // couponCategoryEnum: tieredAmountResult.couponCategoryEnum,\r\n // id\r\n // })\r\n this.addDjqs(couponCode,name,true,nominalAmount,promoDiscount,doorsill,element.LastTS,false,true,\r\n dto.Idmember,\r\n dateMount,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n tieredAmountResult.couponCategoryEnum,\r\n id);\r\n djq1 = false;\r\n } else {\r\n this.setCouponNum(element.id, couponCategoryEnum, promoMethodEnum, nominalAmount,promoDiscount);\r\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\r\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\r\n }\r\n })\r\n }\r\n // 优惠券【6052098985043】与【6120822326451】不可叠加使用\r\n })\r\n //this.receivable = getFixedNumber(this.receivable - sum);\r\n }\r\n\r\n @action setCouponNum = (id, couponNum, promoMethodEnum, nominalAmount,promoDiscount) => {\r\n this.currentMode.djqs.forEach((ele) => {\r\n if (ele.id === id) {\r\n ele.amount = promoDiscount;\r\n promoMethodEnum == \"CASH_COUPON\" && (ele.nominalAmount = nominalAmount);\r\n ele.couponCategoryEnum = couponNum;\r\n let IsEnable = (ele.couponCategoryEnum === 'RIGUP' || ele.couponCategoryEnum === 'UN_MATCH' || ele.couponCategoryEnum === \"PREPARING\" || ele.couponCategoryEnum === 'PROMO_LIMITED' || ele.couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\r\n ele.IsEnable = IsEnable;\r\n }\r\n })\r\n }\r\n\r\n @action addDjqs = (promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id) => {\r\n let djq={\r\n promoCouponCode,\r\n name,\r\n IsEnable,\r\n nominalAmount,\r\n amount,\r\n doorsill,\r\n LastTS,\r\n checked,\r\n IsRepelWithPoints,\r\n UMemberID,\r\n expired,\r\n displayText,\r\n promoMethodEnum,\r\n discountPct,\r\n promoId,\r\n promoRuleId,\r\n couponCategoryEnum,\r\n id\r\n };\r\n this.currentMode.djqs.push(\r\n djq\r\n );\r\n }\r\n\r\n @action calcDjqValue(q1){\r\n const { Differentiate } = enumController.getEnumOj();\r\n if(q1){\r\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\r\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\r\n return ;\r\n }\r\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\r\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\r\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\r\n return ;\r\n }\r\n //判断是否是选择优惠券 //CC优惠券只能使用一个\r\n // if (q1 && !q1.checked && isNewRetailBCPos) {\r\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\r\n // this.currentMode.djqs.forEach((djq, index) => {\r\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\r\n // })\r\n // }\r\n q && (q.checked = !q.checked);\r\n }\r\n var sum=0;\r\n // console.log(this.store, 'stores-------');\r\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\r\n sum=Math.Add(sum,q.amount);\r\n });\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n\r\n //this.receivable = getFixedNumber(this.receivable - sum);\r\n }\r\n\r\n @action reCalculationDjqs() {\r\n var sum=0;\r\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\r\n sum=Math.Add(sum,q.amount);\r\n });\r\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\r\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\r\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\r\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\r\n }\r\n\r\n @action clearDjqs() {\r\n this.currentMode.djqs = [];\r\n }\r\n\r\n @action setCurrentModeValue(v,max){\r\n this.currentMode.value=parseFloat(v) || 0;\r\n this.currentMode.errinfo='';\r\n let sum = this.amount;\r\n const { PayStyle} = enumController.getEnumOj();\r\n this.thePaymodes && this.thePaymodes.forEach((mode) => {\r\n if (mode.paymentType === PayStyle.hyczk) {\r\n sum -= mode.value;\r\n }\r\n })\r\n\r\n if(this.amount>0 && (v==='' || v==='0.00') && sum !== 0){\r\n this.currentMode.errinfo=\"实收金额必须录入\";\r\n }else if(Math.abs(parseFloat(v))>Math.abs(getFixedNumber(sum))){\r\n this.currentMode.errinfo=\"实收不应大于应收\";\r\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\r\n this.currentMode.errinfo=\"余额不足\";\r\n }\r\n // 如果是积分抵现的一些判断\r\n if (this.currentMode.paymentType === PayStyle.jfdx) {\r\n if (this.currentMode.integralCashOverOrderAmount === true) {\r\n this.currentMode.steadCashIntegral = Math.ceil(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\r\n } else if(this.currentMode.integralCashOverOrderAmount === false){\r\n let v1 = this.currentMode.value/this.currentMode.cashAmount;\r\n if (Number.isInteger(v1)) {\r\n this.currentMode.steadCashIntegral = Math.floor(this.currentMode.value/this.currentMode.cashAmount) * this.currentMode.perIntegral;\r\n } else {\r\n this.currentMode.errinfo=`请按照积分抵现规则${this.currentMode.perIntegral}积分抵用${this.currentMode.cashAmount}元输入金额`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action calcMemberBalance(){\r\n this.currentMode.balance = this.currentMode.rawbalance - this.currentMode.value;\r\n }\r\n\r\n get charge(){\r\n return Math.abs(this.receivable);\r\n }\r\n\r\n get counter(){\r\n return ++this._counter;\r\n }\r\n\r\n async setPaymodes(type,isIntegralExchange){\r\n // 是否移动端判断\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n const isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\r\n const {memberStoreCode , settlementCode } = settleStyleType;\r\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\r\n let modes = await tApi({ param }, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\r\n if(modes){\r\n runInAction(()=>{\r\n let paymodes = [];\r\n let settleLists = modes.SettleStyles;\r\n settleLists = isMobileEnvironment ? settleLists.filter(v => !v.ThirdPaymentInfo) : settleLists;\r\n _each(settleLists, (mode, index) => {\r\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\r\n if (mode.Code == PayStyle.hyczk) {\r\n mode.Name = '储值卡';\r\n }\r\n paymodes.push({\r\n name:mode.Name,\r\n isDefault:mode.IsDefaultSettleStyle,\r\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\r\n orderBy:1,\r\n paymentType:mode.Code,\r\n offlineDisable:mode.offlineDisable,\r\n idSettleStyle:mode.IdSettleStyle,\r\n idBankAccount:mode.IdBankAccount,\r\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\r\n idCurrency:mode.Currency?mode.Currency.ID:-1,\r\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\r\n virtualPay: mode.VirtualPay,\r\n thridPayment: mode.ThirdPaymentInfo,\r\n })\r\n })\r\n this.paymodes = paymodes;\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport class Member{\r\n id;\r\n uid;\r\n @observable cardNo;\r\n type;\r\n @observable balance;\r\n rawbalance;\r\n needPwd;\r\n bonusPoints;\r\n @observable exchangable;\r\n @observable meStorageCardId;\r\n @observable storageCardNo;\r\n constructor(m){\r\n if(m){\r\n this.id=m.ID;\r\n this.uid=m.Uid;\r\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\r\n this.rawbalance=m.BalanceStorage;\r\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\r\n runInAction(()=>{\r\n this.cardNo=m.CardCode;\r\n if(index>=0){\r\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\r\n }else{\r\n this.balance=this.rawbalance;\r\n }\r\n });\r\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\r\n this.NeedModifyPassword=m.NeedModifyPassword;\r\n this.bonusPoints=m.BalanceIntegral;\r\n }\r\n }\r\n @action setExchangable(v){\r\n this.exchangable=v;\r\n }\r\n @action setCardNo(v){\r\n this.cardNo=v;\r\n this.id=null;\r\n }\r\n}\r\n\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-components-touch",
3
- "version": "3.41.8",
3
+ "version": "3.41.11",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {