tplus-components-touch 3.26.10 → 3.26.14

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-components-touch/components/settlement/settlementStore.js"],"names":["t","i18n","getFixedT","SettlementStore","paymode","dto","member","brefund","bquick","boriginReturn","newStyle","handleCzkData","m","StorageCardNo","currentMode","errinfo","memberId","ID","value","receivable","Math","max","updateEvent","message","sum","thePaymodes","total","cur","String","isNullOrEmpty","checkReceived","amount","parseFloat","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","platform","isNewRetailBCPos","addDjq","calcDjqCheckValue","info","getSettleGift","billID","checkCoupon","sn","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","checkIntegralExchangeReturn","resolve","reject","param","refVoucherId","resp","expireIntegral","ModalWraper","confirm","className","title","content","cancelable","onOk","onCancel","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","context","amounthandler","datasource","storeinfo","data","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","DealAmountSettingProcessorBlock","Member","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","console","log","checkList","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okText","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","MeStorageCardId","Password","balance","calcReserved","key","currentFocus","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","Integral","loginInfo","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","rawbalance","cardTypeEnum","walletEnabled","WalletEnabled","counter","exchangeRate","calDirection","value2","value3","order","card","setMaxAmount","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","bTest","saveMember","stores","offlineSys","generatorCode","save","retailSequenceUpload","DoNameList","DO_STORAGE_PRINT","StorageMutiSettleDetails","giveChange","xianjin","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","Id","IPMSG","window","localStorage","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","IdbusiType","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","memberStorageId","hasOwnProperty","password","User","pwdEncrypt","pwd","cardType","setCookie","Success","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","getLoginInfo","updateMemberStorageCardNo","_counter","onlineamount","settle","hotKey","a","o","received","isNeedPassword","IsNeedPassword","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","settleStyleType","memberStoreCode","settlementCode","modes","SettleStyles","Name","isDefault","IsDefaultSettleStyle","isQuick","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","observable","couponNum","MemberType","cardNo","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\nimport {stores,i18n,localStore} 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 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 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){\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 // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n this.brefund=this.paymode.setAmount( this.dto.TotalTaxAmount ,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 };\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, 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, 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);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type){\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);\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}`,false, false, { method: 'get' })\n if (result && result.data.length) {\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 const { loginInfo = {} } = localStore.get('user') || {};\n return 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 const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.select();\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 (m.CardTypeEnum === 'BALANCE_CARD') {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m);\n } else {\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 } else {\n Message.warn(data1.disableReason);\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.bizDate = dto.VoucherDate;\n // promoVoucher.bizDate = new Date().getTime();\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 let { isNewRetailBCPos } = platform || {};\n this.addDjq(\n couponCode,\n name,\n IsEnable,\n promoMethodEnum == \"CASH_COUPON\"?nominalAmount: 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 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 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 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 tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount:this.paymode.amount,\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){\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 balance = null;\n let rawbalance = null;\n let storageCardNo = null;\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\n let cardTypeEnum = null;\n let walletEnabled = null;\n let meStorageCardId = null;\n if (type === PayStyle.hyczk) {\n // 会员概念改为卡,把这些字段都放开\n cardTypeEnum = this.member.CardTypeEnum ? this.member.CardTypeEnum: null;\n walletEnabled = this.member.WalletEnabled ? this.member.WalletEnabled: null;\n storageCardNo = this.member.StorageCardNo ? this.member.StorageCardNo: null;\n balance = this.member.BalanceStorage ? this.member.BalanceStorage : null;\n rawbalance = this.member.BalanceStorage ? this.member.BalanceStorage : null;\n meStorageCardId = this.member.MeStorageCardId ? this.member.MeStorageCardId : null;\n }\n const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\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 cardTypeEnum: !notwithm?cardTypeEnum:null,\n walletEnabled: !notwithm?walletEnabled:null,\n memberId: !notwithm?memberId:null,\n meStorageCardId: !notwithm?meStorageCardId:null,\n storageCardNo: !notwithm?storageCardNo:null,\n balance: !notwithm?balance:null,\n rawbalance: !notwithm?rawbalance:null,\n member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\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 mode.maxamount=getFixedNumber(Math.Minus(this.context.viewModel.getViewItem('Voucher').availableAmount,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n // let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n // if(mode && this.isIntegralExchange){\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();\n // }\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();\n }\n }\n\n @action changeValue(index,value,blur){\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();\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){\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.push(this.genNewMode(type) );\n this.paymode.thePaymodes.splice(pos,0,this.genNewMode(type,this.newStyle && type==PayStyle.hyczk));\n this.paymode.calcReserved();\n }\n\n @action delPay(index){\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();\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:'+bTest);\n if(bTest){\n return Promise.resolve(true);\n }\n let { isNewRetailBCPos } = platform || {};\n try{\n if(this.type==1){\n await this.saveMember();\n }else{\n if(isNewRetailBCPos){\n await stores.offlineSys.generatorCode(this.dto);\n }\n await this.save();\n if(isNewRetailBCPos){\n await stores.offlineSys.retailSequenceUpload();\n }\n }\n return Promise.resolve(true);\n }catch(err){\n console.error('settlementStore.commit失败,错误信息:'+err);\n return Promise.resolve(err);\n }\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{}) \n }\n\n saveMember(){\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 // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n return tApi({dto:this.dto}, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp)=>{\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle } = 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 })\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 let { isNewRetailBCPos } = platform || {};\n if(this.dto.RetailStorageDetails.length>0){\n const themode=_find(this.paymode.paymodes,{'paymentType':PayStyle.hyczk});\n if (isNewRetailBCPos) {\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 } else {\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 })\n }\n }\n });\n let { isNewRetailBCPos } = platform || {};\n console.log(`bc_pos环境:${isNewRetailBCPos},结算数据:`, this.dto);\n if (isNewRetailBCPos) {\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\n if(this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37){\n return ccApi({ dto: {...this.dto.cut(),RetailOms:{ RetailTypeEnum }},cip:IPMSG.query || \"\"}, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n this.setDtoID(resp.ID);\n this.paymode.checkList = [];\n this.billID = resp.ID;\n });\n }\n } else {\n // tc结算调用\n return tApi({ dto:this.dto.cut()}, 'chanjet.RE.newRetail.Settle', false, false, { timeout_skip: true }).then((resp) => {\n this.setDtoID(resp.ID);\n this.billID = resp.ID;\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} = this.paymode.currentMode;\n let result = null;\n if (cardTypeEnum === 'BALANCE_CARD') {\n result = await ccApi({password: User.pwdEncrypt(value.pwd), cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${memberId}`, false, false);\n } else {\n result = await ccApi({password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\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 @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(){\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 this.receivable = getFixedNumber(this.amount - sum);\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.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 }\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 // 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 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,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, tieredAmountResult.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 promoMethodEnum == \"CASH_COUPON\" ? ele.amount = nominalAmount: ele.amount = promoDiscount;\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 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 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 const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n const modes = await tApi({param}, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n _each(modes.SettleStyles, (mode,index)=>{\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n\n if(mode.Code==PayStyle.hyczk)\n {\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 })\n })\n this.paymodes = paymodes;\n //modes.QuickSettleStyles\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","member","brefund","bquick","boriginReturn","newStyle","handleCzkData","m","StorageCardNo","currentMode","errinfo","memberId","ID","value","receivable","Math","max","updateEvent","message","sum","thePaymodes","total","cur","String","isNullOrEmpty","checkReceived","amount","parseFloat","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","platform","isNewRetailBCPos","addDjq","calcDjqCheckValue","info","getSettleGift","billID","checkCoupon","sn","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","checkIntegralExchangeReturn","resolve","reject","param","refVoucherId","resp","expireIntegral","ModalWraper","confirm","className","title","content","cancelable","onOk","onCancel","PayMode","params","localStore","get","cloudPrintArguments","event","type","isIntegralExchange","setPaymodes","context","amounthandler","datasource","storeinfo","data","amountHandler","dataSource","storeInfo","viewModel","global","DealSingleRowAmountSettingProcessorBlock","execute","DealAmountSettingProcessorBlock","Member","setAmount","clean","initByOriginReturn","setModes","paymodes","p","mode","addPay","changeValue","paymethodId","console","log","checkList","RetailPaymentDetails","IdsettleStyle","SettleStyle","hyczk","okText","okType","newmode","genNewMode","authCode","PaymentCode","steadCashIntegral","SteadCashIntegral","overchargesAmount","OverchargesAmount","RetailCouponDetails","CouponCode","CouponTitle","ReductionAmount","EnableAmount","RetailStorageDetails","balanceAmount","storageCardNo","meStorageCardId","DynamicPropertyKeys","ele","index","DynamicPropertyValues","BalanceStorage","StoragePaymentAmount","MeStorageCardId","Password","balance","calcReserved","key","currentFocus","splice","addPayDirectly","IntegralSteadCashParams","BalanceTaxAmount","Integral","stores","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","rawbalance","cardTypeEnum","walletEnabled","WalletEnabled","counter","exchangeRate","calDirection","value2","value3","order","card","setMaxAmount","q","Add","getViewItem","availableAmount","shouldSetValue","blur","isNaN","pay","pos","bTest","saveMember","offlineSys","generatorCode","save","retailSequenceUpload","DoNameList","DO_STORAGE_PRINT","StorageMutiSettleDetails","giveChange","xianjin","abs","StorageAmount","GiveChange","idSettleStyle","IdbankAccount","idBankAccount","DataSource","Id","IPMSG","window","localStorage","handlePrint","czkSum","IsOrigReturn","OrigAmount","Idcurrency","idCurrency","ExchangeRate","IdMember","PromotionId","PromoCouponAllocatedId","RetailTypeEnum","IdbusiType","ReturnSourceId","cut","RetailOms","cip","query","setDtoID","RetailCode","Flag","val","exp","Date","setTime","endOf","valueOf","cookie","toGMTString","cookies","split","cookieObj","cook1","getAllCookies","cook2","memberStorageId","hasOwnProperty","password","User","pwdEncrypt","pwd","cardType","setCookie","Success","action","newPass","newPassConfirm","idstore","oldPassword","newPassword","successful","_this","getLoginInfo","updateMemberStorageCardNo","_counter","onlineamount","settle","hotKey","a","o","received","isNeedPassword","IsNeedPassword","q1","useLimitPerOrder","qList","i","min","djq1","addDjqs","setCouponNum","settleStyleType","memberStoreCode","settlementCode","modes","SettleStyles","Name","isDefault","IsDefaultSettleStyle","isQuick","QuickSettleStyles","orderBy","offlineDisable","IdSettleStyle","IdBankAccount","Currency","CalDirection","observable","couponNum","MemberType","cardNo","CardCode","needPwd","IsNeedPwd","NeedModifyPassword","bonusPoints","BalanceIntegral","exchangable"],"mappings":"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","file":"settlementStore.js","sourcesContent":["import { observable, computed, action, autorun, runInAction } from 'mobx'\nimport { stores, i18n, localStore } 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 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 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){\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 // 成交金额抹零\n if (global.DealAmountSettingProcessorBlock) {\n global.DealAmountSettingProcessorBlock.execute(this.dto);\n }\n });\n // this.member=context.stores && context.stores.memberStore && context.stores.memberStore.member;\n this.member=this.dto.Member;//stores.selectMemberStore.selectMemberInfo;\n this.brefund=this.paymode.setAmount( this.dto.TotalTaxAmount ,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 };\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, 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, 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);\n }\n\n //outer call\n //(type===PayStyle.hyczk || type===PayStyle.jfczk || type===PayStyle.jfdx || type===PayStyle.djq)\n @action changeFocusAndAddPay(type){\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);\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}`,false, false, { method: 'get' })\n if (result && result.data.length) {\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 const nextInput = document.querySelector('.czk .received .input');\n nextInput && nextInput.select();\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 (m.CardTypeEnum === 'BALANCE_CARD') {\n this.paymode.updateCardInfo(m);\n this.handleCzkData(m);\n } else {\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 } else {\n Message.warn(data1.disableReason);\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.bizDate = dto.VoucherDate;\n // promoVoucher.bizDate = new Date().getTime();\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 let { isNewRetailBCPos } = platform || {};\n this.addDjq(\n couponCode,\n name,\n IsEnable,\n promoMethodEnum == \"CASH_COUPON\"?nominalAmount: 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 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 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 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 tApi({IntegralSteadCashParams:{\n Idmember:this.paymode.currentMode.memberId,\n TotalTaxAmount:this.paymode.amount,\n BalanceTaxAmount:this.paymode.amount,\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){\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 balance = null;\n let rawbalance = null;\n let storageCardNo = null;\n let memberId = (this.member && this.member.ID ? this.member.ID : null);\n let cardTypeEnum = null;\n let walletEnabled = null;\n let meStorageCardId = null;\n if (type === PayStyle.hyczk) {\n // 会员概念改为卡,把这些字段都放开\n cardTypeEnum = this.member.CardTypeEnum ? this.member.CardTypeEnum: null;\n walletEnabled = this.member.WalletEnabled ? this.member.WalletEnabled: null;\n storageCardNo = this.member.StorageCardNo ? this.member.StorageCardNo: null;\n balance = this.member.BalanceStorage ? this.member.BalanceStorage : null;\n rawbalance = this.member.BalanceStorage ? this.member.BalanceStorage : null;\n meStorageCardId = this.member.MeStorageCardId ? this.member.MeStorageCardId : null;\n }\n const mode = observable({\n paymethodId:this.paymode.counter,\n name:themode.name,\n exchangeRate:themode.exchangeRate,\n calDirection:themode.calDirection,\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 cardTypeEnum: !notwithm?cardTypeEnum:null,\n walletEnabled: !notwithm?walletEnabled:null,\n memberId: !notwithm?memberId:null,\n meStorageCardId: !notwithm?meStorageCardId:null,\n storageCardNo: !notwithm?storageCardNo:null,\n balance: !notwithm?balance:null,\n rawbalance: !notwithm?rawbalance:null,\n member:new Member(!notwithm?this.member:null),\n authCode:'',\n steadCashIntegral:null,\n errinfo:'',\n maxamount:this.paymode.amount,\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 mode.maxamount=getFixedNumber(Math.Minus(this.context.viewModel.getViewItem('Voucher').availableAmount,sum));\n this.updateEvent();\n })\n })\n }\n\n @action changeFocusOnly(type){\n this.paymode.currentFocus=type;\n // 获取焦点时带入剩余的值\n // let mode=_find(this.paymode.thePaymodes,{'paymentType':type});\n // if(mode && this.isIntegralExchange){\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();\n // }\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();\n }\n }\n\n @action changeValue(index,value,blur){\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();\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){\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.push(this.genNewMode(type) );\n this.paymode.thePaymodes.splice(pos,0,this.genNewMode(type,this.newStyle && type==PayStyle.hyczk));\n this.paymode.calcReserved();\n }\n\n @action delPay(index){\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();\n }\n\n async commit(bTest){\n console.log('settlementStore.commit开始,参数:'+bTest);\n if(bTest){\n return Promise.resolve(true);\n }\n let { isNewRetailBCPos } = platform || {};\n try{\n if(this.type==1){\n await this.saveMember();\n }else{\n if(isNewRetailBCPos){\n await stores.offlineSys.generatorCode(this.dto);\n }\n await this.save();\n if(isNewRetailBCPos){\n await stores.offlineSys.retailSequenceUpload();\n }\n }\n return Promise.resolve(true);\n }catch(err){\n console.error('settlementStore.commit失败,错误信息:'+err);\n return Promise.resolve(err);\n }\n }\n\n handlePrint(resp) {\n // 储值打印\n return printDispatch(DoNameList.DO_STORAGE_PRINT,resp,{}) \n }\n\n saveMember(){\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 // cc结算调用\n let IPMSG = {};\n if (!!window.localStorage.IPMSG) {\n IPMSG = JSON.parse(window.localStorage.IPMSG);\n }\n return tApi({dto:this.dto}, 'chanjet.ME.INewRetailMemberStorage.Save', false, false).then((resp)=>{\n this.handlePrint(resp);\n });\n }\n\n async save(){\n const { PayStyle } = 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 })\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 let { isNewRetailBCPos } = platform || {};\n if(this.dto.RetailStorageDetails.length>0){\n const themode=_find(this.paymode.paymodes,{'paymentType':PayStyle.hyczk});\n if (isNewRetailBCPos) {\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 } else {\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 })\n }\n }\n });\n let { isNewRetailBCPos } = platform || {};\n console.log(`bc_pos环境:${isNewRetailBCPos},结算数据:`, this.dto);\n if (isNewRetailBCPos) {\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\n if(this.dto.IdbusiType == 37 && await this.checkIntegralExchangeReturn(this.dto.RetailDetails[0].ReturnSourceId) || this.dto.IdbusiType != 37){\n return ccApi({ dto: {...this.dto.cut(),RetailOms:{ RetailTypeEnum }},cip:IPMSG.query || \"\"}, '/retail/RetailPos/settle', false, false, { method: 'post', timeout_skip: true }).then((resp) => {\n this.setDtoID(resp.ID);\n this.paymode.checkList = [];\n this.billID = resp.ID;\n });\n }\n } else {\n // tc结算调用\n return tApi({ dto:this.dto.cut()}, 'chanjet.RE.newRetail.Settle', false, false, { timeout_skip: true }).then((resp) => {\n this.setDtoID(resp.ID);\n this.billID = resp.ID;\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} = this.paymode.currentMode;\n let result = null;\n if (cardTypeEnum === 'BALANCE_CARD') {\n result = await ccApi({password: User.pwdEncrypt(value.pwd), cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${memberId}`, false, false);\n } else {\n result = await ccApi({password: value.pwd, cardType: cardTypeEnum}, `/member/MeMemberWallet/checkPaymentPassword/${meStorageCardId}`, false, false);\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 @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(){\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 this.receivable = getFixedNumber(this.amount - sum);\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.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 }\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 // 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 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,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, tieredAmountResult.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 promoMethodEnum == \"CASH_COUPON\" ? ele.amount = nominalAmount: ele.amount = promoDiscount;\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 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 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 const { settleStyleType , PayStyle} = enumController.getEnumOj();\n const {memberStoreCode , settlementCode } = settleStyleType;\n const param = {'settleStyleType':type==1?memberStoreCode:settlementCode,isIntegralExchange}\n const modes = await tApi({param}, 'chanjet.RE.NewPos.GetNewStoreSettleStyles', false, false);\n if(modes){\n runInAction(()=>{\n let paymodes = [];\n _each(modes.SettleStyles, (mode,index)=>{\n //产品需求确认会员储值卡结算方式前端展示统一调整为“储值卡\" tuzha by 2020-07-08\n\n if(mode.Code==PayStyle.hyczk)\n {\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 })\n })\n this.paymodes = paymodes;\n //modes.QuickSettleStyles\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"]}