* chore: make `Reserve Stock` checkbox visible in SO (cherry picked from commit 36a996d70499a8bc4cf9c28853c2b5606d73f81d) * refactor: rename field `Auto Reserve Stock for Sales Order` (cherry picked from commit 2b4fa98941817966b8a936e4076be84406ad035a) * feat: add fields to hold SO and SO Item ref in PR Item (cherry picked from commit 188175be84b5eaa0be73face69f4f2b58b80dd64) * feat: reserve stock for SO on PR submission (cherry picked from commit 64497c922892d19ca378b5da75cf6b528f5e52d9) # Conflicts: # erpnext/stock/doctype/purchase_receipt/purchase_receipt.py * feat: add field `From Voucher Type` in SRE (cherry picked from commit 5ae9c2f62b741d64da4ce74b3b251339711e8256) * refactor: rename field `against_pick_list_item` (cherry picked from commit 78fe56741931ad2c253bf9acca2896c2411f4ac6) * refactor: rename field `against_pick_list` (cherry picked from commit 961d2d9926a1a9c0396c3292d431d3bad6865e62) * fix: incorrect serial and batch get reserved (cherry picked from commit 45395027d3b5c51ac3ccdbebb1f0d23d5ffd2ec1) * fix: partial reservation against SBB (cherry picked from commit 4f363f5bf3da286999966f10d0cca22264f42199) * fix: ignore qty msg if From Voucher is set (cherry picked from commit a432290a828478265a8a463d05aea818c2b75914) * test: add test case for auto-reservation from PR (cherry picked from commit adf313a6d3308f957b4876574e455ca750b22106) * chore: add SRE link in PR Connections (cherry picked from commit 24788ddcc085fb825d2b14145a82ced02842f512) * chore: patch to update `From Voucher` details (cherry picked from commit 6942ab10125cfaf07c526df53a7c88bffcc5b9da) * chore: `conflicts` * fix(patch): `update_sre_from_voucher_details` --------- Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
185 lines
4.0 KiB
JavaScript
185 lines
4.0 KiB
JavaScript
// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
|
|
// For license information, please see license.txt
|
|
|
|
frappe.query_reports["Reserved Stock"] = {
|
|
filters: [
|
|
{
|
|
fieldname: "company",
|
|
label: __("Company"),
|
|
fieldtype: "Link",
|
|
options: "Company",
|
|
reqd: 1,
|
|
default: frappe.defaults.get_user_default("Company"),
|
|
},
|
|
{
|
|
fieldname: "from_date",
|
|
label: __("From Date"),
|
|
fieldtype: "Date",
|
|
default: frappe.datetime.add_months(
|
|
frappe.datetime.get_today(),
|
|
-1
|
|
),
|
|
reqd: 1,
|
|
},
|
|
{
|
|
fieldname: "to_date",
|
|
label: __("To Date"),
|
|
fieldtype: "Date",
|
|
default: frappe.datetime.get_today(),
|
|
reqd: 1,
|
|
},
|
|
{
|
|
fieldname: "item_code",
|
|
label: __("Item"),
|
|
fieldtype: "Link",
|
|
options: "Item",
|
|
get_query: () => ({
|
|
filters: {
|
|
is_stock_item: 1,
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
fieldname: "warehouse",
|
|
label: __("Warehouse"),
|
|
fieldtype: "Link",
|
|
options: "Warehouse",
|
|
get_query: () => ({
|
|
filters: {
|
|
is_group: 0,
|
|
company: frappe.query_report.get_filter_value("company"),
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
fieldname: "stock_reservation_entry",
|
|
label: __("Stock Reservation Entry"),
|
|
fieldtype: "Link",
|
|
options: "Stock Reservation Entry",
|
|
get_query: () => ({
|
|
filters: {
|
|
docstatus: 1,
|
|
company: frappe.query_report.get_filter_value("company"),
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
fieldname: "voucher_type",
|
|
label: __("Voucher Type"),
|
|
fieldtype: "Link",
|
|
options: "DocType",
|
|
default: "Sales Order",
|
|
get_query: () => ({
|
|
filters: {
|
|
name: ["in", ["Sales Order"]],
|
|
}
|
|
}),
|
|
},
|
|
{
|
|
fieldname: "voucher_no",
|
|
label: __("Voucher No"),
|
|
fieldtype: "Dynamic Link",
|
|
options: "voucher_type",
|
|
get_query: () => ({
|
|
filters: {
|
|
docstatus: 1,
|
|
company: frappe.query_report.get_filter_value("company"),
|
|
},
|
|
}),
|
|
get_options: function () {
|
|
return frappe.query_report.get_filter_value("voucher_type");
|
|
},
|
|
},
|
|
{
|
|
fieldname: "from_voucher_type",
|
|
label: __("From Voucher Type"),
|
|
fieldtype: "Link",
|
|
options: "DocType",
|
|
get_query: () => ({
|
|
filters: {
|
|
name: ["in", ["Pick List", "Purchase Receipt"]],
|
|
}
|
|
}),
|
|
},
|
|
{
|
|
fieldname: "from_voucher_no",
|
|
label: __("From Voucher No"),
|
|
fieldtype: "Dynamic Link",
|
|
options: "from_voucher_type",
|
|
get_query: () => ({
|
|
filters: {
|
|
docstatus: 1,
|
|
company: frappe.query_report.get_filter_value("company"),
|
|
},
|
|
}),
|
|
get_options: function () {
|
|
return frappe.query_report.get_filter_value("from_voucher_type");
|
|
},
|
|
},
|
|
{
|
|
fieldname: "reservation_based_on",
|
|
label: __("Reservation Based On"),
|
|
fieldtype: "Select",
|
|
options: ["", "Qty", "Serial and Batch"],
|
|
},
|
|
{
|
|
fieldname: "status",
|
|
label: __("Status"),
|
|
fieldtype: "Select",
|
|
options: [
|
|
"",
|
|
"Partially Reserved",
|
|
"Reserved",
|
|
"Partially Delivered",
|
|
"Delivered",
|
|
],
|
|
},
|
|
{
|
|
fieldname: "project",
|
|
label: __("Project"),
|
|
fieldtype: "Link",
|
|
options: "Project",
|
|
get_query: () => ({
|
|
filters: {
|
|
company: frappe.query_report.get_filter_value("company"),
|
|
},
|
|
}),
|
|
},
|
|
],
|
|
formatter: (value, row, column, data, default_formatter) => {
|
|
value = default_formatter(value, row, column, data);
|
|
|
|
if (column.fieldname == "status") {
|
|
switch (data.status) {
|
|
case "Partially Reserved":
|
|
value = "<span style='color:orange'>" + value + "</span>";
|
|
break;
|
|
case "Reserved":
|
|
value = "<span style='color:blue'>" + value + "</span>";
|
|
break;
|
|
case "Partially Delivered":
|
|
value = "<span style='color:purple'>" + value + "</span>";
|
|
break;
|
|
case "Delivered":
|
|
value = "<span style='color:green'>" + value + "</span>";
|
|
break;
|
|
}
|
|
}
|
|
else if (column.fieldname == "delivered_qty") {
|
|
if (data.delivered_qty > 0) {
|
|
if (data.reserved_qty > data.delivered_qty) {
|
|
value = "<span style='color:blue'>" + value + "</span>";
|
|
}
|
|
else {
|
|
value = "<span style='color:green'>" + value + "</span>";
|
|
}
|
|
}
|
|
else {
|
|
value = "<span style='color:red'>" + value + "</span>";
|
|
}
|
|
}
|
|
|
|
return value;
|
|
},
|
|
};
|