Browse Source

[production order] [delivery note] fixes, pull

develop
Rushabh Mehta 11 years ago
parent
commit
304a4a66b4
  1. 4
      manufacturing/doctype/production_order/production_order.js
  2. 4
      manufacturing/doctype/production_order/production_order.py
  3. 48
      stock/doctype/delivery_note/delivery_note.js
  4. 102
      stock/doctype/delivery_note/delivery_note.txt
  5. 13
      stock/doctype/stock_entry/stock_entry.py

4
manufacturing/doctype/production_order/production_order.js

@ -28,8 +28,8 @@ cur_frm.cscript.refresh = function(doc, dt, dn) {
if(doc.docstatus===0 && !doc.__islocal) {
cur_frm.set_intro("Submit this Production Order for further processing.");
} else if(doc.docstatus===1) {
var percent = flt(doc.produced_qty) / doc.qty * 100;
cur_frm.dashboard.add_progress(cint(percent) + "% " + wn._("Complete"));
var percent = flt(doc.produced_qty) / flt(doc.qty) * 100;
cur_frm.dashboard.add_progress(cint(percent) + "% " + wn._("Complete"), percent);
if(doc.status === "Stopped") {
cur_frm.dashboard.set_headline_alert(wn._("Stopped"), "alert-danger", "icon-stop");

4
manufacturing/doctype/production_order/production_order.py

@ -76,9 +76,9 @@ class DocType:
(self.doc.sales_order, self.doc.production_item))[0][0]
# total qty in SO
so_qty = flt(so_item_qty) + flt(dnpi_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).
Please reduce qty or remove the item.""" %
(self.doc.production_item, self.doc.sales_order,

48
stock/doctype/delivery_note/delivery_note.js

@ -46,15 +46,27 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
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("cost_center", aii_enabled);
if (this.frm.doc.docstatus===0) {
cur_frm.add_custom_button(wn._('From Sales Order'),
function() {
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
}
})
});
}
},
get_items: function() {
wn.model.map_current_doc({
method: "selling.doctype.sales_order.sales_order.make_delivery_note",
source_name: cur_frm.doc.sales_order_no,
})
},
make_sales_invoice: function() {
wn.model.open_mapped_doc({
method: "stock.doctype.delivery_note.delivery_note.make_sales_invoice",
@ -67,7 +79,11 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
method: "stock.doctype.delivery_note.delivery_note.make_installation_note",
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});
}
// *************** 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) {
var d = locals[cdt][cdn];
if (d.serial_no) {

102
stock/doctype/delivery_note/delivery_note.txt

@ -2,7 +2,7 @@
{
"creation": "2013-05-24 19:29:09",
"docstatus": 0,
"modified": "2013-07-06 19:04:46",
"modified": "2013-07-08 16:34:21",
"modified_by": "Administrator",
"owner": "Administrator"
},
@ -34,6 +34,7 @@
"parent": "Delivery Note",
"parentfield": "permissions",
"parenttype": "DocType",
"permlevel": 0,
"read": 1,
"report": 1
},
@ -373,42 +374,6 @@
"print_hide": 1,
"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",
"fieldname": "net_total_export",
@ -664,25 +629,6 @@
"print_hide": 1,
"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",
"fieldname": "terms",
@ -1125,83 +1071,39 @@
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
"permlevel": 0,
"role": "Material User",
"submit": 1,
"write": 1
},
{
"amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
"permlevel": 1,
"role": "Material User",
"submit": 0,
"write": 0
},
{
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
"permlevel": 0,
"role": "Material Manager",
"submit": 1,
"write": 1
},
{
"amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
"permlevel": 1,
"role": "Material Manager",
"submit": 0,
"write": 0
},
{
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
"permlevel": 0,
"role": "Sales User",
"submit": 1,
"write": 1
},
{
"amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
"permlevel": 1,
"role": "Sales User",
"submit": 0,
"write": 0
},
{
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
"permlevel": 0,
"role": "Accounts User",
"submit": 0,
"write": 0
},
{
"amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
"permlevel": 1,
"role": "Accounts User",
"submit": 0
},
{
"doctype": "DocPerm",
"match": "customer_name",
"permlevel": 0,
"role": "Customer"
}
]

13
stock/doctype/stock_entry/stock_entry.py

@ -464,16 +464,23 @@ class DocType(StockController):
item_dict = self.get_pending_raw_materials(pro_obj)
else:
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
self.add_to_stock_entry_detail(item_dict)
# add finished good item to Stock Entry Detail table -- along with bom_no
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({
cstr(pro_obj.doc.production_item):
[self.doc.fg_completed_qty, pro_obj.doc.description, pro_obj.doc.stock_uom]
cstr(pro_obj.doc.production_item): {
"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)
elif self.doc.purpose in ["Material Receipt", "Manufacture/Repack"]:

Loading…
Cancel
Save