OBJECT XMLport 51000 witNAV orders import STD { OBJECT-PROPERTIES { Date=01/02/19; Time=13:48:58; Modified=Yes; Version List=witNAV.001; } PROPERTIES { Direction=Import; } ELEMENTS { { [{44CD5356-8590-4CFD-B6C7-BD5A9B7C918A}]; ;salesorder ;Element ;Text } { [{F41AB99F-8BB3-45F9-9F7A-0AA490D274ED}];1 ;header ;Element ;Table ; SourceTable=Table36; SourceTableView=SORTING(Field1,Field3) ORDER(Ascending); Import::OnAfterInitRecord=BEGIN // Document Type = Quote "Sales Header"."Document Type" := "Sales Header"."Document Type"::Quote; // Init Line No. g_intLineNo := 10000; END; Import::OnAfterInsertRecord=VAR recComment@1100262000 : Record 44; intLinNo@1100262001 : Integer; BEGIN // Keep Document No. for Sales Line g_codDocNo := "Sales Header"."No."; // Here we assign dates because they were changed by WORKDATE after OnInsert in table 36 "Sales Header".VALIDATE("Order Date",g_datOrderDate); "Sales Header".VALIDATE("Document Date",g_datOrderDate); "Sales Header".VALIDATE("Posting Date",g_datOrderDate); "Sales Header".VALIDATE("Sell-to Customer No."); "Sales Header".MODIFY(TRUE); // Save comments IF comment <> '' THEN BEGIN intLinNo := 10000; WHILE STRLEN(comment) <> 0 DO BEGIN recComment."Document Type" := recComment."Document Type"::Quote; recComment."No." := g_codDocNo; recComment."Document Line No." := 0; recComment."Line No." := intLinNo; recComment.Date := g_datOrderDate; recComment.Comment := COPYSTR(comment,1,80); recComment.INSERT; comment := DELSTR(comment,1,80); intLinNo += 10000; END; END; // Insert Sales Lines kept in temporary IF "Sales Line".FINDSET THEN BEGIN REPEAT g_recSalesLine := "Sales Line"; g_recSalesLine."Document Type" := "Sales Header"."Document Type"; g_recSalesLine."Document No." := "Sales Header"."No."; g_recSalesLine.VALIDATE(Type,"Sales Line".Type::Item); g_recSalesLine.VALIDATE("No.","Sales Line"."No."); g_recSalesLine.VALIDATE(Quantity,"Sales Line".Quantity); g_recSalesLine.VALIDATE("Unit Price","Sales Line"."Unit Price"); g_recSalesLine.VALIDATE("Line Discount %","Sales Line"."Line Discount %"); g_recSalesLine.INSERT(TRUE); UNTIL "Sales Line".NEXT = 0; END; END; } { [{382CA7DB-BD8B-4311-AD14-EAABA8FBC5C1}];2 ;user ;Element ;Text } { [{BAA60D4F-7E3B-4758-B9FA-FEC3B72FF9D6}];2 ;company ;Element ;Text } { [{290AD376-A052-4582-9DD0-71EA3FB8A972}];2 ;salesperson ;Element ;Text } { [{B1A5A708-7EE9-44F6-A5D5-88508E08D5C5}];2 ;order_number ;Element ;Text ; VariableName=ordernumber } { [{BCB184C2-F43B-4764-9347-F028DD74C76F}];2 ;customer_no ;Element ;Field ; DataType=Code; FieldValidate=No; SourceField=Sales Header::Sell-to Customer No. } { [{867B185B-9B74-4D24-B038-50A84197134C}];2 ;order_date ;Element ;Text ; DataType=Date; Import::OnAfterAssignVariable=BEGIN // Date in file is saved as D. We must ignore D at the end to be able to evaluate date order_date := COPYSTR(order_date,1,8); EVALUATE(g_datOrderDate,order_date); END; } { [{5BFACAD9-6ED9-444E-A864-5E1E6E57D13A}];2 ;gross_amount ;Element ;Text } { [{53010CE3-C1FB-4F58-9FF6-D304DEA4A640}];2 ;net_amount ;Element ;Text } { [{A9F67659-D811-4327-B268-9F5A83776DCE}];2 ;processed ;Element ;Text } { [{CC182BF3-1B9A-464C-A56E-7A9EED580B1B}];2 ;order_date_delivery ;Element ;Text } { [{89BE4F2C-7308-4213-8DCE-8295E8A3A380}];2 ;discount ;Element ;Text } { [{4E5BA8C2-6DD9-4FE2-99C0-C1436A86BD24}];2 ;ship_to_address ;Element ;Text } { [{E25B16FB-AC97-4AC3-9D78-BA2DDF4D6F81}];2 ;customer_name ;Element ;Text } { [{4388084A-65A7-40A1-AB76-64F6D3D30380}];2 ;customer_price_group;Element ;Text ; MinOccurs=Zero } { [{C2B8891B-3B0D-4E73-9A56-C4B67BAE8BE4}];2 ;comment ;Element ;Text } { [{10A6B438-FA46-42FB-BB37-97B9248754AD}];2 ;lines ;Element ;Text } { [{8741DCD9-1AD8-4789-B1F9-203C385551C3}];3 ;line ;Element ;Table ; SourceTable=Table37; SourceTableView=SORTING(Field1,Field3,Field4) ORDER(Ascending); Temporary=Yes; Import::OnAfterInitRecord=BEGIN // Init line fields not included into xml file "Sales Line".Type := "Sales Line".Type::Item; "Sales Line"."Line No." := g_intLineNo; g_intLineNo += 10000; END; } { [{8924EE87-6D04-4ED2-8502-F4E5DDCD47B4}];4 ;order_number ;Element ;Text } { [{0200D504-977F-4070-A117-8CC2A7A2DD62}];4 ;line_number ;Element ;Text } { [{2E10B9CF-2C3D-4281-88D3-1C260ED868A9}];4 ;item_number ;Element ;Field ; DataType=Code; FieldValidate=No; SourceField=Sales Line::No. } { [{004178ED-7274-4E8B-8122-82C3082485DB}];4 ;quantity ;Element ;Text ; DataType=Decimal; Import::OnAfterAssignVariable=BEGIN quantity := DELCHR(quantity,'=',','); // Change '.' by ',' in order to import numbers with decimals quantity := CONVERTSTR(quantity,'.',','); EVALUATE("Sales Line".Quantity,quantity); END; } { [{CAB3BBFE-24D2-4728-AE06-14E8DD741FBA}];4 ;unit_price ;Element ;Text ; DataType=Decimal; Import::OnAfterAssignVariable=BEGIN unit_price := DELCHR(unit_price,'=',','); // Change '.' by ',' in order to import numbers with decimals unit_price := CONVERTSTR(unit_price,'.',','); EVALUATE("Sales Line"."Unit Price",unit_price); END; } { [{C2DE2DC6-0909-4496-9B72-FFDDD45964BC}];4 ;discount ;Element ;Field ; DataType=Decimal; FieldValidate=No; SourceField=Sales Line::Line Discount % } { [{60AACFDB-DB45-4D3B-8875-0C9F4E4B0428}];4 ;line_amount ;Element ;Text } { [{F9DB3A46-1663-45CC-900A-D3FAB48BEC35}];4 ;min_quantity ;Element ;Text } { [{AA962255-F73E-4E16-BC8F-FE338832B26B}];4 ;description ;Element ;Text } } EVENTS { } REQUESTPAGE { PROPERTIES { } CONTROLS { } } CODE { VAR g_intLineNo@1103358000 : Integer; g_datOrderDate@1103358001 : Date; g_codDocNo@1103358002 : Code[20]; g_recSalesLine@1100262000 : Record 37; BEGIN { 001 25/05/17 ADD: Create object. } END. } } OBJECT XMLport 51001 witNAV receivables import STD { OBJECT-PROPERTIES { Date=06/11/18; Time=[ 8:09:31]; Modified=Yes; Version List=witNAV.001; } PROPERTIES { Direction=Import; OnPostXMLport=BEGIN f_insertJournalLine(customer,g_datDate,entryno,g_decImport); END; } ELEMENTS { { [{36959A86-C484-40DD-9612-83488AE6DC12}]; ;receivable ;Element ;Text } { [{85915E62-DF69-4F9A-8B4F-B18F847EB3BA}];1 ;user ;Element ;Text } { [{4476402E-0CFE-43CC-8D2B-9BA3A69C9692}];1 ;customer ;Element ;Text } { [{9CC833B9-0B25-46D6-BE36-E7E6D1118EDE}];1 ;date ;Element ;Text ; Import::OnAfterAssignVariable=BEGIN // Date in file is saved as D. We must ignore D at the end to be able to evaluate date date := COPYSTR(date,1,8); EVALUATE(g_datDate,date); END; } { [{377C180C-6C73-457C-A6DE-7B68916EA132}];1 ;entryno ;Element ;Text } { [{94DC4059-8FDC-4B08-94D0-9FB85A794F95}];1 ;amount ;Element ;Text ; Import::OnAfterAssignVariable=BEGIN amount := DELCHR(amount,'=',','); // Change '.' by ',' in order to import numbers with decimals amount := CONVERTSTR(amount,'.',','); EVALUATE(g_decImport,amount); END; } { [{1FF9680E-4C80-436A-B7F6-AAB3E4EF3851}];1 ;payment_method ;Element ;Text } } EVENTS { } REQUESTPAGE { PROPERTIES { } CONTROLS { } } CODE { VAR g_datDate@1103358000 : Date; g_decImport@1103358001 : Decimal; g_txtPath@1103358002 : Text[250]; g_txtName@1103358003 : Text[250]; g_txtFolder@1103358004 : Text[250]; PROCEDURE f_insertJournalLine@1103358000(codCustomer@1103358000 : Code[20];datDate@1103358002 : Date;txtNoLedgCust@1103358003 : Text[250];decAmount@1103358004 : Decimal); VAR recGenJnlLine@1103358005 : Record 81; recLastGenJnlLine@1103358010 : Record 81; recGenJnlBatch@1103358006 : Record 232; recGenJnlTemplate@1103358007 : Record 80; TextNotCashReceipts@1103358008 : TextConst 'ESP=No existe Libro diario general para recibos de efectivo'; intLineNo@1103358009 : Integer; intNoLedgCust@1100262001 : Integer; recLedgCust@1100262000 : Record 21; codJnlBatch@1100262002 : Code[10]; recCust@1100262003 : Record 18; BEGIN // Checking if it exists a section of Cash Receipts with Salesperson Code, if doesn't exist create it recGenJnlTemplate.SETRANGE(Type,recGenJnlTemplate.Type::"Cash Receipts"); IF recGenJnlTemplate.FINDFIRST THEN BEGIN // If WITNAW section doesn't exist, create it IF NOT recGenJnlBatch.GET(recGenJnlTemplate.Name,'WITNAV') THEN BEGIN recGenJnlBatch.INIT; recGenJnlBatch.VALIDATE("Journal Template Name",recGenJnlTemplate.Name); recGenJnlBatch.SetupNewBatch; recGenJnlBatch.VALIDATE(Name,'WITNAV'); recGenJnlBatch.INSERT(TRUE); COMMIT; END; recCust.GET(codCustomer); IF recCust."Salesperson Code" <> '' THEN BEGIN // If Salesperson code section doesn't exist, create it IF NOT recGenJnlBatch.GET(recGenJnlTemplate.Name,recCust."Salesperson Code") THEN BEGIN recGenJnlBatch.INIT; recGenJnlBatch.VALIDATE("Journal Template Name",recGenJnlTemplate.Name); recGenJnlBatch.SetupNewBatch; recGenJnlBatch.VALIDATE(Name,recCust."Salesperson Code"); recGenJnlBatch.INSERT(TRUE); COMMIT; END; codJnlBatch := recCust."Salesperson Code"; END ELSE BEGIN codJnlBatch := 'WITNAV'; END; END ELSE BEGIN ERROR(TextNotCashReceipts); END; // Insert Journal Line recLastGenJnlLine.SETRANGE("Journal Template Name",recGenJnlTemplate.Name); recLastGenJnlLine.SETRANGE("Journal Batch Name",codJnlBatch); IF recLastGenJnlLine.FINDLAST THEN BEGIN intLineNo := recLastGenJnlLine."Line No." + 10000; END ELSE BEGIN intLineNo := 10000; END; recGenJnlLine.INIT; recGenJnlLine."Journal Template Name" := recGenJnlTemplate.Name; recGenJnlLine."Journal Batch Name" := codJnlBatch; recGenJnlLine.SetUpNewLine(recLastGenJnlLine,0,FALSE); recGenJnlLine."Line No." := intLineNo; IF decAmount >= 0 THEN BEGIN recGenJnlLine.VALIDATE(recGenJnlLine."Document Type",recGenJnlLine."Document Type"::Payment); END ELSE BEGIN recGenJnlLine.VALIDATE(recGenJnlLine."Document Type",recGenJnlLine."Document Type"::" "); END; recGenJnlLine.VALIDATE(recGenJnlLine."Document No.",codJnlBatch); recGenJnlLine.VALIDATE(recGenJnlLine."Account Type",recGenJnlLine."Account Type"::Customer); recGenJnlLine.VALIDATE("Account No.",codCustomer); recGenJnlLine.VALIDATE("Posting Date",datDate); EVALUATE(intNoLedgCust,txtNoLedgCust); IF recLedgCust.GET(intNoLedgCust) THEN BEGIN recGenJnlLine.VALIDATE("Applies-to Doc. Type",recLedgCust."Document Type"); recGenJnlLine.VALIDATE("Applies-to Doc. No.",recLedgCust."Document No."); IF recLedgCust."Document Type" = recLedgCust."Document Type"::Bill THEN BEGIN recGenJnlLine.VALIDATE("Applies-to Bill No.",recLedgCust."Bill No."); END; END; IF decAmount >= 0 THEN BEGIN recGenJnlLine.VALIDATE("Credit Amount",decAmount); END ELSE BEGIN recGenJnlLine.VALIDATE("Debit Amount",-decAmount); END; recGenJnlLine.INSERT(TRUE); END; BEGIN { 001 25/05/16 ADD: Create object. } END. } }