Browse Source
Merge pull request #26616 from deepeshgarg007/gst_sales_register_fix
fix(India): Default value for export type
develop
Deepesh Garg
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
35 additions and
5 deletions
-
erpnext/patches.txt
-
erpnext/patches/v13_0/update_export_type_for_gst.py
-
erpnext/regional/doctype/gstr_3b_report/gstr_3b_report.py
-
erpnext/regional/india/setup.py
-
erpnext/regional/report/gstr_1/gstr_1.py
|
|
@ -293,3 +293,4 @@ erpnext.patches.v13_0.update_job_card_details |
|
|
|
erpnext.patches.v13_0.update_level_in_bom #1234sswef |
|
|
|
erpnext.patches.v13_0.add_missing_fg_item_for_stock_entry |
|
|
|
erpnext.patches.v13_0.update_subscription_status_in_memberships |
|
|
|
erpnext.patches.v13_0.update_export_type_for_gst |
|
|
|
|
|
@ -0,0 +1,24 @@ |
|
|
|
import frappe |
|
|
|
|
|
|
|
def execute(): |
|
|
|
company = frappe.get_all('Company', filters = {'country': 'India'}) |
|
|
|
if not company: |
|
|
|
return |
|
|
|
|
|
|
|
# Update custom fields |
|
|
|
fieldname = frappe.db.get_value('Custom Field', {'dt': 'Customer', 'fieldname': 'export_type'}) |
|
|
|
if fieldname: |
|
|
|
frappe.db.set_value('Custom Field', fieldname, 'default', '') |
|
|
|
|
|
|
|
fieldname = frappe.db.get_value('Custom Field', {'dt': 'Supplier', 'fieldname': 'export_type'}) |
|
|
|
if fieldname: |
|
|
|
frappe.db.set_value('Custom Field', fieldname, 'default', '') |
|
|
|
|
|
|
|
# Update Customer/Supplier Masters |
|
|
|
frappe.db.sql(""" |
|
|
|
UPDATE `tabCustomer` set export_type = '' WHERE gst_category NOT IN ('SEZ', 'Overseas', 'Deemed Export') |
|
|
|
""") |
|
|
|
|
|
|
|
frappe.db.sql(""" |
|
|
|
UPDATE `tabSupplier` set export_type = '' WHERE gst_category NOT IN ('SEZ', 'Overseas') |
|
|
|
""") |
|
|
@ -280,9 +280,15 @@ class GSTR3BReport(Document): |
|
|
|
if self.get('invoice_items'): |
|
|
|
# Build itemised tax for export invoices, nil and exempted where tax table is blank |
|
|
|
for invoice, items in iteritems(self.invoice_items): |
|
|
|
if invoice not in self.items_based_on_tax_rate and (self.invoice_detail_map.get(invoice, {}).get('export_type') |
|
|
|
== "Without Payment of Tax"): |
|
|
|
if invoice not in self.items_based_on_tax_rate and self.invoice_detail_map.get(invoice, {}).get('export_type') \ |
|
|
|
== "Without Payment of Tax" and self.invoice_detail_map.get(invoice, {}).get('gst_category') == "Overseas": |
|
|
|
self.items_based_on_tax_rate.setdefault(invoice, {}).setdefault(0, items.keys()) |
|
|
|
else: |
|
|
|
for item in items.keys(): |
|
|
|
if item in self.is_nil_exempt + self.is_non_gst and \ |
|
|
|
item not in self.items_based_on_tax_rate.get(invoice, {}).get(0, []): |
|
|
|
self.items_based_on_tax_rate.setdefault(invoice, {}).setdefault(0, []) |
|
|
|
self.items_based_on_tax_rate[invoice][0].append(item) |
|
|
|
|
|
|
|
def set_outward_taxable_supplies(self): |
|
|
|
inter_state_supply_details = {} |
|
|
|
|
|
@ -641,7 +641,6 @@ def make_custom_fields(update=True): |
|
|
|
'label': 'Export Type', |
|
|
|
'fieldtype': 'Select', |
|
|
|
'insert_after': 'gst_category', |
|
|
|
'default': 'Without Payment of Tax', |
|
|
|
'depends_on':'eval:in_list(["SEZ", "Overseas"], doc.gst_category)', |
|
|
|
'options': '\nWith Payment of Tax\nWithout Payment of Tax' |
|
|
|
} |
|
|
@ -660,7 +659,6 @@ def make_custom_fields(update=True): |
|
|
|
'label': 'Export Type', |
|
|
|
'fieldtype': 'Select', |
|
|
|
'insert_after': 'gst_category', |
|
|
|
'default': 'Without Payment of Tax', |
|
|
|
'depends_on':'eval:in_list(["SEZ", "Overseas", "Deemed Export"], doc.gst_category)', |
|
|
|
'options': '\nWith Payment of Tax\nWithout Payment of Tax' |
|
|
|
} |
|
|
|
|
|
@ -286,7 +286,8 @@ class Gstr1Report(object): |
|
|
|
# Build itemised tax for export invoices where tax table is blank |
|
|
|
for invoice, items in iteritems(self.invoice_items): |
|
|
|
if invoice not in self.items_based_on_tax_rate and invoice not in unidentified_gst_accounts_invoice \ |
|
|
|
and frappe.db.get_value(self.doctype, invoice, "export_type") == "Without Payment of Tax": |
|
|
|
and self.invoices.get(invoice, {}).get('export_type') == "Without Payment of Tax" \ |
|
|
|
and self.invoices.get(invoice, {}).get('gst_category') == "Overseas": |
|
|
|
self.items_based_on_tax_rate.setdefault(invoice, {}).setdefault(0, items.keys()) |
|
|
|
|
|
|
|
def get_columns(self): |
|
|
|