fix: Add missing dimensions in GL entries (#21689)
* fix: Add misssing dimensions in GL entries * fix: Add project filter in trial balance report * fix: Use current dimensions instead of dimensions from asset
This commit is contained in:
		
							parent
							
								
									d75af70110
								
							
						
					
					
						commit
						7d61c03af4
					
				| @ -185,7 +185,7 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None): | ||||
| 			total_days, total_booking_days, account_currency) | ||||
| 
 | ||||
| 		make_gl_entries(doc, credit_account, debit_account, against, | ||||
| 			amount, base_amount, end_date, project, account_currency, item.cost_center, item.name, deferred_process) | ||||
| 			amount, base_amount, end_date, project, account_currency, item.cost_center, item, deferred_process) | ||||
| 
 | ||||
| 		# Returned in case of any errors because it tries to submit the same record again and again in case of errors | ||||
| 		if frappe.flags.deferred_accounting_error: | ||||
| @ -222,7 +222,7 @@ def process_deferred_accounting(posting_date=today()): | ||||
| 		doc.submit() | ||||
| 
 | ||||
| def make_gl_entries(doc, credit_account, debit_account, against, | ||||
| 	amount, base_amount, posting_date, project, account_currency, cost_center, voucher_detail_no, deferred_process=None): | ||||
| 	amount, base_amount, posting_date, project, account_currency, cost_center, item, deferred_process=None): | ||||
| 	# GL Entry for crediting the amount in the deferred expense | ||||
| 	from erpnext.accounts.general_ledger import make_gl_entries | ||||
| 
 | ||||
| @ -236,12 +236,12 @@ def make_gl_entries(doc, credit_account, debit_account, against, | ||||
| 			"credit": base_amount, | ||||
| 			"credit_in_account_currency": amount, | ||||
| 			"cost_center": cost_center, | ||||
| 			"voucher_detail_no": voucher_detail_no, | ||||
| 			"voucher_detail_no": item.name, | ||||
| 			'posting_date': posting_date, | ||||
| 			'project': project, | ||||
| 			'against_voucher_type': 'Process Deferred Accounting', | ||||
| 			'against_voucher': deferred_process | ||||
| 		}, account_currency) | ||||
| 		}, account_currency, item=item) | ||||
| 	) | ||||
| 	# GL Entry to debit the amount from the expense | ||||
| 	gl_entries.append( | ||||
| @ -251,12 +251,12 @@ def make_gl_entries(doc, credit_account, debit_account, against, | ||||
| 			"debit": base_amount, | ||||
| 			"debit_in_account_currency": amount, | ||||
| 			"cost_center": cost_center, | ||||
| 			"voucher_detail_no": voucher_detail_no, | ||||
| 			"voucher_detail_no": item.name, | ||||
| 			'posting_date': posting_date, | ||||
| 			'project': project, | ||||
| 			'against_voucher_type': 'Process Deferred Accounting', | ||||
| 			'against_voucher': deferred_process | ||||
| 		}, account_currency) | ||||
| 		}, account_currency, item=item) | ||||
| 	) | ||||
| 
 | ||||
| 	if gl_entries: | ||||
|  | ||||
| @ -162,9 +162,9 @@ def toggle_disabling(doc): | ||||
| 
 | ||||
