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


InvoicingLine Lignes manquantes

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

InvoicingLine Lignes manquantes

Message  MuffinWhaleMan le Mar 5 Sep 2017 - 12:57

je dois importer les factures dans une base de données (2 tables , entêtes et Détails )
La fonction suivante Construit une liste de tout les entêtes de facture à partir de la date  FromDate
Et pour chacune d'elles, appel la fonction  GetInvLines qui retourne la liste des lignes de détail de la facture.  

Pour une raison que je ne m'explique pas, la méthode IInvL.FindKey(noIndex, True) dans la fonction GetInvLines,  me retourne le code d'erreur 10 pour certaines factures.


 
Public Function GetInvHeaders(Succ As Integer, FromDate As Date) As IEnumerable(Of InvoiceHeader)
       Dim list As New List(Of InvoiceHeader)
       Dim IInv As New Invoicing
       Dim Err As Integer
       Const noIndex As Integer = 2

       IInv.BlankKey()
       IInv.Key_InInvoiceType = InvoicingType.ITp_Invoice
       IInv.Key_InDate = FromDate
       Err = IInv.FirstKey(noIndex, True)
       If Err = 0 Then
           Do
               If IInv.InDate >= FromDate Then
                   If IInv.InInvoiceType = InvoicingType.ITp_Invoice Then
                       Dim ih As New InvoiceHeader(Succ, IInv.InDate, IInv.InInvoiceNumber, IInv.InSalesRepNumber)
                       ih.Lines = GetInvLines(IInv.Key_InCardPos, IInv.InUnique, IInv.InInvoiceNumber)
                       list.Add(ih)
                   Else
                       If list.Count > 0 Then
                           Exit Do
                       End If
                   End If
               End If
               Err = IInv.NextKey(noIndex, True)
           Loop While Err = 0
       End If
       Return list.AsEnumerable
   End Function

  Cette fonction construit une liste des lignes de détails pour une facture donnée. Elle utilise l'index #6 de l'interface InvoicingLine

   Public Function GetInvLines(InvCardPos As Integer, InvUnique As Integer, Optional InvNumber As Object = Nothing) As IEnumerable(Of InvoiceLine)
       Dim list As New List(Of InvoiceLine)
       Dim IInvL As New InvoicingLine
       Dim Err As Integer
       Const noIndex As Integer = 6
       IInvL.BlankKey()
       IInvL.Key_ILInvoicingCP = InvCardPos
       IInvL.Key_ILInvoicingUnique = InvUnique
       Dim lnumber As Integer = 1
       IInvL.Key_ILLineNumber = lnumber
       Err = IInvL.FindKey(noIndex, True)


       Do
           Try
               If Err = 0 Then
                   If IInvL.ILInvoicingCP <> InvCardPos Then
                       Exit Do
                   End If


                   With IInvL
                       Dim IL As New InvoiceLine(.ILLineNumber,
                                                 .ILDescription,
                                                 .ILProductGroupNumber,
                                                 .ILProductNumber,
                                                 .ILInvoicedQty,
                                                 .ILCost,
                                                 .ILSellingPrice)
                       list.Add(IL)
                   End With
                   Err = IInvL.NextKey(noIndex, True)
               End If
           Catch ex As Exception
               LogError(ex, "Acomba.GetInvLines(InvCardPos As Integer, InvUnique As Integer)")
           End Try
       Loop While Err = 0

       Return list.AsEnumerable
   End Function

MuffinWhaleMan

Nombre de messages : 1
Date d'inscription : 05/08/2014

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