Ligne 100 - Gestion devis avec OM V3 et Windev

Cette section est consacrée aux développements d'applications interfacées avec les logiciels Sage.

Modérateurs: Super-Apogea, Super Modérateur

Ligne 100 - Gestion devis avec OM V3 et Windev

de fbal » Jeu 14 Sep 2017 11:38

Bonjour,

J'utilise les OM v3 avec Windev (21) pour la création de devis.
Tout se passe correctement mais j'ai un problème avec certains articles en nomenclature "Commerciale/composé".
Sous Sage, quand le même devis est réalisé, la création d'une ligne avec un article de ce type engendre automatiquement les lignes des articles liés.
Avec OM piloté par le programme sous Windev, je croyais que l'utilisation de WriteDefault() allait faire ce job mais il n'en est rien...

En gros, je fais :
Code: Tout sélectionner
// Création de l'objet métier devis
pautNVDocDevis = OM_Sage:autBaseCialEXPRESS>>FactoryDocumentVente>>CreateType(0)
// Affectation du client au devis
pautNVDocDevis>>SetDefaultClient(OM_Sage:autBaseCptaEXPRESS>>FactoryTiers>>ReadNumero(sCT_Num))
// Affectation n° piece
pautNVDocDevis>>SetDefaultDO_Piece()
// Création de l'entete du devis
pautNVDocDevis>>WriteDefault

// Création de l'OM ligne de document
pautLigneCDEArticle = pautNVDocDevis>>FactoryDocumentLigne>>Create
// Affectation de l'article, le deuxieme parametre est la quantité
pautLigneCDEArticle>>SetDefaultArticle(OM_Sage:autBaseCialEXPRESS>>FactoryArticle>>ReadReference(AR_Ref),1)
// Ecriture de la ligne
pautLigneCDEArticle>>WriteDefault



Question : est-ce qu'il faut vérifier pour chaque article si il est dans ce type de nomenclature et si oui, de lister et d'ajouter les articles liés ? L'un d'entre-vous aurait-il la bonté de poster un petit exemple ou les fonctions OM à utiliser ?

Un grand merci aux spécialistes OM qui pourront répondre...
Dernière édition par fbal le Lun 18 Sep 2017 16:38, édité 2 fois.
Posteur néophyte
Posteur néophyte
 
Messages: 9
Inscription: Jeu 14 Sep 2017 11:34

Re: Ligne 100 - Gestion devis avec OM V3 et Windev

de asr31 » Jeu 14 Sep 2017 14:21

Bonjour,

Je suis aussi assez déçu par les OM qui soit disant doivent se comporter comme l'application cliente (Gescom.exe) ...

Pourtant, j'ai suivi les différents cursus de formation sur les OM, mais je ne suis pas forcément un bon développeur en .Net...

Pour avoir essayé de reprendre les exemples des formations, je n'arrive pas, par exemple, à appliquer leurs exemples sur un 'simple' transfert de dépôt à dépôt d'articles sérialisés sans gestion des emplacements.

Mais bon, c'est à moi de bien comprendre ce modèle objet SAGE...

Cordialement,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE

Re: Ligne 100 - Gestion devis avec OM V3 et Windev

de fbal » Lun 18 Sep 2017 16:29

Bonjour,
J'ai pu résoudre mon problème, il faut utiliser le processus de création de document (voir page 91 du manuel OM).

Code: Tout sélectionner
// NB : strDoc est une structure que j'utilise pour stocker toutes les infos nécessaires
// à la création de mon document
mProcessDoc, mDoc est un objet Automation dynamique
mProcessDoc = :autBaseCialEXPRESS>>CreateProcess_Document(strDoc:nTypeDocument) // 0 = Devis
// Conversion (implicite) du document du processus (IBODocument3)
// dans le type du document de destination : Devis (IBODocumentVente3)
mDoc = mProcessDoc>>Document

// Affectation au client
mDoc>>SetDefaultClient(:autBaseCptaEXPRESS>>FactoryTiers>>ReadNumero(strDoc:sCT_Num))
// Affectation n° piece (donné automatiquement par Sage)
mDoc>>SetDefaultDO_Piece()
strDoc:sDOPiece = mDoc>>DO_Piece()

// Ajout références et coordonnées
mDoc>>DO_Ref = strDoc:sReference
mDoc>>DO_Coord(1) = strDoc:sContact

POUR c=1 _A_ Dimension(strDoc:tsLignes)
   mLig est un objet Automation dynamique
   //Si la ligne à insérer a un commentaire, on créé une ligne sans référence avant la ligne article
   SI PAS strDoc.tsLignes[c].sCommentaires ~="" ALORS
      // Création de l'OM ligne de document
      mLig = mDoc>>FactoryDocumentLigne>>Create
      // Affectation de l'article, le deuxieme parametre est la quantité
      mLig>>DL_Design = strDoc.tsLignes[c].sCommentaires
      // Ecriture de la ligne
      mLig>>WriteDefault
   FIN
   // Ajout de la ligne article, si il y a un ou plusieurs articles liés, il seront créés
   mLig = mProcessDoc>>AddArticle(:autBaseCialEXPRESS>>FactoryArticle>>ReadReference(strDoc:tsLignes[c]:sRéférence), strDoc.tsLignes[c]:eQuantité)
FIN


// Tout est prêt
SI mProcessDoc>>CanProcess ALORS
   mProcessDoc>>Process()
FIN
// On peut ensuite éventuellement ajouter des infos libres sur le document (pas en création, après)



Ouf...
Posteur néophyte
Posteur néophyte
 
Messages: 9
Inscription: Jeu 14 Sep 2017 11:34


Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités