- bonneaupierrelouis
- Nombre de messages : 27
Age : 34
Ville : Trois-Rivières
Date d'inscription : 20/08/2013
Fiche d'Entreprise
Nom de l'entreprise:
Erreur de TooLKit Function lors de création de facture
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:
Voici donc le code que j'utilise actuellement:
Voici l'erreur obtenu:
Des idées ? Voir ici que l'Erreur7 se produit lorsque l'ajout de la facture échoue (étape8)
Erreur7 : Erreur de ToolKit Fonction = ModifyCard Champ = InInvoiceType Erreur = Valeur invalide
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 : 34
Ville : Trois-Rivières
Date d'inscription : 20/08/2013
Fiche d'Entreprise
Nom de l'entreprise:
Re: Erreur de TooLKit Function lors de création de facture
Ven 6 Sep 2013 - 14:53
J'ai rajouté ceci:
- Code:
Const ITp_Invoice = 1
Vous avez des pistes de solution?Erreur7 : Erreur de ToolKit Fonction = ModifyCard Champ = ILType[1] Erreur = Valeur invalide
- bonneaupierrelouis
- Nombre de messages : 27
Age : 34
Ville : Trois-Rivières
Date d'inscription : 20/08/2013
Fiche d'Entreprise
Nom de l'entreprise:
Re: Erreur de TooLKit Function lors de création de facture
Ven 6 Sep 2013 - 16:10
- Code:
response.write("<p>testing variables : " & TransactionInt.AddCard & "</p>")
J'ai lu quelque part sur le forum que sa serait..1997
Pourtant mon ILType = IL_Invoice --> qui se trouve à être définis comme une CONST 1 ...Donc ILType doit prendre une valeur de 1 à 9. Cette valeur est 1997 et est donc invalide.
Je continue mes tests et recherche.
source : https://aideacomba.forum-canada.com/t709-creer-une-commande-dans-acomba-par-access
- bonneaupierrelouis
- Nombre de messages : 27
Age : 34
Ville : Trois-Rivières
Date d'inscription : 20/08/2013
Fiche d'Entreprise
Nom de l'entreprise:
Re: Erreur de TooLKit Function lors de création de facture
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:
Merci.
pour info:
- Code:
TransactionInt.ILType(3) = 8
TransactionInt.ILType(4) = 8
TransactionInt.ILType(5) = 9
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum