Page 1 sur 1

categorie tarifaire OM

MessagePosté: Jeu 26 Mai 2016 14:44
de demiange
Bonjour,

j'essai de récupérer les catégories tarifaires défini dans une gamme selon l'article.

j'arrive à récupérer les différents intitulés des catégories tarifaire mais je n'arrive pas à accéder aux contenue à chaque fois le count() est à 0.

voila mon code :
Code: Tout sélectionner
pautListeArticle, Article,contenu_gamme,gamme sont des objets Automation dynamique
prixgamme,unprixgamme sont des objets Automation dynamique
TarifQteCategorie sont des objets Automation dynamique
maxi,maxigamme,nInd,maxicategorietarif,maxitarif est un entier = 0

//cree la liste d'article
pautListeArticle =  OM_Sage:autBaseCialEXPRESS>>factoryArticle>>list()

//compte le nombre d'article
maxi = pautListeArticle>>count()

//affiche tous les articles
POUR nInd = 1 A maxi
   //récupère un article
   Article = pautListeArticle>>item(nInd)
   
   SI Article>>AR_REF = "TOTO" ALORS
      
      Trace(Article>>AR_Ref+TAB+Article>>AR_Design+TAB+Article>>AR_PrixVen)
      
      //si c'est un article de type gamme on vérifie le contenu
      SI Article>>AR_Type = 1 ALORS
         
         //ListeAjoute(Combo1,Article>>AR_Ref)
         
         //contient le contenue de la gamme
         contenu_gamme = Article>>FactoryArticleGammeEnum1>>List()
         maxigamme = contenu_gamme>>count()

         //affiche les details de la gamme      
         POUR i=1 A maxigamme

            //premier objet de la gamme
            gamme = contenu_gamme>>item(i)
            Trace(gamme>>EG_Enumere)

         FIN
         
         //contient les categories tarifaires
         prixgamme = Article>>FactoryArticleTarifCategorie>>List()
         maxicategorietarif = contenu_gamme>>count() //
         
         //affiche les details des prix de la gamme      
         POUR b=1 A maxicategorietarif
            
            //premier objet de la gamme
            unprixgamme = prixgamme>>item(b)
            Trace(unprixgamme>>CategorieTarif>>CT_Intitule)

            TarifQteCategorie = unprixgamme>>FactoryArticleTarifQte>>List()
            maxitarif = TarifQteCategorie>>count()
            

         FIN         
         
      FIN
   FIN
   
   
FIN

je n'arrive donc pas à récupérer chaque tarif défini pour chaque gamme.

Exemple j'ai un pull marque TOTO dans la gamme il y a la taille s,m,l,xl et avec un prix de 10,12,14,15€.
j'arrive donc à récupérer les tailles mais pas les prix correspondant.

Merci.

Re: categorie tarifaire OM

MessagePosté: Mar 14 Juin 2016 21:13
de asr31
Bonjour,

Les joies de WinDev & SAGE ...

Bref, si le count est à zéro, bien que ce soit un article à Gamme 1, il est possible que ce soit dû au fait que cet article en gamme n'ait aucune occurrence de gamme.

Faire une requête avec jointure gauche sur F_ARTICLE de type Gamme 1 et F_ARTGAMME pour voir les deltas.

Cordialement,

Re: categorie tarifaire OM

MessagePosté: Mer 15 Juin 2016 14:50
de romulus001
demiange a écrit:j'arrive à récupérer les différents intitulés des catégories tarifaire mais je n'arrive pas à accéder aux contenue à chaque fois le count() est à 0.


Est-ce que votre code marche si vous migrez votre code en version .NET ?

Re: categorie tarifaire OM

MessagePosté: Lun 27 Juin 2016 11:34
de demiange
Bonjour,

merci pour vos réponses et désolé du retard pour ma réponse.

du coup j'arrive récupérer les libellés et les tarifs, mais de deux objet différent.
Donc les tarifs ne correspondent pas forcement aux bon libellé.

J'aimerais avoir en fait accès au fichier F_ARTGAMME et F_ARTPRIX.
Il y a une clé qui relis ces deux tables AG_NO pour F_ARTGAMME et AG_NO1 pour F_TARIFGAM.

C'est claire que Windev et OM c'est pas génial...
Voila mon code :

Code: Tout sélectionner


pautListeArticle, Article,contenu_gamme,gamme sont des objets Automation dynamique
prixgamme,unprixgamme sont des objets Automation dynamique
TarifgammeCategorie,untarifgamme sont des objets Automation dynamique
nInd,maxicategorietarif,maxitarif est un entier = 0
categorietarif est un objets Automation dynamique
articletarif est un objets Automation dynamique

//cree la liste d'article
pautListeArticle =  OM_Sage:autBaseCialEXPRESS>>factoryArticle>>list()

//affiche tous les articles
POUR nInd = 1 _A_  pautListeArticle>>count()
   //récupère un article
   Article = pautListeArticle>>item(nInd)
   
   SI Article>>AR_REF = "TOTO" ALORS
      
      Trace(Article>>AR_Ref+TAB+Article>>AR_Design+TAB+Article>>AR_PrixVen)
      Trace(Article>>Gamme1>>G_Intitule)
      
      //si c'est un article de type gamme on vérifie le contenu
      SI Article>>AR_Type = 1 ALORS
               
         //contient la liste des catégories tarifaires
         prixgamme = Article>>FactoryArticleTarifCategorie>>List()
         maxicategorietarif = prixgamme>>count() //<--il y en a 4
         
         //affiche les details des prix de la gamme (safege, ect...)
         POUR b=1 A maxicategorietarif
            
            //un objet des catégorie tarifaire (TOTO1, TOTO2, TOTO3, TOTO4....)
            TarifgammeCategorie = prixgamme>>item(b)
            
            //contient la liste des tarifs (gamme transport on affichera donc les KG)
            categorietarif = TarifgammeCategorie>>FactoryArticleTarifGamme()>>List()
            
            Trace(TarifgammeCategorie>>CategorieTarif>>CT_Intitule)      
            
            //contient la liste des contenues de la gamme
            contenu_gamme = Article>>FactoryArticleGammeEnum1>>List()
            
            //affiche les details de la gamme (kg)   
            POUR i=1 _A_ contenu_gamme>>count()
               
               //premier objet de la gamme
               gamme = contenu_gamme>>item(i)
               
               //contient les prix
               articletarif = categorietarif>>item(i)
               
               Trace("Gamme " + i + " : " + gamme>>EG_Enumere + " prix : "+ articletarif>>Prix())
               
            FIN      
            
         FIN         
         
         Trace("****************************************")
      FIN
      
   FIN
   
   
FIN





Si vous avez une idée je prends.

Merci.