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
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

Aller en bas
avatar
MuffinWhaleMan
Nombre de messages : 1
Date d'inscription : 05/08/2014

InvoicingLine Lignes manquantes Empty InvoicingLine Lignes manquantes

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