OM Créer une pièce comptable
Modérateurs: Super-Apogea, Super Modérateur
3 messages
|Page 1 sur 1
OM Créer une pièce comptable
Bonjour,
Avec la version 6.0 des objets métiers, j'aimerais pouvoir créer une pièce comptable dans la base bijou, n'ayant pas un bon niveau en matière de comptabilité, je rencontre des soucis pour y arriver.
Depuis l'ERP Comptabilité, j'ai saisi la pièce comptable dont vous voyez en pièce jointe.
Sur la ligne du compte fournisseur, j'ai saisi le jour, le numéro de pièce, le numéro de facture, la référence, le compte tiers, le libellé de l'écriture, la date d'échéance et le montant.
Su la ligne du compte 601020, j'ai saisi le montant et en validant la ligne, la ligne du compte 4456620 a été crée, de plus, j'ai saisi l'écriture analytique sur le compte 921SI1 avec le montant.
De manière analogue, j'ai mis ce code (en vb.net) :
Avec ces fonctions :
J'ai une erreur en voulant valider mon processus, disant que le compte général est obligatoire.
Je me suis inspiré de l'exemple CreationPieceComptable fournit lors de la formation mais impossible de le faire tourner correctement, les comptes généraux renseignés sont inexistants.
Auriez-vous une idée de comment faire?
Merci
Avec la version 6.0 des objets métiers, j'aimerais pouvoir créer une pièce comptable dans la base bijou, n'ayant pas un bon niveau en matière de comptabilité, je rencontre des soucis pour y arriver.
Depuis l'ERP Comptabilité, j'ai saisi la pièce comptable dont vous voyez en pièce jointe.
Sur la ligne du compte fournisseur, j'ai saisi le jour, le numéro de pièce, le numéro de facture, la référence, le compte tiers, le libellé de l'écriture, la date d'échéance et le montant.
Su la ligne du compte 601020, j'ai saisi le montant et en validant la ligne, la ligne du compte 4456620 a été crée, de plus, j'ai saisi l'écriture analytique sur le compte 921SI1 avec le montant.
De manière analogue, j'ai mis ce code (en vb.net) :
- Code: Tout sélectionner
Dim OM_BaseCpta As New BSCPTAApplication3
OM_BaseCpta.Name = "C:\Users\Public\Documents\Sage\iSage Entreprise\Bijou.mae"
OM_BaseCpta.Loggable.UserName = "<Administrateur>"
OM_BaseCpta.Loggable.UserPwd = String.Empty
OM_BaseCpta.Open()
Dim OM_PieceComptable As IPMEncoder = CreePieceComptable(OM_BaseCpta, "ACH", New Date(2015, 12, 1), String.Empty, "FA1050", "Ref", "Facture électricité")
Dim OM_EcritureGeneraleTiers As IBOEcriture3 = OM_PieceComptable.FactoryEcritureIn.Create
With OM_EcritureGeneraleTiers
.Tiers = OM_BaseCpta.FactoryFournisseur.ReadNumero("EDF")
.EC_Echeance = New Date(2015, 12, 1)
.EC_Montant = 96
.EC_Reference = OM_PieceComptable.EC_Reference
.EC_Piece = OM_PieceComptable.EC_Piece
.EC_Intitule = OM_PieceComptable.EC_Intitule
.EC_Sens = EcritureSensType.EcritureSensTypeCredit
.Journal = OM_PieceComptable.Journal
.WriteDefault()
End With
Dim OM_EcritureCA As IBOEcriture3 = OM_PieceComptable.FactoryEcritureIn.Create
With OM_EcritureCA
.Tiers = Nothing
.EC_Reference = OM_PieceComptable.EC_Reference
.EC_Piece = OM_PieceComptable.EC_Piece
.EC_Intitule = OM_PieceComptable.EC_Intitule
.EC_Montant = 80
.EC_Sens = EcritureSensType.EcritureSensTypeDebit
.Journal = OM_PieceComptable.Journal
.CompteG = OM_BaseCpta.FactoryCompteG.ReadNumero("601020")
.WriteDefault()
End With
AjouteLigneEcritureAnalytique(OM_EcritureCA, "Activité", "921SI1", 80, 0)
ValidePieceComptable(OM_PieceComptable)
Avec ces fonctions :
- Code: Tout sélectionner
Function CreePieceComptable(ByRef OM_BaseCpta As BSCPTAApplication3, _
ByVal codeJournal As String, _
ByVal dateEcriture As Date, _
Optional ByVal numPiece As String = "", _
Optional ByVal numFacture As String = "", _
Optional ByVal refPiece As String = "", _
Optional ByVal intitule As String = "") As IPMEncoder
Try
Dim OM_PieceComptable As IPMEncoder = OM_BaseCpta.CreateProcess_Encoder
OM_PieceComptable.bAnalytiqueAuto = False
OM_PieceComptable.Date = dateEcriture
OM_PieceComptable.Journal = OM_BaseCpta.FactoryJournal.ReadNumero(codeJournal)
If numPiece = String.Empty Then
OM_PieceComptable.EC_Piece = OM_PieceComptable.Journal.NextEC_Piece(dateEcriture)
Else
OM_PieceComptable.EC_Piece = numPiece
End If
OM_PieceComptable.EC_Reference = numFacture
OM_PieceComptable.EC_RefPiece = refPiece
OM_PieceComptable.EC_Intitule = intitule
Return OM_PieceComptable
Catch ex As Exception
Throw New Exception("Erreur en création d'une pièce comptable sur le journal " & codeJournal & " à la date du " & dateEcriture.ToString("dd/MM/yy") & " : " & ex.Message)
End Try
End Function
- Code: Tout sélectionner
Sub AjouteLigneEcritureAnalytique(ByRef OM_EcritureGenerale As IBOEcriture3, _
ByVal intitPlanAnalytique As String, _
ByVal sectionAna As String, _
ByVal montant As Double, _
ByVal qte As Double)
Try
Dim OM_EcritureAnalytique As IBOEcritureA3 = OM_EcritureGenerale.FactoryEcritureA.Create
Dim OM_BaseCpta As BSCPTAApplication3 = OM_EcritureAnalytique.Stream
Dim OM_PlanAnalytique As IBPAnalytique3 = OM_BaseCpta.FactoryAnalytique.ReadIntitule(intitPlanAnalytique)
OM_EcritureAnalytique.CompteA = OM_BaseCpta.FactoryCompteA.ReadNumero(OM_PlanAnalytique, sectionAna)
OM_EcritureAnalytique.EA_Montant = montant
OM_EcritureAnalytique.EA_Quantite = qte
OM_EcritureAnalytique.Write()
Catch ex As Exception
Throw New Exception("Erreur en ajout d'une écriture analytique à la ligne d'écriture N°" & OM_EcritureGenerale.EC_No.ToString() & " : " & ex.Message)
End Try
End Sub
- Code: Tout sélectionner
Sub ValidePieceComptable(ByRef pieceComptable As IPMEncoder)
Try
If pieceComptable.CanProcess Then
pieceComptable.Process()
Else
Throw New Exception("Validation de la pièce comptable impossible : ")
End If
Catch ex As Exception
Dim erreurs As New StringBuilder(ex.Message)
For Each erreur As IFailInfo In pieceComptable.Errors
erreurs.AppendLine(erreur.Text)
Next
Throw New Exception(erreurs.ToString)
End Try
End Sub
J'ai une erreur en voulant valider mon processus, disant que le compte général est obligatoire.
Je me suis inspiré de l'exemple CreationPieceComptable fournit lors de la formation mais impossible de le faire tourner correctement, les comptes généraux renseignés sont inexistants.
Auriez-vous une idée de comment faire?
Merci
Dernière édition par romulus001 le Jeu 11 Mai 2017 09:56, édité 1 fois.
- Super Contributeur
- Messages: 176
- Inscription: Sam 28 Juin 2014 20:48
Re: OM Créer une pièce comptable
Bonjour,
je commencerais par contrôler dans la base les compte généraux "existants". En effet, ils doivent exister pour être utilisés :
Explication: ReadNumero va renvoyer l'objet du compte général ayant le numéro cité "601020".
Hors, l'erreur qui semble remonter c'est qu'il ne trouve pas le compte.
Cordialement.
je commencerais par contrôler dans la base les compte généraux "existants". En effet, ils doivent exister pour être utilisés :
- Code: Tout sélectionner
.CompteG = OM_BaseCpta.FactoryCompteG.ReadNumero("601020")
Explication: ReadNumero va renvoyer l'objet du compte général ayant le numéro cité "601020".
Hors, l'erreur qui semble remonter c'est qu'il ne trouve pas le compte.
Cordialement.
Oliver.
Dev VB.NET
Si tout était simple, rien ne serait compliqué.
Dev VB.NET
Si tout était simple, rien ne serait compliqué.
Re: OM Créer une pièce comptable
Bonjour,
J'ai fait mes tests directement sur la base de production, j'ai pu créer la pièce comptable sans soucis, je pense que j'ai été plus inspiré de travailler en production plutôt que sur la base bijou :p
J'ai fait mes tests directement sur la base de production, j'ai pu créer la pièce comptable sans soucis, je pense que j'ai été plus inspiré de travailler en production plutôt que sur la base bijou :p
- Super Contributeur
- Messages: 176
- Inscription: Sam 28 Juin 2014 20:48
3 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité