Index: BL/Legacy/FLOWTOE/AdHocSplitser.cls.xml =================================================================== diff -u --- BL/Legacy/FLOWTOE/AdHocSplitser.cls.xml (revision 0) +++ BL/Legacy/FLOWTOE/AdHocSplitser.cls.xml (revision 58583) @@ -0,0 +1,327 @@ + + + +TECH.RegisteredObject + + +%String +1 +1 + + + + +Oproepen via : + Do ##class(BL.Legacy.FLOWTOE.AdHocSplitser).%New().StelInMappingViaUI(TOENr) +ToeleveringId:%String + 0 { + Set Product = ProductAPI.GeefProduct(PRNr) + Set GroepKey = " 0" + Set ..mdProductLijnen(TLNr) = $LB(Product.GeefKorttekst(), LijnAantal, OrderLijnVolgnummer, GroepKey) + } + } + + Write !,! + Write $$ArrayToText^vhTools("mdProductLijnen", $this, "mdProductLijnen") + Write !,! + + #dim Kenmerk As %String + #dim Waarde As %String + + Write !,"Kies een kenmerk om een eerste groepering mee te definieren : ",!,"DossierCode/Korttekst/KorttStart/LadeHoogte/DimensieDxB/LadeDiepte/LadeBreedte/KleurenCode/OrderLijnNr",! + Read Kenmerk + Write ! + + ; Bepaal Lijst Mogelijke KM-waarden + #dim mdGroepKeyMapping As %String = Kenmerk + ;#dim MappingId As %String = "" + ;#dim TLNr As %String = "" + For { Set TLNr = $Order(..mdProductLijnen(TLNr)) Quit:(TLNr="") + #dim lbProductLijnData As %List = ..mdProductLijnen(TLNr) + #dim Korttekst As %String = $LG(lbProductLijnData,1) + #dim KenmerkWaarde As %String = ..GeefKenmerkVoorProductLijn(TLNr,Kenmerk) + If $Data(mdGroepKeyMapping(KenmerkWaarde)) { + Set GroepKey = mdGroepKeyMapping(KenmerkWaarde) + } + Else { + Write !,"Geef GroepKey voor KenmerkWaarde '"_KenmerkWaarde_"' : " + Read GroepKey + Write ! + Set mdGroepKeyMapping(KenmerkWaarde) = GroepKey + } + Set $LI(..mdProductLijnen(TLNr),4) = GroepKey + } + + Do ..BewaarSortKeyMapping(TOENr) + + zw ^Lgc.FLOWTOE.SplitsToelevMapping(TOENr) + /* + Splitser v2.1 : + Verzamel Producten van Toelevering + Combinatie LijnNr+Korttekst oplijsten : initieel allen GroepKey " 0" + SelectALL Lijnen + StartModifyStep (1) : Kies kenmerk --> Lijst Mogelijke KM-waarden --> Vraag GroepKey voor iedere KM-Waarde --> Toon overzicht "GroepKey Mapping" --> Confirm + Simuleer Groepering : Voor alle geselecteerde lijnen : "GroepKey Mapping" toepassen indien mogelijk --> Nieuwe Groepkey "bewaren" --> Toon overzicht "LijnInfo" + "Aantal per Key" + Keuze : "Nieuwe mapping bijvoegen" of "Groepering Toepassen" ? + "Nieuwe mapping bijvoegen" (Optioneel) --> Toggle SelectLijnen : Kies GroepKey --> StartModifyStep (2) --> Simuleer Groepering + Keuze : "Nieuwe mapping bijvoegen" of "Groepering Toepassen" ? + "Groepering Toepassen" : PasAanSortKeyViaMapping() oproepen via "Wijzig Order" op basis van GroepKey mapping op LijnNr+Korttekst --> Tekst tonen aan User : "Wijzig Order in Admin" + */ +]]> + + + +TLNr:%String,Kenmerk:%String +1 +%String + + + + +TOENr:%String +1 + + + + + +Ad hoc splitsing Versie 2 : +Hierbij wordt de splisting gedefinieerd in een mapping (Global/multidim local) en kan de splitsing eerst gesimuleerd worden (via method SimuleerToeleveringLijnenAdHocSplitsen). + +%String + + + + +TOENr:%String +%Boolean + + + + + +1 + + + + + +Oproepen via : + Do ##class(BL.Legacy.FLOWTOE.AdHocSplitser).%New().SimuleerToeleveringLijnenAdHocSplitsen(TOENr) +ToeleveringId:%String,TonenMetVolledigeSortKey:%Boolean="" +%String + 0 { + Set Product = ProductAPI.GeefProduct(PRNr) + If LEVNr=6332 { + Set Leverdag = ##class(BL.Legacy.FLOWTOE).GeefLeverdag(Toelevering,TLNr) + Set:($Length(Leverdag)) SortKey = ProductieService.GeefCategorie(Product.GeefID())_" "_ProductieService.GeefProductieGroep(KlantID,Product.GeefID())_" "_Leverdag + } + Else { + Set SortKey = "LEVNr"_LEVNr_";" + } + If ##class(BL.Legacy.FLOWTOE).IsToeleveringLijnVoorSpaceTowerProduct(Toelevering,TLNr) Set SortKey = OrderLijnVolgnummer + Set SortKeyViaMapping = SortKey + Do ..PasAanSortKeyViaMapping(.SortKeyViaMapping,Product,TOENr,TLNr,KlantID) + If $$$Not(TonenMetVolledigeSortKey) { + Set SortKeyViaMapping = ##class(TECH.StringUtils).Replace(SortKeyViaMapping, SortKey, "") + } + } + Else { + Set SortKey=$G(LastSortKey) + } + Set:(SortKey="") SortKey="0000" + Set LastSortKey = SortKey + + Set arSplit(SortKey,TLNr) = "" + + Set arSplit2($$$LabelSubTotaal, SortKeyViaMapping) = $G(arSplit2($$$LabelSubTotaal, SortKeyViaMapping)) + LijnAantal + Set arSplit2($$$LabelGroepKey, SortKeyViaMapping, TLNr)=" #:"_$J(LijnAantal,2) _ " - " _ Product.GeefKorttekst() + } + + Write !,! + zw arSplit2 +]]> + + + + +Ad hoc splitsing Versie 1 : deze is nog mogelijk, maar verouderde methode. +Hierbij moet de implementatie van deze method aangepast worden, naargelang de gewenste splisting. + +1 + "_SortKey) +]]> + + + + +