Browse Source

Merge branch 'develop' into purchase-invoice-payment-terms

develop
Marica 4 years ago
committed by GitHub
parent
commit
7e1511f527
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
  2. 12
      erpnext/accounts/doctype/sales_invoice/sales_invoice.js
  3. 2
      erpnext/accounts/print_format/journal_auditing_voucher/journal_auditing_voucher.html
  4. 2
      erpnext/accounts/print_format/payment_receipt_voucher/payment_receipt_voucher.html
  5. 4
      erpnext/accounts/print_format/purchase_auditing_voucher/purchase_auditing_voucher.html
  6. 4
      erpnext/accounts/print_format/sales_auditing_voucher/sales_auditing_voucher.html
  7. 6
      erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
  8. 2
      erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
  9. 6
      erpnext/buying/doctype/purchase_order/purchase_order.js
  10. 50
      erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
  11. 14
      erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
  12. 2
      erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
  13. 6
      erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
  14. 2
      erpnext/patches.txt
  15. 2
      erpnext/patches/v12_0/generate_leave_ledger_entries.py
  16. 2
      erpnext/public/js/controllers/buying.js
  17. 2
      erpnext/public/js/utils.js
  18. 2
      erpnext/selling/doctype/quotation/quotation.js
  19. 45
      erpnext/selling/doctype/sales_order/sales_order.js
  20. 8
      erpnext/selling/doctype/sales_order/sales_order.py
  21. 2
      erpnext/stock/doctype/delivery_note/delivery_note.js
  22. 10
      erpnext/stock/doctype/material_request/material_request.js
  23. 3
      erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
  24. 14
      erpnext/stock/doctype/stock_entry/stock_entry.js
  25. 2
      erpnext/templates/pages/material_request_info.html
  26. 4
      erpnext/templates/pages/order.html

7
erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js

@ -99,6 +99,7 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
target: me.frm,
setters: {
supplier: me.frm.doc.supplier || undefined,
schedule_date: undefined
},
get_query_filters: {
docstatus: 1,
@ -107,16 +108,16 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
this.frm.add_custom_button(__('Purchase Receipt'), function() {
erpnext.utils.map_current_doc({
method: "erpnext.stock.doctype.purchase_receipt.purchase_receipt.make_purchase_invoice",
source_doctype: "Purchase Receipt",
target: me.frm,
date_field: "posting_date",
setters: {
supplier: me.frm.doc.supplier || undefined,
posting_date: undefined
},
get_query_filters: {
docstatus: 1,
@ -125,7 +126,7 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
is_return: 0
}
})
}, __("Get items from"));
}, __("Get Items From"));
}
this.frm.toggle_reqd("supplier_warehouse", this.frm.doc.is_subcontracted==="Yes");

12
erpnext/accounts/doctype/sales_invoice/sales_invoice.js

