12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642 |
- package fi.cas.formplugin;
- import com.alibaba.fastjson.JSON;
- import kd.bos.bill.BillShowParameter;
- import kd.bos.bill.OperationStatus;
- import kd.bos.context.RequestContext;
- import kd.bos.dataentity.OperateOption;
- import kd.bos.dataentity.entity.DataEntityBase;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.dataentity.entity.DynamicObjectCollection;
- import kd.bos.dataentity.entity.LocaleString;
- import kd.bos.dataentity.metadata.IDataEntityProperty;
- import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
- import kd.bos.dataentity.resource.ResManager;
- import kd.bos.dataentity.serialization.SerializationUtils;
- import kd.bos.entity.AppMetadataCache;
- import kd.bos.entity.EntityMetadataCache;
- import kd.bos.entity.Tips;
- import kd.bos.entity.datamodel.*;
- import kd.bos.entity.datamodel.events.*;
- import kd.bos.entity.format.FormatFactory;
- import kd.bos.entity.format.FormatObject;
- import kd.bos.entity.format.FormatTypes;
- import kd.bos.entity.operate.result.OperationResult;
- import kd.bos.entity.param.AppParam;
- import kd.bos.entity.property.EntryProp;
- import kd.bos.exception.KDBizException;
- import kd.bos.form.*;
- import kd.bos.form.control.*;
- import kd.bos.form.control.events.BeforeItemClickEvent;
- import kd.bos.form.control.events.ClickListener;
- import kd.bos.form.control.events.ItemClickEvent;
- import kd.bos.form.control.events.RowClickEventListener;
- import kd.bos.form.events.*;
- import kd.bos.form.field.BasedataEdit;
- import kd.bos.form.field.ComboEdit;
- import kd.bos.form.field.ComboItem;
- import kd.bos.form.operate.AbstractOperate;
- import kd.bos.form.operate.FormOperate;
- import kd.bos.form.operate.SignOperateCallback;
- import kd.bos.list.ListFilterParameter;
- import kd.bos.list.ListShowParameter;
- import kd.bos.logging.Log;
- import kd.bos.logging.LogFactory;
- import kd.bos.orm.query.QFilter;
- import kd.bos.orm.util.CollectionUtils;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.bos.servicehelper.DispatchServiceHelper;
- import kd.bos.servicehelper.QueryServiceHelper;
- import kd.bos.servicehelper.inte.InteServiceHelper;
- import kd.bos.servicehelper.operation.OperationServiceHelper;
- import kd.bos.servicehelper.parameter.SystemParamServiceHelper;
- import kd.bos.servicehelper.workflow.WorkflowServiceHelper;
- import kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup;
- import kd.fi.cas.business.errorcode.CasErrorCode;
- import kd.fi.cas.business.errorcode.PaymentErrorCode;
- import kd.fi.cas.business.helper.AcctBalanceHelper;
- import kd.fi.cas.business.helper.PayBillHepler;
- import kd.fi.cas.business.helper.PaymentFillPropHelper;
- import kd.fi.cas.business.helper.VisibleVirtualAcctHelper;
- import kd.fi.cas.business.opservice.impl.PaymentPayImpl;
- import kd.fi.cas.business.service.ViewReceiptService;
- import kd.fi.cas.consts.BillTypeConstants;
- import kd.fi.cas.enums.*;
- import kd.fi.cas.formplugin.PaymentBillEdit;
- import kd.fi.cas.formplugin.common.CasBillEdit;
- import kd.fi.cas.formplugin.helper.InitCheckPluginHelper;
- import kd.fi.cas.helper.*;
- import kd.fi.cas.pojo.BizBalanceModelBean;
- import kd.fi.cas.util.DateUtils;
- import kd.fi.cas.util.EmptyUtil;
- import kd.fi.cas.util.FormUtils;
- import kd.fi.cas.util.StringUtils;
- import java.math.BigDecimal;
- import java.text.Format;
- import java.util.*;
- import java.util.List;
- import java.util.stream.Collectors;
- public class ArBillEditPlugin extends CasBillEdit implements ClickListener, RowClickEventListener, SignCallbackLisenter {
- private String labCurrencySign;
- private int currencyAmtprecision;
- private Format currencyFormat;
- private static final String KEY_DIFFPAY_CALLBACK = "KEY_DIFFPAY_CALLBACK";
- private static final String CONFIRM_DEL_CALLBACK = "CONFIRM_DEL_CALLBACK";
- private static final String KEY_CALLBACK_CHARGEBACK = "CALLBACK_CHARGEBACK";
- private static final String KEY_CLOSECALLBACK_CHARGEBACK = "CALLBACK_SELECTDRAFT";
- private static Log logger = LogFactory.getLog(PaymentBillEdit.class);
- private Long orgId;
- private boolean isBeConfirmOK = false;
- private List<String> settleTypes;
- public ArBillEditPlugin() {
- this.settleTypes = Arrays.asList(SettleMentTypeEnum.PROMISSORY.getValue(), SettleMentTypeEnum.CHECK.getValue(), SettleMentTypeEnum.DRAFT.getValue(), SettleMentTypeEnum.BUSINESS.getValue(), SettleMentTypeEnum.BANK.getValue());
- }
- private void initFormat() {
- FormatObject fobj = InteServiceHelper.getUserFormat(RequestContext.get().getCurrUserId());
- fobj.getCurrencyFormat().setCurrencySymbols(this.labCurrencySign);
- fobj.getCurrencyFormat().setMinimumFractionDigits(this.currencyAmtprecision);
- this.currencyFormat = FormatFactory.get(FormatTypes.Currency).getFormat(fobj);
- }
- public void preOpenForm(PreOpenFormEventArgs e) {
- BillShowParameter showParameter = (BillShowParameter)e.getSource();
- Object pkId = showParameter.getPkId();
- if (pkId != null && !pkId.equals(0L)) {
- DynamicObject info = BusinessDataServiceHelper.loadSingle(pkId, "nckd_cas_arbill", "id, billtype");
- DynamicObject billtype = info.getDynamicObject("billtype");
- if (billtype != null && BillTypeConstants.PAYBILL_SYN.equals(billtype.getPkValue())) {
- e.getFormShowParameter().setFormId("cas_paybill_synonym");
- e.getFormShowParameter().setCaption(ResManager.loadKDString("同名转账", "PaymentBillEdit_24", "fi-cas-formplugin", new Object[0]));
- } else if (billtype != null && BillTypeConstants.PAYBILL_CASH.equals(billtype.getPkValue())) {
- e.getFormShowParameter().setFormId("cas_paybill_cash");
- e.getFormShowParameter().setCaption(ResManager.loadKDString("现金存取", "PaymentBillEdit_25", "fi-cas-formplugin", new Object[0]));
- } else if (billtype != null && BillTypeConstants.PAYBILL_SPAN.equals(billtype.getPkValue())) {
- e.getFormShowParameter().setCaption(ResManager.loadKDString("跨主体调拨", "PaymentBillEdit_28", "fi-cas-formplugin", new Object[0]));
- }
- } else {
- String formId = showParameter.getFormId();
- if ("cas_paybill_synonym".equals(formId)) {
- e.getFormShowParameter().setFormId("cas_paybill_synonym");
- e.getFormShowParameter().setCaption(ResManager.loadKDString("同名转账", "PaymentBillEdit_24", "fi-cas-formplugin", new Object[0]));
- } else if ("cas_paybill_cash".equals(formId)) {
- e.getFormShowParameter().setFormId("cas_paybill_cash");
- e.getFormShowParameter().setCaption(ResManager.loadKDString("现金存取", "PaymentBillEdit_25", "fi-cas-formplugin", new Object[0]));
- } else if ("cas_paybill_spanmainpart".equals(formId)) {
- e.getFormShowParameter().setFormId("cas_paybill_spanmainpart");
- e.getFormShowParameter().setCaption(ResManager.loadKDString("跨主体调拨", "PaymentBillEdit_28", "fi-cas-formplugin", new Object[0]));
- }
- }
- }
- public void registerListener(EventObject e) {
- super.registerListener(e);
- this.addClickListeners(new String[]{"changepayer", "changepayee", "addpayeelb1", "addpayeelb2", "settletnumber", "applyname"});
- this.initF7();
- }
- private void initF7() {
- this.fillPaymentType();
- this.fillCurrency();
- this.fillEntrustorg();
- this.setSettlementTypeFilter();
- this.fillNetBankAcct();
- this.expenseItem();
- this.fillFundFlow();
- }
- private void fillFundFlow() {
- BasedataEdit fundFlow = (BasedataEdit)this.getControl("e_fundflowitem");
- fundFlow.addBeforeF7SelectListener((select) -> {
- ListShowParameter showParam = (ListShowParameter)select.getFormShowParameter();
- Object org = this.getModel().getValue("org");
- showParam.setCustomParam("org", String.valueOf(((DynamicObject)org).getPkValue()));
- });
- }
- protected void expenseItem() {
- BasedataEdit orgCtrl = (BasedataEdit)this.getControl("e_expenseitem");
- orgCtrl.addBeforeF7SelectListener((beforeF7SelectEvent) -> {
- ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
- DynamicObject[] objects = BusinessDataServiceHelper.load("er_expenseitembill", "id,expenseitem", new QFilter[]{new QFilter("billtype.bill_number.number", "=", "nckd_cas_arbill")});
- if (!EmptyUtil.isEmpty(objects)) {
- List<Object> ids = (List)Arrays.stream(objects).map((o) -> {
- return o.get("expenseitem.id");
- }).collect(Collectors.toList());
- QFilter qFilter = new QFilter("id", "in", ids);
- showParameter.getListFilterParameter().getQFilters().add(qFilter);
- }
- });
- }
- protected String getControlBankAcctForSettleType() {
- return "payeracctbank";
- }
- private boolean isAcctBankExistOnlineBankAcct() {
- DynamicObject payeracctbank = (DynamicObject)this.getValue("payeracctbank");
- if (null != payeracctbank) {
- DynamicObjectCollection onlineBankAccts = payeracctbank.getDynamicObjectCollection("netbank");
- return null != onlineBankAccts && onlineBankAccts.size() != 0;
- } else {
- return false;
- }
- }
- private void fillNetBankAcct() {
- BasedataEdit onlinebankacct = (BasedataEdit)this.getControl("netbankacct");
- onlinebankacct.addBeforeF7SelectListener((beforeF7SelectEvent) -> {
- ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
- DynamicObject payeracctbank = (DynamicObject)this.getValue("payeracctbank");
- List<Long> ids = new ArrayList();
- if (null != payeracctbank) {
- DynamicObjectCollection onlineBankAccts = payeracctbank.getDynamicObjectCollection("netbank");
- if (null != onlineBankAccts && onlineBankAccts.size() > 0) {
- Iterator var6 = onlineBankAccts.iterator();
- while(var6.hasNext()) {
- DynamicObject bankAcct = (DynamicObject)var6.next();
- ids.add((Long)bankAcct.getDynamicObject("fbasedataid").getPkValue());
- }
- }
- }
- if (ids.size() == 0) {
- ids.add(0L);
- }
- QFilter qFilter = new QFilter("id", "in", ids);
- showParameter.getListFilterParameter().getQFilters().add(qFilter);
- });
- }
- private void fillEntrustorg() {
- BasedataEdit currencyF7 = (BasedataEdit)this.getControl("entrustorg");
- currencyF7.addBeforeF7SelectListener((beforeF7SelectEvent) -> {
- ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
- showParameter.setCustomParam("orgFuncId", "08");
- });
- }
- private void fillPaymentType() {
- BasedataEdit paymenttypeF7 = (BasedataEdit)this.getControl("paymenttype");
- paymenttypeF7.addBeforeF7SelectListener((beforeF7SelectEvent) -> {
- String sourceBillType = (String)this.getModel().getValue("sourcebilltype");
- ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
- QFilter qFilter = new QFilter("enable", "=", "1");
- Object entrance = this.getModel().getValue("entrance");
- if (!CasHelper.isEmpty(this.getModel().getDataEntity().getPkValue())) {
- DynamicObject payemntType = (DynamicObject)this.getModel().getValue("paymenttype");
- if (payemntType != null) {
- qFilter = qFilter.and(new QFilter("ispartpayment", "=", payemntType.getBoolean("ispartpayment") ? "1" : "0"));
- } else if (!PaymentTypeEnum.AP.name().equals(entrance)) {
- qFilter = qFilter.and(new QFilter("ispartpayment", "=", "0"));
- }
- }
- if (entrance != null && !"".equals(entrance)) {
- if (PaymentTypeEnum.AP.name().equals(entrance)) {
- qFilter = qFilter.and(new QFilter("ispartpayment", "=", "1"));
- } else {
- qFilter = qFilter.and(new QFilter("ispartpayment", "=", "0"));
- }
- }
- if ("pm_purorderbill".equals(sourceBillType) || "conm_purcontract".equals(sourceBillType)) {
- qFilter = qFilter.and(new QFilter("biztype", "=", "202")).and(new QFilter("ispartpayment", "=", "1"));
- qFilter = qFilter.and(new QFilter("ispartpayment", "=", "1"));
- }
- showParameter.getListFilterParameter().setFilter(qFilter);
- });
- }
- private void fillCurrency() {
- BasedataEdit currencyF7 = (BasedataEdit)this.getControl("currency");
- currencyF7.addBeforeF7SelectListener((beforeF7SelectEvent) -> {
- ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
- QFilter qFilter = new QFilter("enable", "=", "1");
- Boolean isDiffCur = (Boolean)this.getValue("isdiffcur");
- if (!isDiffCur) {
- DynamicObject settleType = (DynamicObject)this.getModel().getValue("settletype");
- boolean isCash = BaseDataHelper.isSettleTypeCash(settleType);
- DynamicObject accountCash;
- if (isCash) {
- accountCash = (DynamicObject)this.getModel().getValue("payeracctcash");
- if (accountCash != null) {
- List<Long> currencys = AccountCashHelper.getCurrencys(Collections.singletonList((Long)accountCash.getPkValue()));
- qFilter = qFilter.and(new QFilter("id", "in", currencys));
- }
- } else {
- accountCash = (DynamicObject)this.getModel().getValue("payeracctbank");
- if (accountCash != null) {
- Set<Long> currencysx = AccountBankHelper.getCurrencyPks((Long)accountCash.getPkValue());
- qFilter = qFilter.and(new QFilter("id", "in", currencysx));
- }
- }
- }
- showParameter.getListFilterParameter().setFilter(qFilter);
- });
- }
- public void afterCreateNewData(EventObject e) {
- super.afterCreateNewData(e);
- this.setDefaultPaymentChannelValue();
- if (!"true".equals(this.getPageCache().get("isFromWebApi"))) {
- this.createNewModel();
- }
- this.getView().setVisible(false, new String[]{"netbankacct"});
- this.getEntryCache();
- this.calculateAmt();
- DynamicObject settleType = this.getDynamicObject("settletype");
- if (BaseDataHelper.isSettleTypeCash(settleType)) {
- this.setValue("payeracctcash", AccountCashHelper.getDefaultAccountcash(this.getPk("org"), "payer"));
- }
- }
- private void getEntryCache() {
- String str_json = this.getPageCache().get("entry");
- if (str_json != null) {
- this.getModel().deleteEntryRow("entry", 0);
- TableValueSetter vs = new TableValueSetter(new String[0]);
- vs.addField("e_expenseitem", new Object[0]).addField("e_payableamt", new Object[0]).addField("project", new Object[0]).addField("e_fundflowitem", new Object[0]).addField("e_remark", new Object[0]);
- Map<String, ArrayList<Map<String, String>>> maps = (Map) SerializationUtils.fromJsonString(str_json, Map.class);
- ArrayList<Map<String, String>> list = (ArrayList)maps.get("entry");
- Iterator var5 = list.iterator();
- while(var5.hasNext()) {
- Map<String, String> map = (Map)var5.next();
- vs.addRow(new Object[]{map.get("e_expenseitem"), map.get("e_payableamt"), map.get("project"), map.get("e_fundflowitem"), map.get("e_remark")});
- }
- AbstractFormDataModel model = (AbstractFormDataModel)this.getModel();
- model.batchCreateNewEntryRow("entry", vs);
- this.getView().updateView("entry");
- }
- }
- private void setDefaultPaymentChannelValue() {
- List<ComboItem> comboItems = new ArrayList();
- ComboEdit paymentChannel = (ComboEdit)this.getControl("paymentchannel");
- ComboItem comboItem = new ComboItem();
- comboItem.setValue(PaymentChannelEnum.COUNTER.getValue());
- comboItem.setCaption(new LocaleString(ResManager.loadKDString(PaymentChannelEnum.COUNTER.getName(), "PaymentBillEdit_16", "fi-cas-formplugin", new Object[0])));
- comboItems.add(comboItem);
- paymentChannel.setComboItems(comboItems);
- this.getModel().setValue("paymentchannel", comboItem.getValue());
- }
- public void beforeBindData(EventObject e) {
- super.beforeBindData(e);
- DynamicObject paymenttype = (DynamicObject)this.getModel().getValue("paymenttype");
- if (null != paymenttype && !paymenttype.getBoolean("ispartpayment")) {
- this.getView().setVisible(false, new String[]{"settleorg"});
- }
- this.settleOrg(false);
- if (this.isBotpNew()) {
- this.supplePayeeInfo();
- }
- this.getModel().setDataChanged(false);
- }
- private void supplePayeeInfo() {
- Object sourcebilltype = this.getModel().getValue("sourcebilltype");
- if (!CasHelper.isEmpty(sourcebilltype)) {
- Object payee = this.getModel().getValue("payee");
- Object payeebanknumMo = this.getModel().getValue("payeebanknum");
- Object payeebankMo = this.getModel().getValue("payeebank");
- Object payeeType = this.getValue("payeetype");
- if (CasHelper.isEmpty(payeebanknumMo) && CasHelper.isEmpty(payeebankMo)) {
- String billName = this.getModel().getDataEntityType().getName();
- Map<String, Object> resultMap = CasPayeeOrPayerHelper.getPayeeOrPayerInfo(payee, payeeType, billName);
- if (resultMap.size() > 0) {
- Object bankaccount = resultMap.get("payeebanknum");
- Object accountname = resultMap.get("accountname");
- DynamicObject payeebank = (DynamicObject)resultMap.get("payeebank");
- this.getModel().setValue("payeebanknum", bankaccount);
- this.getModel().setValue("recaccbankname", accountname);
- if (!CasHelper.isEmpty(payeebank)) {
- this.fillProvinceAndCity(payeebank);
- }
- }
- } else if (!CasHelper.isEmpty(payeebankMo)) {
- this.fillProvinceAndCity((DynamicObject)payeebankMo);
- }
- }
- }
- private void fillProvinceAndCity(DynamicObject payeeBank) {
- logger.info("打开单据 填充 国家、省、城市字段");
- payeeBank = BusinessDataServiceHelper.loadSingle(payeeBank.getPkValue(), payeeBank.getDataEntityType().getName(), "id,name,number,country,provincetxt,citytxt,union_number");
- this.getModel().setValue("payeebank", payeeBank);
- this.getModel().setValue("payeebankname", payeeBank.getString("name"));
- this.getModel().setValue("recbanknumber", payeeBank.getString("union_number"));
- this.getModel().setValue("reccountry", payeeBank.getDynamicObject("country"));
- this.getModel().setValue("recprovince", payeeBank.getString("provincetxt"));
- this.getModel().setValue("reccity", payeeBank.getString("citytxt"));
- }
- private void createNewModel() {
- this.getView().setVisible(false, new String[]{"usage"});
- FormShowParameter parameter = this.getView().getFormShowParameter();
- Map<String, Object> customParams = parameter.getCustomParams();
- if (this.getModel().getValue("org") != null) {
- this.orgId = this.getPk("org");
- } else {
- String appId = this.getView().getFormShowParameter().getAppId();
- if (EmptyUtil.isNotEmpty(appId)) {
- appId = AppMetadataCache.getAppInfo(appId).getId();
- } else {
- appId = AppMetadataCache.getAppInfo("cas").getId();
- }
- List<Long> authorizedBankOrgId = OrgHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), appId, "nckd_cas_arbill", "47156aff000000ac");
- if (!CollectionUtils.isEmpty(authorizedBankOrgId)) {
- this.orgId = (Long)authorizedBankOrgId.get(0);
- this.setValue("org", this.orgId);
- } else {
- this.orgId = null;
- }
- }
- this.setValueIfAbsent("bizdate", DateUtils.getCurrentDate());
- if (customParams != null && customParams.containsKey("paymentType")) {
- String entrance = (String)customParams.get("paymentType");
- this.setValue("entrance", entrance);
- long billTypeID = 0L;
- QFilter[] qFilters;
- if (PaymentTypeEnum.AP.name().equals(entrance)) {
- qFilters = new QFilter[]{new QFilter("ispartpayment", "=", "1"), new QFilter("biztype", "=", "201")};
- this.setPaymentType(qFilters);
- billTypeID = BillTypeConstants.PAYBILL_PUR;
- } else if (PaymentTypeEnum.SYN.name().equals(entrance)) {
- qFilters = new QFilter[]{new QFilter("biztype", "=", "214")};
- this.setPaymentType(qFilters);
- billTypeID = BillTypeConstants.PAYBILL_SYN;
- } else if (PaymentTypeEnum.SPAN.name().equals(entrance)) {
- qFilters = new QFilter[]{new QFilter("biztype", "=", "217")};
- this.setPaymentType(qFilters);
- billTypeID = BillTypeConstants.PAYBILL_SPAN;
- } else if (PaymentTypeEnum.CASH.name().equals(entrance)) {
- qFilters = new QFilter[]{new QFilter("biztype", "=", "215")};
- this.setPaymentType(qFilters);
- billTypeID = BillTypeConstants.PAYBILL_CASH;
- } else {
- if (PaymentTypeEnum.ER.name().equals(entrance)) {
- qFilters = new QFilter[]{new QFilter("biztype", "=", "211")};
- this.setPaymentType(qFilters);
- } else if (PaymentTypeEnum.OTR.name().equals(entrance)) {
- qFilters = new QFilter[]{new QFilter("biztype", "=", "999")};
- this.setPaymentType(qFilters);
- }
- billTypeID = BillTypeConstants.PAYBILL_OTR;
- }
- this.setValue("issingle", "1");
- if (billTypeID != 0L && QueryServiceHelper.exists("bos_billtype", billTypeID)) {
- this.setValue("billtype", billTypeID);
- }
- }
- this.fillPayeeType(true);
- if (CasHelper.isEmpty(this.orgId)) {
- this.getView().setEnable(false, new String[]{"bar_save", "bar_submit", "bar_beforesubmit"});
- this.getView().showErrorNotification(ResManager.loadKDString("请先选择付款人", "PaymentBillEdit_30", "fi-cas-formplugin", new Object[0]));
- } else if (InitCheckPluginHelper.checkInitForPlugin(this.getView(), this.getDynamicObject("org"), new String[]{"bar_save", "bar_submit", "bar_beforesubmit"})) {
- this.getView().setEnable(true, new String[]{"bar_save", "bar_submit", "bar_beforesubmit"});
- DynamicObject baseCurrency = OrgHelper.getBaseCurrency(this.orgId);
- this.setValue("basecurrency", baseCurrency);
- this.setValue("currency", baseCurrency);
- this.setValue("dpcurrency", baseCurrency);
- this.setValue("feecurrency", baseCurrency);
- this.setDefaultExratetable(this.orgId);
- DynamicObject defaultSettleType = BaseDataHelper.getDefaultSettleType();
- this.setValue("settletype", defaultSettleType);
- DynamicObject defaultPayAccount;
- if (!BaseDataHelper.isSettleTypeCash(defaultSettleType)) {
- defaultPayAccount = AccountBankHelper.getDefaultPayAccount(this.orgId);
- if (defaultPayAccount == null || (!BaseDataHelper.isSettleTypeVirtual(defaultSettleType) || !VisibleVirtualAcctHelper.checkVirtualAcct(defaultPayAccount)) && (BaseDataHelper.isSettleTypeVirtual(defaultSettleType) || VisibleVirtualAcctHelper.checkVirtualAcct(defaultPayAccount))) {
- this.getView().setEnable(false, new String[]{"exchangerate"});
- this.clearBalanceValue();
- } else {
- this.setValue("payeracctbank", defaultPayAccount);
- this.payerAcctBankF7Changed((PropertyChangedArgs)null, defaultPayAccount);
- this.currencyF7Changed(false);
- }
- }
- defaultPayAccount = BusinessDataServiceHelper.loadSingleFromCache(this.orgId, "bos_org");
- this.getModel().setValue("payernumber", defaultPayAccount.getString("number"));
- this.getModel().setValue("uniformsocialcreditcode", defaultPayAccount.getString("uniformsocialcreditcode"));
- this.setPayerInfo4Lb();
- this.setOpenOrg();
- }
- }
- private void setPayerInfo4Lb() {
- DynamicObject org = (DynamicObject)this.getModel().getValue("org");
- if (org != null) {
- this.getModel().setValue("orgv", CasHelper.getLocalValue(org, "name"));
- String defaultUrl = "/icons/pc/entrance/cn_fk_80_80.png";
- Image orgPic = (Image)this.getControl("orgpic");
- orgPic.setUrl(defaultUrl);
- DynamicObject payerAcctBank = (DynamicObject)this.getModel().getValue("payeracctbank");
- DynamicObject payerAcctCash = (DynamicObject)this.getModel().getValue("payeracctcash");
- String v_payerbanknum = "";
- if (payerAcctBank != null) {
- v_payerbanknum = StringUtils.splitString(payerAcctBank.getString("bankaccountnumber"), 4, " ");
- } else if (payerAcctCash != null) {
- v_payerbanknum = payerAcctCash.getString("number");
- }
- ((Label)this.getControl("payerbanknumv")).setText(v_payerbanknum);
- DynamicObject payerBank = (DynamicObject)this.getModel().getValue("payerbank");
- String v_payerbankname = "";
- if (payerBank != null) {
- v_payerbankname = CasHelper.getLocalValue(payerBank, "name");
- }
- ((Label)this.getControl("payerbanknamev")).setText(v_payerbankname);
- boolean isCash = BaseDataHelper.isSettleTypeCash((DynamicObject)this.getModel().getValue("settletype"));
- this.getView().setVisible(!isCash, new String[]{"payerbanknamev", "payerbanknamelb"});
- }
- }
- private void fillPayeeType(boolean setDefaultValue) {
- ComboEdit payeetypeCbo = (ComboEdit)this.getView().getControl("payeetype");
- List<ComboItem> comboItem = new ArrayList();
- String entrance = (String)this.getModel().getValue("entrance");
- if (PaymentTypeEnum.AP.name().equals(entrance)) {
- comboItem.add(new ComboItem(new LocaleString(AsstActTypeEnum.SUPPLIER.getName()), AsstActTypeEnum.SUPPLIER.getValue()));
- comboItem.add(new ComboItem(new LocaleString(AsstActTypeEnum.CUSTOMER.getName()), AsstActTypeEnum.CUSTOMER.getValue()));
- comboItem.add(new ComboItem(new LocaleString(AsstActTypeEnum.EMPLOYEE.getName()), AsstActTypeEnum.EMPLOYEE.getValue()));
- } else if (!PaymentTypeEnum.SYN.name().equals(entrance) && !PaymentTypeEnum.CASH.name().equals(entrance)) {
- AsstActTypeEnum[] var5 = AsstActTypeEnum.values();
- int var6 = var5.length;
- for(int var7 = 0; var7 < var6; ++var7) {
- AsstActTypeEnum asstAct = var5[var7];
- comboItem.add(new ComboItem(new LocaleString(asstAct.getName()), asstAct.getValue()));
- }
- } else {
- comboItem.add(new ComboItem(new LocaleString(AsstActTypeEnum.COMPANY.getName()), AsstActTypeEnum.COMPANY.getValue()));
- }
- payeetypeCbo.setComboItems(comboItem);
- if (setDefaultValue) {
- this.getModel().setValue("payeetype", ((ComboItem)comboItem.get(0)).getValue());
- }
- }
- public void afterImportData(ImportDataEventArgs e) {
- super.afterImportData(e);
- PaymentFillPropHelper.fillProp(this.getModel().getDataEntity());
- if (this.getModel().getValue("entrance") == null) {
- this.setEntrance();
- }
- }
- public void initImportData(InitImportDataEventArgs e) {
- super.initImportData(e);
- this.getPageCache().put("isFromWebApi", "true");
- }
- public void afterCopyData(EventObject e) {
- super.afterCopyData(e);
- DynamicObject billType = (DynamicObject)this.getValue("billtype");
- if (billType != null && BillTypeConstants.PAYBILL_PUR == billType.getLong("id")) {
- this.getModel().setValue("entrance", PaymentTypeEnum.AP.name());
- }
- this.fillPayeeType(false);
- this.setValue("sourcetype", SourceTypeEnum.CAS);
- DynamicObject paymentType = (DynamicObject)this.getValue("paymenttype");
- if (paymentType != null && paymentType.getBoolean("ispartpayment")) {
- int count = this.getModel().getEntryRowCount("entry");
- for(int i = 0; i < count; ++i) {
- this.setValue("e_unlockamt", (BigDecimal)this.getModel().getValue("e_payableamt", i), i);
- this.setValue("e_unsettledamt", (BigDecimal)this.getModel().getValue("e_payableamt", i), i);
- }
- this.getView().updateView("entry");
- }
- this.showBalance();
- this.setNetBankAcctVisible();
- DynamicObject accountBank = this.getDynamicObject("payeracctbank");
- this.setPaymentChannelValue(accountBank, Boolean.TRUE);
- DynamicObject crossTranType0 = (DynamicObject)this.getModel().getValue("crosstrantype");
- if (crossTranType0 != null) {
- DynamicObject crossTransType = BusinessDataServiceHelper.loadSingle(crossTranType0.getPkValue(), "bei_crosstrantype");
- DynamicObjectCollection dynamicObjectCollection = crossTransType.getDynamicObjectCollection("entry");
- this.isCrossTranTypeHide(dynamicObjectCollection);
- }
- this.getModel().deleteEntryData("cas_draftinfo");
- this.getModel().setValue("applyorg", (Object)null);
- }
- public void afterLoadData(EventObject e) {
- super.afterLoadData(e);
- this.showBalance();
- this.setNetBankAcctVisible();
- DynamicObject crossTranType0 = (DynamicObject)this.getModel().getValue("crosstrantype");
- if (crossTranType0 != null) {
- DynamicObject crossTransType = BusinessDataServiceHelper.loadSingle(crossTranType0.getPkValue(), "bei_crosstrantype");
- DynamicObjectCollection dynamicObjectCollection = crossTransType.getDynamicObjectCollection("entry");
- this.isCrossTranTypeHide(dynamicObjectCollection);
- }
- }
- private void ctrRefundInfoVisibility() {
- logger.info("付款单:PaymentBillEdit.ctrRefundInfoVisibility()");
- this.getView().setVisible(false, new String[]{"bar_refund_save"});
- String billstatus = (String)this.getValue("billstatus");
- this.getView().setVisible(BillStatusEnum.REFUND.getValue().equals(billstatus) || BillStatusEnum.RENOTE.getValue().equals(billstatus), new String[]{"e_refundamt", "e_refunddes"});
- this.getView().setEnable(false, new String[]{"e_refundamt", "e_refunddes"});
- }
- private void setNetBankAcctVisible() {
- String paymentchannel = (String)this.getValue("paymentchannel");
- if (null != paymentchannel && this.isAcctBankExistOnlineBankAcct()) {
- this.getView().setVisible(true, new String[]{"netbankacct"});
- } else {
- this.getView().setVisible(false, new String[]{"netbankacct"});
- }
- }
- private void setEntrance() {
- DynamicObject billType = (DynamicObject)this.getModel().getValue("billtype");
- if (billType != null) {
- Long billTypeId = billType.getLong("id");
- if (BillTypeConstants.PAYBILL_PUR.equals(billTypeId)) {
- this.getModel().setValue("entrance", PaymentTypeEnum.AP.name());
- } else if (BillTypeConstants.PAYBILL_EXP.equals(billTypeId)) {
- this.getModel().setValue("entrance", PaymentTypeEnum.OTR.name());
- } else if (BillTypeConstants.PAYBILL_OTR.equals(billTypeId)) {
- this.getModel().setValue("entrance", PaymentTypeEnum.OTR.name());
- } else if (BillTypeConstants.PAYBILL_SYN.equals(billTypeId)) {
- this.getModel().setValue("entrance", PaymentTypeEnum.SYN.name());
- } else if (BillTypeConstants.PAYBILL_CASH.equals(billTypeId)) {
- this.getModel().setValue("entrance", PaymentTypeEnum.CASH.name());
- } else if (BillTypeConstants.PAYBILL_SPAN.equals(billTypeId)) {
- this.getModel().setValue("entrance", PaymentTypeEnum.SPAN.name());
- }
- }
- }
- public void customPrintDataObject(CustomPrintDataObjectArgs e) {
- super.customPrintDataObject(e);
- String entityKey = e.getDataSourceName();
- if ("nckd_cas_arbill".equals(entityKey)) {
- List<DynamicObject> dataEntitiesv = new ArrayList();
- DynamicObject dsv = this.getModel().getDataEntity();
- DynamicObject basecur = (DynamicObject)this.getModel().getValue("basecurrency");
- if (basecur != null) {
- dsv.set("basecurrency", basecur.getString("name"));
- }
- if (dsv.getString("payeetype") != null && dsv.getString("payeetype").length() > 0) {
- dsv.set("payeetype", AsstActTypeEnum.getName(dsv.getString("payeetype")));
- }
- dataEntitiesv.add(dsv);
- e.setDataEntities(dataEntitiesv);
- }
- }
- public void propertyChanged(PropertyChangedArgs e) {
- String key = e.getProperty().getName();
- ChangeData[] changeData = e.getChangeSet();
- Object newValue = changeData[0].getNewValue();
- Object oldValue = changeData[0].getOldValue();
- int iRow = changeData[0].getRowIndex();
- if (newValue != oldValue) {
- DynamicObject applyDo;
- switch (key) {
- case "paymenttype":
- this.paymentTypeChanged((DynamicObject)newValue);
- break;
- case "bizdate":
- this.exratedateChanged(newValue);
- break;
- case "exratetable":
- this.currencyF7Changed(false);
- this.setRecInfo("dpexratetable", newValue, Boolean.FALSE);
- break;
- case "exratedate":
- this.currencyF7Changed(false);
- this.setRecInfo("dpexratedate", newValue, Boolean.FALSE);
- break;
- case "payeetype":
- this.payeeTypeChanged((String)newValue, true);
- break;
- case "org":
- this.setOpenOrg();
- this.showBalance();
- break;
- case "payeracctbank":
- this.payerAcctBankF7Changed(e, newValue);
- this.isOnlinebankVisibility();
- break;
- case "payeracctcash":
- this.payerAcctCashChanged((DynamicObject)newValue);
- break;
- case "currency":
- this.currencyF7Changed(true);
- this.setRecInfo("dpcurrency", newValue, Boolean.TRUE);
- this.setExratetableVisibility();
- break;
- case "exchangerate":
- case "agreedquotation":
- case "payquotation":
- case "dppayquotation":
- this.calculateAmt();
- break;
- case "settletype":
- this.settleTypeChanged(e, newValue);
- this.settletNumber((DynamicObject)newValue);
- this.isClearSettleType((DynamicObject)oldValue, (DynamicObject)newValue);
- if (this.isClearFeeSettleType()) {
- this.setValue("fee", (Object)null);
- }
- break;
- case "billstatus":
- PaymentBillPluginHelper.fillToolBar(this, this.getModel(), this.getView());
- break;
- case "e_payableamt":
- this.entries_payableAmtChanged((BigDecimal)newValue, oldValue, iRow);
- break;
- case "e_discountamt":
- this.entries_discountAmtChanged((BigDecimal)newValue, oldValue, iRow);
- break;
- case "entrustorg":
- this.entrustorgChange(newValue);
- break;
- case "paymentchannel":
- this.paymentchannelChange();
- break;
- case "e_refundamt":
- this.refundChange((BigDecimal)newValue, (BigDecimal)oldValue, iRow);
- break;
- case "crosstrantype":
- DynamicObject crossTranType0 = (DynamicObject)this.getModel().getValue("crosstrantype");
- if (crossTranType0 != null) {
- applyDo = BusinessDataServiceHelper.loadSingle(crossTranType0.getPkValue(), "bei_crosstrantype");
- DynamicObjectCollection dynamicObjectCollection = applyDo.getDynamicObjectCollection("entry");
- this.isCrossTranTypeHide(dynamicObjectCollection);
- Iterator var16 = dynamicObjectCollection.iterator();
- while(var16.hasNext()) {
- DynamicObject dyobj = (DynamicObject)var16.next();
- String settleMethod = ResManager.loadKDString("清算方式", "PaymentBillEdit_27", "fi-cas-formplugin", new Object[0]);
- if (kd.bos.dataentity.utils.StringUtils.equals(settleMethod, dyobj.getString("fieldname")) && kd.bos.dataentity.utils.StringUtils.isNotEmpty(dyobj.getString("defaultvalue"))) {
- this.getModel().setValue("settlementmethod", dyobj.getString("defaultvalue"));
- }
- }
- }
- break;
- case "applyid":
- applyDo = (DynamicObject)newValue;
- if (applyDo != null) {
- String name = applyDo.getString("name");
- String phone = applyDo.getString("phone");
- this.getModel().beginInit();
- this.getModel().setValue("applyname", name);
- this.getModel().endInit();
- if (kd.bos.dataentity.utils.StringUtils.isNotEmpty(phone)) {
- this.getModel().setValue("applyphone", phone);
- }
- this.getView().updateView("applyname");
- }
- break;
- case "reccountry":
- case "paycountry":
- this.setCrossPayValue();
- }
- }
- }
- private void isCrossTranTypeHide(DynamicObjectCollection dyobj) {
- QFilter qFilter = new QFilter("enable", "=", '1');
- DynamicObject[] crossTransType = BusinessDataServiceHelper.load("bei_crosstranfield", "id,number", new QFilter[]{qFilter});
- List<Long> number = (List)dyobj.stream().map((e) -> {
- return e.getLong("id");
- }).collect(Collectors.toList());
- Arrays.stream(crossTransType).forEach((e) -> {
- if (!number.contains(e.getLong("id"))) {
- this.getView().setVisible(Boolean.FALSE, new String[]{e.getString("number")});
- }
- });
- }
- private void isClearSettleType(DynamicObject oldValue, DynamicObject newValue) {
- String settletnumber = (String)this.getModel().getValue("settletnumber");
- if (EmptyUtil.isNoEmpty(settletnumber) && Objects.nonNull(oldValue) && SettleMentTypeEnum.CREDIT.getValue().equals(oldValue.getString("settlementtype")) && (Objects.nonNull(newValue) && !SettleMentTypeEnum.CREDIT.getValue().equals(newValue.getString("settlementtype")) || Objects.isNull(newValue))) {
- this.getModel().setValue("settletnumber", (Object)null);
- this.getModel().setValue("sourcebilltype", (Object)null);
- this.getModel().setValue("sourcebillid", (Object)null);
- this.getModel().setValue("sourcetype", "CAS");
- this.getModel().deleteEntryData("billhead_lk");
- }
- }
- private void settletNumber(DynamicObject newValue) {
- if (!Objects.isNull(newValue)) {
- Object settlementType = newValue.get("settlementtype");
- DynamicObject org = (DynamicObject)this.getModel().getValue("org");
- String appId;
- if (Objects.nonNull(org)) {
- appId = AppMetadataCache.getAppInfo("cdm").getId();
- boolean visible = false;
- if (!Objects.equals(settlementType, SettleMentTypeEnum.BUSINESS.getValue()) && !Objects.equals(settlementType, SettleMentTypeEnum.BANK.getValue())) {
- if (Objects.equals(settlementType, SettleMentTypeEnum.PROMISSORY.getValue())) {
- visible = (Boolean) SystemParamServiceHelper.getAppParameter(appId, "08", (Long)org.getPkValue(), "ischeck");
- } else if (Objects.equals(settlementType, SettleMentTypeEnum.CHECK.getValue())) {
- visible = (Boolean)SystemParamServiceHelper.getAppParameter(appId, "08", (Long)org.getPkValue(), "ispromissorynote");
- }
- } else {
- visible = (Boolean)SystemParamServiceHelper.getAppParameter(appId, "08", (Long)org.getPkValue(), "isdraft");
- }
- this.getView().setVisible(!visible, new String[]{"settletnumber"});
- this.getView().setVisible(visible, new String[]{"draftbill"});
- }
- appId = this.getString("settletnumber");
- if (PayBillHepler.isCreditSettlement(newValue) && appId != null && appId.trim().length() > 0 && "cas_payapplybill".equals(this.getString("sourcebilltype"))) {
- this.getView().setEnable(false, new String[]{"settletype", "settletnumber"});
- }
- }
- }
- private void refundChange(BigDecimal newValue, BigDecimal oldValue, int iRow) {
- IBillModel model = (IBillModel)this.getModel();
- BigDecimal e_actamt = (BigDecimal)model.getValue("e_actamt", iRow);
- if (BigDecimal.ZERO.compareTo(newValue) != 0) {
- if (BigDecimal.ZERO.compareTo(newValue) > 0) {
- model.setValue("e_refundamt", oldValue, iRow);
- this.getView().showTipNotification(ResManager.loadKDString("退款金额不能为零", "PaymentBillEdit_21", "fi-cas-formplugin", new Object[0]));
- } else if (e_actamt.compareTo(newValue) < 0) {
- model.setValue("e_refundamt", oldValue, iRow);
- this.getView().showTipNotification(ResManager.loadKDString("退款金额不能大于付款金额", "PaymentBillEdit_20", "fi-cas-formplugin", new Object[0]));
- }
- }
- }
- private void paymentchannelChange() {
- if (this.isBeiBePay()) {
- this.setValue("fee", (Object)null);
- }
- this.isOnlinebankVisibility();
- this.ctrBeInfoVisibility();
- this.changePayeeValue();
- }
- private void entrustorgChange(Object newValue) {
- if (null != newValue) {
- this.getModel().setValue("settletype", (Object)null);
- } else {
- DynamicObject defaultSettleType = BaseDataHelper.getDefaultSettleType();
- this.setValue("settletype", defaultSettleType);
- }
- }
- private void addEntryCache() {
- DynamicObjectCollection entry = this.getModel().getEntryEntity("entry");
- List<Map<String, Object>> list = new ArrayList();
- Iterator var3 = entry.iterator();
- while(var3.hasNext()) {
- DynamicObject row = (DynamicObject)var3.next();
- Map<String, Object> map = new HashMap();
- map.put("e_expenseitem", row.get("e_expenseitem") == null ? null : ((DynamicObject)row.get("e_expenseitem")).getPkValue());
- map.put("e_payableamt", row.get("e_payableamt"));
- map.put("project", row.get("project") == null ? null : row.getDynamicObject("project").getPkValue());
- map.put("e_fundflowitem", row.get("e_fundflowitem") == null ? null : row.getDynamicObject("e_fundflowitem").getPkValue());
- map.put("e_remark", row.get("e_remark"));
- list.add(map);
- }
- Map<String, List<Map<String, Object>>> map = new HashMap();
- map.put("entry", list);
- String mapJson = SerializationUtils.toJsonString(map);
- this.getPageCache().put("entry", mapJson);
- }
- private void paymentTypeChanged(DynamicObject paymentType) {
- String entrance = (String)this.getModel().getValue("entrance");
- boolean isAp;
- if (paymentType != null && PaymentTypeEnum.OTR.name().equals(entrance)) {
- isAp = paymentType.getBoolean("ispartpayment");
- Long billTypeID = this.getPk("billtype");
- boolean isChange = false;
- if (isAp) {
- if (!BillTypeConstants.PAYBILL_EXP.equals(billTypeID)) {
- this.addEntryCache();
- this.setValue("billtype", BusinessDataServiceHelper.loadSingleFromCache(BillTypeConstants.PAYBILL_EXP, "bos_billtype"));
- isChange = true;
- }
- } else if (!BillTypeConstants.PAYBILL_OTR.equals(billTypeID)) {
- this.addEntryCache();
- this.setValue("billtype", BusinessDataServiceHelper.loadSingleFromCache(BillTypeConstants.PAYBILL_OTR, "bos_billtype"));
- isChange = true;
- }
- if (isChange) {
- this.getModel().beginInit();
- this.setValue("paymenttype", paymentType);
- this.getModel().endInit();
- this.getView().updateView("paymenttype");
- Label payeebanknumvLable = (Label)this.getControl("payeebanknumv");
- payeebanknumvLable.setText("");
- Label recaccbanknamevLable = (Label)this.getControl("recaccbanknamev");
- recaccbanknamevLable.setText("");
- Label payeebanknamevLable = (Label)this.getControl("payeebanknamev");
- payeebanknamevLable.setText("");
- Label recbanknumbervLable = (Label)this.getControl("recbanknumberv");
- recbanknumbervLable.setText("");
- }
- }
- this.setEntryAmountCaption();
- if (paymentType != null) {
- isAp = paymentType.getBoolean("ispartpayment");
- this.getView().setVisible(isAp, new String[]{"settleorg"});
- this.settleOrg(false);
- DynamicObject fundflowitem = paymentType.getDynamicObject("fundflowitem");
- this.fillFundflowItem(true, fundflowitem);
- }
- }
- private void settleTypeChanged(PropertyChangedArgs e, Object newValue) {
- this.ctrBeInfoVisibility();
- DynamicObject settleType = (DynamicObject)newValue;
- DynamicObject accountCash;
- if (BaseDataHelper.isSettleTypeCash(settleType)) {
- this.setValue("payeracctbank", (Object)null);
- this.setValue("payerbank", (Object)null);
- accountCash = this.getDynamicObject("payeracctcash");
- if (accountCash == null) {
- this.setValue("payeracctcash", AccountCashHelper.getDefaultAccountcash(this.getPk("org"), "payer"));
- }
- this.setValue("isdiffcur", "0");
- this.getView().setVisible(false, new String[]{"isdiffcur"});
- } else {
- this.setValue("payeracctcash", (Object)null);
- this.getView().setVisible(true, new String[]{"isdiffcur"});
- }
- this.setPayerInfo4Lb();
- accountCash = this.getDynamicObject("payeracctbank");
- this.setPaymentChannelValue(accountCash, Boolean.TRUE);
- this.changePayeeValue();
- }
- private void ctrBeInfoVisibility() {
- boolean isBePay = this.isBePay();
- this.getView().setVisible(!this.isDraft(), new String[]{"settletnumber"});
- this.getView().setVisible(this.isDraft(), new String[]{"draftbill"});
- this.getView().setVisible(isBePay, new String[]{"usage"});
- }
- private boolean isDraft() {
- DynamicObject settleType = (DynamicObject)this.getModel().getValue("settletype");
- if (settleType == null) {
- return false;
- } else {
- String settlementType = settleType.getString("settlementtype");
- return Objects.equals(settlementType, SettleMentTypeEnum.BANK.getValue()) || Objects.equals(settlementType, SettleMentTypeEnum.BUSINESS.getValue()) || Objects.equals(settlementType, SettleMentTypeEnum.CHECK.getValue()) || Objects.equals(settlementType, SettleMentTypeEnum.PROMISSORY.getValue());
- }
- }
- private void exratedateChanged(Object newValue) {
- if (newValue != null) {
- this.setValue("exratedate", newValue);
- this.setValue("dpexratedate", newValue);
- }
- }
- private void currencyF7Changed(boolean reBalance) {
- if (reBalance) {
- this.showBalance();
- }
- this.setExchangerateEditable();
- }
- private void entries_payableAmtChanged(BigDecimal payableAmt, Object oldValue, int iRow) {
- IBillModel model = (IBillModel)this.getModel();
- BigDecimal discountAmt = (BigDecimal)model.getValue("e_discountamt", iRow);
- discountAmt = discountAmt != null ? discountAmt : BigDecimal.ZERO;
- if (discountAmt.abs().compareTo(payableAmt.abs()) > 0) {
- this.getView().showTipNotification(String.format(ResManager.loadKDString("现金折扣绝对值不允许大于应付金额绝对值!", "PaymentBillEdit_2", "fi-cas-formplugin", new Object[0])));
- this.setValue("e_payableamt", oldValue, iRow);
- } else {
- this.calculateAmt();
- }
- }
- private void entries_discountAmtChanged(BigDecimal discountAmt, Object oldValue, int iRow) {
- IBillModel model = (IBillModel)this.getModel();
- BigDecimal payableAmt = (BigDecimal)model.getValue("e_payableamt", iRow);
- payableAmt = payableAmt != null ? payableAmt : BigDecimal.ZERO;
- if (discountAmt.abs().compareTo(payableAmt.abs()) > 0) {
- this.getView().showTipNotification(String.format(ResManager.loadKDString("现金折扣绝对值不允许大于应付金额绝对值!", "PaymentBillEdit_2", "fi-cas-formplugin", new Object[0])));
- this.setValue("e_discountamt", oldValue, iRow);
- } else {
- this.calculateAmt();
- }
- }
- private void calculateAmt() {
- DynamicObject basecurrency = this.getDynamicObject("basecurrency");
- BigDecimal exchangeRate = (BigDecimal)this.getModel().getValue("exchangerate");
- String quotation = this.getString("payquotation");
- int round = 10;
- if (basecurrency != null) {
- round = basecurrency.getInt("amtprecision");
- }
- int count = this.getModel().getEntryRowCount("entry");
- BigDecimal sumAmt = BigDecimal.ZERO;
- BigDecimal sumLocalAmt = BigDecimal.ZERO;
- for(int i = 0; i < count; ++i) {
- DynamicObject rowInfo = this.getModel().getEntryRowEntity("entry", i);
- BigDecimal payAmount = rowInfo.getBigDecimal("e_payableamt");
- if (payAmount != null) {
- this.setValue("e_payablelocamt", QuotationHelper.callToCurrency(payAmount, exchangeRate, quotation, round), i);
- }
- BigDecimal discountAmt = rowInfo.getBigDecimal("e_discountamt");
- if (discountAmt != null) {
- this.setValue("e_discountlocamt", QuotationHelper.callToCurrency(discountAmt, exchangeRate, quotation, round), i);
- }
- if (payAmount != null && discountAmt != null) {
- BigDecimal actAmt = payAmount.subtract(discountAmt);
- sumAmt = sumAmt.add(actAmt);
- BigDecimal actLocalAmt = BigDecimal.ZERO;
- actLocalAmt = QuotationHelper.callToCurrency(actAmt, exchangeRate, quotation, round);
- sumLocalAmt = sumLocalAmt.add(actLocalAmt);
- this.setValue("e_actamt", actAmt, i);
- this.setValue("e_localamt", actLocalAmt, i);
- }
- this.setValue("e_unsettledamt", payAmount, i);
- if (payAmount != null) {
- this.setValue("e_unsettledlocalamt", QuotationHelper.callToCurrency(payAmount, exchangeRate, quotation, round), i);
- }
- this.setValue("e_unlockamt", payAmount, i);
- }
- this.setValue("actpayamt", sumAmt);
- this.setValue("localamt", sumLocalAmt);
- this.calculateDpAmt();
- }
- private void calculateDpAmt() {
- DynamicObject dpcurrency = this.getDynamicObject("dpcurrency");
- DynamicObject basecurrency = this.getDynamicObject("basecurrency");
- DynamicObject currency = this.getDynamicObject("currency");
- String dppayquotation = this.getString("dppayquotation");
- String agreedquotation = this.getString("agreedquotation");
- int round = 10;
- if (basecurrency != null) {
- round = basecurrency.getInt("amtprecision");
- }
- int dppayround = 10;
- if (dpcurrency != null) {
- dppayround = dpcurrency.getInt("amtprecision");
- }
- BigDecimal actPayAmt = this.getBigDecimal("actpayamt");
- if (currency != null) {
- actPayAmt = actPayAmt.setScale(currency.getInt("amtprecision"), 4);
- }
- BigDecimal localAmt = this.getBigDecimal("localamt");
- BigDecimal agreedRate = this.getBigDecimal("agreedrate");
- if (agreedRate.compareTo(new BigDecimal(0)) != 0) {
- BigDecimal dpAmt = BigDecimal.ZERO;
- dpAmt = QuotationHelper.callToCurrency(actPayAmt, agreedRate, agreedquotation, dppayround);
- BigDecimal dpExchangeRate = this.getBigDecimal("dpexchangerate");
- BigDecimal dpLocalAmt = BigDecimal.ZERO;
- dpLocalAmt = QuotationHelper.callToCurrency(dpAmt, dpExchangeRate, dppayquotation, round);
- this.getModel().beginInit();
- this.setValue("dpamt", dpAmt);
- this.setValue("dplocalamt", dpLocalAmt);
- this.setValue("lossamt", localAmt.subtract(dpLocalAmt));
- this.getModel().endInit();
- this.getView().updateView("dpamt");
- this.getView().updateView("dplocalamt");
- this.getView().updateView("lossamt");
- }
- }
- private void payeeTypeChanged(String payeeType, boolean isChanged) {
- if (isChanged) {
- this.getView().setVisible(true, new String[]{"flex_addpayee"});
- this.getView().setVisible(false, new String[]{"flex_payeeinfo"});
- this.clearPayeeValue();
- }
- }
- private void clearPayeeValue() {
- Object value = null;
- this.setValue("payeeformid", value);
- this.setValue("payee", value);
- this.setValue("payeename", value);
- this.setValue("payeeaccformid", value);
- this.setValue("payeeacctbank", value);
- this.setValue("payeebanknum", value);
- this.setValue("payeebank", value);
- this.setValue("payeebankname", value);
- this.setValue("recaccbankname", value);
- this.setValue("recbanknumber", value);
- this.setValue("payeenumber", (Object)null);
- this.setValue("supplierBankId", (Object)null);
- }
- private void payerAcctBankF7Changed(PropertyChangedArgs e, Object newValue) {
- DynamicObject payerAcctBank = (DynamicObject)newValue;
- this.ctrBeInfoVisibility();
- this.showBalance();
- if (!FeePayerEnum.REC.getValue().equals(this.getString("feepayer"))) {
- this.setValue("feeactbank", payerAcctBank);
- }
- if (payerAcctBank == null) {
- this.setValue("payerbank", (Object)null);
- this.setPaymentChannelValue((DynamicObject)null, Boolean.TRUE);
- this.setCurrencyEditable();
- } else {
- this.setValue("payerbank", payerAcctBank.getDynamicObject("bank"));
- Boolean isDiffCur = (Boolean)this.getValue("isdiffcur");
- DynamicObject payCurrency = null;
- if (isDiffCur) {
- payCurrency = this.getDynamicObject("dpcurrency");
- } else {
- payCurrency = this.getDynamicObject("currency");
- }
- boolean containCurrency = AccountBankHelper.isAcctBankContainCurrency("bd_accountbanks", payerAcctBank.getPkValue(), payCurrency);
- if (!containCurrency) {
- Long defaultCurrencyId = (Long)payerAcctBank.get("defaultcurrency.id");
- if (isDiffCur) {
- this.setValue("dpcurrency", defaultCurrencyId);
- } else if (this.isBotpCreate()) {
- this.setValueIfAbsent("currency", defaultCurrencyId);
- } else {
- this.setValue("currency", defaultCurrencyId);
- }
- }
- this.setCurrencyEditable();
- this.setOpenOrg();
- this.setPaymentChannelValue(payerAcctBank, Boolean.TRUE);
- this.setSettleTypeValue(payerAcctBank);
- this.settleOrg(true);
- }
- }
- private void setPaymentChannelValue(DynamicObject payerAcctBank, boolean isAdd) {
- List<ComboItem> comboItems = new ArrayList(1);
- ComboEdit paymentChannel = (ComboEdit)this.getControl("paymentchannel");
- DynamicObject settleType = this.getDynamicObject("settletype");
- ComboItem comboItem = new ComboItem();
- comboItem.setValue(PaymentChannelEnum.COUNTER.getValue());
- comboItem.setCaption(new LocaleString(PaymentChannelEnum.COUNTER.getName()));
- ComboItem selectedItem = comboItem;
- comboItems.add(comboItem);
- DynamicObject billtype = this.getDynamicObject("billtype");
- if (null != payerAcctBank && (settleType == null || !"14".equals(settleType.getString("settlementtype"))) && (billtype == null || !BillTypeConstants.PAYBILL_CASH.equals(billtype.getPkValue()))) {
- ComboItem item;
- if (payerAcctBank.getBoolean("isopenbank")) {
- item = new ComboItem();
- item.setValue(PaymentChannelEnum.ONLINEBANK.getValue());
- item.setCaption(new LocaleString(PaymentChannelEnum.ONLINEBANK.getName()));
- selectedItem = item;
- comboItems.add(item);
- }
- if (payerAcctBank.getBoolean("issetbankinterface")) {
- item = new ComboItem();
- item.setValue(PaymentChannelEnum.BEI.getValue());
- item.setCaption(new LocaleString(ResManager.loadKDString(PaymentChannelEnum.BEI.getName(), "PaymentBillEdit_18", "fi-cas-formplugin", new Object[0])));
- selectedItem = item;
- comboItems.add(item);
- }
- String defaultPaymentChannel = "";
- String defChannel;
- if (Objects.nonNull(settleType)) {
- defChannel = settleType.getString("paymentchannel");
- defaultPaymentChannel = settleType.getString("defaultpaymentchannel");
- if (kd.bos.dataentity.utils.StringUtils.isNotEmpty(defChannel)) {
- List<String> paymentChannels = (List)Arrays.stream(defChannel.split(",")).filter(kd.bos.dataentity.utils.StringUtils::isNotEmpty).collect(Collectors.toList());
- comboItems.removeIf((i) -> {
- return !paymentChannels.contains(i.getValue());
- });
- }
- }
- paymentChannel.setComboItems(comboItems);
- if (isAdd || this.isBotpNew() && Objects.isNull(this.getModel().getValue("paymentchannel"))) {
- defChannel = selectedItem.getValue();
- if (settleType != null && !SettleMentTypeEnum.COLLECT.getValue().equals(settleType.getString("settlementtype"))) {
- defChannel = PaymentChannelEnum.COUNTER.getValue();
- }
- if (kd.bos.dataentity.utils.StringUtils.isNotEmpty(defaultPaymentChannel)) {
- defChannel = defaultPaymentChannel;
- }
- String finalDefChannel = defChannel;
- boolean contains = comboItems.stream().anyMatch((itemx) -> {
- return Objects.equals(finalDefChannel, itemx.getValue());
- });
- if (!contains) {
- defChannel = null;
- }
- if ("bei".equalsIgnoreCase(defChannel)) {
- this.getModel().setValue("fee", (Object)null);
- this.getModel().setValue("singlestream", Boolean.FALSE);
- }
- this.getModel().setValue("paymentchannel", defChannel);
- }
- } else {
- paymentChannel.setComboItems(comboItems);
- if (isAdd) {
- this.getModel().setValue("paymentchannel", comboItem.getValue());
- if ("bei".equalsIgnoreCase(comboItem.getValue())) {
- this.getModel().setValue("fee", (Object)null);
- this.getModel().setValue("singlestream", Boolean.FALSE);
- }
- }
- }
- }
- private void payerAcctCashChanged(DynamicObject acctCash) {
- if (acctCash == null) {
- this.setValue("currency", this.getDynamicObject("basecurrency"));
- this.setCurrencyEditable();
- this.showBalance();
- } else {
- Boolean isDiffCur = (Boolean)this.getValue("isdiffcur");
- DynamicObject payCurrency = null;
- if (isDiffCur) {
- payCurrency = this.getDynamicObject("dpcurrency");
- } else {
- payCurrency = this.getDynamicObject("currency");
- }
- boolean containCurrency = AccountBankHelper.isAcctBankContainCurrency("cas_accountcash", acctCash.getPkValue(), payCurrency);
- if (!containCurrency) {
- DynamicObject defaultCurrency = acctCash.getDynamicObject("defaultcurrency");
- if (isDiffCur) {
- this.setValue("dpcurrency", defaultCurrency);
- } else if (this.isBotpCreate()) {
- this.setValueIfAbsent("currency", defaultCurrency);
- } else {
- this.setValue("currency", defaultCurrency);
- }
- }
- this.setCurrencyEditable();
- this.setValue("openorg", acctCash.getDynamicObject("openorg"));
- this.showBalance();
- }
- }
- private void setCurrencyEditable() {
- Boolean isCurrencyEditable = Boolean.TRUE;
- DynamicObject settleType = this.getDynamicObject("settletype");
- boolean isCash = BaseDataHelper.isSettleTypeCash(settleType);
- DynamicObject accountCash;
- if (isCash) {
- accountCash = this.getDynamicObject("payeracctcash");
- if (accountCash != null) {
- isCurrencyEditable = !accountCash.getBoolean("isbycurrency");
- }
- } else {
- accountCash = this.getDynamicObject("payeracctbank");
- if (accountCash != null) {
- isCurrencyEditable = accountCash.getBoolean("ismulcurrency");
- }
- }
- Boolean isDiffCur = (Boolean)this.getValue("isdiffcur");
- if (isDiffCur) {
- this.getView().setEnable(isCurrencyEditable, new String[]{"dpcurrency"});
- } else {
- this.getView().setEnable(isCurrencyEditable, new String[]{"currency"});
- }
- if (this.isBotpCreate()) {
- this.getView().setEnable(false, new String[]{"currency"});
- }
- }
- private void showBalance() {
- this.getView().setEnable(true, new String[]{"bar_save", "bar_submit", "bar_beforesubmit"});
- if (this.getModel().getValue("org") != null) {
- Long orgID = this.getPk("org");
- Long acctBankId = this.getPk("payeracctbank");
- Long acctCashId = this.getPk("payeracctcash");
- Long currencyId = this.getPk("currency");
- boolean var5 = (Boolean)this.getValue("isdiffcur");
- if (var5) {
- currencyId = this.getPk("dpcurrency");
- }
- if (orgID != null && (acctBankId != null || acctCashId != null) && currencyId != null) {
- DynamicObject currency = BusinessDataServiceHelper.loadSingleFromCache(currencyId, "bd_currency");
- try {
- BigDecimal currentBalance = BigDecimal.ZERO;
- if (CasHelper.isNotEmpty(acctBankId)) {
- DynamicObject acctBank = BusinessDataServiceHelper.loadSingle(acctBankId, "am_accountbank", "acctclassify");
- if (Objects.equals(acctBank.get("acctclassify"), AcctClassifyEnum.I.getValue())) {
- currentBalance = getCurrBalance(acctBank);
- } else {
- String balanceType = SystemParameterFcsHelper.getParameterString(orgID, "balancevalue");
- Object result = DispatchServiceHelper.invokeBizService("tmc", "fbp", "balanceModelService", "getRunningBalance", new Object[]{balanceType, acctBankId, currencyId});
- BizBalanceModelBean bizBalanceModelBean = (BizBalanceModelBean)SerializationUtils.fromJsonString(SerializationUtils.toJsonString(result), BizBalanceModelBean.class);
- currentBalance = bizBalanceModelBean.getAmount();
- }
- }
- if (CasHelper.isNotEmpty(acctCashId)) {
- currentBalance = AcctBalanceHelper.getAccountCashCurrBalance(orgID, acctCashId, currencyId, new Date());
- ((Label)this.getControl("balancelb")).setText(ResManager.loadKDString("账面余额:", "PaymentBillEdit_4", "fi-cas-formplugin", new Object[0]));
- LocaleString content = new LocaleString(ResManager.loadKDString("付款账户为现金账户时,账面余额即为当前时点现金日记账账面余额。", "PaymentBillEdit_3", "fi-cas-formplugin", new Object[0]));
- ((Label)this.getControl("balancelb")).addTips(new Tips("text", (LocaleString)null, content, false, (List)null));
- }
- this.labCurrencySign = currency.getString("sign");
- this.currencyAmtprecision = currency.getInt("amtprecision");
- this.initFormat();
- ((Label)this.getControl("balancev")).setText(this.currencyFormat.format(currentBalance == null ? 0 : currentBalance));
- } catch (Exception var12) {
- this.clearBalanceValue();
- logger.error(var12);
- }
- } else {
- this.clearBalanceValue();
- }
- }
- }
- private static BigDecimal getCurrBalance(DynamicObject bankAcct) {
- DynamicObject[] load = BusinessDataServiceHelper.load("ifm_accountbalance", "amount", (new QFilter("accountbank", "=", bankAcct.getPkValue())).toArray(), "bizdate desc", 1);
- return load.length > 0 ? load[0].getBigDecimal("amount") : BigDecimal.ZERO;
- }
- private void clearBalanceValue() {
- ((Label)this.getControl("balancelb")).setText(ResManager.loadKDString("即时余额:", "PaymentBillEdit_5", "fi-cas-formplugin", new Object[0]));
- LocaleString content = new LocaleString(ResManager.loadKDString("付款账户当前时点余额。付款账户即时余额取值来源有银企互联余额表、出纳/资金结算日记账;系统支持四种取值模式:(1)完全取自余额表;(2)完全取自日记账;(3)优先取余额表,再取日记账;(4)开通银企取余额表,未开通银企取日记账。具体采取何种模式请前往【系统服务云】-【配置工具】-【系统参数】-【资金云】-【资金公共服务】中查看。", "PaymentBillEdit_6", "fi-cas-formplugin", new Object[0]));
- ((Label)this.getControl("balancelb")).addTips(new Tips("text", (LocaleString)null, content, false, (List)null));
- DynamicObject currency = this.getDynamicObject("currency");
- Boolean isDiffCur = (Boolean)this.getValue("isdiffcur");
- if (isDiffCur) {
- currency = this.getDynamicObject("dpcurrency");
- }
- if (!CasHelper.isEmpty(currency)) {
- this.labCurrencySign = currency.getString("sign");
- this.currencyAmtprecision = currency.getInt("amtprecision");
- this.initFormat();
- ((Label)this.getControl("balancev")).setText(this.currencyFormat.format(BigDecimal.ZERO));
- } else {
- ((Label)this.getControl("balancev")).setText("¥0.00");
- }
- }
- public void click(EventObject evt) {
- super.click(evt);
- this.getView().setEnable(true, 0, new String[]{"e_payableamt", "e_discountamt", "contractnumber", "e_corebillno", "e_corebillentryseq"});
- Control c = (Control)evt.getSource();
- switch (c.getKey().toLowerCase()) {
- case "changepayer":
- this.changePayerPage();
- break;
- case "addpayeelb1":
- this.addPayee();
- break;
- case "addpayeelb2":
- this.addPayee();
- break;
- case "changepayee":
- this.changePayeePage();
- break;
- case "settletnumber":
- this.settleNumberClick();
- break;
- case "applyname":
- BasedataEdit applyF7 = (BasedataEdit)this.getControl("applyid");
- applyF7.click();
- }
- }
- private void settleNumberClick() {
- DynamicObject settleType = (DynamicObject)this.getModel().getValue("settletype");
- if (EmptyUtil.isNoEmpty(settleType) && SettleMentTypeEnum.CREDIT.getValue().equals(settleType.getString("settlementtype"))) {
- String appId = AppMetadataCache.getAppInfo("lc").getId();
- DynamicObject org = (DynamicObject)this.getModel().getValue("org");
- AppParam param = new AppParam();
- param.setAppId(appId);
- param.setOrgId(org.getLong("id"));
- param.setViewType("08");
- String paymethod = (String)SystemParamServiceHelper.loadAppParameterFromCache(param, "paymethod");
- if ("0".equals(paymethod)) {
- CloseCallBack closeCallBack = new CloseCallBack(this, "settletnumber");
- QFilter qFilterSour = new QFilter("arrivalstatus", "=", "arrival_confirm");
- qFilterSour.and("arrivalway", "!=", "protest");
- qFilterSour.and(QFilter.sqlExpress("arrivalamount", ">", "flockamount"));
- qFilterSour.and("isinit", "=", '0');
- qFilterSour.and("eassrcid", "=", "");
- CasBotpHelper.doBeforeDraw(this.getView(), "lc_arrival", this.getModel().getDataEntityType().getName(), false, qFilterSour, closeCallBack);
- }
- }
- }
- private void changePayeePage() {
- this.opreatePayee(Boolean.FALSE);
- }
- private void addPayee() {
- this.opreatePayee(Boolean.TRUE);
- }
- private void opreatePayee(Boolean isAddNew) {
- Map<String, Object> paramMap = new HashMap();
- if (this.isHwControl()) {
- paramMap.put("hw_payeesiteid", this.getValue("hw_payeesiteid"));
- }
- paramMap.put("org", this.getPk("org"));
- paramMap.put("asstActType", this.getString("payeetype"));
- paramMap.put("isBE", this.isBePay());
- paramMap.put("billtype", Optional.ofNullable(this.getDynamicObject("billtype")).map(DataEntityBase::getPkValue).orElse((Object)null));
- FormShowParameter parameter = new FormShowParameter();
- parameter.getOpenStyle().setShowType(ShowType.Modal);
- parameter.setFormId("cas_addpayee");
- parameter.setStatus(isAddNew ? OperationStatus.ADDNEW : OperationStatus.EDIT);
- parameter.getCustomParams().putAll(paramMap);
- parameter.setCloseCallBack(new CloseCallBack(this, "addpayee"));
- this.getView().showForm(parameter);
- }
- private void addPayeeValue(Map<String, Object> resultMap) {
- this.setValue("payeeformid", resultMap.get("payeeformid"));
- this.setValue("payee", resultMap.get("payee"));
- this.setValue("payeename", resultMap.get("payeename"));
- if (this.isHwControl()) {
- this.setValue("hw_payeesiteid", resultMap.get("hw_payeesiteid"));
- this.setValue("scorg", resultMap.get("scorg"));
- }
- this.setValue("payeenumber", resultMap.get("payeenumber"));
- this.setValue("payeeaccformid", resultMap.get("payeeaccformid"));
- this.setValue("payeeacctbank", resultMap.get("payeeacctbank"));
- this.setValue("payeeacctcash", resultMap.get("payeeacctcash"));
- this.setValue("payeebanknum", resultMap.get("payeebanknum"));
- this.setValue("payeebank", resultMap.get("payeebank"));
- this.setValue("payeebankname", resultMap.get("payeebankname"));
- this.setValue("recaccbankname", resultMap.get("recaccbankname"));
- String beBankNumber = (String)resultMap.get("recbanknumber");
- this.setValue("recbanknumber", beBankNumber);
- this.setValue("reccountry", resultMap.get("reccountry"));
- this.setValue("recprovince", resultMap.get("recprovince"));
- this.setValue("reccity", resultMap.get("reccity"));
- this.setValue("recswiftcode", resultMap.get("swift_code"));
- this.setValue("recroutingnum", resultMap.get("routingnum"));
- this.setValue("recothercode", resultMap.get("other_code"));
- this.setValue("recbankaddress", resultMap.get("address_eng"));
- this.setValue("recemail", resultMap.get("payeeemail"));
- this.setValue("payeecurrency", resultMap.get("payeecurrency"));
- this.setValue("recaddress", resultMap.get("payeeaddress"));
- this.setValue("supplierBankId", resultMap.get("supplierBankId"));
- PaymentBillPluginHelper.fillProxyBeBankInfo(this.getModel(), this.getView(), true);
- Boolean isDiffCur = (Boolean)this.getValue("isdiffcur");
- Object recCurId = resultMap.get("payeecurrency");
- if (recCurId != null && ((Long)recCurId).intValue() != 0 && !this.isBotpCreate() && isDiffCur) {
- this.setValue("currency", resultMap.get("payeecurrency"));
- }
- if (AsstActTypeEnum.SUPPLIER.getValue().equals(this.getModel().getValue("payeetype"))) {
- DynamicObject new_settletype = (DynamicObject)resultMap.get("settlment");
- DynamicObject old_settletype = (DynamicObject)this.getModel().getValue("settletype");
- if (!CasHelper.isEquals(new_settletype, old_settletype) && new_settletype != null) {
- this.setValue("settletype", new_settletype);
- }
- }
- this.setPayeeInfo4Lb();
- this.getView().setVisible(false, new String[]{"flex_addpayee"});
- this.getView().setVisible(true, new String[]{"flex_payeeinfo"});
- }
- private void changePayeeValue() {
- this.setPayeeInfo4Lb();
- boolean addpayView = this.hasPayeeInfo();
- this.getView().setVisible(!addpayView, new String[]{"flex_addpayee"});
- this.getView().setVisible(addpayView, new String[]{"flex_payeeinfo"});
- }
- private void setPayeeInfo4Lb() {
- String payeeformid = this.getString("payeetype");
- List<String> payeetypeList = Arrays.asList("bos_org", "bd_supplier", "bd_customer", "bos_user");
- Long payeeId = Long.parseLong(this.getValue("payee") == null ? "0" : this.getValue("payee").toString());
- String payeeType = this.getString("payeetype");
- if (isOther(payeeType)) {
- this.setValue("payeenamev", this.getValue("payeename"));
- } else if (CasHelper.isNotEmpty(payeeformid) && payeetypeList.contains(payeeformid) && CasHelper.isNotEmpty(payeeId)) {
- DynamicObject payeeObj = BusinessDataServiceHelper.loadSingleFromCache(payeeId, payeeformid, "name");
- this.setValue("payeenamev", CasHelper.getLocalValue(payeeObj, "name"));
- }
- Image payeePic = (Image)this.getControl("payeepic");
- String defaultUrl = BaseDataHelper.getPictureUrl(payeeId, payeeformid);
- defaultUrl = defaultUrl == null ? "/icons/pc/entrance/cn_sk_80_80.png" : defaultUrl;
- payeePic.setUrl(defaultUrl);
- ((Label)this.getControl("payeebanknumv")).setText(StringUtils.splitString(this.getString("payeebanknum"), 4, " "));
- ((Label)this.getControl("payeebanknamev")).setText(this.getString("payeebankname"));
- ((Label)this.getControl("recaccbanknamev")).setText(this.getString("recaccbankname"));
- ((Label)this.getControl("recbanknumberv")).setText(this.getString("recbanknumber"));
- }
- private void changePayerPage() {
- DynamicObject settleType = this.getDynamicObject("settletype");
- Object sourceBillType = this.getModel().getValue("sourcebilltype");
- Map<String, Object> payerInfo = new HashMap();
- payerInfo.put("cash", BaseDataHelper.isSettleTypeCash(settleType));
- payerInfo.put("virtual", BaseDataHelper.isSettleTypeVirtual(settleType));
- payerInfo.put("sourceBillType", sourceBillType);
- FormShowParameter parameter = new FormShowParameter();
- parameter.getOpenStyle().setShowType(ShowType.Modal);
- parameter.setFormId("cas_changepayer");
- parameter.getCustomParams().putAll(payerInfo);
- parameter.setCloseCallBack(new CloseCallBack(this, "changepayer"));
- this.getView().showForm(parameter);
- }
- private void changePayerValue(Map<String, Object> returnMap) {
- boolean isChangeCur = false;
- IBillModel model = (IBillModel)this.getModel();
- DynamicObject new_org = (DynamicObject)returnMap.get("org");
- DynamicObject old_org = (DynamicObject)model.getValue("org");
- DynamicObject cur = OrgHelper.getBaseCurrency((Long)new_org.getPkValue());
- if (!CasHelper.isEquals(new_org, old_org)) {
- this.setValue("org", new_org);
- this.setValue("basecurrency", cur);
- this.setValue("draftbill", (Object)null);
- isChangeCur = true;
- }
- DynamicObject new_acctcash = (DynamicObject)returnMap.get("payeracctcash");
- DynamicObject old_acctcash = (DynamicObject)model.getValue("payeracctcash");
- if (!CasHelper.isEquals(new_acctcash, old_acctcash)) {
- this.setValue("payeracctcash", new_acctcash);
- isChangeCur = false;
- }
- DynamicObject new_acctbank = (DynamicObject)returnMap.get("payeracctbank");
- DynamicObject old_acctbank = (DynamicObject)model.getValue("payeracctbank");
- if (!CasHelper.isEquals(new_acctbank, old_acctbank)) {
- this.setValue("payeracctbank", new_acctbank);
- isChangeCur = false;
- }
- DynamicObject new_bank = (DynamicObject)returnMap.get("payerbank");
- DynamicObject old_bank = (DynamicObject)model.getValue("payerbank");
- if (!CasHelper.isEquals(new_bank, old_bank)) {
- this.setValue("payerbank", new_bank);
- }
- this.setPayerInfo4Lb();
- this.settleOrg(true);
- if (isChangeCur) {
- this.setValue("currency", cur);
- }
- String uniformsocialcreditcode = new_org.getString("uniformsocialcreditcode");
- if (kd.bos.dataentity.utils.StringUtils.isNotBlank(uniformsocialcreditcode)) {
- this.setValue("uniformsocialcreditcode", uniformsocialcreditcode);
- }
- String payerNumber = new_org.getString("number");
- if (kd.bos.dataentity.utils.StringUtils.isNotBlank(payerNumber)) {
- this.setValue("payernumber", payerNumber);
- }
- this.setValue("openorg", returnMap.get("openorg"));
- }
- public void closedCallBack(ClosedCallBackEvent e) {
- super.closedCallBack(e);
- Map data;
- if ("changepayer".equals(e.getActionId())) {
- data = (Map)e.getReturnData();
- if (data != null) {
- this.changePayerValue(data);
- }
- } else if ("addpayee".equals(e.getActionId())) {
- data = (Map)e.getReturnData();
- if (data != null) {
- this.addPayeeValue(data);
- this.setCrossPayValue();
- }
- } else {
- String confirm;
- if ("beforesubmit".equals(e.getActionId())) {
- confirm = (String)e.getReturnData();
- if (confirm != null && confirm.equals("ok")) {
- this.getView().invokeOperation("submit");
- }
- } else if ("beforesubmitnew".equals(e.getActionId())) {
- confirm = (String)e.getReturnData();
- if (confirm != null && confirm.equals("ok")) {
- this.getView().invokeOperation("submitandnew");
- }
- } else {
- OperateOption option;
- if (kd.bos.dataentity.utils.StringUtils.equals(e.getActionId(), "KEY_DIFFPAY_CALLBACK")) {
- data = (Map)e.getReturnData();
- if (data != null) {
- option = OperateOption.create();
- Iterator var4 = data.entrySet().iterator();
- while(var4.hasNext()) {
- Map.Entry<String, Object> entry = (Map.Entry)var4.next();
- if (entry.getValue() != null) {
- option.setVariableValue((String)entry.getKey(), entry.getValue().toString());
- }
- }
- option.setVariableValue("payConfirm", "1");
- this.getView().invokeOperation("pay", option);
- }
- } else if (kd.bos.dataentity.utils.StringUtils.equals(e.getActionId(), "CALLBACK_SELECTDRAFT")) {
- Object draftIdList = e.getReturnData();
- if (draftIdList != null) {
- option = OperateOption.create();
- option.setVariableValue("draftids", JSON.toJSONString(draftIdList));
- this.getView().invokeOperation("pay", option);
- }
- } else if (kd.bos.dataentity.utils.StringUtils.equals(e.getActionId(), "settletnumber")) {
- ListSelectedRowCollection rows = (ListSelectedRowCollection)e.getReturnData();
- if (EmptyUtil.isNoEmpty(rows)) {
- this.getModel().deleteEntryData("entry");
- CasBotpHelper.doDraw(this.getView(), "lc_arrival", this.getModel().getDataEntityType().getName(), rows);
- }
- }
- }
- }
- PaymentBillPluginHelper.isSchePayEditable(this, this.getModel());
- DynamicObject org = this.getDynamicObject("org");
- InitCheckPluginHelper.checkInitForPlugin(this.getView(), org, new String[]{"bar_save", "bar_submit"});
- }
- public void beforeItemClick(BeforeItemClickEvent evt) {
- String opKey = evt.getOperationKey();
- if ("delete".equals(opKey)) {
- if ("cas_recbill".equals(this.getString("sourcebilltype"))) {
- evt.setCancel(true);
- String billno = this.getString("billno");
- this.getView().showConfirm(String.format(ResManager.loadKDString("%s付款单由内部收付协同业务自动生成,是否确认删除?", "PaymentBillEdit_23", "fi-cas-formplugin", new Object[0]), billno), MessageBoxOptions.YesNo, ConfirmTypes.Default, new ConfirmCallBackListener("CONFIRM_DEL_CALLBACK", this));
- }
- } else if ("pay".equals(opKey)) {
- DynamicObject dataEntity = this.getModel().getDataEntity();
- long orgDynId = dataEntity.getDynamicObject("org").getLong("id");
- boolean selectDraftFlag = SystemParameterHelper.getParameterBoolean(orgDynId, "cs122");
- String settleTypeKey = DraftHelper.getKey(dataEntity.get("settletype"));
- logger.info("selectDraftFlag is:" + selectDraftFlag + ",key:" + settleTypeKey);
- boolean isdraft = SystemParameterHelper.getCdmParameterBoolean(orgDynId, "isdraft");
- boolean ischeck = SystemParameterHelper.getCdmParameterBoolean(orgDynId, "ischeck");
- boolean ispromissorynote = SystemParameterHelper.getCdmParameterBoolean(orgDynId, "ispromissorynote");
- if (!CasHelper.isEmpty(settleTypeKey)) {
- String typeName;
- switch (settleTypeKey) {
- case "isdraft":
- if (isdraft && !selectDraftFlag) {
- typeName = ResManager.loadKDString("汇票", "DraftHelper_4", "fi-cas-common", new Object[0]);
- this.cancelAndWarn(evt, dataEntity, typeName);
- }
- break;
- case "ischeck":
- if (ischeck && !selectDraftFlag) {
- typeName = ResManager.loadKDString("支票", "DraftHelper_5", "fi-cas-common", new Object[0]);
- this.cancelAndWarn(evt, dataEntity, typeName);
- }
- break;
- case "ispromissorynote":
- if (ispromissorynote && !selectDraftFlag) {
- typeName = ResManager.loadKDString("本票", "DraftHelper_6", "fi-cas-common", new Object[0]);
- this.cancelAndWarn(evt, dataEntity, typeName);
- }
- }
- }
- }
- if ("commitbe".equals(opKey)) {
- OperateOption op = OperateOption.create();
- op.setVariableValue("ishasright", "true");
- OperationResult operationResult = OperationServiceHelper.executeOperate("beforecommitbe", "nckd_cas_arbill", new Object[]{this.getModel().getDataEntity().getPkValue()}, op);
- if (!operationResult.isSuccess() && operationResult.isNeedSign()) {
- SignOperateCallback signOperate = new SignOperateCallback(this.getView(), this, op, ClientCallback.SignClientType.Secondry, "signbeforecommitbe");
- OperationResult ops = signOperate.sign(operationResult);
- evt.setCancel(true);
- if (!ops.isSuccess()) {
- logger.info(" beforecommitbe sign error ");
- if (ops.isShowMessage() && EmptyUtil.isNoEmpty(ops.getMessage())) {
- this.getView().showTipNotification(ops.getMessage());
- }
- }
- }
- }
- }
- private void cancelAndWarn(BeforeItemClickEvent evt, DynamicObject dataEntity, String typeName) {
- String msg = String.format(ResManager.loadKDString("%1$s :结算方式类别为%2$s的付款单不支持确认付款", "DraftHelper_7_1", "fi-cas-common", new Object[0]), dataEntity.getString("billno"), typeName);
- evt.setCancel(true);
- this.getView().showTipNotification(msg);
- }
- public void itemClick(ItemClickEvent evt) {
- super.itemClick(evt);
- String key = evt.getItemKey().toLowerCase();
- if ("bar_beforesubmit".equals(key)) {
- this.getView().invokeOperation("beforesubmit");
- } else if ("bar_cancelpay".equals(key)) {
- this.cancelPay();
- } else if ("viewsettle".equals(key)) {
- this.viewSettle();
- } else if ("bar_save".equals(key)) {
- this.getView().updateView("feeactbank");
- this.getView().updateView("feecurrency");
- }
- }
- public void afterDeleteRow(AfterDeleteRowEventArgs e) {
- super.afterDeleteRow(e);
- this.calculateAmt();
- }
- public void afterBindData(EventObject e) {
- super.afterBindData(e);
- DynamicObject org = this.getDynamicObject("org");
- InitCheckPluginHelper.checkInitForPlugin(this.getView(), org, new String[]{"bar_save", "bar_submit"});
- DynamicObject paymentBill = this.getModel().getDataEntity();
- Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
- Object showConer = customParams.get("showConer");
- List<IApprovalRecordGroup> workflowlist = WorkflowServiceHelper.getAllApprovalRecord(paymentBill.getPkValue().toString());
- if (CollectionUtils.isEmpty(workflowlist) || CasHelper.isEmpty(showConer)) {
- SplitContainer control = (SplitContainer)this.getControl("splitcontainerap");
- control.hidePanel(SplitDirection.right, true);
- control.setCollapse("splitpanelap1", true);
- }
- Long orgId = this.getPk("org");
- DynamicObject cur;
- DynamicObject payeracctbank;
- if (this.isBotpNew()) {
- if (orgId == null) {
- this.getView().setEnable(false, new String[]{"bar_save", "bar_submit", "bar_beforesubmit"});
- this.getView().showErrorNotification(ResManager.loadKDString("请在上游单据维护付款组织来源再推付款单。", "PaymentBillEdit_7", "fi-cas-formplugin", new Object[0]));
- return;
- }
- cur = OrgHelper.getBaseCurrency(orgId);
- if (cur == null) {
- this.getView().setEnable(false, new String[]{"bar_save", "bar_submit", "bar_beforesubmit"});
- this.getView().setVisible(false, new String[]{"bar_refund_save", "bar_submitandnew", "bar_del", "bar_audit", "bar_unaudit", "bar_pay", "bar_cancelpay", "bar_commitbe", "genvoucher", "deletevoucher", "copyentryrow"});
- this.getView().getFormShowParameter().setStatus(OperationStatus.VIEW);
- this.getView().showErrorNotification(SystemStatusCtrolHelper.notFinishInitSetMsg(CasHelper.getLocalValue(this.getDynamicObject("org"), "name")));
- return;
- }
- this.setValueIfAbsent("basecurrency", cur);
- payeracctbank = this.getDynamicObject("payeracctbank");
- if (payeracctbank != null) {
- this.setValueIfAbsent("payerbank", payeracctbank.getDynamicObject("bank"));
- this.setValueIfAbsent("openorg", payeracctbank.getDynamicObject("openorg"));
- }
- this.setNetBankAcctVisible();
- DynamicObject paymentType = paymentBill.getDynamicObject("paymenttype");
- if (paymentType != null) {
- paymentType = BusinessDataServiceHelper.loadSingleFromCache(paymentType.getPkValue(), "cas_paymentbilltype", "id,fundflowitem");
- this.fillFundflowItem(false, paymentType.getDynamicObject("fundflowitem"));
- }
- }
- if (null == this.getDynamicObject("exratetable")) {
- this.setDefaultExratetable(orgId);
- }
- PaymentBillPluginHelper.fillToolBar(this, this.getModel(), this.getView());
- this.setPayerInfo4Lb();
- this.changePayeeValue();
- this.setEntryAmountCaption();
- this.ctrChangeLableVisible();
- this.setCurrencyEditable();
- this.ctrBeInfoVisibility();
- this.setExchangerateEditable();
- this.ctrRefundInfoVisibility();
- cur = this.getDynamicObject("payeracctbank");
- this.setPaymentChannelValue(cur, Boolean.FALSE);
- this.setDiffCurInfo();
- this.setCountryValue();
- this.setCrossPayValue();
- this.isDiffCurVisibility();
- this.isOnlinebankVisibility();
- this.setPayerAndPayeeInfo(orgId);
- this.getModel().setDataChanged(false);
- payeracctbank = (DynamicObject)this.getModel().getValue("settletype");
- if (Objects.nonNull(payeracctbank)) {
- this.settletNumber(payeracctbank);
- } else {
- this.getView().setVisible(Boolean.FALSE, new String[]{"draftbill"});
- }
- this.showBalance();
- }
- private void setPayerAndPayeeInfo(Long orgId) {
- if (!CasHelper.isEmpty(orgId)) {
- DynamicObject org = BusinessDataServiceHelper.loadSingleFromCache(orgId, "bos_org");
- this.getModel().setValue("payernumber", org.getString("number"));
- this.getModel().setValue("uniformsocialcreditcode", org.getString("uniformsocialcreditcode"));
- Long payeeId = Long.valueOf(this.getModel().getValue("payee").toString());
- String type = this.getModel().getValue("payeetype").toString();
- String number = this.getModel().getValue("payeenumber").toString();
- if (!number.isEmpty() || !AsstActTypeEnum.SUPPLIER.getValue().equals(type) && !AsstActTypeEnum.CUSTOMER.getValue().equals(type)) {
- if (number.isEmpty() && (AsstActTypeEnum.EMPLOYEE.getValue().equals(type) || AsstActTypeEnum.COMPANY.getValue().equals(type))) {
- number = this.getUserOrOrgNumber(payeeId, type);
- }
- } else {
- number = this.getPayeeOrPayerInfoNumber(payeeId, type, this.getModel().getDataEntityType().getName());
- }
- this.getModel().setValue("payeenumber", number);
- if (!this.getModel().getDataEntity().getString("billstatus").equals(BillStatusEnum.SAVE.getValue())) {
- this.getView().setEnable(false, new String[]{"priority"});
- }
- }
- }
- protected void setExchangerateEditable() {
- DynamicObject srcCurrency = this.getDynamicObject("currency");
- DynamicObject destCurrency = this.getDynamicObject("basecurrency");
- if (srcCurrency != null && destCurrency != null) {
- if (srcCurrency.getLong("id") == destCurrency.getLong("id")) {
- this.getView().setEnable(false, new String[]{"exchangerate"});
- }
- }
- }
- private void setDefaultExratetable(Long orgId) {
- Long exchangeRateTableId = 0L;
- try {
- exchangeRateTableId = SystemStatusCtrolHelper.getExrateTable(orgId).getLong("id");
- } catch (Exception var4) {
- }
- this.getModel().setValue("exratetable", exchangeRateTableId);
- }
- private void setEntryAmountCaption() {
- DynamicObject billType = (DynamicObject)this.getModel().getValue("billtype");
- if (billType != null) {
- EntryGrid entryCtr = (EntryGrid)this.getControl("entry");
- if (BillTypeConstants.PAYBILL_OTR.equals(billType.getPkValue())) {
- entryCtr.setColumnProperty("e_payableamt", "header", new LocaleString(ResManager.loadKDString("实付金额", "PaymentBillEdit_8", "fi-cas-formplugin", new Object[0])));
- entryCtr.setColumnProperty("e_payablelocamt", "header", new LocaleString(ResManager.loadKDString("实付折本币", "PaymentBillEdit_9", "fi-cas-formplugin", new Object[0])));
- } else {
- entryCtr.setColumnProperty("e_payableamt", "header", new LocaleString(ResManager.loadKDString("应付金额", "PaymentBillEdit_10", "fi-cas-formplugin", new Object[0])));
- entryCtr.setColumnProperty("e_payablelocamt", "header", new LocaleString(ResManager.loadKDString("应付折本币", "PaymentBillEdit_11", "fi-cas-formplugin", new Object[0])));
- }
- }
- }
- private void ctrChangeLableVisible() {
- Object sourceBillType = this.getModel().getValue("sourcebilltype");
- if (!"cas_recbill".equals(sourceBillType) && !"bei_transdetail_cas".equals(sourceBillType) && BillStatusEnum.SAVE.getValue().equals(this.getModel().getValue("billstatus"))) {
- if (!(Boolean)this.getModel().getValue("issupplecontract")) {
- this.getView().setVisible(true, new String[]{"changepayer", "changepayee"});
- }
- } else {
- this.getView().setVisible(false, new String[]{"changepayer", "changepayee"});
- }
- }
- private boolean isBePay() {
- DynamicObject payerAcctBank = this.getDynamicObject("payeracctbank");
- if (payerAcctBank != null && PayBillCrossHelper.isIfmBankAcc(payerAcctBank)) {
- return true;
- } else {
- return payerAcctBank != null && (Boolean)payerAcctBank.get("issetbankinterface") && "bei".equalsIgnoreCase(this.getString("paymentchannel"));
- }
- }
- private boolean isBeiBePay() {
- DynamicObject payerAcctBank = this.getDynamicObject("payeracctbank");
- return payerAcctBank != null && (Boolean)payerAcctBank.get("issetbankinterface") && "bei".equalsIgnoreCase(this.getString("paymentchannel"));
- }
- public void beforeDoOperation(BeforeDoOperationEventArgs args) {
- super.beforeDoOperation(args);
- AbstractOperate op = (AbstractOperate)args.getSource();
- String operateKey = op.getOperateKey();
- DynamicObject payerAcctBank = this.getDynamicObject("payeracctbank");
- DynamicObject accountBank;
- if ("trackdown".equals(operateKey)) {
- accountBank = this.getDynamicObject("settletype");
- if (accountBank != null) {
- String settlementtype = accountBank.getString("settlementtype");
- if (EmptyUtil.isNoEmpty(settlementtype) && this.settleTypes.contains(settlementtype)) {
- op.getOption().setVariableValue("botp_track_edit_status", "true");
- }
- }
- } else if ((!"save".equals(operateKey) || (Boolean)this.getModel().getValue("issupplecontract")) && !"submit".equals(operateKey) && !"submitandnew".equals(operateKey) && !"beforesubmit".equals(operateKey) && !"beforesubmitnew".equals(operateKey)) {
- DynamicObject orgData;
- if ("refundsave".equals(operateKey)) {
- Long rebillid = (Long)this.getView().getFormShowParameter().getCustomParam("rebillid");
- orgData = BusinessDataServiceHelper.loadSingle(rebillid, "cas_recbill");
- BigDecimal actrecamt = orgData.getBigDecimal("actrecamt");
- DynamicObjectCollection payEntrys = this.getModel().getEntryEntity("entry");
- BigDecimal refundamtTotal = (BigDecimal)payEntrys.stream().map((o) -> {
- return o.getBigDecimal("e_refundamt");
- }).reduce(BigDecimal.ZERO, BigDecimal::add);
- if (actrecamt.compareTo(refundamtTotal) != 0) {
- throw new KDBizException(ResManager.loadKDString("退款金额合计与收款单金额不相等", "PaymentBillEdit_19", "fi-cas-formplugin", new Object[0]));
- }
- FormOperate operate = (FormOperate)args.getSource();
- operate.getOption().setVariableValue("rebillid", SerializationUtils.toJsonString(this.getView().getFormShowParameter().getCustomParam("rebillid")));
- operate.getOption().setVariableValue("billtype", "nckd_cas_arbill");
- } else if ("recbook".equals(operateKey)) {
- accountBank = this.getDynamicObject("payeracctbank");
- if (null != accountBank && AccountBankHelper.isClosed(accountBank.getLong("id"))) {
- throw new KDBizException(String.format(ResManager.loadKDString("账户%s当前状态为已销户,暂无法进行业务处理。", "PaymentErrorCode_47", "fi-cas-business", new Object[0]), accountBank.getString("number")));
- }
- if (payerAcctBank != null && PayBillCrossHelper.isIfmBankAcc(payerAcctBank)) {
- throw new KDBizException(ResManager.loadKDString("内部账户请选择内部结算付款。", "PaymentErrorCode_48", "fi-cas-business", new Object[0]));
- }
- if (PaymentBillPluginHelper.checkPayeeTypeFreeze(Collections.singletonList(this.getModel().getDataEntity()))) {
- throw new KDBizException((new PaymentErrorCode()).CANOTDOTHISOP_WHENSUPPLIERFREEZE().getMessage());
- }
- } else if ("endorse".equals(operateKey)) {
- if (payerAcctBank != null && PayBillCrossHelper.isIfmBankAcc(payerAcctBank)) {
- throw new KDBizException(ResManager.loadKDString("内部账户请选择内部结算付款。", "PaymentErrorCode_48", "fi-cas-business", new Object[0]));
- }
- if (PaymentBillPluginHelper.checkPayeeTypeFreeze(Collections.singletonList(this.getModel().getDataEntity()))) {
- throw new KDBizException((new PaymentErrorCode()).CANOTDOTHISOP_WHENSUPPLIERFREEZE().getMessage());
- }
- } else if ("pay".equals(operateKey)) {
- String draftIds = op.getOption().getVariableValue("draftids", "");
- if (kd.bos.dataentity.utils.StringUtils.isEmpty(draftIds)) {
- orgData = (DynamicObject)this.getValue("org");
- Long pkValue = (Long)orgData.getPkValue();
- boolean selectDraftFlag = SystemParameterHelper.getParameterBoolean(pkValue, "cs122");
- DynamicObject data = this.getModel().getDataEntity(true);
- if (selectDraftFlag && PaymentBillPluginHelper.needSelectedDraft(data)) {
- FormShowParameter showParameter = new FormShowParameter();
- showParameter.setAppId("cas");
- showParameter.setFormId("cas_payment_selectdraft");
- showParameter.setCustomParam("payBillId", data.getPkValue());
- showParameter.getOpenStyle().setShowType(ShowType.Modal);
- showParameter.setCloseCallBack(new CloseCallBack(this, "CALLBACK_SELECTDRAFT"));
- this.getView().showForm(showParameter);
- args.setCancel(true);
- } else if (!DraftHelper.isAllPayDrafBill((DynamicObjectCollection)this.getModel().getValue("draftbill")) && !(Boolean)this.getModel().getValue("feepay")) {
- String payConfirm = op.getOption().getVariableValue("payConfirm", "");
- if (kd.bos.dataentity.utils.StringUtils.isEmpty(payConfirm)) {
- this.pay(args);
- }
- }
- }
- }
- } else if (!this.isBeConfirmOK) {
- this.storeFields();
- }
- if ("submit".equals(operateKey)) {
- FormUtils.deleteEmptyRows(this.getModel(), new String[]{"e_payableamt"});
- }
- if (Arrays.asList("unaudit", "chargeback", "invalid", "delete", "pay").contains(operateKey) && PayBillHepler.getViewSettle(this.getModel().getDataEntity()).size() > 0) {
- this.getView().showErrorNotification(String.format(ResManager.loadKDString("%s已存在结算记录,导致操作失败。如需继续执行操作,请先反结算。", "PaymentBillList_36", "fi-cas-formplugin", new Object[0]), ""));
- args.setCancel(true);
- }
- }
- public void confirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) {
- super.confirmCallBack(messageBoxClosedEvent);
- String id = messageBoxClosedEvent.getCallBackId();
- MessageBoxResult res = messageBoxClosedEvent.getResult();
- if (id.equals("CONFIRM_CANCELPAY_CALLBACK") && MessageBoxResult.Yes.equals(res)) {
- String billno = (String)this.getModel().getValue("billno");
- DynamicObject payObj = BusinessDataServiceHelper.loadSingle("nckd_cas_arbill", "id,billno", new QFilter[]{new QFilter("billno", "=", billno)});
- if (!this.cancelPayCheckSettle(payObj)) {
- this.getView().invokeOperation("cancelpay");
- }
- }
- if (id.equals("CONFIRM_CANCELPAY_SETTLE_CALLBACK") && MessageBoxResult.Yes.equals(res)) {
- this.getView().invokeOperation("cancelpay");
- }
- if (id.equals("CONFIRM_DEL_CALLBACK")) {
- OperateOption option = OperateOption.create();
- if (MessageBoxResult.Yes.equals(res)) {
- option.setVariableValue("delrecpay", "1");
- this.getView().invokeOperation("delete", option);
- }
- }
- }
- private void storeFields() {
- IBillModel model = (IBillModel)this.getModel();
- String entrance = (String)model.getValue("entrance");
- if (PaymentTypeEnum.OTR.name().equals(entrance)) {
- DynamicObject paymentType = (DynamicObject)model.getValue("paymenttype");
- if (paymentType != null && !paymentType.getBoolean("ispartpayment")) {
- int count = model.getEntryRowCount("entry");
- for(int i = 0; i < count; ++i) {
- this.setValue("e_discountamt", (Object)null, i);
- this.setValue("e_discountlocamt", (Object)null, i);
- this.setValue("e_corebilltype", (Object)null, i);
- this.setValue("e_corebillno", (Object)null, i);
- this.setValue("e_corebillentryseq", (Object)null, i);
- this.setValue("e_lockamt", (Object)null, i);
- this.setValue("e_unlockamt", (Object)null, i);
- this.setValue("e_settledamt", (Object)null, i);
- this.setValue("e_unsettledamt", (Object)null, i);
- }
- }
- } else if (PaymentTypeEnum.SYN.name().equals(entrance) || PaymentTypeEnum.CASH.name().equals(entrance) || PaymentTypeEnum.SPAN.name().equals(entrance)) {
- int count = model.getEntryRowCount("entry");
- if (count < 1) {
- this.getView().updateView("entry");
- this.getView().invokeOperation("newentry");
- }
- this.setValue("e_payableamt", this.getBigDecimal("actpayamt"), 0);
- this.setValue("e_fundflowitem", this.getValue("fundflowitem"), 0);
- }
- }
- public void afterDoOperation(AfterDoOperationEventArgs arg) {
- super.afterDoOperation(arg);
- AbstractOperate op = (AbstractOperate)arg.getSource();
- OperationResult operationResult = arg.getOperationResult();
- String key = op.getOperateKey();
- if ("copyentryrow".equals(key)) {
- EntryGrid entry = (EntryGrid)this.getControl("entry");
- if (entry.getSelectRows().length == 0) {
- this.getView().showTipNotification(ResManager.loadKDString("请选中一行再进行操作", "PaymentBillEdit_12", "fi-cas-formplugin", new Object[0]));
- return;
- }
- this.calculateAmt();
- } else if (!"beforesubmit".equals(key) && !"beforesubmitnew".equals(key)) {
- if ("newentry".equals(key)) {
- this.settleOrg(false);
- } else {
- IFormView view;
- if ("refundsave".equals(key) && arg.getOperationResult().isSuccess()) {
- view = this.getView().getParentView();
- view.close();
- this.getView().sendFormAction(view);
- return;
- }
- if ("delete".equals(key) && arg.getOperationResult().isSuccess()) {
- view = this.getView();
- view.close();
- this.getView().sendFormAction(view);
- } else if (("unsubmit".equals(key) || "unaudit".equals(key)) && arg.getOperationResult().isSuccess()) {
- this.getView().setStatus(OperationStatus.EDIT);
- } else {
- String reason;
- if (!"pay".equals(key) && !"cancelpay".equals(key)) {
- if ("receipt".equals(key) && arg.getOperationResult().isSuccess()) {
- this.viewReceipt();
- } else if ("chargebacknoreason".equals(key)) {
- reason = ResManager.loadKDString("自动退单", "PaymentBillList_37", "fi-cas-formplugin", new Object[0]);
- List<Object> successPkIds = operationResult.getSuccessPkIds();
- Map<String, Object> data = new HashMap(16);
- data.put("billid", successPkIds);
- data.put("reason", reason);
- data.put("operateKey", "chargeback");
- PayBillListPlugnHelper.closeCallBack("CALLBACK_CHARGEBACK", this.getView(), data);
- }
- } else {
- reason = arg.getOperationResult().getMessage();
- if (!arg.getOperationResult().isSuccess() && !(new CasErrorCode()).VOUCHER_NOT_CHECK().getMessage().equals(reason)) {
- this.getModel().setValue("billstatus", "pay".equals(key) ? BillStatusEnum.AUDIT.getValue() : BillStatusEnum.PAY.getValue());
- }
- if ("pay".equals(key) && (Boolean)this.getValue("isdiffcur")) {
- this.getView().updateView("dpamt");
- this.getView().updateView("agreedrate");
- this.getView().updateView("dplocalamt");
- this.getView().updateView("lossamt");
- this.getView().updateView("billstatus");
- this.getView().updateView("exchangerate");
- this.getView().updateView("dpexchangerate");
- this.getView().updateView("localamt");
- this.getView().updateView("paydate");
- this.getView().updateView("feeactbank");
- this.getView().updateView("feecurrency");
- this.getView().updateView("singlestream");
- this.getView().updateView("fee");
- for(int i = 0; i < this.getModel().getEntryRowCount("entry"); ++i) {
- this.getView().updateView("e_payablelocamt", i);
- this.getView().updateView("e_discountlocamt", i);
- this.getView().updateView("e_localamt", i);
- }
- }
- this.getView().updateView("draftbill");
- if (arg.getOperationResult().isSuccess()) {
- this.getView().invokeOperation("refresh", OperateOption.create());
- }
- }
- }
- }
- } else if ("beforesubmit".equals(key)) {
- IDataModel model = this.getModel();
- if (!CasHelper.isEmpty(model.getValue("entrustorg"))) {
- model.setValue("payeracctbank", (Object)null);
- model.setValue("payerbank", (Object)null);
- ((Label)this.getControl("payerbanknumv")).setText("");
- ((Label)this.getControl("payerbanknamev")).setText("");
- model.setValue("settletype", (Object)null);
- }
- if (arg.getOperationResult().isSuccess()) {
- DynamicObject company = (DynamicObject)model.getValue("org");
- boolean isNotCheckBeBankNumb = SystemParameterHelper.getParameterBoolean(company.getLong("id"), "cs125");
- if (this.isBeiBePay() && CasHelper.isEmpty(this.getString("recbanknumber")) && !isNotCheckBeBankNumb && this.isCrossTranType()) {
- this.getView().showTipNotification(ResManager.loadKDString(String.format("单号%s的付款单支付渠道为银企互联,收款行行号不能为空,请补充。", this.getModel().getValue("billno")), "PaymentBillEdit_29", "fi-cas-formplugin", new Object[0]));
- return;
- }
- List<Object> pks = arg.getOperationResult().getSuccessPkIds();
- if (!EmptyUtil.isEmpty(pks)) {
- this.getView().invokeOperation("submit");
- }
- }
- }
- if (Arrays.asList("save", "submit").contains(key) && arg.getOperationResult().isSuccess()) {
- this.getView().updateView("entrustorg");
- this.getView().updateView("totalpayamt");
- for(int i = 0; i < this.getModel().getEntryRowCount("entry"); ++i) {
- this.getView().updateView("e_lockAmt", i);
- this.getView().updateView("e_unlockAmt", i);
- }
- }
- if ("unaudit".equals(key)) {
- this.getView().invokeOperation("refresh", OperateOption.create());
- }
- PaymentBillPluginHelper.fillToolBar(this, this.getModel(), this.getView());
- this.ctrChangeLableVisible();
- PaymentBillPluginHelper.isSchePayEditable(this, this.getModel());
- }
- private boolean isCrossTranType() {
- boolean type = (Boolean)this.getValue("iscrosspay");
- DynamicObject dentify = (DynamicObject)this.getValue("paymentidentify");
- return !type || null == dentify || !"0".equals(dentify.getString("type"));
- }
- public void beforeClosed(BeforeClosedEvent e) {
- super.beforeClosed(e);
- try {
- BillShowParameter billShowParameter = (BillShowParameter)this.getView().getFormShowParameter();
- String billStatus = (String)this.getModel().getValue("billstatus");
- if (!BillStatusEnum.SAVE.getValue().equals(billStatus) || billShowParameter.getStatus() == OperationStatus.VIEW) {
- e.setCheckDataChange(false);
- }
- } catch (Exception var4) {
- }
- }
- private void cancelPay() {
- String billno = (String)this.getModel().getValue("billno");
- DynamicObject payObj = BusinessDataServiceHelper.loadSingle("nckd_cas_arbill", "id,billno,isvoucher,billstatus,org", new QFilter[]{new QFilter("billno", "=", billno)});
- String billstatus = payObj.getString("billstatus");
- if (!billstatus.equals("D")) {
- this.getView().invokeOperation("cancelpay");
- } else {
- Object org = this.getModel().getValue("org");
- if (org != null) {
- int CS116 = SystemParameterHelper.getParameterInteger(((DynamicObject)org).getLong("id"), "cs116");
- Boolean isv = payObj.getBoolean("isvoucher");
- if (3 == CS116 && isv) {
- this.getView().showConfirm(String.format(ResManager.loadKDString("(%s)单据已经生成凭证,是否继续取消付款?", "PaymentBillEdit_15", "fi-cas-formplugin", new Object[0]), billno), MessageBoxOptions.YesNo, ConfirmTypes.Default, new ConfirmCallBackListener("CONFIRM_CANCELPAY_CALLBACK", this));
- } else if (!this.cancelPayCheckSettle(payObj)) {
- this.getView().invokeOperation("cancelpay");
- }
- }
- }
- }
- protected String recPayAccount() {
- return "payeracctbank";
- }
- private void settleOrg(boolean isOrg) {
- if (!this.isLockSettleOrg()) {
- DynamicObject paymenttype = (DynamicObject)this.getModel().getValue("paymenttype");
- if (null != paymenttype && paymenttype.getBoolean("ispartpayment")) {
- Object openOrg = this.getModel().getValue("openorg");
- if (openOrg != null) {
- DynamicObject accountOrg = (DynamicObject)openOrg;
- for(int i = 0; i < this.getModel().getEntryRowCount("entry"); ++i) {
- if (isOrg || CasHelper.isEmpty(this.getModel().getValue("settleorg", i))) {
- this.setValue("settleorg", accountOrg.getPkValue(), i);
- }
- }
- }
- }
- }
- }
- private boolean isHwControl() {
- return this.getPageCache().getAll().containsKey("isHwControl");
- }
- private void setRecInfo(String key, Object value, Boolean isCheckDiff) {
- if (isCheckDiff) {
- Boolean isDiffCur = (Boolean)this.getModel().getValue("isdiffcur");
- if (!isDiffCur) {
- this.getModel().setValue(key, value);
- }
- } else {
- this.getModel().setValue(key, value);
- }
- }
- private void setDiffCurInfo() {
- Boolean isDiffCur = (Boolean)this.getModel().getValue("isdiffcur");
- if (!isDiffCur) {
- this.setValueIfAbsent("dpcurrency", this.getModel().getValue("currency"));
- this.setValueIfAbsent("dpamt", this.getModel().getValue("actpayamt"));
- if (!FeePayerEnum.REC.getValue().equals(this.getString("feepayer"))) {
- this.setValueIfAbsent("feeactbank", this.getModel().getValue("payeracctbank"));
- this.setValueIfAbsent("feecurrency", this.getModel().getValue("currency"));
- }
- }
- }
- private void setExratetableVisibility() {
- Long currencyId = this.getPk("currency");
- Long dpCurrencyId = this.getPk("dpcurrency");
- Long basecurrencyId = this.getPk("basecurrency");
- if ((currencyId == null || currencyId.equals(basecurrencyId)) && (dpCurrencyId == null || dpCurrencyId.equals(basecurrencyId))) {
- this.getView().setVisible(false, new String[]{"exratetable"});
- this.getView().setVisible(false, new String[]{"exratedate"});
- } else {
- this.getView().setVisible(true, new String[]{"exratetable"});
- this.getView().setVisible(true, new String[]{"exratedate"});
- }
- }
- private void setSettleTypeValue(DynamicObject payerAcctBank) {
- if (payerAcctBank != null) {
- DynamicObjectCollection settlementypes = payerAcctBank.getDynamicObjectCollection("settlementtype");
- if (settlementypes != null && settlementypes.size() > 0) {
- Set<Long> idSet = new HashSet();
- Iterator var4 = settlementypes.iterator();
- DynamicObject settletype;
- while(var4.hasNext()) {
- settletype = (DynamicObject)var4.next();
- idSet.add(((DynamicObject)settletype.get("fbasedataid")).getLong("id"));
- }
- DynamicObject settleType = this.getDynamicObject("settletype");
- if (idSet.size() == 1) {
- settletype = BusinessDataServiceHelper.loadSingleFromCache(idSet.iterator().next(), "bd_settlementtype", "id,settlementtype");
- if (!BaseDataHelper.isSettleTypeCash(settletype)) {
- this.setValue("settletype", idSet.iterator().next());
- }
- } else if (settleType != null && !idSet.contains((Long)settleType.getPkValue())) {
- this.setValue("settletype", (Object)null);
- }
- }
- }
- }
- private void setCrossPayValue() {
- this.getView().setEnable(true, new String[]{"iscrosspay"});
- DynamicObject payCountry = this.getDynamicObject("paycountry");
- DynamicObject recCountry = this.getDynamicObject("reccountry");
- if ((payCountry == null || CountryHelper.isChina(payCountry)) && (recCountry == null || CountryHelper.isChina(recCountry))) {
- this.setValue("iscrosspay", Boolean.FALSE);
- } else {
- this.setValue("iscrosspay", Boolean.TRUE);
- }
- }
- private void isDiffCurVisibility() {
- DynamicObject settleType = this.getDynamicObject("settletype");
- if (CasHelper.isNotEmpty(settleType) && BaseDataHelper.isSettleTypeCash(settleType)) {
- this.setValue("isdiffcur", "0");
- this.getView().setVisible(false, new String[]{"isdiffcur"});
- } else {
- this.getView().setVisible(true, new String[]{"isdiffcur"});
- }
- }
- private void setCountryValue() {
- DynamicObject payerBank = this.getDynamicObject("payerbank");
- if (payerBank != null) {
- this.setValueIfAbsent("paycountry", payerBank.getDynamicObject("country"));
- this.setCrossPayValue();
- }
- }
- private void pay(BeforeDoOperationEventArgs evt) {
- long orgId = (Long)this.getDynamicObject("org").getPkValue();
- Set<String> cs1046 = SystemParameterHelper.getParameterComboxs(orgId, "cs1046");
- DynamicObject payBill = this.getModel().getDataEntity();
- (new PaymentPayImpl()).validate(payBill);
- if (PaymentBillPluginHelper.isShowPayConfirm(payBill, cs1046)) {
- FormShowParameter para = new FormShowParameter();
- para.setFormId("cas_paybill_diffpay");
- para.setCloseCallBack(new CloseCallBack(this, "KEY_DIFFPAY_CALLBACK"));
- para.getOpenStyle().setShowType(ShowType.Modal);
- DataEntityPropertyCollection properties = EntityMetadataCache.getDataEntityType("cas_paybill_diffpay").getProperties();
- Map<String, Object> customParams = new HashMap(properties.size());
- Iterator var9 = properties.iterator();
- while(var9.hasNext()) {
- IDataEntityProperty property = (IDataEntityProperty)var9.next();
- String propName = property.getName();
- if (this.getModel().getProperty(propName) != null) {
- Object value = this.getValue(propName);
- if (value instanceof DynamicObject) {
- customParams.put(propName, ((DynamicObject)value).getPkValue());
- } else {
- customParams.put(propName, value);
- }
- }
- }
- para.setCustomParams(customParams);
- para.setCustomParam("payamount", payBill.getBigDecimal("actpayamt"));
- para.setCustomParam("payamt", payBill.getBigDecimal("dpamt"));
- para.setCustomParam("matchFlag", payBill.getString("matchflag"));
- para.setCustomParam("sourcebilltype", payBill.getString("sourcebilltype"));
- para.setCustomParam("payBillId", payBill.getString("id"));
- this.getView().showForm(para);
- evt.setCancel(true);
- }
- }
- private void setPaymentType(QFilter[] qFilters) {
- DynamicObject paymentType = BusinessDataServiceHelper.loadSingleFromCache("cas_paymentbilltype", "id,fundflowitem", qFilters);
- if (paymentType != null) {
- this.setValue("paymenttype", paymentType.getLong("id"));
- DynamicObject fundflowitem = paymentType.getDynamicObject("fundflowitem");
- this.fillFundflowItem(true, fundflowitem);
- } else {
- this.setValue("paymenttype", (Object)null);
- }
- }
- private void viewReceipt() {
- Long billId = (Long)this.getModel().getDataEntity().getPkValue();
- if (billId == 0L) {
- this.getView().showTipNotification(ResManager.loadKDString("暂无对应的电子回单记录!", "ViewReceiptService_0", "fi-cas-business", new Object[0]));
- } else {
- ViewReceiptService viewService = new ViewReceiptService();
- viewService.viewReceipt(this.getView(), "nckd_cas_arbill", billId);
- }
- }
- private void viewSettle() {
- Long billId = (Long)this.getModel().getDataEntity().getPkValue();
- if (billId == 0L) {
- this.getView().showTipNotification(ResManager.loadKDString("暂无结算记录。", "PaymentBillList_5", "fi-cas-formplugin", new Object[0]));
- } else {
- List<Long> mainSettleIds = SettleRecordQueryHelperForCas.getSettleIdsByMain("ap_settlerecord", "nckd_cas_arbill", new Object[]{billId});
- List<Long> asstSettleIds = SettleRecordQueryHelperForCas.getSettleIdsByAsst("ap_settlerecord", "nckd_cas_arbill", new Object[]{billId});
- Set<Long> settleRecordIds = new HashSet();
- settleRecordIds.addAll(mainSettleIds);
- settleRecordIds.addAll(asstSettleIds);
- if (settleRecordIds.size() > 0) {
- ListShowParameter parameter = new ListShowParameter();
- parameter.setBillFormId("ap_settlerecord");
- parameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
- ListFilterParameter param = new ListFilterParameter();
- param.setFilter(new QFilter("id", "in", settleRecordIds));
- parameter.setListFilterParameter(param);
- parameter.setCustomParam("checkKey", true);
- this.getView().showForm(parameter);
- } else {
- this.getView().showTipNotification(ResManager.loadKDString("暂无结算记录。", "PaymentBillList_5", "fi-cas-formplugin", new Object[0]));
- }
- }
- }
- public void afterAddRow(AfterAddRowEventArgs e) {
- super.afterAddRow(e);
- EntryProp entryProp = e.getEntryProp();
- String entryName = entryProp.getName();
- if ("entry".equals(entryName)) {
- RowDataEntity[] rows = e.getRowDataEntities();
- if (rows.length > 0) {
- RowDataEntity[] var5 = rows;
- int var6 = rows.length;
- for(int var7 = 0; var7 < var6; ++var7) {
- RowDataEntity row = var5[var7];
- this.getModel().setValue("e_sourcebillid", this.getValue("sourcebillid"), row.getRowIndex());
- this.getModel().setValue("e_sourcebillentryid", this.getValue("sourceentryid"), row.getRowIndex());
- }
- }
- }
- }
- private void isOnlinebankVisibility() {
- String paymentchannel = (String)this.getValue("paymentchannel");
- if (paymentchannel != null && this.isAcctBankExistOnlineBankAcct()) {
- this.getView().setVisible(true, new String[]{"netbankacct"});
- } else {
- this.getView().setVisible(false, new String[]{"netbankacct"});
- }
- }
- private Boolean cancelPayCheckSettle(DynamicObject payObj) {
- Boolean result = Boolean.FALSE;
- boolean exists = SettleRecordQueryHelperForCas.isExistsSettlesByMain("ap_settlerecord", "nckd_cas_arbill", new Object[]{payObj.getPkValue()}, (QFilter)null);
- boolean exists2 = SettleRecordQueryHelperForCas.isExistsSettlesByAsst("ap_settlerecord", "nckd_cas_arbill", new Object[]{payObj.getPkValue()}, (QFilter)null);
- if (exists || exists2) {
- StringBuilder settleSb = new StringBuilder();
- String billno = payObj.getString("billno");
- settleSb.append(String.format(ResManager.loadKDString("(%s)单据已经完成结算", "PaymentBillList_28", "fi-cas-formplugin", new Object[0]), billno));
- this.getView().showConfirm(settleSb.append(ResManager.loadKDString(",如果继续操作将会自动反结算对应的结算记录,是否继续?", "PaymentBillList_29", "fi-cas-formplugin", new Object[0])).toString(), MessageBoxOptions.YesNo, ConfirmTypes.Default, new ConfirmCallBackListener("CONFIRM_CANCELPAY_SETTLE_CALLBACK", this));
- result = Boolean.TRUE;
- }
- return result;
- }
- public String getPayeeOrPayerInfoNumber(Object payeeOrPayer, Object payeeOrPayerType, String billName) {
- String payeenumber = "";
- String entityNameTemp = "";
- String addressPropName = "";
- if (isSupplier(payeeOrPayerType)) {
- entityNameTemp = AsstActTypeEnum.SUPPLIER.getValue();
- addressPropName = "supplieraddress";
- }
- if (isCustomer(payeeOrPayerType)) {
- entityNameTemp = AsstActTypeEnum.CUSTOMER.getValue();
- addressPropName = "customeraddress";
- }
- if (!CasHelper.isEmpty(entityNameTemp) && !CasHelper.isEmpty(payeeOrPayer)) {
- DynamicObject supplierCustDO = BusinessDataServiceHelper.loadSingleFromCache(payeeOrPayer, entityNameTemp, "number,entry_bank.isdefault_bank,entry_bank.bankaccount,entry_bank.bank,entry_bank.accountname,entry_address." + addressPropName);
- if (!CasHelper.isEmpty(supplierCustDO)) {
- payeenumber = supplierCustDO.getString("number");
- }
- }
- return payeenumber;
- }
- public String getUserOrOrgNumber(Object id, Object type) {
- String entityNameTemp = "";
- String payeenumber = "";
- if (isUser(type)) {
- entityNameTemp = AsstActTypeEnum.EMPLOYEE.getValue();
- }
- if (isOrg(type)) {
- entityNameTemp = AsstActTypeEnum.COMPANY.getValue();
- }
- if (!CasHelper.isEmpty(entityNameTemp) && !CasHelper.isEmpty(id)) {
- DynamicObject userOrgDO = BusinessDataServiceHelper.loadSingleFromCache(id, entityNameTemp, "number");
- if (!CasHelper.isEmpty(userOrgDO)) {
- payeenumber = userOrgDO.getString("number");
- }
- }
- return payeenumber;
- }
- private void fillFundflowItem(boolean isCover, DynamicObject defaultFundsItem) {
- if (defaultFundsItem != null) {
- for(int i = 0; i < this.getModel().getEntryRowCount("entry"); ++i) {
- if (isCover) {
- this.setValue("e_fundflowitem", defaultFundsItem.getPkValue(), i);
- } else {
- this.setValueIfAbsent("e_fundflowitem", defaultFundsItem.getPkValue(), i);
- }
- }
- }
- }
- private static boolean isSupplier(Object payeeType) {
- return isAimType(AsstActTypeEnum.SUPPLIER, payeeType);
- }
- private static boolean isCustomer(Object payeeType) {
- return isAimType(AsstActTypeEnum.CUSTOMER, payeeType);
- }
- private static boolean isUser(Object payeeType) {
- return isAimType(AsstActTypeEnum.EMPLOYEE, payeeType);
- }
- private static boolean isOrg(Object payeeType) {
- return isAimType(AsstActTypeEnum.COMPANY, payeeType);
- }
- private static boolean isOther(Object payeeType) {
- return isAimType(AsstActTypeEnum.OTHER, payeeType);
- }
- private static boolean isAimType(AsstActTypeEnum asstactType, Object payeeType) {
- return asstactType.getValue().equals(payeeType);
- }
- private boolean isLockSettleOrg() {
- String sourceBillType = this.getString("sourcebilltype");
- return "ap_finapbill".equals(sourceBillType) || "ar_finarbill".equals(sourceBillType) || "ap_payapply".equals(sourceBillType) || "pm_purorderbill".equals(sourceBillType);
- }
- private boolean isClearFeeSettleType() {
- DynamicObject settleType = (DynamicObject)this.getModel().getValue("settletype");
- if (settleType == null) {
- return true;
- } else {
- String settlementType = settleType.getString("settlementtype");
- return Objects.equals(settlementType, SettleMentTypeEnum.BANK.getValue()) || Objects.equals(settlementType, SettleMentTypeEnum.BUSINESS.getValue()) || Objects.equals(settlementType, SettleMentTypeEnum.CHECK.getValue());
- }
- }
- private boolean hasPayeeInfo() {
- String payeeformid = this.getString("payeetype");
- Long payeeId = Long.parseLong(this.getValue("payee") == null ? "0" : this.getValue("payee").toString());
- String payeeType = this.getString("payeetype");
- if (isOther(payeeType)) {
- return kd.bos.dataentity.utils.StringUtils.isNotBlank(this.getValue("payeename"));
- } else {
- return CasHelper.isNotEmpty(payeeformid) && CasHelper.isNotEmpty(payeeId);
- }
- }
- public void signCallback(SignCallbackEvent evt) {
- if (evt.getCallbackId().equals("signbeforecommitbe")) {
- ClientMethodResult ret = evt.getResult();
- if (ret.getSuccess()) {
- OperateOption operateOption = OperateOption.create();
- operateOption.setVariableValue("ishasright", "true");
- operateOption.setVariableValue("signCallbackFlag", "true");
- operateOption.setVariableValue("signFirstSave", "false");
- operateOption.setVariableValue("signResult", SerializationUtils.toJsonString(evt.getResult().getResult()));
- operateOption.setVariableValue("clearResult", evt.getClearText());
- OperationResult operationResult = this.getView().invokeOperation("beforecommitbe", operateOption);
- if (operationResult.isSuccess()) {
- this.getView().invokeOperation("commitbe");
- } else {
- logger.info(" signcallback fail ");
- if (EmptyUtil.isNoEmpty(operationResult.getMessage())) {
- evt.getView().showTipNotification(operationResult.getMessage());
- }
- }
- } else {
- logger.info(" signbeforecommitbe SignCallbackEvent fail ");
- }
- }
- }
- }
|