| def get_doctypes_with_dimensions(): | ||||
| 	doclist = ["GL Entry", "Sales Invoice", "Purchase Invoice", "Payment Entry", "Asset", | ||||
| 		"Expense Claim", "Stock Entry", "Budget", "Payroll Entry", "Delivery Note", "Sales Invoice Item", "Purchase Invoice Item", | ||||
| 		"Purchase Order Item", "Journal Entry Account", "Material Request Item", "Delivery Note Item", "Purchase Receipt Item", | ||||
| 		"Stock Entry Detail", "Payment Entry Deduction", "Sales Taxes and Charges", "Purchase Taxes and Charges", "Shipping Rule", | ||||
| 		"Expense Claim", "Expense Claim Detail", "Expense Taxes and Charges", "Stock Entry", "Budget", "Payroll Entry", "Delivery Note", | ||||
| 		"Sales Invoice Item", "Purchase Invoice Item", "Purchase Order Item", "Journal Entry Account", "Material Request Item", "Delivery Note Item", | ||||
| 		"Purchase Receipt Item", "Stock Entry Detail", "Payment Entry Deduction", "Sales Taxes and Charges", "Purchase Taxes and Charges", "Shipping Rule", | ||||
| 		"Landed Cost Item", "Asset Value Adjustment", "Loyalty Program", "Fee Schedule", "Fee Structure", "Stock Reconciliation", | ||||
| 		"Travel Request", "Fees", "POS Profile", "Opening Invoice Creation Tool", "Opening Invoice Creation Tool Item", "Subscription", | ||||
| 		"Subscription Plan"] | ||||
|  | ||||
| @ -8,6 +8,7 @@ from frappe import _ | ||||
| from frappe.utils import flt, getdate, nowdate, add_days | ||||
| from erpnext.controllers.accounts_controller import AccountsController | ||||
| from erpnext.accounts.general_ledger import make_gl_entries | ||||
| from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import get_accounting_dimensions | ||||
| 
 | ||||
| class InvoiceDiscounting(AccountsController): | ||||
| 	def validate(self): | ||||
| @ -81,10 +82,15 @@ class InvoiceDiscounting(AccountsController): | ||||
| 	def make_gl_entries(self): | ||||
| 		company_currency = frappe.get_cached_value('Company',  self.company, "default_currency") | ||||
| 
 | ||||
| 
 | ||||
| 		gl_entries = [] | ||||
| 		invoice_fields = ["debit_to", "party_account_currency", "conversion_rate", "cost_center"] | ||||
| 		accounting_dimensions = get_accounting_dimensions() | ||||
| 
 | ||||
| 		invoice_fields.extend(accounting_dimensions) | ||||
| 
 | ||||
| 		for d in self.invoices: | ||||
| 			inv = frappe.db.get_value("Sales Invoice", d.sales_invoice, | ||||
| 				["debit_to", "party_account_currency", "conversion_rate", "cost_center"], as_dict=1) | ||||
| 			inv = frappe.db.get_value("Sales Invoice", d.sales_invoice, invoice_fields, as_dict=1) | ||||
| 
 | ||||
| 			if d.outstanding_amount: | ||||
| 				outstanding_in_company_currency = flt(d.outstanding_amount * inv.conversion_rate, | ||||
| @ -102,7 +108,7 @@ class InvoiceDiscounting(AccountsController): | ||||
| 					"cost_center": inv.cost_center, | ||||
| 					"against_voucher": d.sales_invoice, | ||||
| 					"against_voucher_type": "Sales Invoice" | ||||
| 				}, inv.party_account_currency)) | ||||
| 				}, inv.party_account_currency, item=inv)) | ||||
| 
 | ||||
| 				gl_entries.append(self.get_gl_dict({ | ||||
| 					"account": self.accounts_receivable_credit, | ||||
| @ -115,7 +121,7 @@ class InvoiceDiscounting(AccountsController): | ||||
| 					"cost_center": inv.cost_center, | ||||
| 					"against_voucher": d.sales_invoice, | ||||
| 					"against_voucher_type": "Sales Invoice" | ||||
| 				}, ar_credit_account_currency)) | ||||
| 				}, ar_credit_account_currency, item=inv)) | ||||
| 
 | ||||
| 		make_gl_entries(gl_entries, cancel=(self.docstatus == 2), update_outstanding='No') | ||||
| 
 | ||||
|  | ||||
| @ -506,7 +506,7 @@ class PaymentEntry(AccountsController): | ||||
| 				"against": against_account, | ||||
| 				"account_currency": self.party_account_currency, | ||||
| 				"cost_center": self.cost_center | ||||
| 			}) | ||||
| 			}, item=self) | ||||
| 
 | ||||
