tplus-components-touch 3.27.17 → 3.27.21

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