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 + +