mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-07 15:12:51 +00:00
[production order] [delivery note] fixes, pull
This commit is contained in:
@@ -28,8 +28,8 @@ cur_frm.cscript.refresh = function(doc, dt, dn) {
|
|||||||
if(doc.docstatus===0 && !doc.__islocal) {
|
if(doc.docstatus===0 && !doc.__islocal) {
|
||||||
cur_frm.set_intro("Submit this Production Order for further processing.");
|
cur_frm.set_intro("Submit this Production Order for further processing.");
|
||||||
} else if(doc.docstatus===1) {
|
} else if(doc.docstatus===1) {
|
||||||
var percent = flt(doc.produced_qty) / doc.qty * 100;
|
var percent = flt(doc.produced_qty) / flt(doc.qty) * 100;
|
||||||
cur_frm.dashboard.add_progress(cint(percent) + "% " + wn._("Complete"));
|
cur_frm.dashboard.add_progress(cint(percent) + "% " + wn._("Complete"), percent);
|
||||||
|
|
||||||
if(doc.status === "Stopped") {
|
if(doc.status === "Stopped") {
|
||||||
cur_frm.dashboard.set_headline_alert(wn._("Stopped"), "alert-danger", "icon-stop");
|
cur_frm.dashboard.set_headline_alert(wn._("Stopped"), "alert-danger", "icon-stop");
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class DocType:
|
|||||||
so_qty = flt(so_item_qty) + flt(dnpi_qty)
|
so_qty = flt(so_item_qty) + flt(dnpi_qty)
|
||||||
|
|
||||||
if ordered_qty_against_so > so_qty:
|
if ordered_qty_against_so > so_qty:
|
||||||
msgprint("""Total production order qty for item: %s against sales order: %s \
|
webnotes.msgprint("""Total production order qty for item: %s against sales order: %s \
|
||||||
will be %s, which is greater than sales order qty (%s).
|
will be %s, which is greater than sales order qty (%s).
|
||||||
Please reduce qty or remove the item.""" %
|
Please reduce qty or remove the item.""" %
|
||||||
(self.doc.production_item, self.doc.sales_order,
|
(self.doc.production_item, self.doc.sales_order,
|
||||||
|
|||||||
@@ -46,13 +46,25 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
|
|||||||
var aii_enabled = cint(sys_defaults.auto_inventory_accounting)
|
var aii_enabled = cint(sys_defaults.auto_inventory_accounting)
|
||||||
cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("expense_account", aii_enabled);
|
cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("expense_account", aii_enabled);
|
||||||
cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("cost_center", aii_enabled);
|
cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("cost_center", aii_enabled);
|
||||||
},
|
|
||||||
|
|
||||||
get_items: function() {
|
if (this.frm.doc.docstatus===0) {
|
||||||
wn.model.map_current_doc({
|
cur_frm.add_custom_button(wn._('From Sales Order'),
|
||||||
method: "selling.doctype.sales_order.sales_order.make_delivery_note",
|
function() {
|
||||||
source_name: cur_frm.doc.sales_order_no,
|
wn.model.map_current_doc({
|
||||||
})
|
method: "selling.doctype.sales_order.sales_order.make_delivery_note",
|
||||||
|
source_doctype: "Sales Order",
|
||||||
|
get_query_filters: {
|
||||||
|
docstatus: 1,
|
||||||
|
status: ["!=", "Stopped"],
|
||||||
|
per_delivered: ["<", 99.99],
|
||||||
|
project_name: cur_frm.doc.project_name || undefined,
|
||||||
|
customer: cur_frm.doc.customer || undefined,
|
||||||
|
company: cur_frm.doc.company
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
make_sales_invoice: function() {
|
make_sales_invoice: function() {
|
||||||
@@ -67,7 +79,11 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
|
|||||||
method: "stock.doctype.delivery_note.delivery_note.make_installation_note",
|
method: "stock.doctype.delivery_note.delivery_note.make_installation_note",
|
||||||
source_name: cur_frm.doc.name
|
source_name: cur_frm.doc.name
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
|
||||||
|
tc_name: function() {
|
||||||
|
this.get_terms();
|
||||||
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -96,22 +112,6 @@ cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
|
|||||||
ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
|
ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// *************** Customized link query for SALES ORDER based on customer and currency*****************************
|
|
||||||
cur_frm.fields_dict['sales_order_no'].get_query = function(doc) {
|
|
||||||
doc = locals[this.doctype][this.docname];
|
|
||||||
var cond = '';
|
|
||||||
|
|
||||||
if(doc.customer) {
|
|
||||||
cond = '`tabSales Order`.customer = "'+doc.customer+'" and';
|
|
||||||
}
|
|
||||||
|
|
||||||
if(doc.project_name){
|
|
||||||
cond += '`tabSales Order`.project_name ="'+doc.project_name+'"';
|
|
||||||
}
|
|
||||||
return repl('SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "%(company)s" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_delivered,0) < 99.99 and %(cond)s `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50', {company:doc.company,cond:cond})
|
|
||||||
}
|
|
||||||
|
|
||||||
cur_frm.cscript.serial_no = function(doc, cdt, cdn) {
|
cur_frm.cscript.serial_no = function(doc, cdt, cdn) {
|
||||||
var d = locals[cdt][cdn];
|
var d = locals[cdt][cdn];
|
||||||
if (d.serial_no) {
|
if (d.serial_no) {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"creation": "2013-05-24 19:29:09",
|
"creation": "2013-05-24 19:29:09",
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"modified": "2013-07-06 19:04:46",
|
"modified": "2013-07-08 16:34:21",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"owner": "Administrator"
|
"owner": "Administrator"
|
||||||
},
|
},
|
||||||
@@ -34,6 +34,7 @@
|
|||||||
"parent": "Delivery Note",
|
"parent": "Delivery Note",
|
||||||
"parentfield": "permissions",
|
"parentfield": "permissions",
|
||||||
"parenttype": "DocType",
|
"parenttype": "DocType",
|
||||||
|
"permlevel": 0,
|
||||||
"read": 1,
|
"read": 1,
|
||||||
"report": 1
|
"report": 1
|
||||||
},
|
},
|
||||||
@@ -373,42 +374,6 @@
|
|||||||
"print_hide": 1,
|
"print_hide": 1,
|
||||||
"read_only": 0
|
"read_only": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "section_break0",
|
|
||||||
"fieldtype": "Section Break",
|
|
||||||
"read_only": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.",
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "sales_order_no",
|
|
||||||
"fieldtype": "Link",
|
|
||||||
"in_list_view": 1,
|
|
||||||
"label": "Sales Order No",
|
|
||||||
"no_copy": 0,
|
|
||||||
"oldfieldname": "sales_order_no",
|
|
||||||
"oldfieldtype": "Link",
|
|
||||||
"options": "Sales Order",
|
|
||||||
"print_hide": 0,
|
|
||||||
"read_only": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "get_items",
|
|
||||||
"fieldtype": "Button",
|
|
||||||
"hidden": 0,
|
|
||||||
"label": "Get Items",
|
|
||||||
"oldfieldtype": "Button",
|
|
||||||
"print_hide": 1,
|
|
||||||
"read_only": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "col_break24",
|
|
||||||
"fieldtype": "Column Break",
|
|
||||||
"read_only": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"doctype": "DocField",
|
"doctype": "DocField",
|
||||||
"fieldname": "net_total_export",
|
"fieldname": "net_total_export",
|
||||||
@@ -664,25 +629,6 @@
|
|||||||
"print_hide": 1,
|
"print_hide": 1,
|
||||||
"read_only": 0
|
"read_only": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "column_break_59",
|
|
||||||
"fieldtype": "Column Break"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "get_terms",
|
|
||||||
"fieldtype": "Button",
|
|
||||||
"label": "Get Terms and Conditions",
|
|
||||||
"oldfieldtype": "Button",
|
|
||||||
"print_hide": 1,
|
|
||||||
"read_only": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"doctype": "DocField",
|
|
||||||
"fieldname": "section_break_61",
|
|
||||||
"fieldtype": "Section Break"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"doctype": "DocField",
|
"doctype": "DocField",
|
||||||
"fieldname": "terms",
|
"fieldname": "terms",
|
||||||
@@ -1125,83 +1071,39 @@
|
|||||||
"cancel": 1,
|
"cancel": 1,
|
||||||
"create": 1,
|
"create": 1,
|
||||||
"doctype": "DocPerm",
|
"doctype": "DocPerm",
|
||||||
"permlevel": 0,
|
|
||||||
"role": "Material User",
|
"role": "Material User",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"amend": 0,
|
|
||||||
"cancel": 0,
|
|
||||||
"create": 0,
|
|
||||||
"doctype": "DocPerm",
|
|
||||||
"permlevel": 1,
|
|
||||||
"role": "Material User",
|
|
||||||
"submit": 0,
|
|
||||||
"write": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"amend": 1,
|
"amend": 1,
|
||||||
"cancel": 1,
|
"cancel": 1,
|
||||||
"create": 1,
|
"create": 1,
|
||||||
"doctype": "DocPerm",
|
"doctype": "DocPerm",
|
||||||
"permlevel": 0,
|
|
||||||
"role": "Material Manager",
|
"role": "Material Manager",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"amend": 0,
|
|
||||||
"cancel": 0,
|
|
||||||
"create": 0,
|
|
||||||
"doctype": "DocPerm",
|
|
||||||
"permlevel": 1,
|
|
||||||
"role": "Material Manager",
|
|
||||||
"submit": 0,
|
|
||||||
"write": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"amend": 1,
|
"amend": 1,
|
||||||
"cancel": 1,
|
"cancel": 1,
|
||||||
"create": 1,
|
"create": 1,
|
||||||
"doctype": "DocPerm",
|
"doctype": "DocPerm",
|
||||||
"permlevel": 0,
|
|
||||||
"role": "Sales User",
|
"role": "Sales User",
|
||||||
"submit": 1,
|
"submit": 1,
|
||||||
"write": 1
|
"write": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"amend": 0,
|
|
||||||
"cancel": 0,
|
"cancel": 0,
|
||||||
"create": 0,
|
"create": 0,
|
||||||
"doctype": "DocPerm",
|
"doctype": "DocPerm",
|
||||||
"permlevel": 1,
|
|
||||||
"role": "Sales User",
|
|
||||||
"submit": 0,
|
|
||||||
"write": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cancel": 0,
|
|
||||||
"create": 0,
|
|
||||||
"doctype": "DocPerm",
|
|
||||||
"permlevel": 0,
|
|
||||||
"role": "Accounts User",
|
"role": "Accounts User",
|
||||||
"submit": 0,
|
"submit": 0,
|
||||||
"write": 0
|
"write": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"amend": 0,
|
|
||||||
"cancel": 0,
|
|
||||||
"create": 0,
|
|
||||||
"doctype": "DocPerm",
|
|
||||||
"permlevel": 1,
|
|
||||||
"role": "Accounts User",
|
|
||||||
"submit": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"doctype": "DocPerm",
|
"doctype": "DocPerm",
|
||||||
"match": "customer_name",
|
"match": "customer_name",
|
||||||
"permlevel": 0,
|
|
||||||
"role": "Customer"
|
"role": "Customer"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -464,16 +464,23 @@ class DocType(StockController):
|
|||||||
item_dict = self.get_pending_raw_materials(pro_obj)
|
item_dict = self.get_pending_raw_materials(pro_obj)
|
||||||
else:
|
else:
|
||||||
item_dict = self.get_bom_raw_materials(self.doc.fg_completed_qty)
|
item_dict = self.get_bom_raw_materials(self.doc.fg_completed_qty)
|
||||||
|
for item in item_dict.values():
|
||||||
|
item["from_warehouse"] = pro_obj.doc.wip_warehouse
|
||||||
|
item["to_warehouse"] = ""
|
||||||
|
|
||||||
# add raw materials to Stock Entry Detail table
|
# add raw materials to Stock Entry Detail table
|
||||||
self.add_to_stock_entry_detail(item_dict)
|
self.add_to_stock_entry_detail(item_dict)
|
||||||
|
|
||||||
# add finished good item to Stock Entry Detail table -- along with bom_no
|
# add finished good item to Stock Entry Detail table -- along with bom_no
|
||||||
if self.doc.production_order and self.doc.purpose == "Manufacture/Repack":
|
if self.doc.production_order and self.doc.purpose == "Manufacture/Repack":
|
||||||
self.doc.to_warehouse = pro_obj.doc.fg_warehouse
|
|
||||||
self.add_to_stock_entry_detail({
|
self.add_to_stock_entry_detail({
|
||||||
cstr(pro_obj.doc.production_item):
|
cstr(pro_obj.doc.production_item): {
|
||||||
[self.doc.fg_completed_qty, pro_obj.doc.description, pro_obj.doc.stock_uom]
|
"to_warehouse": pro_obj.doc.fg_warehouse,
|
||||||
|
"from_warehouse": "",
|
||||||
|
"qty": self.doc.fg_completed_qty,
|
||||||
|
"description": pro_obj.doc.description,
|
||||||
|
"stock_uom": pro_obj.doc.stock_uom
|
||||||
|
}
|
||||||
}, bom_no=pro_obj.doc.bom_no)
|
}, bom_no=pro_obj.doc.bom_no)
|
||||||
|
|
||||||
elif self.doc.purpose in ["Material Receipt", "Manufacture/Repack"]:
|
elif self.doc.purpose in ["Material Receipt", "Manufacture/Repack"]:
|
||||||
|
|||||||
Reference in New Issue
Block a user