Forum d'entraide Acomba
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.

Rejoignez le forum, c’est rapide et facile

Forum d'entraide Acomba
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.
Forum d'entraide Acomba
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Connexion

Aller en bas
avatar
LineB
Nombre de messages : 10
Date d'inscription : 20/12/2010

Probleme de Calcul des taxes Empty Probleme de Calcul des taxes

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é.
avatar
hench
Nombre de messages : 163
Date d'inscription : 30/12/2008

Fiche d'Entreprise
Nom de l'entreprise:

Probleme de Calcul des taxes Empty Re: Probleme de Calcul des taxes

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
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum