Enuméré de gammex inexistant

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

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

Enuméré de gammex inexistant

de croftman » Jeu 6 Mar 2014 12:55

Bonjour !

Lorsque je crée un BL d'après un PL, j'ai les objets métiers qui me renvoient "L'énuméré de gamme n'existe pas pour l'article ..."

Faut-il que j'attribue quelque-chose avant ?

Voici la portion de code :

Code: Tout sélectionner
                            // Création de la ligne F_DOCLIGNE
                            ligne_temp = (IBODocumentVenteLigne3)docBL.FactoryDocumentLigne.Create();

                            qte = docTemp.DL_Qte;
                            qte_livree = docTemp.DL_QteBL;

                            // Assignation de l'article
                            ligne_temp.SetDefaultArticle(baseGescom.FactoryArticle.ReadReference(docTemp.Article.AR_Ref), qte);

                            // Prix
                            ligne_temp.DL_PrixRU = docTemp.DL_PrixRU;
                            ligne_temp.DL_PrixUnitaire = docTemp.DL_PrixUnitaire;

                            // Remise
                            ligne_temp.Remise = docTemp.Remise;

                            if (qte_livree < qte)
                            {
                               
                                reliquat = true;

                                rel_temp = new Dictionary<string, string>();
                                rel_temp.Add("numPiece", pieceBL);
                                rel_temp.Add("client", docTemp.Client.CT_Num.ToString());
                                rel_temp.Add("article", docTemp.Article.AR_Ref.ToString());
                                rel_temp.Add("qte", qte.ToString());

                                reliquats.Add(rel_temp);
                                /*docTemp.DL_Qte = 0.000;
                                docTemp.DL_QteBC = qte;
                                docTemp.DL_QteBL = 0.000;
                                docTemp.Write();*/
                            }

                            ligne_temp.Write();

                            // Commentaire (info libre 1)
                            ligne_temp.InfoLibre[1] = docTemp.InfoLibre[1];

                            // enuméré
                            ligne_temp.EU_Enumere = docTemp.EU_Enumere;

                            ligne_temp.Write();

                            //tablignes.Add(ligne_temp);
                        }


Ca plante sur le .Write();

Merci !
Posteur habitué
Posteur habitué
 
Messages: 20
Inscription: Mer 18 Sep 2013 14:52

Re: Enuméré de gammex inexistant

de gremlins13 » Mer 2 Avr 2014 10:59

Bonjour,

Si ton article possède une gamme, tu dois utiliser l’instruction :
Ligne.SetDefaultArticleMonoGamme(ArticleGamme1,Quantite)

Si ton article possède deux gammes, tu dois utiliser l’instruction :
Ligne.SetDefaultArticleDoubleGamme(ArticleGamme1,ArticleGamme2,Quantite)

au lieu de Ligne.SetDefaultArticle(ArtSage, Quantite);

Ou ArticleSage : IBOArticle3,

ArticleGamme1 et ArticleGamme2 sont des : IBOArticleGammeEnum3;

Ces deux dernières variables peuvent etre initialisées de la manière suivante :

Article monogamme : ArtGamme1 := ArtSage.FactoryArticleGammeEnum1.ReadEnumere(Gamme1);
Article double gamme : ArtGamme2 := ArtSage.FactoryArticleGammeEnum2.ReadEnumere(Gamme2);


J'espère que ça va t'aider et te mettre sur la piste
Avatar de l’utilisateur
Posteur néophyte
Posteur néophyte
 
Messages: 13
Inscription: Mar 26 Fév 2013 12:06

Re: Enuméré de gammex inexistant

de croftman » Mar 22 Avr 2014 16:53

Bonjour !

Merci de ta réponse, tu me sauves la !

Çà fonctionne impec, je met le code pour les intéressés :

Code: Tout sélectionner
ligne_temp = (IBODocumentVenteLigne3)docPL.FactoryDocumentLigne.Create();

                            qte = (docTemp.DL_Qte != 0) ? docTemp.DL_Qte : 1;

                            // Assignation de l'article
                            if (docTemp.ArticleGammeEnum1 != null)
                            {
                                gamme1= docTemp.ArticleGammeEnum1.EG_Enumere.ToString();
                            }
                            if (docTemp.ArticleGammeEnum2 != null)
                            {
                                gamme2 = docTemp.ArticleGammeEnum2.EG_Enumere.ToString();
                            }

                            articleTemp = baseGescom.FactoryArticle.ReadReference(docTemp.Article.AR_Ref);
                            if (gamme1 != "" && gamme2 != "")
                            {
                                artGamme1 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme1);
                                artGamme2 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme2);
                                ligne_temp.SetDefaultArticleDoubleGamme(artGamme1, artGamme2, qte);
                            }
                            else if (gamme1 != "" || gamme2 != "")
                            {
                                if(gamme1!= "" )
                                {

                                    artGamme1 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme1);
                                    ligne_temp.SetDefaultArticleMonoGamme(artGamme1, qte);
                                }
                                else
                                {
                                    artGamme2 = articleTemp.FactoryArticleGammeEnum1.ReadEnumere(gamme2);
                                    ligne_temp.SetDefaultArticleMonoGamme(artGamme2, qte);
                                }
                            }
                            else
                            {
                                ligne_temp.SetDefaultArticle(articleTemp, qte);
                            }


Avec docTemp = IBODocumentVenteLigne3, issu de docBC.FactoryDocumentLigne.List avec docBC => docBC = baseGescom.FactoryDocumentVente.ReadPiece(DocumentType.DocumentTypeVenteCommande, numPiece);

:D
Posteur habitué
Posteur habitué
 
Messages: 20
Inscription: Mer 18 Sep 2013 14:52


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