Gstr reports (#12940)
* GSTR1 for B2B (#12296)
* [minor] Modified GSTR1 report to identify missing GST Account in GST Settings (#12426)
* [minor] Modified GSTR1 report to identify missing GST Account in GST Settings
* Update gstr_1.py
* GSTR1 for B2B, B2CL and B2CS (#12459)
* [Report] GSTR - 1 CDNR Report (#12554)
* [wip] cdnr
* [WIP] cdnr with optional data
* [wip] Export GSTR-1
* [minor] Minor changes in export
* [new] Custom field added for GST
* [fix] Minor changes in GSTR1 Report
* [minor] Minor changes in gstr1
* [fix] Codacy Fixed
* Update setup.py
* [wip] Gstr2
* [fix] Fetch correct Tax Details
* [minor] ITC data append to row
* [fix] CDNR negative value
* Cleanup and fixes on GSTR-2
* Minor fixes in gstr reports (#12848)
* [new] B2C limit fetch from GST Settings (#12905)
* [new] b2c limit fetch from gst setting
* [fix] Patch Added for b2c limit
* Update gstr_1.py
* Update utils.py
* Cusotm fields related GSTR2
* minor fixes
* minor fixes
* some more fixes
* Added duplicate patch and some tests as not required on develop
diff --git a/erpnext/regional/india/setup.py b/erpnext/regional/india/setup.py
index 4ef9b11..ac68a92 100644
--- a/erpnext/regional/india/setup.py
+++ b/erpnext/regional/india/setup.py
@@ -87,23 +87,27 @@
allow_on_submit=1, print_hide=1)
invoice_gst_fields = [
dict(fieldname='gst_section', label='GST Details', fieldtype='Section Break',
- insert_after='select_print_heading', print_hide=1, collapsible=1),
+ insert_after='language', print_hide=1, collapsible=1),
dict(fieldname='invoice_copy', label='Invoice Copy',
fieldtype='Select', insert_after='gst_section', print_hide=1, allow_on_submit=1,
options='Original for Recipient\nDuplicate for Transporter\nDuplicate for Supplier\nTriplicate for Supplier'),
dict(fieldname='reverse_charge', label='Reverse Charge',
fieldtype='Select', insert_after='invoice_copy', print_hide=1,
options='Y\nN', default='N'),
- dict(fieldname='gst_col_break', fieldtype='Column Break', insert_after='reverse_charge'),
dict(fieldname='invoice_type', label='Invoice Type',
- fieldtype='Select', insert_after='reverse_charge', print_hide=1,
+ fieldtype='Select', insert_after='invoice_copy', print_hide=1,
options='Regular\nSEZ\nExport\nDeemed Export', default='Regular'),
dict(fieldname='export_type', label='Export Type',
fieldtype='Select', insert_after='invoice_type', print_hide=1,
depends_on='eval:in_list(["SEZ", "Export", "Deemed Export"], doc.invoice_type)',
options='\nWith Payment of Tax\nWithout Payment of Tax'),
dict(fieldname='ecommerce_gstin', label='E-commerce GSTIN',
- fieldtype='Data', insert_after='export_type', print_hide=1)
+ fieldtype='Data', insert_after='export_type', print_hide=1),
+ dict(fieldname='gst_col_break', fieldtype='Column Break', insert_after='ecommerce_gstin'),
+ dict(fieldname='reason_for_issuing_document', label='Reason For Issuing document',
+ fieldtype='Select', insert_after='gst_col_break', print_hide=1,
+ depends_on='eval:doc.is_return==1',
+ options='\n01-Sales Return\n02-Post Sale Discount\n03-Deficiency in services\n04-Correction in Invoice\n05-Change in POS\n06-Finalization of Provisional assessment\n07-Others')
]
purchase_invoice_gst_fields = [
@@ -112,7 +116,21 @@
options='supplier_address.gstin', print_hide=1),
dict(fieldname='company_gstin', label='Company GSTIN',
fieldtype='Data', insert_after='shipping_address',
- options='shipping_address.gstin', print_hide=1)
+ options='shipping_address.gstin', print_hide=1),
+ dict(fieldname='place_of_supply', label='Place of Supply',
+ fieldtype='Data', insert_after='shipping_address',
+ print_hide=1, read_only=0),
+ dict(fieldname='eligibility_for_itc', label='Eligibility For ITC',
+ fieldtype='Select', insert_after='reason_for_issuing_document', print_hide=1,
+ options='input\ninput service\ncapital goods\nineligible', default="ineligible"),
+ dict(fieldname='itc_integrated_tax', label='Availed ITC Integrated Tax',
+ fieldtype='Data', insert_after='eligibility_for_itc', print_hide=1),
+ dict(fieldname='itc_central_tax', label='Availed ITC Central Tax',
+ fieldtype='Data', insert_after='itc_integrated_tax', print_hide=1),
+ dict(fieldname='itc_state_tax', label='Availed ITC State/UT Tax',
+ fieldtype='Data', insert_after='itc_central_tax', print_hide=1),
+ dict(fieldname='itc_cess_amount', label='Availed ITC Cess',
+ fieldtype='Data', insert_after='itc_state_tax', print_hide=1),
]
sales_invoice_gst_fields = [
@@ -123,11 +141,20 @@
fieldtype='Data', insert_after='shipping_address',
options='shipping_address_name.gstin', print_hide=1),
dict(fieldname='place_of_supply', label='Place of Supply',
- fieldtype='Data', insert_after='customer_gstin', print_hide=1,
- options='shipping_address_name.gst_state_number', read_only=0),
+ fieldtype='Data', insert_after='customer_gstin',
+ print_hide=1, read_only=0),
dict(fieldname='company_gstin', label='Company GSTIN',
fieldtype='Data', insert_after='company_address',
- options='company_address.gstin', print_hide=1)
+ options='company_address.gstin', print_hide=1),
+ dict(fieldname='port_code', label='Port Code',
+ fieldtype='Data', insert_after='reason_for_issuing_document', print_hide=1,
+ depends_on="eval:doc.invoice_type=='Export' "),
+ dict(fieldname='shipping_bill_number', label=' Shipping Bill Number',
+ fieldtype='Data', insert_after='port_code', print_hide=1,
+ depends_on="eval:doc.invoice_type=='Export' "),
+ dict(fieldname='shipping_bill_date', label='Shipping Bill Date',
+ fieldtype='Date', insert_after='shipping_bill_number', print_hide=1,
+ depends_on="eval:doc.invoice_type=='Export' ")
]
custom_fields = {
@@ -139,8 +166,8 @@
dict(fieldname='gst_state_number', label='GST State Number',
fieldtype='Int', insert_after='gst_state', read_only=1),
],
- 'Purchase Invoice': purchase_invoice_gst_fields + invoice_gst_fields,
- 'Sales Invoice': sales_invoice_gst_fields + invoice_gst_fields,
+ 'Purchase Invoice': invoice_gst_fields + purchase_invoice_gst_fields,
+ 'Sales Invoice': invoice_gst_fields + sales_invoice_gst_fields,
"Delivery Note": sales_invoice_gst_fields,
'Item': [
dict(fieldname='gst_hsn_code', label='HSN/SAC',