Wednesday, March 28, 2018

GST Invoice Customization with eWay Bill No. in A4 size ( Free Tally TDL Code)

As we all know that new Financial year is going to being lot of us might be thinking of changing the impression on customer's by changing the invoice format. And as eWay Bill is going to get implemented from 1st of April 2018. here is the new invoice format with eWay Bill no. printed on it.

If you liked the format please find the below TDL code of the same. NOTE :- Please take the backup before attaching any code to your live data. This code is only for educational purpose we will not be responsible for any data lost due to improper following of instructions.

To know how to attache any tdl to Tally please follow the instruction in below Link.
How to Attach any Tally.ERP9 Customization to Tally.ERP9 Software so that you can easily attach this code to your Tally.ERP9 software.


;;;;;;;;;;;;;;; Font Used in Invoice Customization;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[Style:O9]
Font:Calibri (Body)
Height:9

[Style:O9B]
Use:O9
Bold: Yes

[Style:O11B]
Font: Adobe Garamond Pro Bold
Height:15
Bold: Yes

;;;;;;;;;;;;;;;;;;;;;;;;;;;Invoice Customization Code Starts;;;;;;;;;;;;;;;;;;;;;;
[#Part: VTYP BehaviourMain]
Option : OTS Vch Type Confirmation: @@IsOTSInv

[!Part : OTS Vch Type Confirmation]
Add : Line : After : VTYP PrintSave :OTS Confirm Vch Type
 
[Line : OTS Confirm Vch Type]
Field : Long Prompt, Logical Field
Local : Field : Long Prompt : Set as : "Print Customized Format?"
Local : Field : Long Prompt : Width : @@LongWidth
Local : Field : Logical Field : Storage : OTSCustomizedFormat

[System : Formula]
IsOTSInv : $$IsSales:$Parent
IsOTSCustomFormat : $OTSCustomizedFormat:VoucherType:$VoucherTypeName

[System : UDF]
OTSCustomizedFormat : Logical : 0001

[#Form : Sales Color]
Option: OTS Customized Invoice: @@IsOTSCustomFormat

[!Form:OTS Customized Invoice]
Delete : Print
Add : Print : OTS Custom Invoice

[Report :OTS Custom Invoice]
Use          : Printed Invoice
Delete: Form        : Printed Invoice
Form : OTS Custom Invoice

[Form:OTS Custom Invoice]
Space Top   : 0.25 inch
    Space Right : 0.25 inch
    Space Left  : 0.50 inch
    Space Bottom: 0.25 inch

Part: OTS Opening Page Break, OTS Invoice Body
Bottom Part:OTS Bottom Part

Page Break : OTS Closing Page Break, OTS Opening Page Break

[Part:OTS Closing Page Break]
Lines :OTS Closing Page Break Line

[Line: OTS Closing Page Break Line]
Fields : Simple Field
Local : Field: Simple Field : Set As : "Continued..."
Local : Field: Simple Field : FullWidth : Yes
Local : Field: Simple Field : Align : Right
Border : Full Thin Top

;;;;;;;;;;;;;;;;;;;;;;;OTS Opening Page Break;;;;;;;;;;;;;;;;;;;;;;;;;;;

[Part:OTS Opening Page Break]
Part: OTS Invoice Title, OTS Invoice Company Details, OTS Invoice Customer Details, OTS Body Coloumns Title
Vertical: Yes

[Part: OTS Invoice Title]
Line: OTS Invoice Title
Border: Thick Cover

[Line:OTS Invoice Title]
Field: Simple Field
Right Field:Name Field
Local: Field: Simple Field: Set as: "TAX INVOICE"
Local: Field: Simple Field: Style: O9B
Local: Field: Simple Field: Space Left: 45
Local: Field: Simple Field: Full Width: Yes
Local: Field: Name Field: Set as:If @@GetCopyNum = 1 Then "ORIGINAL FOR RECIPIENT" Else +
    If @@GetCopyNum = 2 Then $$LocaleString:"DUPLICATE FOR SUPPLIER" Else +
      If @@GetCopyNum = 3 Then $$LocaleString:"TRIPLICATE FOR TRANSPOTER" Else +
      If @@GetCopyNum = 4 Then $$LocaleString:"EXTRA COPY" Else $$LocaleString:"EXTRA COPY"
 
Space Top: 0.25
Space Bottom: 0.25

[Part:OTS Invoice Company Details]
Line: OTS Company Name, OTS Company Address
Border: Thick Cover

[Line: OTS Company Name]
Field: Name Field
Local: Field: Name Field: Set as: @@CmpMailName
Local: Field: Name Field: Style:O11B
Local: Field: Name Field: Full Width: Yes
Space Top: 0.25

[Line:OTS Company Address]
Field: Name Field
Local: Field: Name Field: Set as: $$FullList:CompanyAddress:$Address
Local: Field: Name Field: Width:50% Page
Local: Field: Name Field: Style:O9
Local: Field: Name Field: Line:0

[Part:OTS Invoice Customer Details]
Left Part: OTS Customer Details Left
Right Part: OTS Invoice Details
Border: Thick Cover

[Part:OTS Customer Details Left]
Line: OTS Customer Side Title,OTS Customer Name, OTS Customer Address,OTS Customer State Name, OTS Customer GST No, OTS Customer Contact
Width:50% Page

[Line:OTS Customer Side Title]
Field: Name Field
Local: Field: Name Field: Set as: "Details for Buyer (Billed & Shipped To )"
Local: Field: Name Field: Full Width: Yes
Local: Field: Name Field: Style:O9B
Space Top: 0.50
[Line:OTS Customer Name]
Field: Name Field
Local: Field: Name Field: Set as: $PartyLedgerName;@@BuyerName
Local: Field: Name Field: Full Width: Yes
Local: Field: Name Field: Stylep:O9B
Space Top:0.25

[Line:OTS Customer Address]
Field: Name Field
Local: Field: Name Field: Set as: $$FullList:BasicBuyerAddress:$BasicBuyerAddress
Local: Field: Name Field: Full Width: Yes
Local: Field: Name Field: Line: 0
Local: Field: Name Field: Style:O9

[Line:OTS Customer State Name]
Field: Simple Field
Local: Field: Simple Field: Set as: "State Name"+"  :  "+ $StateName +"  "+ "Code :"+"  "+ $$getgststatecode:@StateName
Local: Field: Simple Field: Local Formula:StateName : If NOT ($$IsEmpty:$StateName OR $$IsSysName:NotApplicable:$StateName) Then $StateName Else $LedStateName:Ledger:@PartyName
Local: Field: Simple Field: Full Width: Yes
Local: Field: Simple Field: Style: O9

[Line:OTS Customer GST No]
Field: Simple Field
Local: Field: Simple Field: Set as: "GSTIN No : " +"  "+ $PartyGSTIN +"  "+" PAN No :"+"  "+$IncomeTaxNumber:Ledger:$BasicBuyerName
Local: Field: Simple Field: Full Width: Yes
Local: Field: Simple Field: Style: O9

[Line:OTS Customer Contact]
Field: Simple Field
Local: Field: Simple Field: Set as: "Contact Details :"+"  "+ @@VchContactNo
Local: Field: Simple Field: Style: O9
Local: Field: Simple Field: Full Width: Yes

[Part:OTS Invoice Details]
Line:OTS Invoice Number Date, OTS Delivery Challanno Date, OTS eWayBillNo, OTS Disptach Doc, OTS Destination, OTS LR No, OTS Order No, OTS Credit Days
Border: Thick Left
Common Border: Yes

[Line:OTS Invoice Number Date]
Field: Simple Prompt, Simple Field, Medium Prompt, Name Field
Local: Field: Simple Prompt: Set as: "Invoice No :"
Local: Field: Simple Prompt: Style: O9
Local: Field: Simple Prompt: Width:10
Local: Field: Simple Field: Set as: $VoucherNumber
Local: Field: Simple Field: Style:O9B
Local: Field: Simple Field: Width:12
Local: Field: Medium Prompt: Set as: "Date :"
Local: Field: Medium Prompt: Width:10
Local: Field: Medium Prompt: Style: O9
Local: Field: Medium Prompt: Border: Thick Left
Local: Field: Name Field: Set as: $Date
Local: Field: Name Field: Style:O9B
Local: Field: Name Field: Width:12
Space Top:0.25
Space Bottom: 0.25
Border: Thick Bottom

[Line:OTS Delivery Challanno Date]
Use:OTS Invoice Number Date
Local: Field: Simple Prompt: Set as: "Challan No"
Local: Field: Simple Prompt: Style:O9
Local: Field: Simple Field: Set as: $BasicShipDeliveryNote
Local: Field: Simple Field: Style: O9B
Local: Field: Medium Prompt: Set as: "Date"
Local: Field: Medium Prompt: Style: O9
Local: Field: Name Field: Set as: $BasicShippingDate

[Line:OTS eWayBillNo]
Use:OTS Invoice Number Date
Local: Field: Simple Prompt: Set as: "e-Way Bill No."

Local: Field: Simple Field: Set as: If @@IsGSTewayApplicable Then @@GSTPrinteWayBillNumber Else +
If $$IsEmpty:$VATTransBillNo Then $UDFVATWayBillNo Else $VATTransBillNo

Local: Field: Medium Prompt: Set as: "Date"

Local: Field: Name Field: Set as: $Date

[Line:OTS Disptach Doc]
Use:OTS Invoice Number Date
Local: Field: Simple Prompt: Set as: "Dispatch Doc No"
Local: Field: Simple Field: Set as: $BasicShipDocumentNo
Local: Field: Medium Prompt: Set as: "Destination"
Local: Field: Name Field: Set as: $BasicFinalDestination;$BasicShippedBy

[Line:OTS Destination]
Use:OTS Invoice Number Date
Local: Field: Simple Prompt: Set as: "Through"
Local: Field: Simple Field: Set as: $BasicShippedBy
Local: Field: Medium Prompt: Set as: "Vehical No"
Local: Field: Name Field: Set as: $BasicShipVesselNo

[Line:OTS LR No]
Use:OTS Invoice Number Date
Local: Field: Simple Prompt: Set as: "LR No"
Local: Field: Simple Field: Set as: $BillofLadingNo
Local: Field: Medium Prompt: Set as: "Date"
Local: Field: Name Field: Set as: $BillofLadingDate

[Line:OTS Order No]
Use:OTS Invoice Number Date
Local: Field: Simple Prompt: Set as: "Order No"
Local: Field: Simple Field: Set as: $BasicPurchaseOrderNo
Local: Field: Medium Prompt: Set as: "Date"
Local: Field: Name Field: Set as: $BasicOrderDate

[Line:OTS Credit Days]
Field: Simple Prompt, Simple Field
Local: Field: Simple Prompt: Set as: "Credit Days"
Local: Field: Simple Prompt: Width: 10
Local: Field: Simple Field: Set as:$BasicDueDateOfPymt
Local: Field: Simple Field: Width: 10
Local: Field: Simple Prompt: Style:O9B
Local: Field: Simple Field: Style:O9B


;;;;;;;;;;;;;;;;;;;;;;;INVOICE BODY STARTS;;;;;;;;;;;;;;;;;;;;;;;;;;
[Part:OTS Body Coloumns Title]
Line: OTS Coloumns Title1, OTS Coloumns Title2
Border: Thick Cover
Common Border: Yes

[Line: OTS Coloumns Title1]
Use: OTS Invoice Body
Local: Field: Default: Type: String
Local: Field: Default: Style: O9B
Local: Field: Default: Align: Center

Local: Field: OTS SrNo: Set as: "Sr"
Local: Field: OTS Description:Set as:" Item "
Local: Field: OTS HSN Code: Set as:"HSN"
Local: Field: OTS GST Per: Set as:"GST"
Local: Field: OTS Qty: Set as:"Qty"
Local: Field: OTS Rate: Set as:"Rate"
Local: Field: OTS SGST Per: Set as:"SGST"
Local: Field: OTS SGST Amt: Set as:"SGST"
Local: Field: OTS CGST per: Set as:"CGST"
Local: Field: OTS CGST Amt: Set as:"CGST"
Local: Field: OTS IGST Per: Set as:"ISGT"
Local: Field: OTS IGST Amt: Set as:"IGST"
Local: Field: OTS GrossAmt: Set as:"Gross"

[Line:OTS Coloumns Title2]
Use: OTS Invoice Body
Local: Field: Default: Type: String
Local: Field: Default: Style: O9B
Local: Field: Default: Align: Center

Local: Field: OTS SrNo: Set as: "No"
Local: Field: OTS Description:Set as:"Description"
Local: Field: OTS HSN Code: Set as:"Code"
Local: Field: OTS GST Per: Set as:"%"
Local: Field: OTS Qty: Set as:""
Local: Field: OTS Rate: Set as:""
Local: Field: OTS SGST Per: Set as:"%"
Local: Field: OTS SGST Amt: Set as:"Amt"
Local: Field: OTS CGST per: Set as:"%"
Local: Field: OTS CGST Amt: Set as:"Amt"
Local: Field: OTS IGST Per: Set as:"%"
Local: Field: OTS IGST Amt: Set as:"Amt"
Local: Field: OTS GrossAmt: Set as:"Amount"
Border: Thick Bottom

[Part:OTS Invoice Body]
Line: OTS Invoice Body
Repeat:OTS Invoice Body: Inventory Entries
Bottom Line: OTS Coloumn Total
Border: Thick Cover
Scroll: Vertical
Float: No
Common Border: Yes

[Line: OTS Invoice Body]
Field: OTS SrNo, OTS Description
Right Field: OTS HSN Code, OTS GST Per, OTS Qty, +
OTS Rate, OTS SGST Per, OTS SGST Amt, +
OTS CGST per, OTS CGST Amt,+
OTS IGST Per, OTS IGST Amt, OTS GrossAmt

Local: Field: OTS SrNo: Width:2
Local: Field: OTS HSN Code: Width:6
Local: Field: OTS GST Per: Width: 3
Local: Field: OTS Qty: Width:7
Local: Field: OTS Rate: Width: 7
Local: Field: OTS SGST Per: Width:3
Local: Field: OTS SGST Amt: Width: 7
Local: Field: OTS CGST per: Width:3
Local: Field: OTS CGST Amt: Width:7
Local: Field: OTS IGST Per: Width:3
Local: Field: OTS IGST Amt: Width:7
Local: Field: OTS GrossAmt: Width: 7

Local: Field: OTS SrNo: Border: Thick Right
Local: Field: OTS HSN Code: Border: Thick Left
Local: Field: OTS GST Per: Border: Thick Left
Local: Field: OTS Qty: Border: Thick Left
Local: Field: OTS Rate: Border: Thick Left
Local: Field: OTS SGST Per: Border: Thick Left
Local: Field: OTS SGST Amt: Border: Thick Left
Local: Field: OTS CGST per: Border: Thick Left
Local: Field: OTS CGST Amt: Border: Thick Left
Local: Field: OTS IGST Per: Border: Thick Left
Local: Field: OTS IGST Amt: Border: Thick Left
Local: Field: OTS GrossAmt: Border: Thick Left
Space Top: 0.15

[Field:OTS SrNo]
Use: Simple Field
Set as: $$Line
Style: O9

[Field:OTS Description]
Use: Simple Field
Style: O9
Set as: if NOT $$IsSysName:$StockItemName then @@InvItemName else ""
Full Width: Yes
Line: 0

[Field:OTS HSN Code]
Use:  Simple Field
Set as:$GSTItemHSNCodeEx
Style: O9

[Field:OTS GST Per]
Use: Simple Field
Set as:If NOT $GSTIsTransLedEx Then "" Else $GSTClsfnIGSTRateEx
Style:O9

[Field:OTS Qty]
Use: Simple Field
Set as: $BilledQty
Style:O9

[Field:OTS Rate]
Use: Simple Field
Set as: $Rate
Style:O9

[Field:OTS SGST Per]
Use:  Number Field
Set as: If NOT $GSTIsTransLedEx Then "" Else $GSTClsfnIGSTRateEx /2
Style: O9
Invisible: If @@IGST > 0 then yes else no

[Field:OTS SGST Amt]
Use:Amount Field
Set as:$Amount * #OTSSGSTPer / 100
Style: O9
Invisible: If @@IGST > 0 then yes else no

[Field:OTS CGST per]
Use: Number Field
Set as: If NOT $GSTIsTransLedEx Then "" Else $GSTClsfnIGSTRateEx /2
Style: O9
Invisible: If @@IGST > 0 then yes else no

[Field:OTS CGST Amt]
Use: Amount Field
Set as:$Amount * #OTSCGSTper / 100
Style: O9
Invisible: If @@IGST > 0 then yes else no

[Field:OTS IGST Per]
Use: Number Field
Set as: If NOT $GSTIsTransLedEx Then "" Else $GSTClsfnIGSTRateEx
Style: O9
Invisible: If @@SGST > 0 then yes else no

[Field:OTS IGST Amt]
Use: Amount Field
Set as:$Amount * #OTSIGSTPer / 100
Style: O9
Invisible: If @@SGST > 0 then yes else no

[Field:OTS GrossAmt]
Use: Amount Field
Set as: $Amount
Style:O9

[Line:OTS Coloumn Total]
Use:OTS Invoice Body
Border: Thick Top Bottom

Local: Field: OTS SrNo: Set as: ""
Local: Field: OTS Description:Set as:"Total"
Local: Field: OTS HSN Code: Set as:""
Local: Field: OTS GST Per: Set as:""
Local: Field: OTS Qty: Set as:""
Local: Field: OTS Rate: Set as:""
Local: Field: OTS SGST Per: Set as:""
Local: Field: OTS SGST Per: Type: String
Local: Field: OTS SGST Amt: Set as:$$FilterAmtTotal:LedgerEntries:SGST1:$Amount
Local: Field: OTS CGST per: Set as:""
Local: Field: OTS CGST Per: Type: String
Local: Field: OTS CGST Amt: Set as:$$FilterAmtTotal:LedgerEntries:CGST1:$Amount
Local: Field: OTS IGST Per: Set as:""
Local: Field: OTS IGST Per: Type: String
Local: Field: OTS IGST Amt: Set as:$$FilterAmtTotal:LedgerEntries:IGST1:$Amount
Local: Field: OTS GrossAmt: Set as:$$CollAmtTotal:InventoryEntries:$Amount

[System: Formula]
SGST :$$FilterAmtTotal:LedgerEntries:SGST1:$Amount
SGST1 :$Name:Ledger:$LedgerName Contains $$LocaleString:"SGST"

CGST :$$FilterAmtTotal:LedgerEntries:CGST1:$Amount
CGST1 :$Name:Ledger:$LedgerName Contains $$LocaleString:"CGST"

IGST :$$FilterAmtTotal:LedgerEntries:IGST1:$Amount
IGST1 :$Name:Ledger:$LedgerName Contains $$LocaleString:"IGST"

Round :$$FilterAmtTotal:LedgerEntries:Round1:$Amount
Round1 :$Name:Ledger:$LedgerName Contains $$LocaleString:"Round"

;;;;;;;;;;;;;;;;OTS Bottom Part;;;;;;;;;;;;;;;;;;;;;;;

[Part:OTS Bottom Part]
Part:OTS Bottom Part 1,VCH GST AnalysisDetails, OTS Bottom Part 2
Vertical: Yes

[Part:OTS Bottom Part 1]
Right Part: OTS Bottom Part 1 Right
Left Part: OTS Bottom Part 1 Left
Border: Thick Cover

[Part:OTS Bottom Part 1 Left]
Line: OTS Amount in Word

[Line: OTS Amount in Word]
Field: Medium Prompt, Name Field
Local: Field: Medium Prompt: Set as: "Amount In Word"
Local: Field: Medium Prompt: Style: O9
Local: Field: Name Field: Set as: $$InWords:$Amount
Local: Field: Name Field: Style: O9B
Local: Field: Name Field: Full Width: Yes
Local: Field: Name Field: Line:0
Space Top: 0.5

[Part: OTS Bottom Part 1 Right]
Line: OTS Invoice Ledger Entries
Repeat: OTS Invoice Ledger Entries:LedgerEntries
Bottom Line: OTS Invoice Amount
Common Border: Yes
Border: Thick Left

[Line: OTS Invoice Ledger Entries]
Field: Name Field, Amount Field
Local: Field: Name Field: Set as:$LedgerName
Local: Field: Name Field: Style: O9
Local: Field: Name Field: Width:22.6
Local: Field: Name Field: Align: Right
Local: Field: Amount Field: Set as: $Amount
Local: Field: Amount Field: Style: O9B
Local: Field: Amount Field: Border: Thick Left
Local: Field: Amount Field: Width:7
Remove if: $LedgerName contains $PartyLedgerName
Space Top:0.25

[Line:OTS Invoice Amount]
Field: Name Field, Amount Field
Local:Field: Name Field: Set as: "INVOICE TOTAL"
Local:Field: Name Field: Style: Large Bold
Local:Field: Name Field: Width:22.6
Local:Field: Name Field: Align: Right
Local:Field: Amount Field: Set as: $Amount
Local:Field: Amount Field: Style: Large Bold
Local:Field: Amount Field: Width: 7
Border: Thick Top
Space Top: 0.5
Space Bottom: 0.5

[Part:OTS Bottom Part 2]
Right Part: OTS Signature
Left Part: OTS Terms and Conditions
Border: Thick Box

[Part:OTS Terms and Conditions]
Line: OTS0,OTS1, OTS2, OTS3

[Line: OTS0]
Field: Simple Field
Local: Field: Simple Field: Set as: "Terms and Conditions"
Local: Field: Simple Field: Style: O9B
Space Top: 0.25

[Line: OTS1]
Field: Simple Field
Local: Field:Simple Field: Set as:"1. Goods Once Sold will not be taken back."
Local: Field: Simple Field: Full Width: Yes
Local: Field: Simple Field: Line:0
Local: Field: Simple Field: Style: Tiny

[Line: OTS2]
Use: OTS1
Local: Field: Simple Field: Set as: "2. If Cheque Bounced, Rs 500/- will be taken as charges"

[Line: OTS3]
Use: OTS1
Local: Field: Simple Field: Set as: "3. Rs 100/- per day will charged for delayed payment after due date."

[Part:OTS Signature]
Line: OTS Signature,

[Line:OTS Signature]
Right Field: Simple Field
Local: Field: Simple Field: Set as: "For" +"  "+ @@CmpMailName
Space Top:3



Note:- This code is written for Print invoice in A4 portrait mode. You will need to do the required settings in your printer for better view. There might be some case were alignment might not come proper this is because of printer and you will need to write code for alignment.

1 comment: