Merge pull request #5529 from saurabh6790/module_flow

[fix] previous document links
This commit is contained in:
Rushabh Mehta 2016-06-27 17:23:46 +05:30 committed by GitHub
commit d362b734a2
7 changed files with 105 additions and 1 deletions

View File

@ -36,6 +36,25 @@ class PurchaseInvoice(BuyingController):
'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:
self.is_opening = 'No' self.is_opening = 'No'

View File

@ -39,6 +39,25 @@ class SalesInvoice(SellingController):
'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"""
if self.outstanding_amount > 0: if self.outstanding_amount > 0:

View File

@ -33,6 +33,17 @@ class PurchaseOrder(BuyingController):
'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()

View File

@ -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()

View File

@ -61,6 +61,18 @@ class DeliveryNote(SellingController):
'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)

View File

@ -46,6 +46,17 @@ class PurchaseReceipt(BuyingController):
'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()

View File

@ -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`