Index: APPS/common/KlantKost/impl/KlantKostService.cls.xml
===================================================================
diff -u -r2568 -r2779
--- APPS/common/KlantKost/impl/KlantKostService.cls.xml (.../KlantKostService.cls.xml) (revision 2568)
+++ APPS/common/KlantKost/impl/KlantKostService.cls.xml (.../KlantKostService.cls.xml) (revision 2779)
@@ -252,7 +252,7 @@
/// OPTIMA Per pallet eigen prijs.
Set KlantOptima = KlantAPI.GeefKlantOptimaPack()
- Set FactorNaam = TransportCalculator.GeefFactorNaamLosTransportUitz(KlantOptima,Belgie,TTC,EuroPallet)
+ Set FactorNaam = TransportCalculator.GeefFactorNaamLosTransportUitz(KlantOptima,KlantOptima.GeefAdres().GeefLand(),TTC,EuroPallet)
Do ..ZetFactorMetNaamEnWaarde(LosTransportFactor,FactorNaam,22.23,GeldigVanaf)
Set LosTransportFactor = ""
Index: APPS/common/KlantKost/impl/TransportKostCalculator.cls.xml
===================================================================
diff -u -r2568 -r2779
--- APPS/common/KlantKost/impl/TransportKostCalculator.cls.xml (.../TransportKostCalculator.cls.xml) (revision 2568)
+++ APPS/common/KlantKost/impl/TransportKostCalculator.cls.xml (.../TransportKostCalculator.cls.xml) (revision 2779)
@@ -22,7 +22,7 @@
While (KlantIt.HasNext()){
Set Klant = KlantIt.Next()
- //Set $ZTRAP = "CatchBerekeningFaalt"
+ Set $ZTRAP = "CatchBerekeningFaalt"
/// Array met VerpakkingEenheid als key, dan %Date als key en aantal als waarde.
Set AantalPerTransporteurPerTypePerDag = ##class(%ArrayOfObjects).%New()
@@ -39,97 +39,102 @@
Set BonIt = Factuur.GeefBonIterator()
While BonIt.HasNext() {
Set Bon = BonIt.Next()
- /// Verzendwijze controleren : Bulk of Los
-
- If (Bon.GeefVerzendwijze() = ##class(DOM.OV.enu.VerzendWijze).Expediteur())
- {
- Set Datum = Factuur.GeefDatum()
- /// Dit is voor Nord Inox
- /// Onderscheid maken tussen klanten waar kosten per rit
- Set FactorRit = ..GeefFactorWaardeRitTransport(Klant,Datum)
- /// Per rit
- If (FactorRit '= -1){
- Do ArrayMetVervoerRefPerRit.SetAt(Datum,Datum)
- }
- }
- //////////////////////////////
- /// Bulk ///
- /// OD, OD1, OD2, OD3, OD5 ///
- //////////////////////////////
-
- /// 1.89 % op kolom TotVerkoop via KlantBeoordeling.
-
- If (TransportAPI.IsBulkTransport(Bon.GeefVerzendwijze()))
- {
- Set Datum = Factuur.GeefDatum()
+ /// Retours niet mee rekenen in transportkosten
+ If (Bon.GeefTotaalAantalProducten() >= 0){
+ /// Verzendwijze controleren : Bulk of Los
- /// Onderscheid maken tussen klanten waar kosten per rit worden gemaakt of per (pallet/colli)
- Set FactorRit = ..GeefFactorWaardeRitTransport(Klant,Datum)
- /// Per rit
- If (FactorRit '= -1){
- Do ArrayMetVervoerRefPerRit.SetAt(Datum,Datum)
- }Else{
- Set BedragTotaalVerkoop = TotaalVerkoopViaBulkOpDag.GetAt(Datum) + Bon.GeefTotaalVerkoopPrijs()
- Do TotaalVerkoopViaBulkOpDag.SetAt(BedragTotaalVerkoop,Datum)
+
+ If (Bon.GeefVerzendwijze() = ##class(DOM.OV.enu.VerzendWijze).Expediteur())
+ {
+ Set Datum = Factuur.GeefFactuurDatum()
+ /// Dit is voor Nord Inox
+ /// Onderscheid maken tussen klanten waar kosten per rit
+ Set FactorRit = ..GeefFactorWaardeRitTransport(Klant,Datum)
+ /// Per rit
+ If (FactorRit '= -1){
+ Do ArrayMetVervoerRefPerRit.SetAt(Datum,Datum)
+ }
}
- }
-
- //////////////////////////////
- /// Los ///
- /// DI2, DI3 ///
- //////////////////////////////
- /// Indien er transport deze kost toevoegen
-
- ElseIf (TransportAPI.IsLosTransport(Bon.GeefVerzendwijze()))
- {
- Set TransportLink = $p($g(^KUL(Klant.GeefNummer(),"G",Bon.GeefBonNr(),1)),"\",8)
- If (TransportLink '= ""){
- Set VervoerRef = $Piece(TransportLink,";",1)
- Set GroepRef = $Piece(TransportLink,";",2)
- Set Transport = TransportAPI.GeefTransport(VervoerRef,GroepRef)
- Set Datum = ##class(TECH.DateTime).TimestampToDate(Transport.GeefOphaalTimeStamp())
+
+ //////////////////////////////
+ /// Bulk ///
+ /// OD, OD1, OD2, OD3, OD5 ///
+ //////////////////////////////
+
+ /// 1.89 % op kolom TotVerkoop via KlantBeoordeling.
+
+ If (TransportAPI.IsBulkTransport(Bon.GeefVerzendwijze()))
+ {
+ Set Datum = Factuur.GeefFactuurDatum()
/// Onderscheid maken tussen klanten waar kosten per rit worden gemaakt of per (pallet/colli)
Set FactorRit = ..GeefFactorWaardeRitTransport(Klant,Datum)
/// Per rit
If (FactorRit '= -1){
- Do ArrayMetVervoerRefPerRit.SetAt(Datum,VervoerRef)
+ Do ArrayMetVervoerRefPerRit.SetAt(Datum,Datum)
+ }Else{
+ Set BedragTotaalVerkoop = TotaalVerkoopViaBulkOpDag.GetAt(Datum) + Bon.GeefTotaalVerkoopPrijs()
+ Do TotaalVerkoopViaBulkOpDag.SetAt(BedragTotaalVerkoop,Datum)
}
- /// Per pallet / Colli
- Else{
- If ('AantalPerTransporteurPerTypePerDag.IsDefined(Transport.GeefTransporteur()))
- {
- Do AantalPerTransporteurPerTypePerDag.SetAt(##class(%ArrayOfObjects).%New(),Transport.GeefTransporteur())
- }
- Set AantalPerTypePerDag = AantalPerTransporteurPerTypePerDag.GetAt(Transport.GeefTransporteur())
-
+ }
+
+ //////////////////////////////
+ /// Los ///
+ /// DI2, DI3 ///
+ //////////////////////////////
+ /// Indien er transport deze kost toevoegen
+
+ ElseIf (TransportAPI.IsLosTransport(Bon.GeefVerzendwijze()))
+ {
+ Set TransportLink = $p($g(^KUL(Klant.GeefNummer(),"G",Bon.GeefBonNr(),1)),"\",8)
+ If (TransportLink '= ""){
+ Set VervoerRef = $Piece(TransportLink,";",1)
+ Set GroepRef = $Piece(TransportLink,";",2)
+ Set Transport = TransportAPI.GeefTransport(VervoerRef,GroepRef)
+ Set Datum = ##class(TECH.DateTime).TimestampToDate(Transport.GeefOphaalTimeStamp())
- /// Alle verpakkingseenheden overlopen
- Set VerpakkingEenheidIt = Transport.GeefVerkpakkingEenheidIterator()
-
- While VerpakkingEenheidIt.HasNext()
- {
- Set VerpakkingEenheid = VerpakkingEenheidIt.Next()
-
- Set AantalPerDag = AantalPerTypePerDag.GetAt(VerpakkingEenheid.GeefType())
- If ('$IsObject(AantalPerDag)){
- Set AantalPerDag = ##class(%ArrayOfObjects).%New()
- }
-
- Set AantalPerVerzendwijze = AantalPerDag.GetAt(Bon.GeefVerzendwijze())
- If ('$IsObject(AantalPerVerzendwijze)) {
- Set AantalPerVerzendwijze = ##class(%ArrayOfDataTypes).%New()
+ /// Onderscheid maken tussen klanten waar kosten per rit worden gemaakt of per (pallet/colli)
+ Set FactorRit = ..GeefFactorWaardeRitTransport(Klant,Datum)
+ /// Per rit
+ If (FactorRit '= -1){
+ Do ArrayMetVervoerRefPerRit.SetAt(Datum,VervoerRef)
+ }
+ /// Per pallet / Colli
+ Else{
+ If ('AantalPerTransporteurPerTypePerDag.IsDefined(Transport.GeefTransporteur()))
+ {
+ Do AantalPerTransporteurPerTypePerDag.SetAt(##class(%ArrayOfObjects).%New(),Transport.GeefTransporteur())
}
- Set AantalPerVerpakkingEenheid = (AantalPerVerzendwijze.GetAt(Bon.GeefVerzendwijze()) + VerpakkingEenheid.GeefAantal())
+ Set AantalPerTypePerDag = AantalPerTransporteurPerTypePerDag.GetAt(Transport.GeefTransporteur())
+
- Do AantalPerVerzendwijze.SetAt(AantalPerVerpakkingEenheid,Bon.GeefVerzendwijze())
+ /// Alle verpakkingseenheden overlopen
+ Set VerpakkingEenheidIt = Transport.GeefVerkpakkingEenheidIterator()
- Do AantalPerDag.SetAt(AantalPerVerzendwijze,Datum)
-
- Do AantalPerTypePerDag.SetAt(AantalPerDag,VerpakkingEenheid.GeefType())
- }
- Do AantalPerTransporteurPerTypePerDag.SetAt(AantalPerTypePerDag,Transport.GeefTransporteur())
+ While VerpakkingEenheidIt.HasNext()
+ {
+ Set VerpakkingEenheid = VerpakkingEenheidIt.Next()
+
+ Set AantalPerDag = AantalPerTypePerDag.GetAt(VerpakkingEenheid.GeefType())
+ If ('$IsObject(AantalPerDag)){
+ Set AantalPerDag = ##class(%ArrayOfObjects).%New()
+ }
+
+ Set AantalPerVerzendwijze = AantalPerDag.GetAt(Bon.GeefVerzendwijze())
+ If ('$IsObject(AantalPerVerzendwijze)) {
+ Set AantalPerVerzendwijze = ##class(%ArrayOfDataTypes).%New()
+ }
+ Set AantalPerVerpakkingEenheid = (AantalPerVerzendwijze.GetAt(Bon.GeefVerzendwijze()) + VerpakkingEenheid.GeefAantal())
+
+ Do AantalPerVerzendwijze.SetAt(AantalPerVerpakkingEenheid,Bon.GeefVerzendwijze())
+
+ Do AantalPerDag.SetAt(AantalPerVerzendwijze,Datum)
+
+ Do AantalPerTypePerDag.SetAt(AantalPerDag,VerpakkingEenheid.GeefType())
+ }
+ Do AantalPerTransporteurPerTypePerDag.SetAt(AantalPerTypePerDag,Transport.GeefTransporteur())
+ }
}
}
}
@@ -152,19 +157,18 @@
Do ..MaakRitTransportKostItem(Klant,Datum,VervoerRef)
Set VervoerRef = ArrayMetVervoerRefPerRit.Next(VervoerRef)
}
-
/// LOS TRANSPORT
/// Alle transporteurs overlopen
Set Transporteur = AantalPerTransporteurPerTypePerDag.Next("")
While (Transporteur '= ""){
/// Alle types verpakkingEenheid overlopen
+ Set AantalPerTypePerDag = AantalPerTransporteurPerTypePerDag.GetAt(Transporteur)
Set VerpakkingEenheidType = AantalPerTypePerDag.Next("")
While (VerpakkingEenheidType '= ""){
/// Alle dagen overlopen en wegschrijven per dag in een KostItem
Set AantalPerDag = AantalPerTypePerDag.GetAt(VerpakkingEenheidType)
Set Datum = AantalPerDag.Next("")
While (Datum '= ""){
-
/// Alle verzendwijzen overlopen voor deze dag.
Set AantalPerVerzendwijze = AantalPerDag.GetAt(Datum)
Set Verzendwijze = AantalPerVerzendwijze.Next("")
@@ -195,7 +199,7 @@
+
+
+Factor waarde opzoeken voor specifiek land
+FactorNaam : Colli / Pallet / Rit
+FactorNaam:%String,Datum:%Date
+%Float
+
+
+
FactorWaarde voor Bulk via TTC opzoeken
Index: DOM/OV/impl/DataM/DataMBonInFactuur.cls.xml
===================================================================
diff -u -r2443 -r2779
--- DOM/OV/impl/DataM/DataMBonInFactuur.cls.xml (.../DataMBonInFactuur.cls.xml) (revision 2443)
+++ DOM/OV/impl/DataM/DataMBonInFactuur.cls.xml (.../DataMBonInFactuur.cls.xml) (revision 2779)
@@ -78,5 +78,23 @@
Quit TotaalVerkoopPrijs
]]>
+
+
+%Integer
+
+