| 			dr_or_cr = "credit" if erpnext.get_party_account_type(self.party_type) == 'Receivable' else "debit" | ||||
| 
 | ||||
| @ -550,7 +550,7 @@ class PaymentEntry(AccountsController): | ||||
| 					"credit_in_account_currency": self.paid_amount, | ||||
| 					"credit": self.base_paid_amount, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 		if self.payment_type in ("Receive", "Internal Transfer"): | ||||
| 			gl_entries.append( | ||||
| @ -561,7 +561,7 @@ class PaymentEntry(AccountsController): | ||||
| 					"debit_in_account_currency": self.received_amount, | ||||
| 					"debit": self.base_received_amount, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def add_deductions_gl_entries(self, gl_entries): | ||||
|  | ||||
| @ -460,7 +460,7 @@ class PurchaseInvoice(BuyingController): | ||||
| 					"against_voucher": self.return_against if cint(self.is_return) and self.return_against else self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, self.party_account_currency) | ||||
| 				}, self.party_account_currency, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def make_item_gl_entries(self, gl_entries): | ||||
| @ -841,7 +841,7 @@ class PurchaseInvoice(BuyingController): | ||||
| 					"against_voucher": self.return_against if cint(self.is_return) and self.return_against else self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, self.party_account_currency) | ||||
| 				}, self.party_account_currency, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 			gl_entries.append( | ||||
| @ -852,7 +852,7 @@ class PurchaseInvoice(BuyingController): | ||||
| 					"credit_in_account_currency": self.base_paid_amount \ | ||||
| 						if bank_account_currency==self.company_currency else self.paid_amount, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, bank_account_currency) | ||||
| 				}, bank_account_currency, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def make_write_off_gl_entry(self, gl_entries): | ||||
| @ -873,7 +873,7 @@ class PurchaseInvoice(BuyingController): | ||||
| 					"against_voucher": self.return_against if cint(self.is_return) and self.return_against else self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, self.party_account_currency) | ||||
| 				}, self.party_account_currency, item=self) | ||||
| 			) | ||||
| 			gl_entries.append( | ||||
| 				self.get_gl_dict({ | ||||
| @ -883,7 +883,7 @@ class PurchaseInvoice(BuyingController): | ||||
| 					"credit_in_account_currency": self.base_write_off_amount \ | ||||
| 						if write_off_account_currency==self.company_currency else self.write_off_amount, | ||||
| 					"cost_center": self.cost_center or self.write_off_cost_center | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def make_gle_for_rounding_adjustment(self, gl_entries): | ||||
| @ -902,8 +902,7 @@ class PurchaseInvoice(BuyingController): | ||||
| 					"debit_in_account_currency": self.rounding_adjustment, | ||||
| 					"debit": self.base_rounding_adjustment, | ||||
| 					"cost_center": self.cost_center or round_off_cost_center, | ||||
| 				} | ||||
| 			)) | ||||
| 				}, item=self)) | ||||
| 
 | ||||
| 	def on_cancel(self): | ||||
| 		super(PurchaseInvoice, self).on_cancel() | ||||
|  | ||||
| @ -791,7 +791,7 @@ class SalesInvoice(SellingController): | ||||
| 					"against_voucher": self.return_against if cint(self.is_return) and self.return_against else self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, self.party_account_currency) | ||||
| 				}, self.party_account_currency, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def make_tax_gl_entries(self, gl_entries): | ||||
| @ -808,7 +808,7 @@ class SalesInvoice(SellingController): | ||||
| 							tax.precision("base_tax_amount_after_discount_amount")) if account_currency==self.company_currency else | ||||
| 							flt(tax.tax_amount_after_discount_amount, tax.precision("tax_amount_after_discount_amount"))), | ||||
| 						"cost_center": tax.cost_center | ||||
| 					}, account_currency) | ||||
| 					}, account_currency, item=tax) | ||||
| 				) | ||||
| 
 | ||||
| 	def make_item_gl_entries(self, gl_entries): | ||||
| @ -828,7 +828,7 @@ class SalesInvoice(SellingController): | ||||
| 
 | ||||
