Ajout d'une ligne a une commande existante
4 participants
- bthiam
- Nombre de messages : 15
Date d'inscription : 29/09/2010
Ajout d'une ligne a une commande existante
Dim 16 Jan 2011 - 18:21
Bonjour,
Je veux ajouter une ligne (produit) a une commande (order) existante avec l'objet Transaction du SDK. A chaque fois j'obtiens le fameux message d'erreur suivant meme si je suis sur que la valeur dans la propriete ILLineNumber est correcte.
Fonction : ModifyCard
Champ : ILLineNumber[5]
Erreur : Valeur invalide
Merci
Je veux ajouter une ligne (produit) a une commande (order) existante avec l'objet Transaction du SDK. A chaque fois j'obtiens le fameux message d'erreur suivant meme si je suis sur que la valeur dans la propriete ILLineNumber est correcte.
Fonction : ModifyCard
Champ : ILLineNumber[5]
Erreur : Valeur invalide
Merci
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: Ajout d'une ligne a une commande existante
Lun 17 Jan 2011 - 10:17
Bonjour,
Je sais pas si c'est la même chose avec le SDK, mais en ODBC faut mettre à jour la commande en lui disant que la commande à une ligne de plus.
Ensuite, faut vider toutes les lignes de la commande et les réinsérés une à une.
Je sais pas si c'est la même chose avec le SDK, mais en ODBC faut mettre à jour la commande en lui disant que la commande à une ligne de plus.
Ensuite, faut vider toutes les lignes de la commande et les réinsérés une à une.
- hench
- Nombre de messages : 163
Date d'inscription : 30/12/2008
Fiche d'Entreprise
Nom de l'entreprise:
Re: Ajout d'une ligne a une commande existante
Lun 17 Jan 2011 - 11:32
N'oubliez pas de retraiter les taxes et transport au besoin !!!
Lignes 990 et +.
Lignes 990 et +.
- bthiam
- Nombre de messages : 15
Date d'inscription : 29/09/2010
Re: Ajout d'une ligne a une commande existante
Lun 17 Jan 2011 - 14:19
Bonjour,
Voila la réponse que j’ai reçue du support technique d'acomba. Je l'ai essayé mais ca ne marche pas (même message erreur) d'autant plus que je ne voulais pas insérer une ligne de commande mais ajouter une nouvelle ligne de commande à la fin. J'ai comme l'impression que le message d'erreur ne reflète pas la vraie nature du problème avec le SDK. Cette erreur me rend fou…j`’ai tout essayé en vain….
------------------------------------------------------
Bonjour M. Thiam,
Voici la méthode à suivre pour insérer une ligne dans l’interface « Transaction. Cette méthode va éviter d’avoir l’erreur « Valeur invalide ».
Pour insérer une ligne dans une interface transaction (par exemple dans une facturation de type achat existante dans une société Acomba), il faut d'abord ajuster la propriété TANumLines, décaler toutes les lignes suivant la nouvelle (incluant les lignes de taxe et de transport) dans le buffer de lignes et ensuite insérer la nouvelle ligne. Par exemple, dans une facturation qui contient 5 lignes (2 lignes de saisie de produit, 2 lignes de taxe et 1 ligne de transport), si on veut insérer une ligne de saisie de produit en deuxième position on devra faire les opérations suivantes :
1. On réserve la fiche Transaction (le ReserveCard permet de faire une lecture complète de la fiche)
2. TransactionData.TANumLines := 6; --> on augmente de 1 la valeur de TANumLines;
3. Toutes les propriété de la ligne en position 6 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 5;
Toutes les propriété de la ligne en position 5 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 4;
Toutes les propriété de la ligne en position 4 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 3;
Toutes les propriété de la ligne en position 3 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 2;
On libère ainsi une place dans le buffer de lignes pour y insérer la nouvelle ligne de saisie de produit.
4. La propriété ILLineNumber devra être incrémentée de 1 pour les lignes de saisie de produit qui sont décalées. Cependant, ILLineNumber ne doit pas être modifiée pour les ligne de taxe et de transport.
5. On assigne les valeurs correspondant à la nouvelle ligne de saisie de produit en position 2 dans le buffer de lignes.
6. Les modifications apportées à la fiche Transaction sont enregistrées à l'aide de la méthode ModifyCard.
Si vous avez d’autres questions, n’hésitez pas à communiquer avec nous.
Salutations,
---------------------------------------------------------------------------------------------
Voila la réponse que j’ai reçue du support technique d'acomba. Je l'ai essayé mais ca ne marche pas (même message erreur) d'autant plus que je ne voulais pas insérer une ligne de commande mais ajouter une nouvelle ligne de commande à la fin. J'ai comme l'impression que le message d'erreur ne reflète pas la vraie nature du problème avec le SDK. Cette erreur me rend fou…j`’ai tout essayé en vain….
------------------------------------------------------
Bonjour M. Thiam,
Voici la méthode à suivre pour insérer une ligne dans l’interface « Transaction. Cette méthode va éviter d’avoir l’erreur « Valeur invalide ».
Pour insérer une ligne dans une interface transaction (par exemple dans une facturation de type achat existante dans une société Acomba), il faut d'abord ajuster la propriété TANumLines, décaler toutes les lignes suivant la nouvelle (incluant les lignes de taxe et de transport) dans le buffer de lignes et ensuite insérer la nouvelle ligne. Par exemple, dans une facturation qui contient 5 lignes (2 lignes de saisie de produit, 2 lignes de taxe et 1 ligne de transport), si on veut insérer une ligne de saisie de produit en deuxième position on devra faire les opérations suivantes :
1. On réserve la fiche Transaction (le ReserveCard permet de faire une lecture complète de la fiche)
2. TransactionData.TANumLines := 6; --> on augmente de 1 la valeur de TANumLines;
3. Toutes les propriété de la ligne en position 6 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 5;
Toutes les propriété de la ligne en position 5 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 4;
Toutes les propriété de la ligne en position 4 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 3;
Toutes les propriété de la ligne en position 3 dans le buffer de lignes prendront maintenant les valeurs de la ligne en position 2;
On libère ainsi une place dans le buffer de lignes pour y insérer la nouvelle ligne de saisie de produit.
4. La propriété ILLineNumber devra être incrémentée de 1 pour les lignes de saisie de produit qui sont décalées. Cependant, ILLineNumber ne doit pas être modifiée pour les ligne de taxe et de transport.
5. On assigne les valeurs correspondant à la nouvelle ligne de saisie de produit en position 2 dans le buffer de lignes.
6. Les modifications apportées à la fiche Transaction sont enregistrées à l'aide de la méthode ModifyCard.
Si vous avez d’autres questions, n’hésitez pas à communiquer avec nous.
Salutations,
---------------------------------------------------------------------------------------------
- bthiam
- Nombre de messages : 15
Date d'inscription : 29/09/2010
Re: Ajout d'une ligne a une commande existante
Mer 19 Jan 2011 - 10:54
Bonjour,
En fait la méthode préconisée par le support technique d’acomba marche. L’erreur était de mon coté. En fait, je n’avais pas compris qu’on ne pouvait pas ajouter une ligne de produit après les lignes de taxe et de transport. A ce propos, le fichier d’aide du SDK stipule bien que les numéros 991 à 998 sont réservés pour les lignes de taxe et de transport. Voici l'exemple qu’ils m’ont envoyé:
Une commande d’achat avec 2 produits et 2 lignes de taxe
No ligne ILLineNumber Type de ligne
1 1 Premier produit
2 2 Deuxième produit
3 991 Première ligne de taxe
4 992 Deuxième ligne de taxe.
Pour ajouter une ligne de produit, voici ce que vous devez faire.
1. Réserver le « CardPos »
2. Augmenter le « TANumLines » à 5.
3. Déplacer toutes les propriétés (Champ) de la ligne « ILLineNumber » 992 dans la ligne 5
4. Initialiser à vide tous les champs de la ligne 4
5. Déplacer toutes les propriétés (Champ) de la ligne « ILLineNumber » 991 dans la ligne 4
6. Initialiser à vide tous les champs de la ligne 3
7. Insérer la nouvelle ligne de produit dans ligne 3
8. Appeler la méthode « ModifyOrder ».
En fait la méthode préconisée par le support technique d’acomba marche. L’erreur était de mon coté. En fait, je n’avais pas compris qu’on ne pouvait pas ajouter une ligne de produit après les lignes de taxe et de transport. A ce propos, le fichier d’aide du SDK stipule bien que les numéros 991 à 998 sont réservés pour les lignes de taxe et de transport. Voici l'exemple qu’ils m’ont envoyé:
Une commande d’achat avec 2 produits et 2 lignes de taxe
No ligne ILLineNumber Type de ligne
1 1 Premier produit
2 2 Deuxième produit
3 991 Première ligne de taxe
4 992 Deuxième ligne de taxe.
Pour ajouter une ligne de produit, voici ce que vous devez faire.
1. Réserver le « CardPos »
2. Augmenter le « TANumLines » à 5.
3. Déplacer toutes les propriétés (Champ) de la ligne « ILLineNumber » 992 dans la ligne 5
4. Initialiser à vide tous les champs de la ligne 4
5. Déplacer toutes les propriétés (Champ) de la ligne « ILLineNumber » 991 dans la ligne 4
6. Initialiser à vide tous les champs de la ligne 3
7. Insérer la nouvelle ligne de produit dans ligne 3
8. Appeler la méthode « ModifyOrder ».
- hench
- Nombre de messages : 163
Date d'inscription : 30/12/2008
Fiche d'Entreprise
Nom de l'entreprise:
Re: Ajout d'une ligne a une commande existante
Mer 26 Jan 2011 - 2:39
Merci pour l'heure juste, cela s'avèrera une excellente référence future.
hench
hench
- MadeByHisto
- Nombre de messages : 4
Date d'inscription : 08/02/2011
Est-ce juste moi ?
Mar 8 Fév 2011 - 13:28
Je sais pas si c'est juste moi, mais on dirait que Acomba a oublié la notion de Insert ? Y a-t-il une raison particulière que je n'aurais pas saisie ?
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: Ajout d'une ligne a une commande existante
Mar 8 Fév 2011 - 14:43
Salut,
En faites, c'est juste pour les détails de commande qu'il faut faire un Update pour faire un Insert.
En faites, c'est juste pour les détails de commande qu'il faut faire un Update pour faire un Insert.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum