diff --git a/erpnext/__init__.py b/erpnext/__init__.py index a6b5b7206b7..8ba4eefc951 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals import frappe -__version__ = '8.0.50' +__version__ = '8.0.51' def get_default_company(user=None): diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.json b/erpnext/accounts/doctype/pos_profile/pos_profile.json index 1aa75d255bf..c2c75e1d35a 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.json +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.json @@ -40,7 +40,7 @@ "report_hide": 0, "reqd": 0, "search_index": 0, - "set_only_once": 0, + "set_only_once": 1, "unique": 0 }, { @@ -1201,7 +1201,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-06-13 14:29:06.317317", + "modified": "2017-06-15 20:07:55.682137", "modified_by": "Administrator", "module": "Accounts", "name": "POS Profile", diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index f27b2c879a5..394ad49876a 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -205,14 +205,14 @@ class PurchaseInvoice(BuyingController): if frappe.db.get_value("Buying Settings", None, "po_required") == 'Yes': for d in self.get('items'): if not d.purchase_order: - throw(_("Purchase Order number required for Item {0}").format(d.item_code)) + throw(_("As per the Buying Settings if Purchase Order Required == 'YES', then for creating Purchase Invoice, user need to create Purchase Order first for item {0}").format(d.item_code)) def pr_required(self): stock_items = self.get_stock_items() if frappe.db.get_value("Buying Settings", None, "pr_required") == 'Yes': for d in self.get('items'): if not d.purchase_receipt and d.item_code in stock_items: - throw(_("Purchase Receipt number required for Item {0}").format(d.item_code)) + throw(_("As per the Buying Settings if Purchase Reciept Required == 'YES', then for creating Purchase Invoice, user need to create Purchase Receipt first for item {0}").format(d.item_code)) def validate_write_off_account(self): if self.write_off_amount and not self.write_off_account: diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index c449ed23e63..f257efec53d 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -324,6 +324,37 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "pos_profile", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "POS Profile", + "length": 0, + "no_copy": 0, + "options": "POS Profile", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -4565,7 +4596,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2017-06-13 14:29:14.696232", + "modified": "2017-06-16 17:07:55.483734", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index 668b4c35a19..abe81a282a7 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -1577,6 +1577,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.frm.doc.offline_pos_name = this.name; this.frm.doc.posting_date = frappe.datetime.get_today(); this.frm.doc.posting_time = frappe.datetime.now_time(); + this.frm.doc.pos_profile = this.pos_profile_data['name']; invoice_data[this.name] = this.frm.doc this.si_docs.push(invoice_data) this.update_localstorage(); diff --git a/erpnext/docs/assets/img/accounts/bank-reconciliation-2.png b/erpnext/docs/assets/img/accounts/bank-reconciliation-2.png new file mode 100644 index 00000000000..cc3132cccc7 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/bank-reconciliation-2.png differ diff --git a/erpnext/docs/assets/img/accounts/chart-of-cost-center.png b/erpnext/docs/assets/img/accounts/chart-of-cost-center.png new file mode 100644 index 00000000000..7e36be288e7 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/chart-of-cost-center.png differ diff --git a/erpnext/docs/assets/img/accounts/company_default_inventory_account.png b/erpnext/docs/assets/img/accounts/company_default_inventory_account.png deleted file mode 100644 index 4ce2867c353..00000000000 Binary files a/erpnext/docs/assets/img/accounts/company_default_inventory_account.png and /dev/null differ diff --git a/erpnext/docs/assets/img/accounts/inventory_account.png b/erpnext/docs/assets/img/accounts/inventory_account.png deleted file mode 100644 index e085f5ba830..00000000000 Binary files a/erpnext/docs/assets/img/accounts/inventory_account.png and /dev/null differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-2.png b/erpnext/docs/assets/img/accounts/perpetual-2.png deleted file mode 100644 index 5a2b20b21d0..00000000000 Binary files a/erpnext/docs/assets/img/accounts/perpetual-2.png and /dev/null differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-3.png b/erpnext/docs/assets/img/accounts/perpetual-3.png deleted file mode 100644 index faa77245c5e..00000000000 Binary files a/erpnext/docs/assets/img/accounts/perpetual-3.png and /dev/null differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-dn-gl-5.png b/erpnext/docs/assets/img/accounts/perpetual-dn-gl-5.png new file mode 100644 index 00000000000..190280f2682 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-dn-gl-5.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-dn-sl-4.png b/erpnext/docs/assets/img/accounts/perpetual-dn-sl-4.png new file mode 100644 index 00000000000..79b0ca10176 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-dn-sl-4.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-inv-gl-7.png b/erpnext/docs/assets/img/accounts/perpetual-inv-gl-7.png new file mode 100644 index 00000000000..7b6f7e34169 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-inv-gl-7.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-inv-sl-6.png b/erpnext/docs/assets/img/accounts/perpetual-inv-sl-6.png new file mode 100644 index 00000000000..d7f4c61f4e1 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-inv-sl-6.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-pinv-gl-3.png b/erpnext/docs/assets/img/accounts/perpetual-pinv-gl-3.png new file mode 100644 index 00000000000..054a002e79c Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-pinv-gl-3.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-receipt-gl-2.png b/erpnext/docs/assets/img/accounts/perpetual-receipt-gl-2.png new file mode 100644 index 00000000000..e6190eccee8 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-receipt-gl-2.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-receipt-sl-1.png b/erpnext/docs/assets/img/accounts/perpetual-receipt-sl-1.png new file mode 100644 index 00000000000..5f886382798 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-receipt-sl-1.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-st-issue-gl.png b/erpnext/docs/assets/img/accounts/perpetual-st-issue-gl.png new file mode 100644 index 00000000000..257946347cc Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-st-issue-gl.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-st-issue-sl.png b/erpnext/docs/assets/img/accounts/perpetual-st-issue-sl.png new file mode 100644 index 00000000000..dc9b1b59c79 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-st-issue-sl.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-st-receipt-gl.png b/erpnext/docs/assets/img/accounts/perpetual-st-receipt-gl.png new file mode 100644 index 00000000000..ff192ce83e7 Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-st-receipt-gl.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-st-receipt-sl.png b/erpnext/docs/assets/img/accounts/perpetual-st-receipt-sl.png new file mode 100644 index 00000000000..6d183b6f71b Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-st-receipt-sl.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-st-transfer-gl.png b/erpnext/docs/assets/img/accounts/perpetual-st-transfer-gl.png new file mode 100644 index 00000000000..551ebbc3fab Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-st-transfer-gl.png differ diff --git a/erpnext/docs/assets/img/accounts/perpetual-st-transfer-sl.png b/erpnext/docs/assets/img/accounts/perpetual-st-transfer-sl.png new file mode 100644 index 00000000000..a848d66c99f Binary files /dev/null and b/erpnext/docs/assets/img/accounts/perpetual-st-transfer-sl.png differ diff --git a/erpnext/docs/assets/img/collaboration-tools/calendar-5.png b/erpnext/docs/assets/img/collaboration-tools/calendar-5.png deleted file mode 100644 index df8346e7610..00000000000 Binary files a/erpnext/docs/assets/img/collaboration-tools/calendar-5.png and /dev/null differ diff --git a/erpnext/docs/assets/img/collaboration-tools/calendar-7.png b/erpnext/docs/assets/img/collaboration-tools/calendar-7.png deleted file mode 100644 index ac7a93cc101..00000000000 Binary files a/erpnext/docs/assets/img/collaboration-tools/calendar-7.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/calender-email-digest.png b/erpnext/docs/assets/img/collaboration-tools/calender-email-digest.png similarity index 76% rename from erpnext/docs/assets/old_images/erpnext/calender-email-digest.png rename to erpnext/docs/assets/img/collaboration-tools/calender-email-digest.png index 1d95ef44d33..e8c9a4c64eb 100644 Binary files a/erpnext/docs/assets/old_images/erpnext/calender-email-digest.png and b/erpnext/docs/assets/img/collaboration-tools/calender-email-digest.png differ diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-1.png b/erpnext/docs/assets/img/human-resources/holiday-list-1.png new file mode 100644 index 00000000000..0de3ea9d788 Binary files /dev/null and b/erpnext/docs/assets/img/human-resources/holiday-list-1.png differ diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-2.gif b/erpnext/docs/assets/img/human-resources/holiday-list-2.gif new file mode 100644 index 00000000000..393255c1e18 Binary files /dev/null and b/erpnext/docs/assets/img/human-resources/holiday-list-2.gif differ diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-3.png b/erpnext/docs/assets/img/human-resources/holiday-list-3.png new file mode 100644 index 00000000000..dd0c87c4fc2 Binary files /dev/null and b/erpnext/docs/assets/img/human-resources/holiday-list-3.png differ diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-4.png b/erpnext/docs/assets/img/human-resources/holiday-list-4.png new file mode 100644 index 00000000000..5435dc46637 Binary files /dev/null and b/erpnext/docs/assets/img/human-resources/holiday-list-4.png differ diff --git a/erpnext/docs/assets/img/human-resources/holiday-list.png b/erpnext/docs/assets/img/human-resources/holiday-list.png deleted file mode 100644 index 94dbee8fdbc..00000000000 Binary files a/erpnext/docs/assets/img/human-resources/holiday-list.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/implementation-image.png b/erpnext/docs/assets/img/setup/implementation-image.png similarity index 100% rename from erpnext/docs/assets/old_images/erpnext/implementation-image.png rename to erpnext/docs/assets/img/setup/implementation-image.png diff --git a/erpnext/docs/assets/img/setup/integrations/dropbox_redirect_uri.png b/erpnext/docs/assets/img/setup/integrations/dropbox_redirect_uri.png new file mode 100644 index 00000000000..c2845210f77 Binary files /dev/null and b/erpnext/docs/assets/img/setup/integrations/dropbox_redirect_uri.png differ diff --git a/erpnext/docs/assets/old_images/erpnext/fifo.png b/erpnext/docs/assets/img/stock/fifo.png similarity index 100% rename from erpnext/docs/assets/old_images/erpnext/fifo.png rename to erpnext/docs/assets/img/stock/fifo.png diff --git a/erpnext/docs/assets/img/stock/item-manufacturing-and-website.png b/erpnext/docs/assets/img/stock/item-manufacturing-and-website.png new file mode 100644 index 00000000000..5fc5606ff50 Binary files /dev/null and b/erpnext/docs/assets/img/stock/item-manufacturing-and-website.png differ diff --git a/erpnext/docs/assets/img/stock/item-purchase.png b/erpnext/docs/assets/img/stock/item-purchase.png new file mode 100644 index 00000000000..7a8b102bd26 Binary files /dev/null and b/erpnext/docs/assets/img/stock/item-purchase.png differ diff --git a/erpnext/docs/assets/img/stock/item-reorder.png b/erpnext/docs/assets/img/stock/item-reorder.png new file mode 100644 index 00000000000..49a202f301d Binary files /dev/null and b/erpnext/docs/assets/img/stock/item-reorder.png differ diff --git a/erpnext/docs/assets/img/stock/item-sales.png b/erpnext/docs/assets/img/stock/item-sales.png new file mode 100644 index 00000000000..4484187e09a Binary files /dev/null and b/erpnext/docs/assets/img/stock/item-sales.png differ diff --git a/erpnext/docs/assets/img/stock/item-supplier.png b/erpnext/docs/assets/img/stock/item-supplier.png new file mode 100644 index 00000000000..fd40b20106b Binary files /dev/null and b/erpnext/docs/assets/img/stock/item-supplier.png differ diff --git a/erpnext/docs/assets/img/stock/item-warranty.png b/erpnext/docs/assets/img/stock/item-warranty.png new file mode 100644 index 00000000000..8040548918b Binary files /dev/null and b/erpnext/docs/assets/img/stock/item-warranty.png differ diff --git a/erpnext/docs/assets/img/website/customer-portal-order.png b/erpnext/docs/assets/img/website/customer-portal-order.png new file mode 100644 index 00000000000..83fd57ec683 Binary files /dev/null and b/erpnext/docs/assets/img/website/customer-portal-order.png differ diff --git a/erpnext/docs/assets/img/website/invoice-paid.png b/erpnext/docs/assets/img/website/invoice-paid.png new file mode 100644 index 00000000000..ce242c2b048 Binary files /dev/null and b/erpnext/docs/assets/img/website/invoice-paid.png differ diff --git a/erpnext/docs/assets/img/website/invoice-unpaid.png b/erpnext/docs/assets/img/website/invoice-unpaid.png new file mode 100644 index 00000000000..16c33256610 Binary files /dev/null and b/erpnext/docs/assets/img/website/invoice-unpaid.png differ diff --git a/erpnext/docs/assets/img/website/portal-menu.png b/erpnext/docs/assets/img/website/portal-menu.png new file mode 100644 index 00000000000..6b7ee0a0882 Binary files /dev/null and b/erpnext/docs/assets/img/website/portal-menu.png differ diff --git a/erpnext/docs/assets/img/website/website-login.png b/erpnext/docs/assets/img/website/website-login.png index 69430986bfb..ba579374f0b 100644 Binary files a/erpnext/docs/assets/img/website/website-login.png and b/erpnext/docs/assets/img/website/website-login.png differ diff --git a/erpnext/docs/assets/img/website/website-signup-details.png b/erpnext/docs/assets/img/website/website-signup-details.png new file mode 100644 index 00000000000..aa96d7fd252 Binary files /dev/null and b/erpnext/docs/assets/img/website/website-signup-details.png differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-10.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-10.png deleted file mode 100644 index eea5d736cd8..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-10.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-11.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-11.png deleted file mode 100644 index a29c0e51376..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-11.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-12.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-12.png deleted file mode 100644 index 91433712bdf..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-12.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-13.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-13.png deleted file mode 100644 index a250fd0fe1e..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-13.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-14.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-14.png deleted file mode 100644 index 5ce57e87849..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-14.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-4.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-4.png deleted file mode 100644 index 9370e86780c..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-4.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-5.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-5.png deleted file mode 100644 index cbe25e72ce2..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-5.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-6.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-6.png deleted file mode 100644 index 30509311982..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-6.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-7.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-7.png deleted file mode 100644 index dbe669efb0d..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-7.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-8.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-8.png deleted file mode 100644 index bfa951666d7..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-8.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-9.png b/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-9.png deleted file mode 100644 index 4f3fa7e4248..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/accounting-for-stock-9.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/auto-notification.png b/erpnext/docs/assets/old_images/erpnext/auto-notification.png deleted file mode 100644 index 1331a72fc16..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/auto-notification.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/backup-manager.png b/erpnext/docs/assets/old_images/erpnext/backup-manager.png deleted file mode 100644 index 3483a1f085a..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/backup-manager.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/bank-reconciliation-2.png b/erpnext/docs/assets/old_images/erpnext/bank-reconciliation-2.png deleted file mode 100644 index 2fec1e68a26..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/bank-reconciliation-2.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/budgeting-4.png b/erpnext/docs/assets/old_images/erpnext/budgeting-4.png deleted file mode 100644 index 17683e3bdf9..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/budgeting-4.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/budgeting.png b/erpnext/docs/assets/old_images/erpnext/budgeting.png deleted file mode 100644 index 809d6d191e9..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/budgeting.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/calender-event-lead.png b/erpnext/docs/assets/old_images/erpnext/calender-event-lead.png deleted file mode 100644 index dc6eb8b6b1a..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/calender-event-lead.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/calender-event-manually.png b/erpnext/docs/assets/old_images/erpnext/calender-event-manually.png deleted file mode 100644 index 84cb3430fa0..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/calender-event-manually.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/calender-event-notification.png b/erpnext/docs/assets/old_images/erpnext/calender-event-notification.png deleted file mode 100644 index fa1e4ffcc64..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/calender-event-notification.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/calender-event-permission.png b/erpnext/docs/assets/old_images/erpnext/calender-event-permission.png deleted file mode 100644 index 783f968f235..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/calender-event-permission.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/calender-event-recurring.png b/erpnext/docs/assets/old_images/erpnext/calender-event-recurring.png deleted file mode 100644 index 6147cf52681..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/calender-event-recurring.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/chart-of-cost-centers.png b/erpnext/docs/assets/old_images/erpnext/chart-of-cost-centers.png deleted file mode 100644 index ff14072b553..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/chart-of-cost-centers.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/custom-field-document.png b/erpnext/docs/assets/old_images/erpnext/custom-field-document.png deleted file mode 100644 index 6791d32a03e..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/custom-field-document.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/custom-field-insert.png b/erpnext/docs/assets/old_images/erpnext/custom-field-insert.png deleted file mode 100644 index 6eacdf144f8..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/custom-field-insert.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-login.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-login.png deleted file mode 100644 index 459d5036b3b..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/customer-portal-login.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-orders-1.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-orders-1.png deleted file mode 100644 index 5cb95bdba51..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/customer-portal-orders-1.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-1.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-1.png deleted file mode 100644 index f7ff81bf1e1..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-1.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-2.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-2.png deleted file mode 100644 index 76938776b7f..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-2.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-3.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-3.png deleted file mode 100644 index 771de784552..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-3.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/customize-form-custom-field.png b/erpnext/docs/assets/old_images/erpnext/customize-form-custom-field.png deleted file mode 100644 index d3e114327cb..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/customize-form-custom-field.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/dropbox-access.png b/erpnext/docs/assets/old_images/erpnext/dropbox-access.png deleted file mode 100644 index 7aa6cec00d1..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/dropbox-access.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/email-settings1.png b/erpnext/docs/assets/old_images/erpnext/email-settings1.png deleted file mode 100644 index 8052a383d02..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/email-settings1.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/email-settings2.png b/erpnext/docs/assets/old_images/erpnext/email-settings2.png deleted file mode 100644 index 3f84c7168a4..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/email-settings2.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/faq-manufacturer-part-no.png b/erpnext/docs/assets/old_images/erpnext/faq-manufacturer-part-no.png deleted file mode 100644 index e43667b612f..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/faq-manufacturer-part-no.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/faq-reorder-level.png b/erpnext/docs/assets/old_images/erpnext/faq-reorder-level.png deleted file mode 100644 index 8e3e8c556b9..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/faq-reorder-level.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/faq-reorder-qty.png b/erpnext/docs/assets/old_images/erpnext/faq-reorder-qty.png deleted file mode 100644 index 7b1e312c67b..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/faq-reorder-qty.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/faq-warranty.png b/erpnext/docs/assets/old_images/erpnext/faq-warranty.png deleted file mode 100644 index 93903a17004..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/faq-warranty.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/holiday-list-1.png b/erpnext/docs/assets/old_images/erpnext/holiday-list-1.png deleted file mode 100644 index 579c6dd74c8..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/holiday-list-1.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/holiday-list-2.png b/erpnext/docs/assets/old_images/erpnext/holiday-list-2.png deleted file mode 100644 index 5717971acb3..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/holiday-list-2.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/item-manufacturing-website.png b/erpnext/docs/assets/old_images/erpnext/item-manufacturing-website.png deleted file mode 100644 index 65d78b97426..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/item-manufacturing-website.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/item-purchase.png b/erpnext/docs/assets/old_images/erpnext/item-purchase.png deleted file mode 100644 index 04940b96451..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/item-purchase.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/item-sales.png b/erpnext/docs/assets/old_images/erpnext/item-sales.png deleted file mode 100644 index 4579249c02b..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/item-sales.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/portal-invoice-paid.png b/erpnext/docs/assets/old_images/erpnext/portal-invoice-paid.png deleted file mode 100644 index 0993cb5344a..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/portal-invoice-paid.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/portal-menu.png b/erpnext/docs/assets/old_images/erpnext/portal-menu.png deleted file mode 100644 index 0f9ea8200e2..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/portal-menu.png and /dev/null differ diff --git a/erpnext/docs/assets/old_images/erpnext/portal-order-billed.png b/erpnext/docs/assets/old_images/erpnext/portal-order-billed.png deleted file mode 100644 index e92e8dc505d..00000000000 Binary files a/erpnext/docs/assets/old_images/erpnext/portal-order-billed.png and /dev/null differ diff --git a/erpnext/docs/license.html b/erpnext/docs/license.html index 1d50b78b305..4740c5c1455 100644 --- a/erpnext/docs/license.html +++ b/erpnext/docs/license.html @@ -640,8 +640,8 @@ attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

-
    <one line="" to="" give="" the="" program's="" name="" and="" a="" brief="" idea="" of="" what="" it="" does.="">
-    Copyright (C) <year>  <name of="" author="">
+
    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
diff --git a/erpnext/docs/user/manual/de/accounts/budgeting.md b/erpnext/docs/user/manual/de/accounts/budgeting.md
index 1a2082c0eca..88ef1798029 100644
--- a/erpnext/docs/user/manual/de/accounts/budgeting.md
+++ b/erpnext/docs/user/manual/de/accounts/budgeting.md
@@ -11,29 +11,29 @@ Um ein Budget zuzuweisen, gehen Sie zu Rechnungswesen > Einstellungen > Übersic
 
 #### Schritt 1: Klicken Sie auf "Öffnen
 
-![]({{docs_base_url}}/assets/old_images/erpnext/budgeting-1.png)  
-
-Forderungen
+Budget
 
 #### Schritt 2: Monatliche Verteilung eingeben
 
-![]({{docs_base_url}}/assets/old_images/erpnext/budgeting-2-1.png)
+
+Budget
 
 Wenn Sie die Verteilungs-ID leer lassen, kalkuliert ERPNext auf einer jährlichen Basis und bricht auf die Monate herunter.
 
 #### Schritt 3: Fügen Sie eine neue Zeile hinzu und wählen Sie das Budget-Konto
 
-![]({{docs_base_url}}/assets/old_images/erpnext/budgeting-3.png)  
+
+Budget 
 
 ### Anlegen einer neuen Verteilungs-ID
 
 ERPNext erlaubt es Ihnen einige Aktionen für Budgets einzustellen. Das legt fest, ob bei Überschreiten des Budgets gestoppt, gewarnte oder ignoriert werden soll.
 
-![]({{docs_base_url}}/assets/old_images/erpnext/budgeting-4.png)
+Monthly Distribution
 
 Das kann über die Firmenstammdaten eingestellt werden.
 
-![]({{docs_base_url}}/assets/old_images/erpnext/budgeting-4-1.png)  
+Budget Variance Report
 
 Auch dann, wenn Sie für überschrittene Budgets "ignorieren" auswählen, bekommen Sie eine Fülle von Informationen über den Bericht zur Abweichung zwischen Budget und Istwert. Dieser Bericht zeigt Ihnen auf monatlicher Basis die tatsächlichen Ausgaben verglichen mit den budgetierten Ausgaben.
 
diff --git a/erpnext/docs/user/manual/de/accounts/setup/cost-center.md b/erpnext/docs/user/manual/de/accounts/setup/cost-center.md
index 22f5e46f9ed..be42c805a23 100644
--- a/erpnext/docs/user/manual/de/accounts/setup/cost-center.md
+++ b/erpnext/docs/user/manual/de/accounts/setup/cost-center.md
@@ -22,7 +22,7 @@ Um Ihren Kostenstellenplan einzurichten, gehen Sie zu:
 
 >Rechnungswesen > Einstellungen > Kostenstellenplan
 
-![Kostenstellenplan]({{docs_base_url}}/assets/old_images/erpnext/chart-of-cost-centers.png)
+Kostenstellenplan
 
 Kostenstellen helfen Ihnen bei der Erstellung von Budgets für Geschäftstätigkeiten.
 
diff --git a/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md b/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md
index 6b8459e78b0..c74029b5be9 100644
--- a/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md
+++ b/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md
@@ -4,18 +4,18 @@
 Das Webportal von ERPNext gibt Ihren Kunden einen schnellen Zugriff auf Ihre Aufträge, Rechnungen und Sendungen.
 Kunden können den Status Ihrer Bestellungen, Rechnungen und des Versandes nachprüfen, indem sie sich auf der Webseite einloggen.
 
-![Portalmenü]({{docs_base_url}}/assets/old_images/erpnext/portal-menu.png)
+Customer Portal Order 1
 
 Sobald eine Bestellung aufgegeben wurde, entweder über den Einkaufswagen oder aus ERPNext heraus, kann Ihr Kunde die Bestellung ansehen und den Abrechnungs- und Versandstatus nachverfolgen. Wenn die Rechnung und die Zahlung zu einer Bestellung übertragen wurden, kann der Kunde auch hier den aktuellen Stand auf einen Blick nachvollziehen.
 
-![Kundenportal]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-orders-1.png)
+Customer Portal Order 1
 
 ### Rechnung mit Status "gezahlt"
 
