mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-26 00:14:50 +00:00
[fixes] bulk close facility, rename Drop Ship to Delivered By Supplier
This commit is contained in:
@@ -51,10 +51,10 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
|
|||||||
|
|
||||||
if(doc.docstatus==1 && !doc.is_return) {
|
if(doc.docstatus==1 && !doc.is_return) {
|
||||||
|
|
||||||
var is_drop_ship = false;
|
var is_delivered_by_supplier = false;
|
||||||
|
|
||||||
is_drop_ship = cur_frm.doc.items.some(function(item){
|
is_delivered_by_supplier = cur_frm.doc.items.some(function(item){
|
||||||
return item.is_drop_ship ? true : false;
|
return item.is_delivered_by_supplier ? true : false;
|
||||||
})
|
})
|
||||||
|
|
||||||
cur_frm.add_custom_button(doc.update_stock ? __('Sales Return') : __('Credit Note'),
|
cur_frm.add_custom_button(doc.update_stock ? __('Sales Return') : __('Credit Note'),
|
||||||
@@ -68,7 +68,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
|
|||||||
return item.delivery_note ? true : false;
|
return item.delivery_note ? true : false;
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!from_delivery_note && !is_drop_ship) {
|
if(!from_delivery_note && !is_delivered_by_supplier) {
|
||||||
cur_frm.add_custom_button(__('Delivery'), cur_frm.cscript['Make Delivery Note']).addClass("btn-primary");
|
cur_frm.add_custom_button(__('Delivery'), cur_frm.cscript['Make Delivery Note']).addClass("btn-primary");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -668,7 +668,7 @@ def make_delivery_note(source_name, target_doc=None):
|
|||||||
"so_detail": "so_detail"
|
"so_detail": "so_detail"
|
||||||
},
|
},
|
||||||
"postprocess": update_item,
|
"postprocess": update_item,
|
||||||
"condition": lambda doc: doc.is_drop_ship!=1
|
"condition": lambda doc: doc.delivered_by_supplier!=1
|
||||||
},
|
},
|
||||||
"Sales Taxes and Charges": {
|
"Sales Taxes and Charges": {
|
||||||
"doctype": "Sales Taxes and Charges",
|
"doctype": "Sales Taxes and Charges",
|
||||||
|
|||||||
@@ -684,14 +684,14 @@
|
|||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 1,
|
"collapsible": 1,
|
||||||
"collapsible_depends_on": "eval:doc.is_drop_ship==1",
|
"collapsible_depends_on": "eval:doc.delivered_by_supplier==1",
|
||||||
"fieldname": "drop_ship",
|
"fieldname": "by_supplier",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Drop Ship",
|
"label": "Delivered By Sypplier",
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
@@ -707,18 +707,18 @@
|
|||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"fieldname": "is_drop_ship",
|
"fieldname": "delivered_by_supplier",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Is Drop Ship Item",
|
"label": "Delivered By Supplier",
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 0,
|
"print_hide": 0,
|
||||||
"read_only": 1,
|
"read_only": 0,
|
||||||
"report_hide": 0,
|
"report_hide": 0,
|
||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
@@ -1327,7 +1327,7 @@
|
|||||||
"is_submittable": 0,
|
"is_submittable": 0,
|
||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"modified": "2015-10-21 19:06:40.313900",
|
"modified": "2015-10-26 17:22:23.631195",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Sales Invoice Item",
|
"name": "Sales Invoice Item",
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
|
|||||||
|
|
||||||
cur_frm.add_custom_button(__('Close'), this.close_purchase_order);
|
cur_frm.add_custom_button(__('Close'), this.close_purchase_order);
|
||||||
|
|
||||||
if(doc.is_drop_ship && doc.status!="Delivered"){
|
if(doc.delivered_by_supplier && doc.status!="Delivered"){
|
||||||
cur_frm.add_custom_button(__('Delivered By Supplier'), this.delivered_by_supplier);
|
cur_frm.add_custom_button(__('Delivered By Supplier'), this.delivered_by_supplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ class PurchaseOrder(BuyingController):
|
|||||||
clear_doctype_notifications(self)
|
clear_doctype_notifications(self)
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
if self.is_drop_ship == 1:
|
if self.delivered_by_supplier == 1:
|
||||||
self.update_status_updater()
|
self.update_status_updater()
|
||||||
|
|
||||||
super(PurchaseOrder, self).on_submit()
|
super(PurchaseOrder, self).on_submit()
|
||||||
@@ -179,7 +179,7 @@ class PurchaseOrder(BuyingController):
|
|||||||
purchase_controller.update_last_purchase_rate(self, is_submit = 1)
|
purchase_controller.update_last_purchase_rate(self, is_submit = 1)
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
if self.is_drop_ship == 1:
|
if self.delivered_by_supplier == 1:
|
||||||
self.update_status_updater()
|
self.update_status_updater()
|
||||||
|
|
||||||
pc_obj = frappe.get_doc('Purchase Common')
|
pc_obj = frappe.get_doc('Purchase Common')
|
||||||
@@ -236,9 +236,9 @@ def stop_or_unstop_purchase_orders(names, status):
|
|||||||
for name in names:
|
for name in names:
|
||||||
po = frappe.get_doc("Purchase Order", name)
|
po = frappe.get_doc("Purchase Order", name)
|
||||||
if po.docstatus == 1:
|
if po.docstatus == 1:
|
||||||
if status=="Stopped":
|
if status in ("Stopped", "Closed"):
|
||||||
if po.status not in ("Stopped", "Cancelled") and (po.per_received < 100 or po.per_billed < 100):
|
if po.status not in ("Stopped", "Cancelled", "Closed") and (po.per_received < 100 or po.per_billed < 100):
|
||||||
po.update_status("Stopped")
|
po.update_status(status)
|
||||||
else:
|
else:
|
||||||
if po.status == "Stopped":
|
if po.status == "Stopped":
|
||||||
po.update_status("Draft")
|
po.update_status("Draft")
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ frappe.listview_settings['Purchase Order'] = {
|
|||||||
listview.page.add_menu_item(__("Set as Unstopped"), function() {
|
listview.page.add_menu_item(__("Set as Unstopped"), function() {
|
||||||
listview.call_for_selected_items(method, {"status": "Submitted"});
|
listview.call_for_selected_items(method, {"status": "Submitted"});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Closed"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Closed"});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,15 +15,15 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
|||||||
refresh: function(doc, dt, dn) {
|
refresh: function(doc, dt, dn) {
|
||||||
this._super();
|
this._super();
|
||||||
this.frm.dashboard.reset();
|
this.frm.dashboard.reset();
|
||||||
var is_drop_ship = false;
|
var is_delivered_by_supplier = false;
|
||||||
var is_delivery_note = false;
|
var is_delivery_note = false;
|
||||||
|
|
||||||
if(doc.docstatus==1) {
|
if(doc.docstatus==1) {
|
||||||
if(doc.status != 'Stopped' && doc.status != 'Closed') {
|
if(doc.status != 'Stopped' && doc.status != 'Closed') {
|
||||||
|
|
||||||
$.each(cur_frm.doc.items, function(i, item){
|
$.each(cur_frm.doc.items, function(i, item){
|
||||||
if(item.is_drop_ship == 1 || item.supplier){
|
if(item.is_delivered_by_supplier == 1 || item.supplier){
|
||||||
is_drop_ship = true;
|
is_delivered_by_supplier = true;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
is_delivery_note = true;
|
is_delivery_note = true;
|
||||||
@@ -45,7 +45,7 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
|||||||
|
|
||||||
// stop
|
// stop
|
||||||
if((flt(doc.per_delivered, 2) < 100 && is_delivery_note) || doc.per_billed < 100
|
if((flt(doc.per_delivered, 2) < 100 && is_delivery_note) || doc.per_billed < 100
|
||||||
|| (flt(doc.per_ordered,2) < 100 && is_drop_ship)){
|
|| (flt(doc.per_ordered,2) < 100 && is_delivered_by_supplier)){
|
||||||
cur_frm.add_custom_button(__('Stop'), this.stop_sales_order)
|
cur_frm.add_custom_button(__('Stop'), this.stop_sales_order)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
|||||||
cur_frm.add_custom_button(__('Invoice'), this.make_sales_invoice).addClass("btn-primary");
|
cur_frm.add_custom_button(__('Invoice'), this.make_sales_invoice).addClass("btn-primary");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flt(doc.per_ordered, 2) < 100 && is_drop_ship)
|
if(flt(doc.per_ordered, 2) < 100 && is_delivered_by_supplier)
|
||||||
cur_frm.add_custom_button(__('Make Purchase Order'), cur_frm.cscript.make_purchase_order).addClass("btn-primary");
|
cur_frm.add_custom_button(__('Make Purchase Order'), cur_frm.cscript.make_purchase_order).addClass("btn-primary");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ class SalesOrder(SellingController):
|
|||||||
|
|
||||||
def validate_drop_ship(self):
|
def validate_drop_ship(self):
|
||||||
for d in self.get('items'):
|
for d in self.get('items'):
|
||||||
if d.is_drop_ship and not d.supplier:
|
if d.delivered_by_supplier and not d.supplier:
|
||||||
frappe.throw(_("Row #{0}: Set Supplier for item {1}").format(d.idx, d.item_code))
|
frappe.throw(_("Row #{0}: Set Supplier for item {1}").format(d.idx, d.item_code))
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
@@ -277,9 +277,9 @@ def stop_or_unstop_sales_orders(names, status):
|
|||||||
for name in names:
|
for name in names:
|
||||||
so = frappe.get_doc("Sales Order", name)
|
so = frappe.get_doc("Sales Order", name)
|
||||||
if so.docstatus == 1:
|
if so.docstatus == 1:
|
||||||
if status=="Stop":
|
if status in ("Stopped", "Closed"):
|
||||||
if so.status not in ("Stopped", "Cancelled") and (so.per_delivered < 100 or so.per_billed < 100):
|
if so.status not in ("Stopped", "Cancelled", "Closed") and (so.per_delivered < 100 or so.per_billed < 100):
|
||||||
so.stop_sales_order()
|
so.stop_sales_order(status)
|
||||||
else:
|
else:
|
||||||
if so.status == "Stopped":
|
if so.status == "Stopped":
|
||||||
so.unstop_sales_order()
|
so.unstop_sales_order()
|
||||||
@@ -359,7 +359,7 @@ def make_delivery_note(source_name, target_doc=None):
|
|||||||
"parent": "against_sales_order",
|
"parent": "against_sales_order",
|
||||||
},
|
},
|
||||||
"postprocess": update_item,
|
"postprocess": update_item,
|
||||||
"condition": lambda doc: doc.delivered_qty < doc.qty and doc.is_drop_ship!=1
|
"condition": lambda doc: doc.delivered_qty < doc.qty and doc.delivered_by_supplier!=1
|
||||||
},
|
},
|
||||||
"Sales Taxes and Charges": {
|
"Sales Taxes and Charges": {
|
||||||
"doctype": "Sales Taxes and Charges",
|
"doctype": "Sales Taxes and Charges",
|
||||||
@@ -507,7 +507,7 @@ def make_purchase_order_for_drop_shipment(source_name, for_supplier, target_doc=
|
|||||||
if default_price_list:
|
if default_price_list:
|
||||||
target.buying_price_list = default_price_list
|
target.buying_price_list = default_price_list
|
||||||
|
|
||||||
target.is_drop_ship = 1
|
target.delivered_by_supplier = 1
|
||||||
target.run_method("set_missing_values")
|
target.run_method("set_missing_values")
|
||||||
target.run_method("calculate_taxes_and_totals")
|
target.run_method("calculate_taxes_and_totals")
|
||||||
|
|
||||||
|
|||||||
@@ -45,12 +45,16 @@ frappe.listview_settings['Sales Order'] = {
|
|||||||
var method = "erpnext.selling.doctype.sales_order.sales_order.stop_or_unstop_sales_orders";
|
var method = "erpnext.selling.doctype.sales_order.sales_order.stop_or_unstop_sales_orders";
|
||||||
|
|
||||||
listview.page.add_menu_item(__("Set as Stopped"), function() {
|
listview.page.add_menu_item(__("Set as Stopped"), function() {
|
||||||
listview.call_for_selected_items(method, {"status": "Stop"});
|
listview.call_for_selected_items(method, {"status": "Stoped"});
|
||||||
});
|
});
|
||||||
|
|
||||||
listview.page.add_menu_item(__("Set as Unstopped"), function() {
|
listview.page.add_menu_item(__("Set as Unstopped"), function() {
|
||||||
listview.call_for_selected_items(method, {"status": "Unstop"});
|
listview.call_for_selected_items(method, {"status": "Unstop"});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
listview.page.add_menu_item(__("Set as Closed"), function() {
|
||||||
|
listview.call_for_selected_items(method, {"status": "Closed"});
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -302,7 +302,7 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
from erpnext.buying.doctype.purchase_order.purchase_order import delivered_by_supplier
|
from erpnext.buying.doctype.purchase_order.purchase_order import delivered_by_supplier
|
||||||
|
|
||||||
po_item = make_item("_Test Item for Drop Shipping", {"is_stock_item": 1, "is_sales_item": 1,
|
po_item = make_item("_Test Item for Drop Shipping", {"is_stock_item": 1, "is_sales_item": 1,
|
||||||
"is_purchase_item": 1, "is_drop_ship": 1, 'default_supplier': '_Test Supplier'})
|
"is_purchase_item": 1, "delivered_by_supplier": 1, 'default_supplier': '_Test Supplier'})
|
||||||
|
|
||||||
dn_item = make_item("_Test Regular Item", {"is_stock_item": 1, "is_sales_item": 1,
|
dn_item = make_item("_Test Regular Item", {"is_stock_item": 1, "is_sales_item": 1,
|
||||||
"is_purchase_item": 1})
|
"is_purchase_item": 1})
|
||||||
@@ -314,7 +314,7 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
"qty": 2,
|
"qty": 2,
|
||||||
"rate": 400,
|
"rate": 400,
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
"is_drop_ship": 1,
|
"delivered_by_supplier": 1,
|
||||||
"supplier": '_Test Supplier'
|
"supplier": '_Test Supplier'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -687,14 +687,14 @@
|
|||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 1,
|
"collapsible": 1,
|
||||||
"collapsible_depends_on": "eval:doc.is_drop_ship==1",
|
"collapsible_depends_on": "eval:doc.delivered_by_supplier==1||doc.supplier",
|
||||||
"fieldname": "drop_ship",
|
"fieldname": "by_supplier",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Drop Ship",
|
"label": "Delivered by Supplier",
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
@@ -707,20 +707,20 @@
|
|||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 1,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"fieldname": "is_drop_ship",
|
"fieldname": "delivered_by_supplier",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Is Drop Ship Item",
|
"label": "Delivered By Supplier",
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 1,
|
"print_hide": 0,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
"report_hide": 0,
|
"report_hide": 0,
|
||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
@@ -1206,7 +1206,7 @@
|
|||||||
"is_submittable": 0,
|
"is_submittable": 0,
|
||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"modified": "2015-10-21 19:25:21.712515",
|
"modified": "2015-10-26 17:17:04.378067",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Selling",
|
"module": "Selling",
|
||||||
"name": "Sales Order Item",
|
"name": "Sales Order Item",
|
||||||
|
|||||||
@@ -250,13 +250,13 @@
|
|||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"fieldname": "is_drop_ship",
|
"fieldname": "delivered_by_supplier",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Is Drop Ship",
|
"label": "Delivered By Supplier",
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
@@ -2157,7 +2157,11 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 1,
|
"max_attachments": 1,
|
||||||
|
<<<<<<< ac7a1da680daa876b9f107cec87150cf7a195138
|
||||||
"modified": "2015-10-29 02:25:26.256373",
|
"modified": "2015-10-29 02:25:26.256373",
|
||||||
|
=======
|
||||||
|
"modified": "2015-10-26 17:18:54.615802",
|
||||||
|
>>>>>>> [fixes] bulk close facility, rename Drop Ship to Delivered By Supplier
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Item",
|
"name": "Item",
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ def get_basic_details(args, item):
|
|||||||
"net_amount": 0.0,
|
"net_amount": 0.0,
|
||||||
"discount_percentage": 0.0,
|
"discount_percentage": 0.0,
|
||||||
"supplier": item.default_supplier,
|
"supplier": item.default_supplier,
|
||||||
"is_drop_ship": item.is_drop_ship,
|
"delivered_by_supplier": item.delivered_by_supplier,
|
||||||
})
|
})
|
||||||
|
|
||||||
# if default specified in item is for another company, fetch from company
|
# if default specified in item is for another company, fetch from company
|
||||||
|
|||||||
Reference in New Issue
Block a user