mapping of relevant fields
This commit is contained in:
parent
0bd987ab03
commit
99ae0439d7
@ -73,6 +73,7 @@ class PurchaseInvoice(BuyingController):
|
|||||||
self.validate_fixed_asset_account()
|
self.validate_fixed_asset_account()
|
||||||
self.create_remarks()
|
self.create_remarks()
|
||||||
self.set_status()
|
self.set_status()
|
||||||
|
self.validate_inter_company_supplier()
|
||||||
|
|
||||||
def validate_cash(self):
|
def validate_cash(self):
|
||||||
if not self.cash_bank_account and flt(self.paid_amount):
|
if not self.cash_bank_account and flt(self.paid_amount):
|
||||||
@ -119,6 +120,21 @@ class PurchaseInvoice(BuyingController):
|
|||||||
|
|
||||||
self.party_account_currency = account.account_currency
|
self.party_account_currency = account.account_currency
|
||||||
|
|
||||||
|
def validate_inter_company_supplier(self):
|
||||||
|
if frappe.db.get_value("Supplier", self.supplier, "is_internal_supplier") == 1:
|
||||||
|
if self.inter_company_invoice_reference:
|
||||||
|
doc = frappe.get_doc("Sales Invoice", self.inter_company_invoice_reference)
|
||||||
|
if not frappe.db.get_value("Supplier", {"represents_company": doc.company}, "name") == self.supplier:
|
||||||
|
frappe.throw(_("Invalid Supplier for Inter Company Invoice"))
|
||||||
|
if not frappe.db.get_value("Customer", {"name": doc.customer}, "represents_company") == self.company:
|
||||||
|
frappe.throw(_("Invalid Company for Inter Company Invoice"))
|
||||||
|
else:
|
||||||
|
companies = frappe.db.sql("""select company from `tabAllowed To Transact With`
|
||||||
|
where parenttype = "Supplier" and parent = '{0}'""".format(self.supplier), as_list = 1)
|
||||||
|
companies = [company[0] for company in companies]
|
||||||
|
if not self.company in companies:
|
||||||
|
frappe.throw(_("Supplier not allowed to transact with {0}. Please change the Company.").format(self.company))
|
||||||
|
|
||||||
def check_for_closed_status(self):
|
def check_for_closed_status(self):
|
||||||
check_list = []
|
check_list = []
|
||||||
|
|
||||||
@ -303,6 +319,12 @@ class PurchaseInvoice(BuyingController):
|
|||||||
|
|
||||||
self.update_project()
|
self.update_project()
|
||||||
self.update_fixed_asset()
|
self.update_fixed_asset()
|
||||||
|
self.update_linked_invoice()
|
||||||
|
|
||||||
|
def update_linked_invoice(self):
|
||||||
|
if self.inter_company_invoice_reference:
|
||||||
|
frappe.db.set_value("Sales Invoice", self.inter_company_invoice_reference,\
|
||||||
|
"inter_company_invoice_reference", self.name)
|
||||||
|
|
||||||
def update_fixed_asset(self):
|
def update_fixed_asset(self):
|
||||||
for d in self.get("items"):
|
for d in self.get("items"):
|
||||||
@ -635,6 +657,8 @@ class PurchaseInvoice(BuyingController):
|
|||||||
self.update_fixed_asset()
|
self.update_fixed_asset()
|
||||||
frappe.db.set(self, 'status', 'Cancelled')
|
frappe.db.set(self, 'status', 'Cancelled')
|
||||||
|
|
||||||
|
self.unlink_inter_company_invoice()
|
||||||
|
|
||||||
def update_project(self):
|
def update_project(self):
|
||||||
project_list = []
|
project_list = []
|
||||||
for d in self.items:
|
for d in self.items:
|
||||||
@ -672,6 +696,13 @@ class PurchaseInvoice(BuyingController):
|
|||||||
pi = pi[0][0]
|
pi = pi[0][0]
|
||||||
frappe.throw(_("Supplier Invoice No exists in Purchase Invoice {0}".format(pi)))
|
frappe.throw(_("Supplier Invoice No exists in Purchase Invoice {0}".format(pi)))
|
||||||
|
|
||||||
|
def unlink_inter_company_invoice(self):
|
||||||
|
if self.inter_company_invoice_reference:
|
||||||
|
frappe.db.set_value("Purchase Invoice", self.name,\
|
||||||
|
"inter_company_invoice_reference", "")
|
||||||
|
frappe.db.set_value("Sales Invoice", self.inter_company_invoice_reference,\
|
||||||
|
"inter_company_invoice_reference", "")
|
||||||
|
|
||||||
def update_billing_status_in_pr(self, update_modified=True):
|
def update_billing_status_in_pr(self, update_modified=True):
|
||||||
updated_pr = []
|
updated_pr = []
|
||||||
for d in self.get("items"):
|
for d in self.get("items"):
|
||||||
@ -734,3 +765,8 @@ def make_stock_entry(source_name, target_doc=None):
|
|||||||
}, target_doc)
|
}, target_doc)
|
||||||
|
|
||||||
return doc
|
return doc
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def make_inter_company_sales_invoice(source_name, target_doc=None):
|
||||||
|
from erpnext.accounts.doctype.sales_invoice.sales_invoice import make_inter_company_invoice
|
||||||
|
return make_inter_company_invoice("Purchase Invoice", source_name, target_doc)
|
Loading…
x
Reference in New Issue
Block a user