Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7eea52d4e9 | ||
|
|
93a990f006 | ||
|
|
099163b16d | ||
|
|
0d114b4c31 | ||
|
|
fcf34dc570 | ||
|
|
6f038bc1f3 | ||
|
|
9300013acc | ||
|
|
8d8cba7faa | ||
|
|
2d132e32aa | ||
|
|
2e47654f43 | ||
|
|
9bfa0ab7eb | ||
|
|
17ddd8f389 | ||
|
|
c469f2c954 | ||
|
|
731efe3a95 | ||
|
|
2c892c7e7f | ||
|
|
e6b5843a1f | ||
|
|
31334328ed | ||
|
|
0d6db6c42c |
@@ -2,7 +2,7 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
__version__ = '8.0.4'
|
||||
__version__ = '8.0.7'
|
||||
|
||||
def get_default_company(user=None):
|
||||
'''Get default company for user'''
|
||||
|
||||
@@ -218,17 +218,18 @@ class GrossProfitGenerator(object):
|
||||
def get_average_buying_rate(self, row, item_code):
|
||||
if not item_code in self.average_buying_rate:
|
||||
if item_code in self.non_stock_items:
|
||||
self.average_buying_rate[item_code] = flt(frappe.db.sql("""select sum(base_net_amount) / sum(qty * conversion_factor)
|
||||
self.average_buying_rate[item_code] = flt(frappe.db.sql("""
|
||||
select sum(base_net_amount) / sum(qty * conversion_factor)
|
||||
from `tabPurchase Invoice Item`
|
||||
where item_code = %s and docstatus=1""", item_code)[0][0])
|
||||
else:
|
||||
average_buying_rate = get_incoming_rate(row)
|
||||
if not average_buying_rate:
|
||||
average_buying_rate = get_valuation_rate(item_code, row.warehouse,
|
||||
row.parenttype, row.parent, allow_zero_rate=True,
|
||||
currency=self.filters.currency)
|
||||
row.parenttype, row.parent, allow_zero_rate=True,
|
||||
currency=self.filters.currency)
|
||||
|
||||
self.average_buying_rate[item_code] = average_buying_rate
|
||||
self.average_buying_rate[item_code] = flt(average_buying_rate)
|
||||
|
||||
return self.average_buying_rate[item_code]
|
||||
|
||||
|
||||
@@ -404,11 +404,14 @@ class calculate_taxes_and_totals(object):
|
||||
self.doc.total_advance = flt(total_allocated_amount, self.doc.precision("total_advance"))
|
||||
|
||||
if self.doc.party_account_currency == self.doc.currency:
|
||||
invoice_total = self.doc.grand_total
|
||||
else:
|
||||
invoice_total = flt(self.doc.grand_total * self.doc.conversion_rate,
|
||||
invoice_total = flt(self.doc.grand_total - flt(self.doc.write_off_amount),
|
||||
self.doc.precision("grand_total"))
|
||||
|
||||
else:
|
||||
base_write_off_amount = flt(flt(self.doc.write_off_amount) * self.doc.conversion_rate,
|
||||
self.doc.precision("base_write_off_amount"))
|
||||
invoice_total = flt(self.doc.grand_total * self.doc.conversion_rate,
|
||||
self.doc.precision("grand_total")) - base_write_off_amount
|
||||
|
||||
if invoice_total > 0 and self.doc.total_advance > invoice_total:
|
||||
frappe.throw(_("Advance amount cannot be greater than {0} {1}")
|
||||
.format(self.doc.party_account_currency, invoice_total))
|
||||
|
||||
@@ -64,8 +64,11 @@ def complete_setup(domain='Manufacturing'):
|
||||
})
|
||||
|
||||
company = erpnext.get_default_company()
|
||||
company.db_set('default_payroll_payable_account',
|
||||
frappe.db.get_value('Account', dict(account_name='Payroll Payable')))
|
||||
|
||||
if company:
|
||||
company_doc = frappe.get_doc("Company", company)
|
||||
company_doc.db_set('default_payroll_payable_account',
|
||||
frappe.db.get_value('Account', dict(account_name='Payroll Payable')))
|
||||
|
||||
def setup_demo_page():
|
||||
# home page should always be "start"
|
||||
|
||||
@@ -148,8 +148,8 @@ doc_events = {
|
||||
"User": {
|
||||
"after_insert": "frappe.email.doctype.contact.contact.update_contact",
|
||||
"validate": "erpnext.hr.doctype.employee.employee.validate_employee_role",
|
||||
"on_update": "erpnext.hr.doctype.employee.employee.update_user_permissions",
|
||||
"on_update": "frappe.geo.address_and_contact.set_default_role"
|
||||
"on_update": ["erpnext.hr.doctype.employee.employee.update_user_permissions",
|
||||
"erpnext.portal.utils.set_default_role"]
|
||||
},
|
||||
("Sales Taxes and Charges Template", 'Price List'): {
|
||||
"on_update": "erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings.validate_cart_settings"
|
||||
|
||||
17
erpnext/portal/utils.py
Normal file
17
erpnext/portal/utils.py
Normal file
@@ -0,0 +1,17 @@
|
||||
import frappe
|
||||
|
||||
def set_default_role(doc, method):
|
||||
'''Set customer, supplier, student based on email'''
|
||||
if frappe.flags.setting_role or frappe.flags.in_migrate:
|
||||
return
|
||||
contact_name = frappe.get_value('Contact', dict(email_id=doc.email))
|
||||
if contact_name:
|
||||
contact = frappe.get_doc('Contact', contact_name)
|
||||
for link in contact.links:
|
||||
frappe.flags.setting_role = True
|
||||
if link.link_doctype=='Customer':
|
||||
doc.add_roles('Customer')
|
||||
elif link.link_doctype=='Supplier':
|
||||
doc.add_roles('Supplier')
|
||||
elif frappe.get_value('Student', dict(student_email_id=doc.email)):
|
||||
doc.add_roles('Student')
|
||||
@@ -1,3 +1,3 @@
|
||||
frappe.listview_settings['Customer'] = {
|
||||
add_fields: ["customer_name", "territory", "customer_group", "customer_type"],
|
||||
add_fields: ["customer_name", "territory", "customer_group", "customer_type", "image"],
|
||||
};
|
||||
|
||||
@@ -79,7 +79,7 @@ class Company(Document):
|
||||
if not frappe.local.flags.ignore_chart_of_accounts:
|
||||
self.set_default_accounts()
|
||||
if self.default_cash_account:
|
||||
self.mode_of_payment()
|
||||
self.set_mode_of_payment_account()
|
||||
|
||||
if self.default_currency:
|
||||
frappe.db.set_value("Currency", self.default_currency, "enabled", 1)
|
||||
@@ -166,7 +166,7 @@ class Company(Document):
|
||||
if account:
|
||||
self.db_set(fieldname, account)
|
||||
|
||||
def mode_of_payment(self):
|
||||
def set_mode_of_payment_account(self):
|
||||
cash = frappe.db.get_value('Mode of Payment', {'type': 'Cash'}, 'name')
|
||||
if cash and not frappe.db.get_value('Mode of Payment Account', {'company': self.name}):
|
||||
mode_of_payment = frappe.get_doc('Mode of Payment', cash)
|
||||
|
||||
@@ -327,11 +327,10 @@ def get_pos_profile_item_details(company, args, pos_profile=None):
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_pos_profile(company):
|
||||
condition = "and company = '%s'"%(company) if company else ''
|
||||
pos_profile = frappe.db.sql("""select * from `tabPOS Profile` where user = %s
|
||||
{cond}""".format(cond=condition), (frappe.session['user']), as_dict=1)
|
||||
and company = %s""", (frappe.session['user'], company), as_dict=1)
|
||||
|
||||
if not pos_profile and company:
|
||||
if not pos_profile:
|
||||
pos_profile = frappe.db.sql("""select * from `tabPOS Profile`
|
||||
where ifnull(user,'') = '' and company = %s""", company, as_dict=1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user