Skip to content

Commit

Permalink
fix(Delivery Note): only show permitted actions
Browse files Browse the repository at this point in the history
(cherry picked from commit 418bdc1)

# Conflicts:
#	erpnext/stock/doctype/delivery_note/delivery_note.js
  • Loading branch information
barredterra authored and mergify[bot] committed May 13, 2024
1 parent 5468a3b commit 0aa246c
Show file tree
Hide file tree
Showing 2 changed files with 141 additions and 2 deletions.
2 changes: 1 addition & 1 deletion erpnext/public/js/controllers/transaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
}

const me = this;
if (!this.frm.is_new() && this.frm.doc.docstatus === 0) {
if (!this.frm.is_new() && this.frm.doc.docstatus === 0 && frappe.model.can_create("Quality Inspection")) {
this.frm.add_custom_button(__("Quality Inspection(s)"), () => {
me.make_quality_inspection();
}, __("Create"));
Expand Down
141 changes: 140 additions & 1 deletion erpnext/stock/doctype/delivery_note/delivery_note.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ frappe.ui.form.on("Delivery Note", {
erpnext.stock.delivery_note.set_print_hide(frm.doc);
},

<<<<<<< HEAD
refresh: function(frm) {
if (frm.doc.docstatus === 1 && frm.doc.is_return === 1 && frm.doc.per_billed !== 100) {
frm.add_custom_button(__('Credit Note'), function() {
Expand All @@ -94,9 +95,33 @@ frappe.ui.form.on("Delivery Note", {
})
}, __('Create'));
frm.page.set_inner_btn_group_as_primary(__('Create'));
=======
refresh: function (frm) {
if (
frm.doc.docstatus === 1 &&
frm.doc.is_return === 1 &&
frm.doc.per_billed !== 100 &&
frappe.model.can_create("Sales Invoice")
) {
frm.add_custom_button(
__("Credit Note"),
function () {
frappe.model.open_mapped_doc({
method: "erpnext.stock.doctype.delivery_note.delivery_note.make_sales_invoice",
frm: cur_frm,
});
},
__("Create")
);
frm.page.set_inner_btn_group_as_primary(__("Create"));
>>>>>>> 418bdc1dcc (fix(Delivery Note): only show permitted actions)
}

if (frm.doc.docstatus == 1 && !frm.doc.inter_company_reference) {
if (
frm.doc.docstatus == 1 &&
!frm.doc.inter_company_reference &&
frappe.model.can_create("Purchase Receipt")
) {
let internal = frm.doc.is_internal_customer;
if (internal) {
let button_label = (frm.doc.company === frm.doc.represents_company) ? "Internal Purchase Receipt" :
Expand Down Expand Up @@ -135,6 +160,7 @@ erpnext.stock.DeliveryNoteController = class DeliveryNoteController extends erpn
refresh(doc, dt, dn) {
var me = this;
super.refresh();
<<<<<<< HEAD
if ((!doc.is_return) && (doc.status!="Closed" || this.frm.is_new())) {
if (this.frm.doc.docstatus===0) {
this.frm.add_custom_button(__('Sales Order'),
Expand Down Expand Up @@ -193,6 +219,109 @@ erpnext.stock.DeliveryNoteController = class DeliveryNoteController extends erpn
}) }, __('Create')
);
}
=======
if (
!doc.is_return &&
(doc.status != "Closed" || this.frm.is_new()) &&
this.frm.has_perm("write") &&
frappe.model.can_read("Sales Order") &&
this.frm.doc.docstatus === 0
) {
this.frm.add_custom_button(
__("Sales Order"),
function () {
if (!me.frm.doc.customer) {
frappe.throw({
title: __("Mandatory"),
message: __("Please Select a Customer"),
});
}
erpnext.utils.map_current_doc({
method: "erpnext.selling.doctype.sales_order.sales_order.make_delivery_note",
args: {
for_reserved_stock: 1,
},
source_doctype: "Sales Order",
target: me.frm,
setters: {
customer: me.frm.doc.customer,
},
get_query_filters: {
docstatus: 1,
status: ["not in", ["Closed", "On Hold"]],
per_delivered: ["<", 99.99],
company: me.frm.doc.company,
project: me.frm.doc.project || undefined,
},
});
},
__("Get Items From")
);
}

if (!doc.is_return && doc.status != "Closed" && frappe.model.can_create("Shipment")) {
if (doc.docstatus == 1) {
this.frm.add_custom_button(
__("Shipment"),
function () {
me.make_shipment();
},
__("Create")
);
}

if (
flt(doc.per_installed, 2) < 100 &&
doc.docstatus == 1 &&
frappe.model.can_create("Installation Note")
) {
this.frm.add_custom_button(
__("Installation Note"),
function () {
me.make_installation_note();
},
__("Create")
);
}

if (doc.docstatus == 1 && this.frm.has_perm("create")) {
this.frm.add_custom_button(
__("Sales Return"),
function () {
me.make_sales_return();
},
__("Create")
);
}

if (doc.docstatus == 1 && frappe.model.can_create("Delivery Trip")) {
this.frm.add_custom_button(
__("Delivery Trip"),
function () {
me.make_delivery_trip();
},
__("Create")
);
}

if (
doc.docstatus == 0 &&
!doc.__islocal &&
doc.__onload &&
doc.__onload.has_unpacked_items &&
frappe.model.can_create("Packing Slip")
) {
this.frm.add_custom_button(
__("Packing Slip"),
function () {
frappe.model.open_mapped_doc({
method: "erpnext.stock.doctype.delivery_note.delivery_note.make_packing_slip",
frm: me.frm,
});
},
__("Create")
);
>>>>>>> 418bdc1dcc (fix(Delivery Note): only show permitted actions)
}

if (!doc.__islocal && doc.docstatus==1) {
Expand All @@ -211,7 +340,17 @@ erpnext.stock.DeliveryNoteController = class DeliveryNoteController extends erpn
}
}

<<<<<<< HEAD
if(doc.docstatus==1 && !doc.is_return && doc.status!="Closed" && flt(doc.per_billed) < 100) {
=======
if (
doc.docstatus == 1 &&
!doc.is_return &&
doc.status != "Closed" &&
flt(doc.per_billed) < 100 &&
frappe.model.can_create("Sales Invoice")
) {
>>>>>>> 418bdc1dcc (fix(Delivery Note): only show permitted actions)
// show Make Invoice button only if Delivery Note is not created from Sales Invoice
var from_sales_invoice = false;
from_sales_invoice = me.frm.doc.items.some(function(item) {
Expand Down

0 comments on commit 0aa246c

Please sign in to comment.