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


Probleme de Calcul des taxes

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

Probleme de Calcul des taxes

Message  LineB le Dim 2 Jan 2011 - 21:24

Bonsoir ,

A partir d'n formulaire de saisie, je crée une soumission qui emmagasine les valeurs dans une table ACCESS.
Lorsque l'usager click sur CREER SOUMISSION, celle-ci se crée dans ACOMBA.
Jusque là pas de problème.

Par contre les taxes ne se calculent pas dans ACOMBA a moins que je me rende dans la Soumission ACOMBA et que je click sur taxe (ligne du produit).

J'ai bien vérifier que le Client est taxable ainsi que les produits.

Code:


Private Sub btnCreer_Click()

'Dclaration des variables
Dim cnn As New ADODB.Connection
Dim rstTransactionHeader As New ADODB.Recordset
Dim rstTransactionDetail As New ADODB.Recordset
Dim rstCurrentTaxes As New ADODB.Recordset
Dim rstLastTransHeader As New ADODB.Recordset
Dim rstLastTransDetail As New ADODB.Recordset
Dim rstCustomerData As New ADODB.Recordset
Dim rstProductData As New ADODB.Recordset
Dim rstSoumission As DAO.Recordset

Dim TotLignes As Integer
Dim Lignes As Integer
Dim CustomerNumber As String
Dim PartNumber As String
Dim strPriceField As String
Dim InvoiceNumberSoumission As String
Dim ILInvoiceTotal As Double
Dim Amount As Double
Dim trILProductCP As String
Dim trILDescription As String
Dim trILSellingPrice As Double
Dim trILOrderedQty As String
Dim trILProductGroupCP As String

Dim cpt As Integer

cnn.ConnectionString = "Driver={Acomba ODBC Driver};AcombaExe=\\Acomba\Fortune\achat\Fortune;Dbq=x:\f1000.dta\Cyber;Uid=xx;Pwd=xxx"
cnn.CursorLocation = adUseClient
cnn.Open
On Error GoTo Command1_Err

Set rstSoumission = CurrentDb.OpenRecordset("SELECT * FROM tbSoumission Where tbSoumission.ClientNo = '" & Me.TxtNoClient & "' And tbSoumission.Vendeur = '" & Me.txtVendeur & "' ")
If rstSoumission.EOF Then
MsgBox ("Aucune Soumission trouvée")
cnn.Close
rstSoumission.Close
Exit Sub
End If
cnn.Execute ("BEGIN_TRANSACTION_IN")
rstSoumission.MoveFirst
rstSoumission.MoveLast
TotLignes = rstSoumission.RecordCount
rstSoumission.MoveFirst

rstTransactionHeader.Open "SELECT * FROM TransactionHeader Where RecCardPos = 0 ", cnn, adOpenKeyset, adLockOptimistic

rstTransactionHeader.AddNew

rstTransactionHeader!InInvoiceType = 4
rstTransactionHeader!InDescription = "NE PAS CONSIDERER TEST"
rstTransactionHeader!InCurrentDay = 1
rstTransactionHeader!InTransactionActive = 1
rstTransactionHeader!InSalesRepNumber = Me.txtVendeur

CustomerNumber = rstSoumission!ClientNo
PartNumber = rstSoumission!Part

'On veut aller chercher les informations du client
rstCustomerData.Open "SELECT * FROM Customer where cuNumber = '" & CustomerNumber & "'", cnn, adOpenKeyset, adLockOptimistic

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Pour le calcul des taxes avec le cnn.Execute("CALCULATE_TAXES")
'il faut initialiser un CardPos du groupe de taxe
'On peut donc aller chercher le groupe de taxe auquel le client fait parti
'pour utiliser les bonnes taxes pour le calcul
rstTransactionHeader!InTaxGroupCP = rstCustomerData!CuTaxGroupCP

If Not rstCustomerData.EOF Then
rstTransactionHeader!InCustomerSupplierCP = rstCustomerData!RecCardPos
Else
rstTransactionHeader!InCustomerSupplierCP = 0
End If

