mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-26 00:14:50 +00:00
[Fix] UX for delivery trip (#13046)
* [Fix] UX for delivery trip * Fixed test cases
This commit is contained in:
committed by
Rushabh Mehta
parent
9360f81b94
commit
8ffd5d40e3
@@ -103,6 +103,11 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
|
|||||||
me.make_sales_return() }, __("Make"));
|
me.make_sales_return() }, __("Make"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (doc.docstatus==1) {
|
||||||
|
this.frm.add_custom_button(__('Delivery Trip'), function() {
|
||||||
|
me.make_delivery_trip() }, __("Make"));
|
||||||
|
}
|
||||||
|
|
||||||
if(doc.docstatus==0 && !doc.__islocal) {
|
if(doc.docstatus==0 && !doc.__islocal) {
|
||||||
this.frm.add_custom_button(__('Packing Slip'), function() {
|
this.frm.add_custom_button(__('Packing Slip'), function() {
|
||||||
frappe.model.open_mapped_doc({
|
frappe.model.open_mapped_doc({
|
||||||
@@ -195,6 +200,13 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
make_delivery_trip: function() {
|
||||||
|
frappe.model.open_mapped_doc({
|
||||||
|
method: "erpnext.stock.doctype.delivery_note.delivery_note.make_delivery_trip",
|
||||||
|
frm: this.frm
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
tc_name: function() {
|
tc_name: function() {
|
||||||
this.get_terms();
|
this.get_terms();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -439,6 +439,33 @@ def make_sales_invoice(source_name, target_doc=None):
|
|||||||
|
|
||||||
return doc
|
return doc
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def make_delivery_trip(source_name, target_doc=None):
|
||||||
|
def update_stop_details(source_doc, target_doc, source_parent):
|
||||||
|
target_doc.customer = source_parent.customer
|
||||||
|
target_doc.address = source_parent.shipping_address_name
|
||||||
|
target_doc.customer_address = source_parent.shipping_address
|
||||||
|
target_doc.contact = source_parent.contact_person
|
||||||
|
target_doc.customer_contact = source_parent.contact_display
|
||||||
|
|
||||||
|
doclist = get_mapped_doc("Delivery Note", source_name, {
|
||||||
|
"Delivery Note": {
|
||||||
|
"doctype": "Delivery Trip",
|
||||||
|
"validation": {
|
||||||
|
"docstatus": ["=", 1]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Delivery Note Item": {
|
||||||
|
"doctype": "Delivery Stop",
|
||||||
|
"field_map": {
|
||||||
|
"parent": "delivery_note"
|
||||||
|
},
|
||||||
|
"postprocess": update_stop_details,
|
||||||
|
}
|
||||||
|
}, target_doc)
|
||||||
|
|
||||||
|
return doclist
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_installation_note(source_name, target_doc=None):
|
def make_installation_note(source_name, target_doc=None):
|
||||||
def update_item(obj, target, source_parent):
|
def update_item(obj, target, source_parent):
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from erpnext.stock.stock_ledger import get_previous_sle
|
|||||||
from erpnext.accounts.utils import get_balance_on
|
from erpnext.accounts.utils import get_balance_on
|
||||||
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt \
|
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt \
|
||||||
import get_gl_entries, set_perpetual_inventory
|
import get_gl_entries, set_perpetual_inventory
|
||||||
from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice
|
from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice, make_delivery_trip
|
||||||
from erpnext.stock.doctype.stock_entry.test_stock_entry \
|
from erpnext.stock.doctype.stock_entry.test_stock_entry \
|
||||||
import make_stock_entry, make_serialized_item, get_qty_after_transaction
|
import make_stock_entry, make_serialized_item, get_qty_after_transaction
|
||||||
from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos, SerialNoWarehouseError
|
from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos, SerialNoWarehouseError
|
||||||
@@ -564,6 +564,11 @@ class TestDeliveryNote(unittest.TestCase):
|
|||||||
self.assertEqual(dn.per_billed, 100)
|
self.assertEqual(dn.per_billed, 100)
|
||||||
self.assertEqual(dn.status, "Completed")
|
self.assertEqual(dn.status, "Completed")
|
||||||
|
|
||||||
|
def test_delivery_trip(self):
|
||||||
|
dn = create_delivery_note()
|
||||||
|
dt = make_delivery_trip(dn.name)
|
||||||
|
self.assertEqual(dn.name, dt.delivery_stops[0].delivery_note)
|
||||||
|
|
||||||
def create_delivery_note(**args):
|
def create_delivery_note(**args):
|
||||||
dn = frappe.new_doc("Delivery Note")
|
dn = frappe.new_doc("Delivery Note")
|
||||||
args = frappe._dict(args)
|
args = frappe._dict(args)
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -72,6 +73,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -101,6 +103,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -131,6 +134,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -160,6 +164,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -191,6 +196,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -220,6 +226,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -250,6 +257,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -279,6 +287,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -309,6 +318,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -339,6 +349,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -368,6 +379,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -376,8 +388,8 @@
|
|||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
"fieldname": "select_delivery_notes",
|
"fieldname": "delivery_note",
|
||||||
"fieldtype": "Button",
|
"fieldtype": "Link",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"ignore_xss_filter": 0,
|
"ignore_xss_filter": 0,
|
||||||
@@ -385,71 +397,13 @@
|
|||||||
"in_global_search": 0,
|
"in_global_search": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"in_standard_filter": 0,
|
"in_standard_filter": 0,
|
||||||
"label": "Select/Unselect Delivery Notes",
|
"label": "Delivery Note",
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 1,
|
||||||
|
"options": "Delivery Note",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 0,
|
"print_hide": 1,
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "column_break_14",
|
|
||||||
"fieldtype": "Column Break",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "delivery_notes",
|
|
||||||
"fieldtype": "Text",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 0,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Delivery Notes",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
"print_hide_if_no_value": 0,
|
||||||
"read_only": 1,
|
"read_only": 1,
|
||||||
"remember_last_selected_value": 0,
|
"remember_last_selected_value": 0,
|
||||||
@@ -457,6 +411,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -486,6 +441,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -516,6 +472,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -545,6 +502,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -575,6 +533,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -588,7 +547,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2017-11-13 04:09:56.257540",
|
"modified": "2018-02-22 16:43:55.257470",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Delivery Stop",
|
"name": "Delivery Stop",
|
||||||
|
|||||||
@@ -36,6 +36,24 @@ frappe.ui.form.on('Delivery Trip', {
|
|||||||
frm.trigger('notify_customers');
|
frm.trigger('notify_customers');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (frm.doc.docstatus===0) {
|
||||||
|
frm.add_custom_button(__('Delivery Note'), () => {
|
||||||
|
erpnext.utils.map_current_doc({
|
||||||
|
method: "erpnext.stock.doctype.delivery_note.delivery_note.make_delivery_trip",
|
||||||
|
source_doctype: "Delivery Note",
|
||||||
|
target: frm,
|
||||||
|
date_field: "posting_date",
|
||||||
|
setters: {
|
||||||
|
company: frm.doc.company,
|
||||||
|
},
|
||||||
|
get_query_filters: {
|
||||||
|
docstatus: 1,
|
||||||
|
company: frm.doc.company,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, __("Get customers from"));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
calculate_arrival_time: function (frm) {
|
calculate_arrival_time: function (frm) {
|
||||||
@@ -154,58 +172,5 @@ frappe.ui.form.on('Delivery Stop', {
|
|||||||
} else {
|
} else {
|
||||||
frappe.model.set_value(cdt, cdn, "customer_contact", "");
|
frappe.model.set_value(cdt, cdn, "customer_contact", "");
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
select_delivery_notes: function (frm, cdt, cdn) {
|
|
||||||
var row = locals[cdt][cdn];
|
|
||||||
frappe.call({
|
|
||||||
method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_delivery_notes",
|
|
||||||
args: {"customer": row.customer},
|
|
||||||
callback: function (r) {
|
|
||||||
var delivery_notes = [];
|
|
||||||
$.each(r.message, function (field, value) {
|
|
||||||
delivery_notes.push(value.name);
|
|
||||||
});
|
|
||||||
if (r.message) {
|
|
||||||
var d = new frappe.ui.Dialog({
|
|
||||||
title: __("Select Delivery Notes"),
|
|
||||||
fields: [{fieldtype: "HTML", fieldname: "delivery_notes_html"}]
|
|
||||||
});
|
|
||||||
var html = $(`
|
|
||||||
<div style="border: 1px solid #d1d8dd">
|
|
||||||
<div class="list-item list-item--head">
|
|
||||||
<div class="list-item__content list-item__content--flex-2">
|
|
||||||
${__('Delivery Notes')}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
${delivery_notes.map(delivery_note => `
|
|
||||||
<div class="list-item">
|
|
||||||
<div class="list-item__content list-item__content--flex-2">
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" data-delivery-note="${delivery_note}" checked="checked"/>
|
|
||||||
${delivery_note}
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`).join("")}
|
|
||||||
</div>
|
|
||||||
`);
|
|
||||||
|
|
||||||
var delivery_notes_el = d.fields_dict.delivery_notes_html.$wrapper.html(html);
|
|
||||||
|
|
||||||
d.set_primary_action(__("Select"), function () {
|
|
||||||
var delivery_notes = delivery_notes_el.find('input[type=checkbox]:checked')
|
|
||||||
.map((i, el) => $(el).attr('data-delivery-note')).toArray();
|
|
||||||
if (!delivery_notes) return;
|
|
||||||
frappe.model.set_value(cdt, cdn, "delivery_notes", delivery_notes.join(","));
|
|
||||||
d.hide();
|
|
||||||
});
|
|
||||||
d.show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
frappe.msgprint(__("No submitted Delivery Notes found"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -73,6 +74,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -102,6 +104,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -132,6 +135,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -161,6 +165,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -191,6 +196,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -221,6 +227,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -250,6 +257,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -281,6 +289,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -312,6 +321,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -343,6 +353,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -373,6 +384,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -404,6 +416,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -435,6 +448,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -464,6 +478,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -472,7 +487,7 @@
|
|||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
"default": "Delivery Notification",
|
"default": "",
|
||||||
"fieldname": "delivery_notification",
|
"fieldname": "delivery_notification",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
@@ -496,6 +511,7 @@
|
|||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -526,6 +542,7 @@
|
|||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -539,8 +556,8 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2017-12-19 12:00:49.226226",
|
"modified": "2018-02-22 17:36:05.521302",
|
||||||
"modified_by": "nabinhait@gmail.com",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Delivery Trip",
|
"name": "Delivery Trip",
|
||||||
"name_case": "",
|
"name_case": "",
|
||||||
|
|||||||
@@ -82,14 +82,6 @@ def get_contact_display(contact):
|
|||||||
}
|
}
|
||||||
return contact_info.html
|
return contact_info.html
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
|
||||||
def get_delivery_notes(customer):
|
|
||||||
return frappe.db.get_all("Delivery Note", filters={
|
|
||||||
'customer': customer,
|
|
||||||
'docstatus': 1
|
|
||||||
})
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def calculate_time_matrix(name):
|
def calculate_time_matrix(name):
|
||||||
"""Calucation and round in closest 15 minutes, delivery stops"""
|
"""Calucation and round in closest 15 minutes, delivery stops"""
|
||||||
@@ -156,21 +148,17 @@ def notify_customers(docname, date, driver, vehicle, sender_email, delivery_noti
|
|||||||
delivery_stop_info = frappe.db.get_value(
|
delivery_stop_info = frappe.db.get_value(
|
||||||
"Delivery Stop",
|
"Delivery Stop",
|
||||||
delivery_stop.name,
|
delivery_stop.name,
|
||||||
["notified_by_email", "estimated_arrival", "details", "contact", "delivery_notes"],
|
["notified_by_email", "estimated_arrival", "details", "contact", "delivery_note"],
|
||||||
as_dict=1)
|
as_dict=1)
|
||||||
contact_info = frappe.db.get_value("Contact", delivery_stop_info.contact,
|
contact_info = frappe.db.get_value("Contact", delivery_stop_info.contact,
|
||||||
["first_name", "last_name", "email_id", "gender"], as_dict=1)
|
["first_name", "last_name", "email_id", "gender"], as_dict=1)
|
||||||
|
|
||||||
if delivery_stop_info.delivery_notes:
|
if delivery_stop_info.delivery_note:
|
||||||
delivery_notes = (delivery_stop_info.delivery_notes).split(",")
|
|
||||||
default_print_format = frappe.get_meta('Delivery Note').default_print_format
|
default_print_format = frappe.get_meta('Delivery Note').default_print_format
|
||||||
attachments = []
|
attachments = frappe.attach_print('Delivery Note',
|
||||||
for delivery_note in delivery_notes:
|
delivery_stop_info.delivery_note,
|
||||||
attachments.append(
|
file_name="Delivery Note",
|
||||||
frappe.attach_print('Delivery Note',
|
print_format=default_print_format or "Standard")
|
||||||
delivery_note,
|
|
||||||
file_name="Delivery Note",
|
|
||||||
print_format=default_print_format or "Standard"))
|
|
||||||
|
|
||||||
if not delivery_stop_info.notified_by_email and contact_info.email_id:
|
if not delivery_stop_info.notified_by_email and contact_info.email_id:
|
||||||
driver_info = frappe.db.get_value("Driver", driver, ["full_name", "cell_number"], as_dict=1)
|
driver_info = frappe.db.get_value("Driver", driver, ["full_name", "cell_number"], as_dict=1)
|
||||||
|
|||||||
Reference in New Issue
Block a user