chore: Add landed cost taxes and charges common in bundles
This commit is contained in:
parent
9e791efc82
commit
0b1e78e127
@ -25,5 +25,6 @@ import "./utils/crm_activities";
|
|||||||
import "./templates/crm_activities.html";
|
import "./templates/crm_activities.html";
|
||||||
import "./templates/crm_notes.html";
|
import "./templates/crm_notes.html";
|
||||||
import "./controllers/accounts.js"
|
import "./controllers/accounts.js"
|
||||||
|
import "./utils/landed_taxes_and_charges_common.js";
|
||||||
|
|
||||||
// import { sum } from 'frappe/public/utils/util.js'
|
// import { sum } from 'frappe/public/utils/util.js'
|
||||||
|
62
erpnext/public/js/utils/landed_taxes_and_charges_common.js
Normal file
62
erpnext/public/js/utils/landed_taxes_and_charges_common.js
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
erpnext.landed_cost_taxes_and_charges = {
|
||||||
|
setup_triggers: function(doctype) {
|
||||||
|
frappe.ui.form.on(doctype, {
|
||||||
|
refresh: function(frm) {
|
||||||
|
let tax_field = frm.doc.doctype == 'Landed Cost Voucher' ? 'taxes' : 'additional_costs';
|
||||||
|
frm.set_query("expense_account", tax_field, function() {
|
||||||
|
return {
|
||||||
|
filters: {
|
||||||
|
"account_type": ['in', ["Tax", "Chargeable", "Income Account", "Expenses Included In Valuation", "Expenses Included In Asset Valuation"]],
|
||||||
|
"company": frm.doc.company
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
set_account_currency: function(frm, cdt, cdn) {
|
||||||
|
let row = locals[cdt][cdn];
|
||||||
|
if (row.expense_account) {
|
||||||
|
frappe.db.get_value('Account', row.expense_account, 'account_currency', function(value) {
|
||||||
|
frappe.model.set_value(cdt, cdn, "account_currency", value.account_currency);
|
||||||
|
frm.events.set_exchange_rate(frm, cdt, cdn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
set_exchange_rate: function(frm, cdt, cdn) {
|
||||||
|
let row = locals[cdt][cdn];
|
||||||
|
let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency;
|
||||||
|
|
||||||
|
if (row.account_currency == company_currency) {
|
||||||
|
row.exchange_rate = 1;
|
||||||
|
frm.set_df_property('taxes', 'hidden', 1, row.name, 'exchange_rate');
|
||||||
|
} else if (!row.exchange_rate || row.exchange_rate == 1) {
|
||||||
|
frm.set_df_property('taxes', 'hidden', 0, row.name, 'exchange_rate');
|
||||||
|
frappe.call({
|
||||||
|
method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_exchange_rate",
|
||||||
|
args: {
|
||||||
|
posting_date: frm.doc.posting_date,
|
||||||
|
account: row.expense_account,
|
||||||
|
account_currency: row.account_currency,
|
||||||
|
company: frm.doc.company
|
||||||
|
},
|
||||||
|
callback: function(r) {
|
||||||
|
if (r.message) {
|
||||||
|
frappe.model.set_value(cdt, cdn, "exchange_rate", r.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
frm.refresh_field('taxes');
|
||||||
|
},
|
||||||
|
|
||||||
|
set_base_amount: function(frm, cdt, cdn) {
|
||||||
|
let row = locals[cdt][cdn];
|
||||||
|
frappe.model.set_value(cdt, cdn, "base_amount",
|
||||||
|
flt(flt(row.amount)*row.exchange_rate, precision("base_amount", row)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -1,10 +1,9 @@
|
|||||||
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
// License: GNU General Public License v3. See license.txt
|
// License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
{% include 'erpnext/stock/landed_taxes_and_charges_common.js' %};
|
|
||||||
|
|
||||||
frappe.provide("erpnext.stock");
|
frappe.provide("erpnext.stock");
|
||||||
|
|
||||||
|
erpnext.landed_cost_taxes_and_charges.setup_triggers("Landed Cost Voucher");
|
||||||
erpnext.stock.LandedCostVoucher = class LandedCostVoucher extends erpnext.stock.StockController {
|
erpnext.stock.LandedCostVoucher = class LandedCostVoucher extends erpnext.stock.StockController {
|
||||||
setup() {
|
setup() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
frappe.provide("erpnext.stock");
|
frappe.provide("erpnext.stock");
|
||||||
frappe.provide("erpnext.accounts.dimensions");
|
frappe.provide("erpnext.accounts.dimensions");
|
||||||
|
|
||||||
{% include 'erpnext/stock/landed_taxes_and_charges_common.js' %};
|
erpnext.landed_cost_taxes_and_charges.setup_triggers("Stock Entry");
|
||||||
|
|
||||||
frappe.ui.form.on('Stock Entry', {
|
frappe.ui.form.on('Stock Entry', {
|
||||||
setup: function(frm) {
|
setup: function(frm) {
|
||||||
@ -56,7 +56,7 @@ frappe.ui.form.on('Stock Entry', {
|
|||||||
|
|
||||||
frappe.db.get_value('Stock Settings', {name: 'Stock Settings'}, 'sample_retention_warehouse', (r) => {
|
frappe.db.get_value('Stock Settings', {name: 'Stock Settings'}, 'sample_retention_warehouse', (r) => {
|
||||||
if (r.sample_retention_warehouse) {
|
if (r.sample_retention_warehouse) {
|
||||||
var filters = [
|
let filters = [
|
||||||
["Warehouse", 'company', '=', frm.doc.company],
|
["Warehouse", 'company', '=', frm.doc.company],
|
||||||
["Warehouse", "is_group", "=",0],
|
["Warehouse", "is_group", "=",0],
|
||||||
['Warehouse', 'name', '!=', r.sample_retention_warehouse]
|
['Warehouse', 'name', '!=', r.sample_retention_warehouse]
|
||||||
@ -75,17 +75,19 @@ frappe.ui.form.on('Stock Entry', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
frm.set_query('batch_no', 'items', function(doc, cdt, cdn) {
|
frm.set_query('batch_no', 'items', function(doc, cdt, cdn) {
|
||||||
var item = locals[cdt][cdn];
|
let item = locals[cdt][cdn];
|
||||||
|
let filters = {};
|
||||||
|
|
||||||
if(!item.item_code) {
|
if(!item.item_code) {
|
||||||
frappe.throw(__("Please enter Item Code to get Batch Number"));
|
frappe.throw(__("Please enter Item Code to get Batch Number"));
|
||||||
} else {
|
} else {
|
||||||
if (in_list(["Material Transfer for Manufacture", "Manufacture", "Repack", "Send to Subcontractor"], doc.purpose)) {
|
if (in_list(["Material Transfer for Manufacture", "Manufacture", "Repack", "Send to Subcontractor"], doc.purpose)) {
|
||||||
var filters = {
|
filters = {
|
||||||
'item_code': item.item_code,
|
'item_code': item.item_code,
|
||||||
'posting_date': frm.doc.posting_date || frappe.datetime.nowdate()
|
'posting_date': frm.doc.posting_date || frappe.datetime.nowdate()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var filters = {
|
filters = {
|
||||||
'item_code': item.item_code
|
'item_code': item.item_code
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -686,7 +688,6 @@ frappe.ui.form.on('Stock Entry', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
process_loss_percentage(frm) {
|
process_loss_percentage(frm) {
|
||||||
debugger
|
|
||||||
if (frm.doc.process_loss_percentage) {
|
if (frm.doc.process_loss_percentage) {
|
||||||
frm.doc.process_loss_qty = flt((frm.doc.fg_completed_qty * frm.doc.process_loss_percentage) / 100 , precision("process_loss_qty", frm.doc));
|
frm.doc.process_loss_qty = flt((frm.doc.fg_completed_qty * frm.doc.process_loss_percentage) / 100 , precision("process_loss_qty", frm.doc));
|
||||||
refresh_field("process_loss_qty");
|
refresh_field("process_loss_qty");
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
let document_list = ['Landed Cost Voucher', 'Stock Entry', 'Subcontracting Order', 'Subcontracting Receipt'];
|
|
||||||
|
|
||||||
document_list.forEach((doctype) => {
|
|
||||||
frappe.ui.form.on(doctype, {
|
|
||||||
refresh: function(frm) {
|
|
||||||
let tax_field = frm.doc.doctype == 'Landed Cost Voucher' ? 'taxes' : 'additional_costs';
|
|
||||||
frm.set_query("expense_account", tax_field, function() {
|
|
||||||
return {
|
|
||||||
filters: {
|
|
||||||
"account_type": ['in', ["Tax", "Chargeable", "Income Account", "Expenses Included In Valuation", "Expenses Included In Asset Valuation"]],
|
|
||||||
"company": frm.doc.company
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
set_account_currency: function(frm, cdt, cdn) {
|
|
||||||
let row = locals[cdt][cdn];
|
|
||||||
if (row.expense_account) {
|
|
||||||
frappe.db.get_value('Account', row.expense_account, 'account_currency', function(value) {
|
|
||||||
frappe.model.set_value(cdt, cdn, "account_currency", value.account_currency);
|
|
||||||
frm.events.set_exchange_rate(frm, cdt, cdn);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
set_exchange_rate: function(frm, cdt, cdn) {
|
|
||||||
let row = locals[cdt][cdn];
|
|
||||||
let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency;
|
|
||||||
|
|
||||||
if (row.account_currency == company_currency) {
|
|
||||||
row.exchange_rate = 1;
|
|
||||||
frm.set_df_property('taxes', 'hidden', 1, row.name, 'exchange_rate');
|
|
||||||
} else if (!row.exchange_rate || row.exchange_rate == 1) {
|
|
||||||
frm.set_df_property('taxes', 'hidden', 0, row.name, 'exchange_rate');
|
|
||||||
frappe.call({
|
|
||||||
method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_exchange_rate",
|
|
||||||
args: {
|
|
||||||
posting_date: frm.doc.posting_date,
|
|
||||||
account: row.expense_account,
|
|
||||||
account_currency: row.account_currency,
|
|
||||||
company: frm.doc.company
|
|
||||||
},
|
|
||||||
callback: function(r) {
|
|
||||||
if (r.message) {
|
|
||||||
frappe.model.set_value(cdt, cdn, "exchange_rate", r.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
frm.refresh_field('taxes');
|
|
||||||
},
|
|
||||||
|
|
||||||
set_base_amount: function(frm, cdt, cdn) {
|
|
||||||
let row = locals[cdt][cdn];
|
|
||||||
frappe.model.set_value(cdt, cdn, "base_amount",
|
|
||||||
flt(flt(row.amount)*row.exchange_rate, precision("base_amount", row)));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
frappe.provide('erpnext.buying');
|
frappe.provide('erpnext.buying');
|
||||||
|
|
||||||
{% include 'erpnext/stock/landed_taxes_and_charges_common.js' %};
|
erpnext.landed_cost_taxes_and_charges.setup_triggers("Subcontracting Order");
|
||||||
|
|
||||||
frappe.ui.form.on('Subcontracting Order', {
|
frappe.ui.form.on('Subcontracting Order', {
|
||||||
setup: (frm) => {
|
setup: (frm) => {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
frappe.provide('erpnext.buying');
|
frappe.provide('erpnext.buying');
|
||||||
|
|
||||||
{% include 'erpnext/stock/landed_taxes_and_charges_common.js' %};
|
erpnext.landed_cost_taxes_and_charges.setup_triggers("Subcontracting Receipt");
|
||||||
|
|
||||||
frappe.ui.form.on('Subcontracting Receipt', {
|
frappe.ui.form.on('Subcontracting Receipt', {
|
||||||
setup: (frm) => {
|
setup: (frm) => {
|
||||||
|
@ -243,7 +243,7 @@ async function submit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function get_form_data() {
|
function get_form_data() {
|
||||||
contact = {};
|
let contact = {};
|
||||||
let inputs = ['name', 'skype', 'number', 'notes', 'email'];
|
let inputs = ['name', 'skype', 'number', 'notes', 'email'];
|
||||||
inputs.forEach((id) => contact[id] = document.getElementById(`customer_${id}`).value)
|
inputs.forEach((id) => contact[id] = document.getElementById(`customer_${id}`).value)
|
||||||
return contact
|
return contact
|
||||||
|
Loading…
Reference in New Issue
Block a user