'Si le client existe
If rstTransactionHeader!InCustomerSupplierCP > 0 Then
'Initialisation des proprits concernant le client
'associ la facture
rstTransactionHeader!InInvoicedToCP = rstCustomerData!CuInvoicedToCP

'Numro du compte recevable du client auquel la facturation
'est associe
rstTransactionHeader!InReceivableOffset = rstCustomerData!CuReceivable
End If

'**********************************************************
'tape 2 : Assigner le nombre total de lignes incluses
' dans la facturation la proprit TANumLines
'**********************************************************
rstTransactionHeader!TANumLines = TotLignes
Lignes = 1
rstTransactionHeader.Update

'**********************************************************
'tape 3 : Initialiser les proprits de la premire
' ligne de la facturation
'**********************************************************
rstTransactionDetail.Open "SELECT * FROM TransactionDetail ", cnn, adOpenKeyset, adLockOptimistic

For cpt = 1 To TotLignes
PartNumber = rstSoumission!Part
rstProductData.Open "SELECT * FROM Product where PrNumber = '" & PartNumber & "'", cnn, adOpenKeyset, adLockOptimistic
strPriceField = "PrSellingPrice" & rstCustomerData!CuReceivable & "_" & rstCustomerData!CuPriceLevel + 1
trILSellingPrice = Format(CStr(rstProductData(strPriceField)), "# ##.#")
trILProductCP = rstProductData!RecCardPos
trILDescription = rstProductData!PrDescription1
trILProductGroupCP = rstProductData!PrProductGroupCP
trILOrderedQty = rstSoumission!Qty


cnn.Execute ("update TransactionDetail set ILProductNumber = '" & PartNumber & "', ILProductCP = " & CStr(trILProductCP) & " ,ILSellingPrice = " & trILSellingPrice & ",ILProductGroupCP = " & CStr(trILProductGroupCP) & " , ILOrderedQty = " & CStr(trILOrderedQty) & " , ILLineNumber = " & CStr(cpt) & " , ILDescription = '" & trILDescription & "' ,ILType = 4 WHERE TaNum = " & CStr(cpt))

rstSoumission.MoveNext
rstProductData.Close
Next
rstTransactionDetail.Close
'TANum = 4
cnn.Execute ("CALCULATE_TAXES")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Calcul de taxe
'On peut effectuer le calcul des taxes et y avoir accs 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 aprs son excution TANumLines = 4
'TANumLines = 4
Dim CardPos As Integer
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur le dernier header cr,
' les informations se trouvent dans le LastTransactionHeader
' On veut particulirement obtenir le CardPos de la transaction une fois cre
' afin de faire des oprations sur celle-ci
' Toutes autres informations sont aussi disponibles
rstLastTransHeader.Open "select * from LastTransactionHeader", cnn, adOpenKeyset, adLockOptimistic
CardPos = rstLastTransHeader!RecCardPos ' <---------
ILInvoiceTotal = rstLastTransHeader!InInvoiceTotal
InvoiceNumberSoumission = rstLastTransHeader!InInvoiceNumber
MsgBox "Transaction terminée. No de Soumission: " & (rstLastTransHeader!InInvoiceNumber)

'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
rstCustomerData.Close



Merci de votre aide tant apprécié.

LineB

Nombre de messages : 10
Date d'inscription : 20/12/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Probleme de Calcul des taxes

Message  hench le Jeu 6 Jan 2011 - 13:54

Vous devez attribuer un numéro de taux de taxe au champ ILTaxLineRate pour chacune des lignes de produits taxables.

Il est possible d'assigner 10 taux de taxe différents à une taxe. Via SDK, les valeurs vont de 0 à 9, par ODBC, je croirais qu'elles sont les mêmes, je vous laisse le loisir de vérifier dans les documents d'aide ODBC.

Bon succès,

hench

hench

Nombre de messages : 163
Date d'inscription : 30/12/2008

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur

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