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


PHP et Acomba

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

PHP et Acomba

Message  wedge le Mer 14 Jan 2009 - 13:43

Bonjour,

J'aimerais savoir si certain d'entre vous ont déjà fait du PHP avec le ODBC d'Acomba. Je suis capable de faire des SELECT et des UPDATE sans aucun problème.

Si vous avez jamais utiliser PHP, j'aimerais seulement savoir quelle table vous utiliser pour créer une facture et si vous avez un ébauche de votre procédure.

Merci.

wedge

Nombre de messages : 3
Date d'inscription : 14/01/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: PHP et Acomba

Message  wedge le Mer 14 Jan 2009 - 16:42

Bonjour

je suis entrain de développer une application en PHP pour
pouvoir faire des mises à jour dans la base de donnée d’Acomba. Je tente
de créer une facture en me basant sur l’exemple en VB fourni dans la
documentation de l’ODBC (Créer une transaction client). Une
fois connecté au driver, voici un bout de mon code :
Code:

$transaction = array();
$req = 'SELECT * FROM Customer WHERE CuNumber=\'3681940\'';
$resultats = odbc_exec($db, $req);
$data = odbc_fetch_array($resultats);
$transaction['InCustomerSupplierCP'] = $data['RecCardPos'];
$transaction['InInvoicedToCP'] = $data['CuInvoicedToCP'];
$transaction['InSalesRepCP'] = $data['CuSalesRepCP'];
$transaction['InTerritoryCP'] = $data['CuTerritoryCP'];
$transaction['InReceivableOffset'] = $data['CuReceivable'];
$transaction['InCurrentDay'] = 1;
$req2 = 'INSERT INTO TransARHeader (InCustomerSupplierCP, InInvoicedToCP,
InSalesRepCP, InTerritoryCP, InReceivableOffset, InCurrentDay) VALUES (\'' .
$transaction['InCustomerSupplierCP'] . '\', \'' .
$transaction['InInvoicedToCP'] . '\', \'' . $transaction['InSalesRepCP'] . '\',
\'' . $transaction['InTerritoryCP'] . '\', \'' .
$transaction['InReceivableOffset'] . '\', \'' . $transaction['InCurrentDay'] .
'\')';
$resultat = odbc_exec($db, $req2);

Il me retourne une erreur sur mon dernier odbc_exec. Voici le message : Warning:
odbc_exec() [function.odbc-exec]: SQL error: [Acomba ODBC
Driver]Invalid operand for operator: , SQL state S0000 in
SQLExecDirect in C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs\test6.php
on line 60

Après verification tout les champs de ma requête sont de
type integer. J’ai donc modifier ma requête pour enlever les ‘. Ça me donne ceci : INSERT INTO
TransARHeader (InCustomerSupplierCP, InInvoicedToCP, InSalesRepCP,
InTerritoryCP, InReceivableOffset, InCurrentDay) VALUES (8623, 0, 12, 1, 0, 1).

Cette fois,
je reçois ça comme message d’erreur : Warning: odbc_exec() [function.odbc-exec]: SQL error: Erreur de ToolKit Fonction = ReserveCardNumber Champ =
PK_TransType Erreur = Valeur invalide <1997>, SQL state in SQLExecDirect
in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test6.php
on line 53.

Avez-vous une idée du problème. On dirait que l’ODBC
ne reconnait pas ma requête.

Merci pour les informations.


Dernière édition par Alex le Sam 17 Jan 2009 - 21:36, édité 1 fois (Raison : Formattage)

wedge

Nombre de messages : 3
Date d'inscription : 14/01/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: PHP et Acomba

Message  Friedrick le Ven 16 Jan 2009 - 14:25

Tu dois vraiment faire attention à tes requêtes ave cet ODBC. Il est sensible à la case, et il faut vraiment suivre la documentation en ce qui attrait au opérateur. Regarde dans la documentation et moi, de mon coté, je vais faire une petite vérification pour regarder cette requête.

Frédérick
avatar
Friedrick

Nombre de messages : 11
Date d'inscription : 17/12/2008

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Valeur requise...

Message  Lartis le Ven 16 Jan 2009 - 21:32

Bonjour,

Pour une rare fois, le message d'erreur est clair!!!

PK_TransType Erreur = Valeur invalide

Certains champs sont requis dans cette table, dont entre autre le champ InTransactionType. Il te faut absolument le mettre dans ton INSERT.

Valeurs possibles: (donc 3 pour une facture)
0 Aucun
1 Excédent
2 Crédit
3 Facture
4 Intérêts
5 Autres frais
6 Dépôt
7 Pénalité

Petite astuce: essai d'insérer une ligne directement dans la table avec Access. Ça te permettra rapidement de voir les champs requis.

Je viens d'aller voir l'exemple, et tu as oublié un bloc:

Code:
rstTransARHeader!InTransactionType = 3
    rstTransARHeader!InReference = "PO-1223"
    rstTransARHeader!InDescription = "Nouveau Contrat de service"
             
    'Nombre d'affectations de la transaction

    rstTransARHeader!TANumPosts = 5


Ce bloc contient 2 champs requis: InTransactionType et TANumPosts, que tu as aussi omis.


Dernière édition par Alex le Sam 17 Jan 2009 - 21:37, édité 3 fois (Raison : Formattage)

_________________
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

Création d'une facture avec PHP

Message  Gr3g le Lun 10 Aoû 2009 - 15:25

Bonjour,

Après avoir pas mal cherché et galéré avec l'insertion de données dans la base de données d'Acomba avec PHP et ODBC je pense qu'il est sympa de mettre le fruit de mes recherches pour ceux qui sont intéressés.

Ceci est un exemple !

Tout d'abord on va se connecter à la base de données d'Acomba :
Code:
$conn = odbc_connect('dsn','','password');

Ensuite on va signaler le début de l'opération de transaction :
Code:
odbc_exec($conn, "BEGIN_TRANSACTION_IN");

Puis on va insérer l'entête de la facturation
Code:
$req = "INSERT INTO TransactionHeader (InInvoiceType, InReference, InDescription, InCurrentDay, InTransactionActive, InCustomerSupplierCP, TANumLines) VALUES (1, 'la référence', 'la description', 1, 1, 260, 1);

odbc_exec($conn, $req);

avec :
InInvoiceType -> =1 car c'est une facture
InReference -> string, référence de la facture
InDescription -> string, description de la facture
InCurrentDay -> =1 si on veut que ce soit daté de ce jour
InTransactionActive -> =1 si on veut que la facture soit active
InCustomerSupplierCP -> = numéro cardPos du client à facturer
TANumLines -> = nombre de lignes que doit comporter la facture

Ensuite on va créer les lignes une par une, selon le nombre qu'on a renseigné dans l'entête :
Code:
$req = "UPDATE TransactionDetail SET ILType = 1, ILDescription = 'ma ligne 1', ILSellingPrice = 48, ILProductGroupCP = 1, ILInvoicedQty = 2, ILLineNumber = 1 WHERE TaNum=1";

odbc_exec($conn, $req);

avec :
ILType ->=1 car c'est une facture
ILDescription -> string, la description de la ligne
ILSellingPrice -> prix de vente
ILProductGroupCP -> groupe de produit auquel appartient le produit facturé
ILInvoicedQty -> quantité de cet article
ILLineNumber -> numéro de la ligne
WHERE TaNum=1 -> en gros, on update les infos de la ligne 1

On recommence cette dernière opération pour chaque ligne à insérer...

Enfin on termine la transaction :
Code:
odbc_exec($conn, "END_TRANSACTION_IN");
odbc_close($conn);

Voila pour la base de l'insertion d'une facture avec l'ODBC dans Acomba en localhost.
J'espère que ca pourra en aider certains...

C'est bien joli de pouvoir ajouter des factures et des clients en localhost dans Acomba mais ce qui m'intéresse maintenant c'est de pouvoir le faire depuis le Web, depuis le serveur de mon entreprise.

Je m'explique :
Nous avons développé un gestionnaire de projet en ligne et on m'a confié comme seconde tâche de pouvoir directement créer les factures et ajouter des clients depuis cet "intranet", directement dans Acomba. Et c'est là que je bloque complètement, malgré les quelques explication données dans d'autres posts du forum (création de passerelle avec mssql, mise en place d'un vpn...).

Si quelqu'un peut m'aider Smile

Merci !

Gr3g.

Gr3g

Nombre de messages : 2
Ville : Montréal
Date d'inscription : 10/08/2009

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Acomba et PHP en 2010.?

Message  calypso le Jeu 2 Déc 2010 - 16:51

J'ai plus ou moins les mêmes besoins que Gr3g: accéder/modifier les données de Acomba via une application web en PHP.

Je me demandais juste si quelqu'un avait des développement de ce côté. J'ai pas encore installé Acomba, jamais entendu parler avant il y a 2 heures, je viens tout juste de recevoir le mandat de regarder ce qui est possible. Gr3g nous expliquait en détails la méthode mais on semble restreint à travailler en localhost.

Est-ce que quelqu'un à réussi à faire "parler" Acomba et PHP sur le web.?

Autre question, admettons que c'est possible, est-ce qu'il faut une version spéciale de Acomba (qui réside sur un serveur j'imagine, pour que PHP puisse accéder à la bd)..?

calypso

Nombre de messages : 1
Date d'inscription : 02/12/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: PHP et Acomba

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