KFSOA G 33 ; MODULE SLUITEN ORDERS; Quit naar %F10 [ 12/12/2002 1:29 PM ] ; 33 S X=$P(X,D,1,21)_D_UAF_D_$P(X,D,23,99) S @("^"_Q_UGL_"(KC,US,UR,1)")=X,UOR=$P("R\O",D,$P(X,D,17)+1) D:UAF=2 LeveringASAP(UR) 35 S ULV=$P(X,D,21),KL=$P(@("^"_Q_"KL(@(""^""_Q_""K1(KC)""),0)"),D,8) S:$L($P(@("^"_Q_UGL_"(KC,US,UR,3)"),D,1)) KL=$P(^(3),D,8) 37 F I="B","L","M","P" S @("P"_I)=@("^"_Q_"BA(153,ULV_"" "",I,0)") 39 S UPT="" G 47:PP="" I PP=1 S UPT=1 G 47 41 I PP=2 D S1 S:UN<$P(PB,";",$L(PB,";")) UPT=1 G 47 43 I PP=3 S:$$LAND^vhRtn1(KL)=$$LAND^vhRtn1(PL) UPT=1 G 47 45 I $$LAND^vhRtn1(KL)=$$LAND^vhRtn1(PL) D S1 I UN<$P(PB,";",$L(PB,";")) S UPT=1 47 D S0 S UVM=$P(X,D,18) G 71:UVM'="MTL" S UZ=100 ; Opsplitsen volgens munt indien MTL 49 S UZ=$N(@("^"_Q_UGL_"(KC,US,UR,UZ)")) G 53:UZ=-1 S U2=^(UZ) G 49:'$L($P(U2,D,22)) I UVM="MTL" S UVM=$P(U2,D,22) G 49 51 G 49:$P(U2,D,22)=UVM S PR=$P(U2,D,2) D:PR KWNODE^FLOWORD(KC,UR,UZ) K @("^"_Q_UGL_"(KC,US,UR,UZ)") S @("^"_Q_"HULP($J,$P(U2,D,22),UZ)")=U2 G 49 53 I UVM="MTL" S UVM=$$LANDMUNT^KLANT(KL) S X=$P(X,D,1,17)_D_UVM_D_$P(X,D,19,99),@("^"_Q_UGL_"(KC,US,UR,1)")=X,X1=^(2),X2=^(3) G 71:'$D(@("^"_Q_"HULP($J)")) S UVM="" 55 S UVM=$N(@("^"_Q_"HULP($J,UVM)")) I UVM=-1 K @("^"_Q_"HULP($J)") G 71 S URR=$$GETNUM^FLOW(Q_UGL,Q_UG1) 63 S X=$P(X,D,1,17)_D_UVM_D_$P(X,D,19,99),@("^"_Q_UGL_"(KC,US,URR,1)")=X,^(2)=X1,^(3)=X2,UUZ=0,UZ=100 65 S UUZ=$N(@("^"_Q_"HULP($J,UVM,UUZ)")),UZ=UZ+1 67 G 68:UUZ'=-1 S @("^"_Q_UGL_"(KC,US,URR,0)")=UZ,(@("^"_Q_UG1_"(URR,US)"),@("^"_Q_UGB_"(URR,US)"))=KC_D,@("^"_Q_UG2_"(US,KC,URR)")="" D:UGL="OD" ##class(DOM.VKP.event.OrderEventRaiser).RaiseOrderGemaaktEvent(URR) I $D(@("^"_Q_UGL_"(0,US,2)")) S URLC=URR D @^(2) Do StelInAlsTransferOrderIndienNodig(UTYP,URR) Do OrderSplitsenIndienNodig(UTYP,URR) L @("^"_Q_UGL_"(KC,US,UR)") G 55 68 S (Z,ZZ)=^(UUZ),@("^"_Q_UGL_"(KC,US,URR,UZ)")=Z,TR=$P(Z,D,27),TZ=$P($P(Z,D,28),";"),PKOM="" G 70:'TR!('TZ) S PKOM=1 69 S LEV=$P(@("^"_Q_"TO1(TR)"),D,1),Z=@("^"_Q_"TO(LEV,TR,TZ)"),Z=$P(Z,D,1,26)_D_URR_D_UZ_D_$P(Z,D,29,99),^(TZ)=Z,$P(^(1),D,7)=URR 70 S Z=ZZ,PR=$P(Z,D,2) D:PR SWNODE^FLOWORD(KC,URR,UZ) G 65 71 Do StelInAlsTransferOrderIndienNodig(UTYP,UR) Do OrderSplitsenIndienNodig(UTYP,UR) S K="," ; YZ K UJ,KL,LEV,PGV,PC,PR,PID,PLQ,PST,PY,PRE,PB,PL,PLL,PM,PP,PPAR,PSN,PKOM,TR,TZ,Q15,U2,UOD,UOR,UAF,ULV,UMC,UN,UEP,UBE K ULT,UMC,USPPK1,PK2,UPAR,UPT,URR,UUZ,X,X1,X2,Y,Z,ZZ,UTYP,VTA Q ; S0 S UZ=@("^"_Q_UGL_"(KC,US,UR,0)"),UZ=100 S0A S UZ=$N(^(UZ)) I UZ'=-1 S U2=^(UZ) G S0A:'$L($P(U2,D,2)) S ^(UZ)=$P(U2,D,1,23)_D_UPT_D_$P(U2,D,25,99) G S0A S0Z Q ; S1 S PPAR=$$MUNT^vhRtn1(PM,,12),UN=0,UZ=100 S1A S UZ=$N(@("^"_Q_UGL_"(KC,US,UR,UZ)")) G S1C:UZ=-1 S U2=^(UZ) G S1A:'$L($P(U2,D,2)) S UMC=$P(U2,D,22) S1B S UPAR=$$MUNT^vhRtn1(UMC,,12),UN=UN+($P(U2,D,9)*UPAR/PPAR) G S1A S1C I UN<0 S UN=$E(UN,2,99) S1Z Q StelInAlsTransferOrderIndienNodig(OrderType,OrderID) Do ##class(BL.Legacy.KFSOA).StelInAlsTransferOrderIndienNodig(OrderType,OrderID) Quit OrderSplitsenIndienNodig(OrderType,OrderID) New LadeIndelingFilter,LijnFilter If OrderType = "T" { Do ##class(APPS.VKP.impl.OrderSplitserVolgensProductLijnFilter).%New().SplitsOrderVolgensAfzetLocaties(OrderID) }Else{ Set LadeIndelingFilter = ##class(DOM.common.ProductTypeFilter.LadeIndelingFilter).%New() Set LijnFilter = ##class(DOM.VKP.impl.DocumentLijnFilter.VerkoopDocumentLijnVolgensProductFilter).%New(LadeIndelingFilter) Do VraagCommissieReferentieIndienNodigVolgensLijnFilter(OrderID,LijnFilter) Do ##class(APPS.VKP.impl.OrderSplitserVolgensProductLijnFilter).%New().SplitsOrderVolgensLijnFilter(OrderID,LijnFilter) } Quit VraagCommissieReferentieIndienNodigVolgensLijnFilter(OrderID,LijnFilter) New Order,KLNr #dim Order As DOM.VKP.Order = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefOrder(OrderID) If (Order.GeefCommissieReferentie()="") && $$ZalOrderOpgesplitstWordenDoorLijnFilter(OrderID, LijnFilter){ #dim KLNr As %String = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantNummerVoorPartijID(Order.GeefKlantID()) Set sFL(1)=^KOD(KLNr,"F",OrderID,1) Set IsOrgal = 1 /// Opzetten omdat anders crashed For Do FIELD^vhScherm("FLOWOREF","ORGALUX") Quit:%SC Set ^KOD(KLNr,"F",OrderID,1)=sFL(1) Do ##class(BL.Legacy.Order).UpdateDocumentReferenties(OrderID) } Quit ; ; ZalOrderOpgesplitstWordenDoorLijnFilter(OrderID,LijnFilter) New ZalOpgesplitstWorden,Order,ProductOrderLijn,ProductOrderLijnIt #dim ZalOpgesplitstWorden As %Boolean = 0 #dim Order As DOM.VKP.Order = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefOrder(OrderID) #dim ProductOrderLijnIt As TECH.Iterator = Order.GeefProductOrderLijnIterator() While (ProductOrderLijnIt.HasNext() && 'ZalOpgesplitstWorden) { #dim ProductOrderLijn As DOM.VKP.ProductOrderlijn = ProductOrderLijnIt.Next() Set ZalOpgesplitstWorden = LijnFilter.IsValid(ProductOrderLijn) } Quit ZalOpgesplitstWorden ; ; Mag een KOM-order vroeger geleverd worden? LeveringASAP(ORDNr) New R,ASAP,KLNr,Closed,OrdTyp,OLNr,PRNr ; Closed = "" -> niet gesloten ; 1 -> gesloten niet Kom ; 2 -> gesloten Kom Set KLNr=$P(^KO1(ORDNr,"F"),D),R=^KOD(KLNr,"F",ORDNr,1),Closed=$P(R,D,22),OrdTyp=$P(R,D,25) If Closed=2,OrdTyp'="C" Do ; Indien Kom en geen contract . Set ASAP=$$^vhTXTPOP("FLOWORD","ASAP","",ORDNr,$P(^KKL(^KK1(KLNr),0),D,2)) . Quit:'ASAP . Set $P(^KOD(KLNr,"F",ORDNr,1),D,28)=1,OLNr=100 . For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do . . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . . Set:PRNr $P(^KOD(KLNr,"F",ORDNr,OLNr),D,47)="A" Quit ;