-![Rechnung gezahlt]({{docs_base_url}}/assets/old_images/erpnext/portal-invoice-paid.png)
+Customer Portal Order 1
 
 ### Rechnung mit Status "abgerechnet"
 
-![Rechnung berechnet]({{docs_base_url}}/assets/old_images/erpnext/portal-order-billed.png)
+Customer Portal Order 1
 
 {next}
diff --git a/erpnext/docs/user/manual/de/customer-portal/portal-login.md b/erpnext/docs/user/manual/de/customer-portal/portal-login.md
index d5cc22ee551..455dfac1da9 100644
--- a/erpnext/docs/user/manual/de/customer-portal/portal-login.md
+++ b/erpnext/docs/user/manual/de/customer-portal/portal-login.md
@@ -3,6 +3,6 @@
 
 Um sich in ein Kundenkonto einzuloggen, muss der Kunde seine Email-ID und das Passwort angeben, welche ihm von ERPNext während des Registrierungsprozesses zugesendet wurden.
 
-![Login]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-login.png)
+Website User Signup
 
 {next}
diff --git a/erpnext/docs/user/manual/de/customer-portal/sign-up.md b/erpnext/docs/user/manual/de/customer-portal/sign-up.md
index 5ffc307a9c3..0a91145d584 100644
--- a/erpnext/docs/user/manual/de/customer-portal/sign-up.md
+++ b/erpnext/docs/user/manual/de/customer-portal/sign-up.md
@@ -1,20 +1,17 @@
 # Registrieren
+
 Beigetragen von CWT Connector & Wire Technology GmbH
 
 Kunden müssen sich über die Webseite als Kunden registrieren.
 
-### Schritt 1: Klicken Sie auf das Login-Symbol
+### Schritt 1: Klicken Sie auf das Registrieren-Symbol
 
-![Registrieren]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-1.png)
-
-### Schritt 2: Klicken Sie auf das Registrieren-Symbol
-
-![Registrieren]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-2.png)
+Website User Signup
 
 ### Schritt 3: Geben Sie Ihren Kundennamen und Ihre ID ein
 
-![Registrieren]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-3.png)
+Website User Signup
 
 Wenn der Registrierungsprozess abgeschlossen ist, wird dem Kunden eine E-Mail mit dem Passwort zugeschickt.
 
