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


creer un achat

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

creer un achat

Message  Servlinks le 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 Crying or Very sad Crying or Very sad )
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é.


Dernière édition par Alex le Jeu 6 Nov 2008 - 11:55, édité 1 fois (Raison : Orthographe)

Servlinks

Nombre de messages : 5
Date d'inscription : 06/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Achat par ODBC

Message  Lartis le 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:
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

   

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
avatar
Lartis

Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.

Voir le profil de l'utilisateur http://www.lartis.com

Revenir en haut Aller en bas

Re: creer un achat

Message  Servlinks le Lun 10 Nov 2008 - 11:59

Comment je fais pour trouver le SupplierNumber associe a l'achat??????

Servlinks

Nombre de messages : 5
Date d'inscription : 06/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Supplier number...

Message  Lartis le 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...

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
avatar
Lartis

Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.

Voir le profil de l'utilisateur http://www.lartis.com

Revenir en haut Aller en bas

Re: creer un achat

Message  Servlinks le 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.

Servlinks

Nombre de messages : 5
Date d'inscription : 06/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Facture-client ou achat-fournisseur?

Message  Lartis le 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.

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
avatar
Lartis

Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.

Voir le profil de l'utilisateur http://www.lartis.com

Revenir en haut Aller en bas

Re: creer un achat

Message  Servlinks le Lun 10 Nov 2008 - 13:10

OUPS.....
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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: creer un achat

Message  Servlinks le 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)

Servlinks

Nombre de messages : 5
Date d'inscription : 06/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Transaction client n'est pas la même chose que facture

Message  Lartis le 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.

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
avatar
Lartis

Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.

Voir le profil de l'utilisateur http://www.lartis.com

Revenir en haut Aller en bas

Re: creer un achat

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