var
GLSetup: Record /General Ledger Setup/;
begin
GLSetup.Get();
SalesHeaderRec.Reset();
SalesHeaderRec.SetRange(/External Document No./, SalesStaging.InvoiceNo);
if not SalesHeaderRec.FindFirst() then begin
SalesHeader.Init();
SalesHeader./Document Type/ := SalesHeader./Document Type/::Invoice;
SalesHeader.Validate(/Document Type/);
SalesHeader./No./ := NoSeriesMngt.GetNextNo(SalesNReceivableSetup./Invoice Nos./, WORKDATE, TRUE);
SalesHeader.Validate(/No./);
SalesHeader./External Document No./ := SalesStaging.InvoiceNo;
SalesHeader.Validate(/External Document No./);
//To get Sell-To customer No++
CustomerRec.Reset();
CustomerRec.SetRange(ClientID, SalesStaging./Client ID/);
if SalesStaging./Application Type/ <> '' then
CustomerRec.SetRange(/Application Type/, SalesStaging./Application Type/);
if CustomerRec.FindFirst() then begin
SalesHeader./Sell-to Customer No./ := CustomerRec./No./;
SalesHeader.Validate(/Sell-to Customer No./);
end;
//--
if SalesNReceivableSetup./Ho Location/ <> '' then begin
SalesHeader./Location Code/ := SalesNReceivableSetup./Ho Location/;
SalesHeader.Validate(/Location Code/);
end;
if SalesStaging.PaymentTerms <> '' then begin
SalesHeader./Payment Terms Code/ := SalesStaging.PaymentTerms;
SalesHeader.Validate(/Payment Terms Code/);
end;
SalesHeader./Sell-to Address/ := SalesStaging.Address;
SalesHeader.Validate(/Sell-to Address/);
SalesHeader./Posting Date/ := SalesStaging.Createddate;
SalesHeader.Validate(/Posting Date/);
if (GLSetup./LCY Code/ <> SalesStaging.Curency) then begin
SalesHeader./Currency Code/ := SalesStaging.Curency;
SalesHeader.Validate(/Currency Code/);
end;
SalesHeader.Insert();
SalesLine./Document Type/ := SalesLine./Document Type/::Invoice;
SalesLine.Validate(/Document Type/);
SalesLine./Sell-to Customer No./ := SalesHeader./Sell-to Customer No./;
SalesLine.Validate(/Sell-to Customer No./);
SalesLine./Document No./ := SalesHeader./No./;
SalesLine./Line No./ := 10000;
SalesLine.Validate(/Line No./);
SalesLine.Type := SalesLine.Type::/G/L Account/;
SalesLine.Validate(Type);
SalesLine./No./ := CustomerRec./Sales Account/);
SalesLine.Validate(/No./);
SalesLine.Quantity := SalesStaging.Completes;
SalesLine.Validate(Quantity);
SalesLine./Unit Price/ := SalesStaging.Cpi;
SalesLine.Validate(/Unit Price/);
SalesLine./Shortcut Dimension 2 Code/ := SalesStaging.Marketid;
SalesLine.Validate(/Shortcut Dimension 2 Code/);
SalesLine./GST Group Code/ := SalesStaging./GST Group Code/;
SalesLine.Validate(/GST Group Code/);
SalesLine./HSN/SAC Code/ := SalesStaging./HSN Code/;
SalesLine.Validate(/HSN/SAC Code/);
SalesLine.Insert();
SalesLine.Validate(Quantity, SalesLine.Quantity);
SalesLine.Modify();