tplus-components-touch 3.27.40 → 3.27.41
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.
|
@@ -161,7 +161,7 @@ function _initializerWarningHelper(descriptor, context) {
|
|
|
161
161
|
var t = _mutantsMicrofx.i18n.getFixedT(null, 'newretail');
|
|
162
162
|
|
|
163
163
|
var SettlementStore = (_class = function () {
|
|
164
|
-
//
|
|
164
|
+
// 预售都是全款;预订是否全款,在点击确认支付时计算订金和商品金额计算得出
|
|
165
165
|
function SettlementStore() {
|
|
166
166
|
var _this2 = this;
|
|
167
167
|
|
|
@@ -174,7 +174,7 @@ var SettlementStore = (_class = function () {
|
|
|
174
174
|
this.bquick = false;
|
|
175
175
|
this.boriginReturn = false;
|
|
176
176
|
this.newStyle = true;
|
|
177
|
-
this.isFull =
|
|
177
|
+
this.isFull = true;
|
|
178
178
|
|
|
179
179
|
_initDefineProp(this, 'queryPwd', _descriptor, this);
|
|
180
180
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","dtoParams","member","brefund","bquick","boriginReturn","newStyle","isFull","handleCzkData","m","StorageCardNo","currentMode","errinfo","memberId","ID","value","receivable","Math","max","updateEvent","message","sum","thePaymodes","total","cur","String","isNullOrEmpty","checkReceived","amount","parseFloat","setTimeout","nextInput","document","querySelector","select","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","onlinePaymentAmount","OnlinePaymentAmount","promoLinks","djqs","djq","checked","totalAmountWithTax","Minus","TotalTaxAmount","redBlueFlagEnum","meMemberId","Idmember","storeFactorId","Idstore","voucherDetailList","RetailDetails","forEach","detailDTO","uuid","item","Code","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","bookingQuantity","BookingQuantity","listPrice","JSON","getCellValue","netAmountWithTax","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","length","promotion","push","promoId","IdSalesPromotionDTO","promoRuleId","PromotionRuleId","method","timeout_skip","then","result","element","couponCode","name","tieredAmountResult","fromDate","dateMount","promoMethodEnum","discountPct","nominalAmount","id","condValue","promoDiscount","displayText","couponCategoryEnum","IsRepelWithPoints","themode","paymentType","jfdx","Message","error","COUPON","SN","IsEnable","addDjq","calcDjqCheckValue","info","getSettleGift","billID","getRefWareHouseList","checkCoupon","sn","platform","isNewRetailBCPos","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","code","Title","ReduceAmount","StartAmount","LastTS","UMemberID","repeatStorageModal","content","resolve","reject","ModalWraper","confirm","title","okText","className","zIndex","onOk","saveMember","ret","onCancel","checkIntegralExchangeReturn","param","refVoucherId","resp","expireIntegral","cancelable","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","context","amounthandler","datasource","storeinfo","data","payModeKey","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","isQuickCash","xianjin","DealAmountSettingProcessorBlock","Member","isNotFullBook","isNotFullOnlyBook","getLoginInfo","PreSellOrBook","PercentageWhenBook","IdbusiType","DistributionMode","Id","bookMaxValue","PrepaidAmount","BuyerPayFreight","stores","drawerStore","thisWaitPaidAmount","totalWaitPaidAmount","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","console","log","checkList","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","thirdPaymentReturnInfo","ThirdPaymentReturnInfo","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","MeStorageCardId","Password","balance","calcReserved","key","bookType","currentFocus","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","Integral","user","options","v","IdStore","storeID","storeCode","address","CardTypeEnum","updateCardInfo","result1","data1","parse","enable","warn","disableReason","SearchParams","Key","IsSingleMember","Data","CheckMemberStorageProcessorBlock","focus","promoCouponCode","doorsill","expired","unCheck","count","calcDjqValue","append","afterSetCurrentMode","setExchangable","MaxAmount","maxamount","notwithm","isQuick","counter","exchangeRate","calDirection","thridPayment","value2","value3","order","card","virtualPay","setMaxAmount","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","undefined","StorageMutiSettleDetails","giveChange","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","bTest","status","paylist","filter","findStorageBillValidate","returnMsg","state","ret1","offlineSys","generatorCode","save","ret2","retailSequenceUpload","thirdPayRefund","DoNameList","DO_STORAGE_PRINT","TradeType","ThirdPaymentInfo","IPMSG","window","localStorage","payList","payment","tradeType","PAY","REFUND","thirdPay","msg","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","prepaidAmount","reduce","c","fullPayment","TaxAmount","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","vType","trade","cto","removeThirdPayDto","VoucherType","Payment","nativeMs","setIpcRendererMethod","res","Result","duration","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","memberStorageId","hasOwnProperty","cardTypeEnum","cardStatusEnum","md5Password","User","pwdEncrypt","pwd","cardType","password","setCookie","Success","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","updateMemberStorageCardNo","WalletEnabled","_counter","onlineamount","settle","hotKey","a","o","received","walletEnabled","CardStatusEnum","isNeedPassword","IsNeedPassword","rawbalance","freePaymentPasswordStore","FreePaymentPasswordStore","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","settleStyleType","memberStoreCode","settlementCode","modes","settleLists","SettleStyles","Name","isDefault","IsDefaultSettleStyle","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","VirtualPay","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'\nimport { stores, i18n, localStore, nativeMs } from 'mutants-microfx';\nimport _find from 'lodash/find';\nimport _remove from 'lodash/remove';\nimport _each from 'lodash/each';\nimport _map from 'lodash/map';\nimport _join from 'lodash/join';\nimport _trim from 'lodash/trim';\nimport _filter from 'lodash/filter';\nimport _findIndex from 'lodash/findIndex';\nimport _findLastIndex from 'lodash/findLastIndex';\nimport _findKey from 'lodash/findKey';\nimport { PosInitData } from 'tplus-poslogin';\nimport { getFixedNumber, stopPropagation } from './utils'\nimport {ccApi,tApi, User} from 'tplus-api';\nimport _clonedeep from 'lodash/cloneDeep';\nimport Message from '../message';\nimport { platform,enumController } from 'mutants-util';\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\nimport moment from \"moment\";\nimport _reduce from 'lodash/reduce';\nimport { Card } from 'antd';\n\nconst t = i18n.getFixedT(null, 'newretail');\n\nexport default class SettlementStore {\n paymode = null\n dto=null\n dtoParams = null\n member=null\n brefund=false\n context\n bquick=false;\n amountHandler\n dataSource\n storeInfo\n updateEvent\n type\n boriginReturn=false\n newStyle=true//type==2\n billID\n isFull = false; // 预订是否全款,在点击确认支付时计算订金和商品金额计算得出\n constructor(){\n this.paymode= new PayMode()\n let params = localStore && localStore.get('cloudPrintArguments');\n if (params) this.cloudPrintArguments = params;\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\n }\n\n initPaymodes(event,type,isIntegralExchange){\n this.isIntegralExchange = isIntegralExchange;\n this.paymode.setPaymodes(type,isIntegralExchange);\n this.updateEvent=event;\n }\n\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data,payModeKey){\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\n this.type=type;\n if(context){\n this.context=context;\n this.amountHandler=amounthandler;\n this.dataSource=datasource;\n this.storeInfo=storeinfo;\n this.dto=context.viewModel.data;\n runInAction(()=>{\n // 单品金额抹零\n if (global.DealSingleRowAmountSettingProcessorBlock) {\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\n }\n const { PayStyle } = enumController.getEnumOj();\n const isQuickCash = bquick && payModeKey == PayStyle.xianjin;\n\n // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto,isQuickCash);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n\n this.paymode.isNotFullBook = false;\n this.paymode.isNotFullOnlyBook = false;\n //预订按比例收取订金处理\n let value = this.dto.TotalTaxAmount;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n this.paymode.bookMaxValue = value;\n this.paymode.isNotFullBook = true;\n this.paymode.isNotFullOnlyBook = true;\n value = value * PercentageWhenBook / 100;\n }\n if (IdbusiType == 38 && PreSellOrBook == 'BOOK'){\n runInAction(()=>{\n this.dto.PrepaidAmount = value;\n });\n }\n //预订计算快递或同城配送运费\n if (IdbusiType == 38 && PreSellOrBook != 'DISABLED' && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\n value += this.dto.BuyerPayFreight || 0;\n }\n //预订取货应补款金额\n if (IdbusiType == 39){\n value = stores.drawerStore.thisWaitPaidAmount;\n if(stores.drawerStore.totalWaitPaidAmount > 0){\n this.paymode.isNotFullBook = true;\n this.paymode.bookMaxValue = stores.drawerStore.totalWaitPaidAmount;\n }\n }\n\n this.brefund=this.paymode.setAmount( value ,this.dto.OnlinePaymentAmount );\n }else{\n this.brefund=this.paymode.setAmount( amount ,0 );\n this.dto=data;\n }\n this.paymode.clean();\n\n //this.dto.TotalTaxAmount<0;\n this.bquick=!!bquick;\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\n if(this.boriginReturn){\n this.initByOriginReturn();\n }\n if(this.newStyle){\n this.setModes();\n }\n }\n\n setModes(){\n _each(this.paymode.paymodes,(p)=>{\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\n this.addPay(p.paymentType);\n }\n });\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\n }\n }\n\n amountChanged(amount){\n if(this.type==1){\n this.brefund=this.paymode.setAmount( amount ,0 );\n }\n\n }\n\n @action queryPwd = (newPass, newPassConfirm) => {\n if (!newPass || !newPassConfirm) {\n return Message.warn('您还有未填写项');\n }\n if (newPass !== newPassConfirm) {\n return Message.warn('您两次输入的密码不一致');\n }\n let idstore = PosInitData('storeID');\n return ccApi({\n Idstore: idstore,\n meMemberId: this.paymode.currentMode.memberId,\n oldPassword: null,\n newPassword: User.pwdEncrypt(newPassConfirm),\n dataSource:\"POS\"\n }, '/member/MeMemberWallet/setWalletPayPassword', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n if (resp.successful) {\n return true;\n }\n });\n }\n\n @action\n initByOriginReturn(){\n const { PayStyle } = enumController.getEnumOj();\n const { isNewRetailBCPos } = platform || {};\n console.log(this.dto, 'dto==========');\n this.paymode.checkList = [];\n _each(this.dto.RetailPaymentDetails,(detail)=>{\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\n ModalWraper.info({\n title: '温馨提示',\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\n okText:'确定',\n okType:'primary'\n });\n }\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\n let newmode={\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\n authCode:detail.PaymentCode,\n steadCashIntegral:detail.SteadCashIntegral,\n overchargesAmount:detail.OverchargesAmount,\n boriginReturn:true,\n thirdPaymentReturnInfo: detail.ThirdPaymentReturnInfo\n };\n this.paymode.currentMode=newmode;\n if(themode.paymentType==PayStyle.djq){\n _each(this.dto.RetailCouponDetails,(djq)=>{\n if (isNewRetailBCPos) {\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null,djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,\n this.dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n null,\n id,\n true);\n return;\n }\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\n })\n }\n this.paymode.thePaymodes.push(newmode)\n }\n })\n _each(this.dto.RetailStorageDetails,(detail)=>{\n let balanceAmount = null;\n let storageCardNo = null;\n let meStorageCardId = null;\n detail.DynamicPropertyKeys.forEach((ele, index) => {\n if (ele === \"mestoragecard\") {\n balanceAmount = detail.DynamicPropertyValues[index].BalanceStorage - detail.StoragePaymentAmount;\n storageCardNo = detail.DynamicPropertyValues[index].StorageCardNo;\n meStorageCardId = detail.DynamicPropertyValues[index].MeStorageCardId;\n }\n })\n let newmode={\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\n member:new Member(detail.Member ? detail.Member :null),\n authCode:detail.Password ? detail.Password: null,\n balance:balanceAmount,\n boriginReturn:true,\n meStorageCardId: meStorageCardId ? meStorageCardId : detail.MeStorageCardId,\n storageCardNo: storageCardNo ? storageCardNo : detail.StorageCardNo\n };\n this.paymode.thePaymodes.push(newmode)\n })\n this.paymode.calcReserved();\n }\n\n clean(){\n this.bquick=false;\n this.paymode.clean();\n }\n\n @action quickSettle(key){\n this.addPay(key,null, true);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type, bookType){\n const { PayStyle } = enumController.getEnumOj();\n this.paymode.currentFocus=type;\n if(this.paymode.currentMode){\n if(type==PayStyle.jfdx){\n if(this.newStyle){\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\n this.paymode.calcReserved();\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n\n //抵现积分\n tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount: this.paymode.currentMode.value,\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\n this.paymode.currentMode.steadCashIntegral=result.Integral;\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\n });\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n }else{\n this.addPay(type, bookType);\n }\n }\n\n // 设置密码后更新会员信息\n @action updateMemberInfo = async (_this) => {\n const { IdStore, StoreCode } = this.getLoginInfo();\n const resp = await tApi({ Idmember: this.member.ID, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\n _this.member = resp;\n _this.paymode.updateMemberStorageCardNo(resp.StorageCardNo, resp.WalletEnabled);\n return Promise.resolve(resp);\n }\n\n @action updateCurrentMode = async (memberId) => {\n // 查看会员卡信息\n let result = await ccApi({},`/marketingtool/MeStorageCard/getCardInfoByMemberId/${memberId}/${true}`,false, false, { method: 'get' })\n if (result && result.data.length) {\n if (result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n // result.data.forEach((m) => {\n // if (m.CardTypeEnum === 'BALANCE_CARD') {\n // // 会员概念改为卡,把这些字段都放开\n // this.paymode.updateCardInfo(m);\n // }\n // })\n }\n }\n\n @action updateCardInfo = async () => {\n let address = `/marketingtool/MeStorageCard/getCardInfoByCardNo/${this.paymode.currentMode.storageCardNo}`;\n let result = await ccApi({}, address, false, false, { method: 'get', timeout_skip: true })\n this.paymode.updateCardInfo(result.data);\n }\n\n getLoginInfo() {\n return stores.user.options.get('loginInfo');\n }\n\n handleCzkData = (m) => {\n if(!m || !m.StorageCardNo){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.memberId = m.ID;\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n const sum = _reduce(this.paymode.thePaymodes, (total, cur) => total + cur.value, 0)\n // 对于卡不用判断会员的一些信息\n // if (global.CheckMemberStorageProcessorBlock ) {\n // message= CheckMemberStorageProcessorBlock.execute(m);\n // }\n if (!String.isNullOrEmpty(message)) {\n this.paymode.currentMode.errinfo=message;\n }\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\n this.paymode.currentMode.errinfo=\"余额不足\";\n }else if(this.paymode.amount>0 && parseFloat(this.paymode.amount) !== sum && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n setTimeout(() => {\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.select();\n }, 300)\n }\n });\n }\n }\n\n loadCzk(v){\n if(_trim(v)===\"\"){\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"请输入储值卡\";\n });\n return;\n }\n const IdStore=this.storeInfo.storeID;\n const StoreCode=this.storeInfo.storeCode;//_find(this.storeInfo.storeInfos,(store)=>{return store.ID==IdStore;}).Code;\n const { isNewRetailBCPos } = platform || {};\n let address = ''\n if (isNewRetailBCPos) {\n // address = '/member/memberProfile/FindByStorageCode/'+v;\n address = `/marketingtool/MeStorageCard/getCardInfoByCardNo/${v}/${true}`;\n return ccApi({code:v}, address, false, false, { method: 'get', timeout_skip: true })\n .then(async(result)=>{\n let data=result.data;\n let m=(data && data.length && data[0]);\n if (result && result.data.length) {\n if (result.data.length === 1) {\n if (m.CardTypeEnum === 'BALANCE_CARD') {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m);\n return result.data;\n } else {\n // 校验储值卡是否可用\n await ccApi({dto:this.dto,meStorageCardId:m.MeStorageCardId}, '/retail/RetailPos/validateRetailStorageCard', false, false)\n .then((result1) => {\n let data1 = result1.data ? JSON.parse(result1.data)[0] : {};\n if (data1.enable) {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m)\n return result1.data;\n } else {\n Message.warn(data1.disableReason);\n }\n })\n }\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n // result.data.forEach((m) => {\n // if (m.CardTypeEnum === 'BALANCE_CARD') {\n // // 会员概念改为卡,把这些字段都放开\n // this.paymode.updateCardInfo(m);\n // }\n // })\n }\n })\n } else {\n address = 'AA.DR.newRetailMember.SearchMember'\n return tApi({SearchParams:{Key:v,IsSingleMember:true,IdStore,StoreCode}}, address, false, false)\n .then((result)=>{\n let data=JSON.parse(result.Data);\n let m=data && data.length>0 && data[0];\n if(!m || !m.ID){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.member = new Member( m )\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n if (global.CheckMemberStorageProcessorBlock ) {\n message= CheckMemberStorageProcessorBlock.execute(data[0]);\n }\n if (!String.isNullOrEmpty(message)) {\n this.paymode.currentMode.errinfo=message;\n }\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\n this.paymode.currentMode.errinfo=\"余额不足\";\n }else if(this.paymode.amount>0 && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.focus();\n }\n });\n }\n })\n }\n }\n getCouponList = coupon_code => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n const couponApplyRule = PosInitData('CouponApplyRule');\n const { CouponApplyRule } = enumController.getEnumOj();\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\n let dto = this.dto;\n let promoVoucher = {};\n this.paymode.clearDjqs();\n this.paymode.reCalculationDjqs();\n promoVoucher.coupon_code = coupon_code || \"\";\n promoVoucher.boName = \"Retail\";\n promoVoucher.voucherId = dto.ID;\n let onlinePaymentAmount=0;\n if(dto.OnlinePaymentAmount)\n {\n onlinePaymentAmount=dto.OnlinePaymentAmount;\n }\n promoVoucher.promoLinks = _filter(this.paymode.currentMode.djqs,djq=>djq.checked);\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\n promoVoucher.redBlueFlagEnum = \"BLUE\";\n promoVoucher.meMemberId = dto.Idmember;\n promoVoucher.storeFactorId = dto.Idstore;\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n //}\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n\n return ccApi({\n ...promoVoucher\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\n .then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element)=>{\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else {\n let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n this.addDjq(\n couponCode,\n name,\n IsEnable,\n promoMethodEnum == \"CASH_COUPON\" && nominalAmount,\n promoDiscount,\n condValue,\n null,\n false,\n !result.IsRepelWithPoints,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n true, 1)\n }\n })\n if(promoVoucher.coupon_code){\n this.paymode.calcDjqCheckValue(this.paymode.currentMode.djqs[0], this.dto, 'single')\n }\n }else{\n if (promoVoucher.coupon_code) {\n Message.info(`${Differentiate.COUPON}号不存在!`);\n this.getCouponList();\n } else {\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\n }\n }\n })\n }\n }\n\n getSettleGift = () => {\n return ccApi({ }, `/marketingtool/paygift/executeRightsForPos/${this.billID}`, false, false, { method: 'get', timeout_skip: true });\n }\n\n getRefWareHouseList = () => {\n return ccApi({}, `/retail/RetailPos/getRefWareHouseList`, false, false);\n }\n\n checkCoupon = async (sn) => {\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n return await this.getCouponList(sn, 'sinlge');\n } else {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n return tApi({request:{\n Uid:this.paymode.currentMode.member.uid || '',\n SN:sn,\n StoreCode:this.dto.Idstore,\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\n IdInventory:detail.Inventory.ID,\n IdUnit:detail.Idunit,\n Code:detail.Inventory.Code,\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\n }}),\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\n Amount:this.paymode.amount\n }}, 'chanjet.AA.DR.coupon.CheckCoupon', false, false)\n .then((result)=>{\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\n Message.info(`${Differentiate.COUPON}已添加`);\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else{\n this.addDjq(\n result.SN,\n result.Title,\n result.ReduceAmount,\n result.StartAmount,\n result.LastTS,\n false,\n !result.IsRepelWithPoints,\n result.UMemberID)\n }\n\n })\n }\n }\n @action addDjq(\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n unCheck,count\n ){\n let djq={\n code: promoCouponCode,\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,//:\"无门槛\"\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired, //还剩多少过期\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n count: (count === 1 && (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? 1 : null)\n };\n this.paymode.currentMode.djqs.push(\n djq\n );\n // let copyData = _clonedeep(this.data[targetIndex]);\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\n }\n\n setCurrentMode(id,type,append){\n const { PayStyle } = enumController.getEnumOj();\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\n if(mode){\n this.paymode.currentMode=mode;\n if(this.newStyle){\n this.afterSetCurrentMode(type);\n }\n }else{\n this.paymode.currentMode=this.genNewMode(type,append);\n this.afterSetCurrentMode(type);\n }\n }\n afterSetCurrentMode(type){\n const { PayStyle } = enumController.getEnumOj();\n if(type==PayStyle.djq){\n this.paymode.calcDjqValue();\n }else if(type==PayStyle.jfdx){\n //获取可兑换的金额\n if(this.newStyle){\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\n if(themode && parseFloat(themode.value||0)!=0){\n this.paymode.currentMode.value=themode.value;\n }\n }\n\n //积分抵现不包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let IdbusiType = this.dto.IdbusiType;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0){\n value = getFixedNumber(Math.Minus(this.paymode.amount, BuyerPayFreight))\n } else if (IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n //预订场景下:现场提货,且订金比例非100%时,积分抵现按全款计算(因为只有全款才能使用积分抵现)\n value = this.paymode.bookMaxValue;\n } else {\n value = this.paymode.amount;\n }\n\n tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:value,\n BalanceTaxAmount:value,\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\n this.updateEvent();\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\n }\n });\n\n }\n }\n\n\n checkReceived(mode,name){\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\n }\n\n genNewMode(type,notwithm,v,isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\n const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\n thridPayment: themode.thridPayment,\n value,\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\n value3:value,\n order:this.paymode.thePaymodes.length+1,\n paymentType:type,\n djqs:[],\n card: null,\n memberId: !notwithm?memberId:null,\n member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\n virtualPay: themode.virtualPay\n });\n if(type==PayStyle.hyczk){\n if(!mode.storageCardNo){\n runInAction(()=>{mode.errinfo='未录入手机号或储值卡号'})\n }else if(this.checkReceived(mode,\"balance\")){\n runInAction(()=>{mode.errinfo='余额不足'})\n }\n\n }\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\n this.setMaxAmount(type,mode);\n }\n console.log(`当前操作结算方式信息:${mode}`);\n return mode;\n }\n\n setMaxAmount(type,mode){\n const { PayStyle } = enumController.getEnumOj();\n let sum=0;\n if(type==PayStyle.hyczk){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }\n\n this.amountHandler && this.amountHandler(type).then(()=>{\n runInAction(()=>{\n\n //预售储值结算应包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 && type == PayStyle.hyczk){\n value = getFixedNumber(parseFloat(this.context.viewModel.getViewItem('Voucher').availableAmount) + parseFloat(BuyerPayFreight))\n } else {\n value = this.context.viewModel.getViewItem('Voucher').availableAmount;\n }\n mode.maxamount=getFixedNumber(Math.Minus(value,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n }\n\n @action changeClickFocusOnly(type) {\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n if(mode){\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\n mode.value = shouldSetValue;\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\n mode.value3 = shouldSetValue;\n this.paymode.calcReserved('bookPay'); //参数multiPay代表复合结算\n }\n }\n\n @action changeValue(index,value,blur,type){\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\n if(mode){\n if(mode.exchangeRate != 1){\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\n }\n else{\n mode.value=mode.value3;\n }\n mode.value2=v;\n }else{\n mode.value=v;\n mode.value2=v;\n }\n\n this.paymode.calcReserved(type);\n }\n }\n\n @action addPayDirectly(pay){\n const { PayStyle } = enumController.getEnumOj();\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\n let pos=this.paymode.thePaymodes.length;\n if(pay.paymentType==PayStyle.hyczk){\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\n pos=index==-1?pos:(index+1);\n }\n // this.paymode.thePaymodes.push(pay);\n this.paymode.thePaymodes.splice(pos,0,pay);\n }\n this.paymode.calcReserved();\n }\n\n @action addPay(type, bookType, isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let pos = this.paymode.thePaymodes.length;\n if (type == PayStyle.hyczk) {\n let index = _findLastIndex(this.paymode.thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk });\n pos = index == -1 ? pos : (index + 1);\n }\n this.paymode.thePaymodes.splice(pos, 0, this.genNewMode(type,this.newStyle && type==PayStyle.hyczk,undefined, isQuick));\n this.paymode.calcReserved(bookType);\n }\n\n @action delPay(index, bookType){\n const { PayStyle } = enumController.getEnumOj();\n _remove(this.paymode.thePaymodes,(mode)=>{\n return mode.paymethodId===index;\n });\n this.paymode.currentFocus = -1;\n this.paymode.calcReserved(bookType);\n }\n\n // 获取储值是否重复, 在commit方法中使用\n findStorageBillValidate () {\n const { PayStyle } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n })\n });\n\n });\n return ccApi(\n {...this.dto},\n '/marketingtool/Storage/findStorageBillValidate',\n false,\n false\n )\n }\n\n //判断是否重复弹框\n repeatStorageModal = (content) => {\n return new Promise((resolve, reject) => {\n ModalWraper.confirm({\n title: '',\n okText: '继续储值',\n className: 'repeat-modal',\n zIndex: 1007,\n content,\n onOk: async () => {\n let ret = await this.saveMember();\n if (ret === false) {\n resolve(false)\n } else {\n resolve(true)\n }\n },\n onCancel() {\n resolve(false)\n }\n })\n })\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:' + bTest);\n if (bTest) {\n return Promise.resolve(true);\n }\n const status = this.type;\n try {\n const paylist = this.paymode.thePaymodes.filter(v => !!v.thridPayment && Math.abs(v.value) > 0) || [];\n if (paylist && paylist.length > 1) {\n Message.warn('二开支付目前仅支持单一结算方式。');\n return Promise.resolve(false);\n }\n if (status == 1) {\n const ret = await this.findStorageBillValidate();\n const { data: { code, returnMsg } = {} } = ret || {}\n if (code && code == 10001) {\n const state = await this.repeatStorageModal(returnMsg);\n if (state === false) return Promise.resolve(false);\n } else {\n let ret1 = await this.saveMember();\n if (ret1 === false) {\n Promise.resolve(false);\n }\n }\n } else {\n await stores.offlineSys.generatorCode(this.dto);\n let ret2 = await this.save();\n if (ret2 === false) {\n return Promise.resolve(false);\n }\n await stores.offlineSys.retailSequenceUpload();\n }\n return Promise.resolve(true);\n } catch (err) {\n console.error('settlementStore.commit失败,错误信息:' + err);\n //其他支付失败时,处理二开支付情况。\n this.thirdPayRefund(status == 1 ? 2 : 1);\n return Promise.resolve(err);\n }\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{})\n }\n\n async saveMember(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n });\n\n });\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n let dtoParams = this.dto;\n //处理存在二开支付情况\n let payList = dtoParams.StorageMutiSettleDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.StorageAmount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(2, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('储值结算信息:', dtoParams);\n return tApi({ dto: dtoParams }, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp) => {\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.RetailPaymentDetails=[];\n this.dto.RetailStorageDetails=[];\n this.dto.RetailCouponDetails=[];\n let czkSum=0;\n let count = 0;\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode, index)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n if(mode.paymentType==PayStyle.hyczk){\n czkSum=Math.Add(czkSum,mode.value);\n this.dto.RetailStorageDetails.push({\n Code:mode.paymethodId,\n MeStorageCardId: mode.meStorageCardId,\n StoragePaymentAmount:mode.value,\n IsOrigReturn:false,\n BalanceStorage:mode.balance,\n Idmember:mode.memberId,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n Password:mode.authCode,\n })\n }else{\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.RetailPaymentDetails.push({\n Code:mode.paymethodId,\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\n Amount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n Idcurrency:themode.idCurrency,\n ExchangeRate:themode.exchangeRate,\n PaymentCode:mode.authCode,\n SteadCashIntegral:mode.steadCashIntegral,\n OverchargesAmount:mode.overchargesAmount,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n if(mode.paymentType==PayStyle.djq){\n _each(this.paymode.checkList && this.paymode.checkList.length ? this.paymode.checkList: mode.djqs,(djq)=>{\n this.dto.RetailCouponDetails.push({\n CouponCode:djq.promoCouponCode,\n ReductionAmount:djq.amount,\n EnableAmount:djq.doorsill,\n CouponTitle:djq.name,\n IdMember:djq.UMemberID?mode.memberId:null,\n LastTS:djq.LastTS,\n PromotionId:djq.promoId,\n PromotionRuleId:djq.promoRuleId,\n PromoCouponAllocatedId:djq.id,\n DataSource:{Id:this.dataSource},\n })\n })\n }\n }\n });\n if (this.dto.RetailStorageDetails.length > 0) {\n const themode = _find(this.paymode.paymodes, { 'paymentType': PayStyle.hyczk });\n this.dto.RetailPaymentDetails.push({\n Code: this.paymode.counter,\n OrigAmount: czkSum,\n Amount: czkSum,\n IdsettleStyle: themode.idSettleStyle,\n IdbankAccount: themode.idBankAccount,\n DynamicPropertyKeys: [],\n DynamicPropertyValues: [],\n DataSource: { Id: this.dataSource },\n RetailStorageDetails: this.dto.RetailStorageDetails,\n })\n }\n });\n console.log(`结算数据:`, this.dto);\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n const RetailTypeEnum = this.dto.IdbusiType == 36 ? \"INTEGRAL_EXCHANGE\" : \"NORMAL\";\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n let prepaidAmount = getFixedNumber(this.dto.RetailPaymentDetails.reduce((c, item) => c + (item.Amount || 0), 0));\n let fullPayment = getFixedNumber(this.dto.RetailDetails.reduce((c, item) => c + (item.TaxAmount || 0), 0));\n this.isFull = fullPayment == prepaidAmount; // 是否全款\n runInAction(()=>{\n this.dto.PrepaidAmount = prepaidAmount;\n });\n }\n if (this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37) {\n let dtoParams = { ...this.dto.cut(), RetailOms: { RetailTypeEnum } };\n //处理存在二开支付情况\n let payList = dtoParams.RetailPaymentDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.Amount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(1, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('结算信息:', dtoParams);\n return ccApi({ dto: dtoParams, cip: IPMSG.query || \"\" }, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n const { ID } = resp || {};\n this.setDtoID(ID);\n this.billID = ID;\n this.paymode.checkList = [];\n })\n }\n }\n\n //裁剪二开支付数据\n removeThirdPayDto(dto) {\n let data = {...dto};\n delete data['DynamicPropertyKeys'];\n delete data['DynamicPropertyValues'];\n return data;\n }\n\n /**\n * 二开支付\n * vType:1零售单、2储值单\n * payment:结算方式\n * trade:00表示结算、02表示退款\n * dto:结算数据集合\n */\n async thirdPay(vType, payment, trade, dto) {\n try {\n let cto = this.removeThirdPayDto(dto);\n const params = { VoucherType: vType, Payment: payment, TradeType: trade, dto: cto };\n console.log('刷卡信息:', JSON.stringify(params));\n let ret = await new Promise((resolve, reject) => {\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\n return resolve(res);\n })\n })\n console.log('刷卡返回信息:', ret);\n ret = JSON.parse(ret);\n const { Code, Message, Result } = ret || {};\n if (Code > 0) {\n return { type: false, data: null, msg: Message, code: Code };\n } else if (trade == '00') {\n const { ThirdPaymentReturnInfo } = Result || {};\n if (vType == 1) {\n dto.RetailPaymentDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.Amount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n } else if (vType == 2) {\n dto.StorageMutiSettleDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.StorageAmount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n }\n return { type: true, data: dto, msg: Message, code: Code };\n } else if (trade == '02') {\n return { type: true, data: dto, msg: Message, code: Code };\n }\n } catch (ex) {\n return { type: false, data: null, msg: ex, code: '9999' }\n }\n }\n\n //二开支付强制退款情况\n async thirdPayRefund(type) {\n const dto = (type == 1) ? this.dtoParams.RetailPaymentDetails : this.dtoParams.StorageMutiSettleDetails;\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\n if (pay && pay.length > 0) {\n setTimeout(() => {\n Message.warn(\"支付出现异常,将发起刷卡退款。\", { duration: 4.5 })\n }, 1000);\n const payment = pay[0];\n const { TradeType } = enumController.getEnumOj();\n setTimeout(async () => {\n let ret = await this.thirdPay(type, payment, TradeType.REFUND, dto);\n const { msg } = ret || {};\n console.log(`刷卡支付退款:${msg}`);\n }, 4500);\n }\n }\n\n\n @action setDtoID(id){\n this.context.viewModel.data.ID=id;\n }\n\n checkIntegralExchangeReturn = (id) => {\n return new Promise((resolve, reject) => {\n tApi({param: {refVoucherId:id}}, 'chanjet.RE.NewPos.GetNewIntegralExchange', false, false,{timeout_skip:true}).then((resp) => {\n if( resp && resp.expireIntegral>0){\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: \"温馨提示\",\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\n cancelable: false,\n onOk() {\n resolve(true);\n },\n onCancel() {\n reject(false);\n }\n })\n }else{\n resolve(true);\n }\n })\n })\n }\n\n async querySettleResult(){\n try{\n return Promise.resolve(await tApi({RetailCode: this.dto.Code}, 'chanjet.RE.newRetail.QuerySettleResult', false, false,{timeout_skip:true}));\n }catch(e){\n return Promise.resolve({Flag:\"1\"});\n }\n }\n\n setCookie(key, val) {\n var exp = new Date();\n exp.setTime(moment().endOf('day').valueOf());\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\n }\n\n getAllCookies() {\n var cookies = document.cookie.split(/;\\s/g);\n var cookieObj = {};\n cookies.forEach(function (item) {\n var key = item.split('=')[0];\n cookieObj[key] = item.split('=')[1];\n });\n return cookieObj;\n }\n\n async validePwd(value){\n let { isNewRetailBCPos } = platform || {};\n try{\n if (isNewRetailBCPos) {\n let cook1 = this.getAllCookies()['errorPwd'];\n let cook2 = cook1 && JSON.parse(cook1);\n let message = '密码输入错误';\n let memberStorageId = this.paymode.currentMode.meStorageCardId;\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n if (cook2[memberStorageId] > 3) {\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\n return Promise.resolve(message);\n }\n }\n }\n const {cardTypeEnum, memberId, meStorageCardId, cardStatusEnum} = this.paymode.currentMode;\n let result = null;\n if (cardTypeEnum === 'BALANCE_CARD') {\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${memberId}`, false, false);\n } else {\n if (cardStatusEnum === 'BINDING' && this.member && this.member.ID === memberId) {\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\n } else {\n result = await ccApi({password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\n }\n }\n if (!result.data) {\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n let count = cook2[memberStorageId];\n cook2[memberStorageId] = count + 1;\n } else {\n cook2[memberStorageId] = 1;\n }\n } else {\n cook2 = {};\n cook2[memberStorageId] = 1;\n }\n this.setCookie('errorPwd', '', -1);\n this.setCookie('errorPwd', JSON.stringify(cook2));\n }\n return Promise.resolve(result.data?\"\":message);\n } else {\n const result = await tApi({\"CheckoutParams\": {\n \"Idmember\": value.id,\n \"Password\":value.pwd\n }}, 'AA.DR.newRetailMember.CheckoutMemberPassword', false, false);\n return Promise.resolve(result.Success?\"\":result.Message);\n }\n }catch(e){\n return \"failed\";\n }\n }\n}\n\nexport class PayMode{\n _counter=0\n amount=0 //应收\n onlineamount=0\n maxamount=0;\n @observable currentFocus=\"\"\n @observable received=0;\n @observable receivable=0;\n @observable paymodes =[]\n @observable thePaymodes=[]\n bookMaxValue=0;\n isNotFullBook=false; //预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true\n isNotFullOnlyBook=false; //只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true\n @observable storageCardNo = null;\n @observable balance = null;\n // @observable store = null;\n currentMode=null;\n checkList = [];\n updateEvent\n settle={\n name:\"复合结算\",\n hotKey:\"Ctrl+M\",\n }\n constructor (){\n // this.amount=getFixedNumber(amount);\n // this.calcReserved();\n }\n\n @action clean(){\n this.thePaymodes=[];\n this.calcReserved();\n }\n\n @action clear(){\n this.thePaymodes=[];\n this.calcReserved();\n this.paymodes = [];\n }\n\n setAmount(a,o){\n this.amount=getFixedNumber((a || 0)-(o || 0));\n this.onlineamount=getFixedNumber(o || 0);\n this.calcReserved();\n return this.amount<0;\n }\n\n @action calcReserved(type){\n var sum=0;\n _each(this.thePaymodes,(mode)=>{\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\n });\n this.received = getFixedNumber(sum);\n if(type === 'bookPay' && this.isNotFullBook){\n if ( this.amount <= sum && sum <= this.bookMaxValue){\n this.receivable = getFixedNumber(0);\n }\n if (sum < this.amount){\n this.receivable = getFixedNumber(this.amount - sum);\n }\n if (sum > this.bookMaxValue){\n this.receivable = getFixedNumber(this.bookMaxValue - sum);\n }\n }else{\n this.receivable = getFixedNumber(this.amount - sum);\n }\n }\n\n @action calcCheckList = () => {\n this.checkList = [];\n }\n\n @action updateMemberStorageCardNo(storageCardNo, walletEnabled) {\n this.currentMode.storageCardNo = storageCardNo;\n this.currentMode.walletEnabled = walletEnabled;\n }\n\n @action updateCardInfo(m) {\n this.currentMode.cardStatusEnum = m.CardStatusEnum;\n this.currentMode.isNeedPassword = m.IsNeedPassword;\n this.currentMode.meStorageCardId = m.MeStorageCardId;\n this.currentMode.storageCardNo = m.StorageCardNo;\n this.currentMode.balance = m.BalanceStorage;\n this.currentMode.rawbalance = m.BalanceStorage;\n this.currentMode.cardTypeEnum = m.CardTypeEnum;\n this.currentMode.walletEnabled = m.WalletEnabled;\n this.currentMode.memberId = m.ID;\n this.currentMode.freePaymentPasswordStore = m.FreePaymentPasswordStore;\n }\n\n @action calcDjqCheckValue(q1, dto, params) {\n let useLimitPerOrder = PosInitData('UseLimitPerOrder');\n let qList = _filter(this.currentMode.djqs,djq=>djq.checked);\n if (qList.length === useLimitPerOrder && !q1.checked) {\n Message.warn('本单最多可用'+useLimitPerOrder+'张');\n return;\n }\n if (params === 'single') {\n this.checkList = [];\n }\n\n let { isNewRetailBCPos } = platform || {};\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.promoCouponCode==q1.promoCouponCode});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n if (!q1.checked) {\n this.checkList.forEach((ele, i) => {\n if (ele.id === q1.id) {\n this.checkList.splice(i, 1);\n }\n })\n } else {\n this.checkList.push(q1);\n }\n\n this.checkList.forEach((ele) => {\n sum=Math.Add(sum,ele.amount);\n })\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n console.log(this.receivable, sum, Math.min(this.receivable,sum,this.currentMode.maxamount), 'sum---------');\n this.currentMode.receivable = getFixedNumber(this.receivable - Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n if (params === 'single') {\n return;\n }\n let promoVoucher = {};\n promoVoucher.boName = \"Retail\";\n // promoVoucher.promoLinks = _filter(this.currentMode.djqs,djq=>djq.checked);\n promoVoucher.meMemberId = this.currentMode.member.id;\n promoVoucher.storeFactorId = PosInitData('storeID');\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n\n\n\n\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n promoVoucher.promoLinks = this.checkList;\n return ccApi({\n ...promoVoucher\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\n .then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element, index) => {\n let djq1 = false;\n this.currentMode.djqs.forEach((djq) => {\n if (element.id === djq.id) {\n djq1 = true;\n }\n })\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id, doorsill} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if(!djq1) {\n // this.currentMode.djqs.push({\n // promoCouponCode: element.CouponCode,\n // name: element.CouponTitle,\n // IsEnable: true,\n // amount: element.ReductionAmount,\n // doorsill: element.EnableAmount,\n // LastTS: element.LastTS,\n // checked: false,\n // IsRepelWithPoints: true,\n // UMemberID: dto.Idmember,\n // expired: null,\n // displayText,\n // promoMethodEnum,\n // discountPct,\n // promoId,\n // promoRuleId,\n // couponCategoryEnum: tieredAmountResult.couponCategoryEnum,\n // id\n // })\n this.addDjqs(couponCode,name,true,nominalAmount,promoDiscount,doorsill,element.LastTS,false,true,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n tieredAmountResult.couponCategoryEnum,\n id);\n djq1 = false;\n } else {\n this.setCouponNum(element.id, couponCategoryEnum, promoMethodEnum, nominalAmount,promoDiscount);\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\n }\n })\n }\n // 优惠券【6052098985043】与【6120822326451】不可叠加使用\n })\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action setCouponNum = (id, couponNum, promoMethodEnum, nominalAmount,promoDiscount) => {\n this.currentMode.djqs.forEach((ele) => {\n if (ele.id === id) {\n ele.amount = promoDiscount;\n promoMethodEnum == \"CASH_COUPON\" && (ele.nominalAmount = nominalAmount);\n ele.couponCategoryEnum = couponNum;\n let IsEnable = (ele.couponCategoryEnum === 'RIGUP' || ele.couponCategoryEnum === 'UN_MATCH' || ele.couponCategoryEnum === \"PREPARING\" || ele.couponCategoryEnum === 'PROMO_LIMITED' || ele.couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n ele.IsEnable = IsEnable;\n }\n })\n }\n\n @action addDjqs = (promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id) => {\n let djq={\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id\n };\n this.currentMode.djqs.push(\n djq\n );\n }\n\n @action calcDjqValue(q1){\n let { isNewRetailBCPos } = platform || {};\n const { Differentiate } = enumController.getEnumOj();\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action reCalculationDjqs() {\n var sum=0;\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\n }\n\n @action clearDjqs() {\n this.currentMode.djqs = [];\n }\n\n @action setCurrentModeValue(v,max){\n this.currentMode.value=parseFloat(v) || 0;\n this.currentMode.errinfo='';\n let sum = this.amount;\n const { PayStyle} = enumController.getEnumOj();\n this.thePaymodes && this.thePaymodes.forEach((mode) => {\n if (mode.paymentType === PayStyle.hyczk) {\n sum -= mode.value;\n }\n })\n\n if(this.amount>0 && (v==='' || v==='0.00') && sum !== 0){\n this.currentMode.errinfo=\"实收金额必须录入\";\n }else if(Math.abs(parseFloat(v))>Math.abs(getFixedNumber(sum))){\n this.currentMode.errinfo=\"实收不应大于应收\";\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\n this.currentMode.errinfo=\"余额不足\";\n }\n }\n @action calcMemberBalance(){\n this.currentMode.balance = this.currentMode.rawbalance - this.currentMode.value;\n }\n\n get charge(){\n return Math.abs(this.receivable);\n }\n\n get counter(){\n return ++this._counter;\n }\n\n async setPaymodes(type,isIntegralExchange){\n // 是否移动端判断\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\n const isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n let modes = await tApi({ param }, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n let settleLists = modes.SettleStyles;\n settleLists = isMobileEnvironment ? settleLists.filter(v => !v.ThirdPaymentInfo) : settleLists;\n _each(settleLists, (mode, index) => {\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n if (mode.Code == PayStyle.hyczk) {\n mode.Name = '储值卡';\n }\n paymodes.push({\n name:mode.Name,\n isDefault:mode.IsDefaultSettleStyle,\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\n orderBy:1,\n paymentType:mode.Code,\n offlineDisable:mode.offlineDisable,\n idSettleStyle:mode.IdSettleStyle,\n idBankAccount:mode.IdBankAccount,\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\n idCurrency:mode.Currency?mode.Currency.ID:-1,\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\n virtualPay: mode.VirtualPay,\n thridPayment: mode.ThirdPaymentInfo,\n })\n })\n this.paymodes = paymodes;\n })\n }\n }\n}\n\nexport class Member{\n id;\n uid;\n @observable cardNo;\n type;\n @observable balance;\n rawbalance;\n needPwd;\n bonusPoints;\n @observable exchangable;\n @observable meStorageCardId;\n @observable storageCardNo;\n constructor(m){\n if(m){\n this.id=m.ID;\n this.uid=m.Uid;\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\n this.rawbalance=m.BalanceStorage;\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\n const { isNewRetailBCPos } = platform || {};\n runInAction(()=>{\n this.cardNo=m.CardCode;\n if(index>=0){\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\n }else{\n this.balance=this.rawbalance;\n }\n });\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\n this.NeedModifyPassword=m.NeedModifyPassword;\n this.bonusPoints=m.BalanceIntegral;\n }\n }\n @action setExchangable(v){\n this.exchangable=v;\n }\n @action setCardNo(v){\n this.cardNo=v;\n this.id=null;\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","dtoParams","member","brefund","bquick","boriginReturn","newStyle","isFull","handleCzkData","m","StorageCardNo","currentMode","errinfo","memberId","ID","value","receivable","Math","max","updateEvent","message","sum","thePaymodes","total","cur","String","isNullOrEmpty","checkReceived","amount","parseFloat","setTimeout","nextInput","document","querySelector","select","getCouponList","enumController","getEnumOj","PayStyle","Differentiate","couponApplyRule","CouponApplyRule","SHOWN_BY_CUSTOMER","coupon_code","promoVoucher","clearDjqs","reCalculationDjqs","boName","voucherId","onlinePaymentAmount","OnlinePaymentAmount","promoLinks","djqs","djq","checked","totalAmountWithTax","Minus","TotalTaxAmount","redBlueFlagEnum","meMemberId","Idmember","storeFactorId","Idstore","voucherDetailList","RetailDetails","forEach","detailDTO","uuid","item","Code","detailBoName","voucherDetailId","productId","Idinventory","uomId","Idunit","productSpecId","ProductSpecId","isManualFreeGift","IsPresent","isListPriceIncludingTax","TaxFlag","IsManualChangePrice","bookingQuantity","BookingQuantity","listPrice","JSON","getCellValue","netAmountWithTax","Multiply","Quantity","taxRate","TaxRate","quantity","amountWithTax","RetailAmount","PromotionDetails","length","promotion","push","promoId","IdSalesPromotionDTO","promoRuleId","PromotionRuleId","method","timeout_skip","then","result","element","couponCode","name","tieredAmountResult","fromDate","dateMount","promoMethodEnum","discountPct","nominalAmount","id","condValue","promoDiscount","displayText","couponCategoryEnum","IsRepelWithPoints","themode","paymentType","jfdx","Message","error","COUPON","SN","IsEnable","addDjq","calcDjqCheckValue","info","getSettleGift","billID","getRefWareHouseList","checkCoupon","sn","platform","isNewRetailBCPos","request","Uid","uid","StoreCode","Inventories","d","detail","IdInventory","Inventory","IdUnit","FreeItem0","FreeItem1","FreeItem2","FreeItem3","FreeItem4","FreeItem5","FreeItem6","FreeItem7","FreeItem8","FreeItem9","InventoryClassCodes","InventoryClass","Amount","code","Title","ReduceAmount","StartAmount","LastTS","UMemberID","repeatStorageModal","content","resolve","reject","ModalWraper","confirm","title","okText","className","zIndex","onOk","saveMember","ret","onCancel","checkIntegralExchangeReturn","param","refVoucherId","resp","expireIntegral","cancelable","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","context","amounthandler","datasource","storeinfo","data","payModeKey","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","isQuickCash","xianjin","DealAmountSettingProcessorBlock","Member","isNotFullBook","isNotFullOnlyBook","getLoginInfo","PreSellOrBook","PercentageWhenBook","IdbusiType","DistributionMode","Id","bookMaxValue","PrepaidAmount","BuyerPayFreight","stores","drawerStore","thisWaitPaidAmount","totalWaitPaidAmount","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","console","log","checkList","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","thirdPaymentReturnInfo","ThirdPaymentReturnInfo","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","MeStorageCardId","Password","balance","calcReserved","key","bookType","currentFocus","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","Integral","user","options","v","IdStore","storeID","storeCode","address","CardTypeEnum","updateCardInfo","result1","data1","parse","enable","warn","disableReason","SearchParams","Key","IsSingleMember","Data","CheckMemberStorageProcessorBlock","focus","promoCouponCode","doorsill","expired","unCheck","count","calcDjqValue","append","afterSetCurrentMode","setExchangable","MaxAmount","maxamount","notwithm","isQuick","counter","exchangeRate","calDirection","thridPayment","value2","value3","order","card","virtualPay","setMaxAmount","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","undefined","StorageMutiSettleDetails","giveChange","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","bTest","status","paylist","filter","findStorageBillValidate","returnMsg","state","ret1","offlineSys","generatorCode","save","ret2","retailSequenceUpload","thirdPayRefund","DoNameList","DO_STORAGE_PRINT","TradeType","ThirdPaymentInfo","IPMSG","window","localStorage","payList","payment","tradeType","PAY","REFUND","thirdPay","msg","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","prepaidAmount","reduce","c","fullPayment","TaxAmount","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","vType","trade","cto","removeThirdPayDto","VoucherType","Payment","nativeMs","setIpcRendererMethod","res","Result","duration","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","memberStorageId","hasOwnProperty","cardTypeEnum","cardStatusEnum","md5Password","User","pwdEncrypt","pwd","cardType","password","setCookie","Success","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","updateMemberStorageCardNo","WalletEnabled","_counter","onlineamount","settle","hotKey","a","o","received","walletEnabled","CardStatusEnum","isNeedPassword","IsNeedPassword","rawbalance","freePaymentPasswordStore","FreePaymentPasswordStore","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","settleStyleType","memberStoreCode","settlementCode","modes","settleLists","SettleStyles","Name","isDefault","IsDefaultSettleStyle","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","VirtualPay","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'\nimport { stores, i18n, localStore, nativeMs } from 'mutants-microfx';\nimport _find from 'lodash/find';\nimport _remove from 'lodash/remove';\nimport _each from 'lodash/each';\nimport _map from 'lodash/map';\nimport _join from 'lodash/join';\nimport _trim from 'lodash/trim';\nimport _filter from 'lodash/filter';\nimport _findIndex from 'lodash/findIndex';\nimport _findLastIndex from 'lodash/findLastIndex';\nimport _findKey from 'lodash/findKey';\nimport { PosInitData } from 'tplus-poslogin';\nimport { getFixedNumber, stopPropagation } from './utils'\nimport {ccApi,tApi, User} from 'tplus-api';\nimport _clonedeep from 'lodash/cloneDeep';\nimport Message from '../message';\nimport { platform,enumController } from 'mutants-util';\nimport { printDispatch,DoNameList,ModalWraper } from 'tplus-components-touch'\nimport moment from \"moment\";\nimport _reduce from 'lodash/reduce';\nimport { Card } from 'antd';\n\nconst t = i18n.getFixedT(null, 'newretail');\n\nexport default class SettlementStore {\n paymode = null\n dto=null\n dtoParams = null\n member=null\n brefund=false\n context\n bquick=false;\n amountHandler\n dataSource\n storeInfo\n updateEvent\n type\n boriginReturn=false\n newStyle=true//type==2\n billID\n isFull = true; // 预售都是全款;预订是否全款,在点击确认支付时计算订金和商品金额计算得出\n constructor(){\n this.paymode= new PayMode()\n let params = localStore && localStore.get('cloudPrintArguments');\n if (params) this.cloudPrintArguments = params;\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\n }\n\n initPaymodes(event,type,isIntegralExchange){\n this.isIntegralExchange = isIntegralExchange;\n this.paymode.setPaymodes(type,isIntegralExchange);\n this.updateEvent=event;\n }\n\n init(context,amounthandler,datasource,storeinfo,bquick,amount,type,data,payModeKey){\n this.newStyle=localStore && localStore.get('voucherDefaultPosMode')=='voucher';\n this.type=type;\n if(context){\n this.context=context;\n this.amountHandler=amounthandler;\n this.dataSource=datasource;\n this.storeInfo=storeinfo;\n this.dto=context.viewModel.data;\n runInAction(()=>{\n // 单品金额抹零\n if (global.DealSingleRowAmountSettingProcessorBlock) {\n global.DealSingleRowAmountSettingProcessorBlock.execute(this.dto);\n }\n const { PayStyle } = enumController.getEnumOj();\n const isQuickCash = bquick && payModeKey == PayStyle.xianjin;\n\n // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto,isQuickCash);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n\n this.paymode.isNotFullBook = false;\n this.paymode.isNotFullOnlyBook = false;\n //预订按比例收取订金处理\n let value = this.dto.TotalTaxAmount;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n this.paymode.bookMaxValue = value;\n this.paymode.isNotFullBook = true;\n this.paymode.isNotFullOnlyBook = true;\n value = value * PercentageWhenBook / 100;\n }\n if (IdbusiType == 38 && PreSellOrBook == 'BOOK'){\n runInAction(()=>{\n this.dto.PrepaidAmount = value;\n });\n }\n //预订计算快递或同城配送运费\n if (IdbusiType == 38 && PreSellOrBook != 'DISABLED' && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\n value += this.dto.BuyerPayFreight || 0;\n }\n //预订取货应补款金额\n if (IdbusiType == 39){\n value = stores.drawerStore.thisWaitPaidAmount;\n if(stores.drawerStore.totalWaitPaidAmount > 0){\n this.paymode.isNotFullBook = true;\n this.paymode.bookMaxValue = stores.drawerStore.totalWaitPaidAmount;\n }\n }\n\n this.brefund=this.paymode.setAmount( value ,this.dto.OnlinePaymentAmount );\n }else{\n this.brefund=this.paymode.setAmount( amount ,0 );\n this.dto=data;\n }\n this.paymode.clean();\n\n //this.dto.TotalTaxAmount<0;\n this.bquick=!!bquick;\n this.boriginReturn=JSON.getCellValue(this.dto, \"IsOriginalReturn\");\n if(this.boriginReturn){\n this.initByOriginReturn();\n }\n if(this.newStyle){\n this.setModes();\n }\n }\n\n setModes(){\n _each(this.paymode.paymodes,(p)=>{\n if(_findIndex(this.paymode.thePaymodes,(mode)=>{return p.paymentType==mode.paymentType})==-1){\n this.addPay(p.paymentType);\n }\n });\n if(!this.boriginReturn && this.paymode.thePaymodes.length>0){\n this.changeValue(this.paymode.thePaymodes[0].paymethodId,0,true);\n }\n }\n\n amountChanged(amount){\n if(this.type==1){\n this.brefund=this.paymode.setAmount( amount ,0 );\n }\n\n }\n\n @action queryPwd = (newPass, newPassConfirm) => {\n if (!newPass || !newPassConfirm) {\n return Message.warn('您还有未填写项');\n }\n if (newPass !== newPassConfirm) {\n return Message.warn('您两次输入的密码不一致');\n }\n let idstore = PosInitData('storeID');\n return ccApi({\n Idstore: idstore,\n meMemberId: this.paymode.currentMode.memberId,\n oldPassword: null,\n newPassword: User.pwdEncrypt(newPassConfirm),\n dataSource:\"POS\"\n }, '/member/MeMemberWallet/setWalletPayPassword', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n if (resp.successful) {\n return true;\n }\n });\n }\n\n @action\n initByOriginReturn(){\n const { PayStyle } = enumController.getEnumOj();\n const { isNewRetailBCPos } = platform || {};\n console.log(this.dto, 'dto==========');\n this.paymode.checkList = [];\n _each(this.dto.RetailPaymentDetails,(detail)=>{\n let themode=_find(this.paymode.paymodes,{'idSettleStyle':detail.IdsettleStyle});\n if (detail.SettleStyle.Code === PayStyle.hyczk && !themode) {\n ModalWraper.info({\n title: '温馨提示',\n content: '没有储值结算方式,请在后台添加储值余额结算方式。',\n okText:'确定',\n okType:'primary'\n });\n }\n if(themode && themode.paymentType && themode.paymentType!=PayStyle.hyczk){\n let newmode={\n ...this.genNewMode(themode.paymentType,false,detail.Amount),\n authCode:detail.PaymentCode,\n steadCashIntegral:detail.SteadCashIntegral,\n overchargesAmount:detail.OverchargesAmount,\n boriginReturn:true,\n thirdPaymentReturnInfo: detail.ThirdPaymentReturnInfo\n };\n this.paymode.currentMode=newmode;\n if(themode.paymentType==PayStyle.djq){\n _each(this.dto.RetailCouponDetails,(djq)=>{\n if (isNewRetailBCPos) {\n const { displayText, promoRuleId, dateMount, promoMethodEnum, discountPct, promoId, id } = djq || {};\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null,djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,\n this.dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n null,\n id,\n true);\n return;\n }\n this.addDjq(djq.CouponCode, djq.CouponTitle, true, null, djq.ReductionAmount, djq.EnableAmount, djq.LastTS, true, false,);\n })\n }\n this.paymode.thePaymodes.push(newmode)\n }\n })\n _each(this.dto.RetailStorageDetails,(detail)=>{\n let balanceAmount = null;\n let storageCardNo = null;\n let meStorageCardId = null;\n detail.DynamicPropertyKeys.forEach((ele, index) => {\n if (ele === \"mestoragecard\") {\n balanceAmount = detail.DynamicPropertyValues[index].BalanceStorage - detail.StoragePaymentAmount;\n storageCardNo = detail.DynamicPropertyValues[index].StorageCardNo;\n meStorageCardId = detail.DynamicPropertyValues[index].MeStorageCardId;\n }\n })\n let newmode={\n ...this.genNewMode(PayStyle.hyczk,false,detail.StoragePaymentAmount),\n member:new Member(detail.Member ? detail.Member :null),\n authCode:detail.Password ? detail.Password: null,\n balance:balanceAmount,\n boriginReturn:true,\n meStorageCardId: meStorageCardId ? meStorageCardId : detail.MeStorageCardId,\n storageCardNo: storageCardNo ? storageCardNo : detail.StorageCardNo\n };\n this.paymode.thePaymodes.push(newmode)\n })\n this.paymode.calcReserved();\n }\n\n clean(){\n this.bquick=false;\n this.paymode.clean();\n }\n\n @action quickSettle(key){\n this.addPay(key,null, true);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type, bookType){\n const { PayStyle } = enumController.getEnumOj();\n this.paymode.currentFocus=type;\n if(this.paymode.currentMode){\n if(type==PayStyle.jfdx){\n if(this.newStyle){\n let index=_findIndex(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.jfdx});\n this.paymode.thePaymodes.splice(index,1,this.paymode.currentMode);\n this.paymode.calcReserved();\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n\n //抵现积分\n tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount: this.paymode.currentMode.value,\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\n this.paymode.currentMode.steadCashIntegral=result.Integral;\n this.paymode.currentMode.overchargesAmount=result.Amount-this.paymode.currentMode.value;\n });\n }else{\n this.addPayDirectly(this.paymode.currentMode);\n }\n }else{\n this.addPay(type, bookType);\n }\n }\n\n // 设置密码后更新会员信息\n @action updateMemberInfo = async (_this) => {\n const { IdStore, StoreCode } = this.getLoginInfo();\n const resp = await tApi({ Idmember: this.member.ID, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\n _this.member = resp;\n _this.paymode.updateMemberStorageCardNo(resp.StorageCardNo, resp.WalletEnabled);\n return Promise.resolve(resp);\n }\n\n @action updateCurrentMode = async (memberId) => {\n // 查看会员卡信息\n let result = await ccApi({},`/marketingtool/MeStorageCard/getCardInfoByMemberId/${memberId}/${true}`,false, false, { method: 'get' })\n if (result && result.data.length) {\n if (result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n // result.data.forEach((m) => {\n // if (m.CardTypeEnum === 'BALANCE_CARD') {\n // // 会员概念改为卡,把这些字段都放开\n // this.paymode.updateCardInfo(m);\n // }\n // })\n }\n }\n\n @action updateCardInfo = async () => {\n let address = `/marketingtool/MeStorageCard/getCardInfoByCardNo/${this.paymode.currentMode.storageCardNo}`;\n let result = await ccApi({}, address, false, false, { method: 'get', timeout_skip: true })\n this.paymode.updateCardInfo(result.data);\n }\n\n getLoginInfo() {\n return stores.user.options.get('loginInfo');\n }\n\n handleCzkData = (m) => {\n if(!m || !m.StorageCardNo){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.memberId = m.ID;\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n const sum = _reduce(this.paymode.thePaymodes, (total, cur) => total + cur.value, 0)\n // 对于卡不用判断会员的一些信息\n // if (global.CheckMemberStorageProcessorBlock ) {\n // message= CheckMemberStorageProcessorBlock.execute(m);\n // }\n if (!String.isNullOrEmpty(message)) {\n this.paymode.currentMode.errinfo=message;\n }\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\n this.paymode.currentMode.errinfo=\"余额不足\";\n }else if(this.paymode.amount>0 && parseFloat(this.paymode.amount) !== sum && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n setTimeout(() => {\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.select();\n }, 300)\n }\n });\n }\n }\n\n loadCzk(v){\n if(_trim(v)===\"\"){\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"请输入储值卡\";\n });\n return;\n }\n const IdStore=this.storeInfo.storeID;\n const StoreCode=this.storeInfo.storeCode;//_find(this.storeInfo.storeInfos,(store)=>{return store.ID==IdStore;}).Code;\n const { isNewRetailBCPos } = platform || {};\n let address = ''\n if (isNewRetailBCPos) {\n // address = '/member/memberProfile/FindByStorageCode/'+v;\n address = `/marketingtool/MeStorageCard/getCardInfoByCardNo/${v}/${true}`;\n return ccApi({code:v}, address, false, false, { method: 'get', timeout_skip: true })\n .then(async(result)=>{\n let data=result.data;\n let m=(data && data.length && data[0]);\n if (result && result.data.length) {\n if (result.data.length === 1) {\n if (m.CardTypeEnum === 'BALANCE_CARD') {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m);\n return result.data;\n } else {\n // 校验储值卡是否可用\n await ccApi({dto:this.dto,meStorageCardId:m.MeStorageCardId}, '/retail/RetailPos/validateRetailStorageCard', false, false)\n .then((result1) => {\n let data1 = result1.data ? JSON.parse(result1.data)[0] : {};\n if (data1.enable) {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m)\n return result1.data;\n } else {\n Message.warn(data1.disableReason);\n }\n })\n }\n } else {\n if (result.data && result.data.length === 1) {\n this.paymode.updateCardInfo(result.data[0]);\n return result.data;\n } else if (result.data && result.data.length > 1) {\n return result.data;\n } else {\n Message.warn('没有可用储值卡!');\n return false;\n }\n }\n // result.data.forEach((m) => {\n // if (m.CardTypeEnum === 'BALANCE_CARD') {\n // // 会员概念改为卡,把这些字段都放开\n // this.paymode.updateCardInfo(m);\n // }\n // })\n }\n })\n } else {\n address = 'AA.DR.newRetailMember.SearchMember'\n return tApi({SearchParams:{Key:v,IsSingleMember:true,IdStore,StoreCode}}, address, false, false)\n .then((result)=>{\n let data=JSON.parse(result.Data);\n let m=data && data.length>0 && data[0];\n if(!m || !m.ID){\n runInAction(()=>{this.paymode.currentMode.errinfo=\"无效的会员卡号\";});\n }\n else{\n runInAction(()=>{\n this.paymode.currentMode.errinfo=\"\";\n this.paymode.currentMode.member = new Member( m )\n this.paymode.currentMode.value=getFixedNumber(this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0));\n this.updateEvent();\n let message='';\n if (global.CheckMemberStorageProcessorBlock ) {\n message= CheckMemberStorageProcessorBlock.execute(data[0]);\n }\n if (!String.isNullOrEmpty(message)) {\n this.paymode.currentMode.errinfo=message;\n }\n else if(this.checkReceived(this.paymode.currentMode,\"balance\")){\n this.paymode.currentMode.errinfo=\"余额不足\";\n }else if(this.paymode.amount>0 && this.paymode.currentMode.value==0){\n this.paymode.currentMode.errinfo=\"实收金额必须录入\";\n } else {\n // 查询成功后将焦点移入下一个输入框\n const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.focus();\n }\n });\n }\n })\n }\n }\n getCouponList = coupon_code => {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n const couponApplyRule = PosInitData('CouponApplyRule');\n const { CouponApplyRule } = enumController.getEnumOj();\n if((couponApplyRule == CouponApplyRule.SHOWN_BY_CUSTOMER && !!coupon_code) || couponApplyRule != CouponApplyRule.SHOWN_BY_CUSTOMER){\n let dto = this.dto;\n let promoVoucher = {};\n this.paymode.clearDjqs();\n this.paymode.reCalculationDjqs();\n promoVoucher.coupon_code = coupon_code || \"\";\n promoVoucher.boName = \"Retail\";\n promoVoucher.voucherId = dto.ID;\n let onlinePaymentAmount=0;\n if(dto.OnlinePaymentAmount)\n {\n onlinePaymentAmount=dto.OnlinePaymentAmount;\n }\n promoVoucher.promoLinks = _filter(this.paymode.currentMode.djqs,djq=>djq.checked);\n promoVoucher.totalAmountWithTax =Math.Minus(dto.TotalTaxAmount,onlinePaymentAmount);\n promoVoucher.redBlueFlagEnum = \"BLUE\";\n promoVoucher.meMemberId = dto.Idmember;\n promoVoucher.storeFactorId = dto.Idstore;\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n //}\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n\n return ccApi({\n ...promoVoucher\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\n .then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element)=>{\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if (result.IsRepelWithPoints && _find(this.paymode.thePaymodes, (themode) => { return themode.paymentType == PayStyle.jfdx; })) {\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else {\n let IsEnable = (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n this.addDjq(\n couponCode,\n name,\n IsEnable,\n promoMethodEnum == \"CASH_COUPON\" && nominalAmount,\n promoDiscount,\n condValue,\n null,\n false,\n !result.IsRepelWithPoints,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n true, 1)\n }\n })\n if(promoVoucher.coupon_code){\n this.paymode.calcDjqCheckValue(this.paymode.currentMode.djqs[0], this.dto, 'single')\n }\n }else{\n if (promoVoucher.coupon_code) {\n Message.info(`${Differentiate.COUPON}号不存在!`);\n this.getCouponList();\n } else {\n Message.info(`没有找到可使用的${Differentiate.COUPON}!`)\n }\n }\n })\n }\n }\n\n getSettleGift = () => {\n return ccApi({ }, `/marketingtool/paygift/executeRightsForPos/${this.billID}`, false, false, { method: 'get', timeout_skip: true });\n }\n\n getRefWareHouseList = () => {\n return ccApi({}, `/retail/RetailPos/getRefWareHouseList`, false, false);\n }\n\n checkCoupon = async (sn) => {\n let { isNewRetailBCPos } = platform || {};\n if (isNewRetailBCPos) {\n return await this.getCouponList(sn, 'sinlge');\n } else {\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n return tApi({request:{\n Uid:this.paymode.currentMode.member.uid || '',\n SN:sn,\n StoreCode:this.dto.Idstore,\n Inventories:_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0 && !d.IsPresent}),(detail)=>{return {\n IdInventory:detail.Inventory.ID,\n IdUnit:detail.Idunit,\n Code:detail.Inventory.Code,\n FreeItem0:JSON.getCellValue(detail,\"freeitem0\"),\n FreeItem1:JSON.getCellValue(detail,\"freeitem1\"),\n FreeItem2:JSON.getCellValue(detail,\"freeitem2\"),\n FreeItem3:JSON.getCellValue(detail,\"freeitem3\"),\n FreeItem4:JSON.getCellValue(detail,\"freeitem4\"),\n FreeItem5:JSON.getCellValue(detail,\"freeitem5\"),\n FreeItem6:JSON.getCellValue(detail,\"freeitem6\"),\n FreeItem7:JSON.getCellValue(detail,\"freeitem7\"),\n FreeItem8:JSON.getCellValue(detail,\"freeitem8\"),\n FreeItem9:JSON.getCellValue(detail,\"freeitem9\"),\n }}),\n // inventoryCodes:_join(_map(this.dto.RetailDetails,(detail)=>{return detail.Inventory.Code;}),','),\n InventoryClassCodes:_join(_map(_filter(this.dto.RetailDetails,(d)=>{return d.Quantity>0}),(detail)=>{return (detail.Inventory.InventoryClass||{Code:''}).Code;}),','),\n Amount:this.paymode.amount\n }}, 'chanjet.AA.DR.coupon.CheckCoupon', false, false)\n .then((result)=>{\n if(_find(this.paymode.currentMode.djqs,(djq)=>{return djq.code==result.SN})){\n Message.info(`${Differentiate.COUPON}已添加`);\n }else if(result.IsRepelWithPoints && _find(this.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.jfdx;})){\n Message.error(`${Differentiate.COUPON}(${result.SN})不可与积分一起使用`);\n }\n else{\n this.addDjq(\n result.SN,\n result.Title,\n result.ReduceAmount,\n result.StartAmount,\n result.LastTS,\n false,\n !result.IsRepelWithPoints,\n result.UMemberID)\n }\n\n })\n }\n }\n @action addDjq(\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n unCheck,count\n ){\n let djq={\n code: promoCouponCode,\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,//:\"无门槛\"\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired, //还剩多少过期\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id,\n count: (count === 1 && (couponCategoryEnum === 'RIGUP' || couponCategoryEnum === 'UN_MATCH' || couponCategoryEnum === \"PREPARING\" || couponCategoryEnum === 'PROMO_LIMITED' || couponCategoryEnum === 'COUPON_CONFLICT') ? 1 : null)\n };\n this.paymode.currentMode.djqs.push(\n djq\n );\n // let copyData = _clonedeep(this.data[targetIndex]);\n !unCheck && !this.boriginReturn && this.paymode.calcDjqValue(djq);\n }\n\n setCurrentMode(id,type,append){\n const { PayStyle } = enumController.getEnumOj();\n const mode=_find(this.paymode.thePaymodes,{paymethodId:id});\n if(mode){\n this.paymode.currentMode=mode;\n if(this.newStyle){\n this.afterSetCurrentMode(type);\n }\n }else{\n this.paymode.currentMode=this.genNewMode(type,append);\n this.afterSetCurrentMode(type);\n }\n }\n afterSetCurrentMode(type){\n const { PayStyle } = enumController.getEnumOj();\n if(type==PayStyle.djq){\n this.paymode.calcDjqValue();\n }else if(type==PayStyle.jfdx){\n //获取可兑换的金额\n if(this.newStyle){\n const themode=_find(this.paymode.thePaymodes,{paymentType:PayStyle.jfdx});\n if(themode && parseFloat(themode.value||0)!=0){\n this.paymode.currentMode.value=themode.value;\n }\n }\n\n //积分抵现不包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let IdbusiType = this.dto.IdbusiType;\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0){\n value = getFixedNumber(Math.Minus(this.paymode.amount, BuyerPayFreight))\n } else if (IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n //预订场景下:现场提货,且订金比例非100%时,积分抵现按全款计算(因为只有全款才能使用积分抵现)\n value = this.paymode.bookMaxValue;\n } else {\n value = this.paymode.amount;\n }\n\n tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:value,\n BalanceTaxAmount:value,\n }}, 'AA.DR.newRetailMember.CalculdateIntegralSteadCash', false, false).then((result)=>{\n this.paymode.currentMode.member.setExchangable(result.MaxAmount);\n this.updateEvent();\n if(this.checkReceived(this.paymode.currentMode,\"exchangable\")){\n runInAction(()=>{this.paymode.currentMode.errinfo='余额不足'})\n }\n });\n\n }\n }\n\n\n checkReceived(mode,name){\n return !this.brefund && parseFloat(mode.value)>parseFloat(mode.maxamount || mode.member[name]||0);\n }\n\n genNewMode(type,notwithm,v,isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let value=getFixedNumber(v || (this.brefund?this.paymode.receivable:Math.max(this.paymode.receivable,0)));\n let themode=_find(this.paymode.paymodes,{'paymentType':type});\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\n const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\n thridPayment: themode.thridPayment,\n value,\n value2:getFixedNumber(themode.calDirection==\"88\"?value / themode.exchangeRate:(value * themode.exchangeRate)),\n value3:value,\n order:this.paymode.thePaymodes.length+1,\n paymentType:type,\n djqs:[],\n card: null,\n memberId: !notwithm?memberId:null,\n member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\n virtualPay: themode.virtualPay\n });\n if(type==PayStyle.hyczk){\n if(!mode.storageCardNo){\n runInAction(()=>{mode.errinfo='未录入手机号或储值卡号'})\n }else if(this.checkReceived(mode,\"balance\")){\n runInAction(()=>{mode.errinfo='余额不足'})\n }\n\n }\n if(type==PayStyle.hyczk || type==PayStyle.jfdx || type==PayStyle.djq){\n this.setMaxAmount(type,mode);\n }\n console.log(`当前操作结算方式信息:${mode}`);\n return mode;\n }\n\n setMaxAmount(type,mode){\n const { PayStyle } = enumController.getEnumOj();\n let sum=0;\n if(type==PayStyle.hyczk){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==type;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }else if(type==PayStyle.djq || type==PayStyle.jfdx){\n _each(_filter(this.paymode.thePaymodes,(m)=>{return m.paymentType==PayStyle.djq || m.paymentType==PayStyle.jfdx;}),(q)=>{\n sum=Math.Add(sum,q.value);\n });\n }\n\n this.amountHandler && this.amountHandler(type).then(()=>{\n runInAction(()=>{\n\n //预售储值结算应包含运费\n let BuyerPayFreight = this.dto.BuyerPayFreight;\n let DistributionMode = this.dto.DistributionMode;\n let value = 0;\n if((DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 && type == PayStyle.hyczk){\n value = getFixedNumber(parseFloat(this.context.viewModel.getViewItem('Voucher').availableAmount) + parseFloat(BuyerPayFreight))\n } else {\n value = this.context.viewModel.getViewItem('Voucher').availableAmount;\n }\n mode.maxamount=getFixedNumber(Math.Minus(value,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n }\n\n @action changeClickFocusOnly(type) {\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n if(mode){\n const shouldSetValue =getFixedNumber(parseFloat(this.paymode.receivable) + parseFloat(mode.value));\n mode.value = shouldSetValue;\n mode.value2 = getFixedNumber(mode.calDirection==\"88\"?shouldSetValue / mode.exchangeRate:(shouldSetValue * mode.exchangeRate));\n mode.value3 = shouldSetValue;\n this.paymode.calcReserved('bookPay'); //参数multiPay代表复合结算\n }\n }\n\n @action changeValue(index,value,blur,type){\n let mode=_find(this.paymode.thePaymodes,{'paymethodId':index});\n let v=blur?getFixedNumber(value) : (isNaN(value)&&value!='-'?0.00:value);\n if(mode){\n if(mode.exchangeRate != 1){\n if(getFixedNumber(mode.calDirection==\"88\"?mode.value3 / mode.exchangeRate:(mode.value3 * mode.exchangeRate)) !=v){\n mode.value=getFixedNumber(mode.calDirection==\"88\"?v*mode.exchangeRate : (v / mode.exchangeRate));\n }\n else{\n mode.value=mode.value3;\n }\n mode.value2=v;\n }else{\n mode.value=v;\n mode.value2=v;\n }\n\n this.paymode.calcReserved(type);\n }\n }\n\n @action addPayDirectly(pay){\n const { PayStyle } = enumController.getEnumOj();\n if(!_find(this.paymode.thePaymodes,{paymethodId:pay.paymethodId})){\n let pos=this.paymode.thePaymodes.length;\n if(pay.paymentType==PayStyle.hyczk){\n let index=_findLastIndex(this.paymode.thePaymodes,(m)=>{return m.paymethodId!=pay.paymethodId && m.paymentType==PayStyle.hyczk});\n pos=index==-1?pos:(index+1);\n }\n // this.paymode.thePaymodes.push(pay);\n this.paymode.thePaymodes.splice(pos,0,pay);\n }\n this.paymode.calcReserved();\n }\n\n @action addPay(type, bookType, isQuick){\n const { PayStyle } = enumController.getEnumOj();\n let pos = this.paymode.thePaymodes.length;\n if (type == PayStyle.hyczk) {\n let index = _findLastIndex(this.paymode.thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk });\n pos = index == -1 ? pos : (index + 1);\n }\n this.paymode.thePaymodes.splice(pos, 0, this.genNewMode(type,this.newStyle && type==PayStyle.hyczk,undefined, isQuick));\n this.paymode.calcReserved(bookType);\n }\n\n @action delPay(index, bookType){\n const { PayStyle } = enumController.getEnumOj();\n _remove(this.paymode.thePaymodes,(mode)=>{\n return mode.paymethodId===index;\n });\n this.paymode.currentFocus = -1;\n this.paymode.calcReserved(bookType);\n }\n\n // 获取储值是否重复, 在commit方法中使用\n findStorageBillValidate () {\n const { PayStyle } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n })\n });\n\n });\n return ccApi(\n {...this.dto},\n '/marketingtool/Storage/findStorageBillValidate',\n false,\n false\n )\n }\n\n //判断是否重复弹框\n repeatStorageModal = (content) => {\n return new Promise((resolve, reject) => {\n ModalWraper.confirm({\n title: '',\n okText: '继续储值',\n className: 'repeat-modal',\n zIndex: 1007,\n content,\n onOk: async () => {\n let ret = await this.saveMember();\n if (ret === false) {\n resolve(false)\n } else {\n resolve(true)\n }\n },\n onCancel() {\n resolve(false)\n }\n })\n })\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:' + bTest);\n if (bTest) {\n return Promise.resolve(true);\n }\n const status = this.type;\n try {\n const paylist = this.paymode.thePaymodes.filter(v => !!v.thridPayment && Math.abs(v.value) > 0) || [];\n if (paylist && paylist.length > 1) {\n Message.warn('二开支付目前仅支持单一结算方式。');\n return Promise.resolve(false);\n }\n if (status == 1) {\n const ret = await this.findStorageBillValidate();\n const { data: { code, returnMsg } = {} } = ret || {}\n if (code && code == 10001) {\n const state = await this.repeatStorageModal(returnMsg);\n if (state === false) return Promise.resolve(false);\n } else {\n let ret1 = await this.saveMember();\n if (ret1 === false) {\n Promise.resolve(false);\n }\n }\n } else {\n await stores.offlineSys.generatorCode(this.dto);\n let ret2 = await this.save();\n if (ret2 === false) {\n return Promise.resolve(false);\n }\n await stores.offlineSys.retailSequenceUpload();\n }\n return Promise.resolve(true);\n } catch (err) {\n console.error('settlementStore.commit失败,错误信息:' + err);\n //其他支付失败时,处理二开支付情况。\n this.thirdPayRefund(status == 1 ? 2 : 1);\n return Promise.resolve(err);\n }\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{})\n }\n\n async saveMember(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.StorageMutiSettleDetails=[];\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.StorageMutiSettleDetails.push({\n Code:mode.paymethodId,\n StorageAmount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n PaymentCode:mode.authCode,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n });\n\n });\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n let dtoParams = this.dto;\n //处理存在二开支付情况\n let payList = dtoParams.StorageMutiSettleDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.StorageAmount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(2, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('储值结算信息:', dtoParams);\n return tApi({ dto: dtoParams }, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp) => {\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle, TradeType } = enumController.getEnumOj();\n runInAction(()=>{\n this.dto.RetailPaymentDetails=[];\n this.dto.RetailStorageDetails=[];\n this.dto.RetailCouponDetails=[];\n let czkSum=0;\n let count = 0;\n const thePaymodes = this.newStyle ?_filter(this.paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):this.paymode.thePaymodes;\n _each(thePaymodes,(mode, index)=>{\n const themode=_find(this.paymode.paymodes,{'paymentType':mode.paymentType});\n if(mode.paymentType==PayStyle.hyczk){\n czkSum=Math.Add(czkSum,mode.value);\n this.dto.RetailStorageDetails.push({\n Code:mode.paymethodId,\n MeStorageCardId: mode.meStorageCardId,\n StoragePaymentAmount:mode.value,\n IsOrigReturn:false,\n BalanceStorage:mode.balance,\n Idmember:mode.memberId,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n Password:mode.authCode,\n })\n }else{\n let value=parseFloat(mode.value);\n let giveChange=null;\n if(mode.paymentType==PayStyle.xianjin && this.paymode.receivable<0 && value>Math.abs(this.paymode.receivable)){\n value=Math.Add(value,this.paymode.receivable);\n giveChange=Math.abs(this.paymode.receivable);\n }\n this.dto.RetailPaymentDetails.push({\n Code:mode.paymethodId,\n OrigAmount:mode.exchangeRate!=1?mode.value2:value,\n Amount:value,\n GiveChange:giveChange,\n IdsettleStyle:themode.idSettleStyle,\n IdbankAccount:themode.idBankAccount,\n Idcurrency:themode.idCurrency,\n ExchangeRate:themode.exchangeRate,\n PaymentCode:mode.authCode,\n SteadCashIntegral:mode.steadCashIntegral,\n OverchargesAmount:mode.overchargesAmount,\n DynamicPropertyKeys:[],\n DynamicPropertyValues:[],\n DataSource:{Id:this.dataSource},\n ThirdPaymentInfo: themode.thridPayment || null,\n ThirdPaymentReturnInfo:mode.thirdPaymentReturnInfo || null\n })\n if(mode.paymentType==PayStyle.djq){\n _each(this.paymode.checkList && this.paymode.checkList.length ? this.paymode.checkList: mode.djqs,(djq)=>{\n this.dto.RetailCouponDetails.push({\n CouponCode:djq.promoCouponCode,\n ReductionAmount:djq.amount,\n EnableAmount:djq.doorsill,\n CouponTitle:djq.name,\n IdMember:djq.UMemberID?mode.memberId:null,\n LastTS:djq.LastTS,\n PromotionId:djq.promoId,\n PromotionRuleId:djq.promoRuleId,\n PromoCouponAllocatedId:djq.id,\n DataSource:{Id:this.dataSource},\n })\n })\n }\n }\n });\n if (this.dto.RetailStorageDetails.length > 0) {\n const themode = _find(this.paymode.paymodes, { 'paymentType': PayStyle.hyczk });\n this.dto.RetailPaymentDetails.push({\n Code: this.paymode.counter,\n OrigAmount: czkSum,\n Amount: czkSum,\n IdsettleStyle: themode.idSettleStyle,\n IdbankAccount: themode.idBankAccount,\n DynamicPropertyKeys: [],\n DynamicPropertyValues: [],\n DataSource: { Id: this.dataSource },\n RetailStorageDetails: this.dto.RetailStorageDetails,\n })\n }\n });\n console.log(`结算数据:`, this.dto);\n // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n const RetailTypeEnum = this.dto.IdbusiType == 36 ? \"INTEGRAL_EXCHANGE\" : \"NORMAL\";\n const { PreSellOrBook, PercentageWhenBook } = this.getLoginInfo();\n const { IdbusiType, DistributionMode } = this.dto || {};\n if(IdbusiType == 38 && PreSellOrBook == 'BOOK' && PercentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\n let prepaidAmount = getFixedNumber(this.dto.RetailPaymentDetails.reduce((c, item) => c + (item.Amount || 0), 0));\n let fullPayment = getFixedNumber(this.dto.RetailDetails.reduce((c, item) => c + (item.TaxAmount || 0), 0));\n this.isFull = fullPayment == prepaidAmount; // 是否全款\n runInAction(()=>{\n this.dto.PrepaidAmount = prepaidAmount;\n });\n }\n if (this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37) {\n let dtoParams = { ...this.dto.cut(), RetailOms: { RetailTypeEnum } };\n //处理存在二开支付情况\n let payList = dtoParams.RetailPaymentDetails.filter(v => v.ThirdPaymentInfo);\n if (payList && payList.length > 0) {\n let payment = payList[0];\n let tradeType = payment && payment.Amount > 0 ? TradeType.PAY : TradeType.REFUND;\n const ret = await this.thirdPay(1, payment, tradeType, dtoParams);\n const { type, data, msg, code } = ret || {};\n if (type === true) {\n dtoParams = data;\n } else {\n Message.warn(`刷卡支付失败,错误码:${code}`);\n return false;\n }\n }\n this.dtoParams = dtoParams;\n console.log('结算信息:', dtoParams);\n return ccApi({ dto: dtoParams, cip: IPMSG.query || \"\" }, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n const { ID } = resp || {};\n this.setDtoID(ID);\n this.billID = ID;\n this.paymode.checkList = [];\n })\n }\n }\n\n //裁剪二开支付数据\n removeThirdPayDto(dto) {\n let data = {...dto};\n delete data['DynamicPropertyKeys'];\n delete data['DynamicPropertyValues'];\n return data;\n }\n\n /**\n * 二开支付\n * vType:1零售单、2储值单\n * payment:结算方式\n * trade:00表示结算、02表示退款\n * dto:结算数据集合\n */\n async thirdPay(vType, payment, trade, dto) {\n try {\n let cto = this.removeThirdPayDto(dto);\n const params = { VoucherType: vType, Payment: payment, TradeType: trade, dto: cto };\n console.log('刷卡信息:', JSON.stringify(params));\n let ret = await new Promise((resolve, reject) => {\n nativeMs.setIpcRendererMethod('ThirdPayment', { ...params }, res => {\n return resolve(res);\n })\n })\n console.log('刷卡返回信息:', ret);\n ret = JSON.parse(ret);\n const { Code, Message, Result } = ret || {};\n if (Code > 0) {\n return { type: false, data: null, msg: Message, code: Code };\n } else if (trade == '00') {\n const { ThirdPaymentReturnInfo } = Result || {};\n if (vType == 1) {\n dto.RetailPaymentDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.Amount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n } else if (vType == 2) {\n dto.StorageMutiSettleDetails.forEach(v => {\n if (v.ThirdPaymentInfo != null && Math.abs(v.StorageAmount) > 0) {\n v.ThirdPaymentReturnInfo = ThirdPaymentReturnInfo;\n }\n })\n }\n return { type: true, data: dto, msg: Message, code: Code };\n } else if (trade == '02') {\n return { type: true, data: dto, msg: Message, code: Code };\n }\n } catch (ex) {\n return { type: false, data: null, msg: ex, code: '9999' }\n }\n }\n\n //二开支付强制退款情况\n async thirdPayRefund(type) {\n const dto = (type == 1) ? this.dtoParams.RetailPaymentDetails : this.dtoParams.StorageMutiSettleDetails;\n const pay = dto && dto.filter(v => v.ThirdPaymentInfo);\n if (pay && pay.length > 0) {\n setTimeout(() => {\n Message.warn(\"支付出现异常,将发起刷卡退款。\", { duration: 4.5 })\n }, 1000);\n const payment = pay[0];\n const { TradeType } = enumController.getEnumOj();\n setTimeout(async () => {\n let ret = await this.thirdPay(type, payment, TradeType.REFUND, dto);\n const { msg } = ret || {};\n console.log(`刷卡支付退款:${msg}`);\n }, 4500);\n }\n }\n\n\n @action setDtoID(id){\n this.context.viewModel.data.ID=id;\n }\n\n checkIntegralExchangeReturn = (id) => {\n return new Promise((resolve, reject) => {\n tApi({param: {refVoucherId:id}}, 'chanjet.RE.NewPos.GetNewIntegralExchange', false, false,{timeout_skip:true}).then((resp) => {\n if( resp && resp.expireIntegral>0){\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: \"温馨提示\",\n content:`存在已经过期的积分${resp.expireIntegral}退货后积分不会返还。是否继续退货?`,\n cancelable: false,\n onOk() {\n resolve(true);\n },\n onCancel() {\n reject(false);\n }\n })\n }else{\n resolve(true);\n }\n })\n })\n }\n\n async querySettleResult(){\n try{\n return Promise.resolve(await tApi({RetailCode: this.dto.Code}, 'chanjet.RE.newRetail.QuerySettleResult', false, false,{timeout_skip:true}));\n }catch(e){\n return Promise.resolve({Flag:\"1\"});\n }\n }\n\n setCookie(key, val) {\n var exp = new Date();\n exp.setTime(moment().endOf('day').valueOf());\n document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();\n }\n\n getAllCookies() {\n var cookies = document.cookie.split(/;\\s/g);\n var cookieObj = {};\n cookies.forEach(function (item) {\n var key = item.split('=')[0];\n cookieObj[key] = item.split('=')[1];\n });\n return cookieObj;\n }\n\n async validePwd(value){\n let { isNewRetailBCPos } = platform || {};\n try{\n if (isNewRetailBCPos) {\n let cook1 = this.getAllCookies()['errorPwd'];\n let cook2 = cook1 && JSON.parse(cook1);\n let message = '密码输入错误';\n let memberStorageId = this.paymode.currentMode.meStorageCardId;\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n if (cook2[memberStorageId] > 3) {\n message = '今日密码错误已达上限,不可使用储值消费,请明日再试,如忘记请重置密码或修改密码。';\n return Promise.resolve(message);\n }\n }\n }\n const {cardTypeEnum, memberId, meStorageCardId, cardStatusEnum} = this.paymode.currentMode;\n let result = null;\n if (cardTypeEnum === 'BALANCE_CARD') {\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${memberId}`, false, false);\n } else {\n if (cardStatusEnum === 'BINDING' && this.member && this.member.ID === memberId) {\n result = await ccApi({md5Password: User.pwdEncrypt(value.pwd), password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\n } else {\n result = await ccApi({password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\n }\n }\n if (!result.data) {\n if (cook2) {\n if (cook2.hasOwnProperty(memberStorageId + \"\")) {\n let count = cook2[memberStorageId];\n cook2[memberStorageId] = count + 1;\n } else {\n cook2[memberStorageId] = 1;\n }\n } else {\n cook2 = {};\n cook2[memberStorageId] = 1;\n }\n this.setCookie('errorPwd', '', -1);\n this.setCookie('errorPwd', JSON.stringify(cook2));\n }\n return Promise.resolve(result.data?\"\":message);\n } else {\n const result = await tApi({\"CheckoutParams\": {\n \"Idmember\": value.id,\n \"Password\":value.pwd\n }}, 'AA.DR.newRetailMember.CheckoutMemberPassword', false, false);\n return Promise.resolve(result.Success?\"\":result.Message);\n }\n }catch(e){\n return \"failed\";\n }\n }\n}\n\nexport class PayMode{\n _counter=0\n amount=0 //应收\n onlineamount=0\n maxamount=0;\n @observable currentFocus=\"\"\n @observable received=0;\n @observable receivable=0;\n @observable paymodes =[]\n @observable thePaymodes=[]\n bookMaxValue=0;\n isNotFullBook=false; //预订场景下,现场提货,且选项设置订金比例非100% or 取货最大补款数大于0时 为 true\n isNotFullOnlyBook=false; //只是预订场景下,现场提货,且选项设置订金比例非100%时 为 true\n @observable storageCardNo = null;\n @observable balance = null;\n // @observable store = null;\n currentMode=null;\n checkList = [];\n updateEvent\n settle={\n name:\"复合结算\",\n hotKey:\"Ctrl+M\",\n }\n constructor (){\n // this.amount=getFixedNumber(amount);\n // this.calcReserved();\n }\n\n @action clean(){\n this.thePaymodes=[];\n this.calcReserved();\n }\n\n @action clear(){\n this.thePaymodes=[];\n this.calcReserved();\n this.paymodes = [];\n }\n\n setAmount(a,o){\n this.amount=getFixedNumber((a || 0)-(o || 0));\n this.onlineamount=getFixedNumber(o || 0);\n this.calcReserved();\n return this.amount<0;\n }\n\n @action calcReserved(type){\n var sum=0;\n _each(this.thePaymodes,(mode)=>{\n sum=Math.Add(sum,(mode.value==\"\"?0:mode.value));\n });\n this.received = getFixedNumber(sum);\n if(type === 'bookPay' && this.isNotFullBook){\n if ( this.amount <= sum && sum <= this.bookMaxValue){\n this.receivable = getFixedNumber(0);\n }\n if (sum < this.amount){\n this.receivable = getFixedNumber(this.amount - sum);\n }\n if (sum > this.bookMaxValue){\n this.receivable = getFixedNumber(this.bookMaxValue - sum);\n }\n }else{\n this.receivable = getFixedNumber(this.amount - sum);\n }\n }\n\n @action calcCheckList = () => {\n this.checkList = [];\n }\n\n @action updateMemberStorageCardNo(storageCardNo, walletEnabled) {\n this.currentMode.storageCardNo = storageCardNo;\n this.currentMode.walletEnabled = walletEnabled;\n }\n\n @action updateCardInfo(m) {\n this.currentMode.cardStatusEnum = m.CardStatusEnum;\n this.currentMode.isNeedPassword = m.IsNeedPassword;\n this.currentMode.meStorageCardId = m.MeStorageCardId;\n this.currentMode.storageCardNo = m.StorageCardNo;\n this.currentMode.balance = m.BalanceStorage;\n this.currentMode.rawbalance = m.BalanceStorage;\n this.currentMode.cardTypeEnum = m.CardTypeEnum;\n this.currentMode.walletEnabled = m.WalletEnabled;\n this.currentMode.memberId = m.ID;\n this.currentMode.freePaymentPasswordStore = m.FreePaymentPasswordStore;\n }\n\n @action calcDjqCheckValue(q1, dto, params) {\n let useLimitPerOrder = PosInitData('UseLimitPerOrder');\n let qList = _filter(this.currentMode.djqs,djq=>djq.checked);\n if (qList.length === useLimitPerOrder && !q1.checked) {\n Message.warn('本单最多可用'+useLimitPerOrder+'张');\n return;\n }\n if (params === 'single') {\n this.checkList = [];\n }\n\n let { isNewRetailBCPos } = platform || {};\n const { PayStyle, Differentiate } = enumController.getEnumOj();\n\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.promoCouponCode==q1.promoCouponCode});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n if (!q1.checked) {\n this.checkList.forEach((ele, i) => {\n if (ele.id === q1.id) {\n this.checkList.splice(i, 1);\n }\n })\n } else {\n this.checkList.push(q1);\n }\n\n this.checkList.forEach((ele) => {\n sum=Math.Add(sum,ele.amount);\n })\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n console.log(this.receivable, sum, Math.min(this.receivable,sum,this.currentMode.maxamount), 'sum---------');\n this.currentMode.receivable = getFixedNumber(this.receivable - Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n if (params === 'single') {\n return;\n }\n let promoVoucher = {};\n promoVoucher.boName = \"Retail\";\n // promoVoucher.promoLinks = _filter(this.currentMode.djqs,djq=>djq.checked);\n promoVoucher.meMemberId = this.currentMode.member.id;\n promoVoucher.storeFactorId = PosInitData('storeID');\n promoVoucher.voucherDetailList = [];\n dto.RetailDetails.forEach(item => {\n let detailDTO = {};\n detailDTO.uuid = item.Code;\n detailDTO.detailBoName = \"RetailDetail\";\n detailDTO.voucherDetailId = item.ID;\n detailDTO.productId = item.Idinventory;\n detailDTO.uomId = item.Idunit;\n detailDTO.productSpecId=item.ProductSpecId;\n detailDTO.isManualFreeGift = item.IsPresent;\n detailDTO.isListPriceIncludingTax = item.TaxFlag || true;\n detailDTO.IsManualChangePrice = item.IsManualChangePrice;\n\n\n\n\n // if(detailDTO.IsManualChangePrice)//如果是手工改价\n // {\n // detailDTO.listPrice = item.TaxPrice;\n // detailDTO.netAmountWithTax = item.TaxAmount;\n // }\n // else\n // {\n\n let bookingQuantity=0;\n if(item.BookingQuantity)\n {\n bookingQuantity=item.BookingQuantity;\n }\n detailDTO.listPrice = JSON.getCellValue(item, \"listPrice\");\n detailDTO.netAmountWithTax = Math.Multiply(detailDTO.listPrice,Math.Minus(item.Quantity,bookingQuantity));//item.TaxAmount;\n detailDTO.taxRate = item.TaxRate;\n detailDTO.quantity = item.Quantity;\n\n detailDTO.amountWithTax = item.RetailAmount;\n // 促销 start\n if(item.PromotionDetails && item.PromotionDetails.length != 0){\n let promoLinks = [];\n item.PromotionDetails.forEach((promotion)=>{\n promoLinks.push({\n promoId:promotion.IdSalesPromotionDTO,\n promoRuleId:promotion.PromotionRuleId\n })\n })\n if(promoLinks.length != 0) detailDTO.promoLinks = promoLinks;\n }\n // 促销 end\n promoVoucher.voucherDetailList.push(detailDTO);\n });\n promoVoucher.promoLinks = this.checkList;\n return ccApi({\n ...promoVoucher\n }, 'promotion/PromoCalculate/findUsefulCouponPromoList', false, false,{method:'post',timeout_skip:true})\n .then((result)=>{\n if(result && result.length != 0 ){\n result.forEach((element, index) => {\n let djq1 = false;\n this.currentMode.djqs.forEach((djq) => {\n if (element.id === djq.id) {\n djq1 = true;\n }\n })\n const { couponCode, name, tieredAmountResult, fromDate , dateMount , promoMethodEnum , discountPct, nominalAmount,promoId,id, doorsill} = element || {};\n const { condValue, promoDiscount,displayText,promoRuleId, couponCategoryEnum } = tieredAmountResult\n if(!djq1) {\n // this.currentMode.djqs.push({\n // promoCouponCode: element.CouponCode,\n // name: element.CouponTitle,\n // IsEnable: true,\n // amount: element.ReductionAmount,\n // doorsill: element.EnableAmount,\n // LastTS: element.LastTS,\n // checked: false,\n // IsRepelWithPoints: true,\n // UMemberID: dto.Idmember,\n // expired: null,\n // displayText,\n // promoMethodEnum,\n // discountPct,\n // promoId,\n // promoRuleId,\n // couponCategoryEnum: tieredAmountResult.couponCategoryEnum,\n // id\n // })\n this.addDjqs(couponCode,name,true,nominalAmount,promoDiscount,doorsill,element.LastTS,false,true,\n dto.Idmember,\n dateMount,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n tieredAmountResult.couponCategoryEnum,\n id);\n djq1 = false;\n } else {\n this.setCouponNum(element.id, couponCategoryEnum, promoMethodEnum, nominalAmount,promoDiscount);\n // this.currentMode.djqs[0].couponCategoryEnum = 'couponCategoryEnum';\n // djq1.couponCategoryEnum = element.tieredAmountResult.couponCategoryEnum\n }\n })\n }\n // 优惠券【6052098985043】与【6120822326451】不可叠加使用\n })\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action setCouponNum = (id, couponNum, promoMethodEnum, nominalAmount,promoDiscount) => {\n this.currentMode.djqs.forEach((ele) => {\n if (ele.id === id) {\n ele.amount = promoDiscount;\n promoMethodEnum == \"CASH_COUPON\" && (ele.nominalAmount = nominalAmount);\n ele.couponCategoryEnum = couponNum;\n let IsEnable = (ele.couponCategoryEnum === 'RIGUP' || ele.couponCategoryEnum === 'UN_MATCH' || ele.couponCategoryEnum === \"PREPARING\" || ele.couponCategoryEnum === 'PROMO_LIMITED' || ele.couponCategoryEnum === 'COUPON_CONFLICT') ? false : true ;\n ele.IsEnable = IsEnable;\n }\n })\n }\n\n @action addDjqs = (promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id) => {\n let djq={\n promoCouponCode,\n name,\n IsEnable,\n nominalAmount,\n amount,\n doorsill,\n LastTS,\n checked,\n IsRepelWithPoints,\n UMemberID,\n expired,\n displayText,\n promoMethodEnum,\n discountPct,\n promoId,\n promoRuleId,\n couponCategoryEnum,\n id\n };\n this.currentMode.djqs.push(\n djq\n );\n }\n\n @action calcDjqValue(q1){\n let { isNewRetailBCPos } = platform || {};\n const { Differentiate } = enumController.getEnumOj();\n if(q1){\n if(!this.currentMode.boriginReturn && parseFloat(this.currentMode.maxamount)<=0){\n Message.error(`本单没有${Differentiate.COUPON}可用金额,该券不可使用。`);\n return ;\n }\n let q=_find(this.currentMode.djqs,(djq)=>{return djq.code==q1.code});\n if(q && !q.checked && parseFloat(this.amount)<parseFloat(q.doorsill)){\n Message.error(\"本单金额低于使用门槛,该券不可使用。\");\n return ;\n }\n //判断是否是选择优惠券 //CC优惠券只能使用一个\n // if (q1 && !q1.checked && isNewRetailBCPos) {\n // // 检查是否有已经选定优惠券 并且去除选定的优惠券\n // this.currentMode.djqs.forEach((djq, index) => {\n // if (djq.checked) this.currentMode.djqs[index].checked = false;\n // })\n // }\n q && (q.checked = !q.checked);\n }\n var sum=0;\n // console.log(this.store, 'stores-------');\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n\n //this.receivable = getFixedNumber(this.receivable - sum);\n }\n\n @action reCalculationDjqs() {\n var sum=0;\n _each(_filter(this.currentMode.djqs,djq=>djq.checked),(q)=>{\n sum=Math.Add(sum,q.amount);\n });\n this.currentMode.value = getFixedNumber(Math.min(this.receivable,sum,this.currentMode.maxamount));\n this.currentMode.receivable = getFixedNumber(this.receivable -this.currentMode.value);\n this.currentMode.overchargesAmount=getFixedNumber(sum-this.currentMode.value);\n this.currentMode.maxamount = this.currentMode.receivable || this.currentMode.receivable;\n }\n\n @action clearDjqs() {\n this.currentMode.djqs = [];\n }\n\n @action setCurrentModeValue(v,max){\n this.currentMode.value=parseFloat(v) || 0;\n this.currentMode.errinfo='';\n let sum = this.amount;\n const { PayStyle} = enumController.getEnumOj();\n this.thePaymodes && this.thePaymodes.forEach((mode) => {\n if (mode.paymentType === PayStyle.hyczk) {\n sum -= mode.value;\n }\n })\n\n if(this.amount>0 && (v==='' || v==='0.00') && sum !== 0){\n this.currentMode.errinfo=\"实收金额必须录入\";\n }else if(Math.abs(parseFloat(v))>Math.abs(getFixedNumber(sum))){\n this.currentMode.errinfo=\"实收不应大于应收\";\n }else if(parseFloat(v)>0 && parseFloat(v) > (max || 0) ){\n this.currentMode.errinfo=\"余额不足\";\n }\n }\n @action calcMemberBalance(){\n this.currentMode.balance = this.currentMode.rawbalance - this.currentMode.value;\n }\n\n get charge(){\n return Math.abs(this.receivable);\n }\n\n get counter(){\n return ++this._counter;\n }\n\n async setPaymodes(type,isIntegralExchange){\n // 是否移动端判断\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\n const isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n let modes = await tApi({ param }, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n let settleLists = modes.SettleStyles;\n settleLists = isMobileEnvironment ? settleLists.filter(v => !v.ThirdPaymentInfo) : settleLists;\n _each(settleLists, (mode, index) => {\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n if (mode.Code == PayStyle.hyczk) {\n mode.Name = '储值卡';\n }\n paymodes.push({\n name:mode.Name,\n isDefault:mode.IsDefaultSettleStyle,\n isQuick:_findIndex(modes.QuickSettleStyles, {'Code':mode.Code})>=0,\n orderBy:1,\n paymentType:mode.Code,\n offlineDisable:mode.offlineDisable,\n idSettleStyle:mode.IdSettleStyle,\n idBankAccount:mode.IdBankAccount,\n exchangeRate:mode.Currency?mode.Currency.ExchangeRate:1,\n idCurrency:mode.Currency?mode.Currency.ID:-1,\n calDirection:mode.Currency?mode.Currency.CalDirection.Id:\"88\",\n virtualPay: mode.VirtualPay,\n thridPayment: mode.ThirdPaymentInfo,\n })\n })\n this.paymodes = paymodes;\n })\n }\n }\n}\n\nexport class Member{\n id;\n uid;\n @observable cardNo;\n type;\n @observable balance;\n rawbalance;\n needPwd;\n bonusPoints;\n @observable exchangable;\n @observable meStorageCardId;\n @observable storageCardNo;\n constructor(m){\n if(m){\n this.id=m.ID;\n this.uid=m.Uid;\n this.type=m.MemberType?m.MemberType.Name:\"普通\";\n this.rawbalance=m.BalanceStorage;\n let index=_findIndex(m.DynamicPropertyKeys,(key)=>{return key=='canusedbalancestorage';});\n const { isNewRetailBCPos } = platform || {};\n runInAction(()=>{\n this.cardNo=m.CardCode;\n if(index>=0){\n this.balance=parseFloat(m.DynamicPropertyValues[index]);\n }else{\n this.balance=this.rawbalance;\n }\n });\n this.needPwd=m.MemberType?m.MemberType.IsNeedPwd:false;\n this.NeedModifyPassword=m.NeedModifyPassword;\n this.bonusPoints=m.BalanceIntegral;\n }\n }\n @action setExchangable(v){\n this.exchangable=v;\n }\n @action setCardNo(v){\n this.cardNo=v;\n this.id=null;\n }\n}\n\n"]}
|