This group of TDL files, which are uploaded here, can be used for generating e-Invoice json file (version 1.03) Note : This code has not been tested on Tally Prime yet. What it does : It just creates e-Invoice Json file as mentioned above. Json file thus generated above has been tested with e-Invoice portal and proper response was generated and IRN was received. What it doesn't do: a. code doesn't show methods to load it e-Invoice Portal (as it depends on a number factors like, ASP you are using) b. It Doesn't let you know the error in json file in advance. c. a lot of other things which you will know when you try to upload the json file. How it Works: On voucher screen it adds two buttons : [Button : EinvWrite] Title : "E-Write Invoice" ;; This method will directly write json file as per EInv Specification 1.03 which can used for uploading [Button : EinvExport] Title : "E-Exp Invoice" ;; This method will create Tally report (EInv Specification 1.03 ), which can be used for sending it to E-Invoice portal using HTTP Post. Requisites: Proper Information in voucher... means all required information for creating Json file as per specification: How to know whether voucher fulfills this condition ?? if e-Way bill is generated successfully using Tally Default , then you can assume that Invoice is perfect for exporting in Json file -Coder : Ria Sharma Code Starts here.. File Name : eInv_Menu.tdl __________________________________________________________________ Code: ;;File Name : eInv_Menu.tdl [#Form : Sales Color] Add : Option : Export JSON on Save : @@EInvoicingEnabled ;AND $$IsSales:##svVoucherType [!Form : Export JSON on Save] Add : Button : EinvRefrersh, EinvWrite, EinvExport On : Form Accept : Yes : Call : Taxo_Einv_Write ; TxoWriteToJson On : Form Accept : Yes : Alter Object On : Form Accept : Yes : Form Accept [Button : EinvRefrersh] Key : Alt + R Action : REfresh TDL Title : "Refresh" ;; This method will directly write json file as per EInv Specification 1.03 [Button : EinvWrite] Key : Ctrl + E Action : Call: Txo_EInv_WriteToList Title : "E-Write Invoice" ;; This method will create Tally report (EInv Specification 1.03 ), which can be used for sending it to E-Invoice portal using HTTP Post. [Button : EinvExport] Key : Ctrl + X Action : Call: Taxo_Einv_Export Title : "E-Exp Invoice" [Function : Taxo_Einv_Export] 001: Set: SVExportFormat : $$SysName:UTF8JSON ;ANSIJSON ;UTF16JSON 002: Set: SVExportLanguage : $$SysName:UTF8JSON ;ANSIJSON UTF16JSON 003 : Call: Txo_EInv_WriteToList 004: Set: SVPrintFileName : @@eInv_ExportName1.03 005: Export:eInv_Json1.03 : Yes:Yes [Function : Taxo_Einv_Write] 010 : Call : Txo_EInv_WriteToList 020 : Call : TxoWriteToJson [System : Formula] eInv_WriteName1.03 : "D:\TDL\EInvWrite.json" eInv_ExportName1.03 :"D:\TDL\EInvExpot.json" [Include : eInv_Json.tdl] [Include : eInv_JsonObject.tdl] [Include : eInv_ListStructure.tdl] [Include : eInv_Settings.tdl] [Include : eInv_JsonWrite.tdl] File : eInv_Json.tdl __________________________________________________________________ Code: ;;File : eInv_Json.tdl [Report: eInv_Json1.03] ; This report will come in Remote Request in POST method of HTTP Jsone Form : eInv_Json1.03 Plain JSON : No Export Empty Fields : Yes [Form: eInv_Json1.03] Part : eInv_Json1.03 Delete : XML Tag Full Object : Yes Belongs To : Yes [Part: eInv_Json1.03] Line : eInv_Version Repeat : eInv_Version : TxoLvEinvoiceSrc Scroll : Vertical [Line : eInv_Version] Field : eInv_Version Explode : eInv_Body [Part : eInv_Body] ; Part : eInv_Version Part : eInv_TranDtls Part : eInv_DocDtls Part : eInv_SellerDtls Part : eInv_BuyerDtls Part : eInv_DispDtls Part : eInv_ShipDtls Part : eInv_ItemList Part : eInv_ValDtls Part : eInv_PayDtls Part : eInv_RefDtls Part : eInv_AddlDocDtls Part : eInv_ExpDtls Part : eInv_EwbDtls [Part : eInv_Version] Line : eInv_Version ; Repeat : eInv_Version : TxoLvEinvoiceObj; TxoLvEinvoice ; Scroll : Vertical ; Set : 1 ; [Line: eInv_Version] ; Field : eInv_Version ;Map : Version :$Version : TxoLvEinvoiceSrc ; Main Collection [Field :eInv_Version] Use : Name Field Set as: "1.1";$Version JSONTag :"Version" [Part: eInv_TranDtls] Line : eInv_TranDtls ; Repeat : eInv_TranDtls ; : TranDtls Scroll : Vertical Set : 1 [Line : eInv_TranDtls] Fields : eInv_TrnDet_TaxSch, eInv_TrnDet_SupTyp, eInv_TrnDet_RegRev, eInv_TrnDet_EcmGstin , eInv_TrnDet_IgstOnIntra JSONTag : "TranDtls" [Field :eInv_TrnDet_TaxSch] Use : Name Field Set As : $TranDtls[1].TaxSch JSONTag : "TaxSch" [Field: eInv_TrnDet_SupTyp] Use : Name Field Set As : $TranDtls[1].SupTyp JsonTag : "SupTyp" [Field: eInv_TrnDet_RegRev] Use : Name Field Set as : $TranDtls[1].RegRev JSONTag : "RegRev" [Field: eInv_TrnDet_EcmGstin] Type : NumSet Set by Condition : NOT $TranDtls[1].EcmGstin = "Null" : $TranDtls[1].EcmGstin JSONTag : "EcmGstin" [Field: eInv_TrnDet_IgstOnIntra] Use : Name Field Set As : $TranDtls[1].IgstOnIntra JSONTag : "IgstOnIntra" [Part : eInv_DocDtls] Line : eInv_DocDtls ; Repeat : eInv_DocDtls : DocDtls Scroll : Vertical Set : 1 [Line : eInv_DocDtls] Fields : eInv_DocDet_Typ, eInv_DocDet_No, eInv_DocDet_Dt JSONTag : DocDtls [Field : eInv_DocDet_Typ] Use : Name Field Set As: $DocDtls[1].Typ JSONTag : "Typ" [Field : eInv_DocDet_No] Use : Name field Set as : $DocDtls[1].No JSONTag : "No" [Field : eInv_DocDet_Dt] Use : Name Field Set as : If $$IsEmpty:$DocDtls[1].Dt then "" Else ($$DDMMYYYYDateFormat:$DocDtls[1].Dt:"/") JSONTag : "Dt" ; TempDt : ;---- Pending From here" [Part : eInv_SellerDtls] Line :eInv_SellerDtls ;Repeat :eInv_SellerDtls:SellerDtls Scroll : Vertical [Line :eInv_SellerDtls] Fields : eInv_SelDet_Gstin, eInv_SelDet_LglNm, eInv_SelDet_TrdNm, eInv_SelDet_Addr1, eInv_SelDet_Addr2, eInv_SelDet_Loc, eInv_SelDet_Pin, eInv_SelDet_Stcd, eInv_SelDet_Ph, eInv_SelDet_Em JSONTag : "SellerDtls" [Field :eInv_SelDet_Gstin] Use : Name Field Set As : $SellerDtls[1].Gstin jSonTag : "Gstin" [Field :eInv_SelDet_LglNm] Use : Name Field Set As : $SellerDtls[1].LglNm jSonTag : "LglNm" [Field :eInv_SelDet_TrdNm] Use : Name Field Set As : $SellerDtls[1].TrdNm jSonTag : "TrdNm" [Field :eInv_SelDet_Addr1] Use : Name Field Set As : $SellerDtls[1].Addr1 jSonTag : "Addr1" [Field :eInv_SelDet_Addr2] Use : Name Field Set As : $SellerDtls[1].Addr2 jSonTag : "Addr2" [Field :eInv_SelDet_Loc] Use : Name Field Set As : $SellerDtls[1].Loc jSonTag : "Loc" [Field :eInv_SelDet_Pin] Use : Number Field Set As : $SellerDtls[1].Pin jSonTag : "Pin" [Field :eInv_SelDet_Stcd] Use : Name Field Set As : $SellerDtls[1].Stcd jSonTag : "Stcd" [Field :eInv_SelDet_Ph] Use : Name Field Set As : $SellerDtls[1].Ph jSonTag : "Ph" [Field :eInv_SelDet_Em] Use : Name Field Set As : $SellerDtls[1].Em jSonTag : "Em" [Part : eInv_BuyerDtls] Line : eInv_BuyerDtls ; Repeat : eInv_BuyerDtls : BuyerDtls Scroll : Vertical [Line : eInv_BuyerDtls] Fields : eInv_BuyDet_Gstin, eInv_BuyDet_LglNm, eInv_BuyDet_TrdNm, eInv_BuyDet_Pos, eInv_BuyDet_Addr1, eInv_BuyDet_Addr2, eInv_BuyDet_Loc, eInv_BuyDet_Pin, eInv_BuyDet_Stcd, eInv_BuyDet_Ph, eInv_BuyDet_Em JSONTag: "BuyerDtls" [Field :eInv_BuyDet_Gstin] Use : Name Field Set As : $BuyerDtls[1].Gstin jSonTag : "Gstin" [Field :eInv_BuyDet_LglNm] Use : Name Field Set As : $BuyerDtls[1].LglNm jSonTag : "LglNm" [Field :eInv_BuyDet_TrdNm] Use : Name Field Set As : $BuyerDtls[1].TrdNm jSonTag : "TrdNm" [Field :eInv_BuyDet_Pos] Use : Name Field Set As : $BuyerDtls[1].Pos jSonTag : "Pos" [Field :eInv_BuyDet_Addr1] Use : Name Field Set As : $BuyerDtls[1].Addr1 jSonTag : "Addr1" [Field :eInv_BuyDet_Addr2] Use : Name Field Set As : $BuyerDtls[1].Addr2 jSonTag : "Addr2" [Field :eInv_BuyDet_Loc] Use : Name Field Set As : $BuyerDtls[1].Loc jSonTag : "Loc" [Field :eInv_BuyDet_Pin] Use : Number Field Set As : $BuyerDtls[1].Pin jSonTag : "Pin" [Field :eInv_BuyDet_Stcd] Use : Name Field Set As : $BuyerDtls[1].Stcd jSonTag : "Stcd" [Field :eInv_BuyDet_Ph] Use : Name Field Set As : $BuyerDtls[1].Ph jSonTag : "Ph" [Field :eInv_BuyDet_Em] Use : Name Field Set As : $BuyerDtls[1].Em jSonTag : "Em" [Part : eInv_DispDtls] Line :eInv_DispDtls ; Repeat :eInv_DispDtls : DispDtls Scroll : Vertical [Line : eInv_DispDtls] Fields :eInv_DisDet_Nm, eInv_DisDet_Addr1, eInv_DisDet_Addr2, eInv_DisDet_Loc, eInv_DisDet_Pin, eInv_DisDet_Stcd JSONTag : "DispDtls" [Field :eInv_DisDet_Nm] Use : Name Field Set As : $DispDtls[1].Nm jSonTag : "Nm" [Field :eInv_DisDet_Addr1] Use : Name Field Set As : $DispDtls[1].Addr1 jSonTag : "Addr1" [Field :eInv_DisDet_Addr2] Use : Name Field Set As : $DispDtls[1].Addr2 jSonTag : "Addr2" [Field :eInv_DisDet_Loc] Use : Name Field Set As : $DispDtls[1].Loc jSonTag : "Loc" [Field :eInv_DisDet_Pin] Use : Number Field Set As : $DispDtls[1].Pin jSonTag : "Pin" [Field :eInv_DisDet_Stcd] Use : Name Field Set As : $DispDtls[1].Stcd jSonTag : "Stcd" [Part : eInv_ShipDtls] Line :eInv_ShipDtls ; Repeat :eInv_ShipDtls : ShipDtls Scroll : Vertical Set : 1 [Line :eInv_ShipDtls] Fields : eInv_ShpDet_Gstin, eInv_ShpDet_LglNm, eInv_ShpDet_TrdNm, eInv_ShpDet_Addr1, eInv_ShpDet_Addr2, eInv_ShpDet_Loc, eInv_ShpDet_Pin, eInv_ShpDet_Stcd JsonTag :"ShipDtls" [Field :eInv_ShpDet_Gstin] Use : Name Field Set As : $ShipDtls[1].Gstin jSonTag : "Gstin" [Field :eInv_ShpDet_LglNm] Use : Name Field Set As : $ShipDtls[1].LglNm jSonTag : "LglNm" [Field :eInv_ShpDet_TrdNm] Use : Name Field Set As : $ShipDtls[1].TrdNm jSonTag : "TrdNm" [Field :eInv_ShpDet_Addr1] Use : Name Field Set As : $ShipDtls[1].Addr1 jSonTag : "Addr1" [Field :eInv_ShpDet_Addr2] Use : Name Field Set As : $ShipDtls[1].Addr2 jSonTag : "Addr2" [Field :eInv_ShpDet_Loc] Use : Name Field Set As : $ShipDtls[1].Loc jSonTag : "Loc" [Field :eInv_ShpDet_Pin] Use : Number Field Set As : $ShipDtls[1].Pin jSonTag : "Pin" [Field :eInv_ShpDet_Stcd] Use : Name Field Set As : $ShipDtls[1].Stcd jSonTag : "Stcd" [Part : eInv_ItemList] Line :eInv_ItemList Repeat :eInv_ItemList : ItemList Scroll : Vertical Set : 1 [Line :eInv_ItemList] Fields : eInv_ItmDet_SlNo, eInv_ItmDet_PrdDesc, eInv_ItmDet_IsServc, eInv_ItmDet_HsnCd, eInv_ItmDet_Barcde Fields : eInv_ItmDet_Qty, eInv_ItmDet_FreeQty, eInv_ItmDet_Unit, eInv_ItmDet_UnitPrice, eInv_ItmDet_TotAmt Fields : eInv_ItmDet_Discount, eInv_ItmDet_PreTaxVal, eInv_ItmDet_AssAmt, eInv_ItmDet_GstRt, eInv_ItmDet_IgstAmt Fields : eInv_ItmDet_CgstAmt, eInv_ItmDet_SgstAmt, eInv_ItmDet_CesRt, eInv_ItmDet_CesAmt Fields : eInv_ItmDet_CesNonAdvlAmt, eInv_ItmDet_StateCesRt, eInv_ItmDet_StateCesAmt, eInv_ItmDet_StateCesNonAdvlAmt Fields : eInv_ItmDet_OthChrg, eInv_ItmDet_TotItemVal, eInv_ItmDet_OrdLineRef, eInv_ItmDet_OrgCntry, Fields : eInv_ItmDet_PrdSlNo JsonTag :"ItemList" Explode : eInv_ItmDet_BchDtls Explode : eInv_ItmDet_AttribDtls [Field :eInv_ItmDet_SlNo] Use : Name Field Set As : $SlNo jSonTag : "SlNo" [Field :eInv_ItmDet_PrdDesc] Use : Name Field Set As : $PrdDesc jSonTag : "PrdDesc" [Field :eInv_ItmDet_IsServc] Use : Name Field Set As : $IsServc jSonTag : "IsServc" [Field :eInv_ItmDet_HsnCd] Use : Name Field Set As : $HsnCd jSonTag : "HsnCd" [Field :eInv_ItmDet_Barcde] Use : Name Field Set As : $Barcde jSonTag : "Barcde" [Field :eInv_ItmDet_Qty] Use : Number Field Set As : $Qty jSonTag : "Qty" [Field :eInv_ItmDet_FreeQty] Use : Number Field Set As : $FreeQty jSonTag : "FreeQty" [Field :eInv_ItmDet_Unit] Use: Name Field Set As : $Unit jSonTag : "Unit" [Field :eInv_ItmDet_UnitPrice] Use: Number Field Set As : $UnitPrice jSonTag : "UnitPrice" [Field :eInv_ItmDet_TotAmt] Use: Number Field Set As : $TotAmt jSonTag : "TotAmt" [Field :eInv_ItmDet_Discount] Use: Number Field Set As : $Discount jSonTag : "Discount" [Field :eInv_ItmDet_PreTaxVal] Use: Number Field Set As : $PreTaxVal jSonTag : "PreTaxVal" [Field :eInv_ItmDet_AssAmt] Use: Number Field Set As : $AssAmt jSonTag : "AssAmt" [Field :eInv_ItmDet_GstRt] Use: Number Field Set As : $GstRt jSonTag : "GstRt" [Field :eInv_ItmDet_IgstAmt] Use: Number Field Set As : $IgstAmt jSonTag : "IgstAmt" [Field :eInv_ItmDet_CgstAmt] Use: Number Field Set As : $CgstAmt jSonTag : "CgstAmt" [Field :eInv_ItmDet_SgstAmt] Use: Number Field Set As : $SgstAmt jSonTag : "SgstAmt" [Field :eInv_ItmDet_CesRt] Use: Number Field Set As : $CesRt jSonTag : "CesRt" [Field :eInv_ItmDet_CesAmt] Use: Number Field Set As : $CesAmt jSonTag : "CesAmt" [Field :eInv_ItmDet_CesNonAdvlAmt] Use : Number Field Set As : $CesNonAdvlAmt jSonTag : "CesNonAdvlAmt" [Field :eInv_ItmDet_StateCesRt] Use : Number Field Set As : $StateCesRt jSonTag : "StateCesRt" [Field :eInv_ItmDet_StateCesAmt] Use : Number Field Set As : $StateCesAmt jSonTag : "StateCesAmt" [Field :eInv_ItmDet_StateCesNonAdvlAmt] Use : Number Field Set As : $StateCesNonAdvlAmt jSonTag : "StateCesNonAdvlAmt" [Field :eInv_ItmDet_OthChrg] Use : Number Field Set As : $OthChrg jSonTag : "OthChrg" [Field :eInv_ItmDet_TotItemVal] Use : Number Field Set As : $TotItemVal jSonTag : "TotItemVal" [Field :eInv_ItmDet_OrdLineRef] Use : Name Field Set As : $OrdLineRef jSonTag : "OrdLineRef" [Field :eInv_ItmDet_OrgCntry] Use : Name Field Set As : $OrgCntry jSonTag : "OrgCntry" [Field :eInv_ItmDet_PrdSlNo] Use : Name Field Set As : $PrdSlNo jSonTag : "PrdSlNo" [Part : eInv_ItmDet_BchDtls] Line : eInv_ItmDet_BchDtls ; repeat : eInv_ItmDet_BchDtls : BchDtls Scroll : Vertical [Line :eInv_ItmDet_BchDtls] Fields : eInv_ItmDet_BtcDet_Nm, eInv_ItmDet_BtcDet_ExpDt, eInv_ItmDet_BtcDet_WrDt JsonTag : "BchDtls" [Field :eInv_ItmDet_BtcDet_Nm] Use : Name Field Set As : $BchDtls[1].Nm jSonTag : "Nm" [Field :eInv_ItmDet_BtcDet_ExpDt] Use : Name Field Set As : If $$IsEmpty:$BchDtls[1].ExpDt Then "" Else ($$DDMMYYYYDateFormat:$BchDtls[1].ExpDt:"/") jSonTag : "ExpDt" [Field :eInv_ItmDet_BtcDet_WrDt] Use : Name Field Set As : If $$IsEmpty:$BchDtls[1].WrDt then "" Else ($$DDMMYYYYDateFormat:$BchDtls[1].WrDt:"/") jSonTag : "WrDt" [Part : eInv_ItmDet_AttribDtls] Line : eInv_ItmDet_AttribDtls Repeat : eInv_ItmDet_AttribDtls : AttribDtls Scroll : Vertical Set : 1 [Line : eInv_ItmDet_AttribDtls] Fields : eInv_ItmDet_AttDet_Nm, eInv_ItmDet_AttDet_Val JsonTag : "AttribDtls" [Field :eInv_ItmDet_AttDet_Nm] Use : Name Field Set As : $Nm jSonTag : "Nm" [Field :eInv_ItmDet_AttDet_Val] Use : Name Field Set As : $Val jSonTag : "Val" [Part : eInv_ValDtls] Line :eInv_ValDtls ; Repeat :eInv_ValDtls :ValDtls Scroll : Vertical [Line :eInv_ValDtls] Fields : eInv_ValDet_AssVal, eInv_ValDet_CgstVal, eInv_ValDet_SgstVal, eInv_ValDet_IgstVal, eInv_ValDet_CesVal, eInv_ValDet_StCesVal, eInv_ValDet_Discount, eInv_ValDet_OthChrg, eInv_ValDet_RndOffAmt, eInv_ValDet_TotInvVal, eInv_ValDet_TotInvValFc JsonTag :"ValDtls" [Field :eInv_ValDet_AssVal] Use: Number Field Set As : $ValDtls[1].AssVal jSonTag : "AssVal" [Field :eInv_ValDet_CgstVal] Use: Number Field Set As : $ValDtls[1].CgstVal jSonTag : "CgstVal" [Field :eInv_ValDet_SgstVal] Use: Number Field Set As : $ValDtls[1].SgstVal jSonTag : "SgstVal" [Field :eInv_ValDet_IgstVal] Use: Number Field Set As : $ValDtls[1].IgstVal jSonTag : "IgstVal" [Field :eInv_ValDet_CesVal] Use: Number Field Set As : $ValDtls[1].CesVal jSonTag : "CesVal" [Field :eInv_ValDet_StCesVal] Use: Number Field Set As : $ValDtls[1].StCesVal jSonTag : "StCesVal" [Field :eInv_ValDet_Discount] Use: Number Field Set As : $ValDtls[1].Discount jSonTag : "Discount" [Field :eInv_ValDet_OthChrg] Use: Number Field Set As : $ValDtls[1].OthChrg jSonTag : "OthChrg" [Field :eInv_ValDet_RndOffAmt] Use: Number Field Set As : $ValDtls[1].RndOffAmt jSonTag : "RndOffAmt" [Field :eInv_ValDet_TotInvVal] Use: Number Field Set As : $ValDtls[1].TotInvVal jSonTag : "TotInvVal" [Field :eInv_ValDet_TotInvValFc] Use: Number Field Set As : $ValDtls[1].TotInvValFc jSonTag : "TotInvValFc" [Part : eInv_PayDtls] Line :eInv_PayDtls ; Repeat :eInv_PayDtls : PayDtls Scroll :Vertical [Line :eInv_PayDtls] Fields : eInv_PayDet_Nm, eInv_PayDet_AccDet, eInv_PayDet_Mode, eInv_PayDet_FinInsBr, eInv_PayDet_PayTerm, eInv_PayDet_PayInstr, eInv_PayDet_CrTrn, eInv_PayDet_DirDr, eInv_PayDet_CrDay, eInv_PayDet_PaidAmt, eInv_PayDet_PaymtDue JsonTag :"PayDtls" [Field :eInv_PayDet_Nm] Use : Name Field Set As : $PayDtls[1].Nm jSonTag : "Nm" [Field :eInv_PayDet_AccDet] Use : Name Field Set As : $PayDtls[1].AccDet jSonTag : "AccDet" [Field :eInv_PayDet_Mode] Use : Name Field Set As : $PayDtls[1].Mode jSonTag : "Mode" [Field :eInv_PayDet_FinInsBr] Use : Name Field Set As : $PayDtls[1].FinInsBr jSonTag : "FinInsBr" [Field :eInv_PayDet_PayTerm] Use : Name Field Set As : $PayDtls[1].PayTerm jSonTag : "PayTerm" [Field :eInv_PayDet_PayInstr] Use : Name Field Set As : $PayDtls[1].PayInstr jSonTag : "PayInstr" [Field :eInv_PayDet_CrTrn] Use : Name Field Set As : $PayDtls[1].CrTrn jSonTag : "CrTrn" [Field :eInv_PayDet_DirDr] Use : Name Field Set As : $PayDtls[1].DirDr jSonTag : "DirDr" [Field :eInv_PayDet_CrDay] Use : Number Field Set As : $PayDtls[1].CrDay jSonTag : "CrDay" [Field :eInv_PayDet_PaidAmt] Use : Number Field Set As : $PayDtls[1].PaidAmt jSonTag : "PaidAmt" [Field :eInv_PayDet_PaymtDue] Use : Number Field Set As : $PayDtls[1].PaymtDue jSonTag : "PaymtDue" [Part : eInv_RefDtls] Line : eInv_RefDtls Repeat : eInv_RefDtls : RefDtls Scroll : Vertical JsonTag : "RefDtls" Vertical: Yes [Line :eInv_RefDtls] Field : eInv_RefDet_InvRm Explode : eInv_RefDet_DocPerdDtls Explode : eInv_RefDet_PrecDocDtls Explode : eInv_RefDet_ContrDtls [Field : eInv_RefDet_InvRm] Use : Name Field Set As : $InvRm jSonTag : "InvRm" [Part : eInv_RefDet_DocPerdDtls] Line : eInv_RefDet_DocPerdDtls ; Repeat : eInv_RefDet_DocPerdDtls : DocPerdDtls Scroll : Vertical [Line : eInv_RefDet_DocPerdDtls] Fields : eInv_RefDet_DocDet_InvStDt, eInv_RefDet_DocDet_InvEndDt JsonTag: "DocPerdDtls" [Field :eInv_RefDet_DocDet_InvStDt] Use : Name Field Set As : If $$IsEmpty:$DocPerdDtls[1].InvStDt then "" Else($$DDMMYYYYDateFormat:$DocPerdDtls[1].InvStDt:"/") jSonTag : "InvStDt" [Field :eInv_RefDet_DocDet_InvEndDt] Use : Name Field Set As : If $$IsEmpty:$DocPerdDtls[1].InvEndDt then "" Else($$DDMMYYYYDateFormat:$DocPerdDtls[1].InvEndDt:"/") jSonTag : "InvEndDt" [Part : eInv_RefDet_PrecDocDtls] Line : eInv_RefDet_PrecDocDtls Repeat : eInv_RefDet_PrecDocDtls : RefDtls[1].PrecDocDtls Scroll : Vertical [Line : eInv_RefDet_PrecDocDtls] Fields : eInv_RefDet_PreDet_InvNo, eInv_RefDet_PreDet_InvDt, eInv_RefDet_PreDet_OthRefNo Jsontag : "PrecDocDtls" [Field :eInv_RefDet_PreDet_InvNo] Use : Name Field Set As : $InvNo jSonTag : "InvNo" [Field :eInv_RefDet_PreDet_InvDt] Use : Name Field Set As : If $$IsEmpty:$InvDt then "" Else($$DDMMYYYYDateFormat:$InvDt:"/") jSonTag : "InvDt" [Field :eInv_RefDet_PreDet_OthRefNo] Use : Name Field Set As : $OthRefNo jSonTag : "OthRefNo" [Part : eInv_RefDet_ContrDtls] Line : eInv_RefDet_ContrDtls Repeat : eInv_RefDet_ContrDtls : RefDtls[1].ContrDtls Scroll : Vertical [Line : eInv_RefDet_ContrDtls] Fields :eInv_RefDet_ContDet_RecAdvRefr, eInv_RefDet_ContDet_RecAdvDt, eInv_RefDet_ContDet_TendRefr, eInv_RefDet_ContDet_ContrRefr, eInv_RefDet_ContDet_ExtRefr, eInv_RefDet_ContDet_ProjRefr, eInv_RefDet_ContDet_PORefr, eInv_RefDet_ContDet_PORefDt JsonTag : "ContrDtls" [Field :eInv_RefDet_ContDet_RecAdvRefr] Use : Name Field Set As : $RecAdvRefr jSonTag : "RecAdvRefr" [Field :eInv_RefDet_ContDet_RecAdvDt] Use : Name Field Set As : If $$IsEmpty:$RecAdvDt then "" Else($$DDMMYYYYDateFormat:$RecAdvDt:"/") jSonTag : "RecAdvDt" [Field :eInv_RefDet_ContDet_TendRefr] Use : Name Field Set As : $TendRefr jSonTag : "TendRefr" [Field :eInv_RefDet_ContDet_ContrRefr] Use : Name Field Set As : $ContrRefr jSonTag : "ContrRefr" [Field :eInv_RefDet_ContDet_ExtRefr] Use : Name Field Set As : $ExtRefr jSonTag : "ExtRefr" [Field :eInv_RefDet_ContDet_ProjRefr] Use : Name Field Set As : $ProjRefr jSonTag : "ProjRefr" [Field :eInv_RefDet_ContDet_PORefr] Use : Name Field Set As : $PORefr jSonTag : "PORefr" [Field :eInv_RefDet_ContDet_PORefDt] Use : Name Field Set As : If $$IsEmpty:$PORefDt then "" Else($$DDMMYYYYDateFormat:$PORefDt:"/") jSonTag : "PORefDt" [Part : eInv_AddlDocDtls] Line :eInv_AddlDocDtls Repeat :eInv_AddlDocDtls : AddlDocDtls Scroll : Vertical [Line :eInv_AddlDocDtls] Fields : eInv_AddDet_Url, eInv_AddDet_Docs, eInv_AddDet_Info JsonTag : "AddlDocDtls" [Field:eInv_AddDet_Url] Use : Name Field Set As : $url jSonTag : "Url" [Field:eInv_AddDet_Docs] Use : Name Field Set As : $Docs jSonTag : "Docs" [Field:eInv_AddDet_Info] Use : Name Field Set As : $Info jSonTag : "Info" [Part : eInv_ExpDtls] Line :eInv_ExpDtls ; Repeat :eInv_ExpDtls : ExpDtls Scroll : Vertical [Line :eInv_ExpDtls] Fields : eInv_ExpDet_ShipBNo, eInv_ExpDet_ShipBDt, eInv_ExpDet_Port, eInv_ExpDet_RefClm, eInv_ExpDet_ForCur, eInv_ExpDet_CntCode, eInv_ExpDet_ExpDuty JsonTag :"ExpDtls" [Field:eInv_ExpDet_ShipBNo] Use : Name Field Set As : $ExpDtls[1].ShipBNo jSonTag : "ShipBNo" [Field:eInv_ExpDet_ShipBDt] Use : Name Field Set As : If $$IsEmpty:$ExpDtls[1].ShipBDt then "" Else($$DDMMYYYYDateFormat:$ExpDtls[1].ShipBDt:"/") jSonTag : "ShipBDt" [Field:eInv_ExpDet_Port] Use : Name Field Set As : $ExpDtls[1].Port jSonTag : "Port" [Field:eInv_ExpDet_RefClm] Use : Name Field Set As : $ExpDtls[1].RefClm jSonTag : "RefClm" [Field:eInv_ExpDet_ForCur] Use : Name Field Set As : $ExpDtls[1].ForCur jSonTag : "ForCur" [Field:eInv_ExpDet_CntCode] Use : Name Field Set As : $ExpDtls[1].CntCode jSonTag : "CntCode" [Field:eInv_ExpDet_ExpDuty] Type : Aggregate Set By condition : NOT ExpDtls[1].ExpDuty ="Null" : $ExpDtls[1].ExpDuty jSonTag : "ExpDuty" ;Fixed : Yes ;Inactive :Yes; $$IsEmpty:$ExpDtls[1].ExpDuty ;Set as : $$SysName:Empty [Part : eInv_EwbDtls] Line : eInv_EwbDtls ; Repeat : eInv_EwbDtls : EwbDtls Scroll : Vertical [Line : eInv_EwbDtls] Fields : eInv_EwbDet_TransId, eInv_EwbDet_TransName, eInv_EwbDet_Distance, eInv_EwbDet_TransDocNo, eInv_EwbDet_TransDocDt, eInv_EwbDet_VehNo, eInv_EwbDet_VehType, eInv_EwbDet_TransMode JsonTag : "EwbDtls" [Field:eInv_EwbDet_TransId] Use : Name Field Set As : $EwbDtls[1].TransId jSonTag : "TransId" [Field:eInv_EwbDet_TransName] Use : Name Field Set As : $EwbDtls[1].TransName jSonTag : "TransName" [Field:eInv_EwbDet_Distance] Use : Number Field Set As : $EwbDtls[1].Distance jSonTag : "Distance" [Field:eInv_EwbDet_TransDocNo] Use : Name Field Set As : $EwbDtls[1].TransDocNo jSonTag : "TransDocNo" [Field:eInv_EwbDet_TransDocDt] Use : Name Field Set As : If $$IsEmpty:$EwbDtls[1].TransDocDt then "" Else ($$DDMMYYYYDateFormat:$EwbDtls[1].TransDocDt:"/") jSonTag : "TransDocDt" [Field:eInv_EwbDet_VehNo] Use : Name Field Set As : $EwbDtls[1].VehNo jSonTag : "VehNo" [Field:eInv_EwbDet_VehType] Use : Name Field Set As : $EwbDtls[1].VehType jSonTag : "VehType" [Field:eInv_EwbDet_TransMode] Use : Name Field Set As : $EwbDtls[1].TransMode jSonTag : "TransMode" File : Einv_JsonObject.tdl __________________________________________________________________ Code: [Collection : TxoLvEinvoiceObj] Data Source : File JSON: @@eInv_WriteName1.03 JSON Object : TxoLvEinvoicesObj Fetch : *.* Client Only :Yes ; Object : TxoLvEinvoicesObj ; Fetch : *.* ; Fetch : Version [Object : TxoLvEinvoicesObj] Storage : Version : String Collection : TranDtls : TranDtlsObj Collection : DocDtls : DocDtlsObj Collection : SellerDtls : SellerDtlsObj Collection : BuyerDtls : BuyerDtlsObj Collection : DispDtls : DispDtlsObj Collection : ShipDtls : ShipDtlsObj Collection : ItemList : ItemListObj Collection : ValDtls : ValDtlsObj Collection : PayDtls : PayDtlsObj Collection : RefDtls : RefDtlsObj Collection : AddlDocDtls : AddlDocDtlsObj Collection : ExpDtls : ExpDtlsObj Collection : EwbDtls : EwbDtlsObj [Object : TranDtlsObj] Storage : TaxSch : String Storage : SupTyp : String Storage : RegRev : String Storage : EcmGstin : String Storage : IgstOnIntra : String [Object :DocDtlsObj] Storage : Typ :String Storage : No :String Storage : Dt :String [Object :SellerDtlsObj] Storage :Gstin : String Storage :LglNm : String Storage :TrdNm : String Storage :Addr1 : String Storage :Addr2 : String Storage :Loc : String Storage :Pin : String Storage :Stcd : String Storage :Ph : String Storage :Em : String [Object :BuyerDtlsObj] Storage : Gstin : String Storage : LglNm : String Storage : TrdNm : String Storage : Pos : String Storage : Addr1 : String Storage : Addr2 : String Storage : Loc : String Storage : Pin : String Storage : Stcd : String Storage : Ph : String Storage : Em : String [Object :DispDtlsObj] Storage : Nm : String Storage : Addr1 : String Storage : Addr2 : String Storage : Loc : String Storage : Pin : String Storage : Stcd : String [Object :ShipDtlsObj] Storage : Gstin : String Storage : LglNm : String Storage : TrdNm : String Storage : Addr1 : String Storage : Addr2 : String Storage : Loc : String Storage : Pin : String Storage : Stcd : String [Object :ItemListObj] Storage :SlNo : String Storage :PrdDesc : String Storage :IsServc : String Storage :HsnCd : String Storage :Barcde : String Storage :Qty : String Storage :FreeQty : String Storage :Unit : String Storage :UnitPrice : String Storage :TotAmt : String Storage :Discount : String Storage :PreTaxVal : String Storage :AssAmt : String Storage :GstRt : Number Storage :IgstAmt : String Storage :CgstAmt : String Storage :SgstAmt : String Storage :CesRt : Number Storage :CesAmt : String Storage :CesNonAdvlAmt : String Storage :StateCesRt : String Storage :StateCesAmt : String Storage :StateCesNonAdvlAmt : String Storage :OthChrg : String Storage :TotItemVal : String Storage :OrdLineRef : String Storage :OrgCntry : String Storage :PrdSlNo : String Collection : BchDtls : BchDtlsObj Collection : AttribDtls : AttribDtlsObj [Object :BchDtlsObj] Storage : Nm : String Storage : ExpDt : String Storage : WrDt : String [Object :AttribDtlsObj ] Storage : Nm : String Storage : Val : String [Object :ValDtlsObj] Storage : AssVal : Amount Storage : CgstVal : Amount Storage : SgstVal : Amount Storage : IgstVal : Amount Storage : CesVal : Amount Storage : StCesVal : Amount Storage : Discount : Amount Storage : OthChrg : Amount Storage : RndOffAmt : Amount Storage : TotInvVal : Amount Storage : TotInvValFc : Amount [Object :PayDtlsObj] Storage : Nm : String Storage : AccDet : String Storage : Mode : String Storage : FinInsBr : String Storage : PayTerm : String Storage : PayInstr : String Storage : CrTrn : String Storage : DirDr : String Storage : CrDay : Number Storage : PaidAmt : Number Storage : PaymtDue : Number [Object :RefDtlsObj] Storage : InvRm : String Collection : DocPerdDtls : DocPerdDtlsObj Collection : PrecDocDtls : PrecDocDtlsObj Collection : ContrDtls : ContrDtlsObj [Object :DocPerdDtlsObj] Storage: InvStDt : String Storage: InvEndDt : String [Object : PrecDocDtlsObj] Storage : InvNo : String Storage : InvDt : String Storage : OthRefNo : String [Object :ContrDtlsObj] Storage : RecAdvRefr : String Storage : RecAdvDt : String Storage : TendRefr : String Storage : ContrRefr : String Storage : ExtRefr : String Storage : ProjRefr : String Storage : PORefr : String Storage : PORefDt : String [Object :AddlDocDtlsObj] Storage : Url : String Storage : Docs : String Storage : Info : String [Object :ExpDtlsObj] Storage : ShipBNo : String Storage : ShipBDt : String Storage : Port : String Storage : RefClm : String Storage : ForCur : String Storage : CntCode : String Storage : ExpDuty : String [Object :EwbDtlsObj] Storage : TransId : String Storage : TransName : String Storage : Distance : Number Storage : TransDocNo : String Storage : TransDocDt : String Storage : VehNo : String Storage : VehType : String Storage : TransMode : String ;--------------------------------------------------------------------------------------- [Object : TxoLvEinvoiceIRN ] Storage : status : String Storage : Data : String ; Collection : Data : eInvInrDataObj Collection : ErrorDetails : eInvErrDet Collection : InfoDtls : eInvInfoDet [Object : eInvInrDataObj] Storage : AckNo : Number Storage : AckDt : DateTime Storage : Irn : String Storage : SignedInvoice : String Storage : SignedQRCode : String Storage : Status : String Storage : EwbNo : String Storage : EwbDt : String Storage : EwbValidTill : String Storage : Remarks : String Collection : ExtractedSignedInvoiceData : ExtractedSignedInvoiceDataObj [Object : eInvErrDet] Storage : ErrorCode :String Storage : ErrorMessage :String [Object : eInvInfoDet] Storage : alertmessage :String [Object : ExtractedSignedInvoiceDataObj] Storage : AckNo : String Storage : AckDt : String Storage : Version : String Storage : Irn : String Collection : TranDtls : TranDtlsObj Collection : DocDtls : DocDtlsObj Collection : SellerDtls : SellerDtlsObj Collection : BuyerDtls : BuyerDtlsObj Collection : DispDtls : DispDtlsObj Collection : ShipDtls : ShipDtlsObj Collection : ValDtls : ValDtlsObj Collection : PayDtls : PayDtlsObj Collection : ExpDtls : ExpDtlsObj Collection : RefDtls : RefDtlsObj Collection : ItemList : ItemListObj ; Collection : AddlDocDtls : AddlDocDtlsObj ; Collection : EwbDtls : EwbDtlsObj Collection : ExtractedSignedQrCode : ExtractedSignedQrCodeObj Storage : QrCodeImage : String Storage : wtIssuer : string [Object : ExtractedSignedQrCodeObj ] Storage : SellerGstin : String Storage : BuyerGstin : String Storage : DocNo : String Storage : DocTyp : String Storage : DocDt : String Storage : TotInvVal : Amount Storage : ItemCnt : Number Storage : MainHsnCode : String Storage : Irn : String File : eInv_ListStructure.tdl __________________________________________________________________ Code: [Collection : TxoLvEinvoiceSrc] Data Source : Variable : Txo_EInvoice Fetch : Version Fetch : TranDtls.* Fetch : DocDtls.* Fetch : SellerDtls.* Fetch : BuyerDtls.* Fetch : DispDtls.* Fetch : ShipDtls.* Fetch : ItemList.* Fetch : ValDtls.* Fetch : PayDtls.* Fetch : RefDtls.* Fetch : AddlDocDtls.* Fetch : ExpDtls.* Fetch : EwbDtls.* [Collection : TxoLvEinvoice] Source Collection : TxoLvEinvoiceSrc Fetch : *.* Compute : Version : $..Version Is ODBC Table : Yes [Object : Txo_EInvoice] [Object : TranDtls ] [Object : DocDtls] [Object : SellerDtls] [Object : BuyerDtls] [Object : DispDtls] [Object : ShipDtls] [Object : ItemList] [Object : BchDtls] [Object :AttribDtls] [Object : ValDtls] [Object : PayDtls] [Object : RefDtls] [Object : DocPerdDtls] [Object : PrecDocDtls] [Object : ContrDtls] [Object : AddlDocDtls] [Object : ExpDtls] [Object : EwbDtls] [System : Variable] ; List Variable : TxoLvEinvoiceList ; [Variable : TxoLvEinvoiceList] ; Variable : InvMasterId : String List Variable : Txo_EInvoice [Variable : Txo_EInvoice] Variable : InvMasterId : String Variable : Version : String: "1.1" List Variable : TranDtls List Variable : DocDtls List Variable : SellerDtls List Variable : BuyerDtls List Variable : DispDtls List Variable : ShipDtls List Variable : ItemList List Variable : ValDtls List Variable : PayDtls List Variable : RefDtls List Variable : AddlDocDtls List Variable : ExpDtls List Variable : EwbDtls [Variable : TranDtls] Variable : TaxSch : String Variable : SupTyp : String Variable : RegRev : String Variable : EcmGstin : String Variable : IgstOnIntra : String [Variable :DocDtls] Variable : Typ : String Variable : No : String Variable : Dt : Date [Variable :SellerDtls] Variable : Gstin : String Variable : LglNm : String Variable : TrdNm : String Variable : Addr1 : String Variable : Addr2 : String Variable : Loc : String Variable : Pin : Number Variable : Stcd : String Variable : Ph : String Variable : Em : String [Variable :BuyerDtls] Variable : Gstin : String Variable : LglNm : String Variable : TrdNm : String Variable : Pos : String Variable : Addr1 : String Variable : Addr2 : String Variable : Loc : String Variable : Pin : String Variable : Stcd : String Variable : Ph : String Variable : Em : String [Variable :DispDtls] Variable : Nm : String Variable : Addr1 : String Variable : Addr2 : String Variable : Loc : String Variable : Pin : Number Variable : Stcd : String [Variable :ShipDtls] Variable : Gstin : String Variable : LglNm : String Variable : TrdNm : String Variable : Addr1 : String Variable : Addr2 : String Variable : Loc : String Variable : Pin : Number Variable : Stcd : String [Variable :ItemList] Variable : SlNo : String Variable : PrdDesc : String Variable : IsServc : String Variable : HsnCd : String Variable : Barcde : String Variable : Qty : Number Variable : FreeQty : Number Variable : Unit : String Variable : UnitPrice : Number Variable : TotAmt : Number Variable : Discount : Number Variable : PreTaxVal : Number Variable : AssAmt : Number Variable : GstRt : Number Variable : IgstAmt : Number Variable : CgstAmt : Number Variable : SgstAmt : Number Variable : CesRt : Number Variable : CesAmt : Number Variable : CesNonAdvlAmt : Number Variable : StateCesRt : Number Variable : StateCesAmt : Number Variable : StateCesNonAdvlAmt: Number Variable : OthChrg : Number Variable : TotItemVal : Number Variable : OrdLineRef : String Variable : OrgCntry : String Variable : PrdSlNo : String List Variable : BchDtls List Variable : AttribDtls [Variable :BchDtls ] Variable : Nm : String Variable : ExpDt : Date Variable : WrDt : Date [Variable :AttribDtls ] Variable : Nm : String Variable : Val : String [Variable :ValDtls] Variable : AssVal : Number Variable : CgstVal : Number Variable : SgstVal : Number Variable : IgstVal : Number Variable : CesVal : Number Variable : StCesVal : Number Variable : Discount : Number Variable : OthChrg : Number Variable : RndOffAmt : Number Variable : TotInvVal : Number Variable : TotInvValFc : Number [Variable :PayDtls] Variable : Nm : String Variable : AccDet : String Variable : Mode : String Variable : FinInsBr : String Variable : PayTerm : String Variable : PayInstr : String Variable : CrTrn : String Variable : DirDr : String Variable : CrDay : Number Variable : PaidAmt : Number Variable : PaymtDue : Number [Variable :RefDtls] Variable : InvRm : String List Var : DocPerdDtls List Var : PrecDocDtls List Var : ContrDtls [Variable :DocPerdDtls] Variable : InvStDt : Date Variable : InvEndDt : Date [Variable : PrecDocDtls] Variable : InvNo : String Variable : InvDt : Date Variable : OthRefNo : String [Variable :ContrDtls] Variable : RecAdvRefr : String Variable : RecAdvDt : Date Variable : TendRefr : String Variable : ContrRefr : String Variable : ExtRefr : String Variable : ProjRefr : String Variable : PORefr : String Variable : PORefDt : Date [Variable :AddlDocDtls] Variable : Url : String Variable : Docs : String Variable : Info : String [Variable :ExpDtls] Variable : ShipBNo : String Variable : ShipBDt : Date Variable : Port : String Variable : RefClm : String Variable : ForCur : String Variable : CntCode : String Variable : ExpDuty : String [Variable :EwbDtls] Variable : TransId : String Variable : TransName : String Variable : Distance : String Variable : TransDocNo : String Variable : TransDocDt : Date Variable : VehNo : String Variable : VehType : String Variable : TransMode : String File : eInv_Settings.tdl __________________________________________________________________ Code: [#Part : CMP TallyShopFeaturesTitle] Add : Line : After : CMP TallyShopFeaturesTitle : AES Enable EInvoice [Line : AES Enable EInvoice] Field : Long Prompt, AES EnableEInvoice Local : Field : Long Prompt : Info : $$LocaleString:"Enable E-Invoicing?" Local : Field : Long Prompt : Width : 50 [Field : AES Enable E Invoice] Use : Logical Field Storage : Udf_EInvoice_IsEnabled [System : UDF] Udf_EInvoice_IsEnabled : Logical : 1200 [System : Formula] EInvoicingEnabled : $Udf_EInvoice_IsEnabled:Company:##SVCurrentCompany File : eInv_JsonWrite.tdl __________________________________________________________________ This contains List Structure and also the code to write json file Code: [Function: Txo_EInv_WriteToList] Parameter : pVchrMSTId : Number : $MasterID Variable : vGSTeWayBillValidationErr : String : "" Variable : ORIGVchNum : String Variable : VARVchDate : Date Variable : VoucherID : String Variable : vIsGSTeWayDtlsExported : Logical : No Variable : vIsPurchaseFromURD : Logical : No Variable : vEwayBillDate : Date Variable : vEwayPartyName : String Variable : vVchAmt : Amount Variable : vFirstGSTTransNature : String : "" Variable : vEInvMstIdx : Number List Var : lvGSTAnalysisDetails Object : Voucher : $$Sprintf:"ID:%s":##pVchrMSTId 00 : Do If : NOT ##ICFGEditeWayBill OR $GSTVchTransTypeCode NOT IN (2,3) OR ($$IsEmptyCollection:EWayBillDetails) : Return 10 : Set : VoucherID : $$Sprintf:"ID:%s":##pVchrMSTId 15 : List Delete : lvGSTAnalysisDetails 20 : Call : LoadGSTInvDtlsLV 25 : Call : UpdGSTeWayVchDtlsVar ; 30 : Do If : NOT ##IsVchWGSTeWayItmExcep : Set : vGSTeWayBillValidationErr : $$GSTVchEWayBillValidationErr ; 35 : Do If : (##IsVchWGSTeWayItmExcep OR NOT $$IsEmpty:##vGSTeWayBillValidationErr) : Return 40 : Set : ORIGVchNum : $VoucherNumber 45 : Set : VARVchDate : $Date 50 : Set : vEwayBillDate : If $$IsEmpty:$GSTeWayBillDate Then $Date Else $GSTeWayBillDate 55 : Set : vEwayPartyName: @@GSTPartyLedgerNameRecon 60 : Set : vVchAmt : $Amount 70 : Set : IsGSTeWayVchLevelExp : Yes ;; Export to json/excel for the proper data ; 80 : Alter : GSTeWayBillUpdateNoDt 90 : Call : Txo_WriteListDetails:##VoucherID /* [#Collection: GSTeWayBillPrintSummary] Add : Compute : GSTInvoice_GSTAssesableQty : $GSTInvoice_GSTAssesableQty Add : Compute : GSTInvoice_ItemHSNCode : $GSTInvoice_ItemHSNCode Add : Compute : GSTInvoice_CessValGSTClsTaxAmt : $GSTInvoice_CessValGSTClsTaxAmt Add : Compute : GSTInvoice_CessQtyGSTClsTaxAmt : $GSTInvoice_CessQtyGSTClsTaxAmt Add : Compute : GSTVchOthersAmount : $GSTVchOthersAmount Add : Compute : GSTInvoice_ItemLedRate : $GSTInvoice_ItemLedRate Add : Compute : GSTInvoice_GSTAssesableQty : $GSTInvoice_GSTAssesableQty Is ODBC Table : Yes */ [Function : Txo_WriteListDetails] Parameter : pVoucherID : String Object : Voucher : ##pVoucherID Variable : IdxTranDtls : Number Variable : IdxDocDtls : Number Variable : IdxSellerDtls : Number Variable : IdxBuyerDtls : Number Variable : IdxDispDtls : Number Variable : IdxShipDtls : Number Variable : IdxItemList : Number Variable : IdxValDtls : Number Variable : IdxPayDtls : Number Variable : IdxRefDtls : Number Variable : IdxAddlDocDtls : Number Variable : IdxExpDtls : Number Variable : IdxEwbDtls : Number Variable : vItemListSrNo : Number Variable : vEInvItemKey : String Variable : idxBchDtls : Number Variable : idxAttribDtls : Number Variable : idxDocPerdDtls : Number Variable : idxPrecDocDtls : Number Variable : idxContrDtls : Number 01 : List Delete Ex :Txo_EInvoice 10 : Do If : NOT( $$ListFind:Txo_EInvoice:##pVchrMSTId ): List Add:Txo_EInvoice:##pVchrMSTId 20 : Set : vEInvMstIdx : $$ListIndex:Txo_EInvoice:##pVchrMSTId 30 : Set : Txo_EInvoice[##vEInvMstIdx].InvMasterId :##pVchrMSTId 40 : Set : Txo_EInvoice[##vEInvMstIdx].Version : "1.1" 50 : List Add : Txo_EInvoice[##vEInvMstIdx].TranDtls :##pVchrMSTId 60 : Set : IdxTranDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].TranDtls:##pVchrMSTId 80 : Set : Txo_EInvoice[##vEInvMstIdx].TranDtls[##IdxTranDtls].TaxSch : "GST" 90 : Set : Txo_EInvoice[##vEInvMstIdx].TranDtls[##IdxTranDtls].SupTyp : "B2B" 100 : Set : Txo_EInvoice[##vEInvMstIdx].TranDtls[##IdxTranDtls].RegRev : "Y" 110 : Set : Txo_EInvoice[##vEInvMstIdx].TranDtls[##IdxTranDtls].EcmGstin : "Null" 120 : Set : Txo_EInvoice[##vEInvMstIdx].TranDtls[##IdxTranDtls].IgstOnIntra : "N" 130 : List Add : Txo_EInvoice[##vEInvMstIdx].DocDtls :##pVchrMSTId 140 : Set : IdxDocDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].DocDtls:##pVchrMSTId 150 : Set : Txo_EInvoice[##vEInvMstIdx].DocDtls[##IdxDocDtls].Typ : If $$IsSales:$VoucherTypeName then "INV" else If $$IsDebitNote:$VoucherTypeName then "DBN" Else If $$IsCreditNoteNote:$VoucherTypeName Then "CDN" Else "" 160 : Set : Txo_EInvoice[##vEInvMstIdx].DocDtls[##IdxDocDtls].No : $VoucherNumber 170 : Set : Txo_EInvoice[##vEInvMstIdx].DocDtls[##IdxDocDtls].Dt : $Date 180 : List Add : Txo_EInvoice[##vEInvMstIdx].SellerDtls :##pVchrMSTId 190 : Set : IdxSellerDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].SellerDtls:##pVchrMSTId 191 : Log: "Hi" 195 : Walk : EwayBillDetails 200 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Gstin : $ConsignorGSTIN 210 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].LglNm : $ConsignorName 220 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].TrdNm : $ConsignorName 230 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Addr1 : $ConsignorAddress[1].ConsignorAddress 240 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Addr2 : $ConsignorAddress[2].ConsignorAddress 250 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Loc : $ConsignorPlace 260 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Pin : $ConsignorPincode 270 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Stcd : $$GetGSTStateCode:$ConsignorStateName 280 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Ph : @@EInvSellerPh;$(Ledger, $ConsignorName).LedgerPhone 290 : Set : Txo_EInvoice[##vEInvMstIdx].SellerDtls[##IdxSellerDtls].Em : @@EInvSellerEmail;$(Ledger, $ConsignorName).Email 300 : List Add : Txo_EInvoice[##vEInvMstIdx].BuyerDtls :##pVchrMSTId 310 : Set : IdxBuyerDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].BuyerDtls:##pVchrMSTId 320 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Gstin : $ConsigneeGSTIN 330 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].LglNm : $ConsigneeName 340 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].TrdNm : $ConsigneeName 350 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Pos : $ConsigneeStateName 360 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Addr1 : $ConsigneeAddress[1].ConsigneeAddress 370 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Addr2 : $ConsigneeAddress[2].ConsigneeAddress 380 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Loc : $ConsigneePlace 390 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Pin : $ConsigneePincode 400 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Stcd : $$GetGSTStateCode:$ConsigneeStateName 410 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Ph : $(Ledger, $ConsigneeName).LedgerPhone 420 : Set : Txo_EInvoice[##vEInvMstIdx].BuyerDtls[##IdxBuyerDtls].Em : $(Ledger, $ConsigneeName).Email 425 : End Walk 430 : List Add : Txo_EInvoice[##vEInvMstIdx].DispDtls :##pVchrMSTId 440 : Set : IdxDispDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].DispDtls:##pVchrMSTId 450 : Set : Txo_EInvoice[##vEInvMstIdx].DispDtls[##IdxDispDtls].Nm : $PartyName 460 : Set : Txo_EInvoice[##vEInvMstIdx].DispDtls[##IdxDispDtls].Addr1 : $Address[1].Address 470 : Set : Txo_EInvoice[##vEInvMstIdx].DispDtls[##IdxDispDtls].Addr2 : $Address[2].Address 480 : Set : Txo_EInvoice[##vEInvMstIdx].DispDtls[##IdxDispDtls].Loc : $PartyLocation 490 : Set : Txo_EInvoice[##vEInvMstIdx].DispDtls[##IdxDispDtls].Pin : "" 500 : Set : Txo_EInvoice[##vEInvMstIdx].DispDtls[##IdxDispDtls].Stcd : "" 510 : List Add : Txo_EInvoice[##vEInvMstIdx].ShipDtls :##pVchrMSTId 520 : Set : IdxShipDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].ShipDtls:##pVchrMSTId 530 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].Gstin : "" 540 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].LglNm : "" 550 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].TrdNm : "" 560 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].Addr1 : "" 570 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].Addr2 : "" 580 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].Loc : "" 590 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].Pin : "" 600 : Set : Txo_EInvoice[##vEInvMstIdx].ShipDtls[##IdxShipDtls].Stcd : "" 605 : Set : vItemListSrNo : 1 610 : Walk Collection : GSTeWayBillPrintSummary 611 : Set : vEInvItemKey : ($$String:##pVchrMSTId+"#"+$$String:$GSTInvoice_StockItemName) 615 : List Add : Txo_EInvoice[##vEInvMstIdx].ItemList:##vEInvItemKey 620 : Set : IdxItemList : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].ItemList:##vEInvItemKey 626 : Log:$GSTInvoice_StockItemName + "Dev --" + ($$String:##vItemListSrNo) +" --"+($$String:##pVchrMSTId)+"#"+($$String:##vItemListSrNo) 627 : Log:##IdxItemList 630 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].SlNo : $$String:##vItemListSrNo 640 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].PrdDesc :$GSTInvoice_StockItemName 650 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].IsServc :if $(StockItem, $STInvoice_StockItemName).Gsttypeofsupply = "Service" Then "Y" Else "N" 660 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].HsnCd :$GSTInvoice_ItemHSNCode 670 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].Barcde :"" 675 : Log : $$String:$GSTInvoice_GSTAssesableQty 680 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].Qty :$GSTInvoice_GSTAssesableQty ;$$Number:$ActualQty 690 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].FreeQty :"";$$Number:($$NettQty:$ActualQty:$BilledQty) 700 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].Unit :$GSTInvoice_GSTStockItemUOM ;$(StockItem, $StockItemName).BaseUnit 710 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].UnitPrice :$$Number:@@GSTeWayBillTaxRate;$$Number:$Rate 720 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].TotAmt :$$Number:@@GSTeWayBillDocValue;$Amount+$Discount 730 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].Discount :"";$Discount 740 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].PreTaxVal :"";$AssessableValue 750 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].AssAmt :$$Number:$GSTInvoice_GSTAssesableValue;;9978.84 760 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].GstRt :$$Number:$GSTInvoice_CGSTClsfnRate+$GSTInvoice_SGSTClsfnRate+$GSTInvoice_IGSTClsfnRate;$IgstRate 770 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].CgstAmt :$$Number:$GSTInvoice_CGSTClsTaxAmt 780 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].SgstAmt :$$Number:$GSTInvoice_SGSTClsTaxAmt 790 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].IgstAmt :$$Number:$GSTInvoice_IGSTClsTaxAmt 800 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].CesRt :$$Number:$GSTInvoice_CessGSTClsfnRate 810 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].CesAmt :$$Number:$GSTInvoice_CessValGSTClsTaxAmt 820 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].CesNonAdvlAmt : "" 830 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].StateCesRt :$$Number:$GSTItemTaxStateCessRate 840 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].StateCesAmt :$$Number:$GSTItemTaxStateCessAmt 850 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].StateCesNonAdvlAmt : "" 860 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].OthChrg :$$Number:@@GSTeWayBillOthersAmtVal 870 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].TotItemVal :$$Number:@@GSTeWayBillDocValue 880 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].OrdLineRef : "" 890 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].OrgCntry : "" 900 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].PrdSlNo : "" 910 : List Add : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].BchDtls : ($$String:##pVchrMSTId)+"#"+($$String:##vItemListSrNo) 920 : Set : IdxBchDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].BchDtls:($$String:##pVchrMSTId)+"#"+($$String:##vItemListSrNo) 930 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].BchDtls[##IdxBchDtls].Nm : "" 940 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].BchDtls[##IdxBchDtls].ExpDt : "" 950 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].BchDtls[##IdxBchDtls].WrDt : "" 960 : List Add : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].AttribDtls : ($$String:##pVchrMSTId)+"#"+($$String:##vItemListSrNo) 970 : Set : IdxAttribDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].AttribDtls:($$String:##pVchrMSTId)+"#"+($$String:##vItemListSrNo) 980 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].AttribDtls[##IdxAttribDtls].Nm : "" 990 : Set : Txo_EInvoice[##vEInvMstIdx].ItemList[##IdxItemList].AttribDtls[##IdxAttribDtls].Val : "" 996 : Increment : vItemListSrNo 998 : End Walk 1000 : List Add : Txo_EInvoice[##vEInvMstIdx].ValDtls :##pVchrMSTId 1010 : Set : IdxValDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].ValDtls:##pVchrMSTId 1020 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].AssVal : @@GSTeWayBillTotAssessable 1030 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].CgstVal : @@GSTeWayBillTotCGSTAmt 1040 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].SgstVal : @@GSTeWayBillTotSGSTAmt 1050 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].IgstVal : @@GSTeWayBillTotIGSTAmt 1060 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].CesVal : @@GSTeWayBillTotCessValAmt 1070 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].StCesVal : "" 1080 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].Discount : "" 1090 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].OthChrg : @@GSTeWayBillTotOthersAmount 1100 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].RndOffAmt : @@GSTeWayBillTotOthersAmount 1110 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].TotInvVal : @@GSTeWayBillTotDocumentValue 1120 : Set : Txo_EInvoice[##vEInvMstIdx].ValDtls[##IdxValDtls].TotInvValFc : "" 1130 : List Add : Txo_EInvoice[##vEInvMstIdx].PayDtls :##pVchrMSTId 1140 : Set : IdxPayDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].PayDtls:##pVchrMSTId 1150 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].Nm : "" 1160 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].AccDet : "" 1170 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].Mode : "" 1180 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].FinInsBr : "" 1190 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].PayTerm : "" 1200 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].PayInstr : "" 1210 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].CrTrn : "" 1220 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].DirDr : "" 1230 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].CrDay : "" 1240 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].PaidAmt : "" 1250 : Set : Txo_EInvoice[##vEInvMstIdx].PayDtls[##IdxPayDtls].PaymtDue : "" 1300 : List Add : Txo_EInvoice[##vEInvMstIdx].RefDtls:##pVchrMSTId 1310 : Set : IdxRefDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].RefDtls:##pVchrMSTId 1320 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].InvRm : "TEST" 1330 : List Add : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].DocPerdDtls :##pVchrMSTId 1340 : Set : IdxTranDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].DocPerdDtls:##pVchrMSTId 1350 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].DocPerdDtls[##IdxDocPerdDtls].InvStDt : $Date 1360 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].DocPerdDtls[##IdxDocPerdDtls].InvEndDt : $Date + 30 1370 : List Add : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].PrecDocDtls :##pVchrMSTId 1380 : Set : IdxPrecDocDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].PrecDocDtls:##pVchrMSTId 1390 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].PrecDocDtls[##IdxPrecDocDtls].InvNo : $VoucherNumber 1400 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].PrecDocDtls[##IdxPrecDocDtls].InvDt : $Date 1410 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].PrecDocDtls[##IdxPrecDocDtls].OthRefNo : "" 1420 : List Add : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls :##pVchrMSTId 1430 : Set : IdxContrDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls:##pVchrMSTId 1440 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].RecAdvRefr : "" 1450 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].RecAdvDt : "" 1460 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].TendRefr : "" 1470 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].ContrRefr : "" 1480 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].ExtRefr : "" 1490 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].ProjRefr : "" 1500 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].PORefr : "" 1510 : Set : Txo_EInvoice[##vEInvMstIdx].RefDtls[##IdxRefDtls].ContrDtls[##IdxContrDtls].PORefDt : "" 1520 : List Add : Txo_EInvoice[##vEInvMstIdx].AddlDocDtls :##pVchrMSTId 1530 : Set : IdxAddlDocDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].AddlDocDtls:##pVchrMSTId 1540 : Set : Txo_EInvoice[##vEInvMstIdx].AddlDocDtls[##idxAddlDocDtls].Url : "https://einv-apisandbox.nic.in" 1550 : Set : Txo_EInvoice[##vEInvMstIdx].AddlDocDtls[##idxAddlDocDtls].Docs : "Test Doc" 1560 : Set : Txo_EInvoice[##vEInvMstIdx].AddlDocDtls[##idxAddlDocDtls].Info : "Document Test" 1570 : List Add : Txo_EInvoice[##vEInvMstIdx].ExpDtls :##pVchrMSTId 1580 : Set : IdxExpDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].ExpDtls:##pVchrMSTId 1590 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].ShipBNo : "" 1600 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].ShipBDt : "" 1610 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].Port : "" 1620 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].RefClm : "" 1630 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].ForCur : "" 1640 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].CntCode : "" 1650 : Set : Txo_EInvoice[##vEInvMstIdx].ExpDtls[##IdxExpDtls].ExpDuty : "" 1660 : List Add : Txo_EInvoice[##vEInvMstIdx].EwbDtls :##pVchrMSTId 1670 : Set : IdxEwbDtls : $$ListIndex:Txo_EInvoice[##vEInvMstIdx].EwbDtls:##pVchrMSTId 1680 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].TransId : @@GSTeWayMVchTransID 1690 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].TransName : @@GSTeWayMVchTransName 1700 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].Distance : @@GSTeWayMVchDistance 1710 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].TransDocNo : @@GSTeWayMVchTransDocNo 1720 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].TransDocDt : @@GSTeWayMVchTransDate 1730 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].VehNo : @@GSTeWayMVchVehicleNo 1740 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].VehType : @@GSTeWayMVchVehicleType 1750 : Set : Txo_EInvoice[##vEInvMstIdx].EwbDtls[##idxEwbDtls].TransMode : @@GSTeWayMVchTransMode ; 100 : Do If : ##vIsGSTeWayDtlsExported : Alter : GSTeWayBillUpdateNoDt [System : Formulae] GSTeWayBillTotDocumentValue : $$CollAmtTotal:GSTeWayBillPrintSummary:$GSTeWayDocumentValue GSTeWayBillTotOthersAmount : $$CollAmtTotal:GSTeWayBillPrintSummary:$GSTVchOthersAmount [System : Formula] EInvSellerPh : $(Company, ##svCurrentCompany).PhoneNumber EInvSellerEmail : $(Company, ##svCurrentCompany).Email [Function : TxoWriteToJson] ;05 : Log : OPening file Fetch Object : Voucher : ##CurrentVCHID ; eInv_Json1.03 ; 001: Set: SVExportFormat : $$SysName:JSON ; 002: Set: SVExportLanguage : $$SysName:JSON ; 003: Set: SVPrintFileName : "D:\TDL\Development\E-Invoice\Export.json" ; 004: Export:eInv_Json1.03 : Yes:Yes ; 005: Log: "Hi Dev" ;; 006: Return 000010 : OPEN FILE : @@eInv_WriteName1.03 : Text : Write : ASCII 000011 : Truncate File :@@eInv_WriteName1.03 000015 : Write File Line : "{" 000020 : Walk Collection : TxoLvEinvoiceSrc 000025 : Write File Line : ' "' + "Version" + '"' + ': "' + $Version + '",' 000030 : Walk :TranDtls 000040 : Write File Line : ' "' + "TranDtls" + '"' + ': {' 000050 : Write File Line : ' "' + "TaxSch" + '"' + ': "' + $TaxSch + '",' 000060 : Write File Line : ' "' + "SupTyp" + '"' + ': "' + $SupTyp + '",' 000070 : Write File Line : ' "' + "RegRev" + '"' + ': "' + $RegRev + '",' 000080 : Write File Line : ' "' + "EcmGstin" + '"' + ': ' + $EcmGstin + ',' 000090 : Write File Line : ' "' + "IgstOnIntra" + '"' + ': "' + $IgstOnIntra + '"' 000100 : Write File Line : ' },' 000105 : End Walk 000110 : Walk :DocDtls 000120 : Write File Line : ' "' + "DocDtls" + '"' + ': {' 000130 : Write File Line : ' "' + "Typ" + '"' + ': "' + $Typ + '",' ;VoucherType 000140 : Write File Line : ' "' + "No" + '"' + ': "' + $No + '",' ;VoucherNumber 000150 : Write File Line : ' "' + "Dt" + '"' + ': "' + ($$DDMMYYYYDateFormat:$Dt:"/") + '" ' 000160 : Write File Line : ' },' 000170 : End Walk 000180 : Walk :SellerDtls 000185 : Write File Line : ' "' + "SellerDtls" + '"' + ': {' 000190 : Write File Line : ' "' + "GSTIN" + '"' + ': "' + $GSTIN + '",' ;GST Number 000195 : Write File Line : ' "' + "LglNm" + '"' + ': "' + $LglNm + '",' ;Legal Name 000200 : Write File Line : ' "' + "TrdNm" + '"' + ': "' + $TrdNm + '",' ;Trd Name 000205 : Write File Line : ' "' + "Addr1" + '"' + ': "' + $Addr1 + '",' ;Address Line 1 000210 : Write File Line : ' "' + "Addr2" + '"' + ': "' + $Addr2 + '",' ;Address Line 2 000215 : Write File Line : ' "' + "Loc" + '"' + ': "' + $Loc + '",' ;Location 000220 : Write File Line : ' "' + "Pin" + '"' + ': ' + (If $$Isempty:$Pin then "0" Else $$RemoveBrackets:($$string:($Pin:'no comma') )) +',' ;Rate 000225 : Write File Line : ' "' + "Stcd" + '"' + ': "' + $Stcd + '",' ;Stcd 000230 : Write File Line : ' "' + "Ph" + '"' + ': "' + $Ph + '",' ;Phone Number 000235 : Write File Line : ' "' + "Em" + '"' + ': "' + $Em + '" ' ;Email ID 000240 : Write File Line : ' },' 000250 : End Walk 000340 : Walk :BuyerDtls 000345 : Write File Line : ' "' + "BuyerDtls" + '"' + ': {' 000350 : Write File Line : ' "' + "Gstin" + '"' + ': "' + $Gstin + '",' ;GST Number 000355 : Write File Line : ' "' + "LglNm" + '"' + ': "' + $LglNm + '",' ;Legal Name 000360 : Write File Line : ' "' + "TrdNm" + '"' + ': "' + $TrdNm + '",' ;Trd Name 000365 : Write File Line : ' "' + "Pos" + '"' + ': "' + $Pos + '",' ;Pos 000370 : Write File Line : ' "' + "Addr1" + '"' + ': "' + $Addr1 + '",' ;Address Line 1 000375 : Write File Line : ' "' + "Addr2" + '"' + ': "' + $Addr2 + '",' ;Address Line 2 000380 : Write File Line : ' "' + "Loc" + '"' + ': "' + $Loc + '",' ;Location 000385 : Write File Line : ' "' + "Pin" + '"' + ': ' + (If $$Isempty:$Pin then "0" Else $$RemoveBrackets:($$string:($Pin:'no comma') )) +',' ;Rate 000390 : Write File Line : ' "' + "Stcd" + '"' + ': "' + $Stcd + '",' ;GST Number 000395 : Write File Line : ' "' + "Ph" + '"' + ': "' + $Ph + '",' ;GST Number 000400 : Write File Line : ' "' + "Em" + '"' + ': "' + $Em + '" ' ;GST Number 000405 : Write File Line : ' }, ' 000410 : End Walk 000415 : Walk :DispDtls 000420 : Write File Line : ' "' + "DispDtls" + '"' + ': {' 000425 : Write File Line : ' "' + "Nm" + '"' + ': "'+ $Nm + '",' ;Name 000430 : Write File Line : ' "' + "Addr1" + '"' + ': "'+ $Addr1 + '",' ;Address Line 1 000440 : Write File Line : ' "' + "Addr2" + '"' + ': "'+ $Addr2 + '",' ;Address Line 2 000450 : Write File Line : ' "' + "loc" + '"' + ': "'+ $loc + '",' ;Location 000460 : Write File Line : ' "' + "Pin" + '"' + ': '+ (If $$Isempty:$Pin then "0" Else $$RemoveBrackets:($$string:($Pin:'no comma') )) +',' ;Rate 000470 : Write File Line : ' "' + "Stcd" + '"' + ': "'+ $Stcd + '"' ;Stcd 000480 : Write File Line : ' }, ' 000485 : End Walk 000490 : Walk :ShipDtls 000495 : Write File Line : ' "' + "ShipDtls" + '"' + ': {' 000500 : Write File Line : ' "' + "Gstin" + '"' + ': "'+ $Gstin + '",' ;GST Number 000510 : Write File Line : ' "' + "LglNm" + '"' + ': "'+ $LglNm + '",' ; 000520 : Write File Line : ' "' + "TrdNm" + '"' + ': "'+ $TrdNm + '",' ; 000530 : Write File Line : ' "' + "Addr1" + '"' + ': "'+ $Addr1 + '",' ;Address Line 1 000540 : Write File Line : ' "' + "Addr2" + '"' + ': "'+ $Addr2 + '",' ;Address Line 2 000550 : Write File Line : ' "' + "loc" + '"' + ': "'+ $loc + '",' ;Location 000560 : Write File Line : ' "' + "Pin" + '"' + ': '+ (If $$Isempty:$Pin then "0" Else $$RemoveBrackets:($$string:($Pin:'no comma') )) +',' ;Rate 000570 : Write File Line : ' "' + "Stcd" + '"' + ': "'+ $Stcd + '"' ;Stcd 000575 : Write File Line : ' },' 000580 : End Walk 000585 : Walk :ItemList 000590 : Write File Line : ' "' + "Item List" + '"' + ': [' 000610 : Write File Line : ' {' 000620 : Write File Line : ' "' + "SlNo" + '"' + ': "'+$SlNo + '",' ;Item Name 000630 : Write File Line : ' "' + "PrdDesc" + '"' + ': "'+$PrdDesc + '",' ;Item Desc 000640 : Write File Line : ' "' + "IsServc" + '"' + ': "'+$IsServc + '",' ;IsServiceItem 000650 : Write File Line : ' "' + "HsnCd" + '"' + ': "'+$HsnCd + '",' ;HSN Code 000660 : Write File Line : ' "' + "Barcde" + '"' + ': "'+$Barcde + '",' ;Bar Code 000670 : Write File Line : ' "' + "Qty" + '"' + ': '+ (If $$Isempty:$Qty Then "0" Else $$RemoveBrackets:($$string:($Qty:'no comma') )) +',' ;Rate 000680 : Write File Line : ' "' + "FreeQty" + '"' + ': '+ (If $$Isempty:$FreeQty Then "0" Else $$RemoveBrackets:($$string:($FreeQty:'no comma') )) +',' ;Rate 000690 : Write File Line : ' "' + "Unit" + '"' + ': "'+$Unit + '",' ;Unit 000700 : Write File Line : ' "' + "UnitPrice" + '"' + ': '+ (If $$Isempty:$UniPrice Then "0" Else $$RemoveBrackets:($$string:($UniPrice:'no comma') )) +',' ;Rate 000710 : Write File Line : ' "' + "TotAmt" + '"' + ': '+ (If $$Isempty:$TotAmt Then "0" Else $$RemoveBrackets:($$string:($TotAmt:'no comma') )) +',' 000720 : Write File Line : ' "' + "Discount" + '"' + ': '+ (If $$Isempty:$Discount Then "0" Else $$RemoveBrackets:($$string:($Discount:'no comma') )) +',' 000730 : Write File Line : ' "' + "PreTaxVal" + '"' + ': '+ (If $$Isempty:$PreTaxVal Then "0" Else $$RemoveBrackets:($$string:($PreTaxVal:'no comma') )) +',' 000740 : Write File Line : ' "' + "AssAmt" + '"' + ': '+ (If $$Isempty:$AssAmt Then "0" Else $$RemoveBrackets:($$string:($AssAmt:'no comma') )) +',' 000750 : Write File Line : ' "' + "GSTRt" + '"' + ': '+ (If $$Isempty:$GSTRt Then "0" Else $$RemoveBrackets:($$string:($GSTRt:'no comma') )) +',' 000760 : Write File Line : ' "' + "IGSTAmt" + '"' + ': '+ (If $$Isempty:$IGSTAmt Then "0" Else $$RemoveBrackets:($$string:($IGSTAmt:'no comma') )) +',' 000770 : Write File Line : ' "' + "CGSTAmt" + '"' + ': '+ (If $$Isempty:$CGSTAmt Then "0" Else $$RemoveBrackets:($$string:($CGSTAmt:'no comma') )) +',' 000780 : Write File Line : ' "' + "SGSTAmt" + '"' + ': '+ (If $$Isempty:$SGSTAmt Then "0" Else $$RemoveBrackets:($$string:($SGSTAmt:'no comma') )) +',' 000790 : Write File Line : ' "' + "CesRt" + '"' + ': '+ (If $$Isempty:$CesRt Then "0" Else $$RemoveBrackets:($$string:($CesRt:'no comma') )) +',' 000800 : Write File Line : ' "' + "CesAmt" + '"' + ': '+ (If $$Isempty:$CesAmt Then "0" Else $$RemoveBrackets:($$string:($CesAmt:'no comma') )) +',' 000810 : Write File Line : ' "' + "CesNonAdvlAmt" + '"' + ': '+ (If $$Isempty:$CesNonAdvlAmt Then "0" Else $$RemoveBrackets:($$string:($CesNonAdvlAmt:'no comma') )) +',' 000820 : Write File Line : ' "' + "StateCesRt" + '"' + ': '+ (If $$Isempty:$StateCesRt Then "0" Else $$RemoveBrackets:($$string:($StateCesRt:'no comma') )) +',' 000830 : Write File Line : ' "' + "StateCesAmt" + '"' + ': '+ (If $$Isempty:$StateCesAmt Then "0" Else $$RemoveBrackets:($$string:($StateCesAmt:'no comma') )) +',' 000840 : Write File Line : ' "' + "StateCesNonAdv1Amt" + '"' + ': '+ (If $$Isempty:$StateCesNonAdv1Amt Then "0" Else $$RemoveBrackets:($$string:($StateCesNonAdv1Amt:'no comma') )) +',' 000850 : Write File Line : ' "' + "OthChrg" + '"' + ': '+ (If $$Isempty:$OthChrg Then "0" Else $$RemoveBrackets:($$string:($OthChrg:'no comma') )) +',' 000860 : Write File Line : ' "' + "TotItemVal" + '"' + ': '+ (If $$Isempty:$TotItemVal Then "0" Else $$RemoveBrackets:($$string:($TotItemVal:'no comma') )) +',' 000870 : Write File Line : ' "' + "OrdLineRef" + '"' + ': "'+$OrdLineRef + '",' 000880 : Write File Line : ' "' + "OrgCntry" + '"' + ': "'+$OrgCntry + '",' 000885 : Write File Line : ' "' + "PrdSlNo" + '"' + ': "'+$PrdSlNo + '", ' 000890 : Walk Collection : BchDtls 000900 : Write File Line : ' "' + "BchDtls" + '"' + ': {' 000930 : Write File Line : ' "' + "Nm" + '"' + ': "'+$Nm + '",' 000940 : Write File Line : ' "' + "ExpDt" + '"' + ': "'+ ($$DDMMYYYYDateFormat:$ExpDt:"/") + '",' 000950 : Write File Line : ' "' + "WrDt" + '"' + ': "'+ ($$DDMMYYYYDateFormat:$WrDt:"/") + '"' 000960 : Write File Line : ' },' 000965 : End Walk 000990 : Walk Collection : AttribDtls 000995 : Write File Line : ' "' + "AttribDtls" + '"' + ': [' 001000 : Write File Line : ' {' 001010 : Write File Line : ' "' + "Nm" + '"' + ': "'+$Nm + '",' 001020 : Write File Line : ' "' + "Val" + '"' + ': "'+$Val + '"' 001030 : Write File Line : ' }' 001040 : Write File Line : ' ]' 001050 : Write File Line : ' }' 001060 : Write File Line : ' ], ' 001065 : End Walk 001070 : End Walk 001075 : Walk :ValDtls 001080 : Write File Line : ' "' + "ValDtls" + '"' + ': {' 001085 : Write File Line : ' "' + "AssVal" + '"' + ': '+ (If $$Isempty:$AssVal Then "0" Else $$RemoveBrackets:($$string:($AssVal:'no comma') )) +',' 001090 : Write File Line : ' "' + "CgstVal" + '"' + ': '+ (If $$Isempty:$CgstVal Then "0" Else $$RemoveBrackets:($$string:($CgstVal:'no comma') )) +',' 001100 : Write File Line : ' "' + "SgstVal" + '"' + ': '+ (If $$Isempty:$SgstVal Then "0" Else $$RemoveBrackets:($$string:($SgstVal:'no comma') )) +',' 001110 : Write File Line : ' "' + "IgstVal" + '"' + ': '+ (If $$Isempty:$IgstVal Then "0" Else $$RemoveBrackets:($$string:($IgstVal:'no comma') )) +',' 001120 : Write File Line : ' "' + "CesVal" + '"' + ': '+ (If $$Isempty:$CesVal Then "0" Else $$RemoveBrackets:($$string:($CesVal:'no comma') )) +',' 001130 : Write File Line : ' "' + "StCesVal" + '"' + ': '+ (If $$Isempty:$StCesVal Then "0" Else $$RemoveBrackets:($$string:($StCesVal:'no comma') )) +',' 001140 : Write File Line : ' "' + "Discount" + '"' + ': '+ (If $$Isempty:$Discount Then "0" Else $$RemoveBrackets:($$string:($Discount:'no comma') )) +',' 001150 : Write File Line : ' "' + "OthChrg" + '"' + ': '+ (If $$Isempty:$OthChrg Then "0" Else $$RemoveBrackets:($$string:($OthChrg:'no comma') )) +',' 001160 : Write File Line : ' "' + "RndOffAmt" + '"' + ': '+ (If $$Isempty:$RndOffAmt Then "0" Else $$RemoveBrackets:($$string:($RndOffAmt:'no comma') )) +',' 001170 : Write File Line : ' "' + "TotInvVal" + '"' + ': '+ (If $$Isempty:$TotInvVal Then "0" Else $$RemoveBrackets:($$string:($TotInvVal:'no comma') )) +',' 001180 : Write File Line : ' "' + "TotInvValFc" + '"' + ': '+ (If $$Isempty:$TotInvValFc Then "0" Else $$RemoveBrackets:($$string:($TotInvValFc:'no comma') ))+'' 001190 : Write File Line : ' },' 001195 : End Walk 001200 : Walk :PayDtls 001205 : Write File Line : ' "' + "PayDtls" + '"' + ': {' 001210 : Write File Line : ' "' + "Nm" + '"' + ': "'+$Nm + '",' 001220 : Write File Line : ' "' + "AccDet" + '"' + ': "'+$AccDet + '",' 001230 : Write File Line : ' "' + "Mode" + '"' + ': "'+$Mode + '",' 001240 : Write File Line : ' "' + "FinInsBr" + '"' + ': "'+$FinInsBr + '",' 001250 : Write File Line : ' "' + "PayTerm" + '"' + ': "'+$PayTerm + '",' 001260 : Write File Line : ' "' + "PayInstr" + '"' + ': "'+$PayInstr + '",' 001270 : Write File Line : ' "' + "CrTrn" + '"' + ': "'+$CrTrn + '",' 001280 : Write File Line : ' "' + "DirDr" + '"' + ': "'+$DirDr + '",' 001290 : Write File Line : ' "' + "CrDay" + '"' + ': '+ (If $$Isempty:$CrDay Then "0" Else $$RemoveBrackets:($$string:($CrDay:'no comma') )) +',' 001300 : Write File Line : ' "' + "PaidAmt" + '"' + ': '+ (If $$Isempty:$PaidAmt Then "0" Else $$RemoveBrackets:($$string:($PaidAmt:'no comma') )) +',' 001310 : Write File Line : ' "' + "PaymtDue" + '"' + ': '+ (If $$Isempty:$PaymtDue Then "0" Else $$RemoveBrackets:($$string:($PaymtDue:'no comma') )) +'' 001320 : Write File Line : ' },' 001325 : End Walk 001350 : Walk :RefDtls 001400 : Write File Line : ' "' + "RefDtls" + '"' + ': {' 001410 : Write File Line : ' "' + "InvRm" + '"' + ': "'+$InvRm + '",' 001415 : Walk : DocPerdDtls 001420 : Write File Line : ' "' + "DocPerdDtls" + '"' + ': {' 001430 : Write File Line : ' "' + "InvStDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$InvStDt:"/") + '",' 001440 : Write File Line : ' "' + "InvEndDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$InvEndDt:"/") + '"' 001445 : Write File Line : ' },' 001450 : End Walk 001455 : Walk : PrecDocDtls 001460 : Write File Line : ' "' + "PrecDocDtls" + '"' + ': [' 001470 : Write File Line : ' { ' 001480 : Write File Line : ' "' + "InvNo" + '"' + ': "'+$InvNo + '",' 001490 : Write File Line : ' "' + "InvDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$InvDt:"/") + '",' 001500 : Write File Line : ' "' + "OthRefNo" + '"' + ': "'+$OthRefNo + '" ' 001510 : Write File Line : ' }' 001520 : Write File Line : ' ],' 001525 : End Walk 001530 : Walk : ContrDtls 001535 : Write File Line : ' "' + "ContrDtls" + '"' + ': [' 001540 : Write File Line : ' { ' 001550 : Write File Line : ' "' + "RecAdvRefr" + '"' + ': "'+$RecAdvRefr + '",' 001560 : Write File Line : ' "' + "RecAdvDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$RecAdvDt:"/") + '",' 001570 : Write File Line : ' "' + "TendRefr" + '"' + ': "'+$TendRefr + '",' 001580 : Write File Line : ' "' + "ContrRefr" + '"' + ': "'+$ContrRefr + '",' 001590 : Write File Line : ' "' + "ExtRefr" + '"' + ': "'+$ExtRefr + '",' 001600 : Write File Line : ' "' + "ProjRefr" + '"' + ': "'+$ProjRefr + '",' 001610 : Write File Line : ' "' + "PORefr" + '"' + ': "'+$PORefr + '",' 001620 : Write File Line : ' "' + "PORefDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$PORefDt:"/") + '"' 001630 : Write File Line : ' }' 001640 : Write File Line : ' ]' 001645 : Write File Line : ' },' 001650 : End Walk 001655 : End Walk 001660 : Walk : AddlDocDtls 001665 : Write File Line : ' "' + "AddlDocDtls" + '"' + ': [' 001670 : Write File Line : ' { ' 001680 : Write File Line : ' "' + "Url" + '"' + ': "'+$Url + '",' 001690 : Write File Line : ' "' + "Docs" + '"' + ': "'+$Docs + '",' 001700 : Write File Line : ' "' + "Info" + '"' + ': "'+$Info + '" ' 001710 : Write File Line : ' }' 001720 : Write File Line : ' ],' 001725 : End Walk 001730 : Walk : ExpDtls 001735 : Write File Line : ' "' + "ExpDtls" + '"' + ': {' 001740 : Write File Line : ' "' + "ShipBNo" + '"' + ': "'+$ShipBNo + '",' 001750 : Write File Line : ' "' + "ShipBDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$ShipBDt:"/") + '",' 001760 : Write File Line : ' "' + "Port" + '"' + ': "'+$Port + '",' 001770 : Write File Line : ' "' + "RefClm" + '"' + ': "'+$RefClm + '",' 001780 : Write File Line : ' "' + "ForCur" + '"' + ': "'+$ForCur + '",' 001790 : Write File Line : ' "' + "CntCode" + '"' + ': "'+$CntCode + '",' 001800 : Write File Line : ' "' + "ExpDuty" + '"' + ': "'+$ExpDuty + '" ' 001810 : Write File Line : ' },' 001815 : End Walk 001910 : Walk : EwbDtls 002000 : Write File Line : ' "' + "EwbDtls" + '"' + ': {' 002010 : Write File Line : ' "' + "TransId" + '"' + ': "'+$TransId + '",' 002020 : Write File Line : ' "' + "TransName" + '"' + ': "'+$TransName + '",' 002030 : Write File Line : ' "' + "Distance" + '"' + ': '+$Distance + ' ,' 002040 : Write File Line : ' "' + "TransDocNo" + '"' + ': "'+$TransDocNo + '",' 002050 : Write File Line : ' "' + "TransDocDt" + '"' + ': "'+($$DDMMYYYYDateFormat:$TransDocDt:"/") + '",' 002060 : Write File Line : ' "' + "VehNo" + '"' + ': "'+$VehNo + '",' 002070 : Write File Line : ' "' + "VehType" + '"' + ': "'+$VehType + '",' 002080 : Write File Line : ' "' + "TransMode" + '"' + ': "'+$TransMode + '"' 002090 : Write File Line : ' }' 002100 : Write File Line : ' }' 002110 : End Walk 002120 : End Walk 002300 : CLOSE TARGET FILE