Acomba (Forum)
Pourquoi ne pas devenir membre du forum ?

Identifiez-vous ou Inscrivez-vous afin d'accéder à l'inrégralité du forum:
Accès à toutes les catégories du forum,
Entraide entre les 6 500 membres, et ce nombre s'accroît quotidiennement!

Notez que ce forum est indépendant de la société Acceo Solutions, éditrice du logiciel Acomba.
Connexion

Récupérer mon mot de passe


Erreur de TooLKit Function lors de création de facture

Voir le sujet précédent Voir le sujet suivant Aller en bas

Erreur de TooLKit Function lors de création de facture

Message  bonneaupierrelouis le Ven 6 Sep 2013 - 13:22

Bonjour à tous, je me demandais si quelqu'un d'entre-vous a déjà eu ce type d'erreur. Je travail avec l'exemple fournis dans l'aide du AcoSDK, avec la création de facture simple.

Voici l'erreur obtenu:

Erreur7 : Erreur de ToolKit Fonction = ModifyCard Champ = InInvoiceType Erreur = Valeur invalide
Des idées ? Voir ici que l'Erreur7 se produit lorsque l'ajout de la facture échoue (étape8)

Voici donc le code que j'utilise actuellement:
Code:

'Section déclaration
Private TransactionInt
Set TransactionInt = Server.CreateObject("AcoSDK.Transaction")
Private Error

Dim Acomba
Set Acomba = Server.CreateObject("AcoSDK.AcombaX")