@ -199,7 +199,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
},
quotation_btn: function() {
@ -223,7 +223,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
},
delivery_note_btn: function() {
@ -251,7 +251,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
};
}
});
}, __("Get items from"));
}, __("Get Items From"));
},
tc_name: function() {
@ -812,10 +812,10 @@ frappe.ui.form.on('Sales Invoice', {
if (cint(frm.doc.docstatus==0) && cur_frm.page.current_view_name!=="pos" && !frm.doc.is_return) {
frm.add_custom_button(__('Healthcare Services'), function() {
get_healthcare_services_to_invoice(frm);
},"Get items from");
},"Get Items From");
frm.add_custom_button(__('Prescriptions'), function() {
get_drugs_to_invoice(frm);
},"Get items from");
},"Get Items From");
}
}
else {
@ -1080,7 +1080,7 @@ var get_drugs_to_invoice = function(frm) {
description:'Quantity will be calculated only for items which has "Nos" as UoM. You may change as required for each invoice item.',
get_query: function(doc) {
return {
filters: {
filters: {
patient: dialog.get_value("patient"),
company: frm.doc.company,
docstatus: 1

2
erpnext/accounts/print_format/journal_auditing_voucher/journal_auditing_voucher.html

@ -17,7 +17,7 @@
</div>
<div class="col-xs-6">
<table>
<tr><td><strong>Date: </strong></td><td>{{ frappe.utils.formatdate(doc.creation) }}</td></tr>
<tr><td><strong>Date: </strong></td><td>{{ frappe.utils.format_date(doc.creation) }}</td></tr>
</table>
</div>
</div>

2
erpnext/accounts/print_format/payment_receipt_voucher/payment_receipt_voucher.html

@ -5,7 +5,7 @@
{{ add_header(0, 1, doc, letter_head, no_letterhead, print_settings) }}
{%- for label, value in (
(_("Received On"), frappe.utils.formatdate(doc.voucher_date)),
(_("Received On"), frappe.utils.format_date(doc.voucher_date)),
(_("Received From"), doc.pay_to_recd_from),
(_("Amount"), "<strong>" + doc.get_formatted("total_amount") + "</strong><br>" + (doc.total_amount_in_words or "") + "<br>"),
(_("Remarks"), doc.remark)

4
erpnext/accounts/print_format/purchase_auditing_voucher/purchase_auditing_voucher.html

@ -8,7 +8,7 @@
<div class="col-xs-6">
<table>
<tr><td><strong>Supplier Name: </strong></td><td>{{ doc.supplier }}</td></tr>
<tr><td><strong>Due Date: </strong></td><td>{{ frappe.utils.formatdate(doc.due_date) }}</td></tr>
<tr><td><strong>Due Date: </strong></td><td>{{ frappe.utils.format_date(doc.due_date) }}</td></tr>
<tr><td><strong>Address: </strong></td><td>{{doc.address_display}}</td></tr>
<tr><td><strong>Contact: </strong></td><td>{{doc.contact_display}}</td></tr>
<tr><td><strong>Mobile no: </strong> </td><td>{{doc.contact_mobile}}</td></tr>
@ -17,7 +17,7 @@
<div class="col-xs-6">
<table>
<tr><td><strong>Voucher No: </strong></td><td>{{ doc.name }}</td></tr>
<tr><td><strong>Date: </strong></td><td>{{ frappe.utils.formatdate(doc.creation) }}</td></tr>
<tr><td><strong>Date: </strong></td><td>{{ frappe.utils.format_date(doc.creation) }}</td></tr>
</table>
</div>
</div>

4
erpnext/accounts/print_format/sales_auditing_voucher/sales_auditing_voucher.html

@ -8,7 +8,7 @@
<div class="col-xs-6">
<table>
<tr><td><strong>Customer Name: </strong></td><td>{{ doc.customer }}</td></tr>
<tr><td><strong>Due Date: </strong></td><td>{{ frappe.utils.formatdate(doc.due_date) }}</td></tr>
<tr><td><strong>Due Date: </strong></td><td>{{ frappe.utils.format_date(doc.due_date) }}</td></tr>
<tr><td><strong>Address: </strong></td><td>{{doc.address_display}}</td></tr>
<tr><td><strong>Contact: </strong></td><td>{{doc.contact_display}}</td></tr>
<tr><td><strong>Mobile no: </strong> </td><td>{{doc.contact_mobile}}</td></tr>
@ -17,7 +17,7 @@
<div class="col-xs-6">
<table>
<tr><td><strong>Voucher No: </strong></td><td>{{ doc.name }}</td></tr>
<tr><td><strong>Date: </strong></td><td>{{ frappe.utils.formatdate(doc.creation) }}</td></tr>
<tr><td><strong>Date: </strong></td><td>{{ frappe.utils.format_date(doc.creation) }}</td></tr>
</table>
</div>
</div>

6
erpnext/assets/doctype/asset_finance_book/asset_finance_book.json

@ -50,13 +50,11 @@
"reqd": 1
},
{
"depends_on": "eval:parent.doctype == 'Asset'",
"fieldname": "depreciation_start_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Depreciation Posting Date",
"mandatory_depends_on": "eval:parent.doctype == 'Asset'",
"reqd": 1
"mandatory_depends_on": "eval:parent.doctype == 'Asset'"
},
{
"default": "0",
@ -87,7 +85,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2020-10-30 15:22:29.119868",
"modified": "2020-11-05 16:30:09.213479",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Finance Book",

2
erpnext/assets/doctype/asset_maintenance/asset_maintenance.py

@ -108,7 +108,7 @@ def update_maintenance_log(asset_maintenance, item_code, item_name, task):
@frappe.whitelist()
@frappe.validate_and_sanitize_search_inputs
def get_team_members(doctype, txt, searchfield, start, page_len, filters):
return frappe.db.get_values('Maintenance Team Member', { 'parent': filters.get("maintenance_team") })
return frappe.db.get_values('Maintenance Team Member', { 'parent': filters.get("maintenance_team") }, "team_member")
@frappe.whitelist()
def get_maintenance_log(asset_name):

6
erpnext/buying/doctype/purchase_order/purchase_order.js

@ -299,7 +299,7 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
if(me.values) {
me.values.sub_con_rm_items.map((row,i) => {
if (!row.item_code || !row.rm_item_code || !row.warehouse || !row.qty || row.qty === 0) {
frappe.throw(__("Item Code, warehouse, quantity are required on row" + (i+1)));
frappe.throw(__("Item Code, warehouse, quantity are required on row {0}", [i+1]));
}
})
me._make_rm_stock_entry(me.dialog.fields_dict.sub_con_rm_items.grid.get_selected_children())
@ -366,7 +366,7 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
per_ordered: ["<", 99.99],
}
})
}, __("Get items from"));
}, __("Get Items From"));
this.frm.add_custom_button(__('Supplier Quotation'),
function() {
@ -382,7 +382,7 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
status: ["!=", "Stopped"],
}
})
}, __("Get items from"));
}, __("Get Items From"));
this.frm.add_custom_button(__('Update rate as per last purchase'),
function() {

50
erpnext/buying/doctype/request_for_quotation/request_for_quotation.js

@ -217,13 +217,15 @@ erpnext.buying.RequestforQuotationController = erpnext.buying.BuyingController.e
source_doctype: "Material Request",
target: me.frm,
setters: {
company: me.frm.doc.company
schedule_date: undefined,
status: undefined
},
get_query_filters: {
material_request_type: "Purchase",
docstatus: 1,
status: ["!=", "Stopped"],
per_ordered: ["<", 99.99]
per_ordered: ["<", 99.99],
company: me.frm.doc.company
}
})
}, __("Get Items From"));
@ -236,32 +238,40 @@ erpnext.buying.RequestforQuotationController = erpnext.buying.BuyingController.e
source_doctype: "Opportunity",
target: me.frm,
setters: {
company: me.frm.doc.company
party_name: undefined,
opportunity_from: undefined,
status: undefined
},
get_query_filters: {
status: ["not in", ["Closed", "Lost"]],
company: me.frm.doc.company
}
})
}, __("Get Items From"));
// Get items from open Material Requests based on supplier
this.frm.add_custom_button(__('Possible Supplier'), function() {
// Create a dialog window for the user to pick their supplier
var d = new frappe.ui.Dialog({
var dialog = new frappe.ui.Dialog({
title: __('Select Possible Supplier'),
fields: [
{fieldname: 'supplier', fieldtype:'Link', options:'Supplier', label:'Supplier', reqd:1},
{fieldname: 'ok_button', fieldtype:'Button', label:'Get Items from Material Requests'},
]
});
// On the user clicking the ok button
d.fields_dict.ok_button.input.onclick = function() {
var btn = d.fields_dict.ok_button.input;
var v = d.get_values();
if(v) {
$(btn).set_working();
{
fieldname: 'supplier',
fieldtype:'Link',
options:'Supplier',
label:'Supplier',
reqd:1,
description: __("Get Items from Material Requests against this Supplier")
}
],
primary_action_label: __("Get Items"),
primary_action: (args) => {
if(!args) return;
dialog.hide();
erpnext.utils.map_current_doc({
method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.get_item_from_material_requests_based_on_supplier",
source_name: v.supplier,
source_name: args.supplier,
target: me.frm,
setters: {
company: me.frm.doc.company
@ -273,11 +283,11 @@ erpnext.buying.RequestforQuotationController = erpnext.buying.BuyingController.e
per_ordered: ["<", 99.99]
}
});
$(btn).done_working();
d.hide();
dialog.hide();
}
}
d.show();
});
dialog.show();
}, __("Get Items From"));
// Get Suppliers

