mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-02 11:49:10 +00:00
Merge branch 'develop' into item-merge-bundles
This commit is contained in:
@@ -1077,7 +1077,7 @@ def get_outstanding_reference_documents(args):
|
|||||||
if d.voucher_type in ("Purchase Invoice"):
|
if d.voucher_type in ("Purchase Invoice"):
|
||||||
d["bill_no"] = frappe.db.get_value(d.voucher_type, d.voucher_no, "bill_no")
|
d["bill_no"] = frappe.db.get_value(d.voucher_type, d.voucher_no, "bill_no")
|
||||||
|
|
||||||
# Get all SO / PO which are not fully billed or aginst which full advance not paid
|
# Get all SO / PO which are not fully billed or against which full advance not paid
|
||||||
orders_to_be_billed = []
|
orders_to_be_billed = []
|
||||||
if (args.get("party_type") != "Student"):
|
if (args.get("party_type") != "Student"):
|
||||||
orders_to_be_billed = get_orders_to_be_billed(args.get("posting_date"),args.get("party_type"),
|
orders_to_be_billed = get_orders_to_be_billed(args.get("posting_date"),args.get("party_type"),
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ def valdiate_taxes_and_charges_template(doc):
|
|||||||
|
|
||||||
for tax in doc.get("taxes"):
|
for tax in doc.get("taxes"):
|
||||||
validate_taxes_and_charges(tax)
|
validate_taxes_and_charges(tax)
|
||||||
validate_account_head(tax, doc)
|
validate_account_head(tax.idx, tax.account_head, doc.company)
|
||||||
validate_cost_center(tax, doc)
|
validate_cost_center(tax, doc)
|
||||||
validate_inclusive_tax(tax, doc)
|
validate_inclusive_tax(tax, doc)
|
||||||
|
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ def validate_party_gle_currency(party_type, party, company, party_account_curren
|
|||||||
.format(frappe.bold(party_type), frappe.bold(party), frappe.bold(existing_gle_currency), frappe.bold(company)), InvalidAccountCurrency)
|
.format(frappe.bold(party_type), frappe.bold(party), frappe.bold(existing_gle_currency), frappe.bold(company)), InvalidAccountCurrency)
|
||||||
|
|
||||||
def validate_party_accounts(doc):
|
def validate_party_accounts(doc):
|
||||||
|
from erpnext.controllers.accounts_controller import validate_account_head
|
||||||
companies = []
|
companies = []
|
||||||
|
|
||||||
for account in doc.get("accounts"):
|
for account in doc.get("accounts"):
|
||||||
@@ -330,6 +330,9 @@ def validate_party_accounts(doc):
|
|||||||
if doc.default_currency != party_account_currency and doc.default_currency != company_default_currency:
|
if doc.default_currency != party_account_currency and doc.default_currency != company_default_currency:
|
||||||
frappe.throw(_("Billing currency must be equal to either default company's currency or party account currency"))
|
frappe.throw(_("Billing currency must be equal to either default company's currency or party account currency"))
|
||||||
|
|
||||||
|
# validate if account is mapped for same company
|
||||||
|
validate_account_head(account.idx, account.account, account.company)
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_due_date(posting_date, party_type, party, company=None, bill_date=None):
|
def get_due_date(posting_date, party_type, party, company=None, bill_date=None):
|
||||||
|
|||||||
@@ -1566,13 +1566,12 @@ def validate_taxes_and_charges(tax):
|
|||||||
tax.rate = None
|
tax.rate = None
|
||||||
|
|
||||||
|
|
||||||
def validate_account_head(tax, doc):
|
def validate_account_head(idx, account, company):
|
||||||
company = frappe.get_cached_value('Account',
|
account_company = frappe.get_cached_value('Account', account, 'company')
|
||||||
tax.account_head, 'company')
|
|
||||||
|
|
||||||
if company != doc.company:
|
if account_company != company:
|
||||||
frappe.throw(_('Row {0}: Account {1} does not belong to Company {2}')
|
frappe.throw(_('Row {0}: Account {1} does not belong to Company {2}')
|
||||||
.format(tax.idx, frappe.bold(tax.account_head), frappe.bold(doc.company)), title=_('Invalid Account'))
|
.format(idx, frappe.bold(account), frappe.bold(company)), title=_('Invalid Account'))
|
||||||
|
|
||||||
|
|
||||||
def validate_cost_center(tax, doc):
|
def validate_cost_center(tax, doc):
|
||||||
|
|||||||
@@ -338,14 +338,14 @@ body.product-page {
|
|||||||
|
|
||||||
.btn-add-to-wishlist {
|
.btn-add-to-wishlist {
|
||||||
svg use {
|
svg use {
|
||||||
stroke: #F47A7A;
|
--icon-stroke: #F47A7A;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-view-in-wishlist {
|
.btn-view-in-wishlist {
|
||||||
svg use {
|
svg use {
|
||||||
fill: #F47A7A;
|
fill: #F47A7A;
|
||||||
stroke: none;
|
--icon-stroke: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1022,7 +1022,7 @@ body.product-page {
|
|||||||
|
|
||||||
.not-wished {
|
.not-wished {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
stroke: #F47A7A !important;
|
--icon-stroke: #F47A7A !important;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
fill: #F47A7A;
|
fill: #F47A7A;
|
||||||
@@ -1030,7 +1030,7 @@ body.product-page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.wished {
|
.wished {
|
||||||
stroke: none;
|
--icon-stroke: none;
|
||||||
fill: #F47A7A !important;
|
fill: #F47A7A !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<li class="wishlist wishlist-icon hidden">
|
<li class="wishlist wishlist-icon hidden">
|
||||||
<a class="nav-link" href="/wishlist">
|
<a class="nav-link" href="/wishlist">
|
||||||
<svg class="icon icon-lg">
|
<svg class="icon icon-lg">
|
||||||
<use href="#icon-heart-active"></use>
|
<use href="#icon-heart"></use>
|
||||||
</svg>
|
</svg>
|
||||||
<span class="badge badge-primary shopping-badge" id="wish-count"></span>
|
<span class="badge badge-primary shopping-badge" id="wish-count"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -3731,7 +3731,7 @@ Earliest Age,Frühestes Alter,
|
|||||||
Edit Details,Details bearbeiten,
|
Edit Details,Details bearbeiten,
|
||||||
Edit Profile,Profil bearbeiten,
|
Edit Profile,Profil bearbeiten,
|
||||||
Either GST Transporter ID or Vehicle No is required if Mode of Transport is Road,Bei Straßentransport ist entweder die GST-Transporter-ID oder die Fahrzeug-Nr. Erforderlich,
|
Either GST Transporter ID or Vehicle No is required if Mode of Transport is Road,Bei Straßentransport ist entweder die GST-Transporter-ID oder die Fahrzeug-Nr. Erforderlich,
|
||||||
Email,Email,
|
Email,E-Mail,
|
||||||
Email Campaigns,E-Mail-Kampagnen,
|
Email Campaigns,E-Mail-Kampagnen,
|
||||||
Employee ID is linked with another instructor,Die Mitarbeiter-ID ist mit einem anderen Ausbilder verknüpft,
|
Employee ID is linked with another instructor,Die Mitarbeiter-ID ist mit einem anderen Ausbilder verknüpft,
|
||||||
Employee Tax and Benefits,Mitarbeitersteuern und -leistungen,
|
Employee Tax and Benefits,Mitarbeitersteuern und -leistungen,
|
||||||
@@ -6487,7 +6487,7 @@ Select Users,Wählen Sie Benutzer aus,
|
|||||||
Send Emails At,Die E-Mails senden um,
|
Send Emails At,Die E-Mails senden um,
|
||||||
Reminder,Erinnerung,
|
Reminder,Erinnerung,
|
||||||
Daily Work Summary Group User,Tägliche Arbeit Zusammenfassung Gruppenbenutzer,
|
Daily Work Summary Group User,Tägliche Arbeit Zusammenfassung Gruppenbenutzer,
|
||||||
email,Email,
|
email,E-Mail,
|
||||||
Parent Department,Elternabteilung,
|
Parent Department,Elternabteilung,
|
||||||
Leave Block List,Urlaubssperrenliste,
|
Leave Block List,Urlaubssperrenliste,
|
||||||
Days for which Holidays are blocked for this department.,"Tage, an denen eine Urlaubssperre für diese Abteilung gilt.",
|
Days for which Holidays are blocked for this department.,"Tage, an denen eine Urlaubssperre für diese Abteilung gilt.",
|
||||||
|
|||||||
|
Can't render this file because it is too large.
|
@@ -62,8 +62,7 @@ def get_category_records(categories):
|
|||||||
"parent_item_group": "All Item Groups",
|
"parent_item_group": "All Item Groups",
|
||||||
"show_in_website": 1
|
"show_in_website": 1
|
||||||
},
|
},
|
||||||
fields=["name", "parent_item_group", "is_group", "image", "route"],
|
fields=["name", "parent_item_group", "is_group", "image", "route"]
|
||||||
as_dict=True
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
doctype = frappe.unscrub(category)
|
doctype = frappe.unscrub(category)
|
||||||
@@ -71,7 +70,7 @@ def get_category_records(categories):
|
|||||||
if frappe.get_meta(doctype, cached=True).get_field("image"):
|
if frappe.get_meta(doctype, cached=True).get_field("image"):
|
||||||
fields += ["image"]
|
fields += ["image"]
|
||||||
|
|
||||||
categorical_data[category] = frappe.db.get_all(doctype, fields=fields, as_dict=True)
|
categorical_data[category] = frappe.db.get_all(doctype, fields=fields)
|
||||||
|
|
||||||
return categorical_data
|
return categorical_data
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user