1 %VHMacro,BL.Prod.GAData 1 %RegisteredObject 61093,32865.850892 60814,48320.246182 0 Prod.GAData.AbstractBasis 1.0 CalcCacheID is een unieke subnode voor de array CalcCache. Deze bevat de resultaten van de calculatie van producten en kosten. Array Opvragen via $$$globCalcCache(..CalcCacheID) %String 1 1 BL.Prod.GAData.Abstract oGAData:Prod.GAData.AbstractBasis %Status Oproepen van de BL.xxCalc om de producten en de kosten voor het GAData te berekenen. De resultaten worden in de CalcCache (global) bijgehouden. Van daaruit kan de verdere verwerking, zoals CreatePRBS of CreateXML, gebeuren. Het BL-object xxCalc (afgeleide van AbstractCalc) wordt geïnstantieerd en blijft slechts tijdelijk bestaan. M.a.w. wordt onmiddellijk na de calculatie ge'close'd 1 CalcType:%String %Status 1 GenPRNr:%Library.Integer,QtyStaffel:%Library.String=1,MetPrijs:%Integer=1 %Status PRNr:%String 0 NewRec via .Local doorgeven 0 Node:%String,SubNode:%String Ophalen van het dossiernr indien het nog niet bestaat dan invullen 1 GenPRNr:%Library.String 1 PRNr:%String,KMGroepID:%String %Status 1 PRNr:%String,blnAddHADPR:%Boolean=1 %Status dan INVERS toepassen (TO DO) ;Do XMLBuildArrayInvers^Prod.GAMeta.Item.tmpDev2(DItem) ; ,Label) Quit LangTekst cbsHFVerwerkingsKost() Set TijdKost=+$LG(lbBasis,$$$licbTijdKost) Set TijdPlanning=+$LG(lbBasis,$$$licbTijdWerk) Set KostPrijs=+$LG(lbBasis,$$$licbKPrijs) Set KostPlaatsID=$LG(lbBasis,$$$licbKostPlaats) Set Oms=$LG(lbBasis,$$$licbOms) Set:(KostPlaatsID="") KostPlaatsID="?" Set KPObj=$G(%arCacheKP(KostPlaatsID)) ; caching van de kostplaats If '$IsObject(KPObj) Do . Set KPObj=##class(Prod.GAMeta.BT.KostPlaats).%OpenId(KostPlaatsID) . Set %arCacheKP(KostPlaatsID)=KPObj Set Kost=##class(BL.Prod.GAData.AbstractCalc).CalcKostT(KPObj,TijdKost,"") ; $G(%NoSa) Set KPObj="" Set MatPrijs=$S(KostPrijs>Kost:KostPrijs-Kost,1:"") ; een deel is voor materiaal Set lbMatK="" If MatPrijs Do . Set lbMatK=$LG(lbBasis,$$$licbMatKost) . Set:(lbMatK="") lbMatK=$LB($LB(MatPrijs)) ; Backward compatible (old system) For i=1:1:$LL(lbMatK) Do . Set MatVolgNr=MatVolgNr+1 . Set BSKey="MAT."_$E(1000+MatVolgNr,2,4) . Set Rec="" . Set $P(Rec,"\",2)=1 . Set $P(Rec,"\",3)="S" ; Surplus . Set $P(Rec,"\",4)=$LI($LI(lbMatK,i),1) ; MatPrijs . Set $P(Rec,"\",9)=$LG($LI(lbMatK,i),2) ; KostMatID . Set SortNr=SortNr+1 . Set $P(Rec,"\",10)=SortNr . Set $P(Rec,"\",11)=SubGroep . Set $P(Rec,"\",13)=Oms . Set $P(Rec,"\",16)=1 ; Meerwaarde . Set ^PRBS("BS",PRNr,BSKey)=Rec ; Halffabricaten If Kost Do . Set MatVolgNr=MatVolgNr+1 . Set BSKey="KST."_$E(1000+MatVolgNr,2,4) . Set Rec="" . Set $P(Rec,"\",2)=1 . Set $P(Rec,"\",3)="T" . Set $P(Rec,"\",7)=$J(TijdPlanning,0,2) . Set $P(Rec,"\",8)=$J(TijdKost,0,2) . Set $P(Rec,"\",9)=KostPlaatsID . Set SortNr=SortNr+1 . Set $P(Rec,"\",10)=SortNr . Set $P(Rec,"\",11)=SubGroep . Set $P(Rec,"\",13)=Oms . Set $P(Rec,"\",16)=1 ; Meerwaarde . Set ^PRBS("BS",PRNr,BSKey)=Rec ; Halffabricaten Quit ]]> Remove any previous values for PRNr in ^PRBS 1 1 PRNr:%String 0 %Status This method must be overriden in each derived class, if necessary. Label:%String %String This method must be overriden in each derived class Opbouwen van de Basis-parameters, i.e. de input waarden van het GAData-object. Op basis van deze data kunnen de Product-kenmerken aangemaakt worden (arBasis als .local doorgeven). This method must be overriden in each derived class %Integer This method must be overriden in each derived class %String 3:8, 1:9))=Dossier ; Set $E(Txt,8,11)=$J(Dossier,4) Set $E(Txt,12)=""_$J(LD,3)_"X"_$J(NB,4,0) Set $E(Txt,22)=$J($$$ASMKleurK(Type),4) Quit Txt ktxTLM() Set Design="" Set Lengte=..GAData.LP ; Numeriek Set Afwerking="EV1" Set Dossier=..GAData.Dossier Set Txt="ETL.M" Set $E(Txt,$S($L(Dossier)>3:7, 1:8))=Dossier Set $E(Txt,12)="L:"_$J(Lengte,4,0)_" "_$S(..GAData.AS="RB":"RH", 1:"") Set $E(Txt,21)="" Set $E(Txt,22)=$J(Afwerking,4) Quit Txt ktxGRP() Set Design=..GAData.DS ; ALFA,BETA,DELTA,OMEGA Set Lengte=..GAData.LG ; Numeriek Set Afwerking=..GAData.AFW ; ALU, ... Set Dossier=..GAData.Dossier Set Txt="SGR."_$E(Design,1,2) Set $E(Txt,$S($L(Dossier)>3:7, 1:8))=Dossier Set $E(Txt,12)=$E(Design,1,5)_$J(Lengte,4,0) Set $E(Txt,21)="" Set $E(Txt,22)=$J(Afwerking,4) ; ##class(Prod.GAMeta.BT.TBAbstract).KortTekstCodeClass("Prod.GAMeta.BT.TBLadeKleur",..GAData.KL) Quit Txt */ ]]> This method must be overriden in each derived class Als Taal="R" dan leveranciersomschrijving Oms via .Local doorgeven %Status Toevoegen van een stukje langtekst (Txt) aan de array Oms. Optie= R of leeg (leveranciersreferentie) Oms en Txt via .Local 1 1 MaxLen Do ; Kan er niet meer bij . If $L(Txt)>MaxLen Do ; splitsen van txt over meerdere lijnen . . Set Lengte=$L($G(Oms(Oms))) . . If Lengte*2>MaxLen Set Oms=Oms+1 ; Minder dan de helft van maxlen nog vrij daarom Nieuw veld anders append . . Set Lengte=$L($G(Oms(Oms))) . . Set Txt1=$E(Txt,1,MaxLen-Lengte) . . If Txt1'[" ",$L($G(Oms(Oms))) Do ; Onvoldoende vrije ruimte om te splitsen op woorden . . . Set Oms=$I(Oms) . . . Set Lengte=0 . . . Set Txt1=$E(Txt,1,MaxLen) . . If $E(Txt,$L(Txt1)+1)=" " Set Txt1=Txt1_" " ; woord delimiter was er juist afgevallen . . Set Txt1=$P(Txt1," ",1,$L(Txt1," ")-1) . . Set:($L($G(Oms(Oms)))) Oms(Oms)=$G(Oms(Oms))_";" . . Set Oms(Oms)=$G(Oms(Oms))_Txt1 . . Set Txt=$E(Txt,$L(Txt1)+1,999) . . Set:$E(Txt)=" " $E(Txt)="" . . Set:($E(Oms(Oms),$L(Oms(Oms)))=" ") $E(Oms(Oms),$L(Oms(Oms)))="" . . Set Oms=$I(Oms) . . Set Oms(Oms)=Txt . Else Do ; txt kan volledig in nieuw veld . . Set Oms=$I(Oms) . . Set Oms(Oms)=Txt Else Do ; append . Set Oms(Oms)=$G(Oms(Oms))_$S($L($G(Oms(Oms))):";",1:"")_Txt Set Txt="" Quit ]]> %String Geeft het gewicht volgens het gevraagde type "N" : Netto "T" : Tarra "B" : Brutto Gewicht in gram met twee cijfers na de komma Type:%Library.String="N" %Library.Float %Float %Float %Float Sorteerssleutel voor volgorde van verschillende producten binnen eenzeldfe order This method must be overriden in each derived class %Library.String %Status