| 					for gle in fixed_asset_gl_entries: | ||||
| 						gle["against"] = self.customer | ||||
| 						gl_entries.append(self.get_gl_dict(gle)) | ||||
| 						gl_entries.append(self.get_gl_dict(gle, item=item)) | ||||
| 
 | ||||
| 					asset.db_set("disposal_date", self.posting_date) | ||||
| 					asset.set_status("Sold" if self.docstatus==1 else None) | ||||
| @ -866,7 +866,7 @@ class SalesInvoice(SellingController): | ||||
| 					"against_voucher": self.return_against if cint(self.is_return) else self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 			gl_entries.append( | ||||
| 				self.get_gl_dict({ | ||||
| @ -875,7 +875,7 @@ class SalesInvoice(SellingController): | ||||
| 					"against": self.customer, | ||||
| 					"debit": self.loyalty_amount, | ||||
| 					"remark": "Loyalty Points redeemed by the customer" | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def make_pos_gl_entries(self, gl_entries): | ||||
| @ -896,7 +896,7 @@ class SalesInvoice(SellingController): | ||||
| 							"against_voucher": self.return_against if cint(self.is_return) and self.return_against else self.name, | ||||
| 							"against_voucher_type": self.doctype, | ||||
| 							"cost_center": self.cost_center | ||||
| 						}, self.party_account_currency) | ||||
| 						}, self.party_account_currency, item=self) | ||||
| 					) | ||||
| 
 | ||||
| 					payment_mode_account_currency = get_account_currency(payment_mode.account) | ||||
| @ -909,7 +909,7 @@ class SalesInvoice(SellingController): | ||||
| 								if payment_mode_account_currency==self.company_currency \ | ||||
| 								else payment_mode.amount, | ||||
| 							"cost_center": self.cost_center | ||||
| 						}, payment_mode_account_currency) | ||||
| 						}, payment_mode_account_currency, item=self) | ||||
| 					) | ||||
| 
 | ||||
| 	def make_gle_for_change_amount(self, gl_entries): | ||||
| @ -927,7 +927,7 @@ class SalesInvoice(SellingController): | ||||
| 						"against_voucher": self.return_against if cint(self.is_return) and self.return_against else self.name, | ||||
| 						"against_voucher_type": self.doctype, | ||||
| 						"cost_center": self.cost_center | ||||
| 					}, self.party_account_currency) | ||||
| 					}, self.party_account_currency, item=self) | ||||
| 				) | ||||
| 
 | ||||
| 				gl_entries.append( | ||||
| @ -936,7 +936,7 @@ class SalesInvoice(SellingController): | ||||
| 						"against": self.customer, | ||||
| 						"credit": self.base_change_amount, | ||||
| 						"cost_center": self.cost_center | ||||
| 					}) | ||||
| 					}, item=self) | ||||
| 				) | ||||
| 			else: | ||||
| 				frappe.throw(_("Select change amount account"), title="Mandatory Field") | ||||
| @ -960,7 +960,7 @@ class SalesInvoice(SellingController): | ||||
| 					"against_voucher": self.return_against if cint(self.is_return) else self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, self.party_account_currency) | ||||
| 				}, self.party_account_currency, item=self) | ||||
| 			) | ||||
| 			gl_entries.append( | ||||
| 				self.get_gl_dict({ | ||||
| @ -971,7 +971,7 @@ class SalesInvoice(SellingController): | ||||
| 						self.precision("base_write_off_amount")) if write_off_account_currency==self.company_currency | ||||
| 						else flt(self.write_off_amount, self.precision("write_off_amount"))), | ||||
| 					"cost_center": self.cost_center or self.write_off_cost_center or default_cost_center | ||||
| 				}, write_off_account_currency) | ||||
| 				}, write_off_account_currency, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 	def make_gle_for_rounding_adjustment(self, gl_entries): | ||||
| @ -988,8 +988,7 @@ class SalesInvoice(SellingController): | ||||
| 					"credit": flt(self.base_rounding_adjustment, | ||||
| 						self.precision("base_rounding_adjustment")), | ||||
| 					"cost_center": self.cost_center or round_off_cost_center, | ||||
| 				} | ||||
| 			)) | ||||
| 				}, item=self)) | ||||
| 
 | ||||
