Skip to Content
0
Former Member
May 13, 2008 at 08:51 AM

Add DeliveyNotes and Invoice based on Sales Order

31 Views

i can manage to do it but..the Sales Order is not closed..why?

when i try to do it manual, when it make Delivery..the respective Sales Order is Closed..

below some of my code

For Each FirstScanRow As DataRow In _oDataset.Tables(FIRSTSCAN_TABLE).Rows

            With oDeliveryNotes

                Select Case iBasedDoc

                    Case 0
                        iBasedDoc = FirstScanRow("DocNum")

                    Case Is = CInt(FirstScanRow("DocNum"))
                        .Lines.Add()
                        isAddedHeader = False

                End Select

                ' make an Invoice and Sales Delivery Order
                If isAddedHeader Then
                    .DocDate = Today.Date
                    .DocDueDate = Today.Date
                    .TaxDate = Today.Date
                    .CardCode = FirstScanRow("CardCode")
                End If

                .Lines.BaseLine = i
                .Lines.BaseType = SAPbobsCOM.BoObjectTypes.oOrders
                .Lines.BaseEntry = iBasedDoc

                '.Lines.ItemCode = FirstScanRow("ItemCode")
                '.Lines.Quantity = FirstScanRow("Quantity")
                '.Lines.VatGroup = "ZO"

                If FirstScanRow("IsUseBatch") Then

                    ' Add Batch
                    For x = 0 To FirstScanRow("Quantity") - 1

                        .Lines.BatchNumbers.BatchNumber = FirstScanRow("Scanned")
                        .Lines.BatchNumbers.Quantity = 1
                        .Lines.BatchNumbers.SetCurrentLine(x)

                        If x < FirstScanRow("Quantity") - 1 Then .Lines.BatchNumbers.Add()

                    Next

                Else
                    ' Add Serial 
                    For x = 0 To FirstScanRow("Quantity") - 1

                        .Lines.SerialNumbers.SystemSerialNumber = FirstScanRow("SysSerial")
                        .Lines.SerialNumbers.InternalSerialNumber = FirstScanRow("Scanned")
                        .Lines.SerialNumbers.SetCurrentLine(x)

                        If x < FirstScanRow("Quantity") - 1 Then .Lines.SerialNumbers.Add()

                    Next

                End If

            End With

            i = i + 1

        Next

any insight?

thanks,

erick

Edited by: Erick Widya on May 13, 2008 10:52 AM