Merge pull request #5529 from saurabh6790/module_flow
[fix] previous document links
This commit is contained in:
commit
d362b734a2
@ -35,6 +35,25 @@ class PurchaseInvoice(BuyingController):
|
|||||||
'percent_join_field': 'purchase_order',
|
'percent_join_field': 'purchase_order',
|
||||||
'overflow_type': 'billing'
|
'overflow_type': 'billing'
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
self.prev_link_mapper = {
|
||||||
|
"Purchase Order": {
|
||||||
|
"fieldname": "purchase_order",
|
||||||
|
"doctype": "Purchase Invoice Item",
|
||||||
|
"filters": [
|
||||||
|
["Purchase Invoice Item", "parent", "=", self.name],
|
||||||
|
["Purchase Invoice Item", "purchase_order", "!=", ""]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Purchase Receipt": {
|
||||||
|
"fieldname": "purchase_receipt",
|
||||||
|
"doctype": "Purchase Invoice Item",
|
||||||
|
"filters": [
|
||||||
|
["Purchase Invoice Item", "parent", "=", self.item],
|
||||||
|
["Purchase Invoice Item", "purchase_receipt", "!=", ""]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
if not self.is_opening:
|
if not self.is_opening:
|
||||||
|
|||||||
@ -38,6 +38,25 @@ class SalesInvoice(SellingController):
|
|||||||
'keyword': 'Billed',
|
'keyword': 'Billed',
|
||||||
'overflow_type': 'billing'
|
'overflow_type': 'billing'
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
self.prev_link_mapper = {
|
||||||
|
"Sales Order": {
|
||||||
|
"fieldname": "sales_order",
|
||||||
|
"doctype": "Sales Invoice Item",
|
||||||
|
"filters": [
|
||||||
|
["Sales Invoice Item", "parent", "=", self.name],
|
||||||
|
["Sales Invoice Item", "sales_order", "!=", ""]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Delivery Note": {
|
||||||
|
"fieldname": "delivery_note",
|
||||||
|
"doctype": "Sales Invoice Item",
|
||||||
|
"filters": [
|
||||||
|
["Sales Invoice Item", "parent", "=", self.name],
|
||||||
|
["Sales Invoice Item", "delivery_note", "!=", ""]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def set_indicator(self):
|
def set_indicator(self):
|
||||||
"""Set indicator for portal"""
|
"""Set indicator for portal"""
|
||||||
|
|||||||
@ -32,6 +32,17 @@ class PurchaseOrder(BuyingController):
|
|||||||
'percent_join_field': 'prevdoc_docname',
|
'percent_join_field': 'prevdoc_docname',
|
||||||
'overflow_type': 'order'
|
'overflow_type': 'order'
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
self.prev_link_mapper = {
|
||||||
|
"Supplier Quotation": {
|
||||||
|
"fieldname": "supplier_quotation",
|
||||||
|
"doctype": "Purchase Order Item",
|
||||||
|
"filters": [
|
||||||
|
["Purchase Order Item", "parent", "=", self.name],
|
||||||
|
["Purchase Order Item", "supplier_quotation", "!=", ""]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
super(PurchaseOrder, self).validate()
|
super(PurchaseOrder, self).validate()
|
||||||
|
|||||||
@ -21,6 +21,20 @@ form_grid_templates = {
|
|||||||
class WarehouseRequired(frappe.ValidationError): pass
|
class WarehouseRequired(frappe.ValidationError): pass
|
||||||
|
|
||||||
class SalesOrder(SellingController):
|
class SalesOrder(SellingController):
|
||||||
|
def __init__(self, arg1, arg2=None):
|
||||||
|
super(SalesOrder, self).__init__(arg1, arg2)
|
||||||
|
|
||||||
|
self.prev_link_mapper = {
|
||||||
|
"Quotation": {
|
||||||
|
"fieldname": "prevdoc_docname",
|
||||||
|
"doctype": "Sales Order Item",
|
||||||
|
"filters": [
|
||||||
|
["Sales Order Item", "parent", "=", self.name],
|
||||||
|
["Sales Order Item", "prevdoc_docname", "!=", ""]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
super(SalesOrder, self).validate()
|
super(SalesOrder, self).validate()
|
||||||
|
|
||||||
@ -306,7 +320,7 @@ class SalesOrder(SellingController):
|
|||||||
mcount = month_map[reference_doc.recurring_type]
|
mcount = month_map[reference_doc.recurring_type]
|
||||||
self.set("delivery_date", get_next_date(reference_doc.delivery_date, mcount,
|
self.set("delivery_date", get_next_date(reference_doc.delivery_date, mcount,
|
||||||
cint(reference_doc.repeat_on_day_of_month)))
|
cint(reference_doc.repeat_on_day_of_month)))
|
||||||
|
|
||||||
def get_list_context(context=None):
|
def get_list_context(context=None):
|
||||||
from erpnext.controllers.website_list_for_contact import get_list_context
|
from erpnext.controllers.website_list_for_contact import get_list_context
|
||||||
list_context = get_list_context(context)
|
list_context = get_list_context(context)
|
||||||
|
|||||||
@ -60,7 +60,19 @@ class DeliveryNote(SellingController):
|
|||||||
'source_field': '-1 * qty',
|
'source_field': '-1 * qty',
|
||||||
'extra_cond': """ and exists (select name from `tabDelivery Note` where name=`tabDelivery Note Item`.parent and is_return=1)"""
|
'extra_cond': """ and exists (select name from `tabDelivery Note` where name=`tabDelivery Note Item`.parent and is_return=1)"""
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
self.prev_link_mapper = {
|
||||||
|
"Sales Order": {
|
||||||
|
"fieldname": "against_sales_order",
|
||||||
|
"doctype": "Delivery Note Item",
|
||||||
|
"filters": [
|
||||||
|
["Delivery Note Item", "parent", "=", self.name],
|
||||||
|
["Delivery Note Item", "against_sales_order", "!=", ""]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def before_print(self):
|
def before_print(self):
|
||||||
def toggle_print_hide(meta, fieldname):
|
def toggle_print_hide(meta, fieldname):
|
||||||
df = meta.get_field(fieldname)
|
df = meta.get_field(fieldname)
|
||||||
|
|||||||
@ -45,6 +45,17 @@ class PurchaseReceipt(BuyingController):
|
|||||||
# 'overflow_type': 'receipt',
|
# 'overflow_type': 'receipt',
|
||||||
'extra_cond': """ and exists (select name from `tabPurchase Receipt` where name=`tabPurchase Receipt Item`.parent and is_return=1)"""
|
'extra_cond': """ and exists (select name from `tabPurchase Receipt` where name=`tabPurchase Receipt Item`.parent and is_return=1)"""
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
self.prev_link_mapper = {
|
||||||
|
"Purchase Order": {
|
||||||
|
"fieldname": "prevdoc_docname",
|
||||||
|
"doctype": "Purchase Receipt Item",
|
||||||
|
"filters": [
|
||||||
|
["Purchase Receipt Item", "parent", "=", self.name],
|
||||||
|
["Purchase Receipt Item", "prevdoc_docname", "!=", ""]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
super(PurchaseReceipt, self).validate()
|
super(PurchaseReceipt, self).validate()
|
||||||
|
|||||||
@ -107,6 +107,24 @@ class TransactionBase(StatusUpdater):
|
|||||||
frappe.throw(_("Row #{0}: Rate must be same as {1}: {2} ({3} / {4}) ")
|
frappe.throw(_("Row #{0}: Rate must be same as {1}: {2} ({3} / {4}) ")
|
||||||
.format(d.idx, ref_dt, d.get(ref_dn_field), d.rate, ref_rate))
|
.format(d.idx, ref_dt, d.get(ref_dn_field), d.rate, ref_rate))
|
||||||
|
|
||||||
|
def get_link_filters(self, for_doctype):
|
||||||
|
if hasattr(self, "prev_link_mapper") and self.prev_link_mapper.get(for_doctype):
|
||||||
|
fieldname = self.prev_link_mapper[for_doctype]["fieldname"]
|
||||||
|
|
||||||
|
values = filter(None, tuple([item.as_dict()[fieldname] for item in self.items]))
|
||||||
|
|
||||||
|
if values:
|
||||||
|
ret = {
|
||||||
|
for_doctype : {
|
||||||
|
"filters": [[for_doctype, "name", "in", values]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
ret = None
|
||||||
|
else:
|
||||||
|
ret = None
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
def delete_events(ref_type, ref_name):
|
def delete_events(ref_type, ref_name):
|
||||||
frappe.delete_doc("Event", frappe.db.sql_list("""select name from `tabEvent`
|
frappe.delete_doc("Event", frappe.db.sql_list("""select name from `tabEvent`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user