ERP en LOGICIEL LIBRE dédié aux PME-PMI

           Devenez partenaire Principal ou Majeur de Neogia

Service de MAJ d'un orderItem


Le service de MAJ d'un orderItem est défini dans le fichier service_neogia.xml (order/servicedef/). Il possède comme attribut :

- OrderId, mode = "INOUT", le numéro de la commande
- orderDescription, mode = "IN", la description du produit
- orderComment, mode = "IN", le commentaire du produit
- itemQtyMap, mode = "IN", les quantités réparties dans les OISGA existant 
- itemPrice, mode = "IN", le prix de la ligne 
- quantityPackMap, mode = "IN", pas géré
- packagingMap, mode = "IN", pas géré
- quantityInvoiceMap, mode = "IN", pas géré

L'implémentation JAVA se trouve dans le fichier OrderServices.java dans le répertoire src/.../order/developed/. La méthode se nomme updateOrderItemsNeogia et n'utilise pas le Cart!

Le service charge l'oderHeader, et l'orderItem qu'il faut modifier depuis la base de données, modifie les données en fonction du context puis sauvegarde les données. De plus il va mettre à jour les ajustements et le StockEventPlanned.

- Algorithme :

* charger le context
* vérifier si l'utilisateur peut modifier la commande
* charger l'orderHeader et l'orderItem
* modifier la quantité des OISGA 
* modifier la données de l'OI (quantité, prix, description, commentaires)
* calculer les taxes (TVA)
* calculer les frais d'expéditions
* gérer le stockEventPlanned
* retourner l'orderId

- Fin Algorithme


Pour le calcul des taxes :

* appel de la méthode calcTax de OrderHeader (basé sur l'adresse de facturation)
* mise en place du contexte (page Calcul des taxes (MAJ d'un orderItem))
* appel du service rateProductTaxCalc présent dans le fichier TaxAuthorityServices.java du module accounting

Pour les frais de transport :

* appel de la méthode recalcOrderShipping d'OrderServices (version ofbiz) qui :
  * vérifie si l'utilisateur a les droit de modifier la commande
  * charge l'orderHeader
  * recalcul les frais d'expédition via la méthode getShipEstimate de ShippingEvents.java 
  * cette méthode utilise l'OrderReadHelper pour récupérer les champs nécessaire au calcul des shipping charges :
      * notamment l'adresse de livraison - PostalAddress -
      * les méthodes de paiements : shipmentMethodTypeId
      * carrierRoleTypeId ...
  * MAJ le montant des SHIPPING_CHARGES de la table OrderAdjustment