[fix] merge-conflicts
This commit is contained in:
commit
ed4191ec5b
@ -4,7 +4,7 @@ import inspect
|
|||||||
import frappe
|
import frappe
|
||||||
from erpnext.hooks import regional_overrides
|
from erpnext.hooks import regional_overrides
|
||||||
|
|
||||||
__version__ = '9.2.15'
|
__version__ = '9.2.16'
|
||||||
|
|
||||||
def get_default_company(user=None):
|
def get_default_company(user=None):
|
||||||
'''Get default company for user'''
|
'''Get default company for user'''
|
||||||
|
@ -253,6 +253,8 @@ frappe.ui.form.on('Payment Entry', {
|
|||||||
},
|
},
|
||||||
callback: function(r, rt) {
|
callback: function(r, rt) {
|
||||||
if(r.message) {
|
if(r.message) {
|
||||||
|
frappe.run_serially([
|
||||||
|
() => {
|
||||||
if(frm.doc.payment_type == "Receive") {
|
if(frm.doc.payment_type == "Receive") {
|
||||||
frm.set_value("paid_from", r.message.party_account);
|
frm.set_value("paid_from", r.message.party_account);
|
||||||
frm.set_value("paid_from_account_currency", r.message.party_account_currency);
|
frm.set_value("paid_from_account_currency", r.message.party_account_currency);
|
||||||
@ -262,11 +264,13 @@ frappe.ui.form.on('Payment Entry', {
|
|||||||
frm.set_value("paid_to_account_currency", r.message.party_account_currency);
|
frm.set_value("paid_to_account_currency", r.message.party_account_currency);
|
||||||
frm.set_value("paid_to_account_balance", r.message.account_balance);
|
frm.set_value("paid_to_account_balance", r.message.account_balance);
|
||||||
}
|
}
|
||||||
frm.set_value("party_balance", r.message.party_balance);
|
},
|
||||||
frm.events.get_outstanding_documents(frm);
|
() => frm.set_value("party_balance", r.message.party_balance),
|
||||||
frm.events.hide_unhide_fields(frm);
|
() => frm.events.get_outstanding_documents(frm),
|
||||||
frm.events.set_dynamic_labels(frm);
|
() => frm.events.hide_unhide_fields(frm),
|
||||||
frm.set_party_account_based_on_party = false;
|
() => frm.events.set_dynamic_labels(frm),
|
||||||
|
() => { frm.set_party_account_based_on_party = false; }
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -24,11 +24,11 @@ frappe.ui.form.on("POS Profile", "onload", function(frm) {
|
|||||||
|
|
||||||
frappe.ui.form.on('POS Profile', {
|
frappe.ui.form.on('POS Profile', {
|
||||||
setup: function(frm) {
|
setup: function(frm) {
|
||||||
frm.set_query("online_print_format", function() {
|
frm.set_query("print_format_for_online", function() {
|
||||||
return {
|
return {
|
||||||
filters: [
|
filters: [
|
||||||
['Print Format', 'doc_type', '=', 'Sales Invoice'],
|
['Print Format', 'doc_type', '=', 'Sales Invoice'],
|
||||||
['Print Format', 'print_format_type', '!=', 'Js'],
|
['Print Format', 'print_format_type', '=', 'Server'],
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -247,7 +247,7 @@ class SalesInvoice(SellingController):
|
|||||||
super(SalesInvoice, self).set_missing_values(for_validate)
|
super(SalesInvoice, self).set_missing_values(for_validate)
|
||||||
|
|
||||||
if pos:
|
if pos:
|
||||||
return {"print_format": pos.get("print_format") }
|
return {"print_format": pos.get("print_format_for_online") }
|
||||||
|
|
||||||
def update_time_sheet(self, sales_invoice):
|
def update_time_sheet(self, sales_invoice):
|
||||||
for d in self.timesheets:
|
for d in self.timesheets:
|
||||||
|
@ -36,8 +36,14 @@
|
|||||||
<br>{%= data[i][__("Voucher No")] %}</td>
|
<br>{%= data[i][__("Voucher No")] %}</td>
|
||||||
<td>
|
<td>
|
||||||
{% if(!(filters.customer || filters.supplier)) { %}
|
{% if(!(filters.customer || filters.supplier)) { %}
|
||||||
{%= data[i][__("Customer Name")] || data[i][__("Customer")] || data[i][__("Supplier Name")] || data[i][__("Supplier")] %}<br>{%= __("Remarks") %}:
|
{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
|
||||||
|
{% if(data[i][__("Customer Name")] && data[i][__("Customer Name")] != data[i][__("Customer")]) { %}
|
||||||
|
<br> {%= data[i][__("Customer Name")] %}
|
||||||
|
{% } else if(data[i][__("Supplier Name")] != data[i][__("Supplier")]) { %}
|
||||||
|
<br> {%= data[i][__("Supplier Name")] %}
|
||||||
{% } %}
|
{% } %}
|
||||||
|
{% } %}
|
||||||
|
<br>{%= __("Remarks") %}:
|
||||||
{%= data[i][__("Remarks")] %}
|
{%= data[i][__("Remarks")] %}
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: right">
|
<td style="text-align: right">
|
||||||
@ -66,8 +72,13 @@
|
|||||||
<td>
|
<td>
|
||||||
{% if(!(filters.customer || filters.supplier)) { %}
|
{% if(!(filters.customer || filters.supplier)) { %}
|
||||||
{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
|
{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
|
||||||
<br>{%= __("Remarks") %}:
|
{% if(data[i][__("Customer Name")] && data[i][__("Customer Name")] != data[i][__("Customer")]) { %}
|
||||||
|
<br> {%= data[i][__("Customer Name")] %}
|
||||||
|
{% } else if(data[i][__("Supplier Name")] != data[i][__("Supplier")]) { %}
|
||||||
|
<br> {%= data[i][__("Supplier Name")] %}
|
||||||
{% } %}
|
{% } %}
|
||||||
|
{% } %}
|
||||||
|
<br>{%= __("Remarks") %}:
|
||||||
{%= data[i][__("Remarks")] %}
|
{%= data[i][__("Remarks")] %}
|
||||||
</td>
|
</td>
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
|
@ -171,7 +171,7 @@ class BuyingController(StockController):
|
|||||||
for item in self.get("items"):
|
for item in self.get("items"):
|
||||||
if self.doctype in ["Purchase Receipt", "Purchase Invoice"]:
|
if self.doctype in ["Purchase Receipt", "Purchase Invoice"]:
|
||||||
item.rm_supp_cost = 0.0
|
item.rm_supp_cost = 0.0
|
||||||
if item.item_code in self.sub_contracted_items:
|
if item.bom and item.item_code in self.sub_contracted_items:
|
||||||
self.update_raw_materials_supplied(item, raw_material_table)
|
self.update_raw_materials_supplied(item, raw_material_table)
|
||||||
|
|
||||||
if [item.item_code, item.name] not in parent_items:
|
if [item.item_code, item.name] not in parent_items:
|
||||||
|
@ -348,7 +348,9 @@ def setup_budget():
|
|||||||
budget.action_if_annual_budget_exceeded = "Warn"
|
budget.action_if_annual_budget_exceeded = "Warn"
|
||||||
expense_ledger_count = frappe.db.count("Account", {"is_group": "0", "root_type": "Expense"})
|
expense_ledger_count = frappe.db.count("Account", {"is_group": "0", "root_type": "Expense"})
|
||||||
|
|
||||||
add_random_children(budget, "accounts", rows=random.randint(10, expense_ledger_count), randomize = { "account": ("Account", {"is_group": "0", "root_type": "Expense"})
|
add_random_children(budget, "accounts", rows=random.randint(10, expense_ledger_count),
|
||||||
|
randomize = {
|
||||||
|
"account": ("Account", {"is_group": "0", "root_type": "Expense"})
|
||||||
}, unique="account")
|
}, unique="account")
|
||||||
|
|
||||||
for d in budget.accounts:
|
for d in budget.accounts:
|
||||||
@ -361,6 +363,7 @@ def setup_pos_profile():
|
|||||||
company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
|
company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
|
||||||
pos = frappe.new_doc('POS Profile')
|
pos = frappe.new_doc('POS Profile')
|
||||||
pos.user = frappe.db.get_global('demo_accounts_user')
|
pos.user = frappe.db.get_global('demo_accounts_user')
|
||||||
|
pos.pos_profile_name = "Demo POS Profile"
|
||||||
pos.naming_series = 'SINV-'
|
pos.naming_series = 'SINV-'
|
||||||
pos.update_stock = 0
|
pos.update_stock = 0
|
||||||
pos.write_off_account = 'Cost of Goods Sold - '+ company_abbr
|
pos.write_off_account = 'Cost of Goods Sold - '+ company_abbr
|
||||||
|
@ -103,7 +103,7 @@ class SalesOrder(SellingController):
|
|||||||
def validate_delivery_date(self):
|
def validate_delivery_date(self):
|
||||||
if self.order_type == 'Sales':
|
if self.order_type == 'Sales':
|
||||||
if not self.delivery_date:
|
if not self.delivery_date:
|
||||||
self.delivery_date = max([d.delivery_date for d in self.get("items")])
|
self.delivery_date = max([d.delivery_date for d in self.get("items") if d.delivery_date])
|
||||||
|
|
||||||
if self.delivery_date:
|
if self.delivery_date:
|
||||||
for d in self.get("items"):
|
for d in self.get("items"):
|
||||||
|
@ -53,9 +53,7 @@ erpnext.pos.PointOfSale = class PointOfSale {
|
|||||||
() => this.setup_pos_profile(),
|
() => this.setup_pos_profile(),
|
||||||
() => this.make_new_invoice(),
|
() => this.make_new_invoice(),
|
||||||
() => {
|
() => {
|
||||||
frappe.timeout(1);
|
this.bind_events();
|
||||||
this.make_items();
|
|
||||||
this.set_pos_profile_data();
|
|
||||||
frappe.dom.unfreeze();
|
frappe.dom.unfreeze();
|
||||||
},
|
},
|
||||||
() => this.page.set_title(__('Point of Sale'))
|
() => this.page.set_title(__('Point of Sale'))
|
||||||
@ -295,12 +293,6 @@ erpnext.pos.PointOfSale = class PointOfSale {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
set_pos_profile_data() {
|
|
||||||
if (this.pos_profile && this.pos_profile.print_format_for_online) {
|
|
||||||
this.frm.meta.default_print_format = this.pos_profile.print_format_for_online;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_pos_profile() {
|
setup_pos_profile() {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
|
|
||||||
@ -382,17 +374,21 @@ erpnext.pos.PointOfSale = class PointOfSale {
|
|||||||
|
|
||||||
make_new_invoice() {
|
make_new_invoice() {
|
||||||
return frappe.run_serially([
|
return frappe.run_serially([
|
||||||
() => this.make_sales_invoice_frm(),
|
|
||||||
() => {
|
() => {
|
||||||
|
this.make_sales_invoice_frm()
|
||||||
|
.then(() => this.set_pos_profile_data())
|
||||||
|
.then(() => {
|
||||||
if (this.cart) {
|
if (this.cart) {
|
||||||
this.cart.frm = this.frm;
|
this.cart.frm = this.frm;
|
||||||
this.cart.reset();
|
this.cart.reset();
|
||||||
this.items.reset_search_field();
|
this.items.reset_search_field();
|
||||||
} else {
|
} else {
|
||||||
|
this.make_items();
|
||||||
this.make_cart();
|
this.make_cart();
|
||||||
}
|
}
|
||||||
this.toggle_editing(true);
|
this.toggle_editing(true);
|
||||||
}
|
})
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,12 +415,29 @@ erpnext.pos.PointOfSale = class PointOfSale {
|
|||||||
if(!frm.doc.company) {
|
if(!frm.doc.company) {
|
||||||
frm.set_value('company', pos_profile.company);
|
frm.set_value('company', pos_profile.company);
|
||||||
}
|
}
|
||||||
frm.set_value('is_pos', 1);
|
frm.doc.is_pos = 1;
|
||||||
frm.meta.default_print_format = 'POS Invoice';
|
|
||||||
return frm;
|
return frm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_pos_profile_data() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
return this.frm.call({
|
||||||
|
doc: this.frm.doc,
|
||||||
|
method: "set_missing_values",
|
||||||
|
}).then((r) => {
|
||||||
|
if(!r.exc) {
|
||||||
|
this.frm.script_manager.trigger("update_stock");
|
||||||
|
frappe.model.set_default_values(this.frm.doc);
|
||||||
|
this.frm.cscript.calculate_taxes_and_totals();
|
||||||
|
this.frm.meta.default_print_format = r.message.print_format || 'POS Invoice';
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve();
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
prepare_menu() {
|
prepare_menu() {
|
||||||
var me = this;
|
var me = this;
|
||||||
this.page.clear_menu();
|
this.page.clear_menu();
|
||||||
@ -1321,6 +1334,16 @@ class Payment {
|
|||||||
$(this.dialog.body).find('.input-with-feedback').focusin(function() {
|
$(this.dialog.body).find('.input-with-feedback').focusin(function() {
|
||||||
me.numpad.reset_value();
|
me.numpad.reset_value();
|
||||||
me.fieldname = $(this).prop('dataset').fieldname;
|
me.fieldname = $(this).prop('dataset').fieldname;
|
||||||
|
if (me.frm.doc.outstanding_amount > 0 &&
|
||||||
|
!in_list(['write_off_amount', 'change_amount'], me.fieldname)) {
|
||||||
|
me.frm.doc.payments.forEach((data) => {
|
||||||
|
if (data.mode_of_payment == me.fieldname && !data.amount) {
|
||||||
|
me.dialog.set_value(me.fieldname,
|
||||||
|
me.frm.doc.outstanding_amount / me.frm.doc.conversion_rate);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,16 +96,6 @@ def get_item_details(args):
|
|||||||
|
|
||||||
return out
|
return out
|
||||||
|
|
||||||
# print(frappe._dict({
|
|
||||||
# 'has_serial_no' : out.has_serial_no,
|
|
||||||
# 'has_batch_no' : out.has_batch_no
|
|
||||||
# }))
|
|
||||||
|
|
||||||
# return frappe._dict({
|
|
||||||
# 'has_serial_no' : out.has_serial_no,
|
|
||||||
# 'has_batch_no' : out.has_batch_no
|
|
||||||
# })
|
|
||||||
|
|
||||||
def process_args(args):
|
def process_args(args):
|
||||||
if isinstance(args, basestring):
|
if isinstance(args, basestring):
|
||||||
args = json.loads(args)
|
args = json.loads(args)
|
||||||
@ -538,8 +528,6 @@ def get_default_bom(item_code=None):
|
|||||||
bom = frappe.db.get_value("BOM", {"docstatus": 1, "is_default": 1, "is_active": 1, "item": item_code})
|
bom = frappe.db.get_value("BOM", {"docstatus": 1, "is_default": 1, "is_active": 1, "item": item_code})
|
||||||
if bom:
|
if bom:
|
||||||
return bom
|
return bom
|
||||||
else:
|
|
||||||
frappe.throw(_("No default BOM exists for Item {0}").format(item_code))
|
|
||||||
|
|
||||||
def get_valuation_rate(item_code, warehouse=None):
|
def get_valuation_rate(item_code, warehouse=None):
|
||||||
item = frappe.get_doc("Item", item_code)
|
item = frappe.get_doc("Item", item_code)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user