- Servlinks
- Nombre de messages : 5
Date d'inscription : 06/11/2008
creer un achat
Jeu 6 Nov 2008 - 9:32
Bonjour a tous, je suis nouveau sur ce forum.
Je développe présentement un outil pour interagir avec Acomba.
Je me demandais quelle est façon la plus facile d'ajouter un achat avec ODBC ?
J'ai la documentation sur SDK mais il doit surement avoir une façon plus facile (en plus sdk est en VB )
je trouve que 4 page de code pour créer un achat est un peu poussé......
Aussi si quelqu'un connait un bonne documentation, ce serait très apprécié.
Je développe présentement un outil pour interagir avec Acomba.
Je me demandais quelle est façon la plus facile d'ajouter un achat avec ODBC ?
J'ai la documentation sur SDK mais il doit surement avoir une façon plus facile (en plus sdk est en VB )
je trouve que 4 page de code pour créer un achat est un peu poussé......
Aussi si quelqu'un connait un bonne documentation, ce serait très apprécié.
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Achat par ODBC
Jeu 6 Nov 2008 - 12:12
Bonjour,
Voici un extrait de C:\Fortune\SnapIn\ODBC\0C_ODBC.hlp
C'est malgré tout assez long comme exemple, mais tu dois toujours passer par ces étapes au minimum:
- Créer l'entête avec certaines données requises comme le groupe de taxe et le compte recevable.
- Créer chaque ligne
- Calculer les taxes.
Toutes les informations de type "entetes+lignes" (factures, commandes, achats) sont assez complexes à ajouter. C'est ce qu'Acomba appelle des tables composés. (TransactionHeader et TransactionDetail).
Ajout d'un achat avec ODBC:
Voici un extrait de C:\Fortune\SnapIn\ODBC\0C_ODBC.hlp
C'est malgré tout assez long comme exemple, mais tu dois toujours passer par ces étapes au minimum:
- Créer l'entête avec certaines données requises comme le groupe de taxe et le compte recevable.
- Créer chaque ligne
- Calculer les taxes.
Toutes les informations de type "entetes+lignes" (factures, commandes, achats) sont assez complexes à ajouter. C'est ce qu'Acomba appelle des tables composés. (TransactionHeader et TransactionDetail).
Ajout d'un achat avec ODBC:
- Code:
'Déclaration des variables
Dim cnn As New ADODB.Connection
Dim rstTransHeader As New ADODB.Recordset
Dim rstCurrentTaxes As New ADODB.Recordset
Dim rstLastTransHeader As New ADODB.Recordset
Dim rstLastTransDetail As New ADODB.Recordset
Dim rstSupplierData As New ADODB.Recordset
cnn.ConnectionString = "DSN=DEMO;DBQ=c:\f1000.dta\demo_old;UID=supervisor;PWD="
cnn.CursorLocation = adUseClient
cnn.Open
On Error GoTo Command25_Err
'**********************************************************
'Étape 1 : Initialiser les propriétés de l'en-tête de la
' facturation pour l'achat
'**********************************************************
cnn.Execute ("BEGIN_TRANSACTION_IN")
rstTransactionHeader.Open "SELECT * FROM TransactionHeader", cnn, adOpenKeyset, adLockOptimistic
rstTransactionHeader.AddNew
'La facturation est de type Achat
'rstTransactionHeader!InInvoiceNumber = Null
rstTransactionHeader!InInvoiceType = 5 'type Achat
rstTransactionHeader!InReference = "Achat"
rstTransactionHeader!InDescription = "Création d'un achat"
rstTransactionHeader!InCurrentDay = 1
rstTransactionHeader!InTransactionActive = 1
rstTransactionHeader!InTaxGroupCP = 6
'Numéro du Supplier associé à l'achat
SupplierNumber = "1232222"
'On veut aller chercher les informations du Supplier
rstSupplierData.Open "SELECT * FROM Supplier where SuNumber = '" & SupplierNumber & "'", cnn, adOpenKeyset, adLockOptimistic
If Not rstSupplierData.EOF Then
rstTransactionHeader!InCustomerSupplierCP = rstSupplierData!RecCardPos
Else
rstTransactionHeader!InCustomerSupplierCP = 0
End If
'Si le Supplier existe
If rstTransactionHeader!InCustomerSupplierCP > 0 Then
'Numéro du compte recevable du Supplier auquel la facturation
'est associé
rstTransactionHeader!InReceivableOffset = rstSupplierData!SuReceivable
End If
'**********************************************************
'Étape 2 : Assigner le nombre total de lignes incluses
' dans la facturation à la propriété TANumLines
'**********************************************************
rstTransactionHeader!TANumLines = 2
rstTransactionHeader.Update
'**********************************************************
'Étape 3 : Initialiser les propriétés de la première
' ligne de la facturation
'**********************************************************
rstTransactionDetail.Open "SELECT * FROM TransactionDetail where TaNum = 1", cnn, adOpenKeyset, adLockOptimistic
rstTransactionDetail!ILType = 5
rstTransactionDetail!ILLineNumber = 1
rstTransactionDetail!ILProductNumber = "CARJETENC"
rstProductData.Open "SELECT * FROM Product where PrNumber = 'CARJETENC'", cnn, adOpenKeyset, adLockOptimistic
If Not rstProductData.EOF Then
'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
rstTransactionDetail!ILProductCP = rstProductData!RecCardPos
rstTransactionDetail!ILDescription = rstProductData!PrDescription1
rstTransactionDetail!ILSellingPrice = 12
rstTransactionDetail!ILProductGroupCP = rstProductData!PrProductGroupCP
rstTransactionDetail!ILOrderedQty = 2
Else
'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
rstTransactionDetail!ILDescription = "Cartouche d'imprimante"
rstTransactionDetail!ILSellingPrice = 44.21
rstTransactionDetail!ILProductGroupCP = 1
rstTransactionDetail!ILOrderedQty = 2
End If
rstTransactionDetail.Update
rstTransactionDetail.Close
rstProductData.Close
'**********************************************************
'Étape 4 : Initialiser les propriétés de la deuxième
' ligne de la facturation
'**********************************************************
rstTransactionDetail.Open "SELECT * FROM TransactionDetail where TaNum = 2", cnn, adOpenKeyset, adLockOptimistic
'La première ligne de la facturation est une ligne de
'saisie de produits
rstTransactionDetail!ILType = 5
rstTransactionDetail!ILLineNumber = 2
rstTransactionDetail!ILProductNumber = "XXX"
rstProductData.Open "SELECT * FROM Product where PrNumber = 'XXX'", cnn, adOpenKeyset, adLockOptimistic
If Not rstProductData.EOF Then
'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
rstTransactionDetail!ILProductCP = rstProductData!RecCardPos
rstTransactionDetail!ILDescription = rstProductData!PrDescription1
rstTransactionDetail!ILSellingPrice = 12
rstTransactionDetail!ILProductGroupCP = rstProductData!PrProductGroupCP
rstTransactionDetail!ILOrderedQty = 2
Else
'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
rstTransactionDetail!ILDescription = "XXXXXX"
rstTransactionDetail!ILSellingPrice = 21
rstTransactionDetail!ILProductGroupCP = 1
rstTransactionDetail!ILOrderedQty = 2
End If
rstTransactionDetail.Update
rstTransactionDetail.Close
rstTransactionHeader.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Calcul de taxe
'On peut effectuer le calcul des taxes et y avoir accès avant la finalisation de la facture
'Voici un exemple avec lequel on calcul les taxes et on ajoute par la suite une ligne de transport
'il est possible aussi de calculer les taxes, ajouter des produits, et recalculer les taxes
'Calcul des taxes sur nos 2 produits
'Il ajoute automatiquement les lignes à TANumLines, donc après son exécution TANumLines = 4
cnn.Execute ("CALCULATE_TAXES")
'On veut avoir accès aux montants des taxes fraiches calculées
rstCurrentTaxes.Open "select * from LastTransactionDetail where ILType = 8", cnn, adOpenKeyset, adLockOptimistic
Amount = rstCurrentTaxes!ILTotalAmount
Amount = rstCurrentTaxes!ILType
rstCurrentTaxes.MoveNext
Amount = rstCurrentTaxes!ILTotalAmount
Amount = rstCurrentTaxes!ILType
'Si on veut canceller la transaction et par le fait même libérer les cartes pré-réservées
'cnn.Execute ("CANCEL_TRANSACTION_IN")
'Terminer la création de la transaction
cnn.Execute ("END_TRANSACTION_IN")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur le dernier header créé,
' les informations se trouvent dans le LastTransactionHeader
' On veut particulièrement obtenir le CardPos de la transaction une fois créée
' afin de faire des opérations sur celle-ci
' Toutes autres informations sont aussi disponibles
rstLastTransHeader.Open "select * from LastTransactionHeader", cnn, adOpenKeyset, adLockOptimistic
CardPos = rstLastTransHeader!RecCardPos ' <---------
InvoiceTotal = rstLastTransHeader!InInvoiceTotal
SupplierCP = rstLastTransHeader!InCustomerSupplierCP
rstLastTransHeader.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur les lignes de taxes,
' les informations se trouvent dans le LastTransactionDetail (Ainsi que d'autres informations de lignes)
rstLastTransDetail.Open "select * from LastTransactionDetail where ILType = 8", cnn, adOpenKeyset, adLockOptimistic
'premiere ligne de taxe
Amount = rstLastTransDetail!ILTotalAmount
'deuxieme ligne de taxe
rstLastTransDetail.MoveNext
Amount = rstLastTransDetail!ILTotalAmount
rstLastTransDetail.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fermeture des RecordSet
rstSupplierData.Close
rstProductData.Close
MsgBox "Transaction terminé"
Command25_Exit:
cnn.Close
Exit Sub
Command25_Err:
MsgBox Err.Description
cnn.Execute ("CANCEL_TRANSACTION_IN")
Resume Command25_Exit
- Servlinks
- Nombre de messages : 5
Date d'inscription : 06/11/2008
Re: creer un achat
Lun 10 Nov 2008 - 11:59
Comment je fais pour trouver le SupplierNumber associe a l'achat??????
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Supplier number...
Lun 10 Nov 2008 - 12:07
Bonjour,
Vous êtes en train de créer l'achat. Vous devriez donc savoir pour quel fournisseur vous voulez ajouter un achat.
À moins que je ne comprenne pas bien votre question...
Vous êtes en train de créer l'achat. Vous devriez donc savoir pour quel fournisseur vous voulez ajouter un achat.
À moins que je ne comprenne pas bien votre question...
- Servlinks
- Nombre de messages : 5
Date d'inscription : 06/11/2008
Re: creer un achat
Lun 10 Nov 2008 - 12:35
Je creer un interface web pour permettre a des client de placer des commandes,
Je liste tout les produit de la table product et productitem, je narrive pas a voir ou est le lien entre litem et le fournisseur.
Desoler, ses surment une question un peu stupid, mais je ne suis vraiment pas habituer avec acomba.
Je liste tout les produit de la table product et productitem, je narrive pas a voir ou est le lien entre litem et le fournisseur.
Desoler, ses surment une question un peu stupid, mais je ne suis vraiment pas habituer avec acomba.
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Facture-client ou achat-fournisseur?
Lun 10 Nov 2008 - 13:01
Bonjour,
Il me semble que vous confondez l'achat (vous achetez de la marchandise à l'un de vos fournisseurs) et vente (vous vendez de la marchandise à un client).
L'exemple précédent est relatif un achat-fournisseur.
S'il s'agit d'une vente (commande client ou facture client), ce n'est pas du tout la même chose.
Selon votre dernier message, il s'agit d'une commande-client. Vous devez donc commencer par créer le client, s'il n'existe pas, ensuite créer la commande-client, avec le numéro du client que vous venez d'ajouter.
Si c'est un client existant, il doit avoir sur votre site une forme de login par le client, pour savoir qui c'est et que vous puissiez savoir quel est son numéro.
Il me semble que vous confondez l'achat (vous achetez de la marchandise à l'un de vos fournisseurs) et vente (vous vendez de la marchandise à un client).
L'exemple précédent est relatif un achat-fournisseur.
S'il s'agit d'une vente (commande client ou facture client), ce n'est pas du tout la même chose.
Selon votre dernier message, il s'agit d'une commande-client. Vous devez donc commencer par créer le client, s'il n'existe pas, ensuite créer la commande-client, avec le numéro du client que vous venez d'ajouter.
Si c'est un client existant, il doit avoir sur votre site une forme de login par le client, pour savoir qui c'est et que vous puissiez savoir quel est son numéro.
- Servlinks
- Nombre de messages : 5
Date d'inscription : 06/11/2008
Re: creer un achat
Lun 10 Nov 2008 - 13:10
OUPS.....
Ses une vente client.
je nai rien trouver dans la documentation sur se sujet...
Ses une vente client.
je nai rien trouver dans la documentation sur se sujet...
- Servlinks
- Nombre de messages : 5
Date d'inscription : 06/11/2008
Re: creer un achat
Mar 11 Nov 2008 - 8:23
Jai trouver et peut maintenant ajouter une transaction client, mais ou jajoute le detail de la commande? (le item acheter par le client)
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Transaction client n'est pas la même chose que facture
Mar 11 Nov 2008 - 8:41
Salut,
Si tu fais un inscription client, c'est une écriture directement dans le comptes client. Je crois que tu n'as pas utilisé le bon exemple.
Cherche plutôt l'exemple pour une facture-client, et tu n'as qu'à changer le type de transaction pour que ce soit une commande-client.
Si tu fais un inscription client, c'est une écriture directement dans le comptes client. Je crois que tu n'as pas utilisé le bon exemple.
Cherche plutôt l'exemple pour une facture-client, et tu n'as qu'à changer le type de transaction pour que ce soit une commande-client.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum