[listview] issue: open, close | so, po: stop, unstop
This commit is contained in:
parent
4ce7977dec
commit
aefc01372f
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
|
import json
|
||||||
from frappe.utils import cstr, flt
|
from frappe.utils import cstr, flt
|
||||||
from frappe import msgprint, _, throw
|
from frappe import msgprint, _, throw
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
@ -217,6 +218,25 @@ class PurchaseOrder(BuyingController):
|
|||||||
def on_update(self):
|
def on_update(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def stop_or_unstop_purchase_orders(names, status):
|
||||||
|
if not frappe.has_permission("Purchase Order", "write"):
|
||||||
|
frappe.throw(_("Not permitted"), frappe.PermissionError)
|
||||||
|
|
||||||
|
names = json.loads(names)
|
||||||
|
for name in names:
|
||||||
|
po = frappe.get_doc("Purchase Order", name)
|
||||||
|
if po.docstatus == 1:
|
||||||
|
if status=="Stopped":
|
||||||
|
if po.status not in ("Stopped", "Cancelled") and (po.per_received < 100 or po.per_billed < 100):
|
||||||
|
po.update_status("Stopped")
|
||||||
|
else:
|
||||||
|
if po.status == "Stopped":
|
||||||
|
po.update_status("Submitted")
|
||||||
|
|
||||||
|
frappe.local.message_log = []
|
||||||
|
|
||||||
|
|
||||||
def set_missing_values(source, target):
|
def set_missing_values(source, target):
|
||||||
target.ignore_pricing_rule = 1
|
target.ignore_pricing_rule = 1
|
||||||
target.run_method("set_missing_values")
|
target.run_method("set_missing_values")
|
||||||
|
|||||||
@ -3,7 +3,7 @@ frappe.listview_settings['Purchase Order'] = {
|
|||||||
"supplier_name", "per_received", "per_billed", "status"],
|
"supplier_name", "per_received", "per_billed", "status"],
|
||||||
get_indicator: function(doc) {
|
get_indicator: function(doc) {
|
||||||
if(doc.status==="Stopped") {
|
if(doc.status==="Stopped") {
|
||||||
return [__("Stopped"), "red", "status,=,Stopped"];
|
return [__("Stopped"), "darkgrey", "status,=,Stopped"];
|
||||||
} else if(flt(doc.per_received) < 100 && doc.status!=="Stopped") {
|
} else if(flt(doc.per_received) < 100 && doc.status!=="Stopped") {
|
||||||
return [__("Not Received"), "orange", "per_received,<,100|status,!=,Stopped"];
|
return [__("Not Received"), "orange", "per_received,<,100|status,!=,Stopped"];
|
||||||
} else if(flt(doc.per_received) == 100 && flt(doc.per_billed) < 100 && doc.status!=="Stopped") {
|
} else if(flt(doc.per_received) == 100 && flt(doc.per_billed) < 100 && doc.status!=="Stopped") {
|
||||||
@ -12,5 +12,17 @@ frappe.listview_settings['Purchase Order'] = {
|
|||||||
return [__("Completed"), "green", "per_received,=,100|per_billed,=,100|status,!=,Stopped"];
|
return [__("Completed"), "green", "per_received,=,100|per_billed,=,100|status,!=,Stopped"];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
order_by: "per_received asc, modified desc"
|
order_by: "per_received asc, modified desc",
|
||||||
|
onload: function(listview) {
|
||||||
|
var method = "erpnext.buying.doctype.purchase_order.purchase_order.stop_or_unstop_purchase_orders";
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Stopped"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Stopped"});
|
||||||
|
});
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Unstopped"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Submitted"});
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
|
import json
|
||||||
import frappe.utils
|
import frappe.utils
|
||||||
from frappe.utils import cstr, flt, getdate, comma_and
|
from frappe.utils import cstr, flt, getdate, comma_and
|
||||||
from frappe import _
|
from frappe import _
|
||||||
@ -237,6 +238,24 @@ def get_list_context(context=None):
|
|||||||
list_context["title"] = _("My Orders")
|
list_context["title"] = _("My Orders")
|
||||||
return list_context
|
return list_context
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def stop_or_unstop_sales_orders(names, status):
|
||||||
|
if not frappe.has_permission("Sales Order", "write"):
|
||||||
|
frappe.throw(_("Not permitted"), frappe.PermissionError)
|
||||||
|
|
||||||
|
names = json.loads(names)
|
||||||
|
for name in names:
|
||||||
|
so = frappe.get_doc("Sales Order", name)
|
||||||
|
if so.docstatus == 1:
|
||||||
|
if status=="Stop":
|
||||||
|
if so.status not in ("Stopped", "Cancelled") and (so.per_delivered < 100 or so.per_billed < 100):
|
||||||
|
so.stop_sales_order()
|
||||||
|
else:
|
||||||
|
if so.status == "Stopped":
|
||||||
|
so.unstop_sales_order()
|
||||||
|
|
||||||
|
frappe.local.message_log = []
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_material_request(source_name, target_doc=None):
|
def make_material_request(source_name, target_doc=None):
|
||||||
def postprocess(source, doc):
|
def postprocess(source, doc):
|
||||||
|
|||||||
@ -3,7 +3,7 @@ frappe.listview_settings['Sales Order'] = {
|
|||||||
"status"],
|
"status"],
|
||||||
get_indicator: function(doc) {
|
get_indicator: function(doc) {
|
||||||
if(doc.status==="Stopped") {
|
if(doc.status==="Stopped") {
|
||||||
return [__("Stopped"), "red", "status,=,Stopped"];
|
return [__("Stopped"), "darkgrey", "status,=,Stopped"];
|
||||||
} else if(flt(doc.per_delivered) < 100 && frappe.datetime.get_diff(doc.delivery_date) < 0) {
|
} else if(flt(doc.per_delivered) < 100 && frappe.datetime.get_diff(doc.delivery_date) < 0) {
|
||||||
return [__("Overdue"), "red", "per_delivered,<,100|delivery_date,<,Today|status,!=,Stopped"];
|
return [__("Overdue"), "red", "per_delivered,<,100|delivery_date,<,Today|status,!=,Stopped"];
|
||||||
} else if(flt(doc.per_delivered) < 100 && doc.status!=="Stopped") {
|
} else if(flt(doc.per_delivered) < 100 && doc.status!=="Stopped") {
|
||||||
@ -14,5 +14,17 @@ frappe.listview_settings['Sales Order'] = {
|
|||||||
return [__("Completed"), "green", "per_delivered,=,100|per_billed,=,100|status,!=,Stopped"];
|
return [__("Completed"), "green", "per_delivered,=,100|per_billed,=,100|status,!=,Stopped"];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
order_by: "per_delivered asc, modified desc"
|
order_by: "per_delivered asc, modified desc",
|
||||||
|
onload: function(listview) {
|
||||||
|
var method = "erpnext.selling.doctype.sales_order.sales_order.stop_or_unstop_sales_orders";
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Stopped"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Stop"});
|
||||||
|
});
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Unstopped"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Unstop"});
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
|
import json
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
@ -75,3 +76,9 @@ def auto_close_tickets():
|
|||||||
frappe.db.sql("""update `tabIssue` set status = 'Closed'
|
frappe.db.sql("""update `tabIssue` set status = 'Closed'
|
||||||
where status = 'Replied'
|
where status = 'Replied'
|
||||||
and date_sub(curdate(),interval 15 Day) > modified""")
|
and date_sub(curdate(),interval 15 Day) > modified""")
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def set_multiple_status(names, status):
|
||||||
|
names = json.loads(names)
|
||||||
|
for name in names:
|
||||||
|
set_status(name, status)
|
||||||
|
|||||||
@ -1,3 +1,14 @@
|
|||||||
frappe.listview_settings['Issue'] = {
|
frappe.listview_settings['Issue'] = {
|
||||||
colwidths: {"subject": 6}
|
colwidths: {"subject": 6},
|
||||||
|
onload: function(listview) {
|
||||||
|
var method = "erpnext.support.doctype.issue.issue.set_multiple_status";
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Open"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Open"});
|
||||||
|
});
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Closed"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Closed"});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user