Sub AddNewInvoicing()
   'Déclaration des interfaces
   Dim ControlCustomerInt
   Set ControlCustomerInt = Server.CreateObject("AcoSDK.ControlCustomer")
   Dim ProductInt
   Set ProductInt = Server.CreateObject("AcoSDK.Product")
   Dim TaxInt
   Set TaxInt = Server.CreateObject("AcoSDK.Tax")
   'Déclaration des variables
   Dim CustomerNumber
   Dim ProduitTrouve
   Dim TaxeFederale
   'Met toutes les propriétés de fiche de l'interface à vide
   TransactionInt.BlankCard
   'Chargement de la fiche de contrôle des comptes clients
   Error = ControlCustomerInt.GetCard(1)
   If Error = 0 Then
   '**********************************************************
   'Étape 1 : Initialiser les propriétés de l'en-tête de la
   '          facturation
   '**********************************************************
   'La facturation est de type facture
   TransactionInt.InInvoiceType = ITp_Invoice
   TransactionInt.InReference = "PO-3087"
   TransactionInt.InDescription = "Description de la facture"
   TransactionInt.InCurrentDay = 1
   TransactionInt.InTransactionActive = 1
   'Numéro du client associé à la facture
   CustomerNumber = "2335522"
   TransactionInt.InCustomerSupplierCP = GetCustomerCardPos(CustomerNumber)
   'Si le client existe
   If TransactionInt.InCustomerSupplierCP > 0 Then
   'Initialisation des propriétés concernant le client
   'associé à la facture
   GetCustomerInfo (TransactionInt.InCustomerSupplierCP)
   '**********************************************************
   'Étape 2 : Assigner le nombre total de lignes incluses
   '          dans la facturation à la propriété TANumLines
   '**********************************************************
   TransactionInt.TANumLines = 5
   '**********************************************************
   
   'Étape 3 : Initialiser les propriétés de la première
   '          ligne de la facturation
   '**********************************************************
   'La première ligne de la facturation est une ligne de
   'saisie de produits
   TransactionInt.ILType(1) = IL_Invoice
   TransactionInt.ILLineNumber(1) = 1
   TransactionInt.ILProductNumber(1) = "ACC-SOCLE"
   TransactionInt.ILProductCP(1) = GetProductCardPos(TransactionInt.ILProductNumber(1))
   'Initialisation de ProduitTrouve
   ProduitTrouve = False
   If TransactionInt.ILProductCP(1) > 0 Then
   'Met toutes les propriétés de l'interface à vide
   ProductInt.BlankCard
   'Si le produit existe dans l'inventaire, consultation
   'de sa fiche pour obtenir les valeurs à assigner aux
   'propriétés le concernant dans la facturation
   Error = ProductInt.GetCard(TransactionInt.ILProductCP(1))
   If Error = 0 Then
   TransactionInt.ILDescription(1) = ProductInt.PrDescription(1)
   TransactionInt.ILSellingPrice(1) = ProductInt.PrSellingPrice(0, 1)
   TransactionInt.ILProductGroupCP(1) = ProductInt.PrProductGroupCP
   TransactionInt.ILInvoicedQty(1) = 2
   'Indique que le produit a bien été consulté
   ProduitTrouve = True
   End If
   End If
   'Si le produit n'existe pas dans l'inventaire, les valeurs
   'à assigner aux propriétés le concernant dans la facturation
   'doivent provenir d'une autre source que l'inventaire
   'd'Acomba
   If Not ProduitTrouve Then
   TransactionInt.ILDescription(1) = "Cartouche d'imprimante"
   TransactionInt.ILSellingPrice(1) = 44.21
   TransactionInt.ILProductGroupCP(1) = GetProductGroupCardPos(1)
   TransactionInt.ILInvoicedQty(1) = 2
   End If
   '**********************************************************
   'Étape 4 : Initialiser les propriétés de la deuxième
   '          ligne de la facturation
   '**********************************************************
   'La deuxième ligne de la facturation est une ligne de
   'saisie de produits
   TransactionInt.ILType(2) = IL_Invoice
   TransactionInt.ILLineNumber(2) = 2
   Error = TransactionInt.ILType(2)
   Error = TransactionInt.ILLineNumber(2)
   TransactionInt.ILProductNumber(2) = "B-DOUCHE"
   TransactionInt.ILProductCP(2) = GetProductCardPos(TransactionInt.ILProductNumber(2))
   'Initialisation de ProduitTrouve
   ProduitTrouve = False
   If TransactionInt.ILProductCP(2) > 0 Then
   'Met toutes les propriétés de l'interface à vide
   ProductInt.BlankCard
   'Si le produit existe dans l'inventaire, consultation
   'de sa fiche pour obtenir les valeurs à assigner aux
   'propriétés le concernant dans la facturation
   Error = ProductInt.GetCard(TransactionInt.ILProductCP(2))
   If Error = 0 Then
   TransactionInt.ILDescription(2) = ProductInt.PrDescription(1)
   TransactionInt.ILSellingPrice(2) = ProductInt.PrSellingPrice(0, 1)
   TransactionInt.ILProductGroupCP(2) = ProductInt.PrProductGroupCP
   TransactionInt.ILInvoicedQty(2) = 1
   'Indique que le produit a bien été consulté
   ProduitTrouve = True
   End If
   End If
   'Si le produit n'existe pas dans l'inventaire, les valeurs
   'à assigner aux propriétés le concernant dans la facturation
   'doivent provenir d'une autre source que l'inventaire
   'd'Acomba
   If Not ProduitTrouve Then
   TransactionInt.ILDescription(2) = "Souris optique"
   TransactionInt.ILSellingPrice(2) = 44.21
   TransactionInt.ILProductGroupCP(2) = GetProductGroupCardPos(1)
   TransactionInt.ILInvoicedQty(2) = 1
   End If
   '**********************************************************
   'Étape 5 : Initialiser les propriétés de la troisième
   '          ligne de la facturation
   '**********************************************************
   'La troisième ligne de la facturation est une ligne de taxe
   TransactionInt.ILType(3) = IL_Tax
   'Les numéros 991 à 998 sont réservés pour les lignes de
   'taxe et de transport
   TransactionInt.ILLineNumber(3) = 991
   'Numéro de la taxe à appliquer
   TransactionInt.ILProductNumber(3) = "T.P.S. 100%"
   'Met toutes les propriétés de clé à vide
   TaxInt.BlankKey
   'Recherche et consultation de la taxe
   TaxInt.PKey_TaNumber = "T.P.S. 100%"
   Error = TaxInt.FindKey(1, True)
   If Error = 0 Then
   TransactionInt.ILProductCP(3) = TaxInt.Key_TaCardPos
   'CardPos du compte dans le plan comptable pour
   'les taxes perçues
   TransactionInt.ILCharterCP(3) = TaxInt.TaCollectedTaxesCharterCP
   'Calcul du montant à facturer pour la T.P.S.
   TaxeFederale = GetCalculTaxFed
   TransactionInt.ILTotalAmount(3) = TaxeFederale
   Else
   response.write("Erreur5 : " & Acomba.GetErrorMessage(Error))
   End If
   '**********************************************************
   'Étape 6 : Initialiser les propriétés de la quatrième
   '          ligne de la facturation
   '**********************************************************
   'La quatrième ligne de facturation est une ligne de taxe
   TransactionInt.ILType(4) = IL_Tax
   'Les numéros 991 à 998 sont réservés pour les lignes de
   'taxe et de transport
   TransactionInt.ILLineNumber(4) = 992
   'Numéro de la taxe à appliquer
   TransactionInt.ILProductNumber(4) = "T.V.Q. 100%"
   'Met toutes les propriétés de clé à vide
   TaxInt.BlankKey
   'Recherche et consultation de la taxe
   TaxInt.PKey_TaNumber = "T.V.Q. 100%"
   Error = TaxInt.FindKey(1, True)
   If Error = 0 Then
   TransactionInt.ILProductCP(4) = TaxInt.Key_TaCardPos
   'CardPos du compte du plan comptable pour
   'les taxes perçues
   TransactionInt.ILCharterCP(4) = TaxInt.TaCollectedTaxesCharterCP
   'Calcul du montant à facturer pour la T.V.P.
   TransactionInt.ILTotalAmount(4) = GetCalculTaxProv(TaxeFederale)
   Else
   response.write("Erreur6 : " & Acomba.GetErrorMessage(Error))
   End If
   '**********************************************************
   'Étape 7 : Initialiser les propriétés de la cinquième
   '          ligne de la facturation
   '**********************************************************
   'La cinquième ligne de la facturation est une ligne
   'de transport
   TransactionInt.ILType(5) = IL_Shipping
   'Les numéros 991 à 998 sont réservés pour les lignes de
   'taxe et de transport
   TransactionInt.ILLineNumber(5) = 993
   'CardPos du compte dans le plan comptable pour les frais de
   'transport selon la définition du compte recevable
   TransactionInt.ILCharterCP(5) = ControlCustomerInt.CCARCharterCP(TransactionInt.InReceivableOffset, 13)
   TransactionInt.ILTotalAmount(5) = 10.99
   '**********************************************************
   'Étape 8 : Ajout de la facture
   '**********************************************************
   'Ajout de la fiche TransactionInt
   Error = TransactionInt.AddCard
   If Error = 0 Then
   response.write("Ajout de la facture complété avec succès.")
   Else
   response.write("Erreur7 : " & Acomba.GetErrorMessage(Error))
   End If
   Else
   response.write("Erreur8 : Ce client n'existe pas la société.")
   End If
   Else
   response.write("Erreur9 : " & Acomba.GetErrorMessage(Error))
   End If