14
erpnext/buying/doctype/supplier_quotation/supplier_quotation.js

@ -37,16 +37,18 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext
source_doctype: "Material Request",
target: me.frm,
setters: {
company: me.frm.doc.company
schedule_date: undefined,
status: undefined
},
get_query_filters: {
material_request_type: "Purchase",
docstatus: 1,
status: ["!=", "Stopped"],
per_ordered: ["<", 99.99]
per_ordered: ["<", 99.99],
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
this.frm.add_custom_button(__("Request for Quotation"),
function() {
@ -58,16 +60,16 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext
source_doctype: "Request for Quotation",
target: me.frm,
setters: {
company: me.frm.doc.company,
transaction_date: null
},
get_query_filters: {
supplier: me.frm.doc.supplier
supplier: me.frm.doc.supplier,
company: me.frm.doc.company
},
get_query_method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.get_rfq_containing_supplier"
})
}, __("Get items from"));
}, __("Get Items From"));
}
},

2
erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js

@ -66,7 +66,7 @@ erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
company: me.frm.doc.company
}
});
}, __("Get items from"));
}, __("Get Items From"));
} else if (this.frm.doc.docstatus === 1) {
this.frm.add_custom_button(__('Create Maintenance Visit'), function() {
frappe.model.open_mapped_doc({

6
erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js

@ -62,7 +62,7 @@ erpnext.maintenance.MaintenanceVisit = frappe.ui.form.Controller.extend({
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
this.frm.add_custom_button(__('Warranty Claim'),
function() {
erpnext.utils.map_current_doc({
@ -78,7 +78,7 @@ erpnext.maintenance.MaintenanceVisit = frappe.ui.form.Controller.extend({
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
this.frm.add_custom_button(__('Sales Order'),
function() {
erpnext.utils.map_current_doc({
@ -94,7 +94,7 @@ erpnext.maintenance.MaintenanceVisit = frappe.ui.form.Controller.extend({
order_type: me.frm.doc.order_type,
}
})
}, __("Get items from"));
}, __("Get Items From"));
}
},
});

2
erpnext/patches.txt

@ -632,7 +632,7 @@ execute:frappe.reload_doc('desk', 'doctype', 'dashboard_chart_source')
execute:frappe.reload_doc('desk', 'doctype', 'dashboard_chart')
execute:frappe.reload_doc('desk', 'doctype', 'dashboard_chart_field')
erpnext.patches.v12_0.remove_bank_remittance_custom_fields
erpnext.patches.v12_0.generate_leave_ledger_entries #27-08-2020
erpnext.patches.v12_0.generate_leave_ledger_entries #04-11-2020
execute:frappe.delete_doc_if_exists("Report", "Loan Repayment")
erpnext.patches.v12_0.move_credit_limit_to_customer_credit_limit
erpnext.patches.v12_0.add_variant_of_in_item_attribute_table

2
erpnext/patches/v12_0/generate_leave_ledger_entries.py

@ -11,8 +11,6 @@ def execute():
frappe.reload_doc("HR", "doctype", "Leave Ledger Entry")
frappe.reload_doc("HR", "doctype", "Leave Encashment")
frappe.reload_doc("HR", "doctype", "Leave Type")
if frappe.db.a_row_exists("Leave Ledger Entry"):
return
if not frappe.get_meta("Leave Allocation").has_field("unused_leaves"):
frappe.reload_doc("HR", "doctype", "Leave Allocation")

2
erpnext/public/js/controllers/buying.js

@ -276,7 +276,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({
var me = this;
this.frm.add_custom_button(__("Product Bundle"), function() {
erpnext.buying.get_items_from_product_bundle(me.frm);
}, __("Get items from"));
}, __("Get Items From"));
},
shipping_address: function(){

2
erpnext/public/js/utils.js

@ -539,7 +539,7 @@ erpnext.utils.update_child_items = function(opts) {
fieldtype: "Table",
label: "Items",
cannot_add_rows: cannot_add_row,
in_place_edit: true,
in_place_edit: false,
reqd: 1,
data: this.data,
get_data: () => {

2
erpnext/selling/doctype/quotation/quotation.js

@ -116,7 +116,7 @@ erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({
company: me.frm.doc.company
}
})
}, __("Get items from"), "btn-default");
}, __("Get Items From"), "btn-default");
}
this.toggle_reqd_lead_customer();

45
erpnext/selling/doctype/sales_order/sales_order.js

@ -236,7 +236,7 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
status: ["!=", "Lost"]
}
})
}, __("Get items from"));
}, __("Get Items From"));
}
this.order_type(doc);
@ -572,12 +572,6 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
"fieldname": "against_default_supplier",
"default": 0
},
{
"fieldtype": "Section Break",
"label": "",
"fieldname": "sec_break_dialog",
"hide_border": 1
},
{
fieldname: 'items_for_po', fieldtype: 'Table', label: 'Select Items',
fields: [
@ -616,16 +610,13 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
read_only:1,
in_list_view:1
},
],
data: me.frm.doc.items.map((item) =>{
item.pending_qty = (flt(item.stock_qty) - flt(item.ordered_qty)) / flt(item.conversion_factor);
return item;
}).filter((item) => {return item.pending_qty > 0;})
]
}
],
primary_action_label: 'Create Purchase Order',
primary_action (args) {
if (!args) return;
let selected_items = dialog.fields_dict.items_for_po.grid.get_selected_children();
if(selected_items.length == 0) {
frappe.throw({message: 'Please select Items from the Table', title: __('Items Required'), indicator:'blue'})
@ -635,8 +626,9 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
var method = args.against_default_supplier ? "make_purchase_order_for_default_supplier" : "make_purchase_order"
return frappe.call({
type: "GET",
method: "erpnext.selling.doctype.sales_order.sales_order." + method,
freeze: true,
freeze_message: __("Creating Purchase Order ..."),
args: {
"source_name": me.frm.doc.name,
"selected_items": selected_items
@ -660,8 +652,9 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
}
});
dialog.fields_dict["against_default_supplier"].df.onchange = () => {
console.log("yo");
dialog.fields_dict["against_default_supplier"].df.onchange = () => set_po_items_data(dialog);
function set_po_items_data (dialog) {
var against_default_supplier = dialog.get_value("against_default_supplier");
var items_for_po = dialog.get_value("items_for_po");
@ -671,16 +664,28 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
dialog.fields_dict["items_for_po"].df.data = items_with_supplier;
dialog.get_field("items_for_po").refresh();
} else {
let pending_items = me.frm.doc.items.map((item) =>{
item.pending_qty = (flt(item.stock_qty) - flt(item.ordered_qty)) / flt(item.conversion_factor);
return item;
}).filter((item) => {return item.pending_qty > 0;});
let po_items = [];
me.frm.doc.items.forEach(d => {
let pending_qty = (flt(d.stock_qty) - flt(d.ordered_qty)) / flt(d.conversion_factor);
if (pending_qty > 0) {
po_items.push({
"doctype": "Sales Order Item",
"name": d.name,
"item_name": d.item_name,
"item_code": d.item_code,
"pending_qty": pending_qty,
"uom": d.uom,
"supplier": d.supplier
});
}
});
dialog.fields_dict["items_for_po"].df.data = pending_items;
dialog.fields_dict["items_for_po"].df.data = po_items;
dialog.get_field("items_for_po").refresh();
}
}
set_po_items_data(dialog);
dialog.get_field("items_for_po").grid.only_sortable();
dialog.get_field("items_for_po").refresh();
dialog.wrapper.find('.grid-heading-row .grid-row-check').click();

8
erpnext/selling/doctype/sales_order/sales_order.py

@ -779,7 +779,9 @@ def get_events(start, end, filters=None):
return data
@frappe.whitelist()
def make_purchase_order_for_default_supplier(source_name, selected_items=[], target_doc=None):
def make_purchase_order_for_default_supplier(source_name, selected_items=None, target_doc=None):
if not selected_items: return
if isinstance(selected_items, string_types):
selected_items = json.loads(selected_items)
@ -878,7 +880,9 @@ def make_purchase_order_for_default_supplier(source_name, selected_items=[], tar
frappe.msgprint(_("Purchase Order already created for all Sales Order items"))
@frappe.whitelist()
def make_purchase_order(source_name, selected_items=[], target_doc=None):
def make_purchase_order(source_name, selected_items=None, target_doc=None):
if not selected_items: return
if isinstance(selected_items, string_types):
selected_items = json.loads(selected_items)

2
erpnext/stock/doctype/delivery_note/delivery_note.js

@ -151,7 +151,7 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend(
project: me.frm.doc.project || undefined,
}
})
}, __("Get items from"));
}, __("Get Items From"));
}
}

