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

           Devenez partenaire Principal ou Majeur de Neogia

Service d'ajout d'un orderItem


Ce service permet d'ajouter un orderItem à une commande. Il se nomme appendOrderItemNeogia et sa définition se trouve dans le fichier service_neogia.xml (order/servicedef/). Il possède comme attributs :

- OrderId, mode = "INOUT", le numéro de la commande
- productId, mode = "IN", l'identifiant du produit
- prodCatalogId, mode = "IN", l'identifiant du catalogue associé au produit
- basePrice, mode = "IN", le prix de l'OI
- quantity, mode = "IN", la quantité de l'OI
- amount, mode = "IN", le montant de l'OI
- itemComment, mode = "IN", le commantaire de l'OI
- quantityOISG, mode = "IN", la Map (liste) des quantités réparties dans les OIGA (optionnel)
- quantityNew, mode = "IN", la quantité dans le nouveau OISG (optionnel)
- itemDesiredDeliveryDate, mode = "IN", la date du nouveau OISG (optionnel)

Attributs non gérés (pour les emballages) :

- itemQuantityUomId, invoicingQtyUomId, invoicingQuantity, packaging, quantityPack

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

Le service charge l'oderHeader, créé un orderItem, le répartie dans des OISGA et /ou dans un nouveau OISG, gère les règles de prix, les promotions, la TVA et le StockEventPlanned.


- Algorithme :

* charger le context
* vérifie que la quantité de l'OI est égal à la somme des quantité des OISGA + le nouveau OISG (si différent à erreur)
* création de l'orderItem (nouveau orderItemSeqId unique)
* calcul du prix en fonction des règles de prix si basePrice n'est pas null
* création d'un orderStatus associé à l'OI ("ITEM_CREATED")
* créé des OISGA pour les quantityOISG > 0
* créé un OISG si quantityNew > 0 et itemDesiredDeliveryDate différent de nul puis un OISGA
* calcul les taxes (TVA)
* calcul les promotions et ne sauvegarde que celles de la ligne
* créer le stockEventPlanned
* retourner l'orderId

- Fin Algorithme