| 	def update_billing_status_in_dn(self, update_modified=True): | ||||
| 		updated_delivery_notes = [] | ||||
|  | ||||
| @ -46,7 +46,7 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() { | ||||
| 				"default": frappe.defaults.get_user_default("year_end_date"), | ||||
| 			}, | ||||
| 			{ | ||||
| 				"fieldname":"cost_center", | ||||
| 				"fieldname": "cost_center", | ||||
| 				"label": __("Cost Center"), | ||||
| 				"fieldtype": "Link", | ||||
| 				"options": "Cost Center", | ||||
| @ -61,7 +61,13 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() { | ||||
| 				} | ||||
| 			}, | ||||
| 			{ | ||||
| 				"fieldname":"finance_book", | ||||
| 				"fieldname": "project", | ||||
| 				"label": __("Project"), | ||||
| 				"fieldtype": "Link", | ||||
| 				"options": "Project" | ||||
| 			}, | ||||
| 			{ | ||||
| 				"fieldname": "finance_book", | ||||
| 				"label": __("Finance Book"), | ||||
| 				"fieldtype": "Link", | ||||
| 				"options": "Finance Book", | ||||
| @ -97,7 +103,7 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() { | ||||
| 	} | ||||
| 
 | ||||
| 	erpnext.dimension_filters.forEach((dimension) => { | ||||
| 		frappe.query_reports["Trial Balance"].filters.splice(5, 0 ,{ | ||||
| 		frappe.query_reports["Trial Balance"].filters.splice(6, 0 ,{ | ||||
| 			"fieldname": dimension["fieldname"], | ||||
| 			"label": __(dimension["label"]), | ||||
| 			"fieldtype": "Link", | ||||
|  | ||||
| @ -69,6 +69,10 @@ def get_data(filters): | ||||
| 	gl_entries_by_account = {} | ||||
| 
 | ||||
| 	opening_balances = get_opening_balances(filters) | ||||
| 
 | ||||
| 	#add filter inside list so that the query in financial_statements.py doesn't break | ||||
| 	filters.project = [filters.project] | ||||
| 
 | ||||
| 	set_gl_entries_by_account(filters.company, filters.from_date, | ||||
| 		filters.to_date, min_lft, max_rgt, filters, gl_entries_by_account, ignore_closing_entries=not flt(filters.with_period_closing_entry)) | ||||
| 
 | ||||
| @ -102,6 +106,9 @@ def get_rootwise_opening_balances(filters, report_type): | ||||
| 		additional_conditions += """ and cost_center in (select name from `tabCost Center` | ||||
| 			where lft >= %s and rgt <= %s)""" % (lft, rgt) | ||||
| 
 | ||||
| 	if filters.project: | ||||
| 		additional_conditions += " and project = %(project)s" | ||||
| 
 | ||||
| 	if filters.finance_book: | ||||
| 		fb_conditions = " AND finance_book = %(finance_book)s" | ||||
| 		if filters.include_default_book_entries: | ||||
| @ -116,6 +123,7 @@ def get_rootwise_opening_balances(filters, report_type): | ||||
| 		"from_date": filters.from_date, | ||||
| 		"report_type": report_type, | ||||
| 		"year_start_date": filters.year_start_date, | ||||
| 		"project": filters.project, | ||||
| 		"finance_book": filters.finance_book, | ||||
| 		"company_fb": frappe.db.get_value("Company", filters.company, 'default_finance_book') | ||||
| 	} | ||||
|  | ||||
| @ -513,7 +513,7 @@ class Asset(AccountsController): | ||||
| 				"credit": self.purchase_receipt_amount, | ||||
| 				"credit_in_account_currency": self.purchase_receipt_amount, | ||||
| 				"cost_center": self.cost_center | ||||
| 			})) | ||||
| 			}, item=self)) | ||||
| 
 | ||||