10
erpnext/stock/doctype/material_request/material_request.js

@ -90,7 +90,7 @@ frappe.ui.form.on('Material Request', {
make_custom_buttons: function(frm) {
if (frm.doc.docstatus==0) {
frm.add_custom_button(__("Bill of Materials"),
() => frm.events.get_items_from_bom(frm), __("Get items from"));
() => frm.events.get_items_from_bom(frm), __("Get Items From"));
}
if (frm.doc.docstatus == 1 && frm.doc.status != 'Stopped') {
@ -147,7 +147,7 @@ frappe.ui.form.on('Material Request', {
if (frm.doc.docstatus===0) {
frm.add_custom_button(__('Sales Order'), () => frm.events.get_items_from_sales_order(frm),
__("Get items from"));
__("Get Items From"));
}
if (frm.doc.docstatus == 1 && frm.doc.status == 'Stopped') {
@ -173,7 +173,8 @@ frappe.ui.form.on('Material Request', {
source_doctype: "Sales Order",
target: frm,
setters: {
customer: frm.doc.customer || undefined
customer: frm.doc.customer || undefined,
delivery_date: undefined,
},
get_query_filters: {
docstatus: 1,
@ -280,8 +281,7 @@ frappe.ui.form.on('Material Request', {
fieldname:'default_supplier',
fieldtype: 'Link',
options: 'Supplier',
description: __('Select a Supplier from the Default Suppliers of the items below. \
On selection, a Purchase Order will be made against items belonging to the selected Supplier only.'),
description: __('Select a Supplier from the Default Suppliers of the items below. On selection, a Purchase Order will be made against items belonging to the selected Supplier only.'),
get_query: () => {
return{
query: "erpnext.stock.doctype.material_request.material_request.get_default_supplier_query",

3
erpnext/stock/doctype/purchase_receipt/purchase_receipt.js

@ -128,6 +128,7 @@ erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend
target: me.frm,
setters: {
supplier: me.frm.doc.supplier,
schedule_date: undefined
},
get_query_filters: {
docstatus: 1,
@ -136,7 +137,7 @@ erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend
company: me.frm.doc.company
}
})
}, __("Get items from"));
}, __("Get Items From"));
}
if(this.frm.doc.docstatus == 1 && this.frm.doc.status!="Closed") {

14
erpnext/stock/doctype/stock_entry/stock_entry.js

@ -225,7 +225,7 @@ frappe.ui.form.on('Stock Entry', {
docstatus: 1
}
})
}, __("Get items from"));
}, __("Get Items From"));
frm.add_custom_button(__('Material Request'), function() {
erpnext.utils.map_current_doc({
@ -240,7 +240,7 @@ frappe.ui.form.on('Stock Entry', {
status: ["not in", ["Transferred", "Issued"]]
}
})
}, __("Get items from"));
}, __("Get Items From"));
}
if (frm.doc.docstatus===0 && frm.doc.purpose == "Material Issue") {
frm.add_custom_button(__('Expired Batches'), function() {
@ -263,7 +263,7 @@ frappe.ui.form.on('Stock Entry', {
}
}
});
}, __("Get items from"));
}, __("Get Items From"));
}
frm.events.show_bom_custom_button(frm);
@ -282,7 +282,7 @@ frappe.ui.form.on('Stock Entry', {
},
stock_entry_type: function(frm){
frm.remove_custom_button('Bill of Materials', "Get items from");
frm.remove_custom_button('Bill of Materials', "Get Items From");
frm.events.show_bom_custom_button(frm);
frm.trigger('add_to_transit');
},
@ -425,9 +425,9 @@ frappe.ui.form.on('Stock Entry', {
show_bom_custom_button: function(frm){
if (frm.doc.docstatus === 0 &&
['Material Issue', 'Material Receipt', 'Material Transfer', 'Send to Subcontractor'].includes(frm.doc.purpose)) {
frm.add_custom_button(__('Bill of Materials'), function() {
frm.events.get_items_from_bom(frm);
}, __("Get items from"));
frm.add_custom_button(__('Bill of Materials'), function() {
frm.events.get_items_from_bom(frm);
}, __("Get Items From"));
}
},

2
erpnext/templates/pages/material_request_info.html

@ -25,7 +25,7 @@
</span>
</div>
<div class="col-xs-6 text-muted text-right small">
{{ frappe.utils.formatdate(doc.transaction_date, 'medium') }}
{{ frappe.utils.format_date(doc.transaction_date, 'medium') }}
</div>
</div>

4
erpnext/templates/pages/order.html

@ -42,10 +42,10 @@
</span>
</div>
<div class="col-6 text-muted text-right small">
{{ frappe.utils.formatdate(doc.transaction_date, 'medium') }}
{{ frappe.utils.format_date(doc.transaction_date, 'medium') }}
{% if doc.valid_till %}
<p>
{{ _("Valid Till") }}: {{ frappe.utils.formatdate(doc.valid_till, 'medium') }}
{{ _("Valid Till") }}: {{ frappe.utils.format_date(doc.valid_till, 'medium') }}
</p>
{% endif %}
</div>

Loading…
Cancel
Save