tplus-components-touch 3.22.10 → 3.22.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.
- package/dist/components/settlement/settlement.less +5 -1
- package/dist/components/settlement/settlementStore.js +20 -20
- package/dist/components/settlement/settlementStore.js.map +1 -1
- package/dist/components/settlement/utils.js +1 -1
- package/dist/components/settlement/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -224,7 +224,6 @@
|
|
|
224
224
|
}
|
|
225
225
|
span:last-child{
|
|
226
226
|
font-size: 18px;
|
|
227
|
-
color: white;
|
|
228
227
|
text-align: right;
|
|
229
228
|
line-height: 14px;
|
|
230
229
|
}
|
|
@@ -241,6 +240,11 @@
|
|
|
241
240
|
line-height: 14px;
|
|
242
241
|
}
|
|
243
242
|
}
|
|
243
|
+
.tipStyle4 {
|
|
244
|
+
span:last-child{
|
|
245
|
+
color: white;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
244
248
|
.tipStyle1{
|
|
245
249
|
padding-bottom: 16px;
|
|
246
250
|
}
|
|
@@ -269,11 +269,7 @@ var SettlementStore = (_class = function () {
|
|
|
269
269
|
promoRuleId = tieredAmountResult.promoRuleId,
|
|
270
270
|
couponCategoryEnum = tieredAmountResult.couponCategoryEnum;
|
|
271
271
|
|
|
272
|
-
if ((0, _find3.default)(_this2.paymode.
|
|
273
|
-
return djq.code == couponCode;
|
|
274
|
-
})) {
|
|
275
|
-
_message2.default.info(Differentiate.COUPON + '\u5DF2\u6DFB\u52A0');
|
|
276
|
-
} else if (result.IsRepelWithPoints && (0, _find3.default)(_this2.paymode.thePaymodes, function (themode) {
|
|
272
|
+
if (result.IsRepelWithPoints && (0, _find3.default)(_this2.paymode.thePaymodes, function (themode) {
|
|
277
273
|
return themode.paymentType == PayStyle.jfdx;
|
|
278
274
|
})) {
|
|
279
275
|
_message2.default.error(Differentiate.COUPON + '\uFF08' + result.SN + '\uFF09\u4E0D\u53EF\u4E0E\u79EF\u5206\u4E00\u8D77\u4F7F\u7528');
|
|
@@ -1173,21 +1169,19 @@ var SettlementStore = (_class = function () {
|
|
|
1173
1169
|
DataSource: { Id: _this11.dataSource }
|
|
1174
1170
|
});
|
|
1175
1171
|
if (mode.paymentType == PayStyle.djq) {
|
|
1176
|
-
(0, _each3.default)(
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
});
|
|
1190
|
-
}
|
|
1172
|
+
(0, _each3.default)(_this11.paymode.checkList, function (djq) {
|
|
1173
|
+
_this11.dto.RetailCouponDetails.push({
|
|
1174
|
+
CouponCode: djq.promoCouponCode,
|
|
1175
|
+
ReductionAmount: djq.amount,
|
|
1176
|
+
EnableAmount: djq.doorsill,
|
|
1177
|
+
CouponTitle: djq.name,
|
|
1178
|
+
IdMember: djq.UMemberID ? mode.member.id : null,
|
|
1179
|
+
LastTS: djq.LastTS,
|
|
1180
|
+
PromotionId: djq.promoId,
|
|
1181
|
+
PromotionRuleId: djq.promoRuleId,
|
|
1182
|
+
PromoCouponAllocatedId: djq.id,
|
|
1183
|
+
DataSource: { Id: _this11.dataSource }
|
|
1184
|
+
});
|
|
1191
1185
|
});
|
|
1192
1186
|
}
|
|
1193
1187
|
}
|
|
@@ -1738,6 +1732,11 @@ var PayMode = exports.PayMode = (_class3 = function () {
|
|
|
1738
1732
|
var djq1 = (0, _filter3.default)(_this14.currentMode.djqs, function (djq) {
|
|
1739
1733
|
return djq.id === element.id;
|
|
1740
1734
|
});
|
|
1735
|
+
if (element.id === 1632121650020355) {
|
|
1736
|
+
var djq2 = (0, _filter3.default)(_this14.currentMode.djqs, function (djq, index) {
|
|
1737
|
+
djq.id === element.id;
|
|
1738
|
+
});
|
|
1739
|
+
}
|
|
1741
1740
|
|
|
1742
1741
|
var _ref21 = element || {},
|
|
1743
1742
|
couponCode = _ref21.couponCode,
|
|
@@ -1786,6 +1785,7 @@ var PayMode = exports.PayMode = (_class3 = function () {
|
|
|
1786
1785
|
}
|
|
1787
1786
|
});
|
|
1788
1787
|
}
|
|
1788
|
+
// 优惠券【6052098985043】与【6120822326451】不可叠加使用
|
|
1789
1789
|
});
|
|
1790
1790
|
//this.receivable = getFixedNumber(this.receivable - sum);
|
|
1791
1791
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","member","brefund","bquick","boriginReturn","newStyle","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","ID","onlinePaymentAmount","OnlinePaymentAmount","promoLinks","currentMode","djqs","djq","checked","totalAmountWithTax","Math","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","listPrice","TaxPrice","netAmountWithTax","TaxAmount","bookingQuantity","BookingQuantity","MemberPrice","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","code","Message","info","COUPON","IsRepelWithPoints","thePaymodes","themode","paymentType","jfdx","error","SN","IsEnable","platform","isNewRetailBCPos","addDjq","calcDjqCheckValue","getSettleGift","billID","checkCoupon","sn","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","JSON","getCellValue","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","amount","Title","ReduceAmount","StartAmount","LastTS","UMemberID","checkIntegralExchangeReturn","resolve","reject","param","refVoucherId","resp","expireIntegral","ModalWraper","confirm","className","title","content","cancelable","onOk","onCancel","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","updateEvent","context","amounthandler","datasource","storeinfo","data","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","DealAmountSettingProcessorBlock","Member","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okText","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","BalanceStorage","StoragePaymentAmount","Password","balance","calcReserved","key","currentFocus","index","m","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","value","Integral","loginInfo","v","errinfo","IdStore","storeID","storeCode","address","setMeStorageCardId","MeStorageCardId","setStorageCardNo","StorageCardNo","receivable","max","message","CheckMemberStorageProcessorBlock","String","isNullOrEmpty","checkReceived","nextInput","document","querySelector","focus","SearchParams","Key","IsSingleMember","parse","Data","promoCouponCode","doorsill","expired","unCheck","count","calcDjqValue","append","afterSetCurrentMode","parseFloat","setExchangable","MaxAmount","maxamount","notwithm","counter","exchangeRate","calDirection","value2","value3","order","setMaxAmount","console","log","sum","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","bTest","saveMember","stores","offlineSys","generatorCode","save","retailSequenceUpload","DoNameList","DO_STORAGE_PRINT","StorageMutiSettleDetails","giveChange","xianjin","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DynamicPropertyKeys","DynamicPropertyValues","DataSource","Id","IPMSG","window","localStorage","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","IdbusiType","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","hasOwnProperty","password","User","pwdEncrypt","pwd","setCookie","Success","action","newPass","newPassConfirm","warn","idstore","oldPassword","newPassword","successful","_this","getLoginInfo","_counter","onlineamount","checkList","settle","hotKey","a","o","received","q1","useLimitPerOrder","qList","ele","i","copy1","min","djq1","addDjqs","setCouponNum","rawbalance","settleStyleType","memberStoreCode","settlementCode","modes","SettleStyles","Name","isDefault","IsDefaultSettleStyle","isQuick","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","observable","couponNum","MemberType","cardNo","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} 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 } 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\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 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\ttype\r\n boriginReturn=false\r\n newStyle=true//type==2\r\n billID\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.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){\r\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\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 // 成交金额抹零\r\n if (global.DealAmountSettingProcessorBlock) {\r\n global.DealAmountSettingProcessorBlock.execute(this.dto);\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 this.brefund=this.paymode.setAmount( this.dto.TotalTaxAmount ,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.member.ID,\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 _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 };\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, 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, 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 = detail.Member.BalanceStorage;\r\n balanceAmount = balanceAmount - detail.StoragePaymentAmount;\r\n let newmode={\r\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\r\n member:new Member(detail.Member),\r\n authCode:detail.Password,\r\n balance:balanceAmount,\r\n boriginReturn:true\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);\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){\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.member.id,\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.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);\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.currentMode.member.setStorageCardNo(resp.StorageCardNo);\r\n return Promise.resolve(resp);\r\n }\r\n\r\n getLoginInfo() {\r\n const { loginInfo = {} } = localStore.get('user') || {};\r\n return loginInfo;\r\n }\r\n\r\n loadCzk(v){\r\n if(_trim(v)===\"\"){\r\n runInAction(()=>{\r\n this.paymode.currentMode.member = new Member( null );\r\n this.paymode.currentMode.errinfo=\"请输入储值卡\";\r\n });\r\n return;\r\n }\r\n const IdStore=this.storeInfo.storeID;\r\n const StoreCode=this.storeInfo.storeCode;//_find(this.storeInfo.storeInfos,(store)=>{return store.ID==IdStore;}).Code;\r\n const { isNewRetailBCPos } = platform || {};\r\n let address = ''\r\n if (isNewRetailBCPos) {\r\n // address = '/member/memberProfile/FindByStorageCode/'+v;\r\n address = `/member/MeMemberWallet/FindByStorageCode`\r\n return ccApi({code:v}, address, false, false, { method: 'get', timeout_skip: true })\r\n .then((result)=>{\r\n let data=result.data;\r\n let m=data;\r\n const { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n this.paymode && this.paymode.currentMode.member.setMeStorageCardId(m.MeStorageCardId);\r\n this.paymode && this.paymode.currentMode.member.setStorageCardNo(m.StorageCardNo);\r\n this.paymode && (this.paymode.currentMode.MeStorageCardId = m.MeStorageCardId);\r\n this.paymode && (this.paymode.currentMode.StorageCardNo = m.StorageCardNo);\r\n }\r\n if(!m || !m.ID){\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.member = new Member( m )\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 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 && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.focus();\r\n }\r\n });\r\n }\r\n })\r\n } else {\r\n address = 'AA.DR.newRetailMember.SearchMember'\r\n return tApi({SearchParams:{Key:v,IsSingleMember:true,IdStore,StoreCode}}, address, false, false)\r\n .then((result)=>{\r\n let data=JSON.parse(result.Data);\r\n let m=data && data.length>0 && data[0];\r\n const { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n this.paymode && this.paymode.currentMode.member.setMeStorageCardId(m.MeStorageCardId);\r\n this.paymode && this.paymode.currentMode.member.setStorageCardNo(m.StorageCardNo);\r\n this.paymode && (this.paymode.currentMode.MeStorageCardId = m.MeStorageCardId);\r\n this.paymode && (this.paymode.currentMode.StorageCardNo = m.StorageCardNo);\r\n }\r\n if(!m || !m.ID){\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.member = new Member( m )\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 if (global.CheckMemberStorageProcessorBlock ) {\r\n message= CheckMemberStorageProcessorBlock.execute(data[0]);\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 && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.focus();\r\n }\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.bizDate = dto.VoucherDate;\r\n // promoVoucher.bizDate = new Date().getTime();\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 = item.MemberPrice;\r\n detailDTO.netAmountWithTax = Math.Multiply(item.MemberPrice,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 (_find(this.paymode.currentMode.djqs, (djq) => { return djq.code == couponCode })) {\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 let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.addDjq(\r\n couponCode,\r\n name,\r\n IsEnable,\r\n promoMethodEnum == \"CASH_COUPON\"?nominalAmount: isNewRetailBCPos && discountPct > 0 ? 0 : 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 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 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 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 tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.member.id,\r\n TotalTaxAmount:this.paymode.amount,\r\n BalanceTaxAmount:this.paymode.amount,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\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){\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 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 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 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 });\r\n if(type==PayStyle.hyczk){\r\n if(!mode.member.id ){\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 mode.maxamount=getFixedNumber(Math.Minus(this.context.viewModel.getViewItem('Voucher').availableAmount,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 // let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\r\n // if(mode && this.isIntegralExchange){\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();\r\n // }\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();\r\n }\r\n }\r\n\r\n @action changeValue(index,value,blur){\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();\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){\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.push(this.genNewMode(type) );\r\n this.paymode.thePaymodes.splice(pos,0,this.genNewMode(type,this.newStyle && type==PayStyle.hyczk));\r\n this.paymode.calcReserved();\r\n }\r\n\r\n @action delPay(index){\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();\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 let { isNewRetailBCPos } = platform || {};\r\n try{\r\n if(this.type==1){\r\n await this.saveMember();\r\n }else{\r\n if(isNewRetailBCPos){\r\n await stores.offlineSys.generatorCode(this.dto);\r\n }\r\n await this.save();\r\n if(isNewRetailBCPos){\r\n await stores.offlineSys.retailSequenceUpload();\r\n }\r\n }\r\n return Promise.resolve(true);\r\n }catch(err){\r\n console.error('settlementStore.commit失败,错误信息:'+err);\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 saveMember(){\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 // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n return tApi({dto:this.dto}, '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 } = 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 Idmember=this.dto.Idmember;\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 if(!Idmember){\r\n Idmember=mode.member.id;\r\n }\r\n czkSum=Math.Add(czkSum,mode.value);\r\n let MeStorageCardId = (mode.member.MeStorageCardId ? mode.member.MeStorageCardId : this.member.MeStorageCardId);\r\n this.dto.RetailStorageDetails.push({\r\n Code:mode.paymethodId,\r\n MeStorageCardId,\r\n StoragePaymentAmount:mode.value,\r\n IsOrigReturn:false,\r\n BalanceStorage:mode.balance,\r\n Idmember:mode.member.id,\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 })\r\n if(mode.paymentType==PayStyle.djq){\r\n _each(mode.djqs,(djq)=>{\r\n if(djq.checked){\r\n this.dto.RetailCouponDetails.push({\r\n CouponCode:djq.code,\r\n ReductionAmount:djq.amount,\r\n EnableAmount:djq.doorsill,\r\n CouponTitle:djq.name,\r\n IdMember:djq.UMemberID?mode.member.id: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 });\r\n let { isNewRetailBCPos } = platform || {};\r\n if(this.dto.RetailStorageDetails.length>0){\r\n const themode=_find(this.paymode.paymodes,{'paymentType':PayStyle.hyczk});\r\n if (isNewRetailBCPos) {\r\n // this.dto.RetailStorageDetails && this.dto.RetailStorageDetails.forEach((value, index) => {\r\n // value.MeStorageCardId = (mode.MeStorageCardId ? mode.MeStorageCardId : this.member.MeStorageCardId);\r\n // })\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 } else {\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 })\r\n }\r\n this.dto.Idmember=Idmember;\r\n }\r\n });\r\n let { isNewRetailBCPos } = platform || {};\r\n console.log(`bc_pos环境:${isNewRetailBCPos},结算数据:`, this.dto);\r\n if (isNewRetailBCPos) {\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\r\n if(this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37){\r\n return ccApi({ dto: {...this.dto.cut(),RetailOms:{ RetailTypeEnum }},cip:IPMSG.query || \"\"}, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n this.setDtoID(resp.ID);\r\n this.billID = resp.ID;\r\n });\r\n }\r\n } else {\r\n // tc结算调用\r\n return tApi({ dto:this.dto.cut()}, 'chanjet.RE.newRetail.Settle', false, false, { timeout_skip: true }).then((resp) => {\r\n this.setDtoID(resp.ID);\r\n this.billID = resp.ID;\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 if (cook2) {\r\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\r\n if (cook2[this.member.MeStorageCardId] > 3) {\r\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\r\n return Promise.resolve(message);\r\n }\r\n }\r\n }\r\n const result = await ccApi({password: User.pwdEncrypt(value.pwd)}, `/member/MeMemberWallet/checkPaymentPassword/${value.id}`, false, false);\r\n if (!result.data) {\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\r\n let count = cook2[this.member.MeStorageCardId];\r\n cook2[this.member.MeStorageCardId] = count + 1;\r\n } else {\r\n cook2[this.member.MeStorageCardId] = 1; \r\n }\r\n } else {\r\n cook2 = {};\r\n cook2[this.member.MeStorageCardId] = 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\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 // @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(){\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 this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n\r\n @action calcCheckList = () => {\r\n this.checkList = [];\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\r\n let { isNewRetailBCPos } = platform || {};\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.forEach((ele1) => {\r\n // if(ele.discountPct > 0) {\r\n // this.currentMode.receivable = this.currentMode.receivable + ele.amount / (1 - discountPct);\r\n // } else {\r\n // this.currentMode.receivable = this.currentMode.receivable + ele.amount;\r\n // }\r\n // })\r\n // if(ele.discountPct > 0) {\r\n // this.currentMode.receivable = 100;\r\n // } else {\r\n // this.currentMode.receivable = this.currentMode.receivable + ele.amount;\r\n // }\r\n this.checkList.splice(i, 1);\r\n }\r\n })\r\n } else {\r\n if (q1.discountPct > 0) {\r\n q1.amount = 0;\r\n }\r\n this.checkList.push(q1);\r\n }\r\n\r\n let copy1 = _clonedeep(this.receivable);\r\n this.checkList.forEach((ele, i) => {\r\n if (ele.discountPct > 0) {\r\n ele.amount = (1 - ele.discountPct) * copy1;\r\n copy1 -= ele.amount;\r\n } else {\r\n copy1 -= ele.amount;\r\n }\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 this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\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 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 = item.MemberPrice;\r\n detailDTO.netAmountWithTax = Math.Multiply(item.MemberPrice,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 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) => {\r\n let djq1 = _filter(this.currentMode.djqs,djq=>djq.id === element.id);\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.length) {\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,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 } else {\r\n this.setCouponNum(element.id, tieredAmountResult.couponCategoryEnum);\r\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\r\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\r\n }\r\n }) \r\n }\r\n })\r\n //this.receivable = getFixedNumber(this.receivable - sum);\r\n }\r\n\r\n @action setCouponNum = (id, couponNum, code) => {\r\n this.currentMode.djqs.forEach((ele) => {\r\n if (ele.id === id) {\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 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 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 let { isNewRetailBCPos } = platform || {};\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.paymodes.thePaymodes && this.paymodes.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')){\r\n this.currentMode.errinfo=\"实收金额必须录入\";\r\n }else if(Math.abs(parseFloat(v))>Math.abs(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 @action calcMemberBalance(){\r\n this.currentMode.balance = this.currentMode.member.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 const { settleStyleType , PayStyle} = enumController.getEnumOj();\r\n const {memberStoreCode , settlementCode } = settleStyleType;\r\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\r\n const modes = await tApi({param}, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\r\n if(modes){\r\n runInAction(()=>{\r\n let paymodes = [];\r\n _each(modes.SettleStyles, (mode,index)=>{\r\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\r\n\r\n if(mode.Code==PayStyle.hyczk)\r\n {\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 })\r\n })\r\n this.paymodes = paymodes;\r\n //modes.QuickSettleStyles\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 const { isNewRetailBCPos } = platform || {};\r\n m.StorageCardNo && (this.StorageCardNo = m.StorageCardNo);\r\n m.MeStorageCardId && (this.MeStorageCardId = m.MeStorageCardId);\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 @action setMeStorageCardId(v) {\r\n this.MeStorageCardId = v;\r\n }\r\n\r\n @action setStorageCardNo(v) {\r\n this.StorageCardNo = v;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","member","brefund","bquick","boriginReturn","newStyle","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","ID","onlinePaymentAmount","OnlinePaymentAmount","promoLinks","currentMode","djqs","djq","checked","totalAmountWithTax","Math","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","listPrice","TaxPrice","netAmountWithTax","TaxAmount","bookingQuantity","BookingQuantity","MemberPrice","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","thePaymodes","themode","paymentType","jfdx","Message","error","COUPON","SN","IsEnable","platform","isNewRetailBCPos","addDjq","calcDjqCheckValue","info","getSettleGift","billID","checkCoupon","sn","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","JSON","getCellValue","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","amount","code","Title","ReduceAmount","StartAmount","LastTS","UMemberID","checkIntegralExchangeReturn","resolve","reject","param","refVoucherId","resp","expireIntegral","ModalWraper","confirm","className","title","content","cancelable","onOk","onCancel","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","updateEvent","context","amounthandler","datasource","storeinfo","data","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","DealAmountSettingProcessorBlock","Member","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okText","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","BalanceStorage","StoragePaymentAmount","Password","balance","calcReserved","key","currentFocus","index","m","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","value","Integral","loginInfo","v","errinfo","IdStore","storeID","storeCode","address","setMeStorageCardId","MeStorageCardId","setStorageCardNo","StorageCardNo","receivable","max","message","CheckMemberStorageProcessorBlock","String","isNullOrEmpty","checkReceived","nextInput","document","querySelector","focus","SearchParams","Key","IsSingleMember","parse","Data","promoCouponCode","doorsill","expired","unCheck","count","calcDjqValue","append","afterSetCurrentMode","parseFloat","setExchangable","MaxAmount","maxamount","notwithm","counter","exchangeRate","calDirection","value2","value3","order","setMaxAmount","console","log","sum","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","bTest","saveMember","stores","offlineSys","generatorCode","save","retailSequenceUpload","DoNameList","DO_STORAGE_PRINT","StorageMutiSettleDetails","giveChange","xianjin","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DynamicPropertyKeys","DynamicPropertyValues","DataSource","Id","IPMSG","window","localStorage","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","checkList","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","IdbusiType","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","hasOwnProperty","password","User","pwdEncrypt","pwd","setCookie","Success","action","newPass","newPassConfirm","warn","idstore","oldPassword","newPassword","successful","_this","getLoginInfo","_counter","onlineamount","settle","hotKey","a","o","received","q1","useLimitPerOrder","qList","ele","i","copy1","min","djq1","djq2","addDjqs","setCouponNum","rawbalance","settleStyleType","memberStoreCode","settlementCode","modes","SettleStyles","Name","isDefault","IsDefaultSettleStyle","isQuick","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","observable","couponNum","MemberType","cardNo","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} 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 } 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\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 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\ttype\r\n boriginReturn=false\r\n newStyle=true//type==2\r\n billID\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.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){\r\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\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 // 成交金额抹零\r\n if (global.DealAmountSettingProcessorBlock) {\r\n global.DealAmountSettingProcessorBlock.execute(this.dto);\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 this.brefund=this.paymode.setAmount( this.dto.TotalTaxAmount ,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.member.ID,\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 _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 };\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, 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, 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 = detail.Member.BalanceStorage;\r\n balanceAmount = balanceAmount - detail.StoragePaymentAmount;\r\n let newmode={\r\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\r\n member:new Member(detail.Member),\r\n authCode:detail.Password,\r\n balance:balanceAmount,\r\n boriginReturn:true\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);\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){\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.member.id,\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.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);\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.currentMode.member.setStorageCardNo(resp.StorageCardNo);\r\n return Promise.resolve(resp);\r\n }\r\n\r\n getLoginInfo() {\r\n const { loginInfo = {} } = localStore.get('user') || {};\r\n return loginInfo;\r\n }\r\n\r\n loadCzk(v){\r\n if(_trim(v)===\"\"){\r\n runInAction(()=>{\r\n this.paymode.currentMode.member = new Member( null );\r\n this.paymode.currentMode.errinfo=\"请输入储值卡\";\r\n });\r\n return;\r\n }\r\n const IdStore=this.storeInfo.storeID;\r\n const StoreCode=this.storeInfo.storeCode;//_find(this.storeInfo.storeInfos,(store)=>{return store.ID==IdStore;}).Code;\r\n const { isNewRetailBCPos } = platform || {};\r\n let address = ''\r\n if (isNewRetailBCPos) {\r\n // address = '/member/memberProfile/FindByStorageCode/'+v;\r\n address = `/member/MeMemberWallet/FindByStorageCode`\r\n return ccApi({code:v}, address, false, false, { method: 'get', timeout_skip: true })\r\n .then((result)=>{\r\n let data=result.data;\r\n let m=data;\r\n const { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n this.paymode && this.paymode.currentMode.member.setMeStorageCardId(m.MeStorageCardId);\r\n this.paymode && this.paymode.currentMode.member.setStorageCardNo(m.StorageCardNo);\r\n this.paymode && (this.paymode.currentMode.MeStorageCardId = m.MeStorageCardId);\r\n this.paymode && (this.paymode.currentMode.StorageCardNo = m.StorageCardNo);\r\n }\r\n if(!m || !m.ID){\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.member = new Member( m )\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 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 && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.focus();\r\n }\r\n });\r\n }\r\n })\r\n } else {\r\n address = 'AA.DR.newRetailMember.SearchMember'\r\n return tApi({SearchParams:{Key:v,IsSingleMember:true,IdStore,StoreCode}}, address, false, false)\r\n .then((result)=>{\r\n let data=JSON.parse(result.Data);\r\n let m=data && data.length>0 && data[0];\r\n const { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n this.paymode && this.paymode.currentMode.member.setMeStorageCardId(m.MeStorageCardId);\r\n this.paymode && this.paymode.currentMode.member.setStorageCardNo(m.StorageCardNo);\r\n this.paymode && (this.paymode.currentMode.MeStorageCardId = m.MeStorageCardId);\r\n this.paymode && (this.paymode.currentMode.StorageCardNo = m.StorageCardNo);\r\n }\r\n if(!m || !m.ID){\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.member = new Member( m )\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 if (global.CheckMemberStorageProcessorBlock ) {\r\n message= CheckMemberStorageProcessorBlock.execute(data[0]);\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 && this.paymode.currentMode.value==0){\r\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\r\n } else {\r\n // 查询成功后将焦点移入下一个输入框\r\n const nextInput = document.querySelector('.czk .received .input');\r\n nextInput && nextInput.focus();\r\n }\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.bizDate = dto.VoucherDate;\r\n // promoVoucher.bizDate = new Date().getTime();\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 = item.MemberPrice;\r\n detailDTO.netAmountWithTax = Math.Multiply(item.MemberPrice,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 let { isNewRetailBCPos } = platform || {};\r\n this.addDjq(\r\n couponCode,\r\n name,\r\n IsEnable,\r\n promoMethodEnum == \"CASH_COUPON\"?nominalAmount: isNewRetailBCPos && discountPct > 0 ? 0 : 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 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 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 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 tApi({IntegralSteadCashParams:{\r\n Idmember:this.paymode.currentMode.member.id,\r\n TotalTaxAmount:this.paymode.amount,\r\n BalanceTaxAmount:this.paymode.amount,\r\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\r\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\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){\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 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 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 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 });\r\n if(type==PayStyle.hyczk){\r\n if(!mode.member.id ){\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 mode.maxamount=getFixedNumber(Math.Minus(this.context.viewModel.getViewItem('Voucher').availableAmount,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 // let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\r\n // if(mode && this.isIntegralExchange){\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();\r\n // }\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();\r\n }\r\n }\r\n\r\n @action changeValue(index,value,blur){\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();\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){\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.push(this.genNewMode(type) );\r\n this.paymode.thePaymodes.splice(pos,0,this.genNewMode(type,this.newStyle && type==PayStyle.hyczk));\r\n this.paymode.calcReserved();\r\n }\r\n\r\n @action delPay(index){\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();\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 let { isNewRetailBCPos } = platform || {};\r\n try{\r\n if(this.type==1){\r\n await this.saveMember();\r\n }else{\r\n if(isNewRetailBCPos){\r\n await stores.offlineSys.generatorCode(this.dto);\r\n }\r\n await this.save();\r\n if(isNewRetailBCPos){\r\n await stores.offlineSys.retailSequenceUpload();\r\n }\r\n }\r\n return Promise.resolve(true);\r\n }catch(err){\r\n console.error('settlementStore.commit失败,错误信息:'+err);\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 saveMember(){\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 // cc结算调用\r\n let IPMSG = {};\r\n if (!!window.localStorage.IPMSG) {\r\n IPMSG = JSON.parse(window.localStorage.IPMSG);\r\n }\r\n return tApi({dto:this.dto}, '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 } = 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 Idmember=this.dto.Idmember;\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 if(!Idmember){\r\n Idmember=mode.member.id;\r\n }\r\n czkSum=Math.Add(czkSum,mode.value);\r\n let MeStorageCardId = (mode.member.MeStorageCardId ? mode.member.MeStorageCardId : this.member.MeStorageCardId);\r\n this.dto.RetailStorageDetails.push({\r\n Code:mode.paymethodId,\r\n MeStorageCardId,\r\n StoragePaymentAmount:mode.value,\r\n IsOrigReturn:false,\r\n BalanceStorage:mode.balance,\r\n Idmember:mode.member.id,\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 })\r\n if(mode.paymentType==PayStyle.djq){\r\n _each(this.paymode.checkList,(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.member.id: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 let { isNewRetailBCPos } = platform || {};\r\n if(this.dto.RetailStorageDetails.length>0){\r\n const themode=_find(this.paymode.paymodes,{'paymentType':PayStyle.hyczk});\r\n if (isNewRetailBCPos) {\r\n // this.dto.RetailStorageDetails && this.dto.RetailStorageDetails.forEach((value, index) => {\r\n // value.MeStorageCardId = (mode.MeStorageCardId ? mode.MeStorageCardId : this.member.MeStorageCardId);\r\n // })\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 } else {\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 })\r\n }\r\n this.dto.Idmember=Idmember;\r\n }\r\n });\r\n let { isNewRetailBCPos } = platform || {};\r\n console.log(`bc_pos环境:${isNewRetailBCPos},结算数据:`, this.dto);\r\n if (isNewRetailBCPos) {\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\r\n if(this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37){\r\n return ccApi({ dto: {...this.dto.cut(),RetailOms:{ RetailTypeEnum }},cip:IPMSG.query || \"\"}, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\r\n this.setDtoID(resp.ID);\r\n this.billID = resp.ID;\r\n });\r\n }\r\n } else {\r\n // tc结算调用\r\n return tApi({ dto:this.dto.cut()}, 'chanjet.RE.newRetail.Settle', false, false, { timeout_skip: true }).then((resp) => {\r\n this.setDtoID(resp.ID);\r\n this.billID = resp.ID;\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 if (cook2) {\r\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\r\n if (cook2[this.member.MeStorageCardId] > 3) {\r\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\r\n return Promise.resolve(message);\r\n }\r\n }\r\n }\r\n const result = await ccApi({password: User.pwdEncrypt(value.pwd)}, `/member/MeMemberWallet/checkPaymentPassword/${value.id}`, false, false);\r\n if (!result.data) {\r\n if (cook2) {\r\n if (cook2.hasOwnProperty(this.member.MeStorageCardId + \"\")) {\r\n let count = cook2[this.member.MeStorageCardId];\r\n cook2[this.member.MeStorageCardId] = count + 1;\r\n } else {\r\n cook2[this.member.MeStorageCardId] = 1; \r\n }\r\n } else {\r\n cook2 = {};\r\n cook2[this.member.MeStorageCardId] = 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\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 // @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(){\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 this.receivable = getFixedNumber(this.amount - sum);\r\n }\r\n\r\n @action calcCheckList = () => {\r\n this.checkList = [];\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\r\n let { isNewRetailBCPos } = platform || {};\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.forEach((ele1) => {\r\n // if(ele.discountPct > 0) {\r\n // this.currentMode.receivable = this.currentMode.receivable + ele.amount / (1 - discountPct);\r\n // } else {\r\n // this.currentMode.receivable = this.currentMode.receivable + ele.amount;\r\n // }\r\n // })\r\n // if(ele.discountPct > 0) {\r\n // this.currentMode.receivable = 100;\r\n // } else {\r\n // this.currentMode.receivable = this.currentMode.receivable + ele.amount;\r\n // }\r\n this.checkList.splice(i, 1);\r\n }\r\n })\r\n } else {\r\n if (q1.discountPct > 0) {\r\n q1.amount = 0;\r\n }\r\n this.checkList.push(q1);\r\n }\r\n\r\n let copy1 = _clonedeep(this.receivable);\r\n this.checkList.forEach((ele, i) => {\r\n if (ele.discountPct > 0) {\r\n ele.amount = (1 - ele.discountPct) * copy1;\r\n copy1 -= ele.amount;\r\n } else {\r\n copy1 -= ele.amount;\r\n }\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 this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\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 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 = item.MemberPrice;\r\n detailDTO.netAmountWithTax = Math.Multiply(item.MemberPrice,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 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) => {\r\n let djq1 = _filter(this.currentMode.djqs,djq=>djq.id === element.id);\r\n if (element.id === 1632121650020355) {\r\n let djq2 = _filter(this.currentMode.djqs,(djq, index)=>{\r\n djq.id === element.id\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.length) {\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,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 } else {\r\n this.setCouponNum(element.id, tieredAmountResult.couponCategoryEnum);\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, code) => {\r\n this.currentMode.djqs.forEach((ele) => {\r\n if (ele.id === id) {\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 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 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 let { isNewRetailBCPos } = platform || {};\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.paymodes.thePaymodes && this.paymodes.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')){\r\n this.currentMode.errinfo=\"实收金额必须录入\";\r\n }else if(Math.abs(parseFloat(v))>Math.abs(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 @action calcMemberBalance(){\r\n this.currentMode.balance = this.currentMode.member.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 const { settleStyleType , PayStyle} = enumController.getEnumOj();\r\n const {memberStoreCode , settlementCode } = settleStyleType;\r\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\r\n const modes = await tApi({param}, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\r\n if(modes){\r\n runInAction(()=>{\r\n let paymodes = [];\r\n _each(modes.SettleStyles, (mode,index)=>{\r\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\r\n\r\n if(mode.Code==PayStyle.hyczk)\r\n {\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 })\r\n })\r\n this.paymodes = paymodes;\r\n //modes.QuickSettleStyles\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 const { isNewRetailBCPos } = platform || {};\r\n m.StorageCardNo && (this.StorageCardNo = m.StorageCardNo);\r\n m.MeStorageCardId && (this.MeStorageCardId = m.MeStorageCardId);\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 @action setMeStorageCardId(v) {\r\n this.MeStorageCardId = v;\r\n }\r\n\r\n @action setStorageCardNo(v) {\r\n this.StorageCardNo = v;\r\n }\r\n}\r\n"]}
|
|
@@ -205,7 +205,7 @@ var showSuccessModal = exports.showSuccessModal = function showSuccessModal(amou
|
|
|
205
205
|
),
|
|
206
206
|
isDelayModal ? _react2.default.createElement(
|
|
207
207
|
'div',
|
|
208
|
-
{ className: 'tipStyle' },
|
|
208
|
+
{ className: 'tipStyle tipStyle4' },
|
|
209
209
|
_react2.default.createElement(
|
|
210
210
|
_button2.default,
|
|
211
211
|
{ onClick: function onClick() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/settlement/utils.js"],"names":["getFixedNumber","value","name","precision","isNaN","getRoundValue","decimal","pow","Math","returnValue","round","abs","toFixed","preventDefault","nativeEvent","stopPropagation","cancelBubble","openLoadingModal","maskClosable","closable","width","className","content","openQueryingModal","showSuccessModal","amount","received","charge","fn","isXianjin","message","settleGift","store","cb","isDelayModal","modal","onClose","setTimeout","destroy","openAwaitModal","tip","manually","tips"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/settlement/utils.js"],"names":["getFixedNumber","value","name","precision","isNaN","getRoundValue","decimal","pow","Math","returnValue","round","abs","toFixed","preventDefault","nativeEvent","stopPropagation","cancelBubble","openLoadingModal","maskClosable","closable","width","className","content","openQueryingModal","showSuccessModal","amount","received","charge","fn","isXianjin","message","settleGift","store","cb","isDelayModal","modal","onClose","setTimeout","destroy","openAwaitModal","tip","manually","tips"],"mappings":"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","file":"utils.js","sourcesContent":["import React from 'react'\r\nimport _bind from 'lodash/bind'\r\nimport _get from 'lodash/get'\r\nimport Ticon from '../ticon'\r\nimport asyncModal from './asyncModal'\r\nimport { Button, Spin, Popover } from 'antd';\r\nimport { PosInitData } from 'tplus-poslogin';\r\n\r\nexport const getFixedNumber = _bind(function (value, name) {\r\n name = name || 'money'\r\n const precision = _get(this, `${name}.value`)\r\n value = isNaN(value) ? 0 : value\r\n // 参数错误的时候, 返回原值\r\n if (isNaN(precision)) {\r\n return value\r\n }\r\n return getRoundValue(value, precision)\r\n}, {\"money\": { \"value\": 2, \"caption\": \"金额小数位\" },})\r\n\r\nexport const getRoundValue = (value, decimal) => {\r\n if(!decimal) return value\r\n const pow = Math.pow(10, decimal);\r\n let returnValue = Math.round(Math.abs(value) * pow) / pow;\r\n if (value < 0)\r\n returnValue = -returnValue;\r\n return returnValue.toFixed(decimal);\r\n}\r\n\r\nexport const preventDefault = function (nativeEvent) {\r\n if (!nativeEvent) {\r\n return\r\n }\r\n if (nativeEvent.preventDefault) {\r\n nativeEvent.preventDefault()\r\n } else if (typeof nativeEvent.returnValue !== 'unknown') {\r\n nativeEvent.returnValue = false\r\n }\r\n}\r\n\r\nexport const stopPropagation = function (nativeEvent) {\r\n if (!nativeEvent) {\r\n return\r\n }\r\n if (nativeEvent.stopPropagation) {\r\n nativeEvent.stopPropagation()\r\n } else if (typeof nativeEvent.cancelBubble !== 'unknown') {\r\n // The ChangeEventPlugin registers a \"propertychange\" event for\r\n // IE. This event does not support bubbling or cancelling, and\r\n // any references to cancelBubble throw \"Member not found\". A\r\n // typeof check of \"unknown\" circumvents this issue (and is also\r\n // IE specific).\r\n nativeEvent.cancelBubble = true\r\n }\r\n}\r\n\r\nexport const openLoadingModal = function () {\r\n\r\n return asyncModal({\r\n maskClosable: false,\r\n closable: false,\r\n width: 'auto',\r\n className: 'loading-modal',\r\n content: <div className='billingSettling'>\r\n <Spin size=\"large\"/>\r\n <div>结算中...</div>\r\n </div>\r\n })\r\n}\r\n\r\nexport const openQueryingModal = function () {\r\n\r\n return asyncModal({\r\n maskClosable: false,\r\n closable: false,\r\n width: 'auto',\r\n className: 'loading-modal',\r\n content: <div className='billingSettling'>\r\n <Spin size=\"large\"/>\r\n <div>正在查询中,请稍候~</div>\r\n </div>\r\n })\r\n}\r\n\r\n\r\nexport const showSuccessModal = function (amount, received, charge, fn, isXianjin,message,settleGift, store, cb) {\r\n let isDelayModal;\r\n if (!isXianjin) {\r\n isDelayModal = false\r\n } else {\r\n // GiveChangeSupportManualClose 找零界面手动关闭\r\n isDelayModal = PosInitData('GiveChangeSupportManualClose');\r\n }\r\n\r\n const modal = asyncModal({\r\n width:'400px',\r\n closable:false,\r\n maskClosable:true,\r\n onClose: () => { typeof fn == 'function' && fn() },\r\n content: <div className=\"paySuccess\">\r\n <div className={`${isDelayModal ? 'icon1' : ''} icon ${settleGift ? 'settleIcon' : ''}`}><Ticon type=\"zhifuchenggong\" /></div>\r\n <div className={`${isDelayModal ? 'text1' : ''} text ${settleGift ? 'settleText' : ''}`}>{message}</div>\r\n {settleGift ? <div className='primary-color settleGift'>此订单满足支付返券活动,优惠券会自动发放到用户账户</div> : null}\r\n <div className={`${isDelayModal ? 'tipStyle1' : ''} tipStyle`}><span className=\"fl\">应收金额</span><span className=\"fr\">{amount}</span></div>\r\n <div className={`${isDelayModal ? 'tipStyle2' : ''} tipStyle`}><span className=\"fl\">实收金额</span><span className=\"fr\">{received}</span></div>\r\n <div className={`${isDelayModal ? 'tipStyle3' : ''} tipStyle`}><span className=\"fl\">找零</span><span className=\"fr\">{getFixedNumber(charge)}</span></div>\r\n {\r\n isDelayModal ?\r\n <div className=\"tipStyle tipStyle4\">\r\n <Button onClick={() => {\r\n setTimeout(() => { modal.destroy(); cb && cb(); }, 0)\r\n }} className=\"paymentSuccessBtn\" type=\"primary\">确定</Button>\r\n </div>\r\n :\r\n null\r\n }\r\n </div>\r\n })\r\n if (!isDelayModal) {\r\n setTimeout(() => { modal.destroy(); cb && cb(); }, 1500)\r\n }\r\n return modal;\r\n}\r\n\r\nexport const openAwaitModal = function (tip, manually) {\r\n let tips = tip ? tip : '取会员价中'\r\n\r\n return asyncModal({\r\n className: 'billing-onsettle-ModalLight loading-modal',\r\n maskClosable: false,\r\n closable: false,\r\n width: 'auto',\r\n content: <div className='billing-onsettle-ModalLight-content'>\r\n\r\n <Spin size=\"large\"/>\r\n <div className='billing-onsettle-ModalLight-text'>{`${tips}...`}</div>\r\n </div>\r\n }, manually)\r\n}\r\n"]}
|