End Sub

'*****************************************************************
'La fonction GetCustomerCardPos suivante permet d'obtenir le
'CardPos de la fiche du client dont le numéro est reçu en
'paramètre.
'*****************************************************************

Function GetCustomerCardPos(Numero)
   'Déclaration
   Dim CustomerInt
   Set CustomerInt = Server.CreateObject("AcoSDK.Customer")
   'Initialiser la propriété PKey_CuNumber
   CustomerInt.PKey_CuNumber = Numero
   'Recherche du client dans l'index 1 pour obtenir son CardPos
   Error = CustomerInt.FindKey(1, False)
   If Error = 0 Then
   GetCustomerCardPos = CustomerInt.Key_CuCardPos
   Else
   GetCustomerCardPos = 0
   End If
End Function


'*****************************************************************
'La procédure GetCustomerInfo suivante permet d'initialiser les
'propriétés de l'en-tête de la facturation qui concerne le client
'associé à la facturation et dont le CardPos est reçu en
'paramètre.
'*****************************************************************

Sub GetCustomerInfo(CardPos)
   'Déclaration
   Dim CustomerInt
   Set CustomerInt = Server.CreateObject("AcoSDK.Customer")
   'Consultation de la fiche du client
   Error = CustomerInt.GetCard(CardPos)
   If Error = 0 Then
   'CardPos du client à facturer
   TransactionInt.InInvoicedToCP = CustomerInt.CuInvoicedToCP
   'Numéro du compte recevable du client auquel la facturation
   'est associé
   TransactionInt.InReceivableOffset = CustomerInt.CuReceivable
   'Groupe de taxes du client
   TransactionInt.InTaxGroupCP = CustomerInt.CuTaxGroupCP
   Else
   response.write("Erreur10 : " & Acomba.GetErrorMessage(Error))
   End If
End Sub


'*****************************************************************
'La fonction GetProductCardPos suivante permet d'obtenir le
'CardPos de la fiche du produit dont le numéro est reçu en
'paramètre.
'*****************************************************************

Function GetProductCardPos(Numero)
   'Déclaration
   Dim ProductInt
   Set ProductInt = Server.CreateObject("AcoSDK.Product")
   'Initialisation de la propriété PKey_PrNumber
   ProductInt.PKey_PrNumber = Numero
   'Recherche du produit dans l'index 1 pour obtenir son CardPos
   Error = ProductInt.FindKey(1, False)
   If Error = 0 Then
   GetProductCardPos = ProductInt.Key_PrCardPos
   Else
   GetProductCardPos = 0
   End If
End Function


'*****************************************************************
'La fonction GetProductGroupCardPos suivante permet d'obtenir le
'CardPos de la fiche du groupe de produit dont le numéro est reçu
'paramètre.
'*****************************************************************

Function GetProductGroupCardPos(Numero)
   'Déclaration
   Dim ProductGroupInt
   Set ProductGroupInt = Server.CreateObject("AcoSDK.ProductGroup")
   'Initialisation de la propriété PGNumber
   ProductGroupInt.PKey_PGNumber = Numero
   'Recherche du groupe de produit dans l'index 1 pour
   'obtenir son CardPos
   Error = ProductGroupInt.FindKey(1, False)
   If Error = 0 Then
   GetProductGroupCardPos = ProductGroupInt.Key_PGCardPos
   Else
   GetProductGroupCardPos = 0
   End If