| 			gl_entries.append(self.get_gl_dict({ | ||||
| 				"account": fixed_asset_account, | ||||
| @ -523,7 +523,7 @@ class Asset(AccountsController): | ||||
| 				"debit": self.purchase_receipt_amount, | ||||
| 				"debit_in_account_currency": self.purchase_receipt_amount, | ||||
| 				"cost_center": self.cost_center | ||||
| 			})) | ||||
| 			}, item=self)) | ||||
| 
 | ||||
| 		if gl_entries: | ||||
| 			from erpnext.accounts.general_ledger import make_gl_entries | ||||
|  | ||||
| @ -98,14 +98,16 @@ class Fees(AccountsController): | ||||
| 			"debit_in_account_currency": self.grand_total, | ||||
| 			"against_voucher": self.name, | ||||
| 			"against_voucher_type": self.doctype | ||||
| 		}) | ||||
| 		}, item=self) | ||||
| 
 | ||||
| 		fee_gl_entry = self.get_gl_dict({ | ||||
| 			"account": self.income_account, | ||||
| 			"against": self.student, | ||||
| 			"credit": self.grand_total, | ||||
| 			"credit_in_account_currency": self.grand_total, | ||||
| 			"cost_center": self.cost_center | ||||
| 		}) | ||||
| 		}, item=self) | ||||
| 
 | ||||
| 		from erpnext.accounts.general_ledger import make_gl_entries | ||||
| 		make_gl_entries([student_gl_entries, fee_gl_entry], cancel=(self.docstatus == 2), | ||||
| 			update_outstanding="Yes", merge_entries=False) | ||||
|  | ||||
| @ -116,8 +116,9 @@ class ExpenseClaim(AccountsController): | ||||
| 					"party_type": "Employee", | ||||
| 					"party": self.employee, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"against_voucher": self.name | ||||
| 				}) | ||||
| 					"against_voucher": self.name, | ||||
| 					"cost_center": self.cost_center | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 		# expense entries | ||||
| @ -129,7 +130,7 @@ class ExpenseClaim(AccountsController): | ||||
| 					"debit_in_account_currency": data.sanctioned_amount, | ||||
| 					"against": self.employee, | ||||
| 					"cost_center": data.cost_center | ||||
| 				}) | ||||
| 				}, item=data) | ||||
| 			) | ||||
| 
 | ||||
| 		for data in self.advances: | ||||
| @ -157,7 +158,7 @@ class ExpenseClaim(AccountsController): | ||||
| 					"credit": self.grand_total, | ||||
| 					"credit_in_account_currency": self.grand_total, | ||||
| 					"against": self.employee | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 			gl_entry.append( | ||||
| @ -170,7 +171,7 @@ class ExpenseClaim(AccountsController): | ||||
| 					"debit_in_account_currency": self.grand_total, | ||||
| 					"against_voucher": self.name, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 				}) | ||||
| 				}, item=self) | ||||
| 			) | ||||
| 
 | ||||
| 		return gl_entry | ||||
| @ -187,7 +188,7 @@ class ExpenseClaim(AccountsController): | ||||
| 					"cost_center": self.cost_center, | ||||
| 					"against_voucher_type": self.doctype, | ||||
| 					"against_voucher": self.name | ||||
| 				}) | ||||
| 				}, item=tax) | ||||
| 			) | ||||
| 
 | ||||
| 	def validate_account_details(self): | ||||
|  | ||||
| @ -13,9 +13,11 @@ | ||||
|   "description", | ||||
|   "section_break_6", | ||||
|   "amount", | ||||
|   "cost_center", | ||||
|   "column_break_8", | ||||
|   "sanctioned_amount" | ||||
|   "sanctioned_amount", | ||||
|   "accounting_dimensions_section", | ||||
|   "cost_center", | ||||
|   "dimension_col_break" | ||||
|  ], | ||||
|  "fields": [ | ||||
|   { | ||||
| @ -104,12 +106,21 @@ | ||||
|    "fieldtype": "Link", | ||||
|    "label": "Cost Center", | ||||
|    "options": "Cost Center" | ||||
|   }, | ||||
|   { | ||||
|    "fieldname": "accounting_dimensions_section", | ||||
|    "fieldtype": "Section Break", | ||||
|    "label": "Accounting Dimensions" | ||||
|   }, | ||||
|   { | ||||
|    "fieldname": "dimension_col_break", | ||||
|    "fieldtype": "Column Break" | ||||
|   } | ||||
|  ], | ||||
|  "idx": 1, | ||||
|  "istable": 1, | ||||
|  "links": [], | ||||
|  "modified": "2019-12-11 13:42:33.233432", | ||||
|  "modified": "2020-05-11 18:54:35.601592", | ||||
|  "modified_by": "Administrator", | ||||
|  "module": "HR", | ||||
|  "name": "Expense Claim Detail", | ||||
|  | ||||
| @ -8,14 +8,16 @@ | ||||
|  "engine": "InnoDB", | ||||
|  "field_order": [ | ||||
|   "account_head", | ||||
|   "cost_center", | ||||
|   "rate", | ||||
|   "col_break1", | ||||
|   "description", | ||||
|   "section_break_6", | ||||
|   "tax_amount", | ||||
|   "column_break_8", | ||||
|   "total" | ||||
|   "total", | ||||
|   "accounting_dimensions_section", | ||||
|   "cost_center", | ||||
|   "dimension_col_break" | ||||
|  ], | ||||
|  "fields": [ | ||||
|   { | ||||
| @ -91,11 +93,20 @@ | ||||
|   { | ||||
|    "fieldname": "column_break_8", | ||||
|    "fieldtype": "Column Break" | ||||
|   }, | ||||
|   { | ||||
|    "fieldname": "accounting_dimensions_section", | ||||
|    "fieldtype": "Section Break", | ||||
|    "label": "Accounting Dimensions" | ||||
|   }, | ||||
|   { | ||||
|    "fieldname": "dimension_col_break", | ||||
|    "fieldtype": "Column Break" | ||||
|   } | ||||
|  ], | ||||
|  "istable": 1, | ||||
|  "links": [], | ||||
|  "modified": "2020-03-11 13:25:06.721917", | ||||
|  "modified": "2020-05-11 19:01:26.611758", | ||||
|  "modified_by": "Administrator", | ||||
|  "module": "HR", | ||||
|  "name": "Expense Taxes and Charges", | ||||
|  | ||||
| @ -623,7 +623,7 @@ erpnext.patches.v11_1.update_default_supplier_in_item_defaults | ||||
| erpnext.patches.v12_0.update_due_date_in_gle | ||||
| erpnext.patches.v12_0.add_default_buying_selling_terms_in_company | ||||
| erpnext.patches.v12_0.update_ewaybill_field_position | ||||
| erpnext.patches.v12_0.create_accounting_dimensions_in_missing_doctypes | ||||
| erpnext.patches.v12_0.create_accounting_dimensions_in_missing_doctypes #2020-05-11 | ||||
| erpnext.patches.v11_1.set_status_for_material_request_type_manufacture | ||||
| erpnext.patches.v12_0.move_plaid_settings_to_doctype | ||||
| execute:frappe.reload_doc('desk', 'doctype', 'dashboard_chart_link') | ||||
|  | ||||
| @ -20,7 +20,8 @@ def execute(): | ||||
| 		else: | ||||
| 			insert_after_field = 'accounting_dimensions_section' | ||||
| 
 | ||||
| 		for doctype in ["Subscription Plan", "Subscription", "Opening Invoice Creation Tool", "Opening Invoice Creation Tool Item"]: | ||||
| 		for doctype in ["Subscription Plan", "Subscription", "Opening Invoice Creation Tool", "Opening Invoice Creation Tool Item", | ||||
| 			"Expense Claim Detail", "Expense Taxes and Charges"]: | ||||
| 
 | ||||
| 			field = frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": d.fieldname}) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user