Index: BL/Flow/Offerte/Build.cls.xml =================================================================== diff -u -r734 -r771 --- BL/Flow/Offerte/Build.cls.xml (.../Build.cls.xml) (revision 734) +++ BL/Flow/Offerte/Build.cls.xml (.../Build.cls.xml) (revision 771) @@ -1,10 +1,10 @@ - + -BL.EC.Common,%VHMacro +BL.EC.Common 1 %RegisteredObject -62073,43254.664772 +62124,55592.964908 60207,60266.267121 0 @@ -20,28 +20,12 @@ - -oOfferte:Flow.Offerte.Hoofding - - - - - - - Voorbereiden van de offerte voor import in een order @@ -53,11 +37,23 @@ Set Key="" For Set oLijn=..oOfferte.Lijnen.GetNext(.Key) Quit:Key="" Do . Quit:'$isObject(oLijn) - . Do oLijn.BL.Generate(.NoSa) ; (Taal,.NoSa) + . Do ..GenerateLijn(oLijn,.NoSa) Quit ]]> + + +Voorbereiden van een offertelijn voor import in een order +De generatie is polymorph - soort lijn afhankelijk +oLijn:Flow.Offerte.Lijn,NoSa:%String +%Status + + + Voorbereiden van de offerte voor prijsberekening en controle @@ -68,7 +64,7 @@ @@ -78,7 +74,7 @@ De simulatie is polymorph - soort lijn afhankelijk oLijn:Flow.Offerte.Lijn,Taal:%String,NoSa:%String %Status - @@ -91,7 +87,7 @@ Set Key="" For Set oLijn=..oOfferte.Lijnen.GetNext(.Key) Quit:Key="" Do . Quit:..IsSubLijn(oLijn) ; Sublijnen worden gecontroleerd tijdens de hoofdlijnen - . Do oLijn.BL.Controles(Taal,.NoSa) + . Do ..ControleLijn(oLijn,.What,.Taal,.NoSa) ]]> @@ -103,19 +99,11 @@ oLijn:Flow.Offerte.Lijn,What:%String,Taal:%String,NoSa:%String %Status - - - - Creatie van een nieuwe offerte @@ -208,23 +196,33 @@ Opent een offertelijn bepaald door de aard van InputObj. -InputObj is een Object of een ObjectID van klasse Flow.Offerte.Hoofding of Flow.Offerte.LijnAbstract +InputObj is een Object of een ObjectID van klasse Flow.Offerte.Hoofding of Flow.Offerte.Lijn Indien Hoofding dan wordt de eerste OfferteLijn uit de hoofding genomen. -Geeft steeds een Object van de klasse Flow.Offerte.LijnAbstract terug (of leeg indien niet bepaald) +Geeft steeds een Object van de klasse Flow.Offerte.Lijn terug (of leeg indien niet bepaald) 1 InputObj:%String -Flow.Offerte.LijnAbstract +Flow.Offerte.Lijn + +OfferteID + + + Opslaan van een offerte (hoofding en lijnen) @@ -239,22 +237,12 @@ ]]> - -OfferteID - - - Aanmaken van het subobject adres Flow.Offerte.Adres @@ -267,7 +255,6 @@ %Status @@ -281,14 +268,14 @@ Set ..oOfferte="" Kill ..SortCache Set sc=##class(Flow.Offerte.Hoofding).%DeleteId(OfferteID) - d WL^vhDBG("DELETE id:"_OfferteID_" status:"_$$ParseStatus^vhLib(sc)) Quit sc ]]> Days Status,NoMail:%Boolean=0 %Status OfferteID:%String %String @@ -343,46 +330,24 @@ 0 %Date datum + $$$blLeverTermijn($H) New Key,MinDatum,lbTermijn,Datum,VerzW Set Key="" Set MinDatum=+$H For Set oLijn=..oOfferte.Lijnen.GetNext(.Key) Quit:Key="" Do . Quit:'$isObject(oLijn) - // [?? RESET BL] - #If $$$Server="CACHE01" . Set lbTermijn=oLijn.MinLeverTermijn() ; format $LB(aantal,dagofweek) - #Else - . Set lbTermijn=oLijn.BL.MinLeverTermijn() ; format $LB(aantal,dagofweek) - #EndIf + . ;d WLIP^vhDBG(15,"lbTermijn:"_$$LCVT^vhLib(lbTermijn)) . Set Datum=%blLeverTermijn.GetVroegsteDatumFromTermijn(lbTermijn) ; exclusief transport + . ;d WLIP^vhDBG(15,"Vroegstebeschikbaar:"_$$EXTDATE^vhDTyp(Datum,"DKP")) . Set Datum=%blLeverTermijn.GetVroegsteLevering(Datum) ; inclusief transport + . ;d WLIP^vhDBG(15,"Vroegstelevering:"_$$EXTDATE^vhDTyp(Datum,"DKP")) . Set:Datum>MinDatum MinDatum=Datum ; afronden op verzendingswijze Set MinDatum=%blLeverTermijn.AfrondenLeverDag(MinDatum) Quit MinDatum - - /*New Key,MinDatum,lbTermijn,Datum,VerzW - Set Key="" - Set MinDatum=+$H - For Set oLijn=..oOfferte.Lijnen.GetNext(.Key) Quit:Key="" Do - . Quit:'$isObject(oLijn) - . Set lbTermijn=oLijn.BL.MinLeverTermijn() ; format $LB(aantal,dagofweek) - . ;w !,$LI(lbTermijn,2)," ",$LI(lbTermijn,1) - . Set Datum=..CalcDatum(+$H,$LI(lbTermijn,2),$LI(lbTermijn,1)) - . Set:Datum>MinDatum MinDatum=Datum - - ; afronden op verzendingswijze - Set VerzW=..oOfferte.VerzendWijze - Set:VerzW="" VerzW=$$DEFAULT^KLVERZW(,..oOfferte.KlantGetObjectId()) - $$$InitOldLocals - ;w !,"voor verzw ",MinDatum - Set MinDatum=$$LEVERDATUM^KLVERZW(VerzW,MinDatum) - ;w !,"after verzw ",MinDatum - - Quit MinDatum*/ ]]> @@ -406,7 +371,7 @@ Set Titel=$S($G(IsResend):"HERHALING: ",1:"")_"Import offerte "_..oOfferte.%Id()_" in order" Set Body($I(Body))="Referentie: "_..oOfferte.Referentie_$S($L(..oOfferte.CommReferentie):" / "_..oOfferte.CommReferentie,1:"") Set:$L(..oOfferte.Afzender) Body(1)=Body(1)_"~Afzender: "_..oOfferte.Afzender - Set:$L(..oOfferte.Oorsprong) Body(1)=Body(1)_"~Oorsprong: "_$CASE(..oOfferte.Oorsprong,"EC":"E-commerce","DYN":"Dynaplug","EDI":"EDI","OLWEB":"Orgalux webshop",:"") + Set:$L(..oOfferte.Oorsprong) Body(1)=Body(1)_"~Oorsprong: "_$CASE(..oOfferte.Oorsprong,"EC":"E-commerce","DYN":"DynaLog","EDI":"EDI",:"") Set:$L(..Count()) Body(1)=Body(1)_"~Aantal lijnen: "_..Count() If $L(..oOfferte.Commentaar) Do . Set Body($I(Body))="~~OPMERKING:~"_$TR(..oOfferte.Commentaar,$C(10,13),"~") @@ -418,25 +383,17 @@ ]]> - - - - Status wordt steeds per paar opgeslagen. De oneven items bevatten de code, de even items de comment Men kan de comment ook toevoegen aan een reeds bestaande comment dit als AddComment=1 Het comment gedeelte van de status kan undefined zijn of leeg, dit betekent hetzelfde ! -oLijn:Flow.Offerte.LijnAbstract,Code:%String,Comment:%List="",AddComment=0 +oLijn:Flow.Offerte.Lijn,Code:%String,Comment:%List="",AddComment=0 Verwijderd de code en de comment -oLijn:Flow.Offerte.LijnAbstract,Code:%String +oLijn:Flow.Offerte.Lijn,Code:%String Toevoegen van een product aan de offerte. GroepKey:%String,InsertWijze:%String="AP;L",PRNr,Aantal -Flow.Offerte.LijnAbstract +Flow.Offerte.Lijn -Wijzigen van een productlijn. -Eerst wordt er een copy genomen waarna er gecontroleerd wordt of er mag gewijzigd worden +Wijzigen van een productlijn GroepKey:%String,PRNr,Aantal -Flow.Offerte.LijnAbstract +Flow.Offerte.Lijn Toevoegen van een afgeleidproduct aan de offerte -GroepKey:%String,InsertWijze:%String="AP;L",GAData:Prod.GAData.Abstract,Aantal:%Integer -Flow.Offerte.LijnAbstract - - - - - -Toevoegen van een afgeleidproduct aan de offerte -Flow.Offerte.LijnAbstract +Flow.Offerte.Lijn Wijzigen van een afgeleidproduct -GroepKey:%String,GAData:%String,Aantal:%Integer -Flow.Offerte.LijnAbstract - + +Flow.Offerte.Lijn Toevoegen van een text aan de offerte GroepKey:%String,InsertWijze:%String="AP;L",Text:%String -Flow.Offerte.LijnAbstract +Flow.Offerte.Lijn @@ -571,14 +482,7 @@ Wijzigen van een textlijn GroepKey:%String,Text:%String -Flow.Offerte.LijnAbstract - +Flow.Offerte.Lijn @@ -610,100 +514,43 @@ ]]> - + -Split kan zowel een %ArrayOfObjects van pxProductSlit zijn als één record pxProductSplit -oLijn:Flow.Offerte.LijnAbstract -%Status - - - - - Invoegen van sublijnen vertrekkend van de moederlijn en een lijst van producten. format: $LB($LB(PRNr,Aantal),...) vb. $LB($LB(7458,4),$LB(105215,1)) -oLijn:Flow.Offerte.LijnAbstract,lbProducts:%List +oLijn:Flow.Offerte.Lijn,lbProducts:%List rechtstreeks wijzigen . Set PRNr=$LI($LI(lbProducts),1) . Quit:PRNr'?4.7N . Quit:'$D(^KPR(PRNr)) - . Set Factor=$LI($LI(lbProducts),2) + . Set Faktor=$LI($LI(lbProducts),2) . Do oLijn.ProductSetObjectId(PRNr) - . Quit:'Factor - . Quit:Factor=1 - . Set oLijn.Factor=Factor - . Set oLijn.Aantal=oLijn.Aantal*Factor + . Quit:'Faktor + . Quit:Faktor=1 + . Set oLijn.Faktor=Faktor + . Set oLijn.Aantal=oLijn.Aantal*Faktor Else Do ; Meerdere producten -> sublijnen . For I=1:1:$LL(lbProducts) Do . . Set PRNr=$LI($LI(lbProducts,I),1) - . . Set Factor=$LI($LI(lbProducts,I),2) - . . Set oSubLijn=##class(Flow.Offerte.LijnProduct).Create(PRNr,Aantal) + . . Set Faktor=$LI($LI(lbProducts,I),2) + . . Set oSubLijn=##class(Flow.Offerte.LijnProduct).Create(PRNr,oLijn.Aantal*Faktor) + . . Set oSubLijn.Faktor=Faktor . . Set oSubLijn.LeverDatum=oLijn.LeverDatum . . Set oSubLijn.Referentie=oLijn.Referentie + . . Set oSubLijn.EDILijnRef=oLijn.EDILijnRef . . Do ..InsertLijn(oSubLijn,oLijn.GroepKey,"AP;S") . Do ..SetStatus(oLijn,$$$OffStatMoederProduct) . ;Do ..AddStatus(oLijn,$$$OffStatMoederProduct) Quit ]]> - - -Split kan zowel een %ArrayOfObjects van pxProductSplit zijn als één record pxProductSplit -oLijn:Flow.Offerte.LijnAbstract,Split:%RegisteredObject - rechtstreeks wijzigen - . ;w "InsertSubLijnen"_oLijn.%ClassName() - . If $isObject(Split1.GAData)&&(oLijn.%ClassName()="LijnProductGA") Do - . . Set oLijn.GAData=Split1.GAData - . Else If $isObject(Split1.Product)&&(oLijn.%ClassName()="LijnProduct") Do - . . Set oLijn.Product=Split1.Product - . Quit:'Split1.Factor - . Quit:Split1.Factor=1 - . Set oLijn.Faktor=Split1.Factor - . Set oLijn.Aantal=oLijn.Aantal*Split1.Factor - Else Do ; Meerdere producten -> sublijnen - . Set Key="" ; VNR: volgnummer van de producten in ^PAKKET("D") - . Set AantalOrig=oLijn.Aantal - . For Set Split1=Split.GetNext(.Key) Quit:Key="" Do - . . If $isObject(Split1.GAData)&&(Split1.GAData.%ClassName()'["Abstract") Do - . . . Set oSubLijn=##class(Flow.Offerte.LijnProductGA).Create(Split1.GAData,oLijn.Aantal*Split1.Factor) - . . Else If $isObject(Split1.Product) Do - . . . ;d DumpObject^%apiOBJ(Split1.Product) - . . . Set oSubLijn=##class(Flow.Offerte.LijnProduct).Create(Split1.Product.%Id(),oLijn.Aantal*Split1.Factor) - . . Set oSubLijn.Faktor=Split1.Factor - . . Set oSubLijn.LeverDatum=oLijn.LeverDatum - . . Set oSubLijn.Referentie=oLijn.Referentie - . . Set oSubLijn.EDILijnRef=oLijn.EDILijnRef - . . Do ..InsertLijn(oSubLijn,oLijn.GroepKey,"AP;S") - . . ;w oSubLijn.GroepKey," ",oSubLijn.Product.%Id() - . Do ..SetStatus(oLijn,$$$OffStatMoederProduct) - Quit -]]> - - - - - - Controle of de lijn een sublijn is houdt geen rekening met backorders -oLijn:Flow.Offerte.LijnAbstract +oLijn:Flow.Offerte.Lijn %Boolean @@ -712,7 +559,7 @@ Controle of de lijn sublijnen heeft, als de lijn zelf een sublijn is dan 0 -oLijn:Flow.Offerte.LijnAbstract +oLijn:Flow.Offerte.Lijn %Integer Toevoegen van een lijn object aan de SortCache -oLijn:Flow.Offerte.LijnAbstract +oLijn:Flow.Offerte.Lijn @@ -781,7 +628,7 @@ Ophalen van het lijn object vertrekkend van de groepkey GroepKey:%String -Flow.Offerte.LijnAbstract +Flow.Offerte.Lijn @@ -795,7 +642,7 @@ 2 : op welk nivo er moet toegevoegd worden G = Groep, L = Lijn, S = Sublijn, B = backorderlijn De GroepKey is het referentiepunt voor de InsertWijze, als Nivo is S of B dan moet de GroepKey ingevuld zijn. -oLijn:Flow.Offerte.LijnAbstract,GroepKey:%String,InsertWijze:%String="AP;L" +oLijn:Flow.Offerte.Lijn,GroepKey:%String,InsertWijze:%String="AP;L" %Status - +