End Function


'*****************************************************************
'La fonction GetInvoiceTaxable suivante permet d'obtenir le
'montant taxable total de la facture.
'*****************************************************************

Function GetInvoiceTaxable()
   Dim Total
   Dim i
   Dim TransactionData
   Set TransactionData = Server.CreateObject("AcoSDK.Transaction")
   GetInvoiceTaxable = 0
   'Pour toutes les lignes de la facture
   For i = 1 To TransactionData.TANumLines
   'Si c'est une ligne de saisie de produits
   If TransactionData.ILLineNumber(i) < 991 Then
   'Augmenter le montant total taxable
   Total = Total + (TransactionData.ILSellingPrice(i) * TransactionData.ILInvoicedQty(i))
   End If
   Next
   GetInvoiceTaxable = Total
End Function


'*****************************************************************
'La fonction GetCalculTaxFed suivante permet d'obtenir le montant
'total de taxe fédérale à appliquer. Pour effectuer le calcul, le
'pourcentage de la TPS en vigueur le 1er juin 2002 est appliqué
'au sous-total de la facturation. Cette fonction ne tient pas
'compte des exceptions de taxe associées aux produits facturés,
'des exemptions de taxe du client auquel la facturation est

'associée et ne calcule pas le montant de taxe associé à chaque
'ligne de facturation.
'*****************************************************************

Function GetCalculTaxFed()
   Dim Taxable
   'Obtenir le montant taxable de la facture
   Taxable = GetInvoiceTaxable
   GetCalculTaxFed = Taxable * 0.07
End Function


'*****************************************************************
'La fonction GetCalculTaxProv suivante permet d'obtenir le montant
'total de taxe provinciale à appliquer. Pour effectuer le calcul,
'le poucentage de la TVQ en vigueur le 1er juin 2002 est appliqué
'au sous-total de la facturation incluant la TPS. Cette
'fonction ne tient pas compte des exceptions de taxe associées
'aux produits facturés, des exemptions de taxe du client auquel

'la facturation est associée et ne calcule pas le montant de taxe
'associé à chaque ligne de facturation.
'*****************************************************************

Function GetCalculTaxProv(TaxeFed)
   Dim Taxable
   'Obtenir le montant taxable de la facture
   Taxable = GetInvoiceTaxable
   GetCalculTaxProv = (Taxable + TaxeFed) * 0.075
End Function


bonneaupierrelouis

Nombre de messages : 27
Age : 27
Ville : Trois-Rivières
Date d'inscription : 20/08/2013

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Erreur de TooLKit Function lors de création de facture

Message  bonneaupierrelouis le Ven 6 Sep 2013 - 14:53

J'ai rajouté ceci:
Code:
Const ITp_Invoice = 1
Maintenant mon erreur est ceci:
Erreur7 : Erreur de ToolKit Fonction = ModifyCard Champ = ILType[1] Erreur = Valeur invalide
Vous avez des pistes de solution?

bonneaupierrelouis

Nombre de messages : 27
Age : 27
Ville : Trois-Rivières
Date d'inscription : 20/08/2013

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Erreur de TooLKit Function lors de création de facture

Message  bonneaupierrelouis le Ven 6 Sep 2013 - 16:10

Code:
response.write("<p>testing variables : " & TransactionInt.AddCard & "</p>")
Me donne
1997
J'ai lu quelque part sur le forum que sa serait..
Donc ILType doit prendre une valeur de 1 à 9. Cette valeur est 1997 et est donc invalide.
Pourtant mon ILType = IL_Invoice --> qui se trouve à être définis comme une CONST 1 ...

Je continue mes tests et recherche.

source : http://acomba.frbb.net/t709-creer-une-commande-dans-acomba-par-access

bonneaupierrelouis

Nombre de messages : 27
Age : 27
Ville : Trois-Rivières
Date d'inscription : 20/08/2013

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Erreur de TooLKit Function lors de création de facture

Message  bonneaupierrelouis le Lun 9 Sep 2013 - 15:03

J'ai changé le type pour le 8 aux 2 taxes, ainsi que 9 pour le transport, et la facture s'est bien ajouté.

Merci.

pour info:
Code:

TransactionInt.ILType(3) = 8
TransactionInt.ILType(4) = 8
TransactionInt.ILType(5) = 9
cheers

bonneaupierrelouis

Nombre de messages : 27
Age : 27
Ville : Trois-Rivières
Date d'inscription : 20/08/2013

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Erreur de TooLKit Function lors de création de facture

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum