Changer le Prix Unitaire d'un IBODocumentVenteLigne3
Modérateurs: Super-Apogea, Super Modérateur
10 messages
|Page 1 sur 1
Changer le Prix Unitaire d'un IBODocumentVenteLigne3
Bonjour,
je fais un document de retour à partir d'une facture, cela fonctionne bien.
Par contre, dans le bon de retour, je n'arrive pas à modifier le prix unitaire. Pas de pb pour la quantité, mais impossible pour le PU. Il me prend le prix de vente de l'article (9.99€), mais moi je veux changer ce prix, car dans ma facture j'ai un prix de vente différent (15.99€), pourquoi il ne change pas ?
Merci de votre aide
je fais un document de retour à partir d'une facture, cela fonctionne bien.
Par contre, dans le bon de retour, je n'arrive pas à modifier le prix unitaire. Pas de pb pour la quantité, mais impossible pour le PU. Il me prend le prix de vente de l'article (9.99€), mais moi je veux changer ce prix, car dans ma facture j'ai un prix de vente différent (15.99€), pourquoi il ne change pas ?
Merci de votre aide
- Code: Tout sélectionner
Dim mLig As IBODocumentVenteLigne3 = CType(mProcessDoc.AddArticleDoubleGamme(enum1, enum2, 1), IBODocumentVenteLigne3)
For Each mLig In mDoc.FactoryDocumentLigne.List
mLig.SetDefaultRemise()
mLig.DL_Design = pLig.DL_Design
MsgBox("Before write" & montant_TTC) ' OK : AFFICHE 15.99€
mLig.DL_PrixUnitaire = montant_TTC
mLig.DL_Qte = 2
mLig.Write()
MsgBox("After write" & mLig.DL_PrixUnitaire) ' KO : AFFICHE 9.99€ !!!!
Next
- Posteur actif
- Messages: 42
- Inscription: Jeu 17 Déc 2015 18:04
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
Bonjour,
Faire appel à la méthode write sans faire appel à setdefault est chose dangereuse car les champs non renseignés vont avoir la valeur null, de plus, il n'y a aucun recalcul qui est fait.
Soit vous remplacez write par writedefault, soit vous gardez l'appel de la méthode write mais vous ajoutez juste avant setdefault.
Faire appel à la méthode write sans faire appel à setdefault est chose dangereuse car les champs non renseignés vont avoir la valeur null, de plus, il n'y a aucun recalcul qui est fait.
Soit vous remplacez write par writedefault, soit vous gardez l'appel de la méthode write mais vous ajoutez juste avant setdefault.
- Super Contributeur
- Messages: 176
- Inscription: Sam 28 Juin 2014 20:48
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
romulus001 a écrit:Bonjour,
Faire appel à la méthode write sans faire appel à setdefault est chose dangereuse car les champs non renseignés vont avoir la valeur null, de plus, il n'y a aucun recalcul qui est fait.
Soit vous remplacez write par writedefault, soit vous gardez l'appel de la méthode write mais vous ajoutez juste avant setdefault.
merci pour le conseil, c'est corrigé, mais cela ne résout pas le problème initial
- Posteur actif
- Messages: 42
- Inscription: Jeu 17 Déc 2015 18:04
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
En mettant la propriété TTC de l'objet de IBODocumentVenteLigne3 à True juste avant de faire appel à setDefault, ça donne quoi?
- Super Contributeur
- Messages: 176
- Inscription: Sam 28 Juin 2014 20:48
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
romulus001 a écrit:En mettant la propriété TTC de l'objet de IBODocumentVenteLigne3 à True juste avant de faire appel à setDefault, ça donne quoi?
C'est pareil
- Posteur actif
- Messages: 42
- Inscription: Jeu 17 Déc 2015 18:04
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
Avez-vous regarder si votre ligne n'a pas une remise d'activé automatiquement car vous utiliser
la commande mLig.SetDefaultRemise()
la commande mLig.SetDefaultRemise()
- Super Contributeur
- Messages: 113
- Inscription: Lun 20 Nov 2006 14:16
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
ricil78 a écrit:Avez-vous regarder si votre ligne n'a pas une remise d'activé automatiquement car vous utiliser
la commande mLig.SetDefaultRemise()
Pas de remise
- Posteur actif
- Messages: 42
- Inscription: Jeu 17 Déc 2015 18:04
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
ma méthode dans ce cas là
c'est de faire une saisie manuelle dans le doc et voir le résultat, pour voir si déjà au niveau appli sage ça donne le même résultat.
Après il y a aussi, une requête SQL avant et après et de comparer champ après champ pour voir les différences
c'est de faire une saisie manuelle dans le doc et voir le résultat, pour voir si déjà au niveau appli sage ça donne le même résultat.
Après il y a aussi, une requête SQL avant et après et de comparer champ après champ pour voir les différences
- Super Contributeur
- Messages: 113
- Inscription: Lun 20 Nov 2006 14:16
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
je regarde ce que j'avais fais de mon côté, si vous remplacez
par
ça donne quoi?
Par contre, je crois que vous faites une erreur quand vous faites :
Le champ DL_PrixUnitaire représente le prix unitaire du produit mais en HT, et non en TTC, peut être que vous avez mal nommé votre variable montant_TTC...
Sinon, il faudrait voir ce que ça donne dans l'ERP gestion commerciale, voir si le même soucis se reproduit ou pas.
EDIT : votre article est-il un produit à gamme?
- Code: Tout sélectionner
Dim mLig As IBODocumentVenteLigne3 = CType(mProcessDoc.AddArticleDoubleGamme(enum1, enum2, 1), IBODocumentVenteLigne3)
For Each mLig In mDoc.FactoryDocumentLigne.List
par
- Code: Tout sélectionner
For Each mLig as IBODocumentVenteLigne3 In mDoc.FactoryDocumentLigne.List
ça donne quoi?
Par contre, je crois que vous faites une erreur quand vous faites :
- Code: Tout sélectionner
mLig.DL_PrixUnitaire = montant_TTC
Le champ DL_PrixUnitaire représente le prix unitaire du produit mais en HT, et non en TTC, peut être que vous avez mal nommé votre variable montant_TTC...
Sinon, il faudrait voir ce que ça donne dans l'ERP gestion commerciale, voir si le même soucis se reproduit ou pas.
EDIT : votre article est-il un produit à gamme?
- Super Contributeur
- Messages: 176
- Inscription: Sam 28 Juin 2014 20:48
Re: Changer le Prix Unitaire d'un IBODocumentVenteLigne3
J'ai déjà eu ce problème avant et j'ai contourné le problème comme suit:
1- je récupère le prix unitaire de l'article
2- j’écris sur mon prix sur l'article
3- ajouter la ligne avec le prix introduit
4- écrire de nouveau l’Ancien prix sur l'article
Je sais c'est pas très catholique mais c'est la seule solution que j'ai trouvé pour contourné le problème
voici le code
1- je récupère le prix unitaire de l'article
2- j’écris sur mon prix sur l'article
3- ajouter la ligne avec le prix introduit
4- écrire de nouveau l’Ancien prix sur l'article
Je sais c'est pas très catholique mais c'est la seule solution que j'ai trouvé pour contourné le problème
voici le code
- Code: Tout sélectionner
Dim Test as Boolean = false
Dim Ptemp As Double = om_com.FactoryArticle.ReadReference(Article).AR_PrixVen
Dim ttcTemp as boolean = om_com.FactoryArticle.ReadReference(Article).AR_PrixTTC
If (Ptemp <> Pvente) Then
Test = True
Dim art As IBOArticle3 = om_com.FactoryArticle.ReadReference(Art)
art.AR_PrixVen = Pvente
art.AR_PrixTTC = True
art.Write()
End If
vligne = OM_DocVenteEntete.FactoryDocumentLigne.Create()
vligne.SetDefaultArticle(om_com.FactoryArticle.ReadReference(article), Qte)
vligne.Write()
If (Test) Then
Dim art As IBOArticle3 = om_com.FactoryArticle.ReadReference(Article)
art.AR_PrixVen = Ptemp
art.AR_PrixTTC = ttcTemp
art.Write()
End If
- Posteur néophyte
- Messages: 10
- Inscription: Lun 24 Juil 2017 14:50
10 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités