PdcPurchaseInvoices.CreateIncomingGoodsProcessor: Difference between revisions

From External Bemet Wiki
Jump to navigation Jump to search
Created page with "dim oIcProc set oIcProc = pdc.logistics.incominggoods.CreateIncomingGoodsProcessor(583) oIcProc.DeliveryDate = Date oIcProc.QuantityDelivered = 364 oIcProc.ToLocation..."
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Declaration ==
CreateIncomingGoodsProcessor(aPurchaseOrderLineID as integer) as [[IIncomingGoodsProcessor]]
== Description ==
Creates a new incominggoods object for the applied purchaseorderline ID.
== Notes ==
Creates a new incominggoods object for the applied purchaseorderline ID.
After fill and processing the object, the result returns true on succes.
aPurchaseOrderLineID =ID of the purchaseorderline
== Code example ==
This example creates an incominggood line for id 583.<br>
VBScript<br>
<source lang="vb">
dim oIcProc
dim oIcProc


Line 6: Line 22:
   oIcProc.ToLocation = "C13"
   oIcProc.ToLocation = "C13"


   'oIncGd.ForceDeliveryComplete = True
   'For a partial delivery without afterdelivery: oIncGd.ForceDeliveryComplete = True


   If Not oIcProc.Process() Then
   If Not oIcProc.Process() Then
Line 12: Line 28:
   End If
   End If
   set oIcProc = nothing
   set oIcProc = nothing
</source>
<br>
This example creates an incominggood line for all positions of purchaseorder 583.<br>
VB.NET<br>
<source lang="vb">
Dim AllOK As Boolean = True
Dim qoPO As PDCEXT.IDBQuery = PDC.App.Database.OpenQuery(PDCEXT.pdcConnectionKind.pdcConData)
qoPO.SQL = $"select bk_nr, bk_levnr, in_id, in_besh
              from bk_bestel inner join
                  totinkoop on upper(bk_nr) = upper(in_nr)
              where bk_id = :PurchaseOID"
qoPO.SetParamInt("PurchaseOID", 583)
If qoPO.Execute Then
  qoPO.FirstRecord()
  If Not qoPO.Eof Then
    If Not qoPO.GetBool("in_levcomp") Then
      Do While Not qoPO.Eof
        Dim oIncGd As PDCEXT.IIncomingGoodsProcessor = PDC.App.Logistics.IncomingGoods.CreateIncomingGoodsProcessor(qoPO.GetInt("in_id"))
        oIncGd.DeliveryDate = Date.Today
        oIncGd.QuantityDelivered = qoPO.GetBool("in_besh")
        'For a partial delivery without afterdelivery: oIncGd.ForceDeliveryComplete = True
        'when a location is mandatory: oIncGd.ToLocation = "17A"
        If Not oIncGd.Process() Then
          AllOK = False
          ErrSb.AppendLine($"Purchaseorder id {vPOID} (functionname): Error creating incominggoods for purchaseorderline {qoPO.GetInt("in_id")}.")
          ErrSb.AppendLine($"{PDC.App.LastError}.")
          Exit Do
        End If
        qoPO.NextRecord()
      Loop
    Else
      AllOK = False
      ErrSb.AppendLine($"Purchaseorder id {vPOID} (functionname): Purchaseorderline {qoPO.GetInt("in_id")} is already booked.")
    End If   
  Else
    AllOK = False
    ErrSb.AppendLine($"Purchaseorder id {vPOID} (functionname): This purchaseorder has no lines.")
  End If
Else
  AllOK = False
  ErrSb.AppendLine($"Error on loading purchaseorder data {vPOID} (functionname):")
  ErrSb.AppendLine($"Message: {PDCQueries.GetStr(PDC.App.LastError)}")
  ErrSb.AppendLine($"SQL: {qoPO.SQL}")
End If
releaseObject(qoPO)
Return AllOK
</source>
== Availability ==
Available since September 2017 (version 5.3 onwards).

Latest revision as of 13:16, 12 October 2020

Declaration

CreateIncomingGoodsProcessor(aPurchaseOrderLineID as integer) as IIncomingGoodsProcessor

Description

Creates a new incominggoods object for the applied purchaseorderline ID.

Notes

Creates a new incominggoods object for the applied purchaseorderline ID. After fill and processing the object, the result returns true on succes.

aPurchaseOrderLineID =ID of the purchaseorderline

Code example

This example creates an incominggood line for id 583.
VBScript

dim oIcProc

  set oIcProc = pdc.logistics.incominggoods.CreateIncomingGoodsProcessor(583)
  oIcProc.DeliveryDate = Date
  oIcProc.QuantityDelivered = 364
  oIcProc.ToLocation = "C13"

  'For a partial delivery without afterdelivery: oIncGd.ForceDeliveryComplete = True

  If Not oIcProc.Process() Then
    msgbox pdc.lasterror
  End If
  set oIcProc = nothing


This example creates an incominggood line for all positions of purchaseorder 583.
VB.NET

Dim AllOK As Boolean = True
Dim qoPO As PDCEXT.IDBQuery = PDC.App.Database.OpenQuery(PDCEXT.pdcConnectionKind.pdcConData)

qoPO.SQL = $"select bk_nr, bk_levnr, in_id, in_besh 
              from bk_bestel inner join 
                  totinkoop on upper(bk_nr) = upper(in_nr)
              where bk_id = :PurchaseOID"
qoPO.SetParamInt("PurchaseOID", 583)
If qoPO.Execute Then
  qoPO.FirstRecord()
  If Not qoPO.Eof Then
    If Not qoPO.GetBool("in_levcomp") Then
      Do While Not qoPO.Eof
        Dim oIncGd As PDCEXT.IIncomingGoodsProcessor = PDC.App.Logistics.IncomingGoods.CreateIncomingGoodsProcessor(qoPO.GetInt("in_id"))
        oIncGd.DeliveryDate = Date.Today
        oIncGd.QuantityDelivered = qoPO.GetBool("in_besh")
        'For a partial delivery without afterdelivery: oIncGd.ForceDeliveryComplete = True
        'when a location is mandatory: oIncGd.ToLocation = "17A"

        If Not oIncGd.Process() Then
          AllOK = False
          ErrSb.AppendLine($"Purchaseorder id {vPOID} (functionname): Error creating incominggoods for purchaseorderline {qoPO.GetInt("in_id")}.")
          ErrSb.AppendLine($"{PDC.App.LastError}.")
          Exit Do
        End If

        qoPO.NextRecord()
      Loop
    Else
      AllOK = False
      ErrSb.AppendLine($"Purchaseorder id {vPOID} (functionname): Purchaseorderline {qoPO.GetInt("in_id")} is already booked.")
    End If    
  Else
    AllOK = False
    ErrSb.AppendLine($"Purchaseorder id {vPOID} (functionname): This purchaseorder has no lines.")
  End If
Else
  AllOK = False
  ErrSb.AppendLine($"Error on loading purchaseorder data {vPOID} (functionname):")
  ErrSb.AppendLine($"Message: {PDCQueries.GetStr(PDC.App.LastError)}")
  ErrSb.AppendLine($"SQL: {qoPO.SQL}")
End If
releaseObject(qoPO)

Return AllOK


Availability

Available since September 2017 (version 5.3 onwards).