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