-{next}
+{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md b/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md
index 25c40e16d94..7d0f0faa10d 100644
--- a/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md
+++ b/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md
@@ -16,7 +16,7 @@ Sie können ein neues benutzerdefiniertes Feld auch über das [Werkzeug zum Anpa
 
 In einem benutzerdefinierten Formular finden Sie für jedes Feld die Plus(+)-Option. Wenn Sie auf dieses Symbol klicken, wird eine neue Zeile oberhalb dieses Feldes eingefügt. Sie können die Einstellungen für Ihr Feld in der neu eingefügten leeren Zeile eingeben.
 
-![Formular anpassen - benutzerdefiniertes Feld]({{docs_base_url}}/assets/old_images/erpnext/customize-form-custom-field.png)
+Formular anpassen - benutzerdefiniertes Feld
 
 Im Folgenden sind die Schritte aufgeführt, wie man ein benutzerdefiniertes Feld in ein bestehendes Formular einfügt.
 
@@ -28,36 +28,34 @@ Wie bereits oben angesprochen, können Sie ein benutzerdefiniertes Feld über da
 
 Wählen Sie die Transaktion oder die Vorlage, in die sie ein benutzerdefiniertes Feld einfügen wollen. Nehmen wir an, dass Sie ein benutzerdefiniertes Verknüpfungsfeld in ein Angebotsformular einfügen wollen; das Dokument soll "Angebot" heißen.
 
-![Dokument mit benutzerdefiniertem Feld]({{docs_base_url}}/assets/old_images/erpnext/custom-field-document.png)
+Select Document Type
 
 ### Feldbezeichnung einstellen
 
 Die Bezeichnung des benutzerdefinierten Feldes wird basierend auf seinem Namen eingestellt. Wenn Sie ein benutzerdefiniertes Feld mit einem bestimmten Namen erstellen wollen, aber mit einer sich davon unterscheidenden Bezeichnung, dann sollten Sie erst die Bezeichnung angeben, da Sie den Feldnamen noch einstellen wollen. Nach dem Speichern des benutzerdefinierten Feldes können Sie die Feldbezeichnung wieder ändern.
 
-![Bezeichnung des benutzerdefinierten Feldes]({{docs_base_url}}/assets/old_images/erpnext/custom-field-label.png)
+Select Document Type
 
 ### Einstellen, nach welchem Element eingefügt werden soll ("Einfügen nach")
 
 Diese Auswahl enthält alle bereits existierenden Felder des ausgewählten Formulars/des DocTypes. Ihr benutzerdefiniertes Feld wird nach dem Feld eingefügt, das Sie unter "Einfügen nach" auswählen.
 
-![Benutzerdefiniertes Feld einfügen]({{docs_base_url}}/assets/old_images/erpnext/custom-field-insert.png)
+Select Document Type
 
 ### Feldtyp auswählen
 
 Klicken Sie hier um weitere Informationen über Feldtypen, die Sie bei einem benutzerdefinierten Feld auswählen können, zu erhalten.
 
-![Typ des benutzerdefinierten Feldes]({{docs_base_url}}/assets/old_images/erpnext/custom-field-type.png)
+Select Document Type
 
 ### Optionen einstellen
 
 Wenn Sie ein Verknüpfungsfeld erstellen,dann wird der Name des DocType, mit dem dieses Feld verknüpft werden soll, in das Feld "Optionen" eingefügt. Klicken Sie [hier]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/creating-custom-link-field) um weitere Informationen darüber zu erhalten, wie man benutzerdefinierte Verknüpfungsfelder erstellt.
 
-![Verknüpfung mit einem benutzerdefinierten Feld]({{docs_base_url}}/assets/old_images/erpnext/custom-field-link.png)
+Select Document Type
 
 Wenn der Feldtyp als Auswahlfeld (Drop Down-Feld) angegeben ist, dann sollten alle möglichen Ergebnisse für dieses Feld im Optionen-Feld aufgelistet werden. Die möglichen Ergebnisse sollten alle in einer eigenen Zeile stehen.
 
-![Optionen für benutzerdefinierte Felder]({{docs_base_url}}/assets/old_images/erpnext/custom-field-option.png)
-
 Bei anderen Feldtypen, wie Daten, Datum, Währung usw. lassen Sie das Optionen-Feld leer.
 
 ### Weitere Eigenschaften
@@ -71,7 +69,7 @@ Sie können weitere Eigenschaften auswählen wie:
 5. Schreibgeschützt: Wenn diese Option aktiviert ist, kann das benutzerdefinierte Feld nicht geändert werden.
 6. Beim Übertragen zulassen: Wenn diese Option ausgewählt wird, ist es erlaubt den Wert des Feldes zu ändern, wenn er in einer Transaktion übertragen wird.
 
-![Eigenschaften von benutzerdefinierten Feldern]({{docs_base_url}}/assets/old_images/erpnext/custom-field-properties.png)
+Select Document Type
 
 ### Benutzerdefiniertes Feld löschen
 
diff --git a/erpnext/docs/user/manual/de/introduction/the-champion.md b/erpnext/docs/user/manual/de/introduction/the-champion.md
index b89f48b9175..912c25213b5 100644
--- a/erpnext/docs/user/manual/de/introduction/the-champion.md
+++ b/erpnext/docs/user/manual/de/introduction/the-champion.md
@@ -1,7 +1,7 @@
 # Der Champion
 Beigetragen von CWT Connector & Wire Technology GmbH
 
-Bild
+Champion
 
 Wir haben uns in den letzten Jahren dutzende von ERP-Umsetzungen angesehen, und wir haben erkannt, dass eine erfolgreiche Umsetzung viel mit schwer greifbaren Dingen und persönlichen Einstellungen zu tun hat.
 
diff --git a/erpnext/docs/user/manual/de/setting-up/third-party-backups.md b/erpnext/docs/user/manual/de/setting-up/third-party-backups.md
deleted file mode 100644
index ba53f5e76e1..00000000000
--- a/erpnext/docs/user/manual/de/setting-up/third-party-backups.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Drittpartei-Datensicherungen
-Beigetragen von CWT Connector & Wire Technology GmbH
-
-Wenn Sie Ihre Daten regelmäßig auf Dropbox sichern möchten, können Sie das direkt über ERPNext tun.
-
-> Einstellungen > Einbindungen > Dropbox-Datensicherung
-
-**Schritt 1:** Klicken Sie auf Einstellungen, dann auf Einbindungen
-
-**Schritt 2:** Klicken Sie auf Dropbox-Datensicherung
-
-### Abbildung 1: Dropbox-Datensicherung
-
-![Drittparteien-Datensicherung]({{docs_base_url}}/assets/old_images/erpnext/third-party-backups.png)
-
-Geben Sie auf der Seite "Dropbox-Datensicherung" die E-Mail-Adressen der Menschen ein, die über den Sicherungsstatus informiert werden sollen. Unter dem Punkt "Häufigkeit des Hochladens" geben Sie an, ob die Daten täglich oder wöchentlich gesichert werden sollen.
-
-**Schritt 3:** Klicken Sie auf **Dropbox-Zugang zulassen**
-
-> Tipp: Wenn Sie in der Zukunft keine Datensicherungen mehr auf Dropbox sichern wollen, dann demarkieren Sie das Feld "Datensicherungen zur Dropbox senden".
-
-### Abbildung 2: "Dropbox-Zugang zulassen"
-
-![Backup Manager]({{docs_base_url}}/assets/old_images/erpnext/backup-manager.png)
-
-Sie müssen sich mit Ihrer ID und Ihrem Passwort an Ihrem Dropbox-Konto anmelden.
-
-![Dropbox-Zugriff]({{docs_base_url}}/assets/old_images/erpnext/dropbox-access.png)
-
-## Für OpenSource-Nutzer
-
-Voreinstellungen:
-
-pip install dropbox
-
-pip install google-api-python-client
-
-### Erstellen Sie in der Dropbox eine Anwendung
-
-Legen Sie zuerst ein Dropbox-Konto an und erstellen Sie dann eine neue Anwendung (https://www.dropbox.com/developers/apps). Wenn Sie das Konto erfolgreich angelegt haben, erhalten Sie app_key, app_secret und access_type. Bearbeiten Sie nun site_config.json Ihrer Seite (/frappe-bench/sites/your-site/) und fügen Sie die folgenden Zeilen hinzu: 
-
-* "dropbox_access_key": "app_key", und
-* "dropbox_secret_key": "app_secret"
-
-Dann können Sie zum Modul "Einbindungen" gehen und "Dropbox-Zugang zulassen".
-
-> Hinweis: Bitte stellen Sie sicher, dass Ihr Browser Popups zulässt.
-
-{next}
diff --git a/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/perpetual-inventory.md b/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/perpetual-inventory.md
index 9a7f4311daf..f0e1f7a6886 100644
--- a/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/perpetual-inventory.md
+++ b/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/perpetual-inventory.md
@@ -66,9 +66,9 @@ Kontenplan
 
 #### Kaufbeleg
 
-Nehmen wir an, Sie haben 10 Stück des Artikels "RM0001" zu 200€ und 5 Stück des Artikels "Tisch" zu **100€** vom Lieferanten "East Wind Inc." eingekauft. Im Folgenden finden Sie die Details des Kaufbelegs:
+Nehmen wir an, Sie haben 10 Stück des Artikels "RM0001" zu 200€ und 5 Stück des Artikels "Tisch" zu **100€** vom Lieferanten "Arcu Vel Quam Fabricators" eingekauft. Im Folgenden finden Sie die Details des Kaufbelegs:
 
-**Supplier:** East Wind Inc.
+**Supplier:** Arcu Vel Quam Fabricators
 
 **Artikel:**
 
@@ -133,11 +133,11 @@ Nehmen wir an, Sie haben 10 Stück des Artikels "RM0001" zu 200€ und 5 Stück
 

Lagerbuch

-![Lagerbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-2.png) +Lagerbuch **Hauptbuch:** -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-3.png) +Hauptbuch Um ein System der doppelten Buchhaltung zu erhalten, werden dadurch, dass sich der Kontensaldo durch den Kaufbeleg erhöht, die Konten "In Verkaufsstellen" und "Anlagevermögen im Lager" belastet und das temporäre Konto "Lagerware erhalten aber noch nicht abgerechnet" entlastet. Zum selben Zeitpunkt wird eine negative Aufwendung auf das Konto "In der Bewertung enthaltene Kosten" verbucht, um die Bewertung hinzuzufügen und um eine doppelte Aufwandsverbuchung zu vermeiden. @@ -149,7 +149,7 @@ Wenn eine Rechnung des Lieferanten für den oben angesprochenen Kaufbeleg eintri #### Hauptbuch -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-4.png) +Hauptbuch Hier wird das Konto "Lagerware erhalten aber noch nicht bewertet" belastet und hebt den Effekt des Kaufbeleges auf. @@ -157,9 +157,9 @@ Hier wird das Konto "Lagerware erhalten aber noch nicht bewertet" belastet und h ### Lieferschein -Nehmen wir an, dass Sie eine Kundenbestellung von "Jane Doe" über 5 Stück des Artikels "RM0001" zu 300€ haben. Im Folgenden sehen Sie die Details des Lieferscheins. +Nehmen wir an, dass Sie eine Kundenbestellung von "Utah Automation Services" über 5 Stück des Artikels "RM0001" zu 300€ haben. Im Folgenden sehen Sie die Details des Lieferscheins. -**Kunde:** Jane Doe +**Kunde:** Utah Automation Services **Artikel:** @@ -206,18 +206,15 @@ Nehmen wir an, dass Sie eine Kundenbestellung von "Jane Doe" über 5 Stück des **Lagerbuch** -![Lagerbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-5.png) +Lagerbuch **Hauptbuch** -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-6.png) +Hauptbuch Da der Artikel aus dem Lager "In Verkaufsstellen" geliefert wird, wird das Konto "In Verkaufsstellen" entlastet und ein Betrag in gleicher Höhe dem Aufwandskonto "Selbstkosten" belastet. Der belastete/entlastete Betrag ist gleich dem Gesamtwert (Einkaufskosten) des Verkaufsartikels. Und der Wert wird gemäß der bevorzugten Bewertungsmethode (FIFO/Gleitender Durchschnitt) oder den tatsächlichen Kosten eines serialisierten Artikels kalkuliert. - - - - + In diesem Beispiel gehen wir davon aus, dass wir als Berwertungsmethode FIFO verwenden. Bewertungpreis = Einkaufpreis + In der Bewertung enthaltene Abgaben/Gebühren = 200 + (250 * (2000 / 2500) / 10) @@ -225,20 +222,20 @@ Da der Artikel aus dem Lager "In Verkaufsstellen" geliefert wird, wird das Konto Gesamtsumme der Bewertung = 220 * 5 = 1100 - * * * ### Ausgangsrechnung mit Lageraktualisierung + Nehmen wir an, dass Sie zur obigen Bestellung keinen Lieferschein erstellt haben sondern direkt eine Ausgangsrechnung mit der Option "Lager aktualisieren" erstellt haben. Die Details der Ausgangsrechnung sind die gleichen wie bei obigem Lieferschein. **Lagerbuch** -![Lagerbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-7.png) +Lagerbuch **Hauptbuch** -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-8.png) +Hauptbuch Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten "In Verkaufsstellen" und "Selbstkosten" basierend auf der Bewertung beeinflusst. @@ -271,11 +268,11 @@ Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten **Lagerbuch** -![Lagerbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-9.png) +Lagerbuch **Hauptbuch** -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-10.png) +Hauptbuch * * * @@ -306,11 +303,11 @@ Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten **Lagerbuch** -![Lagerbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-11.png) +Lagerbuch **Hauptbuch** -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-12.png) +Hauptbuch * * * @@ -343,22 +340,8 @@ Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten **Lagerbuch** -![Lagerbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-13.png) +Lagerbuch **Hauptbuch** -![Hauptbuch]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-14.png) - - - - - - - - - - - - - - +Hauptbuch \ No newline at end of file diff --git a/erpnext/docs/user/manual/de/using-erpnext/calendar.md b/erpnext/docs/user/manual/de/using-erpnext/calendar.md index 7087df38859..42d884b64e3 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/calendar.md +++ b/erpnext/docs/user/manual/de/using-erpnext/calendar.md @@ -5,6 +5,8 @@ Der Kalender ist ein Werkzeug, mit dem Sie Ereignisse erstellen und teilen könn Sie können die Kalenderansicht umschalten zwischen Monatsansicht, Wochenansicht und Tagesansicht. +Calendar + ### Ereignisse im Kalender erstellen #### Ein Ereignis manuell erstellen @@ -13,7 +15,7 @@ Um ein Ereignis manuell zu erstellen, sollten Sie zuerst die Kalenderansicht fes Diese Ansicht zeigt die 24 Stunden des Tages aufgeteilt in verschiedene Zeitfenster an. Klicken Sie für den Startzeitpunkt auf ein Zeitfenster und ziehen Sie den Rahmen auf bis Sie den Endzeitpunkt erreichen. -![Manuelle Kalenderereignisse]({{docs_base_url}}/assets/old_images/erpnext/calender-event-manually.png) +Calendar Auf Grundlage der Auswahl des Zeitfensters werden Start- und Endzeitpunkt in die Ereignisvorlage übernommen. Sie können dann noch die Bezeichnung des Ereignisses angeben und speichern. @@ -21,7 +23,7 @@ Auf Grundlage der Auswahl des Zeitfensters werden Start- und Endzeitpunkt in die Im Leadformular finden Sie die Felder "Nächster Kontakt durch" und "Nächstes Kontaktdatum". Wenn Sie in diesen Feldern einen Termin und eine Kontaktperson eintragen, wird automatisch ein Ereignis erstellt. -![Ereignis auf Grundlage eines Leads]({{docs_base_url}}/assets/old_images/erpnext/calender-event-lead.png) +Lead Event #### Geburtstag @@ -31,15 +33,7 @@ Auf Basis der in den Mitarbeiterstammdaten eingetragenen Geburtstage werden Gebu Sie können Ereignisse als wiederkehrend in bestimmten Intervallen markieren, indem Sie "Dieses Ereignis wiederholen" aktivieren. -![Wiederkehrendes Kalenderereignis]({{docs_base_url}}/assets/old_images/erpnext/calender-event-recurring.png) - -### Berechtigungen für ein Ereignis - -Sie können ein Ereignis als privat oder öffentlich erstellen. Private Ereignisse können nur Sie und Benutzer, die in der Tabelle "Teilnehmer" ausgewählt wurden, sehen. Sie können Berechtigungen für Ereignisse nicht nur über den Benutzer, sondern auch über die Rolle setzen. - -Ein öffentliches Ereignis wie ein Geburtstag ist für alle sichtbar. - -![Berechtigungen für Kalenderereignisse]({{docs_base_url}}/assets/old_images/erpnext/calender-event-permission.png) +Calendar Recurring Event ### Erinnerungen an Ereignisse @@ -49,7 +43,7 @@ Es gibt zwei Arten, wie Sie eine Erinnerung zu einem Ereignis per E-Mail erhalte Wenn Sie in der Ereignisvorlage den Punkt "E-Mail-Erinnerung am Morgen senden" anklicken, erhalten alle Teilnehmer an diesem Ereignis eine Benachrichtungs-E-Mail. -![Benachrichtigung über Kalenderereignisse]({{docs_base_url}}/assets/old_images/erpnext/calender-event-notification.png) +Calendar Recurring Event #### Einen täglichen E-Mail-Bericht erstellen @@ -59,6 +53,6 @@ Der tägliche E-Mail-Bericht kann eingestellt werden über: > Einstellungen > E-Mail > Täglicher E-Mail-Bericht -![Täglicher E-Mail-Bericht]({{docs_base_url}}/assets/old_images/erpnext/calender-email-digest.png) +Calendar Recurring Event {next} diff --git a/erpnext/docs/user/manual/en/accounts/purchase-invoice.md b/erpnext/docs/user/manual/en/accounts/purchase-invoice.md index 433219cf9f8..3ffd93041ac 100644 --- a/erpnext/docs/user/manual/en/accounts/purchase-invoice.md +++ b/erpnext/docs/user/manual/en/accounts/purchase-invoice.md @@ -3,18 +3,29 @@ that your Supplier sends you for products or services delivered. Here you accrue expenses to your Supplier. Making a Purchase Invoice is very similar to making a Purchase Order. -To make a new Purchase Invoice, go to: - -> Accounts > Documents > Purchase Invoice > New Purchase Invoice +To make a new Purchase Invoice: +> type "new purchase invoice" into the search bar then select "New Purchase +Invoice" from the drop down or click on “Make Purchase Invoice” in Purchase Order or Purchase Receipt. +You can also create a Purchase Invoice from: +> Accounts > Billing > Purchase Invoice > New Purchase Invoice + Purchase Invoice The concept of “Posting Date” is again same as Sales Invoice. “Bill No” and “Bill Date” helps to track the bill number as set by your Supplier for reference. +#### Is Paid option +The **Is Paid** checkbox should be checked if there is a part or full payment +on the invoice at posting date. + +#### Update Stock +The **Update Stock** checkbox should be checked if you want ERPNext to automatically + update your inventory. Consequently, there will be no need for a Delivery Note. + #### Accounting Impact Like in Sales Invoice, you have to enter an Expense or an Asset account for @@ -34,7 +45,18 @@ Debits: Credits: * Supplier + +##### Accounting Treatment When **Is Paid** is checked +If **Is Paid** is checked, ERPNext will also make the following +accounting entries: +Debits: + + * Supplier + +Credits: + * Bank/Cash Account + To see entries in your Purchase Invoice after you “Submit”, click on “View Ledger”. diff --git a/erpnext/docs/user/manual/en/accounts/setup/cost-center.md b/erpnext/docs/user/manual/en/accounts/setup/cost-center.md index 16b543151c9..5ed38028736 100644 --- a/erpnext/docs/user/manual/en/accounts/setup/cost-center.md +++ b/erpnext/docs/user/manual/en/accounts/setup/cost-center.md @@ -32,6 +32,6 @@ To setup your Chart of Cost Centers go to: > Accounts > Setup > Chart of Cost Centers -![Chart of Cost Center]({{docs_base_url}}/assets/old_images/erpnext/chart-of-cost-centers.png) +Cost Center {next} diff --git a/erpnext/docs/user/manual/en/accounts/tools/bank-reconciliation.md b/erpnext/docs/user/manual/en/accounts/tools/bank-reconciliation.md index 3bfc24c55f8..87348eebbd1 100644 --- a/erpnext/docs/user/manual/en/accounts/tools/bank-reconciliation.md +++ b/erpnext/docs/user/manual/en/accounts/tools/bank-reconciliation.md @@ -1,26 +1,20 @@ ### Bank Reconciliation Statement -If you are receiving payments or making payments via cheques, the bank statements will not accurately match the dates of your entry, this is because the bank usually takes time to “clear” these payments. Also you may have -mailed a cheque to your Supplier and it may be a few days before it is received and deposited by the Supplier. In ERPNext you can synchronise your bank statements and your Journal Entries using the “Bank Reconciliation” -tool. +If you are receiving payments or making payments via cheques, the bank statements will not accurately match the dates of your entry, this is because the bank usually takes time to “clear” these payments. Also you may have mailed a cheque to your Supplier and it may be a few days before it is received and deposited by the Supplier. In ERPNext you can synchronise your bank statements and your Journal Entries using the “Bank Reconciliation” tool. The Bank Reconciliation Report provide the difference between the bank balance shown in an organisation's bank statement, as provided by the ban against amount shown in the companies Chart of Accounts. ####Bank Reconciliation Statement -![]({{docs_base_url}}/assets/old_images/erpnext/bank-reconciliation-2.png) +Bank Reconciliation statement In the report, check whether the field 'Balance as per bank' matches the Bank Account Statement. If it is matching, it means that Clearance Date is correctly updated for all the bank entries. If there is a mismatch, Its because of bank entries for which Cleanrane Date is not yet updated. -To add clearance entries go to: - -> Accounts > Tools > Bank Reconciliation - ###Bank Reconciliation Tool -o use this, go to: +To add clearance entries go to: -> Accounts > Tools > Bank Reconciliation +`Accounts > Tools > Bank Reconciliation` Select your “Bank” Account and enter the dates of your statement. Here you will get all the “Bank Voucher” type entries. In each of the entry on the diff --git a/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md b/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md index 83d7bf6494e..257370ea3fa 100644 --- a/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md +++ b/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md @@ -1,22 +1,17 @@ -ERPNext Web Portal gives your customers quick access to their Orders, Invoices -and Shipments Customers can check the status of their orders, invoices, and -shipping status by logging on to the web. +ERPNext Web Portal gives your customers quick access to their Orders, Invoices and Shipments Customers can check the status of their orders, invoices, and shipping status by logging on to the web. -![Portal Menu]({{docs_base_url}}/assets/old_images/erpnext/portal-menu.png) +Customer Portal Order 1 -Once an order is raised, either using the Shopping Cart or from within -ERPNext, your customer can view the order and keep an eye on the billing and -shipment status. When the invoice and payment against these orders are -submitted, the customer can see the updated status on the portal, at a glance. +Once an order is raised, either using the Shopping Cart or from within ERPNext, your customer can view the order and keep an eye on the billing and shipment status. When the invoice and payment against these orders are submitted, the customer can see the updated status on the portal, at a glance. -![Customer Portal]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-orders-1.png) +Customer Portal Order 1 -#### Invoice with paid status. +#### Outstanding Sales Invoice -![Invoice Paid]({{docs_base_url}}/assets/old_images/erpnext/portal-invoice-paid.png) +Customer Portal Order 1 -#### Invoice with billed status. +#### Paid Sales Invoice -![Billed Invoice]({{docs_base_url}}/assets/old_images/erpnext/portal-order-billed.png) +Customer Portal Order 1 {next} diff --git a/erpnext/docs/user/manual/en/customer-portal/portal-login.md b/erpnext/docs/user/manual/en/customer-portal/portal-login.md index e2cdbdbccfe..62a9b6ffb6a 100644 --- a/erpnext/docs/user/manual/en/customer-portal/portal-login.md +++ b/erpnext/docs/user/manual/en/customer-portal/portal-login.md @@ -1,6 +1,6 @@ To login into the customer account, the customer has to use his Email Address and the password sent by ERPNext; generated through the sign-up process. -![Login]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-login.png) +Website User Signup {next} diff --git a/erpnext/docs/user/manual/en/customer-portal/sign-up.md b/erpnext/docs/user/manual/en/customer-portal/sign-up.md index 43c2f082148..554285c19dc 100644 --- a/erpnext/docs/user/manual/en/customer-portal/sign-up.md +++ b/erpnext/docs/user/manual/en/customer-portal/sign-up.md @@ -1,22 +1,15 @@ -Customers have to log-in to the Company Website, and sign-up as a customer. +Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page. -#### Step 1: Click on Login Icon +#### Step 1: Signup -![Sign Up]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-1.png) +On the Login Page, you will find option to Signup. - +Website User Signup -#### Step 2: Click on Sign Up Icon +#### Step 2: Enter Customer Name and ID -![Sign Up]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-2.png) +Website User Signup - - -#### Step 3: Enter Customer Name and ID - -![Sign Up]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-3.png) - -After the sign up process, a mail will be sent to the customers Email Address with -the password details. +After the sign up process, an email will be sent to the customers Email Address with the password details. {next} diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md index 316fe2bbcc2..433db2de1af 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md @@ -1,4 +1,4 @@ -DocType or Document Type is a tool to insert form in ERPNext. The forms like Sales Order, +DocType or a Document Type is a tool to insert form in ERPNext. The forms like Sales Order, Sales Invoices, Production Order are added as Doctype in the backend. Let's assume we are creating a Custom Doctype for a Book. @@ -8,7 +8,7 @@ To create a new **DocType**, go to: `Setup > Customize > Doctype > New` -#### Doctype Detail +#### DocType Detail 1. Module: Select module in which this Doctype should be placed. 1. Document Type: Specify if this Doctype will be to carry master data, or to track transactions. Doctype @@ -52,13 +52,13 @@ In this table, you should select roles and define permission roles for them for Doctype Permissions -#### Save Doctype +#### Save DocType On saving doctype, you will get pop-up to provide name for this Doctype. -Doctype Save +Doctype Save -#### Doctype in System +#### DocType in System To check this Doctype, open Module defined for this doctype. Since we have added Books doctype in the Human Resource module, to access this doctype, go to: @@ -71,6 +71,6 @@ Human Resource module, to access this doctype, go to: Using the fields entered, following is the master one book. -Doctype Form +Doctype Form {next} diff --git a/erpnext/docs/user/manual/en/human-resources/holiday-list.md b/erpnext/docs/user/manual/en/human-resources/holiday-list.md index 1a98ad3660b..c1e76f1924a 100644 --- a/erpnext/docs/user/manual/en/human-resources/holiday-list.md +++ b/erpnext/docs/user/manual/en/human-resources/holiday-list.md @@ -1,59 +1,40 @@ -Holiday List is a list which contains the dates of holidays along with the -occasion of that holiday. The list is generally valid for one calendar year. +#Holiday List -Most organisations have a standard Holiday-List for their employees. Some even -have different holiday lists for laborers and a different one for management -staff. +Holiday List is a list which contains the dates of holidays. + +Most organisations have a standard Holiday-List for their employees. Some even have different holiday lists based on the different locations or departments. + +To add a new Holiday List, go to: + +`Human Resources (HR) > Leave and Holiday > Holiday List` + +Click on New to add new Holiday List. + +### New Holiday List + +Give a name to Holiday List. It can be based in Fiscal Year or location or department as application. Also select From and To Date for the Holiday List. + +Holiday List + +You can quickly add Weekly Off in the Holiday List as following. + +Holiday List + +After that, you can also add specific days (like festival holidays) manually. + +Holiday List +### Holiday List in Employee -To set up a holiday list in the system, Go to Human Resources Module and Click -on Holiday List. +If you have created multiple Holiday List, then select specific Holiday List for an Employee in the respective master. - +Holiday List -> Human Resources >Holiday List > New Holiday List +When an Employee applies for the Leave, then days mentioned in the Holiday List will not be counted, as they are holiday already. For more configuration option in Holiday List, check `HR > HR Settings`. - -#### Figure 1: Holiday List +> Note 1: If you have specified a Holiday List in the Employment master, then that Holiday List will give priority the default Holiday List of the company. -![]({{docs_base_url}}/assets/old_images/erpnext/holiday-list-1.png) - - - -__Step 1:__ Give a name to the Holiday list - -__Step 2:__ Mention the Fiscal Year - -__Step 3:__ State the Weekly off. - -__Step 4:__ Click on the button 'Get Weekly Off Dates' - -This step will fill the box below with yearly off dates with day as the -description. - -__Step 5:__ Click on Add new row to add more dates - -Mention the holiday reason in the description and select the date from the -'Date' field. - - -#### Figure 2: Adding new holidays to the list - -![]({{docs_base_url}}/assets/old_images/erpnext/holiday-list-2.png) - - - -> Note 1: If you have selected a holiday list in the Employment Details form, -the system will give priority to the form mentioned here. It will fetch the -list mentioned in the form rather than the one which you may have specified as -Default; However, if there is no list in the employment details form, the -default list will be fetched. - - -> Note 2: You can form as many holiday lists as you wish. For example, if you -have a mill, you can have one list for mill workers and another list for -office staff. You can manage between lists by attaching their respective -holiday list to their respective employment detail form. +> Note 2: You can form as many holiday lists as you wish. For example, if you have a factory, you can have one list for the factory workers and another list for office staff. You can manage between lists by attaching their respective holiday list to their respective employment detail form. {next} diff --git a/erpnext/docs/user/manual/en/human-resources/setup/holiday-list.md b/erpnext/docs/user/manual/en/human-resources/setup/holiday-list.md deleted file mode 100644 index 31094f72d03..00000000000 --- a/erpnext/docs/user/manual/en/human-resources/setup/holiday-list.md +++ /dev/null @@ -1,5 +0,0 @@ -You can specify the Holidays for a particular year using Holiday List. - -Holiday List - -{next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/introduction/the-champion.md b/erpnext/docs/user/manual/en/introduction/the-champion.md index 472cd947531..4d75abb6e69 100644 --- a/erpnext/docs/user/manual/en/introduction/the-champion.md +++ b/erpnext/docs/user/manual/en/introduction/the-champion.md @@ -2,7 +2,7 @@

The Champion

- +Champion We have seen dozens of ERP implementations over the past few years and we realize that successful implementation is a lot about intangibles and diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-account.md b/erpnext/docs/user/manual/en/setting-up/email/email-account.md index f0203627bfb..ad448b0ae2a 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/email-account.md +++ b/erpnext/docs/user/manual/en/setting-up/email/email-account.md @@ -1,8 +1,8 @@ # Email Accounts -You can manage multiple incoming and outgoing Email Accounts in ERPNext. There has to be atleast one default outgoing account and one default incoming account. If you are on the ERPNext cloud, the default outgoing email is set by us. +You can manage multiple incoming and outgoing Email Accounts in ERPNext. There has to be at-least one default outgoing account and one default incoming account. If you are on the ERPNext cloud, the default outgoing email is set by us. -> **Note for self implementers:** For outgoing emails, you should setup your own SMTP server or sign up with an SMTP relay service like mandrill.com or sendgrid.com that allows a larger number of transactional emails to be sent. Regular email services like GMail will restrict you to a limited number of emails per day. +> **Note for self implementers:** For outgoing emails, you should setup your own SMTP server or sign up with an SMTP relay service like mandrill.com or sendgrid.com that allows a larger number of transactional emails to be sent. Regular email services like Gmail will restrict you to a limited number of emails per day. ### Default Email Accounts diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md b/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md index 9d8554ee47f..0839072b458 100644 --- a/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md +++ b/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md @@ -43,12 +43,16 @@ With this, a folder called "ERPNext" will be created in your Dropbox account, an ####Step 3: Fill in details for the app -Create new +Choose Dropbox API and type as APP Folder - -Create new +Setup APP Name -####Step 4: Settings in Site Config +####Step 4: Setup Redirect URL in app + +Set Redirect URL + +####Step 5: Settings in Site Config After the app is created, note the app key and app secret on Dropbox Settings page or enter in `sites/{sitename}/site_config.json` as follows, diff --git a/erpnext/docs/user/manual/en/setting-up/third-party-backups.md b/erpnext/docs/user/manual/en/setting-up/third-party-backups.md deleted file mode 100644 index c4e74ca4a02..00000000000 --- a/erpnext/docs/user/manual/en/setting-up/third-party-backups.md +++ /dev/null @@ -1,54 +0,0 @@ -If you wish to store your backups on a periodic basis,on Dropbox, you can do -it directly through ERPNext. - -> Setup > Manage 3rd Party Backups - -__Step 1:__ Click on Setup. - -__Step 2:__ Click on Manage Third Party Backup - -#### Figure 1: Manage Third Party Backup - -![Third Party Backups]({{docs_base_url}}/assets/old_images/erpnext/third-party-backups.png) - -On the Backup Manager page, enter the email addresses of those people whom you -wish to notify about the upload status. Under the topic 'Sync with Dropbox', -select whether you wish to upload Daily, Weekly or Never. - -__Step 3__ Click on **Allow Dropbox Access**. - -> Tip: In future, if you wish to discontinue uploading backups to dropbox, -then select the Never option. - -#### Figure 2: Allow Dropbox Access - -![Backup Manager]({{docs_base_url}}/assets/old_images/erpnext/backup-manager.png) - -You need to login to your dropbox account, with your user id and password. - -![Dropbox Access]({{docs_base_url}}/assets/old_images/erpnext/dropbox-access.png) - -## Open Source Users - -Installing Pre-Requisites - - - - pip install dropbox - pip install google-api-python-client - - - - -#### Create an App in Dropbox - -First create your Dropbox account and create a new app (https://www.dropbox.com/developers/apps). -After successful creation of account you will receive `app_key`, `app_secret` and `access_type`. Now edit `site_config.json` of your site (/frappe-bench/sites/your-site/) and add the following lines: -- `"dropbox_access_key": "app_key",` and -- `"dropbox_secret_key": "app_secret"` - -Then you can go to the "Integrations" module and Allow Dropbox Access. - -> Note: Please ensure Allow Pop-ups are enabled in your browser. - -{next} diff --git a/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.md b/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.md index 02fb1b9bf21..92e0544e032 100644 --- a/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.md +++ b/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.md @@ -1,6 +1,6 @@ As per the perpetual inventory system, accounts posting is done for every stock transaction. -On creating new Warehouse, the system will automatically create an Account in the Chart of Accout, with the same name as Warehouse Name. +On creating new Warehouse, the system will automatically create an Account in the Chart of Account, with the same name as Warehouse Name. On receipt of items in a particular warehouse, the balance in the Warehouse Account will increase. Similarly when items are delivered from the Warehouse, an expense will be booked, and balance in the Warehouse Account will reduce. @@ -17,15 +17,11 @@ On receipt of items in a particular warehouse, the balance in the Warehouse Acco * Default Inventory Account * Stock Received But Not Billed * Stock Adjustment Account - * Expenses Included In Valuation + * Expenses Included In Valuation * Cost Center -Perpetual Inventory - * If user wants to set an individual account for each warehouse, create account head for each account under `Assets > Current Asset > Stock Assets > (Warehouse)` and set it on the respective warehouse under field 'Account'. -Perpetual Inventory - * For stock transactions, general ledger entries made against the account head set on the warehouse, if user had not set the account for the warhouse then system gets the account head from the parent warehouse. If account had not set for parent warehouse then system gets the account(Default Inventory Account) from the company master. * * * @@ -76,9 +72,9 @@ Consider following Chart of Accounts and Warehouse setup for your company: ###Purchase Receipt -Suppose you have purchased _10 nos_ of item "RM0001" at _$200_ and _5 nos_ of item "Base Plate" at **$100** from supplier "East Wind Inc". Following are the details of Purchase Receipt: +Suppose you have purchased _10 nos_ of item "RM0001" at _$200_ and _5 nos_ of item "Base Plate" at **$100** from supplier "Arcu Vel Quam Fabricators". Following are the details of Purchase Receipt: -**Supplier:** East Wind Inc. +**Supplier:** Arcu Vel Quam Fabricators **Items:** @@ -135,11 +131,11 @@ Suppose you have purchased _10 nos_ of item "RM0001" at _$200_ and _5 nos_ of it **Stock Ledger** -Perpetual Inventory +Perpetual Inventory **General Ledger** -Perpetual Inventory +Perpetual Inventory As stock balance increases through Purchase Receipt, "Store" accounts are debited and a temporary account "Stock Receipt But Not Billed" account is credited, to maintain double entry accounting system. At the same time, negative expense is booked in account "Expense included in Valuation" for the amount added for valuation purpose, to avoid double expense booking. @@ -151,7 +147,7 @@ On receiving Bill from supplier, for the above Purchase Receipt, you will make P **General Ledger** -General +Perpetual Inventory Here "Stock Received But Not Billed" account is debited and nullified the effect of Purchase Receipt. @@ -160,10 +156,10 @@ effect of Purchase Receipt. ###Delivery Note -Lets say, you have an order from "Jane Doe" to deliver 5 nos of item "RM0001" +Lets say, you have an order from "Utah Automation Services" to deliver 5 nos of item "RM0001" at $300. Following are the details of Delivery Note: -**Customer:** Jane Doe +**Customer:** Utah Automation Services **Items:** @@ -209,21 +205,20 @@ at $300. Following are the details of Delivery Note: **Stock Ledger** -Stock +Perpetual Inventory **General Ledger** -General +Perpetual Inventory As item is delivered from "Stores" warehouse, "Stores" account is credited and equal amount is debited to the expense account "Cost of Goods Sold". The debit/credit amount is equal to the total valuation amount (buying cost) of -the selling items. And valuation amount is calculated based on your prefferred +the selling items. And valuation amount is calculated based on your preferred valuation method (FIFO / Moving Average) or actual cost of serialized items. - - + In this example, we have considered valuation method as FIFO. Valuation Rate = Purchase Rate + Charges Included in Valuation = 200 + (250 * (2000 / 2500) / 10) @@ -243,11 +238,11 @@ of the Sales Invoice are same as the above Delivery Note. **Stock Ledger** -Stock +Perpetual Inventory **General Ledger** -General +Perpetual Inventory Here, apart from normal account entries for invoice, "Stores" and "Cost of Goods Sold" accounts are also affected based on the valuation amount. @@ -281,11 +276,11 @@ Goods Sold" accounts are also affected based on the valuation amount. **Stock Ledger** -Stock +Perpetual Inventory **General Ledger** -General +Perpetual Inventory * * * @@ -316,11 +311,11 @@ Goods Sold" accounts are also affected based on the valuation amount. **Stock Ledger** -Stock +Perpetual Inventory **General Ledger** -Stock +Perpetual Inventory * * * @@ -353,10 +348,10 @@ Goods Sold" accounts are also affected based on the valuation amount. **Stock Ledger** -Stock +Perpetual Inventory **General Ledger** -Stock - +Perpetual Inventory + {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/item/index.md b/erpnext/docs/user/manual/en/stock/item/index.md index ad448669329..b3b72790126 100644 --- a/erpnext/docs/user/manual/en/stock/item/index.md +++ b/erpnext/docs/user/manual/en/stock/item/index.md @@ -1,6 +1,6 @@ -An Item is your companys' product or a service. The term Item is applicable to things (products or services) you sell as well as raw materials or components of products yet to be produced (before they can be sold to customers). An Item can be a phyical product or a service that you buy/sell from your customers/suppliers. ERPNext allows you to manage all sorts of items like raw-materials, sub-assemblies, finished goods, item variants and service items. +An Item is your companys' product or a service. The term Item is applicable to things (products or services) you sell as well as raw materials or components of products yet to be produced (before they can be sold to customers). An Item can be a physical product or a service that you buy/sell from your customers/suppliers. ERPNext allows you to manage all sorts of items like raw-materials, sub-assemblies, finished goods, item variants and service items. -ERPNext is optimized for itemized management of your sales and purchase. If you are in services, you can create an Item for each services that your offer. Completing the Item Master is very essential for successful implementation of ERPNext. +ERPNext is optimised for itemised management of your sales and purchase. If you are in services, you can create an Item for each services that your offer. Completing the Item Master is very essential for successful implementation of ERPNext. ## Item Properties @@ -9,19 +9,15 @@ ERPNext is optimized for itemized management of your sales and purchase. If you * **Item Group:** Item Group is used to categorize an Item under various criterias like products, raw materials, services, sub-assemblies, consumables or all Item groups. Create your default Item Group list under Setup> Item Group and pre-select the option while filling your New Item details under [Item Group]({{docs_base_url}}/user/manual/en/stock/setup/item-group.html) * **Default Unit of Measure:** This is the default measuring unit that you will use for your product. It could be in nos, kgs, meters, etc. You can store all the UOM’s that your product will require under Set Up> Master Data > UOM. These can be preselected while filling New Item by using % sign to get a pop up of the UOM list. * **Brand:** If you have more than one brand save them under Set Up> Master Data> Brand and pre-select them while filling a New Item. - * **Variant:** A Item Variant is a different version of a Item.To learn more about managing varaints see [Item Variants]({{docs_base_url}}/user/manual/en/stock/item/item-variants.html) + * **Variant:** A Item Variant is a different version of a Item.To learn more about managing variants see [Item Variants]({{docs_base_url}}/user/manual/en/stock/item/item-variants.html) ### Upload an Image -To upload an image for your icon that will appear in all transactions, save -the partially filled form. Only after your file is saved the 'upload' button will -work above the Image icon. Click on this sign and upload the image. +To upload an image for your icon that will appear in all transactions, save the partially filled form. Only after your file is saved the 'upload' button will work above the Image icon. Click on this sign and upload the image. ### Inventory : Warehouse and Stock Setting -In ERPNext, you can select different type of Warehouses to stock your -different Items. This can be selected based on Item types. It could be Fixed -Asset Item, Stock Item or even Manufacturing Item. +In ERPNext, you can select different type of Warehouses to stock your different Items. This can be selected based on Item types. It could be Fixed Asset Item, Stock Item or even Manufacturing Item. * **Stock Item:** If you are maintaining stock of this Item in your Inventory, ERPNext will make a stock ledger entry for each transaction of this item. * **Default Warehouse:** This is the Warehouse that is automatically selected in your transactions. @@ -44,49 +40,51 @@ These numbers help to track individual units or batches of Items which you sell. ### Item Tax -These settings are required only if a particular Item has a different tax rate -than the rate defined in the standard tax Account. For example, If you have a -tax Account, “VAT 10%” and this particular Item is exempted from tax, then you -select “VAT 10%” in the first column, and set “0” as the tax rate in the -second column. +These settings are required only if a particular Item has a different tax rate than the rate defined in the standard tax Account. For example, If you have a tax Account, “VAT 10%” and this particular Item is exempted from tax, then you select “VAT 10%” in the first column, and set “0” as the tax rate in the second column. Go to [Setting Up Taxes]({{docs_base_url}}/user/manual/en/setting-up/setting-up-taxes.html) to understand this topic in detail. ### Inspection -Inspection Required: If an incoming inspection (at the time of delivery from -the Supplier) is mandatory for this Item, mention “Inspection Required” as -“Yes”. The system will ensure that a Quality Inspection will be prepared and -approved before a Purchase Receipt is submitted. +Inspection Required: If an incoming inspection (at the time of delivery from the Supplier) is mandatory for this Item, mention “Inspection Required” as “Yes”. The system will ensure that a Quality Inspection will be prepared and approved before a Purchase Receipt is submitted. -Inspection Criteria: If a Quality Inspection is prepared for this Item, then -this template of criteria will automatically be updated in the Quality -Inspection table of the Quality Inspection. Examples of Criteria are: Weight, -Length, Finish etc. +Inspection Criteria: If a Quality Inspection is prepared for this Item, then this template of criteria will automatically be updated in the Quality Inspection table of the Quality Inspection. Examples of Criteria are: Weight, Length, Finish etc. ### Purchase Details -![Purchase Details]({{docs_base_url}}/assets/old_images/erpnext/item-purchase.png) +Item Purchase Details -**Lead time days:** Lead time days are the number of days required for the Item to reach the warehouse. +* **Lead time days:** Lead time days are the number of days required for the Item to reach the warehouse. -**Default Expense Account:** It is the account in which cost of the Item will be debited. +* **Default Expense Account:** It is the account in which cost of the Item will be debited. -**Default Cost Centre:** It is used for tracking expense for this Item. +* **Default Cost Centre:** It is used for tracking expense for this Item. + +###Supplier Details + +Item Supplier Details + +* **Default Supplier:** Supplier from whom you generally purchase this item. + +* **Manufacturer Details:** Select Manufacturer and Part No. assigned by the Manufacturer for this item. + +* **Supplier Codes:** Track Item Code defined by the Suppliers for this Item. In the Purchase transactions, on selection and Supplier, Supplier Part No. will be fetched as well for the Supplier's reference. ### Sales Details -![Sales Details]({{docs_base_url}}/assets/old_images/erpnext/item-sales.png) +Item Sales Details -**Default Income Account:** Income account selected here will be fetched automatically in sales invoice for this item. +* **Default Income Account:** Income account selected here will be fetched automatically in sales invoice for this item. -**Cost Centre:** Cost center selected here will be fetched automatically in sales invoice for this item. +* **Cost Centre:** Cost center selected here will be fetched automatically in sales invoice for this item. + +* **Customer Codes:** Track Item Code assigned by the Customers for this Item. This will help you in searching item while creating Sales Order based on the Item Code in the Customer's Purchase Order. ### Manufacturing And Website -![Manufacturing]({{docs_base_url}}/assets/old_images/erpnext/item-manufacturing-website.png) +Item Manfacturing and Website Details -Visit [Manufacturing]({{docs_base_url}}/user/manual/en/manufacturing) and [Website ]({{docs_base_url}}/user/manual/en/website)to understand these topics in detail. +Visit [Manufacturing]({{docs_base_url}}/user/manual/en/manufacturing.html) and [Website ]({{docs_base_url}}/user/manual/en/website.html)to understand these topics in detail. ### Learn more about Item diff --git a/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md b/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md index fc5ef001712..d1456eef342 100644 --- a/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md +++ b/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md @@ -19,7 +19,7 @@ There are two major ways in which ERPNext values your items. * **FIFO (First In First Out):** In this system, ERPNext assumes that you will consume / sell those Items first which you bought first. For example, if you buy an Item at price X and then after a few days at price Y, whenever you sell your Item, ERPNext will reduce the quantity of the Item priced at X first and then Y. -![FIFO]({{docs_base_url}}/assets/old_images/erpnext/fifo.png) +FIFO * **Moving Average:** In this method, ERPNext assumes that the value of the item at any point is the average price of the units of that Item in stock. For example, if the value of an Item is X in a Warehouse with quantity Y and another quantity Y1 is added to the Warehouse at cost X1, the new value X2 would be: diff --git a/erpnext/docs/user/manual/en/stock/item/purchase-details.md b/erpnext/docs/user/manual/en/stock/item/purchase-details.md index 47983dfc625..134d551d465 100644 --- a/erpnext/docs/user/manual/en/stock/item/purchase-details.md +++ b/erpnext/docs/user/manual/en/stock/item/purchase-details.md @@ -1,22 +1,7 @@ -# Purchase Details +# Item Warranty -# How Do I Track Warranty Status? - -To track a warranty period, it is necessary that the Item is a serialized Item. -When this Item is delivered, the delivery date and the expiry period is saved in the serial number master. Through the serial number master you can track the warranty status. +To track a warranty period, it is necessary that the Item is a serialized Item. When this Item is delivered, the delivery date and the expiry period is saved in the serial number master. Through the serial number master you can track the warranty status. A warranty means a guarantee or a promise which provides assurance by one party to the other party which allows for a legal remedy if that promise is not true or followed. A warranty period is a time period in which a purchased product may be returned or exchanged. -![Warranty]({{docs_base_url}}/assets/old_images/erpnext/faq-warranty.png) - -# How To Name A Manufacturer Part Number? - -Go to the purchase details section of the Item form, and enter the number on the right hand side in the field ‘Manufacturer Part Number’ - -> Stock > Item - -A manufacturer part number is a series of numbers and /or letters that has been given to a part by the manufacturer. The manufacturer part number belongs to the manufacturer and helps distinguish the part from other manufacturers. If two parts come from different manufacturers, they will have different MPNs. This allows businesses to identify which company made the part. - -![Part No]({{docs_base_url}}/assets/old_images/erpnext/faq-manufacturer-part-no.png) - -__For Example:__ A refrigerator will have different parts which will have manufacturer part number. Thus, when any part fails and you want to replace it, you can simply order that part based on its part number. +Item Warranty \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/item/reorder.md b/erpnext/docs/user/manual/en/stock/item/reorder.md index 4537d9519b3..548a8a9ad0f 100644 --- a/erpnext/docs/user/manual/en/stock/item/reorder.md +++ b/erpnext/docs/user/manual/en/stock/item/reorder.md @@ -1,26 +1,13 @@ -# Re-Order +# Re-order Level & Re-order Qty -# How To Setup Re-order Level? +The **Re-order Level** is the point at which stock on a particular item has diminished to a point where it needs to be replenished. To order based on Re-order level can avoid shortages. Re-order level can be determined based on the lead time and the average daily consumption. -Go to the Re-order section of the Item form in the Stock module. +You can update Re-order Level and Re-order Qty for an Item in the Auto Re-order section. -> Stock > Item +For example, you can set your reorder level of Motherboard at 10. When there are only 10 Motherboards remaining in stock, the system will either automatically create a Material Request in your ERPNext account. -The Re-order level is the point at which stock on a particular item has diminished to a point where it needs to be replenished. To order based on Re-order level can avoid shortages. Re-order level can be determined based on the lead time and the average daily consumption. +**Re-order quantity** is the quantity to order, so that the sum of ordering cost and holding cost is at its minimum.The re-order quantity is based on the minimum order quantity specified by the supplier and many other factors. -![Reorder Level]({{docs_base_url}}/assets/old_images/erpnext/faq-reorder-level.png) - -__For example:__ You can set your reorder level of bath towels at 10. When there are only 10 towels remaining in stock, the system will either send a mail or take action depending upon what you have selected in global settings. - -# How To Setup Reorder Quantity? - -To setup Reorder quantity, go to the Re-order section of the Item form. In the field ‘Re-order Qty’ type the amount that is needed. - -> Stock> Item - -Re-order quantity is the quantity to order, so that the sum of ordering cost and holding cost is at its minimum.The re-order quantity is based on the minimum order quantity specified by the supplier and many other factors. - -![Reorder Quantity]({{docs_base_url}}/assets/old_images/erpnext/faq-reorder-qty.png) - -__For example:__ If reorder level is 100 items, your reorder quantity may not necessarily be 100 items. The Reorder quantity can be greater than or equal to reorder level. It may depend upon lead time, discount, transportation and average daily consumption. +For example, If reorder level is 100 items, your reorder quantity may not necessarily be 100 items. The Reorder quantity can be greater than or equal to reorder level. It may depend upon lead time, discount, transportation and average daily consumption. +Item Reorder \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/calendar.md b/erpnext/docs/user/manual/en/using-erpnext/calendar.md index 5e0ae29e8a2..c8b64af98c7 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/calendar.md +++ b/erpnext/docs/user/manual/en/using-erpnext/calendar.md @@ -1,63 +1,56 @@ -The Calendar is a tool where you can create and share Events and also see -auto-generated events from the system. +The Calendar is a tool where you can create and share Events and also see auto-generated events from the system. -You can switch calender view based on Month, Week and Day. +You can switch calendar view based on Month, Week and Day. -###Creating Events in Calender +Calendar -####Creating Event Manually +### Creating Events in Calendar -To create event manually, you should first determine Calender View. If Event's start and end time will be within one day, then you should first switch to Day view. +#### Creating Event Manually + +To create event manually, you should first determine Calendar View. If Event's start and end time will be within one day, then you should first switch to Day view. This view will 24 hours of a day broken in various slots. You should click on slot for Event Start Time, and drag it down till you reach event end time. -![Calender Event Manually]({{docs_base_url}}/assets/old_images/erpnext/calender-event-manually.png) +Calendar Based on the selection of time slot, Start Time and End Time will be updated in the Event master. Then you can set subject for an event, and save it. -####Event Based on Lead +#### Event Based on Lead In the Lead form, you will find a field called Next Contact By and Next Contact Date. Event will be auto created for date and person specified in this field. -![Calender Event Lead]({{docs_base_url}}/assets/old_images/erpnext/calender-event-lead.png) +Lead Event -####Birthday Event +#### Birthday Event Birthday Event is created based on Date of Birth specified in the Employee master. -###Recurring Events +### Recurring Events You can set events as recurring in specific interval by Checking the "Repeat This Event". -![Calender Event Recurring]({{docs_base_url}}/assets/old_images/erpnext/calender-event-recurring.png) +Calendar Recurring Event -###Permission for Event - -You can set Event as Private or Public. Private Events will be visible only to you, and you can also assign permission for event based on Role in the participants table. - -Public Event, like Birthday will be visible to all. - -![Calender Event Permission]({{docs_base_url}}/assets/old_images/erpnext/calender-event-permission.png) - -###Event Reminders +### Event Reminders There are two ways you can receive email reminder for an event. -####Enable Reminder in Event +#### Enable Reminder in Event In the Event master, checking "Send an email reminder in the morning" will trigger notification email to all the participants for this event. -![Calender Event Notification]({{docs_base_url}}/assets/old_images/erpnext/calender-event-notification.png) +Calendar Recurring Event -####Create Email Digest +#### Create Email Digest -To get email reminders for event, you should set Email Digest for Calender Events. +To get email reminders for event, you should set Email Digest for Calendar Events. Email Digest can be set from: `Setup > Email > Email Digest` -![Calender Email Digest]({{docs_base_url}}/assets/old_images/erpnext/calender-email-digest.png) +Calendar Recurring Event {next} diff --git a/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md b/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md index c4f0b77c93b..b2250e05481 100644 --- a/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md +++ b/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md @@ -1,8 +1,8 @@ -#Managing User Sign Up via Website +#Customer / Supplier Signup -Users can sign up for ERPNext account via the ERPNext Website. +Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page. - +Website User Signup As seen above the login / sign-up button appears on the homepage of the website generated using ERPNext. diff --git a/erpnext/hr/doctype/expense_claim_type/expense_claim_type.py b/erpnext/hr/doctype/expense_claim_type/expense_claim_type.py index 5e6a7a868d7..2595506486d 100644 --- a/erpnext/hr/doctype/expense_claim_type/expense_claim_type.py +++ b/erpnext/hr/doctype/expense_claim_type/expense_claim_type.py @@ -10,7 +10,7 @@ class ExpenseClaimType(Document): def validate(self): self.validate_accounts() self.validate_repeating_companies() - + def validate_repeating_companies(self): """Error when Same Company is entered multiple times in accounts""" accounts_list = [] @@ -24,4 +24,5 @@ class ExpenseClaimType(Document): for entry in self.accounts: """Error when Company of Ledger account doesn't match with Company Selected""" if frappe.db.get_value("Account", entry.default_account, "company") != entry.company: - frappe.throw(_("Account does not match with Company")) \ No newline at end of file + frappe.throw(_("Account {0} does not match with Company {1}" + ).format(entry.default_account, entry.company)) \ No newline at end of file diff --git a/erpnext/hr/doctype/training_event/training_event.py b/erpnext/hr/doctype/training_event/training_event.py index c9be3dd914f..27ae8cf5491 100644 --- a/erpnext/hr/doctype/training_event/training_event.py +++ b/erpnext/hr/doctype/training_event/training_event.py @@ -8,20 +8,19 @@ from frappe import _ from frappe.model.document import Document class TrainingEvent(Document): - def validate(self): - if self.event_status == "Scheduled": - self.invite_employee() + def on_update(self): + self.invite_employee() def on_update_after_submit(self): - if self.event_status == "Scheduled" and self.send_email: - self.invite_employee() + self.invite_employee() def invite_employee(self): - subject = _("""You are invited for to attend {0} - {1} scheduled from {2} to {3} at {4}."""\ - .format(self.type, self.event_name, self.start_time, self.end_time, self.location)) - - for emp in self.employees: - if emp.status== "Open": - frappe.sendmail(frappe.db.get_value("Employee", emp.employee, "company_email"), \ - subject=subject, content= self.introduction) - emp.status= "Invited" \ No newline at end of file + if self.event_status == "Scheduled" and self.send_email: + subject = _("""You are invited for to attend {0} - {1} scheduled from {2} to {3} at {4}."""\ + .format(self.type, self.event_name, self.start_time, self.end_time, self.location)) + + for emp in self.employees: + if emp.status== "Open": + frappe.sendmail(frappe.db.get_value("Employee", emp.employee, "company_email"), \ + subject=subject, content= self.introduction) + emp.status= "Invited" \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index d3c33798503..87dd5655996 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -68,6 +68,10 @@ erpnext.bom.BomController = erpnext.TransactionController.extend({ scrap_items = true; } + if (child.bom_no) { + child.bom_no = ''; + } + get_bom_material_detail(doc, cdt, cdn, scrap_items); }, conversion_factor: function(doc, cdt, cdn, dont_fetch_price_list_rate) { diff --git a/erpnext/patches.txt b/erpnext/patches.txt index e8b43c806e6..59c031a53d4 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -405,4 +405,4 @@ erpnext.patches.v8_0.move_account_head_from_account_to_warehouse_for_inventory erpnext.patches.v8_0.change_in_words_varchar_length erpnext.patches.v8_0.update_stock_qty_value_in_bom_item erpnext.patches.v8_0.create_domain_docs #16-05-2017 - +erpnext.patches.v8_0.update_sales_cost_in_project \ No newline at end of file diff --git a/erpnext/patches/v8_0/update_sales_cost_in_project.py b/erpnext/patches/v8_0/update_sales_cost_in_project.py new file mode 100644 index 00000000000..cc3798e0565 --- /dev/null +++ b/erpnext/patches/v8_0/update_sales_cost_in_project.py @@ -0,0 +1,12 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import frappe + +def execute(): + frappe.db.sql(""" + update `tabProject` p + set total_sales_cost = (select sum(base_grand_total) + from `tabSales Order` where project=p.name and docstatus=1) + """) \ No newline at end of file diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py index 66df901bdca..2cb93f02d11 100644 --- a/erpnext/projects/doctype/project/project.py +++ b/erpnext/projects/doctype/project/project.py @@ -120,6 +120,11 @@ class Project(Document): self.flags.dont_sync_tasks = True self.save(ignore_permissions = True) + def after_insert(self): + if self.sales_order: + frappe.db.set_value("Sales Order", self.sales_order, "project", self.name) + + def update_percent_complete(self): total = frappe.db.sql("""select count(name) from tabTask where project=%s""", self.name)[0][0] if not total and self.percent_complete: @@ -181,7 +186,7 @@ class Project(Document): self.total_purchase_cost = total_purchase_cost and total_purchase_cost[0][0] or 0 def update_sales_costing(self): - total_sales_cost = frappe.db.sql("""select sum(grand_total) + total_sales_cost = frappe.db.sql("""select sum(base_grand_total) from `tabSales Order` where project = %s and docstatus=1""", self.name) self.total_sales_cost = total_sales_cost and total_sales_cost[0][0] or 0 diff --git a/erpnext/projects/doctype/timesheet/timesheet.js b/erpnext/projects/doctype/timesheet/timesheet.js index 7d14d9e167b..2edfa9e8106 100644 --- a/erpnext/projects/doctype/timesheet/timesheet.js +++ b/erpnext/projects/doctype/timesheet/timesheet.js @@ -1,9 +1,9 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -cur_frm.add_fetch('employee', 'employee_name', 'employee_name'); frappe.ui.form.on("Timesheet", { setup: function(frm) { + frm.add_fetch('employee', 'employee_name', 'employee_name'); frm.fields_dict.employee.get_query = function() { return { filters:{ @@ -51,8 +51,8 @@ frappe.ui.form.on("Timesheet", { } if(frm.doc.per_billed > 0) { - cur_frm.fields_dict["time_logs"].grid.toggle_enable("billing_hours", false); - cur_frm.fields_dict["time_logs"].grid.toggle_enable("billable", false); + frm.fields_dict["time_logs"].grid.toggle_enable("billing_hours", false); + frm.fields_dict["time_logs"].grid.toggle_enable("billable", false); } }, @@ -77,7 +77,7 @@ frappe.ui.form.on("Timesheet Detail", { }, from_time: function(frm, cdt, cdn) { - calculate_end_time(frm, cdt, cdn) + calculate_end_time(frm, cdt, cdn); }, to_time: function(frm, cdt, cdn) { @@ -109,18 +109,20 @@ frappe.ui.form.on("Timesheet Detail", { }, activity_type: function(frm, cdt, cdn) { - var child = locals[cdt][cdn]; + frm.script_manager.copy_from_first_row('time_logs', frm.selected_doc, + 'project'); + frappe.call({ method: "erpnext.projects.doctype.timesheet.timesheet.get_activity_cost", args: { employee: frm.doc.employee, - activity_type: child.activity_type + activity_type: frm.selected_doc.activity_type }, callback: function(r){ if(r.message){ frappe.model.set_value(cdt, cdn, 'billing_rate', r.message['billing_rate']); frappe.model.set_value(cdt, cdn, 'costing_rate', r.message['costing_rate']); - calculate_billing_costing_amount(frm, cdt, cdn) + calculate_billing_costing_amount(frm, cdt, cdn); } } }) @@ -174,8 +176,8 @@ var calculate_time_and_amount = function(frm) { } } - cur_frm.set_value("total_billable_hours", total_billing_hr); - cur_frm.set_value("total_hours", total_working_hr); - cur_frm.set_value("total_billable_amount", total_billable_amount); - cur_frm.set_value("total_costing_amount", total_costing_amount); + frm.set_value("total_billable_hours", total_billing_hr); + frm.set_value("total_hours", total_working_hr); + frm.set_value("total_billable_amount", total_billable_amount); + frm.set_value("total_costing_amount", total_costing_amount); } \ No newline at end of file diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index ca822b19535..8ad64d275e0 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -16,11 +16,11 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ // or set discount item.discount_percentage = 0; item.margin_type = 'Amount'; - item.margin_rate_or_amount = flt(item.rate - item.price_list_rate, + item.margin_rate_or_amount = flt(item.rate - item.price_list_rate, precision("margin_rate_or_amount", item)); item.rate_with_margin = item.rate; } else { - item.discount_percentage = flt((1 - item.rate / item.price_list_rate) * 100.0, + item.discount_percentage = flt((1 - item.rate / item.price_list_rate) * 100.0, precision("discount_percentage", item)); item.margin_type = ''; item.margin_rate_or_amount = 0; @@ -602,8 +602,10 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ toggle_conversion_factor: function(item) { // toggle read only property for conversion factor field if the uom and stock uom are same - this.frm.fields_dict.items.grid.toggle_enable("conversion_factor", - (item.uom != item.stock_uom)? true: false) + if(this.frm.get_field('items').grid.fields_map.conversion_factor) { + this.frm.fields_dict.items.grid.toggle_enable("conversion_factor", + (item.uom != item.stock_uom)? true: false); + } }, qty: function(doc, cdt, cdn) { @@ -756,7 +758,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ if(this.frm.doc.ignore_pricing_rule) { var me = this; var item_list = []; - + $.each(this.frm.doc["items"] || [], function(i, d) { if (d.item_code) { item_list.push({ @@ -1144,7 +1146,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ if(!item.item_code) { frappe.throw(__("Please enter Item Code to get batch no")); - } else if (doc.doctype == "Purchase Receipt" || + } else if (doc.doctype == "Purchase Receipt" || (doc.doctype == "Purchase Invoice" && doc.update_stock)) { return { diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js index 2c56b026b9a..e4e7440ebba 100644 --- a/erpnext/public/js/shopping_cart.js +++ b/erpnext/public/js/shopping_cart.js @@ -6,7 +6,7 @@ frappe.provide("erpnext.shopping_cart"); var shopping_cart = erpnext.shopping_cart; frappe.ready(function() { - var full_name = frappe.session.user_fullname; + var full_name = frappe.session && frappe.session.user_fullname; // update user if(full_name) { $('.navbar li[data-label="User"] a') @@ -36,8 +36,7 @@ $.extend(shopping_cart, { }, update_cart: function(opts) { - var full_name = frappe.session.user_fullname; - if(!full_name || full_name==="Guest") { + if(frappe.session.user==="Guest") { if(localStorage) { localStorage.setItem("last_visited", window.location.pathname); } diff --git a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js b/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js index 3cadea6edc4..a2eeceff25f 100644 --- a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js +++ b/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js @@ -6,6 +6,7 @@ cur_frm.add_fetch("assessment_plan", "student_group", "student_group"); frappe.ui.form.on('Assessment Result Tool', { refresh: function(frm) { + frm.trigger("assessment_plan"); if (frappe.route_options) { frm.set_value("student_group", frappe.route_options.student_group); frm.set_value("assessment_plan", frappe.route_options.assessment_plan); diff --git a/erpnext/selling/doctype/sales_order/sales_order.json b/erpnext/selling/doctype/sales_order/sales_order.json index 7ea550a3e07..7c995f259aa 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.json +++ b/erpnext/selling/doctype/sales_order/sales_order.json @@ -396,7 +396,7 @@ }, { "allow_bulk_edit": 0, - "allow_on_submit": 0, + "allow_on_submit": 1, "bold": 0, "collapsible": 0, "columns": 0, @@ -430,7 +430,7 @@ }, { "allow_bulk_edit": 0, - "allow_on_submit": 0, + "allow_on_submit": 1, "bold": 0, "collapsible": 0, "columns": 0, @@ -3632,7 +3632,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-06-13 14:28:50.441767", + "modified": "2017-06-19 13:06:31.736384", "modified_by": "Administrator", "module": "Selling", "name": "Sales Order", diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 82950752262..ccaa07c1949 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -608,7 +608,7 @@ def get_events(start, end, filters=None): from frappe.desk.calendar import get_event_conditions conditions = get_event_conditions("Sales Order", filters) - data = frappe.db.sql("""select name, customer_name, delivery_status, billing_status, delivery_date + data = frappe.db.sql("""select name, customer_name, status, delivery_status, billing_status, delivery_date from `tabSales Order` where (ifnull(delivery_date, '0000-00-00')!= '0000-00-00') \ and (delivery_date between %(start)s and %(end)s) diff --git a/erpnext/selling/doctype/sales_order/sales_order_calendar.js b/erpnext/selling/doctype/sales_order/sales_order_calendar.js index 7a38f900796..cb412cfb4a7 100644 --- a/erpnext/selling/doctype/sales_order/sales_order_calendar.js +++ b/erpnext/selling/doctype/sales_order/sales_order_calendar.js @@ -33,7 +33,7 @@ frappe.views.calendar["Sales Order"] = { get_events_method: "erpnext.selling.doctype.sales_order.sales_order.get_events", get_css_class: function(data) { if(data.status=="Closed") { - return ""; + return "success"; } if(data.delivery_status=="Not Delivered") { return "danger"; } else if(data.delivery_status=="Partly Delivered") { diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py index 8c19db5c9fb..c85a541d849 100644 --- a/erpnext/setup/doctype/email_digest/email_digest.py +++ b/erpnext/setup/doctype/email_digest/email_digest.py @@ -364,9 +364,9 @@ class EmailDigest(Document): balance = prev_balance = 0.0 count = 0 for account in accounts: - balance += get_balance_on(account, date=self.future_to_date) + balance += get_balance_on(account, date=self.future_to_date, in_account_currency=False) count += get_count_on(account, fieldname, date=self.future_to_date) - prev_balance += get_balance_on(account, date=self.past_to_date) + prev_balance += get_balance_on(account, date=self.past_to_date, in_account_currency=False) if fieldname in ("bank_balance","credit_balance"): return { diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py index 98404a44ae8..9c2a4002a12 100644 --- a/erpnext/setup/doctype/item_group/item_group.py +++ b/erpnext/setup/doctype/item_group/item_group.py @@ -37,10 +37,11 @@ class ItemGroup(NestedSet, WebsiteGenerator): if not self.route: self.route = '' if self.parent_item_group: - parent_route = frappe.get_doc('Item Group', self.parent_item_group).route + parent_item_group = frappe.get_doc('Item Group', self.parent_item_group) - if parent_route: - self.route = parent_route + '/' + # make parent route only if not root + if parent_item_group.parent_item_group and parent_item_group.route: + self.route = parent_item_group.route + '/' self.route += self.scrub(self.item_group_name) @@ -100,7 +101,7 @@ def get_product_list_for_group(product_group=None, start=0, limit=10, search=Non or name like %(search)s)""" search = "%" + cstr(search) + "%" - query += """order by weightage desc, modified desc limit %s, %s""" % (start, limit) + query += """order by weightage desc, item_name, modified desc limit %s, %s""" % (start, limit) data = frappe.db.sql(query, {"product_group": product_group,"search": search, "today": nowdate()}, as_dict=1) diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py index e73734e63ac..5c7d825b801 100644 --- a/erpnext/shopping_cart/cart.py +++ b/erpnext/shopping_cart/cart.py @@ -75,9 +75,15 @@ def place_order(): def update_cart(item_code, qty, with_items=False): quotation = _get_cart_quotation() + empty_card = False qty = flt(qty) if qty == 0: - quotation.set("items", quotation.get("items", {"item_code": ["!=", item_code]})) + quotation_items = quotation.get("items", {"item_code": ["!=", item_code]}) + if quotation_items: + quotation.set("items", quotation_items) + else: + empty_card = True + else: quotation_items = quotation.get("items", {"item_code": item_code}) if not quotation_items: @@ -92,7 +98,11 @@ def update_cart(item_code, qty, with_items=False): apply_cart_settings(quotation=quotation) quotation.flags.ignore_permissions = True - quotation.save() + if not empty_card: + quotation.save() + else: + quotation.delete() + quotation = None set_cart_count(quotation) diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index 4a1c08af67a..0f3099fb1bb 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -26,7 +26,7 @@ class TestDeliveryNote(unittest.TestCase): target_warehouse = "_Test Warehouse 1 - _TC" company = "_Test Company" if not frappe.db.exists("Account", target_warehouse): - parent_account = frappe.db.get_value('Account', + parent_account = frappe.db.get_value('Account', {'company': company, 'is_group':1, 'account_type': 'Stock'},'name') account = create_account(account_name="_Test Warehouse 1", \ account_type="Stock", parent_account= parent_account, company=company) @@ -275,11 +275,20 @@ class TestDeliveryNote(unittest.TestCase): def test_return_entire_bundled_items(self): set_perpetual_inventory() - create_stock_reconciliation(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, rate=100) - create_stock_reconciliation(item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", - qty=50, rate=100) + create_stock_reconciliation(item_code="_Test Item", + target="_Test Warehouse - _TC", qty=50, rate=100) + create_stock_reconciliation(item_code="_Test Item Home Desktop 100", + target="_Test Warehouse - _TC", qty=50, rate=100) - dn = create_delivery_note(item_code="_Test Product Bundle Item", qty=5, rate=500) + actual_qty = get_qty_after_transaction() + self.assertEquals(actual_qty, 50) + + dn = create_delivery_note(item_code="_Test Product Bundle Item", + qty=5, rate=500) + + # qty after return + actual_qty = get_qty_after_transaction() + self.assertEquals(actual_qty, 25) # return bundled item dn1 = create_delivery_note(item_code='_Test Product Bundle Item', is_return=1, @@ -532,9 +541,9 @@ class TestDeliveryNote(unittest.TestCase): def create_delivery_note(**args): dn = frappe.new_doc("Delivery Note") args = frappe._dict(args) - dn.posting_date = args.posting_date or today() - if args.posting_time: - dn.posting_time = args.posting_time + dn.posting_date = args.posting_date or nowdate() + dn.posting_time = args.posting_time or nowtime() + dn.set_posting_time = 1 dn.company = args.company or "_Test Company" dn.customer = args.customer or "_Test Customer" diff --git a/erpnext/stock/doctype/delivery_note/test_records.json b/erpnext/stock/doctype/delivery_note/test_records.json deleted file mode 100644 index c76bab2cce5..00000000000 --- a/erpnext/stock/doctype/delivery_note/test_records.json +++ /dev/null @@ -1,39 +0,0 @@ -[ - { - "company": "_Test Company", - "conversion_rate": 1.0, - "currency": "INR", - "customer": "_Test Customer", - "customer_name": "_Test Customer", - "items": [ - { - "base_amount": 100.0, - "base_rate": 100.0, - "cost_center": "Main - _TC", - "description": "CPU", - "doctype": "Delivery Note Item", - "expense_account": "Cost of Goods Sold - _TC", - "item_code": "_Test Item", - "item_name": "_Test Item", - "parentfield": "items", - "qty": 1.0, - "rate": 100.0, - "uom": "_Test UOM", - "conversion_factor": 1, - "stock_uom": "_Test UOM", - "warehouse": "_Test Warehouse - _TC" - } - ], - "doctype": "Delivery Note", - "base_grand_total": 100.0, - "grand_total": 100.0, - "naming_series": "_T-Delivery Note-", - "base_net_total": 100.0, - "plc_conversion_rate": 1.0, - "posting_date": "2013-02-21", - "price_list_currency": "INR", - "selling_price_list": "_Test Price List", - "status": "Draft", - "territory": "_Test Territory" - } -] diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 40ad55a92fc..1af08070ecd 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -121,7 +121,15 @@ frappe.ui.form.on("Item", { if(!frm.doc.description) frm.set_value("description", frm.doc.item_code); }, - + + is_stock_item: function(frm) { + if(!frm.doc.is_stock_item) { + frm.set_value("has_batch_no", 0); + frm.set_value("create_new_batch", 0); + frm.set_value("has_serial_no", 0); + } + }, + copy_from_item_group: function(frm) { return frm.call({ doc: frm.doc, diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 6e21e67d457..f5f34930148 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -37,7 +37,8 @@ class Item(WebsiteGenerator): if frappe.db.get_default("item_naming_by")=="Naming Series": if self.variant_of: if not self.item_code: - self.item_code = make_variant_item_code(self.variant_of, self.item_name, self) + template_item_name = frappe.db.get_value("Item", self.variant_of, "item_name") + self.item_code = make_variant_item_code(self.variant_of, template_item_name, self) else: from frappe.model.naming import make_autoname self.item_code = make_autoname(self.naming_series+'.#####') diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index 23d1fd49fbd..33610201b46 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -30,11 +30,15 @@ frappe.ui.form.on('Material Request', { }); frappe.ui.form.on("Material Request Item", { - "qty": function (frm, doctype, name) { + qty: function (frm, doctype, name) { var d = locals[doctype][name]; if (flt(d.qty) < flt(d.min_order_qty)) { frappe.msgprint(__("Warning: Material Requested Qty is less than Minimum Order Qty")); } + }, + item_code: function(frm, doctype, name) { + frm.script_manager.copy_from_first_row('items', frm.selected_doc, + 'schedule_date'); } }); @@ -118,18 +122,6 @@ erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.exten }, - schedule_date: function(doc, cdt, cdn) { - var val = locals[cdt][cdn].schedule_date; - if(val) { - $.each((doc.items || []), function(i, d) { - if(!d.schedule_date) { - d.schedule_date = val; - } - }); - refresh_field("items"); - } - }, - get_items_from_bom: function() { var d = new frappe.ui.Dialog({ title: __("Get Items from BOM"), diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 169bfd9121c..c31d7acb21e 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -83,7 +83,8 @@ class StockEntry(StockController): frappe.throw(_("Row {0}: Qty is mandatory").format(item.idx)) if not flt(item.conversion_factor): frappe.throw(_("Row {0}: UOM Conversion Factor is mandatory").format(item.idx)) - item.transfer_qty = flt(item.qty * item.conversion_factor, self.precision("transfer_qty", item)) + item.transfer_qty = flt(flt(item.qty) * flt(item.conversion_factor), + self.precision("transfer_qty", item)) def validate_item(self): stock_items = self.get_stock_items() diff --git a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py index fca91d6e177..e7cb9ad060c 100644 --- a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py +++ b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py @@ -23,7 +23,8 @@ def execute(filters=None): if qty_dict.opening_qty or qty_dict.in_qty or qty_dict.out_qty or qty_dict.bal_qty: data.append([item, item_map[item]["item_name"], item_map[item]["description"], wh, batch, flt(qty_dict.opening_qty, float_precision), flt(qty_dict.in_qty, float_precision), - flt(qty_dict.out_qty, float_precision), flt(qty_dict.bal_qty, float_precision) + flt(qty_dict.out_qty, float_precision), flt(qty_dict.bal_qty, float_precision), + item_map[item]["stock_uom"] ]) return columns, data @@ -33,7 +34,9 @@ def get_columns(filters): columns = [_("Item") + ":Link/Item:100"] + [_("Item Name") + "::150"] + [_("Description") + "::150"] + \ [_("Warehouse") + ":Link/Warehouse:100"] + [_("Batch") + ":Link/Batch:100"] + [_("Opening Qty") + ":Float:90"] + \ - [_("In Qty") + ":Float:80"] + [_("Out Qty") + ":Float:80"] + [_("Balance Qty") + ":Float:90"] + [_("In Qty") + ":Float:80"] + [_("Out Qty") + ":Float:80"] + [_("Balance Qty") + ":Float:90"] + \ + [_("UOM") + "::90"] + return columns @@ -87,7 +90,7 @@ def get_item_warehouse_batch_map(filters, float_precision): def get_item_details(filters): item_map = {} - for d in frappe.db.sql("select name, item_name, description from tabItem", as_dict=1): + for d in frappe.db.sql("select name, item_name, description, stock_uom from tabItem", as_dict=1): item_map.setdefault(d.name, d) return item_map diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py index fd1ece2151b..2b9def35a84 100644 --- a/erpnext/stock/utils.py +++ b/erpnext/stock/utils.py @@ -65,7 +65,7 @@ def get_stock_balance(item_code, warehouse, posting_date=None, posting_time=None if with_valuation_rate: return (last_entry.qty_after_transaction, last_entry.valuation_rate) if last_entry else (0.0, 0.0) else: - return last_entry.qty_after_transaction or 0.0 + return last_entry.qty_after_transaction if last_entry else 0.0 def get_latest_stock_balance(): bin_map = {} diff --git a/erpnext/templates/includes/order/order_taxes.html b/erpnext/templates/includes/order/order_taxes.html index 24ae088c75b..471576f4f51 100644 --- a/erpnext/templates/includes/order/order_taxes.html +++ b/erpnext/templates/includes/order/order_taxes.html @@ -6,11 +6,13 @@ {% endif %} {% for d in doc.taxes %} +{% if d.base_tax_amount > 0 %}
{{ d.description }}
{{ d.get_formatted("base_tax_amount") }}
+{% endif %} {% endfor %}
{{ _("Grand Total") }}
diff --git a/erpnext/templates/includes/product_list.js b/erpnext/templates/includes/product_list.js index 7f63c170f8c..2f9d978eb1a 100644 --- a/erpnext/templates/includes/product_list.js +++ b/erpnext/templates/includes/product_list.js @@ -39,10 +39,10 @@ window.render_product_list = function(data) { if(data.length < 10) { if(!table) { $(".more-btn") - .replaceWith("
No products found.
"); + .replaceWith("
{{ _("No products found.") }}
"); } else { $(".more-btn") - .replaceWith("
Nothing more to show.
"); + .replaceWith("
{{ _("Nothing more to show.") }}
"); } } else { $(".more-btn").toggle(true) diff --git a/erpnext/templates/includes/product_page.js b/erpnext/templates/includes/product_page.js index e61ead176a1..3905959928a 100644 --- a/erpnext/templates/includes/product_page.js +++ b/erpnext/templates/includes/product_page.js @@ -15,18 +15,18 @@ frappe.ready(function() { $(".item-cart").toggleClass("hide", (!!!r.message.price || !!!r.message.in_stock)); if(r.message && r.message.price) { $(".item-price") - .html(r.message.price.formatted_price + " per " + r.message.uom); + .html(r.message.price.formatted_price + " {{ _("per") }} " + r.message.uom); if(r.message.in_stock==0) { - $(".item-stock").html("
Not in stock
"); + $(".item-stock").html("
{{ _("Not in stock") }}
"); } else if(r.message.in_stock==1) { - var qty_display = "In stock"; + var qty_display = "{{ _("In stock") }}"; if (r.message.show_stock_qty) { - qty_display = "Available ("+r.message.stock_qty+ " in stock)"; + qty_display += " ("+r.message.stock_qty+")"; } $(".item-stock").html("
\ - "+__(qty_display)+"
"); + "+qty_display+"
"); } if(r.message.qty) { diff --git a/erpnext/templates/print_formats/includes/taxes.html b/erpnext/templates/print_formats/includes/taxes.html index 55e0443e1a8..b0bd1d4b5b8 100644 --- a/erpnext/templates/print_formats/includes/taxes.html +++ b/erpnext/templates/print_formats/includes/taxes.html @@ -1,7 +1,7 @@ {%- macro render_discount_amount(doc) -%} {%- if doc.discount_amount -%}
-
+
- {{ doc.get_formatted("discount_amount", doc) }} @@ -19,7 +19,7 @@ {%- for charge in data -%} {%- if not charge.included_in_print_rate -%}
-
+
{{ frappe.format_value(frappe.utils.flt(charge.tax_amount), diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv index a28948bb450..37b43aeb954 100644 --- a/erpnext/translations/ar.csv +++ b/erpnext/translations/ar.csv @@ -47,7 +47,7 @@ apps/erpnext/erpnext/templates/includes/cart/cart_dropdown.html +18,Checkout,ا apps/erpnext/erpnext/hr/doctype/process_payroll/process_payroll.py +179,Accural Journal Entry Submitted,Accural إدخال دفتر اليومية ارسل DocType: Pricing Rule,Apply On,تنطبق على DocType: Item Price,Multiple Item prices.,أسعار الإغلاق متعددة . -,Purchase Order Items To Be Received,أمر شراء الأصناف التي سترد +,Purchase Order Items To Be Received,تم استلام اصناف امر الشراء DocType: SMS Center,All Supplier Contact,بيانات اتصال جميع الموردين DocType: Support Settings,Support Settings,إعدادات الدعم DocType: SMS Parameter,Parameter,المعلمة @@ -250,7 +250,7 @@ DocType: Offer Letter,Select Terms and Conditions,اختر الشروط والأ apps/erpnext/erpnext/stock/report/stock_balance/stock_balance.py +51,Out Value,القيمة خارج DocType: Production Planning Tool,Sales Orders,أوامر البيع DocType: Purchase Taxes and Charges,Valuation,تقييم -,Purchase Order Trends,شراء اتجاهات ترتيب +,Purchase Order Trends,اتجهات امر الشراء apps/erpnext/erpnext/templates/emails/request_for_quotation.html +7,The request for quotation can be accessed by clicking on the following link,طلب للحصول على الاقتباس يمكن الوصول إليها من خلال النقر على الرابط التالي apps/erpnext/erpnext/config/hr.py +81,Allocate leaves for the year.,تخصيص الاجازات لهذا العام. DocType: SG Creation Tool Course,SG Creation Tool Course,سان جرمان إنشاء ملعب أداة @@ -684,7 +684,7 @@ apps/erpnext/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sa DocType: Supplier,Fixed Days,يوم الثابتة DocType: Quotation Item,Item Balance,البند الميزان DocType: Sales Invoice,Packing List,قائمة التعبئة -apps/erpnext/erpnext/config/buying.py +28,Purchase Orders given to Suppliers.,أوامر الشراء نظرا للموردين. +apps/erpnext/erpnext/config/buying.py +28,Purchase Orders given to Suppliers.,تحديد موردين لأمر الشراء. apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +43,Publishing,النشر DocType: Activity Cost,Projects User,مشاريع العضو apps/erpnext/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py +41,Consumed,مستهلك @@ -899,7 +899,7 @@ DocType: Production Order,Item To Manufacture,البند لتصنيع apps/erpnext/erpnext/buying/utils.py +80,{0} {1} status is {2},{0} {1} الوضع هو {2} DocType: Employee,Provide Email Address registered in company,تقديم عنوان البريد الإلكتروني المسجل في شركة DocType: Shopping Cart Settings,Enable Checkout,تمكين الخروج -apps/erpnext/erpnext/config/learn.py +202,Purchase Order to Payment,أمر الشراء إلى الدفع +apps/erpnext/erpnext/config/learn.py +202,Purchase Order to Payment,مدفوعات امر الشراء apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +48,Projected Qty,الكمية المتوقعة DocType: Sales Invoice,Payment Due Date,تاريخ استحقاق السداد apps/erpnext/erpnext/stock/doctype/item/item.js +341,Item Variant {0} already exists with same attributes,البند البديل {0} موجود بالفعل مع نفس الصفات @@ -1085,7 +1085,7 @@ DocType: Task,Urgent,عاجل apps/erpnext/erpnext/accounts/doctype/payment_entry/payment_entry.js +149,Please specify a valid Row ID for row {0} in table {1},يرجى تحديد هوية الصف صالحة لصف {0} في الجدول {1} apps/erpnext/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +23,Go to the Desktop and start using ERPNext,ERPNext اذهب إلى سطح المكتب والبدء في استخدام DocType: Item,Manufacturer,الصانع -DocType: Landed Cost Item,Purchase Receipt Item,شراء السلعة استلام +DocType: Landed Cost Item,Purchase Receipt Item,اصناف استلام الشراء DocType: Purchase Receipt,PREC-RET-,PREC-RET- DocType: POS Profile,Sales Invoice Payment,فاتورة مبيعات الدفع DocType: Production Plan Item,Reserved Warehouse in Sales Order / Finished Goods Warehouse,مستودع محجوزة في ترتيب المبيعات / السلع تامة الصنع في معرض النماذج @@ -1201,7 +1201,7 @@ DocType: Email Digest,Payables,الذمم الدائنة DocType: Course,Course Intro,مقدمة الدورة apps/erpnext/erpnext/stock/doctype/batch/batch.js +85,Stock Entry {0} created,الأسهم الدخول {0} خلق apps/erpnext/erpnext/controllers/buying_controller.py +290,Row #{0}: Rejected Qty can not be entered in Purchase Return,الصف # {0} مرفوض الكمية لا يمكن إدخالها في شراء العودة -,Purchase Order Items To Be Billed,أمر الشراء البنود لتكون وصفت +,Purchase Order Items To Be Billed,تم اصدار فاتورة لأصناف امر الشراء DocType: Purchase Invoice Item,Net Rate,صافي معدل DocType: Purchase Invoice Item,Purchase Invoice Item,اصناف فاتورة المشتريات apps/erpnext/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js +58,Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,ويرسل الأوراق المالية ليدجر مقالات وGL مقالات لشراء شهادات مختارة @@ -1620,7 +1620,7 @@ DocType: Sales Invoice,Reference Document,وثيقة مرجعية apps/erpnext/erpnext/stock/doctype/material_request/material_request.py +180,{0} {1} is cancelled or stopped,{0} {1} ملغى أو موقف DocType: Accounts Settings,Credit Controller,المراقب الائتمان DocType: Delivery Note,Vehicle Dispatch Date,سيارة الإرسال التسجيل -apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +229,Purchase Receipt {0} is not submitted,شراء استلام {0} لم تقدم +apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +229,Purchase Receipt {0} is not submitted,استلام المشتريات {0} غير مرحل DocType: Company,Default Payable Account,حساب Paybal الافتراضي apps/erpnext/erpnext/config/website.py +17,"Settings for online shopping cart such as shipping rules, price list etc.",إعدادات عربة التسوق مثل قواعد الشحن، وقائمة الأسعار الخ apps/erpnext/erpnext/controllers/website_list_for_contact.py +86,{0}% Billed,{0} فوترت٪ @@ -2132,7 +2132,7 @@ apps/erpnext/erpnext/accounts/doctype/shipping_rule/shipping_rule.py +28,Please DocType: Stock Entry,Total Incoming Value,إجمالي القيمة الواردة apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +333,Debit To is required,مطلوب الخصم ل apps/erpnext/erpnext/utilities/activation.py +107,"Timesheets help keep track of time, cost and billing for activites done by your team",الجداول الزمنية تساعد على الحفاظ على المسار من الوقت والتكلفة وإعداد الفواتير للنشاطات الذي قام به فريقك -apps/erpnext/erpnext/stock/report/item_prices/item_prices.py +39,Purchase Price List,شراء قائمة الأسعار +apps/erpnext/erpnext/stock/report/item_prices/item_prices.py +39,Purchase Price List,قائمة اسعار المشتريات DocType: Offer Letter Term,Offer Term,عرض عمل DocType: Quality Inspection,Quality Manager,مدير الجودة DocType: Job Applicant,Job Opening,وظيفة شاغرة @@ -2515,7 +2515,7 @@ apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +85,Row {0}: UOM C apps/erpnext/erpnext/accounts/report/accounts_receivable/accounts_receivable.html +20,Ref,المرجع DocType: Budget,Cost Center,مركز التكلفة apps/erpnext/erpnext/stock/report/stock_ledger/stock_ledger.py +36,Voucher #,سند # -DocType: Notification Control,Purchase Order Message,رسالة طلب شراء +DocType: Notification Control,Purchase Order Message,رسالة امر الشراء DocType: Tax Rule,Shipping Country,دولة الشحن DocType: Selling Settings,Hide Customer's Tax Id from Sales Transactions,إخفاء المعرف الضريبي العملاء من المعاملات المبيعات DocType: Upload Attendance,Upload HTML,رفع HTML @@ -2919,7 +2919,7 @@ DocType: Lead,Lower Income,دخل أدنى apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +168,Source and target warehouse cannot be same for row {0},مصدر و مستودع الهدف لا يمكن أن يكون نفس الصف ل {0} apps/erpnext/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +241,"Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry","حساب الفروقات سجب ان يكون نوع حساب الأصول / الخصوم, بحيث مطابقة المخزون بأدخال الأفتتاحي" apps/erpnext/erpnext/hr/doctype/employee_loan/employee_loan.py +107,Disbursed Amount cannot be greater than Loan Amount {0},المبلغ صرف لا يمكن أن يكون أكبر من مبلغ القرض {0} -apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +207,Purchase Order number required for Item {0},عدد طلب شراء مطلوب القطعة ل {0} +apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +207,Purchase Order number required for Item {0},مطلوب رقم امر الشراء للصنف {0} apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.js +869,Production Order not created,إنتاج النظام لم يخلق apps/erpnext/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py +18,'From Date' must be after 'To Date',"""من تاريخ "" يجب أن يكون بعد "" إلى تاريخ """ apps/erpnext/erpnext/schools/doctype/student_applicant/student_applicant.py +29,Cannot change status as student {0} is linked with student application {1},لا يمكن تغيير الوضع كما طالب {0} يرتبط مع تطبيق طالب {1} @@ -3125,7 +3125,7 @@ apps/erpnext/erpnext/accounts/utils.py +500,Please set default {0} in Company {1 DocType: Cheque Print Template,Starting position from top edge,بدءا من موقف من أعلى الحافة apps/erpnext/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +30,Same supplier has been entered multiple times,تم إدخال المورد نفسه عدة مرات apps/erpnext/erpnext/accounts/report/profitability_analysis/profitability_analysis.py +152,Gross Profit / Loss,الربح الإجمالي / الخسارة -DocType: Purchase Order Item Supplied,Purchase Order Item Supplied,شراء السلعة ترتيب الموردة +DocType: Purchase Order Item Supplied,Purchase Order Item Supplied,الأصناف المزوده بامر الشراء apps/erpnext/erpnext/public/js/setup_wizard.js +83,Company Name cannot be Company,اسم الشركة لا يمكن تكون شركة apps/erpnext/erpnext/config/setup.py +27,Letter Heads for print templates.,عنوان الرسالة لطباعة النماذج apps/erpnext/erpnext/config/setup.py +32,Titles for print templates e.g. Proforma Invoice.,عناوين نماذج الطباعة مثل الفاتورة الأولية. @@ -3142,7 +3142,7 @@ DocType: Manufacturer,Manufacturers used in Items,المصنعين المستخ apps/erpnext/erpnext/accounts/general_ledger.py +145,Please mention Round Off Cost Center in Company,يرجى ذكر جولة معطلة مركز التكلفة في الشركة DocType: Purchase Invoice,Terms,الأحكام DocType: Academic Term,Term Name,اسم المدى -DocType: Buying Settings,Purchase Order Required,أمر الشراء المطلوبة +DocType: Buying Settings,Purchase Order Required,مطلوب امر الشراء ,Item-wise Sales History,الحركة التاريخيه وفقا للصنف DocType: Expense Claim,Total Sanctioned Amount,الإجمالي الكمية الموافق عليه ,Purchase Analytics,تحليلات المشتريات diff --git a/erpnext/translations/da.csv b/erpnext/translations/da.csv index 48c5f2fc5b1..932a4379b95 100644 --- a/erpnext/translations/da.csv +++ b/erpnext/translations/da.csv @@ -18,7 +18,7 @@ DocType: Employee,Rented,Lejet DocType: Purchase Order,PO-,IO- DocType: POS Profile,Applicable for User,Gældende for bruger apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.py +194,"Stopped Production Order cannot be cancelled, Unstop it first to cancel","Stoppet produktionsordre kan ikke annulleres, Unstop det første til at annullere" -DocType: Vehicle Service,Mileage,Kilometertal +DocType: Vehicle Service,Mileage,Kilometerpenge apps/erpnext/erpnext/accounts/doctype/asset/asset.js +231,Do you really want to scrap this asset?,Vil du virkelig kassere dette anlægsaktiv? apps/erpnext/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.js +44,Select Default Supplier,Vælg Standard Leverandør apps/erpnext/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py +37,Currency is required for Price List {0},Valuta er nødvendig for prisliste {0} @@ -593,7 +593,7 @@ DocType: Issue,Resolution,Løsning DocType: C-Form,IV,IV apps/erpnext/erpnext/templates/pages/order.html +53,Delivered: {0},Leveret: {0} DocType: Expense Claim,Payable Account,Betales konto -DocType: Payment Entry,Type of Payment,Type af betaling +DocType: Payment Entry,Type of Payment,Betalingsmåde DocType: Sales Order,Billing and Delivery Status,Fakturering og leveringsstatus DocType: Job Applicant,Resume Attachment,Vedhæft CV apps/erpnext/erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.py +58,Repeat Customers,Gamle kunder @@ -930,7 +930,7 @@ DocType: Examination Result,Examination Result,eksamensresultat apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +795,Purchase Receipt,Købskvittering ,Received Items To Be Billed,Modtagne varer skal faktureres apps/erpnext/erpnext/hr/doctype/process_payroll/process_payroll.py +177,Submitted Salary Slips,Godkendte lønsedler -DocType: Employee,Ms,Ms +DocType: Employee,Ms,Fru apps/erpnext/erpnext/config/accounts.py +272,Currency exchange rate master.,Valutakursen mester. apps/erpnext/erpnext/accounts/doctype/payment_entry/payment_entry.py +194,Reference Doctype must be one of {0},Henvisning Doctype skal være en af {0} apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.py +303,Unable to find Time Slot in the next {0} days for Operation {1},Kan ikke finde Time Slot i de næste {0} dage til Operation {1} @@ -1002,7 +1002,7 @@ DocType: Purchase Invoice,Additional Discount Percentage,Ekstra rabatprocent apps/erpnext/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +24,View a list of all the help videos,Se en liste over alle hjælpevideoerne DocType: Bank Reconciliation,Select account head of the bank where cheque was deposited.,"Vælg højde leder af den bank, hvor checken blev deponeret." DocType: Selling Settings,Allow user to edit Price List Rate in transactions,Tillad brugeren at redigere prislistesatsen i transaktioner -DocType: Pricing Rule,Max Qty,Maksimalt antal +DocType: Pricing Rule,Max Qty,Maksimal mængde apps/erpnext/erpnext/accounts/doctype/c_form/c_form.py +30,"Row {0}: Invoice {1} is invalid, it might be cancelled / does not exist. \ Please enter a valid Invoice","Række {0}: Faktura {1} er ugyldig, kan det blive annulleret / findes ikke. \ Indtast en gyldig faktura" apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py +132,Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Række {0}: Betaling mod Salg / Indkøbsordre bør altid blive markeret som forskud @@ -2300,7 +2300,7 @@ DocType: Authorization Rule,Authorized Value,Autoriseret Værdi DocType: BOM,Show Operations,Vis Operations ,Minutes to First Response for Opportunity,Minutter til første reaktion for salgsmulighed apps/erpnext/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py +58,Total Absent,Ialt fraværende -apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +785,Item or Warehouse for row {0} does not match Material Request,Vare eller lager for række {0} matcher ikke materiale Request +apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +785,Item or Warehouse for row {0} does not match Material Request,Vare eller lager for række {0} matcher ikke materialeanmodningen apps/erpnext/erpnext/config/stock.py +189,Unit of Measure,Måleenhed DocType: Fiscal Year,Year End Date,Sidste dag i året DocType: Task Depends On,Task Depends On,Opgave afhænger af @@ -2534,7 +2534,7 @@ apps/erpnext/erpnext/accounts/report/financial_statements.py +227,Total {0} ({1} DocType: C-Form Invoice Detail,Territory,Område apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +151,Please mention no of visits required,"Henvis ikke af besøg, der kræves" DocType: Stock Settings,Default Valuation Method,Standard værdiansættelsesmetode -DocType: Vehicle Log,Fuel Qty,Antal Fuel +DocType: Vehicle Log,Fuel Qty,Brændstofmængde DocType: Production Order Operation,Planned Start Time,Planlagt starttime DocType: Course,Assessment,Vurdering DocType: Payment Entry Reference,Allocated,Allokeret @@ -2822,8 +2822,8 @@ DocType: Production Order,Work-in-Progress Warehouse,Work-in-Progress Warehouse apps/erpnext/erpnext/accounts/doctype/asset/depreciation.py +108,Asset {0} must be submitted,Aktiv {0} skal godkendes apps/erpnext/erpnext/schools/doctype/student_attendance/student_attendance.py +58,Attendance Record {0} exists against Student {1},Tilstedeværelse {0} eksisterer for studerende {1} apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py +354,Reference #{0} dated {1},Henvisning # {0} dateret {1} -apps/erpnext/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py +161,Depreciation Eliminated due to disposal of assets,Afskrivninger Slået grund afhændelse af aktiver -apps/erpnext/erpnext/templates/includes/cart/cart_address.html +15,Manage Addresses,Administrer Adresser +apps/erpnext/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py +161,Depreciation Eliminated due to disposal of assets,Bortfaldne afskrivninger grundet afhændelse af aktiver +apps/erpnext/erpnext/templates/includes/cart/cart_address.html +15,Manage Addresses,Administrér adresser DocType: Asset,Item Code,Varenr. DocType: Production Planning Tool,Create Production Orders,Opret produktionsordrer DocType: Serial No,Warranty / AMC Details,Garanti / AMC Detaljer @@ -4152,7 +4152,7 @@ apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +336,Debit DocType: Buying Settings,Naming Series,Navngivningsnummerserie DocType: Leave Block List,Leave Block List Name,Blokering af fraværsansøgninger apps/erpnext/erpnext/hr/doctype/vehicle/vehicle.py +14,Insurance Start date should be less than Insurance End date,Forsikring Startdato skal være mindre end Forsikring Slutdato -apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +32,Stock Assets,Stock Assets +apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +32,Stock Assets,Lageraktiver DocType: Timesheet,Production Detail,Produktion Detail DocType: Target Detail,Target Qty,Target Antal DocType: Shopping Cart Settings,Checkout Settings,Kassen Indstillinger @@ -4384,7 +4384,7 @@ DocType: Purchase Order,Get Last Purchase Rate,Få Sidste Purchase Rate DocType: Company,Company Info,Firmainformation apps/erpnext/erpnext/accounts/page/pos/pos.js +1330,Select or add new customer,Vælg eller tilføj ny kunde apps/erpnext/erpnext/hr/doctype/expense_claim/expense_claim.py +147,Cost center is required to book an expense claim,Omkostningssted er forpligtet til at bestille et udlæg -apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +9,Application of Funds (Assets),Anvendelse af midler (Assets) +apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +9,Application of Funds (Assets),Anvendelse af midler (Aktiver) apps/erpnext/erpnext/hr/doctype/employee/employee_dashboard.py +6,This is based on the attendance of this Employee,Dette er baseret på deltagelse af denne Medarbejder apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.js +461,Debit Account,Debetkonto DocType: Fiscal Year,Year Start Date,År Startdato @@ -4398,7 +4398,7 @@ apps/erpnext/erpnext/buying/doctype/request_for_quotation/request_for_quotation. apps/erpnext/erpnext/accounts/report/financial_statements.py +97,End Year cannot be before Start Year,Slutår kan ikke være før startår apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +184,Employee Benefits,Personalegoder apps/erpnext/erpnext/stock/doctype/delivery_note/delivery_note.py +252,Packed quantity must equal quantity for Item {0} in row {1},Pakket mængde skal være lig mængde for vare {0} i række {1} -DocType: Production Order,Manufactured Qty,Fremstillet antal +DocType: Production Order,Manufactured Qty,Fremstillet mængde DocType: Purchase Receipt Item,Accepted Quantity,Mængde apps/erpnext/erpnext/hr/doctype/employee/employee.py +238,Please set a default Holiday List for Employee {0} or Company {1},Angiv en standard helligdagskalender for medarbejder {0} eller firma {1} apps/erpnext/erpnext/accounts/party.py +28,{0}: {1} does not exists,{0}: {1} eksisterer ikke @@ -4439,7 +4439,7 @@ DocType: Employee,Contract End Date,Kontrakt Slutdato DocType: Sales Order,Track this Sales Order against any Project,Spor denne salgsordre mod enhver sag DocType: Sales Invoice Item,Discount and Margin,Rabat og Margin DocType: Production Planning Tool,Pull sales orders (pending to deliver) based on the above criteria,Pull salgsordrer (afventer at levere) baseret på ovenstående kriterier -DocType: Pricing Rule,Min Qty,Min Antal +DocType: Pricing Rule,Min Qty,Minimum mængde DocType: Asset Movement,Transaction Date,Transaktionsdato DocType: Production Plan Item,Planned Qty,Planlagt mængde apps/erpnext/erpnext/accounts/report/purchase_register/purchase_register.py +104,Total Tax,Moms i alt diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv index 9c985eb6d48..76b2d75133c 100644 --- a/erpnext/translations/de.csv +++ b/erpnext/translations/de.csv @@ -161,7 +161,7 @@ DocType: Item,Copy From Item Group,Von Artikelgruppe kopieren DocType: Journal Entry,Opening Entry,Eröffnungsbuchung apps/erpnext/erpnext/accounts/doctype/cheque_print_template/cheque_print_template.js +25,Account Pay Only,Konto Pay Nur DocType: Employee Loan,Repay Over Number of Periods,Repay über Anzahl der Perioden -apps/erpnext/erpnext/schools/doctype/student_group/student_group.py +37,{0} - {1} is not enrolled in the given {2},{0} - {1} ist nicht in der angegebenen {2} +apps/erpnext/erpnext/schools/doctype/student_group/student_group.py +37,{0} - {1} is not enrolled in the given {2},{0} - {1} ist nicht für den angegebenen {2} eingeschrieben DocType: Stock Entry,Additional Costs,Zusätzliche Kosten apps/erpnext/erpnext/accounts/doctype/account/account.py +142,Account with existing transaction can not be converted to group.,Ein Konto mit bestehenden Transaktionen kann nicht in eine Gruppe umgewandelt werden DocType: Lead,Product Enquiry,Produktanfrage @@ -582,7 +582,7 @@ apps/erpnext/erpnext/config/accounts.py +262,Financial / accounting year.,Finanz apps/erpnext/erpnext/accounts/report/balance_sheet/balance_sheet.js +9,Accumulated Values,Kumulierte Werte apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py +158,"Sorry, Serial Nos cannot be merged","Verzeihung! Seriennummern können nicht zusammengeführt werden," apps/erpnext/erpnext/selling/doctype/quotation/quotation.js +737,Make Sales Order,Kundenauftrag erstellen -DocType: Project Task,Project Task,Projekt-Teilaufgabe +DocType: Project Task,Project Task,Projektvorgang ,Lead Id,Lead-ID DocType: C-Form Invoice Detail,Grand Total,Gesamtbetrag DocType: Training Event,Course,Kurs @@ -867,7 +867,7 @@ apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +111,{0} {1}: Cost Ce apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +88,{0} {1}: Account {2} cannot be a Group,{0} {1}: Konto {2} darf keine Gruppe sein apps/erpnext/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py +61,Item Row {idx}: {doctype} {docname} does not exist in above '{doctype}' table,Artikel Row {idx}: {} {Doctype docname} existiert nicht in der oben '{Doctype}' Tisch apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +271,Timesheet {0} is already completed or cancelled,Timesheet {0} ist bereits abgeschlossen oder abgebrochen -apps/erpnext/erpnext/templates/pages/projects.html +42,No tasks,Keine Aufgaben +apps/erpnext/erpnext/templates/pages/projects.html +42,No tasks,keine Vorgänge DocType: Purchase Invoice,"The day of the month on which auto invoice will be generated e.g. 05, 28 etc","Der Tag des Monats, an welchem eine automatische Rechnung erstellt wird, z. B. 05, 28 usw." DocType: Asset,Opening Accumulated Depreciation,Öffnungs Kumulierte Abschreibungen apps/erpnext/erpnext/hr/doctype/appraisal/appraisal.js +49,Score must be less than or equal to 5,Punktzahl muß kleiner oder gleich 5 sein @@ -1466,7 +1466,7 @@ DocType: Course Schedule,SH,Sch DocType: BOM,Scrap Material Cost(Company Currency),Schrottmaterialkosten (Gesellschaft Währung) apps/erpnext/erpnext/public/js/setup_wizard.js +300,Sub Assemblies,Unterbaugruppen DocType: Asset,Asset Name,Asset-Name -DocType: Project,Task Weight,Aufgabengewichtung +DocType: Project,Task Weight,Vorgangsgewichtung DocType: Shipping Rule Condition,To Value,Bis-Wert DocType: Asset Movement,Stock Manager,Lagerleiter apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +143,Source warehouse is mandatory for row {0},Ausgangslager ist für Zeile {0} zwingend erforderlich @@ -1586,10 +1586,10 @@ DocType: Opportunity,Contact Mobile No,Kontakt-Mobiltelefonnummer DocType: Student Group,Set 0 for no limit,Stellen Sie 0 für keine Grenze apps/erpnext/erpnext/hr/doctype/leave_application/leave_application.py +141,The day(s) on which you are applying for leave are holidays. You need not apply for leave.,"Der Tag/die Tage, für den/die Sie Urlaub beantragen, sind Ferien. Deshalb müssen Sie keinen Urlaub beantragen." apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.js +20,Resend Payment Email,Erneut senden Zahlung per E-Mail -apps/erpnext/erpnext/templates/pages/projects.html +27,New task,Neue Aufgabe +apps/erpnext/erpnext/templates/pages/projects.html +27,New task,Neuer Vorgang apps/erpnext/erpnext/utilities/activation.py +72,Make Quotation,Angebot erstellen apps/erpnext/erpnext/config/selling.py +216,Other Reports,Weitere Berichte -DocType: Dependent Task,Dependent Task,Abhängige Aufgabe +DocType: Dependent Task,Dependent Task,Abhängiger Vorgang apps/erpnext/erpnext/stock/doctype/item/item.py +407,Conversion factor for default Unit of Measure must be 1 in row {0},Umrechnungsfaktor für Standardmaßeinheit muss in Zeile {0} 1 sein apps/erpnext/erpnext/hr/doctype/leave_application/leave_application.py +208,Leave of type {0} cannot be longer than {1},Abwesenheit vom Typ {0} kann nicht länger sein als {1} DocType: Manufacturing Settings,Try planning operations for X days in advance.,Arbeitsgänge für X Tage im Voraus planen. @@ -2136,7 +2136,7 @@ DocType: Job Applicant,Job Opening,Offene Stellen DocType: Payment Reconciliation,Payment Reconciliation,Zahlungsabgleich apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +153,Please select Incharge Person's name,Bitte den Namen der verantwortlichen Person auswählen apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +51,Technology,Technologie -apps/erpnext/erpnext/public/js/utils.js +92,Total Unpaid: {0},Noch nicht ausgezahlten: {0} +apps/erpnext/erpnext/public/js/utils.js +92,Total Unpaid: {0},Noch nicht bezahlt: {0} DocType: BOM Website Operation,BOM Website Operation,BOM Webseite Tätigkeits apps/erpnext/erpnext/hr/doctype/job_applicant/job_applicant.js +13,Offer Letter,Angebotsschreiben apps/erpnext/erpnext/config/manufacturing.py +18,Generate Material Requests (MRP) and Production Orders.,Materialanfragen (MAF) und Fertigungsaufträge generieren @@ -2322,7 +2322,7 @@ apps/erpnext/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +785,Item or Warehouse for row {0} does not match Material Request,Artikel oder Lager in Zeile {0} stimmen nicht mit Materialanfrage überein apps/erpnext/erpnext/config/stock.py +189,Unit of Measure,Maßeinheit DocType: Fiscal Year,Year End Date,Enddatum des Geschäftsjahres -DocType: Task Depends On,Task Depends On,Aufgabe hängt ab von +DocType: Task Depends On,Task Depends On,Vorgang hängt ab von DocType: Supplier Quotation,Opportunity,Chance ,Completed Production Orders,Abgeschlossene Fertigungsaufträge DocType: Operation,Default Workstation,Standard-Arbeitsplatz @@ -2534,7 +2534,7 @@ DocType: Vehicle,Electric,elektrisch DocType: Task,% Progress,% Fortschritt apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +121,Gain/Loss on Asset Disposal,Gewinn / Verlust aus der Veräußerung von Vermögenswerten DocType: Training Event,Will send an email about the event to employees with status 'Open',Wird eine E-Mail über das Ereignis senden an Mitarbeiter mit dem Status 'Offen' -DocType: Task,Depends on Tasks,Hängt von Aufgaben +DocType: Task,Depends on Tasks,Abhängig von Vorgang apps/erpnext/erpnext/config/selling.py +36,Manage Customer Group Tree.,Baumstruktur der Kundengruppen verwalten DocType: Shopping Cart Settings,Attachments can be shown without enabling the shopping cart,Anhänge können ohne Erlaubnis des Einkaufswagens angezeigt werden DocType: Supplier Quotation,SQTN-,SQTN- @@ -3242,7 +3242,7 @@ apps/erpnext/erpnext/accounts/doctype/c_form/c_form.py +54,Please enter atleast apps/erpnext/erpnext/public/js/setup_wizard.js +189,Add Users,Benutzer hinzufügen DocType: POS Item Group,Item Group,Artikelgruppe DocType: Item,Safety Stock,Sicherheitsbestand -apps/erpnext/erpnext/projects/doctype/task/task.py +53,Progress % for a task cannot be more than 100.,Fortschritt% für eine Aufgabe kann nicht mehr als 100 sein. +apps/erpnext/erpnext/projects/doctype/task/task.py +53,Progress % for a task cannot be more than 100.,Fortschritt-% eines Vorgangs darf nicht größer 100 sein. DocType: Stock Reconciliation Item,Before reconciliation,Vor Ausgleich apps/erpnext/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py +12,To {0},An {0} DocType: Purchase Invoice,Taxes and Charges Added (Company Currency),Steuern und Gebühren hinzugerechnet (Firmenwährung) @@ -3642,7 +3642,7 @@ apps/erpnext/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_ DocType: Purchase Invoice,Taxes and Charges Added,Steuern und Gebühren hinzugefügt ,Sales Funnel,Verkaufstrichter apps/erpnext/erpnext/setup/doctype/company/company.py +47,Abbreviation is mandatory,Abkürzung ist zwingend erforderlich -DocType: Project,Task Progress,Aufgabenfortschritt +DocType: Project,Task Progress,Vorgangsentwicklung apps/erpnext/erpnext/templates/includes/navbar/navbar_items.html +7,Cart,Einkaufswagen ,Qty to Transfer,Zu versendende Menge apps/erpnext/erpnext/config/selling.py +13,Quotes to Leads or Customers.,Angebote an Leads oder Kunden @@ -4217,7 +4217,7 @@ apps/erpnext/erpnext/stock/doctype/item/item.py +682,Item {0} is disabled,Artike DocType: Stock Settings,Stock Frozen Upto,Bestand gesperrt bis apps/erpnext/erpnext/stock/doctype/material_request/material_request.js +882,BOM does not contain any stock item,Stückliste enthält keine Lagerware apps/erpnext/erpnext/controllers/recurring_document.py +172,Period From and Period To dates mandatory for recurring {0},Ab-Zeitraum und Bis-Zeitraum sind zwingend erforderlich für wiederkehrende {0} -apps/erpnext/erpnext/config/projects.py +18,Project activity / task.,Projektaktivität/Aufgabe +apps/erpnext/erpnext/config/projects.py +18,Project activity / task.,Projektaktivität/-vorgang. DocType: Vehicle Log,Refuelling Details,Betankungs Einzelheiten apps/erpnext/erpnext/config/hr.py +104,Generate Salary Slips,Gehaltsabrechnungen generieren apps/erpnext/erpnext/accounts/doctype/pricing_rule/pricing_rule.py +44,"Buying must be checked, if Applicable For is selected as {0}","Einkauf muss ausgewählt sein, wenn ""Anwenden auf"" auf {0} gesetzt wurde" @@ -4291,7 +4291,7 @@ DocType: Employee Loan,Repayment Period in Months,Rückzahlungsfrist in Monaten apps/erpnext/erpnext/templates/includes/footer/footer_extension.html +26,Error: Not a valid id?,Fehler: Keine gültige ID? DocType: Naming Series,Update Series Number,Nummernkreis-Wert aktualisieren DocType: Account,Equity,Eigenkapital -apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +78,{0} {1}: 'Profit and Loss' type account {2} not allowed in Opening Entry,{0} {1}: "Gewinn und Verlust" Typ Konto {2} nicht in Öffnungs Eintrag erlaubt +apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +78,{0} {1}: 'Profit and Loss' type account {2} not allowed in Opening Entry,"{0} {1}: ""Gewinn und Verlust"" Art Konto {2} nicht in Eröffnungs-Buchung erlaubt" DocType: Sales Order,Printing Details,Druckdetails DocType: Task,Closing Date,Abschlussdatum DocType: Sales Order Item,Produced Quantity,Produzierte Menge @@ -4302,7 +4302,7 @@ apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +163, DocType: Sales Partner,Partner Type,Partnertyp DocType: Purchase Taxes and Charges,Actual,Tatsächlich DocType: Authorization Rule,Customerwise Discount,Kundenspezifischer Rabatt -apps/erpnext/erpnext/config/projects.py +35,Timesheet for tasks.,Zeiterfassung für Aufgaben. +apps/erpnext/erpnext/config/projects.py +35,Timesheet for tasks.,Zeitraport für Vorgänge. DocType: Purchase Invoice,Against Expense Account,Zu Aufwandskonto DocType: Production Order,Production Order,Fertigungsauftrag apps/erpnext/erpnext/stock/doctype/delivery_note/delivery_note.py +270,Installation Note {0} has already been submitted,Installationshinweis {0} wurde bereits übertragen diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv index 4f0268a536f..bfbba6dfbfd 100644 --- a/erpnext/translations/fr.csv +++ b/erpnext/translations/fr.csv @@ -2183,7 +2183,7 @@ apps/erpnext/erpnext/public/js/setup_wizard.js +242,Your Customers,Vos clients apps/erpnext/erpnext/utilities/activation.py +117,Make Student,Créer un Étudiant apps/erpnext/erpnext/projects/doctype/project/project.py +190,You have been invited to collaborate on the project: {0},Vous avez été invité à collaborer sur le projet : {0} DocType: Leave Block List Date,Block Date,Bloquer la Date -apps/erpnext/erpnext/templates/generators/student_admission.html +23,Apply Now,Appliquer Maintenant +apps/erpnext/erpnext/templates/generators/student_admission.html +23,Apply Now,Postuler apps/erpnext/erpnext/stock/dashboard/item_dashboard_list.html +25,Actual Qty {0} / Waiting Qty {1},Qté Réelle {0} / Quantité en Attente {1} DocType: Sales Order,Not Delivered,Non Livré ,Bank Clearance Summary,Bilan des Compensations Bancaires @@ -3938,7 +3938,7 @@ apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.py +278,Row #{0}: N DocType: Accounts Settings,Role that is allowed to submit transactions that exceed credit limits set.,Rôle qui est autorisé à soumettre des transactions qui dépassent les limites de crédit fixées. apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.js +902,Select Items to Manufacture,Sélectionner les Articles à Fabriquer apps/erpnext/erpnext/accounts/page/pos/pos.js +929,"Master data syncing, it might take some time","Données de base en cours de synchronisation, cela peut prendre un certain temps" -DocType: Item,Material Issue,Problème Matériel +DocType: Item,Material Issue,Sortie de Matériel DocType: Hub Settings,Seller Description,Description du Vendeur DocType: Employee Education,Qualification,Qualification DocType: Item Price,Item Price,Prix de l'Article diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv index 96b463643ab..a234d1a1a89 100644 --- a/erpnext/translations/pt-BR.csv +++ b/erpnext/translations/pt-BR.csv @@ -64,6 +64,7 @@ apps/erpnext/erpnext/setup/doctype/company/company.py +44,Abbreviation cannot ha DocType: Payment Request,Payment Request,Pedido de Pagamento DocType: Asset,Value After Depreciation,Valor após Depreciação apps/erpnext/erpnext/stock/doctype/purchase_receipt/purchase_receipt_dashboard.py +17,Related,Relacionados +DocType: Grading Scale,Grading Scale Name,Nome escala de avaliação apps/erpnext/erpnext/accounts/doctype/account/account.js +26,This is a root account and cannot be edited.,Esta é uma conta de root e não pode ser editada. apps/erpnext/erpnext/setup/doctype/authorization_rule/authorization_rule.py +38,Cannot set authorization on basis of Discount for {0},Não é possível definir a autorização com base em desconto para {0} DocType: Rename Tool,"Attach .csv file with two columns, one for the old name and one for the new name","Anexar arquivo .csv com duas colunas, uma para o nome antigo e um para o novo nome" @@ -608,7 +609,7 @@ DocType: Maintenance Visit,Completion Status,Status de Conclusão DocType: HR Settings,Enter retirement age in years,Insira a idade da aposentadoria em anos apps/erpnext/erpnext/accounts/doctype/asset/asset.js +263,Target Warehouse,Armazén de Destino DocType: Item,Allow over delivery or receipt upto this percent,Permitir entrega ou recebimento adicional até este percentual -DocType: Upload Attendance,Import Attendance,Importação de Atendimento +DocType: Upload Attendance,Import Attendance,Importação de Ponto apps/erpnext/erpnext/public/js/pos/pos.html +115,All Item Groups,Todos os grupos de itens DocType: Process Payroll,Activity Log,Log de Atividade apps/erpnext/erpnext/config/setup.py +89,Automatically compose message on submission of transactions.,Compor automaticamente mensagem no envio de transações. @@ -1087,6 +1088,7 @@ DocType: HR Settings,Stop Birthday Reminders,Interromper lembretes de aniversár DocType: SMS Center,Receiver List,Lista de recebedores apps/erpnext/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py +46,Consumed Amount,Quantidade Consumida apps/erpnext/erpnext/accounts/report/cash_flow/cash_flow.py +98,Net Change in Cash,Variação Líquida em Dinheiro +DocType: Assessment Plan,Grading Scale,Escala de avaliação apps/erpnext/erpnext/stock/doctype/item/item.py +402,Unit of Measure {0} has been entered more than once in Conversion Factor Table,Unidade de Medida {0} foi inserida mais de uma vez na Tabela de Conversão de Fator apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.py +601,Already completed,Já concluído apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py +28,Payment Request already exists {0},Pedido de Pagamento já existe {0} @@ -1298,6 +1300,7 @@ DocType: Item Reorder,Check in (group),Entrada (grupo) apps/erpnext/erpnext/config/projects.py +25,Gantt chart of all tasks.,Gráfico de Gantt de todas as tarefas. DocType: Opportunity,Mins to First Response,Minutos para Primeira Resposta DocType: Pricing Rule,Margin Type,Tipo da Margem +DocType: Course,Default Grading Scale,Escala de avaliação padrão DocType: Appraisal,For Employee Name,Para Nome do Colaborador DocType: C-Form Invoice Detail,Invoice No,Nota nº apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py +342,Make Payment,Fazer Pagamento @@ -1394,6 +1397,7 @@ DocType: Request for Quotation,Manufacturing Manager,Gerente de Fabricação apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +191,Serial No {0} is under warranty upto {1},Nº de Série {0} está na garantia até {1} apps/erpnext/erpnext/config/stock.py +158,Split Delivery Note into packages.,Dividir Guia de Remessa em pacotes. apps/erpnext/erpnext/hooks.py +87,Shipments,Entregas +apps/erpnext/erpnext/accounts/doctype/account/account.py +191,Account balance ({0}) for {1} and stock value ({2}) for warehouse {3} must be same,O saldo da conta {1} ({0}) e o valor do estoque ({2}) para o armazém {3} devem ser os mesmos DocType: Payment Entry,Total Allocated Amount (Company Currency),Total alocado (moeda da empresa) DocType: Purchase Order Item,To be delivered to customer,Para ser entregue ao cliente DocType: BOM,Scrap Material Cost,Custo do Material Sucateado @@ -1424,6 +1428,7 @@ DocType: Bank Guarantee,Bank Guarantee,Garantia Bancária apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +39,Please click on 'Generate Schedule' to get schedule,"Por favor, clique em ""Gerar Agenda"" para obter cronograma" DocType: Bin,Ordered Quantity,Quantidade Encomendada apps/erpnext/erpnext/public/js/setup_wizard.js +52,"e.g. ""Build tools for builders""","ex: ""Desenvolve ferramentas para construtores """ +DocType: Grading Scale,Grading Scale Intervals,Intervalos da escala de avaliação apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +125,{0} {1}: Accounting Entry for {2} can only be made in currency: {3},{0} {1}: Entradas contabeis para {2} só pode ser feito em moeda: {3} DocType: Production Order,In Process,Em Processo DocType: Authorization Rule,Itemwise Discount,Desconto relativo ao Item @@ -2038,6 +2043,7 @@ apps/erpnext/erpnext/stock/doctype/material_request/material_request.py +397,Pro DocType: Purchase Invoice,Purchase Taxes and Charges,Impostos e Encargos sobre Compras ,Qty to Receive,Qtde para Receber DocType: Leave Block List,Leave Block List Allowed,Deixe Lista de Bloqueios admitidos +DocType: Grading Scale Interval,Grading Scale Interval,Intervalo da escala de avaliação apps/erpnext/erpnext/hr/doctype/vehicle_log/vehicle_log.py +49,Expense Claim for Vehicle Log {0},Reembolso de Despesa para o Log do Veículo {0} DocType: Sales Partner,Retailer,Varejista apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +107,Credit To account must be a Balance Sheet account,Para crédito de conta deve ser uma conta de Balanço @@ -3186,7 +3192,7 @@ apps/erpnext/erpnext/accounts/report/bank_reconciliation_statement/bank_reconcil DocType: Employee,Reason for Leaving,Motivo da saída DocType: BOM Operation,Operating Cost(Company Currency),Custo operacional (moeda da empresa) DocType: Employee Loan Application,Rate of Interest,Taxa de Juros -DocType: Expense Claim Detail,Sanctioned Amount,Quantidade sancionada +DocType: Expense Claim Detail,Sanctioned Amount,Valor Sancionado DocType: GL Entry,Is Opening,É Abertura apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py +196,Row {0}: Debit entry can not be linked with a {1},Linha {0}: Lançamento de débito não pode ser relacionado a uma {1} apps/erpnext/erpnext/accounts/doctype/account/account.py +234,Account {0} does not exist,A Conta {0} não existe diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv index 5a0a0deaf38..e7c669010c4 100644 --- a/erpnext/translations/tr.csv +++ b/erpnext/translations/tr.csv @@ -57,7 +57,7 @@ DocType: Pricing Rule,Apply On,Uygula DocType: Item Price,Multiple Item prices.,Çoklu Ürün fiyatları. DocType: Item Price,Multiple Item prices.,Çoklu Ürün fiyatları. ,Purchase Order Items To Be Received,AlınacakSatınalma Siparişi Kalemleri -DocType: SMS Center,All Supplier Contact,Bütün Tedarikçi Kişiler +DocType: SMS Center,All Supplier Contact,Bütün Tedarikçiler DocType: Support Settings,Support Settings,Destek Ayarları DocType: SMS Parameter,Parameter,Parametre DocType: SMS Parameter,Parameter,Parametre @@ -868,7 +868,7 @@ apps/erpnext/erpnext/hr/doctype/salary_structure/salary_structure.js +369,Previe apps/erpnext/erpnext/accounts/doctype/budget/budget.py +54,Account {0} has been entered multiple times,Hesap {0} birden çok kez girilmiş DocType: Account,Expenses Included In Valuation,Değerlemeye dahil giderler DocType: Hub Settings,Seller City,Satıcı Şehri -,Absent Student Report,Yok Öğrenci Raporu +,Absent Student Report,Olmayan Öğrenci Raporu DocType: Email Digest,Next email will be sent on:,Sonraki e-posta gönderilecek: DocType: Offer Letter Term,Offer Letter Term,Mektubu Dönem Teklif apps/erpnext/erpnext/stock/doctype/item/item.py +619,Item has variants.,Öğe varyantları vardır. @@ -2445,7 +2445,7 @@ apps/erpnext/erpnext/accounts/doctype/payment_entry/payment_entry.js +146,Cannot apps/erpnext/erpnext/selling/doctype/product_bundle/product_bundle.py +29,Child Item should not be a Product Bundle. Please remove item `{0}` and save,Çocuk Ürün Ürün Paketi olmamalıdır. öğeyi kaldırmak `{0}` ve saklayın apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +12,Banking,Bankacılık apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +12,Banking,Bankacılık -apps/erpnext/erpnext/utilities/activation.py +106,Add Timesheets,Timesheets ekle +apps/erpnext/erpnext/utilities/activation.py +106,Add Timesheets,Zaman Çizelgesi ekle DocType: Vehicle Service,Service Item,servis Öğe DocType: Bank Guarantee,Bank Guarantee,Banka garantisi DocType: Bank Guarantee,Bank Guarantee,Banka garantisi @@ -3206,7 +3206,7 @@ DocType: Quality Inspection,Inspection Type,Muayene Türü apps/erpnext/erpnext/stock/doctype/warehouse/warehouse.py +237,Warehouses with existing transaction can not be converted to group.,Mevcut işlem ile depolar grubuna dönüştürülemez. DocType: Assessment Result Tool,Result HTML,Sonuç HTML apps/erpnext/erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py +35,Expires On,Tarihinde sona eriyor -apps/erpnext/erpnext/utilities/activation.py +115,Add Students,Öğrenciler ekle +apps/erpnext/erpnext/utilities/activation.py +115,Add Students,Öğrenci ekle apps/erpnext/erpnext/controllers/recurring_document.py +169,Please select {0},Lütfen {0} seçiniz DocType: C-Form,C-Form No,C-Form No DocType: C-Form,C-Form No,C-Form No @@ -3677,8 +3677,8 @@ apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +78,Purpose must b apps/erpnext/erpnext/hr/doctype/expense_claim/expense_claim.js +120,Fill the form and save it,Formu doldurun ve kaydedin DocType: Production Planning Tool,Download a report containing all raw materials with their latest inventory status,En son stok durumu ile bütün ham maddeleri içeren bir rapor indir apps/erpnext/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +26,Community Forum,Forum -apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Gerçek adet -apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Gerçek adet +apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Stokdaki gerçek adet +apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Stoktaki Gerçek adet DocType: Homepage,"URL for ""All Products""","Tüm Ürünler" URL DocType: Leave Application,Leave Balance Before Application,Uygulamadan Önce Kalan İzin DocType: SMS Center,Send SMS,SMS Gönder @@ -3806,7 +3806,7 @@ DocType: Purchase Invoice,Price List Exchange Rate,Fiyat Listesi Döviz Kuru DocType: Purchase Invoice Item,Rate,Birim Fiyat apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +66,Intern,Stajyer apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +66,Intern,Stajyer -apps/erpnext/erpnext/accounts/page/pos/pos.js +1480,Address Name,Adres adı +apps/erpnext/erpnext/accounts/page/pos/pos.js +1480,Address Name,Adres Adı DocType: Stock Entry,From BOM,BOM Gönderen DocType: Assessment Code,Assessment Code,Değerlendirme Kodu apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +35,Basic,Temel diff --git a/erpnext/utilities/page/__init__.py b/erpnext/utilities/page/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/utilities/page/leaderboard/__init__.py b/erpnext/utilities/page/leaderboard/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/utilities/page/leaderboard/leaderboard.css b/erpnext/utilities/page/leaderboard/leaderboard.css new file mode 100644 index 00000000000..1f4fc5159ae --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard.css @@ -0,0 +1,54 @@ +.list-filters { + overflow-y: hidden; + padding: 5px +} + +.list-filter-item { + min-width: 150px; + float: left; + margin:5px; +} + +.list-item_content{ + flex: 1; + padding-right: 15px; + align-items: center; +} + +.select-time, .select-doctype, .select-filter, .select-sort { + background: #f0f4f7; +} + +.select-time:focus, .select-doctype:focus, .select-filter:focus, .select-sort:focus { + background: #f0f4f7; +} + +.header-btn-base{ + border:none; + outline:0; + vertical-align:middle; + overflow:hidden; + text-decoration:none; + color:inherit; + background-color:inherit; + cursor:pointer; + white-space:nowrap; +} + +.header-btn-grey,.header-btn-grey:hover{ + color:#000!important; + background-color:#bbb!important +} + +.header-btn-round{ + border-radius:4px +} + +.item-title-bold{ + font-weight: bold; +} + +/* +.header-btn-base:hover { + box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19) +}*/ diff --git a/erpnext/utilities/page/leaderboard/leaderboard.html b/erpnext/utilities/page/leaderboard/leaderboard.html new file mode 100644 index 00000000000..8df224750cb --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard.html @@ -0,0 +1,23 @@ +
+
+
+
+ +
+ +
+ +
+
+
+
+
+
\ No newline at end of file diff --git a/erpnext/utilities/page/leaderboard/leaderboard.js b/erpnext/utilities/page/leaderboard/leaderboard.js new file mode 100644 index 00000000000..eed9bd18657 --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard.js @@ -0,0 +1,248 @@ + +frappe.Leaderboard = Class.extend({ + + init: function (parent) { + this.page = frappe.ui.make_app_page({ + parent: parent, + title: "Leaderboard", + single_column: true + }); + + // const list of doctypes + this.doctypes = ["Customer", "Item", "Supplier", "Sales Partner"]; + this.timelines = ["Week", "Month", "Quarter", "Year"]; + this.desc_fields = ["total_amount", "total_request", "annual_billing", "commission_rate"]; + this.filters = { + "Customer": this.map_array(["title", "total_amount", "total_item_purchased", "modified"]), + "Item": this.map_array(["title", "total_request", "total_purchase", "avg_price", "modified"]), + "Supplier": this.map_array(["title", "annual_billing", "total_unpaid", "modified"]), + "Sales Partner": this.map_array(["title", "commission_rate", "target_qty", "target_amount", "modified"]), + }; + + // for saving current selected filters + const _selected_filter = this.filters[this.doctypes[0]]; + this.options = { + selected_doctype: this.doctypes[0], + selected_filter: _selected_filter, + selected_filter_item: _selected_filter[1], + selected_timeline: this.timelines[0], + }; + + this.message = null; + this.make(); + }, + + + + make: function () { + var me = this; + + var $leaderboard = $(frappe.render_template("leaderboard", this)).appendTo(this.page.main); + + // events + $leaderboard.find(".select-doctype") + .on("change", function () { + me.options.selected_doctype = this.value; + me.options.selected_filter = me.filters[this.value]; + me.options.selected_filter_item = me.filters[this.value][1]; + me.make_request($leaderboard); + }); + + $leaderboard.find(".select-time") + .on("change", function () { + me.options.selected_timeline = this.value; + me.make_request($leaderboard); + }); + + // now get leaderboard + me.make_request($leaderboard); + }, + + make_request: function ($leaderboard) { + var me = this; + + frappe.model.with_doctype(me.options.selected_doctype, function () { + me.get_leaderboard(me.get_leaderboard_data, $leaderboard); + }); + }, + + get_leaderboard: function (notify, $leaderboard) { + var me = this; + + frappe.call({ + method: "erpnext.utilities.page.leaderboard.leaderboard.get_leaderboard", + args: { + obj: JSON.stringify(me.options) + }, + callback: function (res) { + console.log(res) + notify(me, res, $leaderboard); + } + }); + }, + + get_leaderboard_data: function (me, res, $leaderboard) { + if (res && res.message) { + me.message = null; + $leaderboard.find(".leaderboard").html(me.render_list_view(res.message)); + + // event to change arrow + $leaderboard.find(".leaderboard-item") + .click(function () { + const field = this.innerText.trim().toLowerCase().replace(new RegExp(" ", "g"), "_"); + if (field && field !== "title") { + const _selected_filter_item = me.options.selected_filter + .filter(i => i.field === field); + if (_selected_filter_item.length > 0) { + me.options.selected_filter_item = _selected_filter_item[0]; + me.options.selected_filter_item.value = _selected_filter_item[0].value === "ASC" ? "DESC" : "ASC"; + + const new_class_name = `icon-${me.options.selected_filter_item.field} fa fa-chevron-${me.options.selected_filter_item.value === "ASC" ? "up" : "down"}`; + $leaderboard.find(`.icon-${me.options.selected_filter_item.field}`) + .attr("class", new_class_name); + + // now make request to web + me.make_request($leaderboard); + } + } + }); + } else { + me.message = "No items found."; + $leaderboard.find(".leaderboard").html(me.render_list_view()); + } + }, + + render_list_view: function (items = []) { + var me = this; + + var html = + `${me.render_message()} +
+ ${me.render_result(items)} +
`; + + return $(html); + }, + + render_result: function (items) { + var me = this; + + var html = + `${me.render_list_header()} + ${me.render_list_result(items)}`; + + return html; + }, + + render_list_header: function () { + var me = this; + const _selected_filter = me.options.selected_filter + .map(i => me.map_field(i.field)).slice(1); + + const html = + `
+
+ ${ + me.options.selected_filter + .map(filter => { + const col = me.map_field(filter.field); + return ( + `
+ + ${col} + + +
`); + }).join("") + } +
+
`; + return html; + }, + + render_list_result: function (items) { + var me = this; + + let _html = items.map((item) => { + const $value = $(me.get_item_html(item)); + const $item_container = $(`
`).append($value); + return $item_container[0].outerHTML; + }).join(""); + + let html = + `
+
+ ${_html} +
+
`; + + return html; + }, + + render_message: function () { + var me = this; + + let html = + `
+
+

No Item found

+
+
`; + + return html; + }, + + get_item_html: function (item) { + var me = this; + const _selected_filter = me.options.selected_filter + .map(i => me.map_field(i.field)).slice(1); + + const html = + `
+ ${ + me.options.selected_filter + .map(filter => { + const col = me.map_field(filter.field); + let val = item[filter.field]; + if (col === "Modified") { + val = comment_when(val); + } + return ( + `
+ ${ + col === "Title" + ? ` ${val} ` + : ` ${val}` + } +
`); + }).join("") + } +
`; + + return html; + }, + + map_field: function (field) { + return field.replace(new RegExp("_", "g"), " ").replace(/(^|\s)[a-z]/g, f => f.toUpperCase()) + }, + + map_array: function (_array) { + var me = this; + return _array.map((str) => { + let value = me.desc_fields.indexOf(str) > -1 ? "DESC" : "ASC"; + return { + field: str, + value: value + }; + }); + } +}); + +frappe.pages["leaderboard"].on_page_load = function (wrapper) { + frappe.leaderboard = new frappe.Leaderboard(wrapper); +} diff --git a/erpnext/utilities/page/leaderboard/leaderboard.json b/erpnext/utilities/page/leaderboard/leaderboard.json new file mode 100644 index 00000000000..8cba76587ad --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard.json @@ -0,0 +1,19 @@ +{ + "content": null, + "creation": "2017-06-06 02:54:24.785360", + "docstatus": 0, + "doctype": "Page", + "idx": 0, + "modified": "2017-06-06 02:54:27.504048", + "modified_by": "Administrator", + "module": "Utilities", + "name": "leaderboard", + "owner": "Administrator", + "page_name": "leaderboard", + "roles": [], + "script": null, + "standard": "Yes", + "style": null, + "system_page": 0, + "title": "LeaderBoard" +} \ No newline at end of file diff --git a/erpnext/utilities/page/leaderboard/leaderboard.py b/erpnext/utilities/page/leaderboard/leaderboard.py new file mode 100644 index 00000000000..0a754100fe2 --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard.py @@ -0,0 +1,182 @@ +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals, print_function +import frappe +import json +from operator import itemgetter +from frappe.utils import add_to_date +from erpnext.accounts.party import get_dashboard_info +from erpnext.accounts.utils import get_currency_precision + +@frappe.whitelist() +def get_leaderboard(obj): + """return top 10 items for that doctype based on conditions""" + obj = frappe._dict(json.loads(obj)) + + doctype = obj.selected_doctype + timeline = obj.selected_timeline + filters = {"modified":(">=", get_date_from_string(timeline))} + items = [] + if doctype == "Customer": + items = get_all_customers(doctype, filters, []) + elif doctype == "Item": + items = get_all_items(doctype, filters, []) + elif doctype == "Supplier": + items = get_all_suppliers(doctype, filters, []) + elif doctype == "Sales Partner": + items = get_all_sales_partner(doctype, filters, []) + + if len(items) > 0: + return filter_leaderboard_items(obj, items) + return [] + + +# filters start +def filter_leaderboard_items(obj, items): + """return items based on seleted filters""" + + reverse = False if obj.selected_filter_item and obj.selected_filter_item["value"] == "ASC" else True + # key : (x[field1], x[field2]) while sorting on 2 values + filtered_list = [] + selected_field = obj.selected_filter_item and obj.selected_filter_item["field"] + if selected_field: + filtered_list = sorted(items, key=itemgetter(selected_field), reverse=reverse) + value = items[0].get(selected_field) + + allowed = isinstance(value, unicode) or isinstance(value, str) + # now sort by length + if allowed and '$' in value: + filtered_list.sort(key= lambda x: len(x[selected_field]), reverse=reverse) + + # return only 10 items' + return filtered_list[:10] + +# filters end + + +# utils start +def destructure_tuple_of_tuples(tup_of_tup): + """return tuple(tuples) as list""" + return [y for x in tup_of_tup for y in x] + +def get_date_from_string(seleted_timeline): + """return string for ex:this week as date:string""" + days = months = years = 0 + if "month" == seleted_timeline.lower(): + months = -1 + elif "quarter" == seleted_timeline.lower(): + months = -3 + elif "year" == seleted_timeline.lower(): + years = -1 + else: + days = -7 + + return add_to_date(None, years=years, months=months, days=days, as_string=True, as_datetime=True) + +def get_filter_list(selected_filter): + """return list of keys""" + return map((lambda y : y["field"]), filter(lambda x : not (x["field"] == "title" or x["field"] == "modified"), selected_filter)) + +def get_avg(items): + """return avg of list items""" + length = len(items) + if length > 0: + return sum(items) / length + return 0 + +def get_formatted_value(value, add_symbol=True): + """return formatted value""" + currency_precision = get_currency_precision() or 2 + if not add_symbol: + return '{:.{pre}f}'.format(value, pre=currency_precision) + + company = frappe.db.get_default("company") or frappe.get_all("Company")[0].name + currency = frappe.get_doc("Company", company).default_currency or frappe.boot.sysdefaults.currency; + currency_symbol = frappe.db.get_value("Currency", currency, "symbol") + return currency_symbol + ' ' + '{:.{pre}f}'.format(value, pre=currency_precision) + +# utils end + + +# get data +def get_all_customers(doctype, filters, items, start=0, limit=100): + """return all customers""" + + x = frappe.get_list(doctype, fields=["name", "modified"], filters=filters, limit_start=start, limit_page_length=limit) + + for val in x: + y = dict(frappe.db.sql('''select name, grand_total from `tabSales Invoice` where customer = %s''', (val.name))) + invoice_list = y.keys() + if len(invoice_list) > 0: + item_count = frappe.db.sql('''select count(name) from `tabSales Invoice Item` where parent in (%s)''' % ", ".join( + ['%s'] * len(invoice_list)), tuple(invoice_list)) + items.append({"title": val.name, + "total_amount": get_formatted_value(sum(y.values())), + "href":"#Form/Customer/" + val.name, + "total_item_purchased": sum(destructure_tuple_of_tuples(item_count)), + "modified": str(val.modified)}) + if len(x) > 99: + start = start + 1 + return get_all_customers(doctype, filters, items, start=start) + else: + return items + +def get_all_items(doctype, filters, items, start=0, limit=100): + """return all items""" + + x = frappe.get_list(doctype, fields=["name", "modified"], filters=filters, limit_start=start, limit_page_length=limit) + for val in x: + data = frappe.db.sql('''select item_code from `tabMaterial Request Item` where item_code = %s''', (val.name), as_list=1) + requests = destructure_tuple_of_tuples(data) + data = frappe.db.sql('''select price_list_rate from `tabItem Price` where item_code = %s''', (val.name), as_list=1) + avg_price = get_avg(destructure_tuple_of_tuples(data)) + data = frappe.db.sql('''select item_code from `tabPurchase Invoice Item` where item_code = %s''', (val.name), as_list=1) + purchases = destructure_tuple_of_tuples(data) + + items.append({"title": val.name, + "total_request":len(requests), + "total_purchase": len(purchases), "href":"#Form/Item/" + val.name, + "avg_price": get_formatted_value(avg_price), + "modified": val.modified}) + if len(x) > 99: + return get_all_items(doctype, filters, items, start=start) + else: + return items + +def get_all_suppliers(doctype, filters, items, start=0, limit=100): + """return all suppliers""" + + x = frappe.get_list(doctype, fields=["name", "modified"], filters=filters, limit_start=start, limit_page_length=limit) + + for val in x: + info = get_dashboard_info(doctype, val.name) + items.append({"title": val.name, + "annual_billing": get_formatted_value(info["billing_this_year"]), + "total_unpaid": get_formatted_value(abs(info["total_unpaid"])), + "href":"#Form/Supplier/" + val.name, + "modified": val.modified}) + + if len(x) > 99: + return get_all_suppliers(doctype, filters, items, start=start) + else: + return items + +def get_all_sales_partner(doctype, filters, items, start=0, limit=100): + """return all sales partner""" + + x = frappe.get_list(doctype, fields=["name", "commission_rate", "modified"], filters=filters, limit_start=start, limit_page_length=limit) + for val in x: + y = frappe.db.sql('''select target_qty, target_amount from `tabTarget Detail` where parent = %s''', (val.name), as_dict=1) + target_qty = sum([f["target_qty"] for f in y]) + target_amount = sum([f["target_amount"] for f in y]) + items.append({"title": val.name, + "commission_rate": get_formatted_value(val.commission_rate, False), + "target_qty": target_qty, + "target_amount": get_formatted_value(target_amount), + "href":"#Form/Sales Partner/" + val.name, + "modified": val.modified}) + if len(x) > 99: + return get_all_sales_partner(doctype, filters, items, start=start) + else: + return items \ No newline at end of file diff --git a/erpnext/utilities/page/leaderboard/leaderboard_main_head.html b/erpnext/utilities/page/leaderboard/leaderboard_main_head.html new file mode 100644 index 00000000000..257d4ed3ae9 --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard_main_head.html @@ -0,0 +1,8 @@ +
+ + {{col}} +
\ No newline at end of file diff --git a/erpnext/utilities/page/leaderboard/leaderboard_row_head.html b/erpnext/utilities/page/leaderboard/leaderboard_row_head.html new file mode 100644 index 00000000000..5a4e1dd22e7 --- /dev/null +++ b/erpnext/utilities/page/leaderboard/leaderboard_row_head.html @@ -0,0 +1,3 @@ +
+ {{ main }} +
\ No newline at end of file diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index 7657188bb00..0e3a4f95251 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -19,7 +19,7 @@ class TransactionBase(StatusUpdater): def validate_posting_time(self): # set Edit Posting Date and Time to 1 while data import - if frappe.flags.in_import: + if frappe.flags.in_import and self.posting_date: self.set_posting_time = 1 if not getattr(self, 'set_posting_time', None): @@ -149,5 +149,5 @@ def validate_uom_is_integer(doc, uom_field, qty_fields, child_dt=None): for f in qty_fields: qty = d.get(f) if qty: - if abs(int(qty) - float(qty)) > 0.0000001: + if abs(cint(qty) - flt(qty)) > 0.0000001: frappe.throw(_("Quantity ({0}) cannot be a fraction in row {1}").format(qty, d.idx), UOMMustBeIntegerError)