Merge branch 'version-13-hotfix' of https://github.com/frappe/erpnext into item-card-group-links
This commit is contained in:
@@ -1062,6 +1062,8 @@ class SalesInvoice(SellingController):
|
|||||||
frappe.flags.is_reverse_depr_entry = False
|
frappe.flags.is_reverse_depr_entry = False
|
||||||
asset.flags.ignore_validate_update_after_submit = True
|
asset.flags.ignore_validate_update_after_submit = True
|
||||||
schedule.journal_entry = None
|
schedule.journal_entry = None
|
||||||
|
depreciation_amount = self.get_depreciation_amount_in_je(reverse_journal_entry)
|
||||||
|
asset.finance_books[0].value_after_depreciation += depreciation_amount
|
||||||
asset.save()
|
asset.save()
|
||||||
|
|
||||||
def get_posting_date_of_sales_invoice(self):
|
def get_posting_date_of_sales_invoice(self):
|
||||||
@@ -1084,6 +1086,12 @@ class SalesInvoice(SellingController):
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_depreciation_amount_in_je(self, journal_entry):
|
||||||
|
if journal_entry.accounts[0].debit_in_account_currency:
|
||||||
|
return journal_entry.accounts[0].debit_in_account_currency
|
||||||
|
else:
|
||||||
|
return journal_entry.accounts[0].credit_in_account_currency
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enable_discount_accounting(self):
|
def enable_discount_accounting(self):
|
||||||
if not hasattr(self, "_enable_discount_accounting"):
|
if not hasattr(self, "_enable_discount_accounting"):
|
||||||
|
|||||||
@@ -337,4 +337,5 @@ erpnext.patches.v13_0.update_category_in_ltds_certificate
|
|||||||
erpnext.patches.v13_0.create_ksa_vat_custom_fields
|
erpnext.patches.v13_0.create_ksa_vat_custom_fields
|
||||||
erpnext.patches.v13_0.rename_ksa_qr_field
|
erpnext.patches.v13_0.rename_ksa_qr_field
|
||||||
erpnext.patches.v13_0.disable_ksa_print_format_for_others # 16-12-2021
|
erpnext.patches.v13_0.disable_ksa_print_format_for_others # 16-12-2021
|
||||||
|
erpnext.patches.v13_0.update_tax_category_for_rcm
|
||||||
erpnext.patches.v13_0.convert_to_website_item_in_item_card_group_template
|
erpnext.patches.v13_0.convert_to_website_item_in_item_card_group_template
|
||||||
|
|||||||
31
erpnext/patches/v13_0/update_tax_category_for_rcm.py
Normal file
31
erpnext/patches/v13_0/update_tax_category_for_rcm.py
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import frappe
|
||||||
|
from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
|
||||||
|
|
||||||
|
from erpnext.regional.india import states
|
||||||
|
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
company = frappe.get_all('Company', filters = {'country': 'India'})
|
||||||
|
if not company:
|
||||||
|
return
|
||||||
|
|
||||||
|
create_custom_fields({
|
||||||
|
'Tax Category': [
|
||||||
|
dict(fieldname='is_inter_state', label='Is Inter State',
|
||||||
|
fieldtype='Check', insert_after='disabled', print_hide=1),
|
||||||
|
dict(fieldname='is_reverse_charge', label='Is Reverse Charge', fieldtype='Check',
|
||||||
|
insert_after='is_inter_state', print_hide=1),
|
||||||
|
dict(fieldname='tax_category_column_break', fieldtype='Column Break',
|
||||||
|
insert_after='is_reverse_charge'),
|
||||||
|
dict(fieldname='gst_state', label='Source State', fieldtype='Select',
|
||||||
|
options='\n'.join(states), insert_after='company')
|
||||||
|
]
|
||||||
|
}, update=True)
|
||||||
|
|
||||||
|
tax_category = frappe.qb.DocType("Tax Category")
|
||||||
|
|
||||||
|
frappe.qb.update(tax_category).set(
|
||||||
|
tax_category.is_reverse_charge, 1
|
||||||
|
).where(
|
||||||
|
tax_category.name.isin(['Reverse Charge Out-State', 'Reverse Charge In-State'])
|
||||||
|
).run()
|
||||||
@@ -83,6 +83,13 @@ $.extend(erpnext.queries, {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
dispatch_address_query: function(doc) {
|
||||||
|
return {
|
||||||
|
query: 'frappe.contacts.doctype.address.address.address_query',
|
||||||
|
filters: { link_doctype: 'Company', link_name: doc.company || '' }
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
supplier_filter: function(doc) {
|
supplier_filter: function(doc) {
|
||||||
if(!doc.supplier) {
|
if(!doc.supplier) {
|
||||||
frappe.throw(__("Please set {0}", [__(frappe.meta.get_label(doc.doctype, "supplier", doc.name))]));
|
frappe.throw(__("Please set {0}", [__(frappe.meta.get_label(doc.doctype, "supplier", doc.name))]));
|
||||||
|
|||||||
@@ -284,8 +284,10 @@ def get_custom_fields():
|
|||||||
inter_state_gst_field = [
|
inter_state_gst_field = [
|
||||||
dict(fieldname='is_inter_state', label='Is Inter State',
|
dict(fieldname='is_inter_state', label='Is Inter State',
|
||||||
fieldtype='Check', insert_after='disabled', print_hide=1),
|
fieldtype='Check', insert_after='disabled', print_hide=1),
|
||||||
|
dict(fieldname='is_reverse_charge', label='Is Reverse Charge', fieldtype='Check',
|
||||||
|
insert_after='is_inter_state', print_hide=1),
|
||||||
dict(fieldname='tax_category_column_break', fieldtype='Column Break',
|
dict(fieldname='tax_category_column_break', fieldtype='Column Break',
|
||||||
insert_after='is_inter_state'),
|
insert_after='is_reverse_charge'),
|
||||||
dict(fieldname='gst_state', label='Source State', fieldtype='Select',
|
dict(fieldname='gst_state', label='Source State', fieldtype='Select',
|
||||||
options='\n'.join(states), insert_after='company')
|
options='\n'.join(states), insert_after='company')
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ def validate_pan_for_india(doc, method):
|
|||||||
frappe.throw(_("Invalid PAN No. The input you've entered doesn't match the format of PAN."))
|
frappe.throw(_("Invalid PAN No. The input you've entered doesn't match the format of PAN."))
|
||||||
|
|
||||||
def validate_tax_category(doc, method):
|
def validate_tax_category(doc, method):
|
||||||
if doc.get('gst_state') and frappe.db.get_value('Tax Category', {'gst_state': doc.gst_state, 'is_inter_state': doc.is_inter_state}):
|
if doc.get('gst_state') and frappe.db.get_value('Tax Category', {'gst_state': doc.gst_state, 'is_inter_state': doc.is_inter_state,
|
||||||
|
'is_reverse_charge': doc.is_reverse_charge}):
|
||||||
if doc.is_inter_state:
|
if doc.is_inter_state:
|
||||||
frappe.throw(_("Inter State tax category for GST State {0} already exists").format(doc.gst_state))
|
frappe.throw(_("Inter State tax category for GST State {0} already exists").format(doc.gst_state))
|
||||||
else:
|
else:
|
||||||
@@ -266,7 +267,7 @@ def get_tax_template_based_on_category(master_doctype, company, party_details):
|
|||||||
|
|
||||||
def get_tax_template(master_doctype, company, is_inter_state, state_code):
|
def get_tax_template(master_doctype, company, is_inter_state, state_code):
|
||||||
tax_categories = frappe.get_all('Tax Category', fields = ['name', 'is_inter_state', 'gst_state'],
|
tax_categories = frappe.get_all('Tax Category', fields = ['name', 'is_inter_state', 'gst_state'],
|
||||||
filters = {'is_inter_state': is_inter_state})
|
filters = {'is_inter_state': is_inter_state, 'is_reverse_charge': 0})
|
||||||
|
|
||||||
default_tax = ''
|
default_tax = ''
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
|
|||||||
me.frm.set_query('contact_person', erpnext.queries.contact_query);
|
me.frm.set_query('contact_person', erpnext.queries.contact_query);
|
||||||
me.frm.set_query('customer_address', erpnext.queries.address_query);
|
me.frm.set_query('customer_address', erpnext.queries.address_query);
|
||||||
me.frm.set_query('shipping_address_name', erpnext.queries.address_query);
|
me.frm.set_query('shipping_address_name', erpnext.queries.address_query);
|
||||||
|
me.frm.set_query('dispatch_address_name', erpnext.queries.dispatch_address_query);
|
||||||
|
|
||||||
|
|
||||||
if(this.frm.fields_dict.selling_price_list) {
|
if(this.frm.fields_dict.selling_price_list) {
|
||||||
|
|||||||
@@ -1178,11 +1178,13 @@
|
|||||||
{
|
{
|
||||||
"title": "Reverse Charge In-State",
|
"title": "Reverse Charge In-State",
|
||||||
"is_inter_state": 0,
|
"is_inter_state": 0,
|
||||||
|
"is_reverse_charge": 1,
|
||||||
"gst_state": ""
|
"gst_state": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Reverse Charge Out-State",
|
"title": "Reverse Charge Out-State",
|
||||||
"is_inter_state": 1,
|
"is_inter_state": 1,
|
||||||
|
"is_reverse_charge": 1,
|
||||||
"gst_state": ""
|
"gst_state": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user