diff --git a/.travis.yml b/.travis.yml index 0b3b49feed..beab4e119a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,8 @@ services: - mysql install: + - pip install flake8==3.3.0 + - flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics - sudo rm /etc/apt/sources.list.d/docker.list - sudo apt-get purge -y mysql-common mysql-server mysql-client - nvm install v7.10.0 diff --git a/README.md b/README.md index 1fae1ce2ea..74ea7fc8a5 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,9 @@ Includes: Accounting, Inventory, Manufacturing, CRM, Sales, Purchase, Project Management, HRMS. Requires MariaDB. -ERPNext is built on the [Frappe](https://github.com/frappe/frappe) Framework, a full-stack web app framework in Python & JavaScript. +ERPNext is built on the [Frappé](https://github.com/frappe/frappe) Framework, a full-stack web app framework in Python & JavaScript. -- [User Guide](https://frappe.github.io/erpnext/) -- [Getting Help](http://erpnext.org/getting-help.html) +- [User Guide](https://erpnext.org/docs/user) - [Discussion Forum](https://discuss.erpnext.com/) --- @@ -34,7 +33,7 @@ System and user credentials are listed on the download page. GNU/General Public License (see LICENSE.txt) -The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Frappe Technologies Pvt Ltd (Frappe) and Contributors. +The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Frappé Technologies Pvt Ltd (Frappé) and Contributors. --- @@ -49,19 +48,19 @@ The ERPNext code is licensed as GNU General Public License (v3) and the Document ## Logo and Trademark -The brand name ERPNext and the logo are trademarks of Frappe Technologies Pvt. Ltd. +The brand name ERPNext and the logo are trademarks of Frappé Technologies Pvt. Ltd. ### Introduction -Frappe Technologies Pvt. Ltd. (Frappe) owns and oversees the trademarks for the ERPNext name and logos. We have developed this trademark usage policy with the following goals in mind: +Frappé Technologies Pvt. Ltd. (Frappé) owns and oversees the trademarks for the ERPNext name and logos. We have developed this trademark usage policy with the following goals in mind: - We’d like to make it easy for anyone to use the ERPNext name or logo for community-oriented efforts that help spread and improve ERPNext. - We’d like to make it clear how ERPNext-related businesses and projects can (and cannot) use the ERPNext name and logo. - We’d like to make it hard for anyone to use the ERPNext name and logo to unfairly profit from, trick or confuse people who are looking for official ERPNext resources. -### Frappe Trademark Usage Policy +### Frappé Trademark Usage Policy -Permission from Frappe is required to use the ERPNext name or logo as part of any project, product, service, domain or company name. +Permission from Frappé is required to use the ERPNext name or logo as part of any project, product, service, domain or company name. We will grant permission to use the ERPNext name and logo for projects that meet the following criteria: @@ -72,7 +71,7 @@ Your project neither promotes nor is associated with entities that currently fai Use of the ERPNext name and logo is additionally allowed in the following situations: -All other ERPNext-related businesses or projects can use the ERPNext name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by ERPNext or Frappe Technologies or the ERPNext open source project. For example, a consulting company can describe its business as “123 Web Services, offering ERPNext consulting for small businesses,” but cannot call its business “The ERPNext Consulting Company.” +All other ERPNext-related businesses or projects can use the ERPNext name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by ERPNext or Frappé Technologies or the ERPNext open source project. For example, a consulting company can describe its business as “123 Web Services, offering ERPNext consulting for small businesses,” but cannot call its business “The ERPNext Consulting Company.” Similarly, it’s OK to use the ERPNext logo as part of a page that describes your products or services, but it is not OK to use it as part of your company or product logo or branding itself. Under no circumstances is it permitted to use ERPNext as part of a top-level domain name. @@ -80,6 +79,6 @@ We do not allow the use of the trademark in advertising, including AdSense/AdWor Please note that it is not the goal of this policy to limit commercial activity around ERPNext. We encourage ERPNext-based businesses, and we would love to see hundreds of them. -When in doubt about your use of the ERPNext name or logo, please contact Frappe Technologies for clarification. +When in doubt about your use of the ERPNext name or logo, please contact Frappé Technologies for clarification. (inspired by WordPress) diff --git a/attributions.md b/attributions.md index 9cd6eb8f8f..21a44fb253 100644 --- a/attributions.md +++ b/attributions.md @@ -1,6 +1,6 @@ ## ERPNext includes these public works -For Frappe Framework, please see attributions.md at https://github.com/frappe/frappe/ +For Frappé Framework, please see attributions.md at https://github.com/frappe/frappe/ #### Images diff --git a/erpnext/__init__.py b/erpnext/__init__.py index d7030e8636..93f4961000 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -4,7 +4,7 @@ import inspect import frappe from erpnext.hooks import regional_overrides -__version__ = '8.7.3' +__version__ = '8.8.0' def get_default_company(user=None): '''Get default company for user''' diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/import_from_openerp.py b/erpnext/accounts/doctype/account/chart_of_accounts/import_from_openerp.py index 9893a5b9e0..cb95bd17ae 100644 --- a/erpnext/accounts/doctype/account/chart_of_accounts/import_from_openerp.py +++ b/erpnext/accounts/doctype/account/chart_of_accounts/import_from_openerp.py @@ -84,7 +84,7 @@ def get_csv_contents(files_path): try: csv_content.setdefault(file_type, [])\ .append(read_csv_content(csvfile.read())) - except Exception, e: + except Exception as e: continue return csv_content diff --git a/erpnext/accounts/doctype/account/test_make_tax_account.js b/erpnext/accounts/doctype/account/test_make_tax_account.js new file mode 100644 index 0000000000..a0e09a13ce --- /dev/null +++ b/erpnext/accounts/doctype/account/test_make_tax_account.js @@ -0,0 +1,46 @@ +QUnit.module('accounts'); +QUnit.test("test account", assert => { + assert.expect(3); + let done = assert.async(); + frappe.run_serially([ + () => frappe.set_route('Tree', 'Account'), + () => frappe.click_button('Expand All'), + () => frappe.click_link('Duties and Taxes - '+ frappe.get_abbr(frappe.defaults.get_default("Company"))), + () => { + if($('a:contains("CGST"):visible').length == 0){ + return frappe.map_tax.make('CGST', 9); + } + }, + () => { + if($('a:contains("SGST"):visible').length == 0){ + return frappe.map_tax.make('SGST', 9); + } + }, + () => { + if($('a:contains("IGST"):visible').length == 0){ + return frappe.map_tax.make('IGST', 18); + } + }, + () => { + assert.ok($('a:contains("CGST"):visible').length!=0, "CGST Checked"); + assert.ok($('a:contains("SGST"):visible').length!=0, "SGST Checked"); + assert.ok($('a:contains("IGST"):visible').length!=0, "IGST Checked"); + }, + () => done() + ]); +}); + + +frappe.map_tax = { + make:function(text,rate){ + return frappe.run_serially([ + () => frappe.click_button('Add Child'), + () => frappe.timeout(0.2), + () => cur_dialog.set_value('account_name',text), + () => cur_dialog.set_value('account_type','Tax'), + () => cur_dialog.set_value('tax_rate',rate), + () => cur_dialog.set_value('account_currency','INR'), + () => frappe.click_button('Create New'), + ]); + } +}; diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index eb0f474e08..05986a0808 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -28,7 +28,7 @@ frappe.ui.form.on('Payment Entry', { frm.set_query("party_type", function() { return{ "filters": { - "name": ["in",["Customer","Supplier"]], + "name": ["in",["Customer","Supplier", "Employee"]], } } }); @@ -70,6 +70,8 @@ frappe.ui.form.on('Payment Entry', { var doctypes = ["Sales Order", "Sales Invoice", "Journal Entry"]; } else if (frm.doc.party_type=="Supplier") { var doctypes = ["Purchase Order", "Purchase Invoice", "Journal Entry"]; + } else if (frm.doc.party_type=="Employee") { + var doctypes = ["Expense Claim", "Journal Entry"]; } else { var doctypes = ["Journal Entry"]; } @@ -82,12 +84,18 @@ frappe.ui.form.on('Payment Entry', { frm.set_query("reference_name", "references", function(doc, cdt, cdn) { child = locals[cdt][cdn]; filters = {"docstatus": 1, "company": doc.company}; - party_type_doctypes = ['Sales Invoice', 'Sales Order', 'Purchase Invoice', 'Purchase Order']; + party_type_doctypes = ['Sales Invoice', 'Sales Order', 'Purchase Invoice', + 'Purchase Order', 'Expense Claim']; if (in_list(party_type_doctypes, child.reference_doctype)) { filters[doc.party_type.toLowerCase()] = doc.party; } + if(child.reference_doctype == "Expense Claim") { + filters["status"] = "Approved"; + filters["is_paid"] = 0; + } + return { filters: filters }; @@ -200,9 +208,15 @@ frappe.ui.form.on('Payment Entry', { }); } else { if(!frm.doc.party) - frm.set_value("party_type", frm.doc.payment_type=="Receive" ? "Customer" : "Supplier"); + { + if (frm.doc.payment_type=="Receive"){ + frm.set_value("party_type", "Customer"); + } + } else + { frm.events.party(frm); + } if(frm.doc.mode_of_payment) frm.events.mode_of_payment(frm); @@ -339,7 +353,8 @@ frappe.ui.form.on('Payment Entry', { method: "erpnext.setup.utils.get_exchange_rate", args: { from_currency: frm.doc.paid_from_account_currency, - to_currency: company_currency + to_currency: company_currency, + transaction_date: frm.doc.posting_date }, callback: function(r, rt) { frm.set_value("source_exchange_rate", r.message); @@ -486,7 +501,7 @@ frappe.ui.form.on('Payment Entry', { c.reference_name = d.voucher_no; c.total_amount = d.invoice_amount; c.outstanding_amount = d.outstanding_amount; - if(!in_list(["Sales Order", "Purchase Order"], d.voucher_type)) { + if(!in_list(["Sales Order", "Purchase Order", "Expense Claim"], d.voucher_type)) { if(flt(d.outstanding_amount) > 0) total_positive_outstanding += flt(d.outstanding_amount); else @@ -501,14 +516,15 @@ frappe.ui.form.on('Payment Entry', { } else { c.exchange_rate = 1; } - if (in_list(['Sales Invoice', 'Purchase Invoice'], d.reference_doctype)){ + if (in_list(['Sales Invoice', 'Purchase Invoice', "Expense Claim"], d.reference_doctype)){ c.due_date = d.due_date; } }); if( (frm.doc.payment_type=="Receive" && frm.doc.party_type=="Customer") || - (frm.doc.payment_type=="Pay" && frm.doc.party_type=="Supplier") + (frm.doc.payment_type=="Pay" && frm.doc.party_type=="Supplier") || + (frm.doc.payment_type=="Pay" && frm.doc.party_type=="Employee") ) { if(total_positive_outstanding > total_negative_outstanding) frm.set_value("paid_amount", @@ -553,7 +569,8 @@ frappe.ui.form.on('Payment Entry', { var allocated_negative_outstanding = 0; if((frm.doc.payment_type=="Receive" && frm.doc.party_type=="Customer") || - (frm.doc.payment_type=="Pay" && frm.doc.party_type=="Supplier")) { + (frm.doc.payment_type=="Pay" && frm.doc.party_type=="Supplier") || + (frm.doc.payment_type=="Pay" && frm.doc.party_type=="Employee")) { if(total_positive_outstanding_including_order > paid_amount) { var remaining_outstanding = total_positive_outstanding_including_order - paid_amount; allocated_negative_outstanding = total_negative_outstanding < remaining_outstanding ? @@ -694,6 +711,14 @@ frappe.ui.form.on('Payment Entry', { frappe.msgprint(__("Row #{0}: Reference Document Type must be one of Purchase Order, Purchase Invoice or Journal Entry", [row.idx])); return false; } + + if(frm.doc.party_type=="Employee" && + !in_list(["Expense Claim", "Journal Entry"], row.reference_doctype) + ) { + frappe.model.set_value(row.doctype, row.name, "against_voucher_type", null); + frappe.msgprint(__("Row #{0}: Reference Document Type must be one of Expense Claim or Journal Entry", [row.idx])); + return false; + } } if (row) { diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index e9471b7eff..7bb9a52ee6 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -12,27 +12,27 @@ from erpnext.accounts.doctype.journal_entry.journal_entry \ import get_average_exchange_rate, get_default_bank_cash_account from erpnext.setup.utils import get_exchange_rate from erpnext.accounts.general_ledger import make_gl_entries - +from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount from erpnext.controllers.accounts_controller import AccountsController class InvalidPaymentEntry(ValidationError): pass class PaymentEntry(AccountsController): - def setup_party_account_field(self): + def setup_party_account_field(self): self.party_account_field = None self.party_account = None self.party_account_currency = None - + if self.payment_type == "Receive": self.party_account_field = "paid_from" self.party_account = self.paid_from self.party_account_currency = self.paid_from_account_currency - + elif self.payment_type == "Pay": self.party_account_field = "paid_to" self.party_account = self.paid_to self.party_account_currency = self.paid_to_account_currency - + def validate(self): self.setup_party_account_field() self.set_missing_values() @@ -50,18 +50,20 @@ class PaymentEntry(AccountsController): self.set_remarks() self.validate_duplicate_entry() self.validate_allocated_amount() - + def on_submit(self): self.setup_party_account_field() if self.difference_amount: frappe.throw(_("Difference Amount must be zero")) self.make_gl_entries() self.update_advance_paid() - + self.update_expense_claim() + def on_cancel(self): self.setup_party_account_field() self.make_gl_entries(cancel=1) self.update_advance_paid() + self.update_expense_claim() self.delink_advance_entry_references() def validate_duplicate_entry(self): @@ -70,8 +72,8 @@ class PaymentEntry(AccountsController): if (d.reference_doctype, d.reference_name) in reference_names: frappe.throw(_("Row #{0}: Duplicate entry in References {1} {2}").format(d.idx, d.reference_doctype, d.reference_name)) reference_names.append((d.reference_doctype, d.reference_name)) - - + + def validate_allocated_amount(self): for d in self.get("references"): if (flt(d.allocated_amount))> 0: @@ -87,111 +89,113 @@ class PaymentEntry(AccountsController): def set_missing_values(self): if self.payment_type == "Internal Transfer": - for field in ("party", "party_balance", "total_allocated_amount", + for field in ("party", "party_balance", "total_allocated_amount", "base_total_allocated_amount", "unallocated_amount"): self.set(field, None) self.references = [] else: if not self.party_type: frappe.throw(_("Party Type is mandatory")) - + if not self.party: frappe.throw(_("Party is mandatory")) - - self.party_name = frappe.db.get_value(self.party_type, self.party, + + self.party_name = frappe.db.get_value(self.party_type, self.party, self.party_type.lower() + "_name") - + if self.party: if not self.party_balance: self.party_balance = get_balance_on(party_type=self.party_type, party=self.party, date=self.posting_date, company=self.company) - + if not self.party_account: party_account = get_party_account(self.party_type, self.party, self.company) self.set(self.party_account_field, party_account) self.party_account = party_account - + if self.paid_from and not (self.paid_from_account_currency or self.paid_from_account_balance): acc = get_account_details(self.paid_from, self.posting_date) self.paid_from_account_currency = acc.account_currency self.paid_from_account_balance = acc.account_balance - + if self.paid_to and not (self.paid_to_account_currency or self.paid_to_account_balance): acc = get_account_details(self.paid_to, self.posting_date) self.paid_to_account_currency = acc.account_currency self.paid_to_account_balance = acc.account_balance - + self.party_account_currency = self.paid_from_account_currency \ if self.payment_type=="Receive" else self.paid_to_account_currency - + self.set_missing_ref_details() - - + + def set_missing_ref_details(self): for d in self.get("references"): if d.allocated_amount: - ref_details = get_reference_details(d.reference_doctype, + ref_details = get_reference_details(d.reference_doctype, d.reference_name, self.party_account_currency) - + for field, value in ref_details.items(): if not d.get(field): d.set(field, value) - + def validate_payment_type(self): if self.payment_type not in ("Receive", "Pay", "Internal Transfer"): frappe.throw(_("Payment Type must be one of Receive, Pay and Internal Transfer")) - + def validate_party_details(self): if self.party: if not frappe.db.exists(self.party_type, self.party): frappe.throw(_("Invalid {0}: {1}").format(self.party_type, self.party)) - + if self.party_account: party_account_type = "Receivable" if self.party_type=="Customer" else "Payable" self.validate_account_type(self.party_account, [party_account_type]) - + def validate_bank_accounts(self): if self.payment_type in ("Pay", "Internal Transfer"): self.validate_account_type(self.paid_from, ["Bank", "Cash"]) - + if self.payment_type in ("Receive", "Internal Transfer"): self.validate_account_type(self.paid_to, ["Bank", "Cash"]) - + def validate_account_type(self, account, account_types): account_type = frappe.db.get_value("Account", account, "account_type") if account_type not in account_types: frappe.throw(_("Account Type for {0} must be {1}").format(account, comma_or(account_types))) - + def set_exchange_rate(self): if self.paid_from and not self.source_exchange_rate: if self.paid_from_account_currency == self.company_currency: self.source_exchange_rate = 1 else: - self.source_exchange_rate = get_exchange_rate(self.paid_from_account_currency, + self.source_exchange_rate = get_exchange_rate(self.paid_from_account_currency, self.company_currency, self.posting_date) - + if self.paid_to and not self.target_exchange_rate: - self.target_exchange_rate = get_exchange_rate(self.paid_to_account_currency, + self.target_exchange_rate = get_exchange_rate(self.paid_to_account_currency, self.company_currency, self.posting_date) - + def validate_mandatory(self): for field in ("paid_amount", "received_amount", "source_exchange_rate", "target_exchange_rate"): if not self.get(field): frappe.throw(_("{0} is mandatory").format(self.meta.get_label(field))) - + def validate_reference_documents(self): if self.party_type == "Customer": valid_reference_doctypes = ("Sales Order", "Sales Invoice", "Journal Entry") - else: + elif self.party_type == "Supplier": valid_reference_doctypes = ("Purchase Order", "Purchase Invoice", "Journal Entry") - + elif self.party_type == "Employee": + valid_reference_doctypes = ("Expense Claim", "Journal Entry") + for d in self.get("references"): if not d.allocated_amount: continue if d.reference_doctype not in valid_reference_doctypes: frappe.throw(_("Reference Doctype must be one of {0}") .format(comma_or(valid_reference_doctypes))) - + elif d.reference_name: if not frappe.db.exists(d.reference_doctype, d.reference_name): frappe.throw(_("{0} {1} does not exist").format(d.reference_doctype, d.reference_name)) @@ -204,21 +208,26 @@ class PaymentEntry(AccountsController): .format(d.reference_doctype, d.reference_name, self.party_type, self.party)) else: self.validate_journal_entry() - - if d.reference_doctype in ("Sales Invoice", "Purchase Invoice"): - ref_party_account = ref_doc.debit_to \ - if self.party_type=="Customer" else ref_doc.credit_to + + if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim"): + if self.party_type=="Customer": + ref_party_account = ref_doc.debit_to + elif self.party_type=="Supplier": + ref_party_account = ref_doc.credit_to + elif self.party_type=="Employee": + ref_party_account = ref_doc.payable_account + if ref_party_account != self.party_account: - frappe.throw(_("{0} {1} does not associated with Party Account {2}") - .format(d.reference_doctype, d.reference_name, self.party_account)) - + frappe.throw(_("{0} {1} is associated with {2}, but Party Account is {3}") + .format(d.reference_doctype, d.reference_name, ref_party_account, self.party_account)) + if ref_doc.docstatus != 1: frappe.throw(_("{0} {1} must be submitted") .format(d.reference_doctype, d.reference_name)) - + def validate_journal_entry(self): for d in self.get("references"): - if d.allocated_amount and d.reference_doctype == "Journal Entry": + if d.allocated_amount and d.reference_doctype == "Journal Entry": je_accounts = frappe.db.sql("""select debit, credit from `tabJournal Entry Account` where account = %s and party=%s and docstatus = 1 and parent = %s and (reference_type is null or reference_type in ("", "Sales Order", "Purchase Order")) @@ -236,7 +245,7 @@ class PaymentEntry(AccountsController): if not valid: frappe.throw(_("Against Journal Entry {0} does not have any unmatched {1} entry") .format(d.reference_name, dr_or_cr)) - + def set_amounts(self): self.set_amounts_in_company_currency() self.set_total_allocated_amount() @@ -246,111 +255,111 @@ class PaymentEntry(AccountsController): def set_amounts_in_company_currency(self): self.base_paid_amount, self.base_received_amount, self.difference_amount = 0, 0, 0 if self.paid_amount: - self.base_paid_amount = flt(flt(self.paid_amount) * flt(self.source_exchange_rate), + self.base_paid_amount = flt(flt(self.paid_amount) * flt(self.source_exchange_rate), self.precision("base_paid_amount")) - + if self.received_amount: - self.base_received_amount = flt(flt(self.received_amount) * flt(self.target_exchange_rate), + self.base_received_amount = flt(flt(self.received_amount) * flt(self.target_exchange_rate), self.precision("base_received_amount")) - + def set_total_allocated_amount(self): if self.payment_type == "Internal Transfer": return - + total_allocated_amount, base_total_allocated_amount = 0, 0 for d in self.get("references"): - if d.allocated_amount: + if d.allocated_amount: total_allocated_amount += flt(d.allocated_amount) - base_total_allocated_amount += flt(flt(d.allocated_amount) * flt(d.exchange_rate), + base_total_allocated_amount += flt(flt(d.allocated_amount) * flt(d.exchange_rate), self.precision("base_paid_amount")) - + self.total_allocated_amount = abs(total_allocated_amount) self.base_total_allocated_amount = abs(base_total_allocated_amount) - + def set_unallocated_amount(self): self.unallocated_amount = 0; if self.party: party_amount = self.paid_amount if self.payment_type=="Receive" else self.received_amount - + total_deductions = sum([flt(d.amount) for d in self.get("deductions")]) - + if self.total_allocated_amount < party_amount: if self.payment_type == "Receive": self.unallocated_amount = party_amount - (self.total_allocated_amount - total_deductions) else: self.unallocated_amount = party_amount - (self.total_allocated_amount + total_deductions) - + def set_difference_amount(self): - base_unallocated_amount = flt(self.unallocated_amount) * (flt(self.source_exchange_rate) + base_unallocated_amount = flt(self.unallocated_amount) * (flt(self.source_exchange_rate) if self.payment_type=="Receive" else flt(self.target_exchange_rate)) - + base_party_amount = flt(self.base_total_allocated_amount) + flt(base_unallocated_amount) - + if self.payment_type == "Receive": self.difference_amount = base_party_amount - self.base_received_amount elif self.payment_type == "Pay": self.difference_amount = self.base_paid_amount - base_party_amount else: self.difference_amount = self.base_paid_amount - flt(self.base_received_amount) - + for d in self.get("deductions"): if d.amount: self.difference_amount -= flt(d.amount) - + self.difference_amount = flt(self.difference_amount, self.precision("difference_amount")) - + def clear_unallocated_reference_document_rows(self): self.set("references", self.get("references", {"allocated_amount": ["not in", [0, None, ""]]})) - frappe.db.sql("""delete from `tabPayment Entry Reference` + frappe.db.sql("""delete from `tabPayment Entry Reference` where parent = %s and allocated_amount = 0""", self.name) - + def validate_payment_against_negative_invoice(self): - if ((self.payment_type=="Pay" and self.party_type=="Customer") + if ((self.payment_type=="Pay" and self.party_type=="Customer") or (self.payment_type=="Receive" and self.party_type=="Supplier")): - - total_negative_outstanding = sum([abs(flt(d.outstanding_amount)) + + total_negative_outstanding = sum([abs(flt(d.outstanding_amount)) for d in self.get("references") if flt(d.outstanding_amount) < 0]) - + party_amount = self.paid_amount if self.payment_type=="Receive" else self.received_amount if not total_negative_outstanding: frappe.throw(_("Cannot {0} {1} {2} without any negative outstanding invoice") - .format(self.payment_type, ("to" if self.party_type=="Customer" else "from"), + .format(self.payment_type, ("to" if self.party_type=="Customer" else "from"), self.party_type), InvalidPaymentEntry) - + elif party_amount > total_negative_outstanding: frappe.throw(_("Paid Amount cannot be greater than total negative outstanding amount {0}") .format(total_negative_outstanding), InvalidPaymentEntry) - + def set_title(self): if self.payment_type in ("Receive", "Pay"): self.title = self.party else: self.title = self.paid_from + " - " + self.paid_to - + def validate_transaction_reference(self): bank_account = self.paid_to if self.payment_type == "Receive" else self.paid_from bank_account_type = frappe.db.get_value("Account", bank_account, "account_type") - + if bank_account_type == "Bank": if not self.reference_no or not self.reference_date: frappe.throw(_("Reference No and Reference Date is mandatory for Bank transaction")) - + def set_remarks(self): if self.remarks: return - + if self.payment_type=="Internal Transfer": remarks = [_("Amount {0} {1} transferred from {2} to {3}") .format(self.paid_from_account_currency, self.paid_amount, self.paid_from, self.paid_to)] else: - + remarks = [_("Amount {0} {1} {2} {3}").format( self.party_account_currency, self.paid_amount if self.payment_type=="Receive" else self.received_amount, _("received from") if self.payment_type=="Receive" else _("to"), self.party )] - + if self.reference_no: remarks.append(_("Transaction reference no {0} dated {1}") .format(self.reference_no, self.reference_date)) @@ -358,35 +367,35 @@ class PaymentEntry(AccountsController): if self.payment_type in ["Receive", "Pay"]: for d in self.get("references"): if d.allocated_amount: - remarks.append(_("Amount {0} {1} against {2} {3}").format(self.party_account_currency, + remarks.append(_("Amount {0} {1} against {2} {3}").format(self.party_account_currency, d.allocated_amount, d.reference_doctype, d.reference_name)) - + for d in self.get("deductions"): if d.amount: remarks.append(_("Amount {0} {1} deducted against {2}") .format(self.company_currency, d.amount, d.account)) self.set("remarks", "\n".join(remarks)) - + def make_gl_entries(self, cancel=0, adv_adj=0): if self.payment_type in ("Receive", "Pay") and not self.get("party_account_field"): self.setup_party_account_field() - + gl_entries = [] self.add_party_gl_entries(gl_entries) self.add_bank_gl_entries(gl_entries) self.add_deductions_gl_entries(gl_entries) make_gl_entries(gl_entries, cancel=cancel, adv_adj=adv_adj) - + def add_party_gl_entries(self, gl_entries): if self.party_account: if self.payment_type=="Receive": against_account = self.paid_to else: against_account = self.paid_from - - + + party_gl_dict = self.get_gl_dict({ "account": self.party_account, "party_type": self.party_type, @@ -394,39 +403,39 @@ class PaymentEntry(AccountsController): "against": against_account, "account_currency": self.party_account_currency }) - + dr_or_cr = "credit" if self.party_type == "Customer" else "debit" - + for d in self.get("references"): gle = party_gl_dict.copy() gle.update({ "against_voucher_type": d.reference_doctype, "against_voucher": d.reference_name }) - - allocated_amount_in_company_currency = flt(flt(d.allocated_amount) * flt(d.exchange_rate), - self.precision("paid_amount")) - + + allocated_amount_in_company_currency = flt(flt(d.allocated_amount) * flt(d.exchange_rate), + self.precision("paid_amount")) + gle.update({ dr_or_cr + "_in_account_currency": d.allocated_amount, dr_or_cr: allocated_amount_in_company_currency }) - + gl_entries.append(gle) - + if self.unallocated_amount: base_unallocated_amount = base_unallocated_amount = self.unallocated_amount * \ (self.source_exchange_rate if self.payment_type=="Receive" else self.target_exchange_rate) - + gle = party_gl_dict.copy() - + gle.update({ dr_or_cr + "_in_account_currency": self.unallocated_amount, dr_or_cr: base_unallocated_amount }) gl_entries.append(gle) - + def add_bank_gl_entries(self, gl_entries): if self.payment_type in ("Pay", "Internal Transfer"): gl_entries.append( @@ -448,14 +457,14 @@ class PaymentEntry(AccountsController): "debit": self.base_received_amount }) ) - + def add_deductions_gl_entries(self, gl_entries): for d in self.get("deductions"): if d.amount: account_currency = get_account_currency(d.account) if account_currency != self.company_currency: frappe.throw(_("Currency for {0} must be {1}").format(d.account, self.company_currency)) - + gl_entries.append( self.get_gl_dict({ "account": d.account, @@ -466,34 +475,41 @@ class PaymentEntry(AccountsController): "cost_center": d.cost_center }) ) - + def update_advance_paid(self): if self.payment_type in ("Receive", "Pay") and self.party: for d in self.get("references"): if d.allocated_amount and d.reference_doctype in ("Sales Order", "Purchase Order"): frappe.get_doc(d.reference_doctype, d.reference_name).set_total_advance_paid() + def update_expense_claim(self): + if self.payment_type in ("Pay") and self.party: + for d in self.get("references"): + if d.reference_doctype=="Expense Claim" and d.reference_name: + doc = frappe.get_doc("Expense Claim", d.reference_name) + update_reimbursed_amount(doc) + @frappe.whitelist() def get_outstanding_reference_documents(args): args = json.loads(args) party_account_currency = get_account_currency(args.get("party_account")) company_currency = frappe.db.get_value("Company", args.get("company"), "default_currency") - + # Get negative outstanding sales /purchase invoices total_field = "base_grand_total" if party_account_currency == company_currency else "grand_total" - - negative_outstanding_invoices = get_negative_outstanding_invoices(args.get("party_type"), + + negative_outstanding_invoices = get_negative_outstanding_invoices(args.get("party_type"), args.get("party"), args.get("party_account"), total_field) # Get positive outstanding sales /purchase invoices - outstanding_invoices = get_outstanding_invoices(args.get("party_type"), args.get("party"), + outstanding_invoices = get_outstanding_invoices(args.get("party_type"), args.get("party"), args.get("party_account")) - + for d in outstanding_invoices: d["exchange_rate"] = 1 if party_account_currency != company_currency: - if d.voucher_type in ("Sales Invoice", "Purchase Invoice"): + if d.voucher_type in ("Sales Invoice", "Purchase Invoice", "Expense Claim"): d["exchange_rate"] = frappe.db.get_value(d.voucher_type, d.voucher_no, "conversion_rate") elif d.voucher_type == "Journal Entry": d["exchange_rate"] = get_exchange_rate( @@ -501,79 +517,89 @@ def get_outstanding_reference_documents(args): ) # Get all SO / PO which are not fully billed or aginst which full advance not paid - orders_to_be_billed = get_orders_to_be_billed(args.get("posting_date"),args.get("party_type"), args.get("party"), + orders_to_be_billed = get_orders_to_be_billed(args.get("posting_date"),args.get("party_type"), args.get("party"), party_account_currency, company_currency) - + return negative_outstanding_invoices + outstanding_invoices + orders_to_be_billed - + def get_orders_to_be_billed(posting_date, party_type, party, party_account_currency, company_currency): - voucher_type = 'Sales Order' if party_type == "Customer" else 'Purchase Order' + if party_type == "Customer": + voucher_type = 'Sales Order' + elif party_type == "Supplier": + voucher_type = 'Purchase Order' + elif party_type == "Employee": + voucher_type = None - ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total" + orders = [] + if voucher_type: + ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total" - orders = frappe.db.sql(""" - select - name as voucher_no, - {ref_field} as invoice_amount, - ({ref_field} - advance_paid) as outstanding_amount, - transaction_date as posting_date - from - `tab{voucher_type}` - where - {party_type} = %s - and docstatus = 1 - and ifnull(status, "") != "Closed" - and {ref_field} > advance_paid - and abs(100 - per_billed) > 0.01 - order by - transaction_date, name - """.format(**{ - "ref_field": ref_field, - "voucher_type": voucher_type, - "party_type": scrub(party_type) - }), party, as_dict = True) + orders = frappe.db.sql(""" + select + name as voucher_no, + {ref_field} as invoice_amount, + ({ref_field} - advance_paid) as outstanding_amount, + transaction_date as posting_date + from + `tab{voucher_type}` + where + {party_type} = %s + and docstatus = 1 + and ifnull(status, "") != "Closed" + and {ref_field} > advance_paid + and abs(100 - per_billed) > 0.01 + order by + transaction_date, name + """.format(**{ + "ref_field": ref_field, + "voucher_type": voucher_type, + "party_type": scrub(party_type) + }), party, as_dict = True) order_list = [] for d in orders: d["voucher_type"] = voucher_type # This assumes that the exchange rate required is the one in the SO - d["exchange_rate"] = get_exchange_rate(party_account_currency, + d["exchange_rate"] = get_exchange_rate(party_account_currency, company_currency, posting_date) order_list.append(d) return order_list - + def get_negative_outstanding_invoices(party_type, party, party_account, total_field): - voucher_type = "Sales Invoice" if party_type == "Customer" else "Purchase Invoice" - return frappe.db.sql(""" - select - "{voucher_type}" as voucher_type, name as voucher_no, - {total_field} as invoice_amount, outstanding_amount, posting_date, - due_date, conversion_rate as exchange_rate - from - `tab{voucher_type}` - where - {party_type} = %s and {party_account} = %s and docstatus = 1 and outstanding_amount < 0 - order by - posting_date, name - """.format(**{ - "total_field": total_field, - "voucher_type": voucher_type, - "party_type": scrub(party_type), - "party_account": "debit_to" if party_type=="Customer" else "credit_to" - }), (party, party_account), as_dict = True) - + if party_type != "Employee": + voucher_type = "Sales Invoice" if party_type == "Customer" else "Purchase Invoice" + return frappe.db.sql(""" + select + "{voucher_type}" as voucher_type, name as voucher_no, + {total_field} as invoice_amount, outstanding_amount, posting_date, + due_date, conversion_rate as exchange_rate + from + `tab{voucher_type}` + where + {party_type} = %s and {party_account} = %s and docstatus = 1 and outstanding_amount < 0 + order by + posting_date, name + """.format(**{ + "total_field": total_field, + "voucher_type": voucher_type, + "party_type": scrub(party_type), + "party_account": "debit_to" if party_type=="Customer" else "credit_to" + }), (party, party_account), as_dict = True) + else: + return [] + @frappe.whitelist() def get_party_details(company, party_type, party, date): if not frappe.db.exists(party_type, party): frappe.throw(_("Invalid {0}: {1}").format(party_type, party)) - + party_account = get_party_account(party_type, party, company) - + account_currency = get_account_currency(party_account) account_balance = get_balance_on(party_account, date) party_balance = get_balance_on(party_type=party_type, party=party) - + return { "party_account": party_account, "party_account_currency": account_currency, @@ -581,7 +607,7 @@ def get_party_details(company, party_type, party, date): "account_balance": account_balance } -@frappe.whitelist() +@frappe.whitelist() def get_account_details(account, date): frappe.has_permission('Payment Entry', throw=True) return frappe._dict({ @@ -589,59 +615,67 @@ def get_account_details(account, date): "account_balance": get_balance_on(account, date), "account_type": frappe.db.get_value("Account", account, "account_type") }) - + @frappe.whitelist() def get_company_defaults(company): fields = ["write_off_account", "exchange_gain_loss_account", "cost_center"] ret = frappe.db.get_value("Company", company, fields, as_dict=1) - + for fieldname in fields: if not ret[fieldname]: frappe.throw(_("Please set default {0} in Company {1}") .format(frappe.get_meta("Company").get_label(fieldname), company)) - + return ret @frappe.whitelist() def get_reference_details(reference_doctype, reference_name, party_account_currency): total_amount = outstanding_amount = exchange_rate = None ref_doc = frappe.get_doc(reference_doctype, reference_name) - + if reference_doctype != "Journal Entry": if party_account_currency == ref_doc.company_currency: - total_amount = ref_doc.base_grand_total + if ref_doc.doctype == "Expense Claim": + total_amount = ref_doc.total_sanctioned_amount + else: + total_amount = ref_doc.base_grand_total exchange_rate = 1 else: total_amount = ref_doc.grand_total - - # Get the exchange rate from the original ref doc + + # Get the exchange rate from the original ref doc # or get it based on the posting date of the ref doc exchange_rate = ref_doc.get("conversion_rate") or \ get_exchange_rate(party_account_currency, ref_doc.company_currency, ref_doc.posting_date) - + outstanding_amount = ref_doc.get("outstanding_amount") \ - if reference_doctype in ("Sales Invoice", "Purchase Invoice") \ - else flt(total_amount) - flt(ref_doc.advance_paid) + if reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim") \ + else flt(total_amount) - flt(ref_doc.advance_paid) else: # Get the exchange rate based on the posting date of the ref doc - exchange_rate = get_exchange_rate(party_account_currency, + exchange_rate = get_exchange_rate(party_account_currency, ref_doc.company_currency, ref_doc.posting_date) - + return frappe._dict({ "due_date": ref_doc.get("due_date"), "total_amount": total_amount, "outstanding_amount": outstanding_amount, "exchange_rate": exchange_rate }) - + @frappe.whitelist() def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=None): doc = frappe.get_doc(dt, dn) - + if dt in ("Sales Order", "Purchase Order") and flt(doc.per_billed, 2) > 0: frappe.throw(_("Can only make payment against unbilled {0}").format(dt)) - - party_type = "Customer" if dt in ("Sales Invoice", "Sales Order") else "Supplier" + + if dt in ("Sales Invoice", "Sales Order"): + party_type = "Customer" + elif dt in ("Purchase Invoice", "Purchase Order"): + party_type = "Supplier" + elif dt in ("Expense Claim"): + party_type = "Employee" # party account if dt == "Sales Invoice": @@ -650,16 +684,16 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= party_account = doc.credit_to else: party_account = get_party_account(party_type, doc.get(party_type.lower()), doc.company) - + party_account_currency = doc.get("party_account_currency") or get_account_currency(party_account) - + # payment type if (dt == "Sales Order" or (dt=="Sales Invoice" and doc.outstanding_amount > 0)) \ or (dt=="Purchase Invoice" and doc.outstanding_amount < 0): payment_type = "Receive" else: payment_type = "Pay" - + # amounts grand_total = outstanding_amount = 0 if party_amount: @@ -667,15 +701,18 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= elif dt in ("Sales Invoice", "Purchase Invoice"): grand_total = doc.base_grand_total if party_account_currency == doc.company_currency else doc.grand_total outstanding_amount = doc.outstanding_amount + elif dt in ("Expense Claim"): + grand_total = doc.total_sanctioned_amount + outstanding_amount = doc.total_sanctioned_amount - doc.total_amount_reimbursed else: total_field = "base_grand_total" if party_account_currency == doc.company_currency else "grand_total" grand_total = flt(doc.get(total_field)) outstanding_amount = grand_total - flt(doc.advance_paid) # bank or cash - bank = get_default_bank_cash_account(doc.company, "Bank", mode_of_payment=doc.get("mode_of_payment"), + bank = get_default_bank_cash_account(doc.company, "Bank", mode_of_payment=doc.get("mode_of_payment"), account=bank_account) - + paid_amount = received_amount = 0 if party_account_currency == bank.account_currency: paid_amount = received_amount = abs(outstanding_amount) @@ -687,7 +724,7 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= received_amount = abs(outstanding_amount) if bank_amount: paid_amount = bank_amount - + pe = frappe.new_doc("Payment Entry") pe.payment_type = payment_type pe.company = doc.company @@ -704,7 +741,7 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= pe.received_amount = received_amount pe.allocate_payment_amount = 1 pe.letter_head = doc.get("letter_head") - + pe.append("references", { "reference_doctype": dt, "reference_name": dn, diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py index ccf114fa73..0316ccafe2 100644 --- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py @@ -10,6 +10,7 @@ from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_orde from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry, InvalidPaymentEntry from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice +from erpnext.hr.doctype.expense_claim.test_expense_claim import make_expense_claim test_dependencies = ["Item"] @@ -20,80 +21,102 @@ class TestPaymentEntry(unittest.TestCase): pe.paid_from = "Debtors - _TC" pe.insert() pe.submit() - + expected_gle = dict((d[0], d) for d in [ ["Debtors - _TC", 0, 1000, so.name], ["_Test Cash - _TC", 1000.0, 0, None] ]) - + self.validate_gl_entries(pe.name, expected_gle) - + so_advance_paid = frappe.db.get_value("Sales Order", so.name, "advance_paid") self.assertEqual(so_advance_paid, 1000) - + pe.cancel() - + self.assertFalse(self.get_gle(pe.name)) - + so_advance_paid = frappe.db.get_value("Sales Order", so.name, "advance_paid") self.assertEqual(so_advance_paid, 0) - + def test_payment_entry_against_si_usd_to_usd(self): si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC", currency="USD", conversion_rate=50) pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Bank USD - _TC") pe.reference_no = "1" pe.reference_date = "2016-01-01" - pe.target_exchange_rate = 50 + pe.target_exchange_rate = 50 pe.insert() pe.submit() - + expected_gle = dict((d[0], d) for d in [ ["_Test Receivable USD - _TC", 0, 5000, si.name], ["_Test Bank USD - _TC", 5000.0, 0, None] ]) - + self.validate_gl_entries(pe.name, expected_gle) - + outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount")) self.assertEqual(outstanding_amount, 0) - + pe.cancel() self.assertFalse(self.get_gle(pe.name)) - + outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount")) self.assertEqual(outstanding_amount, 100) - + def test_payment_entry_against_pi(self): pi = make_purchase_invoice(supplier="_Test Supplier USD", debit_to="_Test Payable USD - _TC", currency="USD", conversion_rate=50) pe = get_payment_entry("Purchase Invoice", pi.name, bank_account="_Test Bank USD - _TC") pe.reference_no = "1" pe.reference_date = "2016-01-01" - pe.source_exchange_rate = 50 + pe.source_exchange_rate = 50 pe.insert() pe.submit() - + expected_gle = dict((d[0], d) for d in [ ["_Test Payable USD - _TC", 12500, 0, pi.name], ["_Test Bank USD - _TC", 0, 12500, None] ]) - + self.validate_gl_entries(pe.name, expected_gle) - + outstanding_amount = flt(frappe.db.get_value("Sales Invoice", pi.name, "outstanding_amount")) self.assertEqual(outstanding_amount, 0) - + + def test_payment_entry_against_ec(self): + + payable = frappe.db.get_value('Company', "_Test Company", 'default_payable_account') + ec = make_expense_claim(payable, 300, 300, "_Test Company","Travel Expenses - _TC") + pe = get_payment_entry("Expense Claim", ec.name, bank_account="_Test Bank USD - _TC", bank_amount=300) + pe.reference_no = "1" + pe.reference_date = "2016-01-01" + pe.source_exchange_rate = 1 + pe.insert() + pe.submit() + + expected_gle = dict((d[0], d) for d in [ + [payable, 300, 0, ec.name], + ["_Test Bank USD - _TC", 0, 300, None] + ]) + + self.validate_gl_entries(pe.name, expected_gle) + + outstanding_amount = flt(frappe.db.get_value("Expense Claim", ec.name, "total_sanctioned_amount")) - \ + flt(frappe.db.get_value("Expense Claim", ec.name, "total_amount_reimbursed")) + self.assertEqual(outstanding_amount, 0) + def test_payment_entry_against_si_usd_to_inr(self): si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC", currency="USD", conversion_rate=50) - pe = get_payment_entry("Sales Invoice", si.name, party_amount=20, + pe = get_payment_entry("Sales Invoice", si.name, party_amount=20, bank_account="_Test Bank - _TC", bank_amount=900) pe.reference_no = "1" pe.reference_date = "2016-01-01" - + self.assertEqual(pe.difference_amount, 100) - + pe.append("deductions", { "account": "_Test Exchange Gain/Loss - _TC", "cost_center": "_Test Cost Center - _TC", @@ -101,15 +124,15 @@ class TestPaymentEntry(unittest.TestCase): }) pe.insert() pe.submit() - + expected_gle = dict((d[0], d) for d in [ ["_Test Receivable USD - _TC", 0, 1000, si.name], ["_Test Bank - _TC", 900, 0, None], ["_Test Exchange Gain/Loss - _TC", 100.0, 0, None], ]) - + self.validate_gl_entries(pe.name, expected_gle) - + outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount")) self.assertEqual(outstanding_amount, 80) @@ -140,7 +163,7 @@ class TestPaymentEntry(unittest.TestCase): pe.source_exchange_rate, 65.1, "{0} is not equal to {1}".format(pe.source_exchange_rate, 65.1) ) - + def test_internal_transfer_usd_to_inr(self): pe = frappe.new_doc("Payment Entry") pe.payment_type = "Internal Transfer" @@ -152,31 +175,31 @@ class TestPaymentEntry(unittest.TestCase): pe.received_amount = 4500 pe.reference_no = "2" pe.reference_date = nowdate() - + pe.setup_party_account_field() pe.set_missing_values() pe.set_exchange_rate() pe.set_amounts() - + self.assertEquals(pe.difference_amount, 500) - + pe.append("deductions", { "account": "_Test Exchange Gain/Loss - _TC", "cost_center": "_Test Cost Center - _TC", "amount": 500 }) - + pe.insert() pe.submit() - + expected_gle = dict((d[0], d) for d in [ ["_Test Bank USD - _TC", 0, 5000, None], ["_Test Bank - _TC", 4500, 0, None], ["_Test Exchange Gain/Loss - _TC", 500.0, 0, None], ]) - + self.validate_gl_entries(pe.name, expected_gle) - + def test_payment_against_negative_sales_invoice(self): pe1 = frappe.new_doc("Payment Entry") pe1.payment_type = "Pay" @@ -186,33 +209,33 @@ class TestPaymentEntry(unittest.TestCase): pe1.paid_from = "_Test Cash - _TC" pe1.paid_amount = 100 pe1.received_amount = 100 - + self.assertRaises(InvalidPaymentEntry, pe1.validate) - + si1 = create_sales_invoice() - + # create full payment entry against si1 pe2 = get_payment_entry("Sales Invoice", si1.name, bank_account="_Test Cash - _TC") pe2.insert() pe2.submit() - + # create return entry against si1 create_sales_invoice(is_return=1, return_against=si1.name, qty=-1) si1_outstanding = frappe.db.get_value("Sales Invoice", si1.name, "outstanding_amount") self.assertEqual(si1_outstanding, -100) - + # pay more than outstanding against si1 pe3 = get_payment_entry("Sales Invoice", si1.name, bank_account="_Test Cash - _TC") pe3.paid_amount = pe3.received_amount = 300 self.assertRaises(InvalidPaymentEntry, pe3.validate) - + # pay negative outstanding against si1 pe3.paid_to = "Debtors - _TC" pe3.paid_amount = pe3.received_amount = 100 - + pe3.insert() pe3.submit() - + expected_gle = dict((d[0], d) for d in [ ["Debtors - _TC", 100, 0, si1.name], ["_Test Cash - _TC", 0, 100, None] @@ -228,10 +251,10 @@ class TestPaymentEntry(unittest.TestCase): outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si1.name, "outstanding_amount")) self.assertEqual(outstanding_amount, -100) - + def validate_gl_entries(self, voucher_no, expected_gle): gl_entries = self.get_gle(voucher_no) - + self.assertTrue(gl_entries) for i, gle in enumerate(gl_entries): @@ -239,7 +262,7 @@ class TestPaymentEntry(unittest.TestCase): self.assertEquals(expected_gle[gle.account][1], gle.debit) self.assertEquals(expected_gle[gle.account][2], gle.credit) self.assertEquals(expected_gle[gle.account][3], gle.against_voucher) - + def get_gle(self, voucher_no): return frappe.db.sql("""select account, debit, credit, against_voucher from `tabGL Entry` where voucher_type='Payment Entry' and voucher_no=%s diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index 4694ef8306..a0efac5318 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -75,8 +75,8 @@ class PaymentRequest(Document): return controller.get_payment_url(**{ "amount": flt(self.grand_total, self.precision("grand_total")), - "title": data.company, - "description": self.subject, + "title": data.company.encode("utf-8"), + "description": self.subject.encode("utf-8"), "reference_doctype": "Payment Request", "reference_docname": self.name, "payer_email": self.email_to or frappe.session.user, diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.py b/erpnext/accounts/doctype/pos_profile/pos_profile.py index 86682d3c2a..8d6a2db470 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.py +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.py @@ -14,6 +14,7 @@ class POSProfile(Document): self.check_for_duplicate() self.validate_all_link_fields() self.validate_duplicate_groups() + self.check_default_payment() self.validate_customer_territory_group() def check_for_duplicate(self): @@ -49,6 +50,14 @@ class POSProfile(Document): if len(customer_groups) != len(set(customer_groups)): frappe.throw(_("Duplicate customer group found in the cutomer group table"), title = "Duplicate Customer Group") + def check_default_payment(self): + if self.payments: + default_mode_of_payment = [d.default for d in self.payments if d.default] + if not default_mode_of_payment: + frappe.throw(_("Set default mode of payment")) + + if len(default_mode_of_payment) > 1: + frappe.throw(_("Multiple default mode of payment is not allowed")) def validate_customer_territory_group(self): if not self.territory: frappe.throw(_("Territory is Required in POS Profile"), title="Mandatory Field") diff --git a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py index 534abb65fa..803ee8e6c6 100644 --- a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py +++ b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py @@ -31,6 +31,8 @@ class TestPOSProfile(unittest.TestCase): frappe.db.sql("delete from `tabPOS Profile`") def make_pos_profile(): + frappe.db.sql("delete from `tabPOS Profile`") + pos_profile = frappe.get_doc({ "company": "_Test Company", "cost_center": "_Test Cost Center - _TC", diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py index a701024baf..57f9f832d0 100644 --- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py +++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py @@ -285,8 +285,9 @@ def get_pricing_rules(args): def filter_pricing_rules(args, pricing_rules): # filter for qty - stock_qty = args.get('qty') * args.get('conversion_factor', 1) if pricing_rules: + stock_qty = flt(args.get('qty')) * args.get('conversion_factor', 1) + pricing_rules = filter(lambda x: (flt(stock_qty)>=flt(x.min_qty) and (flt(stock_qty)<=x.max_qty if x.max_qty else True)), pricing_rules) diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.js b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.js new file mode 100644 index 0000000000..4d34033f6b --- /dev/null +++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.js @@ -0,0 +1,28 @@ +QUnit.module('Pricing Rule"'); + +QUnit.test("test pricing rule", function(assert) { + assert.expect(2); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make("Pricing Rule", [ + {title: 'Test Pricing Rule'}, + {item_code:'Test Product 2'}, + {selling:1}, + {applicable_for:'Customer'}, + {customer:'Test Customer 3'}, + {min_qty:1}, + {max_qty:20}, + {valid_upto: frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)}, + {discount_percentage:10}, + {for_price_list:'Standard Selling'} + ]); + }, + () => { + assert.ok(cur_frm.doc.item_code=='Test Product 2'); + assert.ok(cur_frm.doc.customer=='Test Customer 3'); + }, + () => done() + ]); +}); + diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index 3c9de12fc0..57f75b46c1 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -485,7 +485,7 @@ def submit_invoice(si_doc, name, doc): si_doc.insert() si_doc.submit() frappe.db.commit() - except Exception, e: + except Exception as e: if frappe.message_log: frappe.message_log.pop() frappe.db.rollback() save_invoice(e, si_doc, name) diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 44a0a8caaa..806b489da4 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -168,15 +168,15 @@ class TestSalesInvoice(unittest.TestCase): "_Test Account S&H Education Cess - _TC": [1.5, 1619.5, 0.03, 32.39], "_Test Account CST - _TC": [32.5, 1652, 0.65, 33.04], "_Test Account VAT - _TC": [156.5, 1808.5, 3.13, 36.17], - "_Test Account Discount - _TC": [-180.5, 1628, -3.61, 32.56] + "_Test Account Discount - _TC": [-181.0, 1627.5, -3.62, 32.55] } for d in si.get("taxes"): for i, k in enumerate(expected_values["keys"]): self.assertEquals(d.get(k), expected_values[d.account_head][i]) - self.assertEquals(si.base_grand_total, 1628) - self.assertEquals(si.grand_total, 32.56) + self.assertEquals(si.base_grand_total, 1627.5) + self.assertEquals(si.grand_total, 32.55) def test_sales_invoice_with_discount_and_inclusive_tax(self): si = create_sales_invoice(qty=100, rate=50, do_not_save=True) @@ -236,21 +236,29 @@ class TestSalesInvoice(unittest.TestCase): "item_code": "_Test Item Home Desktop 100", "price_list_rate": 62.5, "discount_percentage": 0, - "rate": 62.5, "amount": 625, + "rate": 62.5, + "amount": 625, "base_price_list_rate": 62.5, - "base_rate": 62.5, "base_amount": 625, - "net_rate": 46.54, "net_amount": 465.37, - "base_net_rate": 46.54, "base_net_amount": 465.37 + "base_rate": 62.5, + "base_amount": 625, + "net_rate": 46.54, + "net_amount": 465.37, + "base_net_rate": 46.54, + "base_net_amount": 465.37 }, { "item_code": "_Test Item Home Desktop 200", "price_list_rate": 190.66, "discount_percentage": 0, - "rate": 190.66, "amount": 953.3, + "rate": 190.66, + "amount": 953.3, "base_price_list_rate": 190.66, - "base_rate": 190.66, "base_amount": 953.3, - "net_rate": 139.62, "net_amount": 698.08, - "base_net_rate": 139.62, "base_net_amount": 698.08 + "base_rate": 190.66, + "base_amount": 953.3, + "net_rate": 139.62, + "net_amount": 698.08, + "base_net_rate": 139.62, + "base_net_amount": 698.08 } ] @@ -271,13 +279,13 @@ class TestSalesInvoice(unittest.TestCase): "keys": ["tax_amount", "tax_amount_after_discount_amount", "total"], "_Test Account Excise Duty - _TC": [140, 130.31, 1293.76], "_Test Account Education Cess - _TC": [2.8, 2.61, 1296.37], - "_Test Account S&H Education Cess - _TC": [1.4, 1.31, 1297.68], - "_Test Account CST - _TC": [27.88, 25.96, 1323.64], - "_Test Account VAT - _TC": [156.25, 145.43, 1469.07], - "_Test Account Customs Duty - _TC": [125, 116.35, 1585.42], - "_Test Account Shipping Charges - _TC": [100, 100, 1685.42], - "_Test Account Discount - _TC": [-180.33, -168.54, 1516.88], - "_Test Account Service Tax - _TC": [-18.03, -16.88, 1500] + "_Test Account S&H Education Cess - _TC": [1.4, 1.30, 1297.67], + "_Test Account CST - _TC": [27.88, 25.95, 1323.62], + "_Test Account VAT - _TC": [156.25, 145.43, 1469.05], + "_Test Account Customs Duty - _TC": [125, 116.35, 1585.40], + "_Test Account Shipping Charges - _TC": [100, 100, 1685.40], + "_Test Account Discount - _TC": [-180.33, -168.54, 1516.86], + "_Test Account Service Tax - _TC": [-18.03, -16.86, 1500] } for d in si.get("taxes"): @@ -313,13 +321,13 @@ class TestSalesInvoice(unittest.TestCase): [test_records[3]["items"][0]["income_account"], 0.0, 1163.45], [test_records[3]["taxes"][0]["account_head"], 0.0, 130.31], [test_records[3]["taxes"][1]["account_head"], 0.0, 2.61], - [test_records[3]["taxes"][2]["account_head"], 0.0, 1.31], - [test_records[3]["taxes"][3]["account_head"], 0.0, 25.96], + [test_records[3]["taxes"][2]["account_head"], 0.0, 1.30], + [test_records[3]["taxes"][3]["account_head"], 0.0, 25.95], [test_records[3]["taxes"][4]["account_head"], 0.0, 145.43], [test_records[3]["taxes"][5]["account_head"], 0.0, 116.35], [test_records[3]["taxes"][6]["account_head"], 0.0, 100], [test_records[3]["taxes"][7]["account_head"], 168.54, 0.0], - ["_Test Account Service Tax - _TC", 16.88, 0.0], + ["_Test Account Service Tax - _TC", 16.86, 0.0] ]) for gle in gl_entries: @@ -335,6 +343,61 @@ class TestSalesInvoice(unittest.TestCase): self.assertFalse(gle) + def test_tax_calculation_with_multiple_items(self): + si = create_sales_invoice(qty=84, rate=4.6, do_not_save=True) + item_row = si.get("items")[0] + for qty in (54, 288, 144, 430): + item_row_copy = copy.deepcopy(item_row) + item_row_copy.qty = qty + si.append("items", item_row_copy) + + si.append("taxes", { + "account_head": "_Test Account VAT - _TC", + "charge_type": "On Net Total", + "cost_center": "_Test Cost Center - _TC", + "description": "VAT", + "doctype": "Sales Taxes and Charges", + "rate": 19 + }) + si.insert() + + self.assertEquals(si.net_total, 4600) + + self.assertEquals(si.get("taxes")[0].tax_amount, 874.0) + self.assertEquals(si.get("taxes")[0].total, 5474.0) + + self.assertEquals(si.grand_total, 5474.0) + + def test_tax_calculation_with_multiple_items_and_discount(self): + si = create_sales_invoice(qty=1, rate=75, do_not_save=True) + item_row = si.get("items")[0] + for rate in (500, 200, 100, 50, 50): + item_row_copy = copy.deepcopy(item_row) + item_row_copy.price_list_rate = rate + item_row_copy.rate = rate + si.append("items", item_row_copy) + + si.apply_discount_on = "Net Total" + si.discount_amount = 75.0 + + si.append("taxes", { + "account_head": "_Test Account VAT - _TC", + "charge_type": "On Net Total", + "cost_center": "_Test Cost Center - _TC", + "description": "VAT", + "doctype": "Sales Taxes and Charges", + "rate": 24 + }) + si.insert() + + self.assertEquals(si.total, 975) + self.assertEquals(si.net_total, 900) + + self.assertEquals(si.get("taxes")[0].tax_amount, 216.0) + self.assertEquals(si.get("taxes")[0].total, 1116.0) + + self.assertEquals(si.grand_total, 1116.0) + def test_inclusive_rate_validations(self): si = frappe.copy_doc(test_records[2]) for i, tax in enumerate(si.get("taxes")): @@ -417,21 +480,29 @@ class TestSalesInvoice(unittest.TestCase): "item_code": "_Test Item Home Desktop 100", "price_list_rate": 55.56, "discount_percentage": 10, - "rate": 50, "amount": 500, + "rate": 50, + "amount": 500, "base_price_list_rate": 2778, - "base_rate": 2500, "base_amount": 25000, - "net_rate": 40, "net_amount": 399.98, - "base_net_rate": 2000, "base_net_amount": 19999 + "base_rate": 2500, + "base_amount": 25000, + "net_rate": 40, + "net_amount": 399.98, + "base_net_rate": 2000, + "base_net_amount": 19999 }, { "item_code": "_Test Item Home Desktop 200", "price_list_rate": 187.5, "discount_percentage": 20, - "rate": 150, "amount": 750, + "rate": 150, + "amount": 750, "base_price_list_rate": 9375, - "base_rate": 7500, "base_amount": 37500, - "net_rate": 118.01, "net_amount": 590.05, - "base_net_rate": 5900.5, "base_net_amount": 29502.5 + "base_rate": 7500, + "base_amount": 37500, + "net_rate": 118.01, + "net_amount": 590.05, + "base_net_rate": 5900.5, + "base_net_amount": 29502.5 } ] @@ -451,22 +522,22 @@ class TestSalesInvoice(unittest.TestCase): # check tax calculation expected_values = { "keys": ["base_tax_amount", "base_total", "tax_amount", "total"], - "_Test Account Excise Duty - _TC": [5540.5, 55042, 110.81, 1100.84], - "_Test Account Education Cess - _TC": [111, 55153, 2.22, 1103.06], - "_Test Account S&H Education Cess - _TC": [55.5, 55208.5, 1.11, 1104.17], - "_Test Account CST - _TC": [1104, 56312.5, 22.08, 1126.25], - "_Test Account VAT - _TC": [6188, 62500.5, 123.76, 1250.01], - "_Test Account Customs Duty - _TC": [4950.5, 67451, 99.01, 1349.02], - "_Test Account Shipping Charges - _TC": [ 100, 67551, 2, 1351.02], - "_Test Account Discount - _TC": [ -6755, 60796, -135.10, 1215.92] + "_Test Account Excise Duty - _TC": [5540.0, 55041.5, 110.80, 1100.83], + "_Test Account Education Cess - _TC": [111, 55152.5, 2.22, 1103.05], + "_Test Account S&H Education Cess - _TC": [55.5, 55208.0, 1.11, 1104.16], + "_Test Account CST - _TC": [1104, 56312.0, 22.08, 1126.24], + "_Test Account VAT - _TC": [6187.5, 62499.5, 123.75, 1249.99], + "_Test Account Customs Duty - _TC": [4950.0, 67449.5, 99.0, 1348.99], + "_Test Account Shipping Charges - _TC": [ 100, 67549.5, 2, 1350.99], + "_Test Account Discount - _TC": [ -6755, 60794.5, -135.10, 1215.89] } for d in si.get("taxes"): for i, k in enumerate(expected_values["keys"]): self.assertEquals(d.get(k), expected_values[d.account_head][i]) - self.assertEquals(si.base_grand_total, 60796) - self.assertEquals(si.grand_total, 1215.92) + self.assertEquals(si.base_grand_total, 60794.5) + self.assertEquals(si.grand_total, 1215.89) def test_outstanding(self): w = self.make() @@ -917,19 +988,20 @@ class TestSalesInvoice(unittest.TestCase): "_Test Account Excise Duty - _TC": [70, 70, 70], "_Test Account Education Cess - _TC": [1.4, 1.4, 1.4], "_Test Account S&H Education Cess - _TC": [.7, 0.7, 0.7], - "_Test Account CST - _TC": [17.2, 17.2, 17.2], + "_Test Account CST - _TC": [17.19, 17.19, 17.19], "_Test Account VAT - _TC": [78.13, 78.13, 78.13], "_Test Account Discount - _TC": [-95.49, -95.49, -95.49] } for d in si.get("taxes"): for i, k in enumerate(expected_values["keys"]): - self.assertEquals(d.get(k), expected_values[d.account_head][i]) + if expected_values.get(d.account_head): + self.assertEquals(d.get(k), expected_values[d.account_head][i]) - self.assertEquals(si.total_taxes_and_charges, 234.44) - self.assertEquals(si.base_grand_total, 859.44) - self.assertEquals(si.grand_total, 859.44) + self.assertEquals(si.total_taxes_and_charges, 234.43) + self.assertEquals(si.base_grand_total, 859.43) + self.assertEquals(si.grand_total, 859.43) def test_multi_currency_gle(self): set_perpetual_inventory(0) diff --git a/erpnext/accounts/doctype/sales_invoice_payment/sales_invoice_payment.json b/erpnext/accounts/doctype/sales_invoice_payment/sales_invoice_payment.json index 13d7f15c7d..531622d6ac 100644 --- a/erpnext/accounts/doctype/sales_invoice_payment/sales_invoice_payment.json +++ b/erpnext/accounts/doctype/sales_invoice_payment/sales_invoice_payment.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "beta": 0, @@ -11,16 +12,51 @@ "editable_grid": 1, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "depends_on": "eval:parent.doctype == 'POS Profile'", + "fieldname": "default", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Default", + "length": 0, + "no_copy": 0, + "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, + "bold": 0, + "collapsible": 0, + "columns": 0, "fieldname": "mode_of_payment", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Mode of Payment", "length": 0, "no_copy": 0, @@ -30,6 +66,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -37,9 +74,11 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "default": "0.0", "depends_on": "eval:parent.doctype == 'Sales Invoice'", "fieldname": "amount", @@ -48,7 +87,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Amount", "length": 0, "no_copy": 0, @@ -58,6 +99,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -65,16 +107,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_3", "fieldtype": "Column Break", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -82,6 +128,7 @@ "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, @@ -89,16 +136,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "account", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Account", "length": 0, "no_copy": 0, @@ -108,6 +159,7 @@ "print_hide": 1, "print_hide_if_no_value": 0, "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -115,16 +167,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "type", "fieldtype": "Read Only", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Type", "length": 0, "no_copy": 0, @@ -134,6 +190,7 @@ "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, @@ -141,16 +198,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "base_amount", "fieldtype": "Currency", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Base Amount (Company Currency)", "length": 0, "no_copy": 1, @@ -160,6 +221,7 @@ "print_hide": 1, "print_hide_if_no_value": 0, "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -167,17 +229,17 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 0, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-11 03:28:07.779228", + "modified": "2017-07-24 17:25:03.765856", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice Payment", @@ -187,7 +249,9 @@ "quick_entry": 1, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_field": "modified", "sort_order": "DESC", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges_template/test_sales_taxes_and_charges_template.js b/erpnext/accounts/doctype/sales_taxes_and_charges_template/test_sales_taxes_and_charges_template.js new file mode 100644 index 0000000000..2667ee62d7 --- /dev/null +++ b/erpnext/accounts/doctype/sales_taxes_and_charges_template/test_sales_taxes_and_charges_template.js @@ -0,0 +1,26 @@ +QUnit.module('Sales Taxes and Charges Template'); + +QUnit.test("test sales taxes and charges template", function(assert) { + assert.expect(1); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Taxes and Charges Template', [ + {title: "TEST In State GST"}, + {taxes:[ + [ + {charge_type:"On Net Total"}, + {account_head:"CGST - "+frappe.get_abbr(frappe.defaults.get_default("Company")) } + ], + [ + {charge_type:"On Net Total"}, + {account_head:"SGST - "+frappe.get_abbr(frappe.defaults.get_default("Company")) } + ] + ]} + ]); + }, + () => {assert.ok(cur_frm.doc.title=='TEST In State GST');}, + () => done() + ]); +}); + diff --git a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js new file mode 100644 index 0000000000..9c72aebf60 --- /dev/null +++ b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js @@ -0,0 +1,35 @@ +QUnit.module('Shipping Rule'); + +QUnit.test("test Shipping Rule", function(assert) { + assert.expect(1); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make("Shipping Rule", [ + {label: "Next Day Shipping"}, + {conditions:[ + [ + {from_value:1}, + {to_value:200}, + {shipping_amount:100} + ], + [ + {from_value:201}, + {to_value:2000}, + {shipping_amount:50} + ], + ]}, + {countries:[ + [ + {country:'India'} + ] + ]}, + {account:'Accounts Payable - '+frappe.get_abbr(frappe.defaults.get_default("Company"))}, + {cost_center:'Main - '+frappe.get_abbr(frappe.defaults.get_default("Company"))} + ]); + }, + () => {assert.ok(cur_frm.doc.name=='Next Day Shipping');}, + () => done() + ]); +}); + diff --git a/erpnext/accounts/page/pos/test_pos.js b/erpnext/accounts/page/pos/test_pos.js new file mode 100644 index 0000000000..62c6e31eb5 --- /dev/null +++ b/erpnext/accounts/page/pos/test_pos.js @@ -0,0 +1,60 @@ +QUnit.test("test:POS Profile", function(assert) { + assert.expect(1); + let done = assert.async(); + + frappe.run_serially([ + () => { + return frappe.tests.make("POS Profile", [ + {naming_series: "SINV"}, + {company: "_Test Company"}, + {country: "India"}, + {currency: "INR"}, + {write_off_account: "Write Off - _TC"}, + {write_off_cost_center: "Main - _TC"}, + {payments: [ + [ + {"default": 1}, + {"mode_of_payment": "Cash"} + ]] + } + ]); + }, + () => cur_frm.save(), + () => frappe.timeout(2), + () => { + assert.equal(cur_frm.doc.payments[0].default, 1, "Default mode of payment tested"); + }, + () => done() + ]); +}); + +QUnit.test("test:Sales Invoice", function(assert) { + assert.expect(2); + let done = assert.async(); + + frappe.run_serially([ + () => { + return frappe.tests.make("Sales Invoice", [ + {customer: "_Test Customer 2"}, + {company: "_Test Company"}, + {is_pos: 1}, + {posting_date: frappe.datetime.get_today()}, + {due_date: frappe.datetime.get_today()}, + {items: [ + [ + {"item_code": "_Test Item"}, + {"qty": 5} + ]] + } + ]); + }, + () => frappe.timeout(2), + () => cur_frm.save(), + () => frappe.timeout(2), + () => { + assert.equal(cur_frm.doc.payments[0].default, 1, "Default mode of payment tested"); + assert.equal(cur_frm.doc.payments[0].mode_of_payment, "Cash", "Default mode of payment tested"); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 560ba4df93..6617802235 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -20,36 +20,36 @@ def get_fiscal_year(date=None, fiscal_year=None, label="Date", verbose=1, compan def get_fiscal_years(transaction_date=None, fiscal_year=None, label="Date", verbose=1, company=None, as_dict=False): fiscal_years = frappe.cache().hget("fiscal_years", company) or [] - - if not fiscal_years: + + if not fiscal_years: # if year start date is 2012-04-01, year end date should be 2013-03-31 (hence subdate) cond = "" if fiscal_year: cond += " and fy.name = {0}".format(frappe.db.escape(fiscal_year)) if company: cond += """ - and (not exists (select name - from `tabFiscal Year Company` fyc - where fyc.parent = fy.name) - or exists(select company - from `tabFiscal Year Company` fyc - where fyc.parent = fy.name + and (not exists (select name + from `tabFiscal Year Company` fyc + where fyc.parent = fy.name) + or exists(select company + from `tabFiscal Year Company` fyc + where fyc.parent = fy.name and fyc.company=%(company)s) ) """ fiscal_years = frappe.db.sql(""" - select - fy.name, fy.year_start_date, fy.year_end_date - from + select + fy.name, fy.year_start_date, fy.year_end_date + from `tabFiscal Year` fy - where + where disabled = 0 {0} - order by + order by fy.year_start_date desc""".format(cond), { "company": company }, as_dict=True) - + frappe.cache().hset("fiscal_years", company, fiscal_years) if transaction_date: @@ -60,10 +60,10 @@ def get_fiscal_years(transaction_date=None, fiscal_year=None, label="Date", verb if fiscal_year and fy.name == fiscal_year: matched = True - if (transaction_date and getdate(fy.year_start_date) <= transaction_date + if (transaction_date and getdate(fy.year_start_date) <= transaction_date and getdate(fy.year_end_date) >= transaction_date): matched = True - + if matched: if as_dict: return (fy,) @@ -72,7 +72,7 @@ def get_fiscal_years(transaction_date=None, fiscal_year=None, label="Date", verb error_msg = _("""{0} {1} not in any active Fiscal Year.""").format(label, formatdate(transaction_date)) if verbose==1: frappe.msgprint(error_msg) - raise FiscalYearError, error_msg + raise FiscalYearError(error_msg) def validate_fiscal_year(date, fiscal_year, company, label="Date", doc=None): years = [f[0] for f in get_fiscal_years(date, label=_(label), company=company)] @@ -158,7 +158,6 @@ def get_balance_on(account=None, date=None, party_type=None, party=None, company return flt(bal) def get_count_on(account, fieldname, date): - cond = [] if date: cond.append("posting_date <= '%s'" % frappe.db.escape(cstr(date))) @@ -195,11 +194,6 @@ def get_count_on(account, fieldname, date): select name from `tabAccount` ac where ac.name = gle.account and ac.lft >= %s and ac.rgt <= %s )""" % (acc.lft, acc.rgt)) - - # If group and currency same as company, - # always return balance based on debit and credit in company currency - if acc.account_currency == frappe.db.get_value("Company", acc.company, "default_currency"): - in_account_currency = False else: cond.append("""gle.account = "%s" """ % (frappe.db.escape(account, percent=False), )) @@ -227,7 +221,7 @@ def get_count_on(account, fieldname, date): WHERE docstatus < 2 and posting_date <= %(date)s and against_voucher = %(voucher_no)s and party = %(party)s and name != %(name)s""" .format(select_fields), - {"date": date, "voucher_no": gle.voucher_no, + {"date": date, "voucher_no": gle.voucher_no, "party": gle.party, "name": gle.name})[0][0] outstanding_amount = flt(gle.get(dr_or_cr)) - flt(gle.get(cr_or_dr)) - payment_amount @@ -274,7 +268,7 @@ def add_cc(args=None): if not args: args = frappe.local.form_dict - + args.doctype = "Cost Center" args = make_tree_args(**args) @@ -500,7 +494,8 @@ def get_company_default(company, fieldname): value = frappe.db.get_value("Company", company, fieldname) if not value: - throw(_("Please set default {0} in Company {1}").format(frappe.get_meta("Company").get_label(fieldname), company)) + throw(_("Please set default {0} in Company {1}") + .format(frappe.get_meta("Company").get_label(fieldname), company)) return value @@ -534,18 +529,18 @@ def get_stock_and_account_difference(account_list=None, posting_date=None): account_balance = get_balance_on(account_data.get('account'), posting_date, in_account_currency=False) stock_value = get_stock_value_on(warehouse, posting_date) if abs(flt(stock_value) - flt(account_balance)) > 0.005: - difference.setdefault(account, flt(stock_value) - flt(account_balance)) + difference.setdefault(account_data.get('account'), flt(stock_value) - flt(account_balance)) return difference -def get_currency_precision(): +def get_currency_precision(): precision = cint(frappe.db.get_default("currency_precision")) if not precision: number_format = frappe.db.get_default("number_format") or "#,###.##" precision = get_number_format_info(number_format)[2] - + return precision - + def get_stock_rbnb_difference(posting_date, company): stock_items = frappe.db.sql_list("""select distinct item_code from `tabStock Ledger Entry` where company=%s""", company) @@ -627,7 +622,8 @@ def get_outstanding_invoices(party_type, party, account, condition=None): 'invoice_amount': flt(d.invoice_amount), 'payment_amount': flt(d.payment_amount), 'outstanding_amount': flt(d.invoice_amount - d.payment_amount, precision), - 'due_date': frappe.db.get_value(d.voucher_type, d.voucher_no, "due_date"), + 'due_date': frappe.db.get_value(d.voucher_type, d.voucher_no, + "posting_date" if party_type=="Employee" else "due_date"), })) outstanding_invoices = sorted(outstanding_invoices, key=lambda k: k['due_date'] or getdate(nowdate())) @@ -654,7 +650,7 @@ def get_companies(): @frappe.whitelist() def get_children(): from erpnext.accounts.report.financial_statements import sort_root_accounts - + args = frappe.local.form_dict doctype, company = args['doctype'], args['company'] fieldname = frappe.db.escape(doctype.lower().replace(' ','_')) @@ -695,9 +691,6 @@ def get_children(): return acc -def create_payment_gateway_account(gateway): - create_payment_gateway_account(gateway) - def create_payment_gateway_account(gateway): from erpnext.setup.setup_wizard.setup_wizard import create_bank_account @@ -738,4 +731,4 @@ def create_payment_gateway_account(gateway): except frappe.DuplicateEntryError: # already exists, due to a reinstall? - pass \ No newline at end of file + pass diff --git a/erpnext/change_log/v6/v6_13_1.md b/erpnext/change_log/v6/v6_13_1.md index 1f0a5684d1..4b2c4a9cca 100644 --- a/erpnext/change_log/v6/v6_13_1.md +++ b/erpnext/change_log/v6/v6_13_1.md @@ -1 +1 @@ -- [ERPNext Manual in German](http://frappe.github.io/erpnext/user/manual/de/) contributed by [CWT Connector & Wire Technology GmbH](http://www.cwt-assembly.com/) +- [ERPNext Manual in German](http://erpnext.org/docs/user/manual/de/) contributed by [CWT Connector & Wire Technology GmbH](http://www.cwt-assembly.com/) diff --git a/erpnext/change_log/v6/v6_2_0.md b/erpnext/change_log/v6/v6_2_0.md index 004e90caa4..f4da651c7b 100644 --- a/erpnext/change_log/v6/v6_2_0.md +++ b/erpnext/change_log/v6/v6_2_0.md @@ -1 +1 @@ -- **[Multi-currency Accounting](https://frappe.github.io/erpnext/user/guides/accounts/multi-currency-accounting)**: You can now have an Account in a different currency than your Company's currency +- **[Multi-currency Accounting](https://frappe.io/docs/user/guides/accounts/multi-currency-accounting)**: You can now have an Account in a different currency than your Company's currency diff --git a/erpnext/config/docs.py b/erpnext/config/docs.py index 2d2cc0a892..6e505647c0 100644 --- a/erpnext/config/docs.py +++ b/erpnext/config/docs.py @@ -1,34 +1,3 @@ from __future__ import unicode_literals -docs_version = "7.x.x" - -source_link = "https://github.com/frappe/erpnext" -docs_base_url = "https://frappe.github.io/erpnext" -headline = "ERPNext Documentation" -sub_heading = "Detailed explanation for all ERPNext features and developer API" -long_description = """ERPNext is a fully featured ERP system designed for Small and Medium Sized -business. ERPNext covers a wide range of features including Accounting, CRM, -Inventory management, Selling, Purchasing, Manufacturing, Projects, HR & -Payroll, Website, E-Commerce and much more. - -ERPNext is based on the Frappe Framework is highly customizable and extendable. -You can create Custom Form, Fields, Scripts and can also create your own Apps -to extend ERPNext functionality. - -ERPNext is Open Source under the GNU General Public Licence v3 and has been -listed as one of the Best Open Source Softwares in the world by many online -blogs.""" - -splash_light_background = True -google_analytics_id = 'UA-8911157-22' - -def get_context(context): - context.brand_html = (' ERPNext') - context.app.splash_light_background = True - context.top_bar_items = [ - {"label": "User Manual", "url": context.docs_base_url + "/user/manual", "right": 1}, - {"label": "Videos", "url": context.docs_base_url + "/user/videos", "right": 1}, - {"label": "API", "url": context.docs_base_url + "/current", "right": 1}, - {"label": "Forum", "url": 'https://discuss.erpnext.com', "right": 1} - ] +source_link = "https://github.com/frappe/erpnext" \ No newline at end of file diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index b6f8b7deef..97bd771fa2 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -179,7 +179,6 @@ class calculate_taxes_and_totals(object): for n, item in enumerate(self.doc.get("items")): item_tax_map = self._load_item_tax_rate(item.item_tax_rate) - for i, tax in enumerate(self.doc.get("taxes")): # tax_amount represents the amount of tax for the current step current_tax_amount = self.get_current_tax_amount(item, tax, item_tax_map) @@ -202,36 +201,45 @@ class calculate_taxes_and_totals(object): # set tax after discount tax.tax_amount_after_discount_amount += current_tax_amount - if getattr(tax, "category", None): - # if just for valuation, do not add the tax amount in total - # hence, setting it as 0 for further steps - current_tax_amount = 0.0 if (tax.category == "Valuation") \ - else current_tax_amount + current_tax_amount = self.get_tax_amount_if_for_valuation_or_deduction(current_tax_amount, tax) - current_tax_amount *= -1.0 if (tax.add_deduct_tax == "Deduct") else 1.0 - - # Calculate tax.total viz. grand total till that step # note: grand_total_for_current_item contains the contribution of # item's amount, previously applied tax and the current tax on that item if i==0: - tax.grand_total_for_current_item = flt(item.net_amount + current_tax_amount, tax.precision("total")) + tax.grand_total_for_current_item = flt(item.net_amount + current_tax_amount) else: tax.grand_total_for_current_item = \ - flt(self.doc.get("taxes")[i-1].grand_total_for_current_item + current_tax_amount, tax.precision("total")) - - # in tax.total, accumulate grand total of each item - tax.total += tax.grand_total_for_current_item + flt(self.doc.get("taxes")[i-1].grand_total_for_current_item + current_tax_amount) # set precision in the last item iteration if n == len(self.doc.get("items")) - 1: self.round_off_totals(tax) + self.set_cumulative_total(i, tax) + + self._set_in_company_currency(tax, + ["total", "tax_amount", "tax_amount_after_discount_amount"]) # adjust Discount Amount loss in last tax iteration if i == (len(self.doc.get("taxes")) - 1) and self.discount_amount_applied \ and self.doc.discount_amount and self.doc.apply_discount_on == "Grand Total": self.adjust_discount_amount_loss(tax) + def get_tax_amount_if_for_valuation_or_deduction(self, tax_amount, tax): + # if just for valuation, do not add the tax amount in total + # if tax/charges is for deduction, multiply by -1 + if getattr(tax, "category", None): + tax_amount = 0.0 if (tax.category == "Valuation") else tax_amount + tax_amount *= -1.0 if (tax.add_deduct_tax == "Deduct") else 1.0 + return tax_amount + def set_cumulative_total(self, row_idx, tax): + tax_amount = tax.tax_amount_after_discount_amount + tax_amount = self.get_tax_amount_if_for_valuation_or_deduction(tax_amount, tax) + + if row_idx == 0: + tax.total = flt(self.doc.net_total + tax_amount, tax.precision("total")) + else: + tax.total = flt(self.doc.get("taxes")[row_idx-1].total + tax_amount, tax.precision("total")) def get_current_tax_amount(self, item, tax, item_tax_map): tax_rate = self._get_tax_rate(tax, item_tax_map) @@ -251,8 +259,6 @@ class calculate_taxes_and_totals(object): current_tax_amount = (tax_rate / 100.0) * \ self.doc.get("taxes")[cint(tax.row_id) - 1].grand_total_for_current_item - current_tax_amount = flt(current_tax_amount, tax.precision("tax_amount")) - self.set_item_wise_tax(item, tax, tax_rate, current_tax_amount) return current_tax_amount @@ -267,11 +273,9 @@ class calculate_taxes_and_totals(object): tax.item_wise_tax_detail[key] = [tax_rate,flt(item_wise_tax_amount, tax.precision("base_tax_amount"))] def round_off_totals(self, tax): - tax.total = flt(tax.total, tax.precision("total")) tax.tax_amount = flt(tax.tax_amount, tax.precision("tax_amount")) - tax.tax_amount_after_discount_amount = flt(tax.tax_amount_after_discount_amount, tax.precision("tax_amount")) - - self._set_in_company_currency(tax, ["total", "tax_amount", "tax_amount_after_discount_amount"]) + tax.tax_amount_after_discount_amount = flt(tax.tax_amount_after_discount_amount, + tax.precision("tax_amount")) def adjust_discount_amount_loss(self, tax): discount_amount_loss = self.doc.grand_total - flt(self.doc.discount_amount) - tax.total diff --git a/erpnext/controllers/tests/test_mapper.py b/erpnext/controllers/tests/test_mapper.py index 0e2d6d0b4e..14738c5ff2 100644 --- a/erpnext/controllers/tests/test_mapper.py +++ b/erpnext/controllers/tests/test_mapper.py @@ -4,7 +4,7 @@ import frappe import random, json import frappe.utils -from frappe.utils import nowdate +from frappe.utils import nowdate, add_months from frappe.model import mapper from frappe.test_runner import make_test_records @@ -44,7 +44,9 @@ class TestMapper(unittest.TestCase): "doctype": "Quotation", "quotation_to": "Customer", "customer": customer, - "order_type": "Sales" + "order_type": "Sales", + "transaction_date" : nowdate(), + "valid_till" : add_months(nowdate(), 1) }) for item in item_list: qtn.append("items", {"qty": "2", "item_code": item.item_code}) diff --git a/erpnext/crm/doctype/item/test_item.js b/erpnext/crm/doctype/item/test_item.js index 2f50ebedc3..b48f93aded 100644 --- a/erpnext/crm/doctype/item/test_item.js +++ b/erpnext/crm/doctype/item/test_item.js @@ -18,7 +18,8 @@ QUnit.test("test: item", function (assert) { {item_group: "Products"}, {is_stock_item: is_stock_item}, {standard_rate: keyboard_cost}, - {opening_stock: no_of_items_to_stock} + {opening_stock: no_of_items_to_stock}, + {default_warehouse: "Stores - RB"} ] ), () => { @@ -43,7 +44,8 @@ QUnit.test("test: item", function (assert) { {item_group: "Products"}, {is_stock_item: is_stock_item}, {standard_rate: screen_cost}, - {opening_stock: no_of_items_to_stock} + {opening_stock: no_of_items_to_stock}, + {default_warehouse: "Stores - RB"} ] ), @@ -54,7 +56,8 @@ QUnit.test("test: item", function (assert) { {item_group: "Products"}, {is_stock_item: is_stock_item}, {standard_rate: CPU_cost}, - {opening_stock: no_of_items_to_stock} + {opening_stock: no_of_items_to_stock}, + {default_warehouse: "Stores - RB"} ] ), @@ -62,7 +65,15 @@ QUnit.test("test: item", function (assert) { () => frappe.tests.make( "Item", [ {item_code: "Laptop"}, - {item_group: "Products"} + {item_group: "Products"}, + {default_warehouse: "Stores - RB"} + ] + ), + () => frappe.tests.make( + "Item", [ + {item_code: "Computer"}, + {item_group: "Products"}, + {is_stock_item: 0}, ] ), @@ -73,10 +84,37 @@ QUnit.test("test: item", function (assert) { {item_group: "Products"}, {is_stock_item: is_stock_item}, {standard_rate: scrap_cost}, - {opening_stock: no_of_items_to_stock} + {opening_stock: no_of_items_to_stock}, + {default_warehouse: "Stores - RB"} + ] + ), + () => frappe.tests.make( + "Item", [ + {item_code: "Test Product 4"}, + {item_group: "Products"}, + {is_stock_item: 1}, + {has_batch_no: 1}, + {create_new_batch: 1}, + {uoms: + [ + [ + {uom:"Unit"}, + {conversion_factor: 10}, + ] + ] + }, + {taxes: + [ + [ + {tax_type:"SGST - "+frappe.get_abbr(frappe.defaults.get_default("Company"))}, + {tax_rate: 0}, + ] + ]}, + {has_serial_no: 1}, + {standard_rate: 100}, + {opening_stock: 100}, ] ), - () => done() ]); }); diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py index 692a6ba7bf..ae792ac4a0 100644 --- a/erpnext/demo/setup/setup_data.py +++ b/erpnext/demo/setup/setup_data.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import random, json import frappe, erpnext +from frappe.utils.nestedset import get_root_of from frappe.utils import flt, now_datetime, cstr, random_string from frappe.utils.make_random import add_random_children, get_random from erpnext.demo.domains import data @@ -361,10 +362,13 @@ def setup_pos_profile(): pos.update_stock = 0 pos.write_off_account = 'Cost of Goods Sold - '+ company_abbr pos.write_off_cost_center = 'Main - '+ company_abbr + pos.customer_group = get_root_of('Customer Group') + pos.territory = get_root_of('Territory') pos.append('payments', { 'mode_of_payment': frappe.db.get_value('Mode of Payment', {'type': 'Cash'}, 'name'), - 'amount': 0.0 + 'amount': 0.0, + 'default': 1 }) pos.insert() diff --git a/erpnext/demo/user/hr.py b/erpnext/demo/user/hr.py index 0b644c42d3..1570df5963 100644 --- a/erpnext/demo/user/hr.py +++ b/erpnext/demo/user/hr.py @@ -67,7 +67,7 @@ def work(): if random.randint(0, 1): #make journal entry against expense claim - je = frappe.get_doc(make_bank_entry(expense_claim.name)) + je = frappe.get_doc(make_bank_entry("Expense Claim", expense_claim.name)) je.posting_date = frappe.flags.current_date je.cheque_no = random_string(10) je.cheque_date = frappe.flags.current_date diff --git a/erpnext/docs/assets/img/pos-setting/default_mop.png b/erpnext/docs/assets/img/pos-setting/default_mop.png new file mode 100644 index 0000000000..bd1e7a07e9 Binary files /dev/null and b/erpnext/docs/assets/img/pos-setting/default_mop.png differ diff --git a/erpnext/docs/assets/img/pos-setting/item_customer_group.png b/erpnext/docs/assets/img/pos-setting/item_customer_group.png new file mode 100644 index 0000000000..6117a8f266 Binary files /dev/null and b/erpnext/docs/assets/img/pos-setting/item_customer_group.png differ diff --git a/erpnext/docs/assets/img/pos-setting/pos-setting.png b/erpnext/docs/assets/img/pos-setting/pos-setting.png deleted file mode 100644 index 606119921c..0000000000 Binary files a/erpnext/docs/assets/img/pos-setting/pos-setting.png and /dev/null differ diff --git a/erpnext/docs/assets/img/pos-setting/pos_profile.png b/erpnext/docs/assets/img/pos-setting/pos_profile.png new file mode 100644 index 0000000000..a8bd4acaa0 Binary files /dev/null and b/erpnext/docs/assets/img/pos-setting/pos_profile.png differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permission-company.png b/erpnext/docs/assets/img/users-and-permissions/user-permission-company.png deleted file mode 100644 index eb529f1792..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permission-company.png and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permission-quotation.png b/erpnext/docs/assets/img/users-and-permissions/user-permission-quotation.png deleted file mode 100644 index ee7a19b51a..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permission-quotation.png and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permissions-company-role-all.png b/erpnext/docs/assets/img/users-and-permissions/user-permissions-company-role-all.png deleted file mode 100644 index 0aececd0d6..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permissions-company-role-all.png and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permissions-ignore-user-permissions.png b/erpnext/docs/assets/img/users-and-permissions/user-permissions-ignore-user-permissions.png deleted file mode 100644 index 5f55e37b40..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permissions-ignore-user-permissions.png and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permissions-lead-role-permissions.png b/erpnext/docs/assets/img/users-and-permissions/user-permissions-lead-role-permissions.png deleted file mode 100644 index 23564fafe6..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permissions-lead-role-permissions.png and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permissions-new.gif b/erpnext/docs/assets/img/users-and-permissions/user-permissions-new.gif deleted file mode 100644 index 609bf257e2..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permissions-new.gif and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-permissions-quotation-sales-user.png b/erpnext/docs/assets/img/users-and-permissions/user-permissions-quotation-sales-user.png deleted file mode 100644 index dd9ed49d68..0000000000 Binary files a/erpnext/docs/assets/img/users-and-permissions/user-permissions-quotation-sales-user.png and /dev/null differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-perms/ignore-user-permissions.png b/erpnext/docs/assets/img/users-and-permissions/user-perms/ignore-user-permissions.png new file mode 100644 index 0000000000..56e0d44bcf Binary files /dev/null and b/erpnext/docs/assets/img/users-and-permissions/user-perms/ignore-user-permissions.png differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-perms/new-user-permission.png b/erpnext/docs/assets/img/users-and-permissions/user-perms/new-user-permission.png new file mode 100644 index 0000000000..d2762dd7b6 Binary files /dev/null and b/erpnext/docs/assets/img/users-and-permissions/user-perms/new-user-permission.png differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-perms/permitted-documents.png b/erpnext/docs/assets/img/users-and-permissions/user-perms/permitted-documents.png new file mode 100644 index 0000000000..2558b62d01 Binary files /dev/null and b/erpnext/docs/assets/img/users-and-permissions/user-perms/permitted-documents.png differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-perms/select-document-types.png b/erpnext/docs/assets/img/users-and-permissions/user-perms/select-document-types.png new file mode 100644 index 0000000000..b54d36ac87 Binary files /dev/null and b/erpnext/docs/assets/img/users-and-permissions/user-perms/select-document-types.png differ diff --git a/erpnext/docs/assets/img/users-and-permissions/user-perms/view-selected-documents.png b/erpnext/docs/assets/img/users-and-permissions/user-perms/view-selected-documents.png new file mode 100644 index 0000000000..bc2ce7854b Binary files /dev/null and b/erpnext/docs/assets/img/users-and-permissions/user-perms/view-selected-documents.png differ diff --git a/erpnext/docs/contents.html b/erpnext/docs/contents.html deleted file mode 100644 index 59d0b4459d..0000000000 --- a/erpnext/docs/contents.html +++ /dev/null @@ -1,10 +0,0 @@ - - -

Table of Contents

-
- -{% include "templates/includes/full_index.html" %} - - - - diff --git a/erpnext/docs/contents.py b/erpnext/docs/contents.py deleted file mode 100644 index c23737a3c0..0000000000 --- a/erpnext/docs/contents.py +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -# See license.txt - -from __future__ import unicode_literals -import frappe -from frappe.website.utils import get_full_index - -def get_context(context): - context.full_index = get_full_index() diff --git a/erpnext/docs/index.html b/erpnext/docs/index.html deleted file mode 100644 index c0f9228425..0000000000 --- a/erpnext/docs/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -
-
-
-
-

ERPNext Documentation

-

Detailed explanation for all ERPNext features and developer API

-
-
-
- -
-
-
-
-
- - - -
-
-
-

ERPNext is a fully featured ERP system designed for Small and Medium Sized -business. ERPNext covers a wide range of features including Accounting, CRM, -Inventory management, Selling, Purchasing, Manufacturing, Projects, HR & -Payroll, Website, E-Commerce and much more.

- -

ERPNext is based on the Frappe Framework is highly customizable and extendable. -You can create Custom Form, Fields, Scripts and can also create your own Apps -to extend ERPNext functionality.

- -

ERPNext is Open Source under the GNU General Public Licence v3 and has been -listed as one of the Best Open Source Softwares in the world by many online -blogs.

- -
-
-
- - - -
-
-
-

Install

-

From your site

-

To install this app, login to your site and click on "Installer". Search for ERPNext and click on "Install"

-

Using Bench

-

Go to your bench folder and setup the new app

-
$ bench get-app erpnext https://github.com/frappe/erpnext
-$ bench new-site testsite
-$ bench --site testsite install-app erpnext
-

Login to your site to configure the app.

-

Detailed Installation Steps

-
-
-

Author

- -

Frappe Technologies Pvt. Ltd. (info@erpnext.com)

-
-
-
- - - - \ No newline at end of file diff --git a/erpnext/docs/index.md b/erpnext/docs/index.md new file mode 100644 index 0000000000..52df837c5c --- /dev/null +++ b/erpnext/docs/index.md @@ -0,0 +1,30 @@ +# ERP Made Simple + +### ERPNext User Guides and API References + +ERPNext is a fully featured ERP system designed for Small and Medium Sized +business. ERPNext covers a wide range of features including Accounting, CRM, +Inventory management, Selling, Purchasing, Manufacturing, Projects, HR & +Payroll, Website, E-Commerce and much more. + +ERPNext is based on the Frappé Framework is highly customizable and extendable. +You can create Custom Form, Fields, Scripts and can also create your own Apps +to extend ERPNext functionality. + +ERPNext is Open Source under the GNU General Public Licence v3 and has been +listed as one of the Best Open Source Softwares in the world by many online +blogs. + +### Installing ERPNext + +To install ERPNext on a server, you will need to install [Frappé Bench](https://github.com/frappe/bench). + +You can also start a free 30 day trial at [https://erpnext.com](https://erpnext.com) + +### Getting Started + +The ERPNext User Manual will help you understand all the ERPNext modules. [Start learning how to use ERPNext by going through the manual](/docs/user/manual). + +### Feedback + +You're encouraged to help improve the quality of this documentation, by sending a pull request on the [GitHub Repository](https://github.com/frappe/erpnext). If you would like to have a discussion regarding the documentation, you can do so [at the forum](https://discuss.erpnext.com). diff --git a/erpnext/docs/install.md b/erpnext/docs/install.md index 26ad1286d3..cb78af40c7 100644 --- a/erpnext/docs/install.md +++ b/erpnext/docs/install.md @@ -1,12 +1,14 @@ +# Install + # Installation -ERPNext is based on the Frappe Framework, a full stack web framework based on Python, MariaDB, Redis, Node. +ERPNext is based on the Frappé Framework, a full stack web framework based on Python, MariaDB, Redis, Node. -To intall ERPNext, you will have to install the Frappe Bench, the command-line, package manager and site manager for Frappe Framework. For more details, read the Bench README. +To intall ERPNext, you will have to install the Frappé Bench, the command-line, package manager and site manager for Frappé Framework. For more details, read the Bench README. -After you have installed Frappe Bench, go to you bench folder, which is `frappe.bench` by default and setup **erpnext**. +After you have installed Frappé Bench, go to you bench folder, which is `frappe.bench` by default and setup **erpnext**. bench get-app erpnext {{ source_link }} diff --git a/erpnext/docs/license.html b/erpnext/docs/license.html deleted file mode 100644 index 4740c5c145..0000000000 --- a/erpnext/docs/license.html +++ /dev/null @@ -1,690 +0,0 @@ - - -

GNU General Public License (v3)

- -

GNU GENERAL PUBLIC LICENSE

- -

Version 3, 29 June 2007

- -

Copyright (C) 2007 Free Software Foundation, Inc. -http://fsf.org/

- -

Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed.

- -

Preamble

- -

The GNU General Public License is a free, copyleft license for -software and other kinds of works.

- -

The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom -to share and change all versions of a program--to make sure it remains -free software for all its users. We, the Free Software Foundation, use -the GNU General Public License for most of our software; it applies -also to any other work released this way by its authors. You can apply -it to your programs, too.

- -

When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things.

- -

To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you -have certain responsibilities if you distribute copies of the -software, or if you modify it: responsibilities to respect the freedom -of others.

- -

For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights.

- -

Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it.

- -

For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions.

- -

Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the -manufacturer can do so. This is fundamentally incompatible with the -aim of protecting users' freedom to change the software. The -systematic pattern of such abuse occurs in the area of products for -individuals to use, which is precisely where it is most unacceptable. -Therefore, we have designed this version of the GPL to prohibit the -practice for those products. If such problems arise substantially in -other domains, we stand ready to extend this provision to those -domains in future versions of the GPL, as needed to protect the -freedom of users.

- -

Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish -to avoid the special danger that patents applied to a free program -could make it effectively proprietary. To prevent this, the GPL -assures that patents cannot be used to render the program non-free.

- -

The precise terms and conditions for copying, distribution and -modification follow.

- -

TERMS AND CONDITIONS

- -

0. Definitions.

- -

"This License" refers to version 3 of the GNU General Public License.

- -

"Copyright" also means copyright-like laws that apply to other kinds -of works, such as semiconductor masks.

- -

"The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations.

- -

To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of -an exact copy. The resulting work is called a "modified version" of -the earlier work or a work "based on" the earlier work.

- -

A "covered work" means either the unmodified Program or a work based -on the Program.

- -

To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well.

- -

To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user -through a computer network, with no transfer of a copy, is not -conveying.

- -

An interactive user interface displays "Appropriate Legal Notices" to -the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion.

- -

1. Source Code.

- -

The "source code" for a work means the preferred form of the work for -making modifications to it. "Object code" means any non-source form of -a work.

- -

A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language.

- -

The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it.

- -

The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work.

- -

The Corresponding Source need not include anything that users can -regenerate automatically from other parts of the Corresponding Source.

- -

The Corresponding Source for a work in source code form is that same -work.

- -

2. Basic Permissions.

- -

All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law.

- -

You may make, run and propagate covered works that you do not convey, -without conditions so long as your license otherwise remains in force. -You may convey covered works to others for the sole purpose of having -them make modifications exclusively for you, or provide you with -facilities for running those works, provided that you comply with the -terms of this License in conveying all material for which you do not -control copyright. Those thus making or running the covered works for -you must do so exclusively on your behalf, under your direction and -control, on terms that prohibit them from making any copies of your -copyrighted material outside their relationship with you.

- -

Conveying under any other circumstances is permitted solely under the -conditions stated below. Sublicensing is not allowed; section 10 makes -it unnecessary.

- -

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

- -

No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures.

- -

When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such -circumvention is effected by exercising rights under this License with -respect to the covered work, and you disclaim any intention to limit -operation or modification of the work as a means of enforcing, against -the work's users, your or third parties' legal rights to forbid -circumvention of technological measures.

- -

4. Conveying Verbatim Copies.

- -

You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program.

- -

You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee.

- -

5. Conveying Modified Source Versions.

- -

You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these -conditions:

- - - -

A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate.

- -

6. Conveying Non-Source Forms.

- -

You may convey a covered work in object code form under the terms of -sections 4 and 5, provided that you also convey the machine-readable -Corresponding Source under the terms of this License, in one of these -ways:

- - - -

A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work.

- -

A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, -family, or household purposes, or (2) anything designed or sold for -incorporation into a dwelling. In determining whether a product is a -consumer product, doubtful cases shall be resolved in favor of -coverage. For a particular product received by a particular user, -"normally used" refers to a typical or common use of that class of -product, regardless of the status of the particular user or of the way -in which the particular user actually uses, or expects or is expected -to use, the product. A product is a consumer product regardless of -whether the product has substantial commercial, industrial or -non-consumer uses, unless such uses represent the only significant -mode of use of the product.

- -

"Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to -install and execute modified versions of a covered work in that User -Product from a modified version of its Corresponding Source. The -information must suffice to ensure that the continued functioning of -the modified object code is in no case prevented or interfered with -solely because modification has been made.

- -

If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM).

- -

The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or -updates for a work that has been modified or installed by the -recipient, or for the User Product in which it has been modified or -installed. Access to a network may be denied when the modification -itself materially and adversely affects the operation of the network -or violates the rules and protocols for communication across the -network.

- -

Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying.

- -

7. Additional Terms.

- -

"Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions.

- -

When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission.

- -

Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders -of that material) supplement the terms of this License with terms:

- - - -

All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying.

- -

If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms.

- -

Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; the -above requirements apply either way.

- -

8. Termination.

- -

You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11).

- -

However, if you cease all violation of this License, then your license -from a particular copyright holder is reinstated (a) provisionally, -unless and until the copyright holder explicitly and finally -terminates your license, and (b) permanently, if the copyright holder -fails to notify you of the violation by some reasonable means prior to -60 days after the cessation.

- -

Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice.

- -

Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10.

- -

9. Acceptance Not Required for Having Copies.

- -

You are not required to accept this License in order to receive or run -a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so.

- -

10. Automatic Licensing of Downstream Recipients.

- -

Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License.

- -

An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts.

- -

You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it.

- -

11. Patents.

- -

A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version".

- -

A contributor's "essential patent claims" are all patent claims owned -or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License.

- -

Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version.

- -

In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party.

- -

If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid.

- -

If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it.

- -

A patent license is "discriminatory" if it does not include within the -scope of its coverage, prohibits the exercise of, or is conditioned on -the non-exercise of one or more of the rights that are specifically -granted under this License. You may not convey a covered work if you -are a party to an arrangement with a third party that is in the -business of distributing software, under which you make payment to the -third party based on the extent of your activity of conveying the -work, and under which the third party grants, to any of the parties -who would receive the covered work from you, a discriminatory patent -license (a) in connection with copies of the covered work conveyed by -you (or copies made from those copies), or (b) primarily for and in -connection with specific products or compilations that contain the -covered work, unless you entered into that arrangement, or that patent -license was granted, prior to 28 March 2007.

- -

Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law.

- -

12. No Surrender of Others' Freedom.

- -

If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under -this License and any other pertinent obligations, then as a -consequence you may not convey it at all. For example, if you agree to -terms that obligate you to collect a royalty for further conveying -from those to whom you convey the Program, the only way you could -satisfy both those terms and this License would be to refrain entirely -from conveying the Program.

- -

13. Use with the GNU Affero General Public License.

- -

Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such.

- -

14. Revised Versions of this License.

- -

The Free Software Foundation may publish revised and/or new versions -of the GNU General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in -detail to address new problems or concerns.

- -

Each version is given a distinguishing version number. If the Program -specifies that a certain numbered version of the GNU General Public -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that numbered version or -of any later version published by the Free Software Foundation. If the -Program does not specify a version number of the GNU General Public -License, you may choose any version ever published by the Free -Software Foundation.

- -

If the Program specifies that a proxy can decide which future versions -of the GNU General Public License can be used, that proxy's public -statement of acceptance of a version permanently authorizes you to -choose that version for the Program.

- -

Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version.

- -

15. Disclaimer of Warranty.

- -

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE -DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR -CORRECTION.

- -

16. Limitation of Liability.

- -

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR -CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT -NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR -LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM -TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER -PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

- -

17. Interpretation of Sections 15 and 16.

- -

If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee.

- -

END OF TERMS AND CONDITIONS

- -

How to Apply These Terms to Your New Programs

- -

If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these -terms.

- -

To do so, attach the following notices to the program. It is safest to -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>
-
-    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
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
- -

Also add information on how to contact you by electronic and paper -mail.

- -

If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode:

- -
    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
- -

The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, your -program's commands might be different; for a GUI interface, you would -use an "about box".

- -

You should also get your employer (if you work as a programmer) or -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. For more information on this, and how to apply and follow -the GNU GPL, see http://www.gnu.org/licenses/.

- -

The GNU General Public License does not permit incorporating your -program into proprietary programs. If your program is a subroutine -library, you may consider it more useful to permit linking proprietary -applications with the library. If this is what you want to do, use the -GNU Lesser General Public License instead of this License. But first, -please read http://www.gnu.org/philosophy/why-not-lgpl.html.

- - - \ No newline at end of file diff --git a/erpnext/docs/license.md b/erpnext/docs/license.md index b0310f64f2..d3c0b8d2ab 100644 --- a/erpnext/docs/license.md +++ b/erpnext/docs/license.md @@ -4,8 +4,8 @@

ERPNext License Info

-

(c) 2013 Frappe Technologies Pvt Ltd. Mumbai -ERPNext is a trademark of Frappe Technologies

+

(c) 2013 Frappé Technologies Pvt Ltd. Mumbai +ERPNext is a trademark of Frappé Technologies

The ERPNext code is licensed under the GNU General Public License (v3) as mentioned below and the Documentation is licensed under Creative Commons (CC-BY-SA-3.0)

diff --git a/erpnext/docs/temp.py b/erpnext/docs/temp.py deleted file mode 100644 index 0cddeaa670..0000000000 --- a/erpnext/docs/temp.py +++ /dev/null @@ -1,10 +0,0 @@ -import os, re - -for basepath, folders, files in os.walk("."): - for f in files: - if f.endswith(".html") or f.endswith(".md"): - with open(os.path.join(basepath, f), "r") as c: - content = c.read() - - for path in re.findall("""{{.?docs_base_url.?}}([^'"\)]*)""", content): - print path diff --git a/erpnext/docs/user/index.md b/erpnext/docs/user/index.md index 7ce09d357e..2ed4ed32a9 100644 --- a/erpnext/docs/user/index.md +++ b/erpnext/docs/user/index.md @@ -2,5 +2,5 @@ Learn ERPNext by watching the user manual or training videos. -1. [User Manual]({{docs_base_url}}/user/manual) -1. [Help Videos]({{docs_base_url}}/user/videos/learn) +1. [User Manual](/docs/user/manual) +1. [Help Videos](/docs/user/videos/learn) diff --git a/erpnext/docs/user/manual/de/Beispiel/index.md b/erpnext/docs/user/manual/de/Beispiel/index.md index 1a613515f5..635507fc8e 100644 --- a/erpnext/docs/user/manual/de/Beispiel/index.md +++ b/erpnext/docs/user/manual/de/Beispiel/index.md @@ -1,2 +1,4 @@ +# Beispiel + Hier steht die Übersetzung Beigetragen von CWT Connector & Wire Technology GmbH diff --git a/erpnext/docs/user/manual/de/CRM/contact.md b/erpnext/docs/user/manual/de/CRM/contact.md index b937c65d18..49b5ffb0db 100644 --- a/erpnext/docs/user/manual/de/CRM/contact.md +++ b/erpnext/docs/user/manual/de/CRM/contact.md @@ -7,11 +7,11 @@ Um einen neuen Kontakt zu erstellen, gehe Sie zu > CRM > Dokumente > Kontakt > Neu -Kontakt +Kontakt Alternativ können Sie einen Kontakt oder eine Adresse auch direkt aus dem Kundendatensatz erstellen. Klicken Sie hierzu auf "Neuer Kontakt" oder "Neue Adresse". -Kontakt +Kontakt > Tipp: Wenn Sie in einer beliebigen Transaktion einen Kunden auswählen, wird ein Kontakt und eine Adresse vorselektiert. Das sind dann der Standardkontakt und die Standardadresse. diff --git a/erpnext/docs/user/manual/de/CRM/customer.md b/erpnext/docs/user/manual/de/CRM/customer.md index c730c6876b..c7d6654858 100644 --- a/erpnext/docs/user/manual/de/CRM/customer.md +++ b/erpnext/docs/user/manual/de/CRM/customer.md @@ -7,7 +7,7 @@ Sie können Ihre Kunden entweder direkt erstellen über > CRM > Dokumente > Kunde > Neu -Kunde +Kunde oder einen Upload über ein Datenimportwerkzeug durchführen. @@ -17,7 +17,7 @@ oder einen Upload über ein Datenimportwerkzeug durchführen. Kontakte und Adressen werden in ERPNext getrennt gespeichert, damit Sie mehrere verschiedene Kontakte oder Adressen mit Kunden und Lieferanten verknüpfen können. -Lesen Sie hierzu auch [Kontakt]({{docs_base_url}}/user/manual/de/CRM/contact.html). +Lesen Sie hierzu auch [Kontakt](/docs/user/manual/de/CRM/contact.html). ### Einbindung in Konten diff --git a/erpnext/docs/user/manual/de/CRM/lead.md b/erpnext/docs/user/manual/de/CRM/lead.md index 8bb9ce4f16..47a4492633 100644 --- a/erpnext/docs/user/manual/de/CRM/lead.md +++ b/erpnext/docs/user/manual/de/CRM/lead.md @@ -16,6 +16,6 @@ Um einen Lead zu generieren, gehen Sie zu: > CRM > Dokumente > Lead > Neu -Lead +Lead {next} diff --git a/erpnext/docs/user/manual/de/CRM/newsletter.md b/erpnext/docs/user/manual/de/CRM/newsletter.md index 8a18e6425f..bc7e989421 100644 --- a/erpnext/docs/user/manual/de/CRM/newsletter.md +++ b/erpnext/docs/user/manual/de/CRM/newsletter.md @@ -7,8 +7,8 @@ In ERPNext können sie diese Benutzerschnittstelle nutzen um eine große Zahl vo Wählen Sie die Liste der Empfänger aus, an die Sie die E-Mail senden wollen. Tragen Sie Ihren Inhalt in das Nachrichtenfeld ein und versenden Sie den Newsletter. Wenn Sie die E-Mail vorher testen wollen, um zu sehen, wie sie für den Empfänger aussieht, können Sie die Testfunktion nutzen. Speichern Sie das Dokument vor dem Test. Eine Test-E-Mail wird dann an Ihr E-Mail-Konto gesendet. Sie können die E-Mail an alle vorgesehenen Empfänger senden, wenn Sie auf die Schaltfläche "Senden" klicken. -Newsletter - Neu +Newsletter - Neu -Newsletter - Test +Newsletter - Test {next} diff --git a/erpnext/docs/user/manual/de/CRM/opportunity.md b/erpnext/docs/user/manual/de/CRM/opportunity.md index c9122f3d85..181348f115 100644 --- a/erpnext/docs/user/manual/de/CRM/opportunity.md +++ b/erpnext/docs/user/manual/de/CRM/opportunity.md @@ -11,11 +11,11 @@ Alternativ können Sie einen offenen Lead öffnen und auf die Schaltfläche "Opp ### Abbildung 1: Opportunity erstellen -Opportunity +Opportunity ### Abbildung 2: Opportunity aus einem offenen Lead heraus erstellen -Opportunity +Opportunity Eine Opportunity kann auch aus einem bereits vorhandenen Kunden heraus entstehen. Sie können mehrere verschiedene Opportunities zum gleichen Lead erstellen. In einer Opportunity können Sie abgesehen von der Kommunikation auch die Artikel mit vermerken, nach denen der Lead oder Kontakt sucht. diff --git a/erpnext/docs/user/manual/de/CRM/setup/campaign.md b/erpnext/docs/user/manual/de/CRM/setup/campaign.md index c9b1ac80d9..700bb325c3 100644 --- a/erpnext/docs/user/manual/de/CRM/setup/campaign.md +++ b/erpnext/docs/user/manual/de/CRM/setup/campaign.md @@ -3,19 +3,19 @@ Eine Kampagne ist eine groß angelegte Umsetzung einer Vertriebsstrategie um ein Produkt oder eine Dienstleistung zu bewerben. Dies erfolgt in einem Marktsegment in einer bestimmten geographischen Region um bestimmte Ziele zu erreichen. -Kampagne +Kampagne -Sie können in einer Kampagne [Leads]({{docs_base_url}}/user/manual/de/CRM/lead.html), [Opportunities]({{docs_base_url}}/user/manual/de/CRM/opportunity.html) und [Angebote]({{docs_base_url}}/user/manual/de/selling/quotation.html) nachverfolgen. +Sie können in einer Kampagne [Leads](/docs/user/manual/de/CRM/lead.html), [Opportunities](/docs/user/manual/de/CRM/opportunity.html) und [Angebote](/docs/user/manual/de/selling/quotation.html) nachverfolgen. ### Leads zu einer Kampagne nachverfolgen * Um einen Lead zu einer Kampagne nach zu verfolgen, wählen Sie "Leads anzeigen" aus. -Kampange - Leads ansehen +Kampange - Leads ansehen * Sie sollten jetzt eine gefilterte Übersicht aller Leads erhalten, die zu dieser Kampagne gehören. * Sie können auch einen neuen Lead erstellen indem Sie auf "Neu" klicken. -Kampagne - Neuer Lead +Kampagne - Neuer Lead {next} diff --git a/erpnext/docs/user/manual/de/CRM/setup/customer-group.md b/erpnext/docs/user/manual/de/CRM/setup/customer-group.md index 4cdeb22fd7..c7ec3e226d 100644 --- a/erpnext/docs/user/manual/de/CRM/setup/customer-group.md +++ b/erpnext/docs/user/manual/de/CRM/setup/customer-group.md @@ -3,10 +3,10 @@ Kundengruppen versetzen Sie in die Lage Ihre Kunden zu organisieren. Sie können auch Rabatte auf der Basis von Kundengruppen berechnen. Außerdem können Sie Trendanalysen für jede Gruppe erstellen. Typischerweise werden Kunden nach Marktsegmenten gruppiert (das basiert normalerweise auf Ihrer Domäne). -Baumstruktur der Kundengruppen +Baumstruktur der Kundengruppen > Tipp: Wenn Sie der Meinung sind, dass hier zu viel Aufwand getrieben wird, dann können Sie es bei einer Standard-Kundengruppe belassen. Aber der gesamte Aufwand wird sich dann auszahlen, wenn Sie die ersten Berichte erhalten. Ein Beispiel eines Berichts ist unten abgebildet. -Vertriebsanalyse +Vertriebsanalyse {next} diff --git a/erpnext/docs/user/manual/de/CRM/setup/sales-person.md b/erpnext/docs/user/manual/de/CRM/setup/sales-person.md index 77d6ea0c48..f615da4b44 100644 --- a/erpnext/docs/user/manual/de/CRM/setup/sales-person.md +++ b/erpnext/docs/user/manual/de/CRM/setup/sales-person.md @@ -3,7 +3,7 @@ Vertriebsmitarbeiter verhalten sich wie Regionen. Sie können ein Organigramm der Vertriebsmitarbeiter erstellen, in dem individuell das Vertriebsziel des Vertriebsmitarbeiters vermerkt werden kann. Genauso wie in der Region muss das Ziel einer Artikelgruppe zugeordnet werden. -Baumstruktur der Vertriebsmitarbeiter +Baumstruktur der Vertriebsmitarbeiter ### Vertriebspersonen in Transaktionen diff --git a/erpnext/docs/user/manual/de/accounts/accounting-entries.md b/erpnext/docs/user/manual/de/accounts/accounting-entries.md index fc5a259c67..8367dbfbd6 100644 --- a/erpnext/docs/user/manual/de/accounts/accounting-entries.md +++ b/erpnext/docs/user/manual/de/accounts/accounting-entries.md @@ -5,19 +5,19 @@ Das Konzept der Buchführung erklärt sich über unten angeführtes Beispiel: Wi * Max Mustermann (Inhaber des Teeladens) investiert 25.000 Euro um die Geschäftstätigkeit zu beginnen. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-1.png) +![A&L](/docs/assets/old_images/erpnext/assets-1.png) **Analyse:** Max Mustermann investiert 25.000 Euro in das Unternehmen in der Hoffnung Gewinne zu erhalten. In anderen Worten schuldet die Firma 25.000 Euro an Max Mustermann, die in der Zukunft zurück gezahlt werden müssen. Deshalb ist das Konto Max Mustermann ein Verbindlichkeitenkonto und wird im Haben gebucht. Aufgrund der Investition steigen die Barmittel der Firma, "Kasse" ist ein Vermögenswert des Unternehmens und wird im Soll gebucht. * Die Firma benötigt sofort Geschäftsausstattung (Kocher, Teekannen, Tassen, etc.) und Rohmaterial (Tee, Zucker, Milch, etc.). Max Mustermann beschliesst im nächstgelegenen Gemischtwarenladen "Superbasar", mit dem er freundschaftlich verbunden ist, einzukaufen, und erhält dort Kredit. Die Geschäftsausstattung hat einen Wert von 2.800 Euro und das Rohmaterial von 2.200 Euro. Er zahlt 2.000 Euro von den insgesamt 5.000 Euro. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-2.png) +![A&L](/docs/assets/old_images/erpnext/assets-2.png) **Analyse:** Die Geschäftsausstattung ist Anlagevermögen der Firma (weil sie eine lange Lebensdauer hat) und das Rohmaterial ist Umlaufvermögen (weil es für das Tagesgeschäft verwendet wird). Aus diesem Grund wurden die Konten "Geschäftsausstattung" und "Warenbestand" im Soll gebucht und im Bestand erhöht. Max Mustermann zahlt 2.000 Euro, deshalb reduziert sich das Konto "Kasse" um diesen Betrag, weil der Geschäftsvorfall im Haben gebucht wird. Weil Max Mustermann Kredit erhält, und vereinbart wurde, dass 3.000 Euro später an "Superbasar" gezahlt werden, werden 3.000 Euro im Soll auf das Verbindlichkeitenkonto "Superbasar" gebucht. * Max Mustermann (, der sich um die Buchungen kümmert,) beschliesst zum Ende jeden Tages die Verkäufe zu buchen, so dass er täglich die Verkäufe analysieren kann. Am Ende des allerersten Tages hat der Teeladen 325 Tassen Tee verkauft, was einen Umsatz von 1.575 Euro ergibt. Der Inhaber verbucht hocherfreut die Umsätze seines ersten Tages. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-3.png) +![A&L](/docs/assets/old_images/erpnext/assets-3.png) **Analyse:** Der Ertrag wird auf dem Konto "Teeverkäufe" im Haben verbucht und der selbe Betrag wird auf dem Konto "Kasse" im Soll verbucht. Nehmen wir an, dass es 800 Euro kostet 325 Tassen Tea zuzubereiten. Deshalb reduziert sich das Konto "Waren" im Haben um 800 Euro und der Aufwand wird auf dem Konto "Warenaufwand" in selber Höhe im Soll gebucht. @@ -27,7 +27,7 @@ Das Konzept der Buchführung erklärt sich über unten angeführtes Beispiel: Wi Im Laufe des Monats kauft die Firma weiteres Rohmaterial für die Geschäftstätigkeit ein. Nach einem Monat bucht Max Mustermann den Gewinn um die Bilanz und die Gewinn- und Verlustrechnung auszugleichen. Den Gewinn erhält Max Mustermann und nicht die Firma, da es sich für die Firma um eine Verbindlichkeit handelt (sie muss ihn an Max Mustermann zahlen). Wenn die Bilanz nicht ausgeglichen ist, d. h. Aktive und Passive nicht gleich sind, dann wurde der Gewinn noch nicht verbucht. Um den Gewinn zu buchen, muss der folgende Buchungssatz erstellt werden: -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-4.png) +![A&L](/docs/assets/old_images/erpnext/assets-4.png) Erklärung: Die Nettoumsätze und Aufwände der Firme belaufen sich auf 40.000 bzw. 20.000 Euro. Die Firma hat also einen Gewinn von 20.000 Euro erwirtschaftet. Bei der Verbuchung des Gewinns wird dieser auf dem Konto GuV im Soll gebucht und die Gegenbuchung auf dem Konto "Eigenkapital" im Haben. Der Saldo des Kassenkontos der Firma beträgt 44.000 Euro und es ist Rohmaterial im Wert von 1.000 Euro übrig. diff --git a/erpnext/docs/user/manual/de/accounts/accounting-reports.md b/erpnext/docs/user/manual/de/accounts/accounting-reports.md index b9f0fca267..deab83b2ad 100644 --- a/erpnext/docs/user/manual/de/accounts/accounting-reports.md +++ b/erpnext/docs/user/manual/de/accounts/accounting-reports.md @@ -8,7 +8,7 @@ Hier sehen Sie einige der wichtigsten Berichte aus dem Rechnungswesen: Das Hauptbuch basiert auf der Tabelle der Hauptbucheinträge und kann nach einem Konto und einem Zeitraum gefiltert werden. Das hilft Ihnen dabei einen Überblick über alle Buchungen zu erhalten, die zu einem Konto in einem bestimmten Zeitraum getätigt wurden. Hauptbuch + src="/docs/assets/img/accounts/general-ledger.png"> ### Probebilanz @@ -19,7 +19,7 @@ Eine Probebilanz ist eine Liste von Kontoständen aller Konten (Bücher und Grup * Summe Haben * Schlußstand -Probebilanz +Probebilanz Die Summe aller Schlußstände in einer Probebilanz muss 0 sein. @@ -27,12 +27,12 @@ Die Summe aller Schlußstände in einer Probebilanz muss 0 sein. Diese Berichte helfen Ihnen dabei, die offenen Posten bei Rechnungen von Kunden und Lieferanten nachzuverfolgen. In diesem Bericht sehen Sie die offenen Beträge nach Zeiträumen geordnet, d. h. 0-30 Tage, 30-60 Tage und so weiter. -Forderungskonten +Forderungskonten ### Auflistung der Verkäufe und Einkäufe In diesem Bericht wird jedes Steuerkonto in Spalten dargestellt. Für jede Rechnung und jeden Rechnungsposten erhalten Sie den Betrag und die individuelle Steuer, die gezahlt wurde, basierend auf der Tabelle der Steuern und Abgaben. -Übersicht Verkäufe +Übersicht Verkäufe {next} diff --git a/erpnext/docs/user/manual/de/accounts/advance-payment-entry.md b/erpnext/docs/user/manual/de/accounts/advance-payment-entry.md index 288b35ed57..54633b2182 100644 --- a/erpnext/docs/user/manual/de/accounts/advance-payment-entry.md +++ b/erpnext/docs/user/manual/de/accounts/advance-payment-entry.md @@ -15,7 +15,7 @@ Da der Kunde 5.000 Euro bar angezahlt hat, wird dieser Betrag als Habenbuchung z #### Abbildung 1: Journalbuchung bei Vorkasse -Anzahlung +Anzahlung ### Doppelte Buchführung @@ -23,7 +23,7 @@ Bei der doppelten Buchführung hat jede Transaktion einen positiven oder negativ #### Abbildung 2: Transaktion und Ausgleichsbuchung -Anzahlung +Anzahlung Speichern und übertragen Sie den Buchungssatz. Wenn das Dokument nicht gespeichert wird, dann wird es in anderen Buchungsdokumenten nicht übernommen. @@ -33,7 +33,7 @@ Um die Ausgangsrechnung mit einem Buchungssatz zu verknüpfen, der die Buchung z #### Abbildung 3: Anzahlung erhalten -Anzahlung +Anzahlung Speichern und übertragen Sie die Ausgangsrechnung diff --git a/erpnext/docs/user/manual/de/accounts/budgeting.md b/erpnext/docs/user/manual/de/accounts/budgeting.md index 88ef179802..7495e3c91e 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 -Budget +Budget #### Schritt 2: Monatliche Verteilung eingeben -Budget +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 -Budget +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. -Monthly Distribution +Monthly Distribution Das kann über die Firmenstammdaten eingestellt werden. -Budget Variance Report +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/chart-of-accounts.md b/erpnext/docs/user/manual/de/accounts/chart-of-accounts.md index 551367e66e..b9e93e0f2e 100644 --- a/erpnext/docs/user/manual/de/accounts/chart-of-accounts.md +++ b/erpnext/docs/user/manual/de/accounts/chart-of-accounts.md @@ -17,7 +17,7 @@ Als Manager werden Sie zu schätzen wissen, wenn Sie beurteilen können wie Ihr Sie können in ERPNext leicht die finanzielle Lage Ihres Unternehmens einsehen. Ein Beispiel für eine Finanzanalyse sehen Sie unten abgebildet. -Finanzanalyse Bilanz +Finanzanalyse Bilanz Um Ihren Kontenplan in ERPNext zu bearbeiten gehen Sie zu: @@ -27,7 +27,7 @@ Im Kontenplan erhalten Sie eine Baumstruktur der Konten(bezeichnungen) und Konte Lassen Sie uns die Hauptgruppen des Kontenplans besser verstehen lernen. -Kontenplan +Kontenplan ### Bilanzkonten @@ -47,7 +47,7 @@ Entgegen den Bilanzkonten, repräsentieren Gewinn und Verlustkonnten (GuV) keine In ERPNext ist es einfach eine graphische Auswertung von Gewinn und Verlust zu erstellen. Im Folgenden ist ein Beispiel einer GuV-Analyse abgebildet: -Finanzanalyse GuV +Finanzanalyse GuV (Am ersten Tag eines Jahres haben Sie noch keinen Gewinn oder Verlust gemacht, aber Sie haben bereits Vermögen, deshalb haben Bestandskonten zum Anfang oder Ende eines Zeitraums einen Wert.) @@ -61,7 +61,7 @@ Buchungstransaktionen können nur zu Kontobüchern erstellt werden (nicht zu Gru > Anmerkung: Ein Kontenbuch wird manchmal auch als Kontokopf bezeichnet. -Kontenplan +Kontenplan ### Andere Kontentypen @@ -71,7 +71,7 @@ Wenn sie in ERPNext ein neues Konto anlegen, können Sie dazu auch Informationen Um ein neues Konto zu erstellen, gehen Sie Ihren Kontenplan durch und klicken Sie auf die Kontengruppe unter der Sie das neue Konto erstellen wollen. Auf der rechten Seite finden Sie die Option ein neues Konto zu "öffnen" oder ein Unterkonto zu erstellen. -Kontenplan +Kontenplan Die Option zum Erstellen erscheint nur dann, wenn Sie auf ein Konto vom Typ Gruppe (Ordner) klicken. diff --git a/erpnext/docs/user/manual/de/accounts/credit-limit.md b/erpnext/docs/user/manual/de/accounts/credit-limit.md index dc13819b67..b769817f91 100644 --- a/erpnext/docs/user/manual/de/accounts/credit-limit.md +++ b/erpnext/docs/user/manual/de/accounts/credit-limit.md @@ -9,7 +9,7 @@ Um das Kreditlimit einzustellen, gehen Sie zur Kundenvorlage ### Abbildung 1: Kreditlinie -Kreditlimit +Kreditlimit Gehen Sie zum Abschnitt "Kreditlimit" und geben Sie den Betrag in das Feld "Kreditlimit" ein. @@ -21,7 +21,7 @@ Im Feld Kredit-Controller wählen Sie die Rolle aus, die dazu autorisiert sein s ### Abbildung 2: Kredit-Controller -Kreditlimit +Kreditlimit Speichern Sie die Änderungen diff --git a/erpnext/docs/user/manual/de/accounts/item-wise-tax.md b/erpnext/docs/user/manual/de/accounts/item-wise-tax.md index 2ebe80fdcd..768693c99c 100644 --- a/erpnext/docs/user/manual/de/accounts/item-wise-tax.md +++ b/erpnext/docs/user/manual/de/accounts/item-wise-tax.md @@ -7,7 +7,7 @@ Wenn Sie über die Einstellung "Steuern und andere Abgaben" Steuern auswählen, Die Artikelstammdaten beinhalten eine Tabelle, in der Sie Steuern, die angewendet werden sollen, auflisten können. -![Artikelbezogene Steuer]({{docs_base_url}}/assets/old_images/erpnext/item-wise-tax.png) +![Artikelbezogene Steuer](/docs/assets/old_images/erpnext/item-wise-tax.png) Der im Artikelstamm angegebene Steuersatz hat gegenüber dem Steuersatz, der in Transaktionen angegeben wird, Vorrang. @@ -19,7 +19,7 @@ In den Stammdaten für Steuern und andere Abgaben sollten Sie alle auf Artikel a Beispiel: Wenn Sie Artikel mit 5% Umsatzsteuer haben, bei anderen eine Dienstleistungssteuer anfällt und bei wieder anderen eine Luxussteuer, dann sollten Ihre Steuerstammdaten auch alle drei Steuern enthalten. -![Vorlage für artikelbezogene Steuer]({{docs_base_url}}/assets/old_images/erpnext/item-wise-tax-master.png) +![Vorlage für artikelbezogene Steuer](/docs/assets/old_images/erpnext/item-wise-tax-master.png) #### Schritt 3: Steuersatz in den Stammdaten für Steuern und Abgaben auf 0 einstellen @@ -27,6 +27,6 @@ In den Stammdaten für Steuern und andere Abgaben wird der Steuersatz mit 0% ein Basierend auf den obigen Einstellungen werden Steuern also wie in den Artikelstammdaten angegeben angewendet. Probieren Sie beispielsweise Folgendes aus: -![Artikelbezogene Steuerkalkulation]({{docs_base_url}}/assets/old_images/erpnext/item-wise-tax-calc.png) +![Artikelbezogene Steuerkalkulation](/docs/assets/old_images/erpnext/item-wise-tax-calc.png) {next} diff --git a/erpnext/docs/user/manual/de/accounts/journal-entry.md b/erpnext/docs/user/manual/de/accounts/journal-entry.md index 08851308ce..3ccc0490ef 100644 --- a/erpnext/docs/user/manual/de/accounts/journal-entry.md +++ b/erpnext/docs/user/manual/de/accounts/journal-entry.md @@ -7,7 +7,7 @@ Um einen neuen Buchungssatz zu erstellen, gehen Sie zu: > Rechnungswesen > Dokumente > Journalbuchung > Neu -Buchungssatz +Buchungssatz In einem Buchungssatz müssen Sie folgendes tun: diff --git a/erpnext/docs/user/manual/de/accounts/making-payments.md b/erpnext/docs/user/manual/de/accounts/making-payments.md index 0c2e041c50..00c8d106bd 100644 --- a/erpnext/docs/user/manual/de/accounts/making-payments.md +++ b/erpnext/docs/user/manual/de/accounts/making-payments.md @@ -8,7 +8,7 @@ Zahlungen zu Ausgangs- oder Eingangsrechnungen können über die Schaltfläche " 1. Geben Sie Schecknummer und Scheckdatum ein. 1. Speichern und Übertragen Sie. -Zahlungen durchführen +Zahlungen durchführen Zahlungen können auch unabhängig von Rechnungen erstellt werden, indem Sie einen neuen Journalbeleg erstellen und die Zahlungsart auswählen. @@ -30,7 +30,7 @@ Für Zahlungen an Lieferanten gilt: ### Beispiel eines Buchungssatzes für eine Zahlung -Zahlungen durchführen +Zahlungen durchführen --- diff --git a/erpnext/docs/user/manual/de/accounts/multi-currency-accounting.md b/erpnext/docs/user/manual/de/accounts/multi-currency-accounting.md index ad9eaaf337..0b0adaa39e 100644 --- a/erpnext/docs/user/manual/de/accounts/multi-currency-accounting.md +++ b/erpnext/docs/user/manual/de/accounts/multi-currency-accounting.md @@ -7,15 +7,15 @@ In ERPNext können Sie Buchungen in unterschiedlichen Währungen erstellen. Beis Um mit Buchungen in unterschiedlichen Währungen zu beginnen, müssen Sie die Buchungswährung im Datensatz des Kontos einstellen. Sie können bei der Anlage eine Währung aus dem Kontenplan auswählen. -Währung über den Kontenplan einstellen +Währung über den Kontenplan einstellen Sie können die Währung auch zuordnen oder bearbeiten, indem Sie den jeweiligen Datensatz für bereits angelegte Konten öffnen. -Kontenwährung anpassen +Kontenwährung anpassen Für Kunden/Lieferanten können Sie die Buchungswährung auch im Gruppendatensatz einstellen. Wenn sich die Buchungswährung der Gruppe von der Firmenwährung unterscheidet, müssen Sie die Standardkonten für Forderungen und Verbindlichkeiten auf diese Währung einstellen. -Währung des Kundenkontos +Währung des Kundenkontos Wenn Sie die Buchungswährung für einen Artikel oder eine Gruppe eingestellt haben, können Sie Buchungen zu ihnen erstellen. Wenn sich die Buchungswährung der Gruppe von der Firmenwährung unterscheidet, dann beschränkt das System beim Erstellen von Transaktionen für diese Gruppe Buchungen auf diese Währung. Wenn die Buchungswährung die selbe wie die Firmenwährung ist, können Sie Transaktionen für diese Guppe in jeder beliebigen Währung erstellen. Aber die Hauptbuch-Buchungen werden immer in der Buchungswährung der Gruppe vorliegen. In jedem Fall ist die Wärung des Verbindlichkeitenkontos immer gleich der Buchungswährung der Gruppe. @@ -33,7 +33,7 @@ Nun wird im POS der gezahlte Betrag in der Transaktionswährung eingegeben, im G Der ausstehende Betrag und Anzahlungsbeträge werden immer in der Währung des Kundenkontos kalkuliert und angezeigt. -Offene Ausgangsrechnung +Offene Ausgangsrechnung #### Eingangsrechnung @@ -43,13 +43,13 @@ In ähnlicher Art und Weise werden in Eingangsrechnungen Buchungen basierend auf In einer Journalbuchung können Sie Transaktionen in unterschiedlichen Währungen erstellen. Es gibt ein Auswahlfeld "Unterschiedliche Währungen" um Buchungen in mehreren Währungen zu aktivieren. Wenn die Option "Unterschiedliche Währungen" ausgewählt wurde, können Sie Konten mit unterschiedlichen Währungen auswählen. -Wechselkurs im Buchungssatz +Wechselkurs im Buchungssatz In der Kontenübersicht zeigt das System den Abschnitt Währung an und holt sich die Kontenwährung und den Wechselkurs automatisch, wenn Sie ein Konto mit ausländischer Währung auswählen. Sie können den Wechselkurs später manuell ändern/anpassen. In einem einzelnen Buchungssatz können Sie nur Konten mit einer alternativen Währung auswählen, abweichend von Konten in der Firmenwährung. Die Beträge für Soll und Haben sollten in der Kontenwährung eingegeben werden, das System berechnet und zeigt dann den Betrag für Soll und Haben automatisch in der Firmenwährung. -Buchungssatz mit verschiedenen Währungen +Buchungssatz mit verschiedenen Währungen #### Beispiel 1: Zahlungsbuchung eines Kunden in alternativer Währung @@ -57,7 +57,7 @@ Nehmen wir an, dass die Standardwährung einer Firma Indische Rupien ist, und di Der Wechselkurs in der Zahlungsbuchung sollte immer der selbe wie auf der Rechnung (60) sein, auch dann, wenn der Wechselkurs am Tag der Zahlung 62 beträgt. Dem Bankkonto wird der Betrag mit einem Wechselkurs von 62 gut geschrieben. Deshalb wird ein Wechelkursgewinn bzw. -verlust basierend auf dem Unterschied im Wechselkurs gebucht. -Zahlungsbuchung +Zahlungsbuchung #### Beispiel 2: Überweisung zwischen Banken (US-Dollar -> Indische Rupien) @@ -100,7 +100,7 @@ Nehmen wir an, dass das Paypal-Konto folgende Beträge, die noch nicht auf Ihr a Angenommen, der Wechselkurs am Zahlungstag ist 62, dann schaut die Buchung zur Banküberweisung wie folgt aus: -Übertrag zwischen den Banken +Übertrag zwischen den Banken ### Berichte @@ -108,12 +108,12 @@ Angenommen, der Wechselkurs am Zahlungstag ist 62, dann schaut die Buchung zur B Im Hauptbuch zeigt das System den Betrag einer Gutschrift/Lastschrift in beiden Währungen an, wenn nach Konto gefiltert wurde, und wenn die Kontenwährung unterschiedlich zur Firmenwährung ist. -Bericht zum Hauptbuch +Bericht zum Hauptbuch #### Forderungs- und Verbindlichkeitenkonten Im Bericht zu den Konten Forderungen und Verbindlichkeiten zeigt das System alle Beträge in der Währung der Gruppe/in der Kontenwährung an. -Bericht zu den Forderungen +Bericht zu den Forderungen {next} diff --git a/erpnext/docs/user/manual/de/accounts/opening-accounts.md b/erpnext/docs/user/manual/de/accounts/opening-accounts.md index f264fc80ea..3edcadcdab 100644 --- a/erpnext/docs/user/manual/de/accounts/opening-accounts.md +++ b/erpnext/docs/user/manual/de/accounts/opening-accounts.md @@ -20,7 +20,7 @@ Wir gehen davon aus, dass Sie mit der Buchhaltung in einem neuen Geschäftsjahr Sie können Konten basierend auf Belegarten auswählen. In so einem Szenario sollte Ihre Bilanz ausgeglichen sein. -Eröffnungskonto +Eröffnungskonto Beachten Sie bitte auch, dass das System abstürzt, wenn es mehr als 300 Bücher gibt. Um so eine Situation zu vermeiden, können Sie Konten über temporäre Konten eröffnen. @@ -38,13 +38,13 @@ Hinweis: Stellen Sie sicher, dass im Abschnitt "Weitere Informationen" "Ist Erö Vervollständigen Sie die Buchungssätze auf der Soll- und Haben-Seite. -Opening Account +Opening Account Um einen Eröffnungsstand einzupflegen, erstellen Sie einen Buchungssatz für ein Konto oder eine Gruppe von Konten. Beispiel: Wenn Sie die Kontenstände von drei Bankkonten einpflegen möchten, dann erstellen Sie Buchungssätze der folgenden Art und Weise: -Opening Account +Opening Account Um einen Ausgleich herzustellen, wird ein temporäres Konto für Vermögen und Verbindlichkeiten verwendet. Wenn Sie einen Anfangsbestand in einem Verbindlichkeitenkonto einpflegen, können Sie zum Ausgleich ein temporäres Vermögenskonto verwenden. @@ -59,7 +59,7 @@ Sie können zwei Eröffnungsbuchungssätze erstellen: Wenn Sie die Buchungen erstellt haben, schaut der Bericht zur Probebilanz in etwa wie folgt aus: -Probebilanz +Probebilanz ### Offene Rechnungen diff --git a/erpnext/docs/user/manual/de/accounts/opening-entry.md b/erpnext/docs/user/manual/de/accounts/opening-entry.md index 8195fafdb2..66c1439a71 100644 --- a/erpnext/docs/user/manual/de/accounts/opening-entry.md +++ b/erpnext/docs/user/manual/de/accounts/opening-entry.md @@ -3,6 +3,6 @@ Wenn Sie eine neue Firma erstellen, dann können Sie das ERPNext-Modul Rechnungswesen starten, indem Sie in den Kontenplan gehen. -Wenn Sie aber von einem reinen Buchhaltungsprogramm wie Tally oder einer FoxPro-basieren Software migrieren, dann lesen Sie unter [Eröffnungsbilanz]({{docs_base_url}}/user/manual/de/accounts/opening-accounts.html) nach. +Wenn Sie aber von einem reinen Buchhaltungsprogramm wie Tally oder einer FoxPro-basieren Software migrieren, dann lesen Sie unter [Eröffnungsbilanz](/docs/user/manual/de/accounts/opening-accounts.html) nach. {next} diff --git a/erpnext/docs/user/manual/de/accounts/point-of-sales-invoice.md b/erpnext/docs/user/manual/de/accounts/point-of-sales-invoice.md index d64e27292c..d33125909a 100644 --- a/erpnext/docs/user/manual/de/accounts/point-of-sales-invoice.md +++ b/erpnext/docs/user/manual/de/accounts/point-of-sales-invoice.md @@ -12,7 +12,7 @@ Sie können eine Ausgangsrechnung des Typs POS erstellen, indem Sie "Ist POS" an In ERPNext können über den POS alle Verkaufs- und Einkaufstransaktionen, wie Ausgangsrechnung, Angebot, Kundenauftrag, Lieferantenauftrag, usw. bearbeitet werden. Über folgende zwei Schritte richten Sie den POS ein: 1. Aktivieren Sie die POS-Ansicht über Einstellungen > Anpassen > Funktionseinstellungen -2. Erstellen Sie einen Datensatz für die [POS-Einstellungen]({{docs_base_url}}/user/manual/de/setting-up/pos-setting.html) +2. Erstellen Sie einen Datensatz für die [POS-Einstellungen](/docs/user/manual/de/setting-up/pos-setting.html) #### Auf die POS-Ansicht umschalten @@ -33,7 +33,7 @@ An der Kasse muss der Verkäufer die Artikel, die der Kunde kauft, auswählen. I **Barcode/Seriennummer:** Ein Barcode/eine Seriennummer ist eine optionale maschinenlesbare Möglichkeit Daten zu einem Objekt einzulesen, mit dem er/sie verbunden ist. Geben Sie wie auf dem Bild unten angegeben den Barcode/die Seriennummer in das Feld ein und warten Sie einen kurzen Moment, dann wird der Artikel automatisch zum Einkaufswagen hinzugefügt. -![POS]({{docs_base_url}}/assets/old_images/erpnext/pos-add-item.png) +![POS](/docs/assets/old_images/erpnext/pos-add-item.png) > Tipp: Um die Menge eines Artikels zu ändern, geben Sie die gewünschte Menge im Feld "Menge" ein. Das wird hauptsächliche dann verwendet, wenn ein Artikel in größeren Mengen gekauft wird. @@ -50,7 +50,7 @@ Wenn Sie mehrere verschiedene Artikel auf einmal entfernen möchten, wählen Sie > Die Schaltfläche "Löschen" erscheint nur, wenn Artikel ausgewählt wurden. -![POS]({{docs_base_url}}/assets/old_images/erpnext/pos-remove-item.png) +![POS](/docs/assets/old_images/erpnext/pos-remove-item.png) ### Zahlung durchführen @@ -60,7 +60,7 @@ Wenn alle Artikel mit Mengenangabe im Einkaufswagen hinzugefügt wurden, können 2. Wählen Sie die Zahlungsart aus. 3. Klicken Sie auf die Schaltfläche "Zahlen" um das Dokument abzuspeichern. -![POS-Zahlung]({{docs_base_url}}/assets/old_images/erpnext/pos-make-payment.png) +![POS-Zahlung](/docs/assets/old_images/erpnext/pos-make-payment.png) Übertragen Sie das Dokument um den Datensatz abzuschliessen. Nachdem das Dokument übertragen wurde, können Sie es entweder ausdrucken oder per E-Mail versenden. diff --git a/erpnext/docs/user/manual/de/accounts/purchase-invoice.md b/erpnext/docs/user/manual/de/accounts/purchase-invoice.md index b3952ef683..6aec9b5de6 100644 --- a/erpnext/docs/user/manual/de/accounts/purchase-invoice.md +++ b/erpnext/docs/user/manual/de/accounts/purchase-invoice.md @@ -9,7 +9,7 @@ Um eine neue Eingangsrechnung zu erstellen, gehen Sie zu: oder klicken Sie in einem Lieferantenauftrag oder einem Kaufbeleg auf "Eingangsrechnung erstellen". -Eingangsrechnung +Eingangsrechnung Das Konzept des Veröffentlichungsdatums ist das gleiche wie bei der Ausgangsrechnung. Rechnungsnummer und Rechnungsdatum helfen Ihnen dabei nachzuvollziehen, unter welchen Daten die Rechnung bei Ihrem Lieferanten ausgewiesen ist. diff --git a/erpnext/docs/user/manual/de/accounts/sales-invoice.md b/erpnext/docs/user/manual/de/accounts/sales-invoice.md index 03b36d811c..7ce30bb637 100644 --- a/erpnext/docs/user/manual/de/accounts/sales-invoice.md +++ b/erpnext/docs/user/manual/de/accounts/sales-invoice.md @@ -9,7 +9,7 @@ Sie können eine Ausgangsrechnung direkt erstellen über: oder indem Sie in der rechten Ecke des Lieferscheins auf "Rechnung erstellen" klicken. -Ausgangsrechnung +Ausgangsrechnung ### Auswirkung auf die Buchhaltung @@ -53,6 +53,6 @@ Wenn Sie einem Kunden eine Rechnung ausstellen wollen, damit dieser eine Anzahlu "Proforma" bezieht sich auf eine Formsache. Warum sollte man das tun? Wenn Sie eine Ausgangsrechnung buchen, dann erscheint diese bei den Forderungen und den Erträgen. Das ist genau dann nicht optimal, wenn nicht sicher ist, ob Ihr Kunden die Anzahlung auch wirklich leistet. Wenn Ihr Kunden aber dennoch eine "Rechnung" will, dann geben Sie ihm ein Angebot (in ERPNext) das als "Proforma-Rechnung" bezeichnet wird. Auf diese Weise ist jeder glücklich. -Das ist ein weithin gebräuchliches Verfahren. Wir bei Frappe machen das genauso. +Das ist ein weithin gebräuchliches Verfahren. Wir bei Frappé machen das genauso. {next} diff --git a/erpnext/docs/user/manual/de/accounts/setup/account-settings.md b/erpnext/docs/user/manual/de/accounts/setup/account-settings.md index d0d9beff82..44aafa4398 100644 --- a/erpnext/docs/user/manual/de/accounts/setup/account-settings.md +++ b/erpnext/docs/user/manual/de/accounts/setup/account-settings.md @@ -1,7 +1,7 @@ # Konteneinstellungen Beigetragen von CWT Connector & Wire Technology GmbH -Konteneinstellungen +Konteneinstellungen * Konten gesperrt bis: Sperren Sie Konten-Transaktionen bis zu einem bestimmten Datum. Niemand bis auf die angegebene Rolle kann dann Buchungen zu diesem Konto erstellen oder verändern. 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 be42c805a2..a7ed877555 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 +Kostenstellenplan Kostenstellen helfen Ihnen bei der Erstellung von Budgets für Geschäftstätigkeiten. @@ -36,7 +36,7 @@ Sie könne ein Budget in der Kostenstelle einrichten. Wenn Sie saisonale Verkäu > Rechnungswesen > Einstellungen > Budgetverteilung > Neu -![Budgetverteilung]({{docs_base_url}}/assets/old_images/erpnext/budgeting.png) +![Budgetverteilung](/docs/assets/old_images/erpnext/budgeting.png) ### Budgetaktionen diff --git a/erpnext/docs/user/manual/de/accounts/setup/fiscal-year.md b/erpnext/docs/user/manual/de/accounts/setup/fiscal-year.md index ce4c750d82..817c55748b 100644 --- a/erpnext/docs/user/manual/de/accounts/setup/fiscal-year.md +++ b/erpnext/docs/user/manual/de/accounts/setup/fiscal-year.md @@ -5,6 +5,6 @@ Ein Geschäftsjahr wird auch als Finanzjahr oder Budgetjahr bezeichnet. Es wird Ein Geschäftsjahr startet normalerweise zu Beginn eines Quartals, wie zum Beispiel am 1. April, 1. Juli oder 1. Oktober. Jedoch geht bei den meisten Firmen das Geschäftsjahr mit dem Kalenderjahr einher und startet am 1. Januar. In den meisten Fällen ist es der einfachere und leichtere Weg. Für einige Organisationen ist es vorteilhaft das Geschäftsjahr zu einem anderen Zeitpunkt zu starten. So können beispielsweise Geschäfte, die saisonal arbeiten zum 1. Juli oder 1. Oktober starten. Ein Geschäft, welches im Herbst den größten Gewinn erwirtschaftet und die größten Ausgaben im Frühling hat, könnte sich auch für den 1. Okober entscheiden. Auf diese Weise weis es wie hoch der Gewinn für das Jahr sein wird und kann seine Ausgaben so anpassen, dass das Gewinnziel erreicht wird. -Geschäftsjahr +Geschäftsjahr {next} diff --git a/erpnext/docs/user/manual/de/accounts/setup/tax-rule.md b/erpnext/docs/user/manual/de/accounts/setup/tax-rule.md index 73d4907213..52fd1d755f 100644 --- a/erpnext/docs/user/manual/de/accounts/setup/tax-rule.md +++ b/erpnext/docs/user/manual/de/accounts/setup/tax-rule.md @@ -1,9 +1,9 @@ # Steuerregeln Beigetragen von CWT Connector & Wire Technology GmbH -Sie können festlegen, welche [Steuervorlage]({{docs_base_url}}/user/manual/de/setting-up/setting-up-taxes.html) auf eine Verkaufs-/Einkaufstransaktion angewendet wird, wenn Sie die Funktion Steuerregel verwenden. +Sie können festlegen, welche [Steuervorlage](/docs/user/manual/de/setting-up/setting-up-taxes.html) auf eine Verkaufs-/Einkaufstransaktion angewendet wird, wenn Sie die Funktion Steuerregel verwenden. -Steuerregel +Steuerregel Sie können Steuerregeln für Umsatz- und für Vorsteuern erstellen. Wenn Sie eine Transaktion durchführen, wählt das System Steuervorlagen basierend auf den definierten Steuerregeln aus und wendet sie an. Das System filtert Steuerregeln nach der Anzahl der maximal zutreffenden Bedingungen. @@ -11,9 +11,9 @@ Betrachten wir ein Szenario um Steuerregeln besser zu verstehen. Angenommen wird haben zwei Steuerregeln wie unten abgebildet erstellt. -Steuerregel +Steuerregel -Steuerregel +Steuerregel In unserem Beispiel gilt Regel 1 für Indien und Regel 2 für Großbritannien. diff --git a/erpnext/docs/user/manual/de/accounts/tools/bank-reconciliation.md b/erpnext/docs/user/manual/de/accounts/tools/bank-reconciliation.md index da1901c8b9..47a0dfefb0 100644 --- a/erpnext/docs/user/manual/de/accounts/tools/bank-reconciliation.md +++ b/erpnext/docs/user/manual/de/accounts/tools/bank-reconciliation.md @@ -11,7 +11,7 @@ Der Kontoauszug erscheint in ERPNext in der Form eines Berichtes. #### Abbilung 1: Kontoauszug -![]({{docs_base_url}}/assets/old_images/erpnext/bank-reconciliation-2.png) +![](/docs/assets/old_images/erpnext/bank-reconciliation-2.png) Wenn Sie den Bericht erhalten, überprüfen Sie bitte, ob das Feld "Abwicklungsdatum" wie bei der Bank angegeben mit dem Kontoauszug übereinstimmt. Wenn die Beträge übereinstimmen, dann werden die Abwicklungsdaten abgeglichen. Wenn die Beträge nicht übereinstimmen, dann überprüfen Sie bitte die Abwicklungsdaten und die Journalbuchungen/Buchungssätze. @@ -33,7 +33,7 @@ Jetzt werden alle Buchungen im angegebenen Zeitraum in der Tabelle darunter ange #### Abbildung 2: Werkzeug zum Kontenabgleich -Kontenabgleich +Kontenabgleich **Schritt 5:** Klicken Sie auf die Schaltfläche "Abwicklungsdatum aktualisieren" diff --git a/erpnext/docs/user/manual/de/accounts/tools/payment-reconciliation.md b/erpnext/docs/user/manual/de/accounts/tools/payment-reconciliation.md index 59b73e8fcc..22e15d4d23 100644 --- a/erpnext/docs/user/manual/de/accounts/tools/payment-reconciliation.md +++ b/erpnext/docs/user/manual/de/accounts/tools/payment-reconciliation.md @@ -7,7 +7,7 @@ Um das Werkzeug zum Zahlungsabgleich zu verwenden, gehen Sie zu: > Rechnungswesen > Werkzeuge > Zahlungsabgleich -Zahlungsabgleich +Zahlungsabgleich **Schritt 1:** Wählen Sie das Konto aus, zu dem die Zahlungen abgeglichen werden sollen. diff --git a/erpnext/docs/user/manual/de/accounts/tools/payment-tool.md b/erpnext/docs/user/manual/de/accounts/tools/payment-tool.md index 97795aa6a7..b76945c9b7 100644 --- a/erpnext/docs/user/manual/de/accounts/tools/payment-tool.md +++ b/erpnext/docs/user/manual/de/accounts/tools/payment-tool.md @@ -23,14 +23,14 @@ Um zum Zahlungswerkzeug zu gelangen, gehen Sie zu * **Hinweis**: Für den Fall, dass der Benutzer an einen Kunden zahlt oder von einem Lieferanten eine Zahlung erhält, fügen Sie manuell Anmerkungen hinzu, die sich auf zutreffende Rechnungen oder Aufträge beziehen. -Zahlungswerkzeug +Zahlungswerkzeug 7\. Sobald die Daten angezogen wurden, klicken Sie auf die detaillierte Buchung und geben Sie den Zahlungsbetrag zur Rechnung/Bestellung/zum Beleg ein. -Zahlungswerkzeug +Zahlungswerkzeug 8\. Klicken Sie auf "Buchungssatz erstellen" um einen neuen Buchungssatz mit den entsprechenden Einzelheiten zu erstellen. -Zahlungswerkzeug +Zahlungswerkzeug {next} diff --git a/erpnext/docs/user/manual/de/accounts/tools/period-closing-voucher.md b/erpnext/docs/user/manual/de/accounts/tools/period-closing-voucher.md index 539e7f97be..0f9407356f 100644 --- a/erpnext/docs/user/manual/de/accounts/tools/period-closing-voucher.md +++ b/erpnext/docs/user/manual/de/accounts/tools/period-closing-voucher.md @@ -22,7 +22,7 @@ Das **Transaktionsdatum** ist das Datum, zu dem der Periodenabschlussbeleg erste Das **abzuschließende Geschäftsjahr** ist das Jahr, für das Sie Ihre Finanzbuchhaltung abschliessen. -Periodenabschlussbeleg +Periodenabschlussbeleg Dieser Beleg überträgt den Gewinn oder Verlust (über die GuV ermittelt) in die Schlußbilanz. Sie sollten ein Konto vom Typ Verbindlichkeiten, wie Gewinnrücklagen oder Überschuss, oder vom Typ Kapital als Schlußkonto auswählen. diff --git a/erpnext/docs/user/manual/de/buying/purchase-order.md b/erpnext/docs/user/manual/de/buying/purchase-order.md index 7c72d1e108..a161d64265 100644 --- a/erpnext/docs/user/manual/de/buying/purchase-order.md +++ b/erpnext/docs/user/manual/de/buying/purchase-order.md @@ -7,7 +7,7 @@ Ein Lieferantenauftrag kann automatisch aus einer Materialanfrage oder einem Lie ### Flußdiagramm der Lieferantenbestellung -Lieferantenauftrag +Lieferantenauftrag In ERPNext können Sie einen Lieferantenauftrag auch direkt erstellen über: @@ -15,7 +15,7 @@ In ERPNext können Sie einen Lieferantenauftrag auch direkt erstellen über: ### Einen Lieferantenauftrag erstellen -Lieferantenauftrag +Lieferantenauftrag Einen Lieferantenauftrag einzugeben ist sehr ähnlich zu einer Lieferantenanfrage. Zusätzlich müssen Sie Folgendes eingeben: @@ -50,7 +50,7 @@ Beispiel: Wenn Sie Ihr Rohmaterial in großen Mengen in Großverpackungen eingek ### Abbildung 3: Umrechung von Einkaufsmaßeinheit in Lagermaßeinheit -Lieferantenauftrag - Maßeinheit +Lieferantenauftrag - Maßeinheit **Schritt 4:** Geben Sie den Umrechnungsfaktor von einer in die andere Maßeinheit an. Beispiel: 100, wenn eine Kiste 100 Stück umfasst. diff --git a/erpnext/docs/user/manual/de/buying/setup/buying-settings.md b/erpnext/docs/user/manual/de/buying/setup/buying-settings.md index e6f0d97a61..e5ee4a4c82 100644 --- a/erpnext/docs/user/manual/de/buying/setup/buying-settings.md +++ b/erpnext/docs/user/manual/de/buying/setup/buying-settings.md @@ -3,7 +3,7 @@ Hier können Sie Werte einstellen, die in den Transaktionen des Moduls Einkauf zugrunde gelegt werden. -![Einkaufseinstellungen]({{docs_base_url}}/assets/img/buying/buying-settings.png) +![Einkaufseinstellungen](/docs/assets/img/buying/buying-settings.png) Lassen Sie uns die verschiedenen Optionen durckgehen. @@ -17,7 +17,7 @@ Sie können den Nummernkreis selbst definieren oder einstellen: > Einstellungen > Einstellungen > Nummernkreis -[Klicken Sie hier, wenn Sie mehr über Nummernkreise wissen möchten]({{docs_base_url}}/user/manual/de/setting-up/settings/naming-series.html) +[Klicken Sie hier, wenn Sie mehr über Nummernkreise wissen möchten](/docs/user/manual/de/setting-up/settings/naming-series.html) ### 2. Standard-Lieferantentyp diff --git a/erpnext/docs/user/manual/de/buying/setup/supplier-type.md b/erpnext/docs/user/manual/de/buying/setup/supplier-type.md index a379ec8192..172aef727c 100644 --- a/erpnext/docs/user/manual/de/buying/setup/supplier-type.md +++ b/erpnext/docs/user/manual/de/buying/setup/supplier-type.md @@ -9,7 +9,7 @@ Aufbauend darauf, was die Lieferanten anbieten, werden Sie in verschiedene Kateg > Einkauf > Einstellungen > Lieferantentyp > Neuer Lieferantentyp -Lieferantentyp +Lieferantentyp Sie können Ihre Lieferanten aus einem breiten Angebot verfügbarer Typen in ERPNext klassifizieren. Wählen Sie aus einem Satz vorgegebener Optionen wie Großhändler, Elekktro, Hardware, Regional, Pharma, Rohstoffe, Dienstleistungen, etc. aus. diff --git a/erpnext/docs/user/manual/de/buying/supplier-quotation.md b/erpnext/docs/user/manual/de/buying/supplier-quotation.md index 93db6a7d6c..30487fcf64 100644 --- a/erpnext/docs/user/manual/de/buying/supplier-quotation.md +++ b/erpnext/docs/user/manual/de/buying/supplier-quotation.md @@ -7,7 +7,7 @@ Sie können ein Lieferantenangebot aus einer Materialanfrage heraus erstellen. ### Flußdiagramm zum Lieferantenangebot -Lieferantenangebot +Lieferantenangebot Sie können ein Lieferantenangebot auch direkt erstellen über: @@ -15,7 +15,7 @@ Sie können ein Lieferantenangebot auch direkt erstellen über: ### Ein Lieferantenangebot erstellen -Lieferantenangebot +Lieferantenangebot Wenn Sie mehrere verschiedene Lieferanten, die Ihnen den selben Artikel liefern, haben, dann senden Sie normalerweise eine Nachricht (Lieferantenanfrage) an verschiedene Lieferanten. In vielen Fällen, besonders dann, wenn Sie den Einkauf zentralisiert haben, werden Sie alle diese Angebote aufzeichnen wollen, so dass diff --git a/erpnext/docs/user/manual/de/buying/supplier.md b/erpnext/docs/user/manual/de/buying/supplier.md index eadb4ce8fc..37eb37662d 100644 --- a/erpnext/docs/user/manual/de/buying/supplier.md +++ b/erpnext/docs/user/manual/de/buying/supplier.md @@ -7,7 +7,7 @@ So können Sie einen neuen Lieferanten erstellen: > Einkauf > Dokumente > Lieferant > Neu -Lieferant +Lieferant ### Kontakte und Adressen 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 c74029b5be..ef40f4534b 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. -Customer Portal Order 1 +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. -Customer Portal Order 1 +Customer Portal Order 1 ### Rechnung mit Status "gezahlt" -Customer Portal Order 1 +Customer Portal Order 1 ### Rechnung mit Status "abgerechnet" -Customer Portal Order 1 +Customer Portal Order 1 {next} diff --git a/erpnext/docs/user/manual/de/customer-portal/issues.md b/erpnext/docs/user/manual/de/customer-portal/issues.md index 8f0c7d3b22..dee8eb1f61 100644 --- a/erpnext/docs/user/manual/de/customer-portal/issues.md +++ b/erpnext/docs/user/manual/de/customer-portal/issues.md @@ -5,17 +5,17 @@ Kunden können über das Kundenportal sehr einfach Fälle eröffnen. Eine einfac ### Ticketliste leeren -Ausgabeliste +Ausgabeliste ### Neuer Fall -Neues Problem +Neues Problem ### Fall öffnen -Ausgabe aufgehoben +Ausgabe aufgehoben ### Fall beantworten -Frage beantworten +Frage beantworten {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 455dfac1da..5bff27599b 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. -Website User Signup +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 0a91145d58..35a660d552 100644 --- a/erpnext/docs/user/manual/de/customer-portal/sign-up.md +++ b/erpnext/docs/user/manual/de/customer-portal/sign-up.md @@ -6,11 +6,11 @@ Kunden müssen sich über die Webseite als Kunden registrieren. ### Schritt 1: Klicken Sie auf das Registrieren-Symbol -Website User Signup +Website User Signup ### Schritt 3: Geben Sie Ihren Kundennamen und Ihre ID ein -Website User Signup +Website User Signup Wenn der Registrierungsprozess abgeschlossen ist, wird dem Kunden eine E-Mail mit dem Passwort zugeschickt. diff --git a/erpnext/docs/user/manual/de/customize-erpnext/custom-doctype.md b/erpnext/docs/user/manual/de/customize-erpnext/custom-doctype.md index 01bfaa7b01..315e062064 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/custom-doctype.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/custom-doctype.md @@ -17,7 +17,7 @@ Um einen neuen DocType zu erstellen, gehen Sie zu: 4. Ist einzeln: Wenn diese Option aktiviert ist, wird dieser DocType zu einem einzeln verwendeten Formular, wie die Vertriebseinstellungen, die nicht von Benutzern reproduziert werden können. 5. Benutzerdefiniert?: Dieses Feld ist standardmäßig aktiviert, wenn ein benutzerdefinierter DocType hinzugefügt wird. -![Grundlagen zum Doctype]({{docs_base_url}}/assets/img/setup/customize/doctype-basics.png) +![Grundlagen zum Doctype](/docs/assets/img/setup/customize/doctype-basics.png) ### Felder @@ -32,7 +32,7 @@ Felder sind viel mehr als Datenbankspalten; sie können sein: 5. Aktionen (Schaltflächen) 6. Anhänge oder Bilder -![Felder im DocType]({{docs_base_url}}/assets/img/setup/customize/Doctype-all-fields.png) +![Felder im DocType](/docs/assets/img/setup/customize/Doctype-all-fields.png) Wenn Sie Felder hinzufügen, müssen Sie den **Typ** angeben. Für eine Bereichs- oder Spaltentrennung ist die **Bezeichnung** optional. Der **Name** (Feldname) ist der Name der Spalte in der Datenbank. @@ -42,19 +42,19 @@ Sie können auch weitere Einstellungen des Feldes eingeben, so z. B. ob es zwing In diesem Abschnitt können Sie Kriterien definieren nach denen Dokumente dieses DocTypes benannt werden. Es gibt viele verschiedene Kriterien nach denen ein Dokument benannt werden kann, wie z. B. dem Wert in diesem spezifischen Feld, oder die Benamungsserie, oder der Wert der vom Benutzer an der Eingabeaufforderung eingegeben wird, die angezeit wird, wenn ein Dokument abgespeichert wird. Im folgenden Beispiel benennen wir auf Grundlage des Wertes im Feld **book_name**. -![Bezeichnung von DocTypes]({{docs_base_url}}/assets/img/setup/customize/doctype-field-naming.png) +![Bezeichnung von DocTypes](/docs/assets/img/setup/customize/doctype-field-naming.png) ### Berechtigung In dieser Tabelle können Sie Rollen und Berechtigungs-Rollen für diese für die betreffenden DocTypes auswählen. -![Berechtigungen bei DocTypes]({{docs_base_url}}/assets/img/setup/customize/Doctype-permissions.png) +![Berechtigungen bei DocTypes](/docs/assets/img/setup/customize/Doctype-permissions.png) ### DocTypes abspeichern Wenn Sie einen DocType abspeichern, erscheint ein Popup-Fenster über welches Sie den Namen des DocTypes eingeben können. -![DocTypes speichern]({{docs_base_url}}/assets/img/setup/customize/Doctype-save.png) +![DocTypes speichern](/docs/assets/img/setup/customize/Doctype-save.png) ### Der DocType im System @@ -62,12 +62,12 @@ Um den DocType zu aktivieren, öffnen Sie das Modul, welches Sie für den DocTyp > Personalwesen > Dokumente > Buch -![Übersicht der DocTypes]({{docs_base_url}}/assets/img/setup/customize/Doctype-list-view.png) +![Übersicht der DocTypes](/docs/assets/img/setup/customize/Doctype-list-view.png) ### Buchvorlage Wenn Sie die Felder ausfüllen, schaut das ganze dann so aus. -![Übersicht der DocTypes]({{docs_base_url}}/assets/img/setup/customize/Doctype-book-added.png) +![Übersicht der DocTypes](/docs/assets/img/setup/customize/Doctype-book-added.png) {next} 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 7d0f0faa10..e890f5ddee 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md @@ -12,11 +12,11 @@ Um ein benutzerdefiniertes Feld hinzuzufügen, gehen Sie zu: > Einstellungen > Anpassen > Benutzerdefiniertes Feld > Neu -Sie können ein neues benutzerdefiniertes Feld auch über das [Werkzeug zum Anpassen von Feldern]({{docs_base_url}}/user/manual/de/customize-erpnext/customize-form) einfügen. +Sie können ein neues benutzerdefiniertes Feld auch über das [Werkzeug zum Anpassen von Feldern](/docs/user/manual/de/customize-erpnext/customize-form) einfügen. 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 +Formular anpassen - benutzerdefiniertes Feld Im Folgenden sind die Schritte aufgeführt, wie man ein benutzerdefiniertes Feld in ein bestehendes Formular einfügt. @@ -28,31 +28,31 @@ 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. -Select Document Type +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. -Select Document Type +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. -Select Document Type +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. -Select Document Type +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. +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/user/manual/en/customize-erpnext/articles/creating-custom-link-field) um weitere Informationen darüber zu erhalten, wie man benutzerdefinierte Verknüpfungsfelder erstellt. -Select Document Type +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. @@ -69,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. -Select Document Type +Select Document Type ### Benutzerdefiniertes Feld löschen diff --git a/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md b/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md index c4e41eccda..347a8a8a43 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md @@ -15,6 +15,6 @@ Fügen Sie also im Skript Ausgangsrechnung Kunde Folgendes hinzu: * * * -Sehen Sie hierzu auch: [Wie man ein benutzerdefiniertes Skript erstellt]({{docs_base_url}}/user/manual/de/customize-erpnext/custom-scripts/). +Sehen Sie hierzu auch: [Wie man ein benutzerdefiniertes Skript erstellt](/docs/user/manual/de/customize-erpnext/custom-scripts/). {next} diff --git a/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/index.md b/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/index.md index 8e2e842c8c..7c62ae5ade 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/index.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/custom-scripts/index.md @@ -5,7 +5,7 @@ Wenn Sie Formate von ERPNext-Formularen ändern wollen, können Sie das über be > Einstellungen > Anpassen > Benutzerdefiniertes Skript -Custom Script +Custom Script ### Themen diff --git a/erpnext/docs/user/manual/de/customize-erpnext/customize-form.md b/erpnext/docs/user/manual/de/customize-erpnext/customize-form.md index dbb9bc5798..4060f43c7b 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/customize-form.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/customize-form.md @@ -13,13 +13,13 @@ Sie können zum benutzerdefinierten Formular folgendermaßen gelangen: Der Systemmanager findet die Option "Benutzerdefiniertes Formular" auch in der Liste Kundenauftrag (bzw. jedes andere Formular für diesen Sachverhalt). -![Formular anpassen - Listenansicht]({{docs_base_url}}/assets/old_images/erpnext/customize-form-list-view.png) +![Formular anpassen - Listenansicht](/docs/assets/old_images/erpnext/customize-form-list-view.png) ### Schritt 2: Wählen Sie den DocType/das Dokument Wählen Sie jetzt den DocType/das Dokument aus, welcher/s das anzupassende Feld enthält. -![Formular anpassen - Dokument]({{docs_base_url}}/assets/old_images/erpnext/customize-form-document.png) +![Formular anpassen - Dokument](/docs/assets/old_images/erpnext/customize-form-document.png) ### Schritt 3: Bearbeiten Sie die Eigenschaften @@ -27,7 +27,7 @@ Wenn Sie den DocType/das Dokument ausgewählt haben, werden alle Felder als Zeil Wenn Sie auf die Zeile "Projektname" klicken, werden Felder mit verschiedenen Eigenschaften für dieses Feld angezeigt. Um die Eigenschaft "Ist zwingend erforderlich" für ein Feld anzupassen gibt es ein Feld "Zwingend erfoderlich". Wenn Sie dieses Feld markieren, wird das Feld "Projektname" im Angebotsformular als zwingend erforderlich eingestellt. -![Formular anpassen - Zwingend erfoderliche Angaben]({{docs_base_url}}/assets/old_images/erpnext/customize-form-mandatory.png) +![Formular anpassen - Zwingend erfoderliche Angaben](/docs/assets/old_images/erpnext/customize-form-mandatory.png) Genauso können Sie folgende Eigenschaften eines Feldes anpassen. @@ -40,7 +40,7 @@ Genauso können Sie folgende Eigenschaften eines Feldes anpassen. ### Schritt 4: Aktualisieren -![Formular anpassen - Aktualisieren]({{docs_base_url}}/assets/old_images/erpnext/customize-form-update.png) +![Formular anpassen - Aktualisieren](/docs/assets/old_images/erpnext/customize-form-update.png) Bevor Sie das Formular "Kundenauftrag" testen, sollten Sie den Cache leeren und den Inhalt des Browserfensters aktualiseren, um die Änderungen wirksam werden zu lassen. @@ -71,7 +71,7 @@ Im Folgenden erhalten Sie eine Auflistung der Eigenschaften, die Sie für ein be Feldtyp - Klicken Sie hier um mehr über Feldtypen zu erfahren. + Klicken Sie hier um mehr über Feldtypen zu erfahren. Optionen diff --git a/erpnext/docs/user/manual/de/customize-erpnext/document-title.md b/erpnext/docs/user/manual/de/customize-erpnext/document-title.md index 3b13208b8a..5e5766be20 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/document-title.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/document-title.md @@ -24,14 +24,14 @@ Sie können eine Bezeichnung definieren, indem Sie Dokumenteneinstellungen in ge > {customer_name} for {project} Bezeichnung anpassen + src="/docs/assets/img/customize/customize-title.gif"> ### Fest eingestellte und bearbeitbare Bezeichnungen Wenn Ihre Bezeichnung als Standard-Bezeichnung generiert wurde, kann sie vom Benutzer durch klicken auf den Kopf des Dokuments bearbeitet werden. Bearbeitbare Bezeichnung + src="/docs/assets/img/customize/editable-title.gif"> Wenn Sie eine fest eingestellte Bezeichnung haben wollen, können Sie dies als Regel unter **Optionen** einstellen. Auf diese Weise wird die Bezeichnung jedesmal automatisch aktualisiert, wenn das Dokument aktualisiert wird. diff --git a/erpnext/docs/user/manual/de/customize-erpnext/hiding-modules-and-features.md b/erpnext/docs/user/manual/de/customize-erpnext/hiding-modules-and-features.md index 831540b02a..3e3ebe0942 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/hiding-modules-and-features.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/hiding-modules-and-features.md @@ -7,7 +7,7 @@ Wie Sie aus dieser Anleitung ersehen können, beinhaltet ERPNext viele verschied > Einstellungen > Werkzeuge > Funktionen verbergen/einblenden -![Funktionen verbergen]({{docs_base_url}}/assets/old_images/erpnext/hide-features.png) +![Funktionen verbergen](/docs/assets/old_images/erpnext/hide-features.png) Aktivieren/Deaktivieren Sie die Funktionen, die Sie verwenden möchten bzw. nicht verwenden wollen und laden Sie Ihre Seite neu, damit die Änderungen übernommen werden. @@ -19,7 +19,7 @@ Um Module (Symbole) auf der Homepage zu verbergen, gehen Sie zu: > Einstellungen > Werkzeuge > Moduleinstellungen -![Module verbergen/anzeigen]({{docs_base_url}}/assets/old_images/erpnext/hide-module.png) +![Module verbergen/anzeigen](/docs/assets/old_images/erpnext/hide-module.png) > Anmerkung: Module werden automatisch für Benutzer verborgen, die keine Berechtigungen für Dokumente dieses Moduls haben. Beispiel: Wenn ein Benutzer keine Berechtigungen für Lieferantenauftrag, Materialanfrage und Lieferant hat, dann wird das Modul "Einkauf" automatisch verborgen. diff --git a/erpnext/docs/user/manual/de/customize-erpnext/print-format.md b/erpnext/docs/user/manual/de/customize-erpnext/print-format.md index 9448201ac0..b23335d69a 100644 --- a/erpnext/docs/user/manual/de/customize-erpnext/print-format.md +++ b/erpnext/docs/user/manual/de/customize-erpnext/print-format.md @@ -14,13 +14,13 @@ Um Ihre eigenen Versionen zu erstellen, öffnen Sie eine bereits vorhandene Vorl > Einstellungen > Druck > Druckformate -![Druckformat]({{docs_base_url}}/assets/img/customize/print-settings.png) +![Druckformat](/docs/assets/img/customize/print-settings.png) Wählen Sie den Typ des Druckformats, welches Sie bearbeiten wollen, und klicken Sie auf die Schaltfläche "Kopieren" in der rechten Spalte. Es öffnet sich ein neues Druckformat mit der Einstellung NEIN für "für "Ist Standard" und Sie kännen das Druckformat bearbeiten. Ein Druckformat zu bearbeiten ist eine langwierige Angelegenheit und Sie müssen etwas Grundwissen über HTML, CSS und Python mitbringen, um dies verstehen zu können. Wenn Sie Hilfe benötigen, erstellen Sie bitte im Forum eine Anfrage. -Printformate werden auf der Serverseite über die [Programmiersprache Jinja Templating](http://jinja.pocoo.org/docs/templates/) erstellt. Alle Formulare haben Zugriff auf doc object, das Informationen über das Dokument enthält, welches formatiert wird. Sie können über das Frappe-Modul auch auf oft verwendete Hilfswerkzeuge zugreifen. +Printformate werden auf der Serverseite über die [Programmiersprache Jinja Templating](http://jinja.pocoo.org/docs/templates/) erstellt. Alle Formulare haben Zugriff auf doc object, das Informationen über das Dokument enthält, welches formatiert wird. Sie können über das Frappé-Modul auch auf oft verwendete Hilfswerkzeuge zugreifen. Zum Bearbeiten des Erscheinungsbildes bietet sich das [Bootstrap CSS Framework](http://getbootstrap.com/) an und Sie können die volle Bandbreite dieses Werkzeuges nutzen. @@ -37,7 +37,7 @@ Um Ihre Druck- und PDF-Einstellungen zu bearbeiten/zu aktualisieren, gehen Sie z > Einstellungen > Druck und Branding > Druckeinstellungen -![Druckformat]({{docs_base_url}}/assets/img/customize/print-settings.png) +![Druckformat](/docs/assets/img/customize/print-settings.png) ### Beispiel diff --git a/erpnext/docs/user/manual/de/human-resources/appraisal.md b/erpnext/docs/user/manual/de/human-resources/appraisal.md index ccec5b2cdf..34a9217d33 100644 --- a/erpnext/docs/user/manual/de/human-resources/appraisal.md +++ b/erpnext/docs/user/manual/de/human-resources/appraisal.md @@ -7,13 +7,13 @@ In ERPNext können Sie Mitarbeiterbeurteilungen verwalten, in dem Sie für jede #### Schritt 1: Wählen Sie eine Bewertungsvorlage aus -Beurteilung +Beurteilung Wenn Sie eine Vorlage ausgewählt haben, erscheint der restliche Teil des Formulars. #### Schritt 2: Geben Sie die Daten des Mitarbeiters ein -Beurteilung +Beurteilung Wenn die Bewertungsvorlage fertig ist, können Sie für jeden Zeitraum Bewertungen aufzeichnen, über die Sie die Leistung nachverfolgen können. Sie können für jeden Paramter bis zu 5 Punkte vergeben und das System berechnet die Gesamtbeurteilung des Mitarbeiters. diff --git a/erpnext/docs/user/manual/de/human-resources/attendance.md b/erpnext/docs/user/manual/de/human-resources/attendance.md index 9dd45abfbe..9ec5f953cb 100644 --- a/erpnext/docs/user/manual/de/human-resources/attendance.md +++ b/erpnext/docs/user/manual/de/human-resources/attendance.md @@ -5,10 +5,10 @@ Ein Anwesenheitsdatensatz der wiedergibt, dass ein Mitarbeiter zu einem bestimmt > Personalwesen > Dokumente > Anwesenheit > Neu -Anwesenheit +Anwesenheit Sie können einen monatlichen Report über Ihre Anwesenheiten erhalten, indem Sie zum "Monatlichen Anwesenheitsbericht" gehen. -Sie können auch ganz einfach Anwesenheiten über das [Werkzeug zum Hochladen von Anwesenheiten]({{docs_base_url}}/user/manual/de/human-resources/tools/upload-attendance.html) hochladen. +Sie können auch ganz einfach Anwesenheiten über das [Werkzeug zum Hochladen von Anwesenheiten](/docs/user/manual/de/human-resources/tools/upload-attendance.html) hochladen. {next} diff --git a/erpnext/docs/user/manual/de/human-resources/employee.md b/erpnext/docs/user/manual/de/human-resources/employee.md index 7d39f6a841..e5995695e3 100644 --- a/erpnext/docs/user/manual/de/human-resources/employee.md +++ b/erpnext/docs/user/manual/de/human-resources/employee.md @@ -7,6 +7,6 @@ Um einen neuen Mitarbeiter zu erstellen, gehen Sie zu: > Personalwesen > Dokumente > Mitarbeiter > Neu -Mitarbeiter +Mitarbeiter {next} diff --git a/erpnext/docs/user/manual/de/human-resources/expense-claim.md b/erpnext/docs/user/manual/de/human-resources/expense-claim.md index 3fda0494ee..12e69bfb3b 100644 --- a/erpnext/docs/user/manual/de/human-resources/expense-claim.md +++ b/erpnext/docs/user/manual/de/human-resources/expense-claim.md @@ -7,7 +7,7 @@ Um eine neue Aufwandsabrechnung zu erstellen, gehen Sie zu: > Personalwesen > Dokumente > Aufwandsabrechnung > Neu -Aufwandsabrechnung +Aufwandsabrechnung Geben Sie die Mitarbeiter-ID, das Datum und die Auflistung der Ausgaben, die Sie zurückerstattet haben möchten, ein und "übertragen" Sie den Datensatz. @@ -27,6 +27,6 @@ Die genehmigte Aufwandsabrechnung muss in eine Journalbuchung umgewandelt werden * Um eine Aufwandsabrechnung mit einer Aufgabe oder einem Projekt zu verknüpfen, geben Sie die Aufgabe oder das Projekt an, während Sie eine Aufwandsabrechnung erstellen. -Aufwandsabrechnung - Verknüpfung zum Projekt +Aufwandsabrechnung - Verknüpfung zum Projekt {next} diff --git a/erpnext/docs/user/manual/de/human-resources/human-resources-reports.md b/erpnext/docs/user/manual/de/human-resources/human-resources-reports.md index bf0e195051..8cef87d712 100644 --- a/erpnext/docs/user/manual/de/human-resources/human-resources-reports.md +++ b/erpnext/docs/user/manual/de/human-resources/human-resources-reports.md @@ -5,30 +5,30 @@ Der Bericht zur Mitarbeiter-Urlaubsauswertung zeigt Mitarbeiter und deren Urlaubsverteilung nach den unterschiedlichen Urlaubstypen an. Der Bericht richtet sich nach der Anzahl des genehmigten Urlaubs. -Mitarbeier-Urlaubskonto +Mitarbeier-Urlaubskonto ### Mitarbeiter-Geburtstag Dieser Bericht zeigt die Geburtstage der Mitarbeiter an. -Mitarbeiter-Geburtstag +Mitarbeiter-Geburtstag ### Mitarbeiterinformationen Dieser Bericht wichtige Informationen über Mitarbeiter in den Mitarbeiterdatensätzen. -Mitarbeiterinformation +Mitarbeiterinformation ### Übersicht monatliche Gehälter Dieser Bericht zeigt die Nettozahlungen der Mitarbeiter und deren einzelne Bestandteile im Überblick. -Übersicht monatliche Gehälter +Übersicht monatliche Gehälter ### Monatliche Anwesenheitsliste Dieser Bericht zeit die monatlichen Anwesenheiten ausgewählter Mitarbeiter im Überblick. -Monatliche Anwesenheitsliste +Monatliche Anwesenheitsliste {next} diff --git a/erpnext/docs/user/manual/de/human-resources/job-applicant.md b/erpnext/docs/user/manual/de/human-resources/job-applicant.md index 51b0359c9b..62de8011a8 100644 --- a/erpnext/docs/user/manual/de/human-resources/job-applicant.md +++ b/erpnext/docs/user/manual/de/human-resources/job-applicant.md @@ -1,13 +1,13 @@ # Bewerber Beigetragen von CWT Connector & Wire Technology GmbH -Sie können eine Liste von Bewerbern auf [offene Stellen]({{docs_base_url}}/user/manual/de/human-resources/job-opening.html) verwalten. +Sie können eine Liste von Bewerbern auf [offene Stellen](/docs/user/manual/de/human-resources/job-opening.html) verwalten. Um einen neuen Bewerber anzulegen, gehen Sie zu: > Personalwesen > Dokumente > Bewerber > Neu -Bewerber +Bewerber ### Verknüpfung mit einem E-Mail-Konto @@ -20,6 +20,6 @@ Sie können die Bewerbersuche mit einem E-Mail-Konto verknüpfen. Wenn wir anneh * Geben Sie die E-Mail-ID und das Passwort ein und aktivieren Sie "Eingehend aktivieren". * Unter "Anhängen an" geben Sie "Bewerber" an. -E-Mail-Konto +E-Mail-Konto {next} diff --git a/erpnext/docs/user/manual/de/human-resources/job-opening.md b/erpnext/docs/user/manual/de/human-resources/job-opening.md index b14516eb14..0231df62c4 100644 --- a/erpnext/docs/user/manual/de/human-resources/job-opening.md +++ b/erpnext/docs/user/manual/de/human-resources/job-opening.md @@ -7,6 +7,6 @@ Um eine neue Offene Stelle anzulegen, gehen Sie zu: > Personalwesen > Dokumente > Offene Stellen > Neu -Offene Stellen +Offene Stellen {next} diff --git a/erpnext/docs/user/manual/de/human-resources/leave-application.md b/erpnext/docs/user/manual/de/human-resources/leave-application.md index fc16d83015..faf5b6efea 100644 --- a/erpnext/docs/user/manual/de/human-resources/leave-application.md +++ b/erpnext/docs/user/manual/de/human-resources/leave-application.md @@ -5,17 +5,17 @@ Wenn Ihre Firma ein formales System hat, wo Mitarbeiter einen Antrag für Ihren > Personalwesen > Dokumente > Urlaubsantrag > Neu -Urlaubsantrag +Urlaubsantrag ### Urlaubsbewilliger einstellen * Ein Urlaubsgenehmiger ist ein Benutzer der Urlaubsanträge eines Mitarbeiters bewilligen kann. * Sie müssen eine Liste von Urlaubsbewilligern für einen Mitarbeiter in den Mitarbeiterstammdaten angeben. -Urlaubsgenehmiger +Urlaubsgenehmiger -> Tipp: Wenn Sie möchten, dass alle Benutzer ihre Urlaubsanträge selbst erstellen, können Sie in den Einstellungen zur Urlaubsgenehmigung Ihre Mitarbeiter-IDs als so einstellen, dass sie für die Regel zutreffend sind. Für weiterführende Informationen kesen Sie hierzu die Diskussion zum Thema [Einstellungen zu Genehmigungen]({{docs_base_url}}/user/manual/de/setting-up/users-and-permissions/user-permissions.html). +> Tipp: Wenn Sie möchten, dass alle Benutzer ihre Urlaubsanträge selbst erstellen, können Sie in den Einstellungen zur Urlaubsgenehmigung Ihre Mitarbeiter-IDs als so einstellen, dass sie für die Regel zutreffend sind. Für weiterführende Informationen kesen Sie hierzu die Diskussion zum Thema [Einstellungen zu Genehmigungen](/docs/user/manual/de/setting-up/users-and-permissions/user-permissions.html). -Um einem Mitarbeiter Urlaub zuzuteilen, kreuzen Sie [Urlaubszuteilung]({{docs_base_url}}/user/manual/de/human-resources/setup/leave-allocation.html) an. +Um einem Mitarbeiter Urlaub zuzuteilen, kreuzen Sie [Urlaubszuteilung](/docs/user/manual/de/human-resources/setup/leave-allocation.html) an. {next} diff --git a/erpnext/docs/user/manual/de/human-resources/offer-letter.md b/erpnext/docs/user/manual/de/human-resources/offer-letter.md index 5566071205..e5457748eb 100644 --- a/erpnext/docs/user/manual/de/human-resources/offer-letter.md +++ b/erpnext/docs/user/manual/de/human-resources/offer-letter.md @@ -7,12 +7,12 @@ Ein ERPNext können Sie einen Datensatz zu den Angebotsschreiben, die Sie an Bew > Personalwesen > Dokumente > Angebotsschreiben > Neu -Angebotsschreiben +Angebotsschreiben -> Anmerkung: Angebotsschreiben kann nur zu einem [Bewerber]({{docs_base_url}}/user/manual/de/human-resources/job-applicant.html) erstellt werden. +> Anmerkung: Angebotsschreiben kann nur zu einem [Bewerber](/docs/user/manual/de/human-resources/job-applicant.html) erstellt werden. Es gibt ein vordefiniertes Druckformat zum Angebotsschreiben. -Angebotsschreiben +Angebotsschreiben {next} diff --git a/erpnext/docs/user/manual/de/human-resources/salary-and-payroll.md b/erpnext/docs/user/manual/de/human-resources/salary-and-payroll.md index a8eb33a7fa..f47dda24b2 100644 --- a/erpnext/docs/user/manual/de/human-resources/salary-and-payroll.md +++ b/erpnext/docs/user/manual/de/human-resources/salary-and-payroll.md @@ -43,7 +43,7 @@ Um eine neue Gehaltsstruktur zu erstellen, gehen Sie zu: #### Abbildung 1: Gehaltsstruktur -Gehaltsstruktur +Gehaltsstruktur ### In der Gehaltsstruktur @@ -67,7 +67,7 @@ Um eine Gehaltsabrechnung über die Gehaltsstruktur zu erstellen, klicken Sie au #### Abbildung 2: Gehaltsabrechnung -Lohnzettel +Lohnzettel Sie können auch Gehaltsabrechnungen für mehrere verschiedene Mitarbeiter über "Gehaltsabrechnung bearbeiten" anlegen. @@ -75,7 +75,7 @@ Sie können auch Gehaltsabrechnungen für mehrere verschiedene Mitarbeiter über #### Abbildung 3: Gehaltsabrechnung durchführen -Gehaltsabrechnung durchführen +Gehaltsabrechnung durchführen Beim Bearbeiten einer Gehaltsabrechnung diff --git a/erpnext/docs/user/manual/de/human-resources/setup/branch.md b/erpnext/docs/user/manual/de/human-resources/setup/branch.md index f6913a7223..1328d7350c 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/branch.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/branch.md @@ -3,6 +3,6 @@ Filialen Ihres Unternehmens -Filiale +Filiale {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/deduction-type.md b/erpnext/docs/user/manual/de/human-resources/setup/deduction-type.md index ddd3e9d2d3..e50b51f5bc 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/deduction-type.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/deduction-type.md @@ -7,6 +7,6 @@ Um eine neue Abzugsart anzulegen, gehen Sie zu: > Personalwesen > Einstellungen > Abzugsart > Neu -Abzugsart +Abzugsart {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/department.md b/erpnext/docs/user/manual/de/human-resources/setup/department.md index c54928b652..532174f7cb 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/department.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/department.md @@ -3,6 +3,6 @@ Abteilungen Ihres Unternehmens -Abteilung +Abteilung {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/designation.md b/erpnext/docs/user/manual/de/human-resources/setup/designation.md index dee66582ef..0d01588e9b 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/designation.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/designation.md @@ -3,6 +3,6 @@ Stellenbezeichnungen in Ihrem Unternehmen -Stellenbezeichnung +Stellenbezeichnung {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/earning-type.md b/erpnext/docs/user/manual/de/human-resources/setup/earning-type.md index d79e6bbb2f..51eb375cfe 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/earning-type.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/earning-type.md @@ -7,6 +7,6 @@ Um eine neue Eikommensart zu erstellen, gehen Sie zu: > Personalwesen > Einstellungen > Einkommensart > Neu -Einkommensart +Einkommensart {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/employment-type.md b/erpnext/docs/user/manual/de/human-resources/setup/employment-type.md index 9c334cf2a7..c9d6ce2298 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/employment-type.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/employment-type.md @@ -3,6 +3,6 @@ Verschiedene Beschäftigungsverträge, die Sie mit Ihren Mitarbeitern abgeschlossen haben. -Art der Beschäftigung +Art der Beschäftigung {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/holyday-list.md b/erpnext/docs/user/manual/de/human-resources/setup/holyday-list.md index cec5110c93..161a867584 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/holyday-list.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/holyday-list.md @@ -3,6 +3,6 @@ Sie können Urlaub für ein bestimmtes Jahr über die Urlaubsübersicht planen. -Urlaubsübersicht +Urlaubsübersicht {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/hr-settings.md b/erpnext/docs/user/manual/de/human-resources/setup/hr-settings.md index c4545983e8..8e2e5e2fb5 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/hr-settings.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/hr-settings.md @@ -3,6 +3,6 @@ Globale Einstellungen zu Dokumenten des Personalwesens -Einstellungen zum Personalwesen +Einstellungen zum Personalwesen {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/leave-allocation.md b/erpnext/docs/user/manual/de/human-resources/setup/leave-allocation.md index 2e80ddf555..d49121b266 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/leave-allocation.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/leave-allocation.md @@ -3,8 +3,8 @@ Hilft Ihnen Urlaub bestimmten Mitarbeitern zuzuteilen -Urlaubszuordnung +Urlaubszuordnung -Um mehreren verschhiedenen Mitarbeitern Urlaub zuzuteilen, nutzen Sie das [Urlaubszuordnungs-Werkzeug]({{docs_base_url}}/user/manual/de/human-resources/tools/leave-allocation-tool.html). +Um mehreren verschhiedenen Mitarbeitern Urlaub zuzuteilen, nutzen Sie das [Urlaubszuordnungs-Werkzeug](/docs/user/manual/de/human-resources/tools/leave-allocation-tool.html). {next} diff --git a/erpnext/docs/user/manual/de/human-resources/setup/leave-type.md b/erpnext/docs/user/manual/de/human-resources/setup/leave-type.md index ece1c58b19..97b5af8589 100644 --- a/erpnext/docs/user/manual/de/human-resources/setup/leave-type.md +++ b/erpnext/docs/user/manual/de/human-resources/setup/leave-type.md @@ -3,7 +3,7 @@ Geben Sie den Urlaubstyp an, der Mitarbeitern zugeordnet werden kann. -Urlaubstyp +Urlaubstyp * "Maximale zulässige Urlaubstage" gibt die Maximalanzahl von Tagen dieses Urlaubstyps an, die zusammen genommen werden können. * "Ist unbezahlter Urlaub" gibt an, dass es sich um unbezahlten Urlaub handelt. diff --git a/erpnext/docs/user/manual/de/human-resources/tools/leave-allocation-tool.md b/erpnext/docs/user/manual/de/human-resources/tools/leave-allocation-tool.md index de109f433b..a4a786250e 100644 --- a/erpnext/docs/user/manual/de/human-resources/tools/leave-allocation-tool.md +++ b/erpnext/docs/user/manual/de/human-resources/tools/leave-allocation-tool.md @@ -3,6 +3,6 @@ Das Urlaubszuordnungs-Werkzeug hilft Ihnen dabei eine bestimmte Menge an Urlaub einem Mitarbeiter zuzuteilen. -Urlaubsantrag +Urlaubsantrag {next} diff --git a/erpnext/docs/user/manual/de/human-resources/tools/upload-attendance.md b/erpnext/docs/user/manual/de/human-resources/tools/upload-attendance.md index 3f94e83875..ba351b52fa 100644 --- a/erpnext/docs/user/manual/de/human-resources/tools/upload-attendance.md +++ b/erpnext/docs/user/manual/de/human-resources/tools/upload-attendance.md @@ -7,6 +7,6 @@ Um eine Anwesenheit hochzuladen, gehen Sie zu: > Personalwesen > Werkzeuge > Anwesenheit hochladen -Anwesenheit hochladen +Anwesenheit hochladen {next} diff --git a/erpnext/docs/user/manual/de/introduction/getting-started-with-erpnext.md b/erpnext/docs/user/manual/de/introduction/getting-started-with-erpnext.md index b23be11242..cba04425de 100644 --- a/erpnext/docs/user/manual/de/introduction/getting-started-with-erpnext.md +++ b/erpnext/docs/user/manual/de/introduction/getting-started-with-erpnext.md @@ -11,7 +11,7 @@ Wenn Sie die Benutzerschnittstelle ausprobieren wollen und wissen wollen, wie si ### 2\. Richten Sie sich ein kostenloses Konto bei ERPNext.com ein -ERPNext.com wird von der Organisation (Frappe), die ERPNext veröffentlicht, verwaltet. Sie können sich ein eigenes Konto anlegen, indem Sie sich auf der [Internetseite registrieren](https://erpnext.com). +ERPNext.com wird von der Organisation (Frappé), die ERPNext veröffentlicht, verwaltet. Sie können sich ein eigenes Konto anlegen, indem Sie sich auf der [Internetseite registrieren](https://erpnext.com). Sie können Sich außerdem auch dazu entscheiden, Ihre Software auf ERPNext.com zu speichern, wenn Sie einen Hostingvertrag abschliessen. Das ist eine Möglichkeit, wie Sie die Organisation, die ERPNext entwickelt und verbessert, unterstützen können. In diesem Fall bekommen Sie zusätzlich direkten Support bei Hostingfragen. @@ -23,6 +23,6 @@ Um Ärgernisse bei der Installation von Instanzen zu vermeiden, ist ERPNext als ### 4\. Installieren Sie ERPNext auf Ihrem Unix/Linux/Mac-Rechner -Wenn Sie sich mit der Installation von Anwendungen auf *nix-Plattformen auskennen, lesen Sie die Anweisungen zur Installation des [Frappe Bench](https://github.com/frappe/bench). +Wenn Sie sich mit der Installation von Anwendungen auf *nix-Plattformen auskennen, lesen Sie die Anweisungen zur Installation des [Frappé Bench](https://github.com/frappe/bench). {next} diff --git a/erpnext/docs/user/manual/de/introduction/key-workflows.md b/erpnext/docs/user/manual/de/introduction/key-workflows.md index ac5392c243..18404794de 100644 --- a/erpnext/docs/user/manual/de/introduction/key-workflows.md +++ b/erpnext/docs/user/manual/de/introduction/key-workflows.md @@ -4,7 +4,7 @@ Dieses Diagramm stellt dar, wie ERPNext die Informationen und Vorgänge in Ihrem Unternehmen über Schlüsselfunktionen nachverfolgt. Dieses Diagramm gibt nicht alle Funktionalitäten von ERPNext wieder. -Hohe Auflösung +Hohe Auflösung _Anmerkung: Nicht alle Schritte sind zwingend erforderlich. ERPNext erlaubt es Ihnen nach eigenem Gutdünken Schritte auszulassen, wenn Sie den Prozess vereinfachen wollen._ diff --git a/erpnext/docs/user/manual/de/introduction/the-champion.md b/erpnext/docs/user/manual/de/introduction/the-champion.md index 912c25213b..b04de656ed 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 -Champion +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/manufacturing/bill-of-materials.md b/erpnext/docs/user/manual/de/manufacturing/bill-of-materials.md index 55501e6753..52ab420d22 100644 --- a/erpnext/docs/user/manual/de/manufacturing/bill-of-materials.md +++ b/erpnext/docs/user/manual/de/manufacturing/bill-of-materials.md @@ -7,11 +7,11 @@ Um passende Einkaufsanfragen zu erstellen, müssen Sie Ihre Stücklisten immer a >Fertigung > Dokumente > Stückliste > Neue Stückliste -Task +Task Um Arbeitsgänge hinzuzufügen, wählen Sie "Mit Arbeitsgängen". Die Übersicht der Arbeitsgänge erscheint. -Task +Task * Wählen Sie den Artikel für den Sie eine Stückliste erstellen wollen. * Fügen Sie die Arbeitsgänge, die Sie durchlaufen müssen, um diesen Artikel zu fertigen, in der Tabelle der Arbeitsgänge hinzu. Für jeden Arbeitsgang werden Sie nach einem Arbeitsplatz gefragt. Wenn nötig, müssen Sie neue Arbeitsplätze anlegen. @@ -23,16 +23,16 @@ Um Arbeitsgänge hinzuzufügen, wählen Sie "Mit Arbeitsgängen". Die Übersicht * Der Bereich Kostenkalkulation der Stückliste gibt einen ungefähren Wert der Produktionskosten eines Artikels wieder * Fügen Sie die Liste der Artikel, die Sie für jeden Arbeitsgang benötigen, mit der entsprechenden Menge hinzu. Bei dem Artikel kann es sich um einen Zukaufartikel oder um eine Unterfertigung mit eigener Stückliste handeln. Wenn der Artikel in der Zeile ein gefertigter Artikel ist und mehrere verschiedene Stücklisten hat, wählen Sie die passende Stückliste aus. Sie können auch festlegen, ob ein Teil des Artikels zu Ausschuss wird. -Kostenkalkulation +Kostenkalkulation * Diese Kosten können über die Schaltfläche "Kosten aktualisieren" aktualisiert werden. -Kosten aktualisieren +Kosten aktualisieren ### Benötigtes Material (aufgelöst) Diese Tabelle listet alles Material auf, welches benötigt wird um den Artikel zu fertigen. Sie zieht weiterhin Unterbaugruppen mit Menge an. -Aufgelöste Ansicht +Aufgelöste Ansicht {next} diff --git a/erpnext/docs/user/manual/de/manufacturing/operation.md b/erpnext/docs/user/manual/de/manufacturing/operation.md index 07ca86060d..cc1637561b 100644 --- a/erpnext/docs/user/manual/de/manufacturing/operation.md +++ b/erpnext/docs/user/manual/de/manufacturing/operation.md @@ -9,6 +9,6 @@ Sie können einen Arbeitsgang anlegen über: > Fertigung > Dokumente > Arbeitsgang > Neu -Arbeitsgang +Arbeitsgang {next} diff --git a/erpnext/docs/user/manual/de/manufacturing/production-order.md b/erpnext/docs/user/manual/de/manufacturing/production-order.md index e6ddd7b107..d93391abcf 100644 --- a/erpnext/docs/user/manual/de/manufacturing/production-order.md +++ b/erpnext/docs/user/manual/de/manufacturing/production-order.md @@ -7,7 +7,7 @@ Der **Fertigungsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generi > Fertigung > Dokumente > Fertigungsauftrag > Neu -Fertigungsauftrag +Fertigungsauftrag ### Einen Fertigungsauftrag erstellen @@ -23,11 +23,11 @@ Der **Fertigungsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generi * Als Voreinstellung zieht das System Arbeitsplätze und die Dauer von Arbeitsgängen aus der gewählten Stückliste. -Fertigungsauftrag - Arbeitsgänge +Fertigungsauftrag - Arbeitsgänge * Wenn Sie den Arbeitsplatz für einen bestimmten Arbeitsgang im Fertigungsauftrag neu zuordnen möchten, können Sie das tun, bevor Sie den Fertigungsauftrag übertragen. -Fertigungsauftrag - Arbeitsgänge neu zuordnen +Fertigungsauftrag - Arbeitsgänge neu zuordnen * Wählen Sie den betreffenden Arbeitsgang aus und ändern Sie seinen Arbeitsplatz. * Sie können auch die Dauer des Arbeitsgangs ändern. @@ -42,28 +42,28 @@ Der **Fertigungsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generi * Das erstellt eine Lagerbuchung mit allen Artikeln, die benötigt werden, um diesen Fertigungsauftrag abzuschliessen. Die Artikel werden an das Fertigungslager übertragen (dieser Prozess fügt basierend auf Ihren Einstellungen Unterbaugruppen mit Stückliste als EINEN Artikel hinzu oder löst die Unterpunkte auf). * Klicken Sie auf "Material der Fertigung übergeben". -Materialübertrag +Materialübertrag * Geben Sie die Menge des Materials an, das übertragen werden soll. -Materialübertrag - Menge +Materialübertrag - Menge * Übertragen Sie die Lagerbuchung. -Lagerbuchung zum Kundenauftrag +Lagerbuchung zum Kundenauftrag * Das an die Fertigung übertragene Material wird basierend auf der Lagerbuchung im Fertigungsauftrag aktualisiert. -Lagerbuchung zum Fertigungsauftrag +Lagerbuchung zum Fertigungsauftrag ### Zeitprotokoll erstellen -* Der Fortschritt des Fertigungsauftrages kann über ein [Zeitprotokoll]Make TL against PO mitprotokolliert werden. +* Der Fortschritt des Fertigungsauftrages kann über ein [Zeitprotokoll]Make TL against PO mitprotokolliert werden. * Zeitprotokolle werden zu den Arbeitsgängen des Fertigungsauftrages erstellt. * Vorlagen für Zeitprotokolle werden für die eingeplanten Arbeitsgänge zum Zeitpunkt des Übertragens des Fertigungsauftrages erstellt. * Um weitere Zeitprotokolle zu einem Arbeitsgang zu erstellen, wählen Sie "Zeitprotokoll erstellen" im betreffenden Arbeitsgang aus. -Zeitprotokoll zum Fertigungsauftrag erstellen +Zeitprotokoll zum Fertigungsauftrag erstellen ### Fertige Erzeugnisse aktualisieren @@ -71,11 +71,11 @@ Der **Fertigungsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generi * Das erstellt eine Lagerbuchung, welche alle Unterartikel vom Fertigungslager abzieht und dem Lager "Fertige Erzeugnisse" gutschreibt. * Klicken Sie auf "Fertige Erzeugnisse aktualisieren". -Fertigerzeugnisse aktualiseren +Fertigerzeugnisse aktualiseren * Geben Sie die Menge des übertragenen Materials an. -Menge der Fertigerzeugnisse aktualisieren +Menge der Fertigerzeugnisse aktualisieren >Tipp: Sie können einen Fertigungsauftrag auch teilweise fertig stellen, indem Sie über eine Lagerbuchung das Lager Fertige Erzeugnisse aktualisieren. @@ -90,7 +90,7 @@ Der **Fertigungsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generi 4. Fertigerzeugnisse aktualisieren: Dieser Schritt erstellt eine Lagerbuchung, welche alle Unterartikel vom Fertigungslager abzieht und dem Lager Fertige Erzeugnisse hinzufügt. 5. Um die zum Fertigungsauftrag erstellten Zeitprotokolle anzusehen, klicken Sie auf "Zeitprotokolle anzeigen". -Fertigungsauftrag anhalten +Fertigungsauftrag anhalten * Sie können auch einen angehaltenen Fertigungsauftrag wieder weiter laufen lassen. diff --git a/erpnext/docs/user/manual/de/manufacturing/setup/manufacturing-settings.md b/erpnext/docs/user/manual/de/manufacturing/setup/manufacturing-settings.md index 8f77716abb..fdf60b61cf 100644 --- a/erpnext/docs/user/manual/de/manufacturing/setup/manufacturing-settings.md +++ b/erpnext/docs/user/manual/de/manufacturing/setup/manufacturing-settings.md @@ -5,7 +5,7 @@ Die Fertigungseinstellungen finden Sie unter > Fertigung > Einstellungen > Fertigungseinstellungen -Fertigungseinstellungen +Fertigungseinstellungen Überstunden zulassen: Hier können Sie angeben, ob an Arbeitsplätzen Überstunden erlaubt sind (wichtig zur Planung von Arbeitsgängen außerhalb der Betriebsstunden). diff --git a/erpnext/docs/user/manual/de/manufacturing/subcontracting.md b/erpnext/docs/user/manual/de/manufacturing/subcontracting.md index 2796610470..3c0e36f41d 100644 --- a/erpnext/docs/user/manual/de/manufacturing/subcontracting.md +++ b/erpnext/docs/user/manual/de/manufacturing/subcontracting.md @@ -11,7 +11,7 @@ Wenn Sie bei Ihrer Tätigkeit bestimmte Prozesse an eine Drittpartei, bei der Si 2. Erstellen Sie ein Lager für den Lieferanten, damit Sie die übergebenen Artikel nachverfolgen können (möglicherweise geben Sie ja Artikel im Wert einer Monatslieferung außer Haus). 3. Stellen Sie für den bearbeiteten Artikel und der Artikelvorlage den Punkt "Ist Fremdvergabe" auf JA ein. -Fremdvergabe +Fremdvergabe **Schritt 1:** Erstellen Sie für den bearbeiteten Artikel eine Stückliste, die den unbearbeiteten Artikel als Unterartikel enthält. Beispiel: Wenn Sie einen Stift herstellen, wird der bearbeitete Stift mit der Stückliste benannt, wbei der Tintentank, der Knopf und andere Artikel, die in die Fertigung eingehen als Unterartikel verwaltet werden. diff --git a/erpnext/docs/user/manual/de/manufacturing/tools/bom-replace-tool.md b/erpnext/docs/user/manual/de/manufacturing/tools/bom-replace-tool.md index 922c32ac08..dbe772b94a 100644 --- a/erpnext/docs/user/manual/de/manufacturing/tools/bom-replace-tool.md +++ b/erpnext/docs/user/manual/de/manufacturing/tools/bom-replace-tool.md @@ -34,7 +34,7 @@ Wenn zur Stückliste der Zentraleinheit weitere Artikel hinzugefügt werden soll Um die Stückliste, bei der die Zentraleinheit als Rohmaterial enthalten ist, in der Stückliste des fertigen Produktes zu aktualisieren, können Sie das Stücklisten-Austauschwerkzeug verwenden. -Stücklistenaustauschwerkzeug +Stücklistenaustauschwerkzeug In diesem Werkzeug wählen Sie die aktuelle und die neue Stückliste aus. Wenn Sie auf die Schaltfläche "Austauschen" klicken, wird in der Stückliste des fertigen Produktes (Computer) die aktuelle Stückliste der Zentraleinheit durch die neue Stückliste ersetzt. diff --git a/erpnext/docs/user/manual/de/manufacturing/tools/production-planning-tool.md b/erpnext/docs/user/manual/de/manufacturing/tools/production-planning-tool.md index 63e51f8c48..b7ef2d0b97 100644 --- a/erpnext/docs/user/manual/de/manufacturing/tools/production-planning-tool.md +++ b/erpnext/docs/user/manual/de/manufacturing/tools/production-planning-tool.md @@ -12,30 +12,30 @@ Um das Werkzeug zur Fertigungsplanung zu nutzen, gehen Sie zu: > Fertigung > Werkzeuge > Werkzeug zur Fertigungsplanung -Werkzeug zur Fertigungsplanung +Werkzeug zur Fertigungsplanung ### Schritt 1: Auswahl und Kundenauftrag * Wählen Sie einen Kundenauftrag für die Materialanforderung über die Filterfunktion (Zeit, Artikel und Kunde) aus. * Klicken Sie auf "Kundenaufträge aufrufen" um eine Übersicht zu erhalten. -Werkzeug zur Fertigungsplanung +Werkzeug zur Fertigungsplanung ### Schritt 2: Artikel aus Kundenaufträgen abrufen Sie können Artikel hinzufügen, entfernen oder die Menge dieser Artikel verändern. -Werkzeug zur Fertigungsplanung +Werkzeug zur Fertigungsplanung ### Schritt 3: Fertigungsaufträge erstellen -Werkzeug zur Fertigungsplanung +Werkzeug zur Fertigungsplanung ### Schritt 4: Materialanfragen erstellen Erstellen Sie für Artikel mit prognostiziertem Engpass Materialanfragen. -Werkzeug zur Fertigungsplanung +Werkzeug zur Fertigungsplanung Das Werkzeug zur Fertigungsplanung wird auf zwei Ebenend verwendet: diff --git a/erpnext/docs/user/manual/de/manufacturing/workstation.md b/erpnext/docs/user/manual/de/manufacturing/workstation.md index 2405382c28..6584ebc221 100644 --- a/erpnext/docs/user/manual/de/manufacturing/workstation.md +++ b/erpnext/docs/user/manual/de/manufacturing/workstation.md @@ -9,10 +9,10 @@ Sie können einen Arbeitsplatz erstellen über: > Fertigung > Dokumente > Arbeitsplatz > Neu -Arbeitsplatz +Arbeitsplatz Geben Sie unter "Arbeitszeit" die Betriebszeiten des Arbeitsplatzes an. Sie können die Betriebszeiten auch mit Hilfe von Schichten angeben. Wenn Sie einen Fertigungauftrag einplanen, prüft das System die Verfügbarkeit des Arbeitsplatzes basierend auf den angegebenen Betrieszeiten. -> Anmerkung: Sie können Überstunden für einen Arbeitsplatz über die [Fertigungseinstellungen]({{docs_base_url}}/user/manual/de/manufacturing/setup/manufacturing-settings.html) aktivieren. +> Anmerkung: Sie können Überstunden für einen Arbeitsplatz über die [Fertigungseinstellungen](/docs/user/manual/de/manufacturing/setup/manufacturing-settings.html) aktivieren. {next} diff --git a/erpnext/docs/user/manual/de/projects/activity-cost.md b/erpnext/docs/user/manual/de/projects/activity-cost.md index 705846b607..25e6452744 100644 --- a/erpnext/docs/user/manual/de/projects/activity-cost.md +++ b/erpnext/docs/user/manual/de/projects/activity-cost.md @@ -3,4 +3,4 @@ Die Aktivitätskosten erfassen den Stundensatz und die Kosten eines Mitarbeiters zu einer Aktivitätsart. Dieser Betrag wird beim Erstellen von Zeitprotokollen vom System angezogen. Er wird für die Aufwandsabrechnung des Projektes verwendet. -Aktivitätskosten +Aktivitätskosten diff --git a/erpnext/docs/user/manual/de/projects/activity-type.md b/erpnext/docs/user/manual/de/projects/activity-type.md index ff61a76870..1e8c534ad2 100644 --- a/erpnext/docs/user/manual/de/projects/activity-type.md +++ b/erpnext/docs/user/manual/de/projects/activity-type.md @@ -3,7 +3,7 @@ Unter dem Punkt "Aktivitätsart" wird eine Liste verschiedener Typen von Aktivitäten erstellt zu denen Zeitprotokolle erstellt werden können. -Aktivitätsart +Aktivitätsart Standardmäßig sind die folgenden Aktivitätsarten angelegt: diff --git a/erpnext/docs/user/manual/de/projects/project.md b/erpnext/docs/user/manual/de/projects/project.md index 518443b205..e9ce1b874f 100644 --- a/erpnext/docs/user/manual/de/projects/project.md +++ b/erpnext/docs/user/manual/de/projects/project.md @@ -3,75 +3,75 @@ Das Projektmanagement in ERPNext ist aufgabengesteuert. Sie können ein Projekt erstellen und ihm mehrere unterschiedliche Aufgaben zuweisen. -Projekt +Projekt ### Aufgaben verwalten Ein Projekt kann in mehrere verschiedene Aufgaben aufgeteilt werden. -Eine Aufgabe kann über das Projektdokument selbst erstellt werden oder über die Schaltfläche [Aufgabe]({{docs_base_url}}/user/manual/de/projects/tasks.html). +Eine Aufgabe kann über das Projektdokument selbst erstellt werden oder über die Schaltfläche [Aufgabe](/docs/user/manual/de/projects/tasks.html). -Projekt +Projekt * Um eine Aufgabe, die zu einem Projekt erstellt wurde, anzusehen, klicken Sie auf "Aufgabe", -Projekt - Aufgabe ansehen +Projekt - Aufgabe ansehen -Projekt - List der Aufgaben +Projekt - List der Aufgaben * Sie können Aufgaben auch über das Projektdokument selbst ansehen. -Projekt - Aufgabenmatrix +Projekt - Aufgabenmatrix ### Zeitmanagement -ERPNext verwendet [Zeitprotokolle]({{docs_base_url}}/user/manual/de/projects/time-log.html) um den Fortschritt eines Projektes nachzuverfolgen. Sie können Zeitprotokolle zu jeder Aufgabe erstellen. Das aktuelle Start- und Enddatum wird dann zusammen mit der Kostenberechnung basierend auf dem Zeitprotokoll aktualisiert. +ERPNext verwendet [Zeitprotokolle](/docs/user/manual/de/projects/time-log.html) um den Fortschritt eines Projektes nachzuverfolgen. Sie können Zeitprotokolle zu jeder Aufgabe erstellen. Das aktuelle Start- und Enddatum wird dann zusammen mit der Kostenberechnung basierend auf dem Zeitprotokoll aktualisiert. * Um ein Zeitprotokoll zu einem Projekt anzusehen, klicken Sie auf "Zeitprotokolle" -Projekt - Zeitprotokoll ansehen +Projekt - Zeitprotokoll ansehen -Projekt - Übersicht der Zeitprotokolle +Projekt - Übersicht der Zeitprotokolle * Sie können ein Zeitprotokoll auch direkt erstellen und mit dem Projekt verknüpfen. -Projekt - Zeitprotokoll verknüpfen +Projekt - Zeitprotokoll verknüpfen ### Aufwände verwalten -Sie können [Aufwandsabrechnungen]({{docs_base_url}}/user/manual/de/human-resources/expense-claim.html) mit Projektaufgaben verbuchen. Das System aktualisiert die Gesamtsumme der Aufwände im Abschnitt Kostenabrechnung. +Sie können [Aufwandsabrechnungen](/docs/user/manual/de/human-resources/expense-claim.html) mit Projektaufgaben verbuchen. Das System aktualisiert die Gesamtsumme der Aufwände im Abschnitt Kostenabrechnung. * Um die Aufwandsabrechnungen zu einem Projekt anzusehen, klicken Sie auf "Aufwandsabrechnung". -Projekt - Aufwandsabrechnung ansehen +Projekt - Aufwandsabrechnung ansehen * Sie könne Aufwandsabrechnungen auch direkt erstellen und mit einem Projekt verknüpfen. -Projekt - Aufwandsabrechnung verknüpfen +Projekt - Aufwandsabrechnung verknüpfen * Der Gesamtbetrag der mit einem Projekt verbuchten Aufwandsabrechnungen wird unter "Gesammtsumme der Aufwandsabrechnungen" im Abschnitt "Kostenabrechnung" angezeigt. -Projekt - Gesamtsumme Aufwandsabrechnung +Projekt - Gesamtsumme Aufwandsabrechnung ### Kostenstelle -Sie können zu einem Projekt eine [Kostenstelle]({{docs_base_url}}/user/manual/de/accounts/setup/cost-center.html) erstellen oder Sie können eine existierende Kostenstelle verwenden um alle Aufwände die zu einem Projekt entstehen mitzuverfolgen. +Sie können zu einem Projekt eine [Kostenstelle](/docs/user/manual/de/accounts/setup/cost-center.html) erstellen oder Sie können eine existierende Kostenstelle verwenden um alle Aufwände die zu einem Projekt entstehen mitzuverfolgen. -Projekt - Kostenstelle +Projekt - Kostenstelle ### Projektkostenabrechnung Der Abschnitt Projektkostenabrechnung hilft Ihnen dabei, die Zeit und die AUfwände die in einem Projekt anfallen, nachzuverfolgen. -Projekt - Kostenabrechnung +Projekt - Kostenabrechnung * Der Abschnitt Kostenabrechnung wird basierend auf den Zeitprotokollen aktualisiert. * Die Bruttospanne ist die Differenz zwischen dem Betrag der gesamten Kosten und dem Gesamtbetrag der Rechnung. ### Abrechnung -Sie können einen [Kundenauftrag]({{docs_base_url}}/user/manual/de/selling/sales-order.html) zu einem Projekt erstellen bzw. ihn mit dem Projekt verknüpfen. Wenn er einmal verlinkt ist, können Sie das Vertriebsmodul dazu nutzen, dass Projekt mit Ihrem Kunden abzurechnen. +Sie können einen [Kundenauftrag](/docs/user/manual/de/selling/sales-order.html) zu einem Projekt erstellen bzw. ihn mit dem Projekt verknüpfen. Wenn er einmal verlinkt ist, können Sie das Vertriebsmodul dazu nutzen, dass Projekt mit Ihrem Kunden abzurechnen. -Projekt - Kundenauftrag +Projekt - Kundenauftrag ### Gantt-Diagramm @@ -79,8 +79,8 @@ Ein Gantt-Diagramm illustriert einen Projektplan, ERPNext erstellt Ihnen eine il * Um ein Gantt-Diagramm zu einem Projekt anzusehen, gehen Sie zu diesem Projekt und klicken Sie auf "Gantt-Diagramm". -Projekt - Gantt-Diagramm ansehen +Projekt - Gantt-Diagramm ansehen -Projekt - Gantt-Diagramm +Projekt - Gantt-Diagramm [next] diff --git a/erpnext/docs/user/manual/de/projects/tasks.md b/erpnext/docs/user/manual/de/projects/tasks.md index 163fb68f5f..75fd594ec8 100644 --- a/erpnext/docs/user/manual/de/projects/tasks.md +++ b/erpnext/docs/user/manual/de/projects/tasks.md @@ -3,13 +3,13 @@ Ein Projekt wird in Aufgaben unterteilt. In ERPNext können Sie auch Abhängigkeiten zwischen Aufgaben erstellen. -Aufgabe +Aufgabe ### Status der Aufgabe Ein Aufgabe kann folgende Stati haben: "Offen", "In Arbeit", "Wartet auf Überprüfung", "Geschlossen" und "Abgebrochen". -Aufgabe - Status +Aufgabe - Status * Standardmäßig sollte jede neu erstellte Aufgabe den Status "Offen" haben. * Wenn ein Zeitprotokoll für eine Aufgabe erstellt wird, sollte ihr Status "In Arbeit" sein. @@ -18,40 +18,40 @@ Ein Aufgabe kann folgende Stati haben: "Offen", "In Arbeit", "Wartet auf Überpr Sie können eine Liste von abhängigen Aufgaben im Bereich "Hängt ab von" erstellen. -Anhängigkeiten +Anhängigkeiten * Sie können eine übergeordnete Aufgabe nicht abschliessen bis alle abhängigen Aufgaben abgeschlossen sind. * Wenn sich die abhängige Aufgabe verzögert und sich mit dem voraussichtlichen Startdatum der übergeordneten Aufgabe überlappt, überarbeitet das System die übergeordnete Aufgabe. ### Zeitmanagement -ERPNext verwendet [Zeitprotokolle]({{docs_base_url}}/user/manual/de/projects/time-log.html) um den Fortschritt einer Aufgabe mitzuprotokollieren. Sie können mehrere unterschiedliche Zeitprotokolle zu jeder Aufgabe erstellen. Das aktuelle Start- und Enddatum kann dann zusammen mit der auf dem Zeitprotokoll basierenden Kostenberechnung aktualisiert werden. +ERPNext verwendet [Zeitprotokolle](/docs/user/manual/de/projects/time-log.html) um den Fortschritt einer Aufgabe mitzuprotokollieren. Sie können mehrere unterschiedliche Zeitprotokolle zu jeder Aufgabe erstellen. Das aktuelle Start- und Enddatum kann dann zusammen mit der auf dem Zeitprotokoll basierenden Kostenberechnung aktualisiert werden. * Um ein zu einer Aufgabe erstelltes Zeitprotokoll anzuschauen, klicken Sie auf "Zeitprotokolle". -Aufgabe - Zeitprotokoll ansehen +Aufgabe - Zeitprotokoll ansehen -Aufgabe - Liste der Zeitprotokolle +Aufgabe - Liste der Zeitprotokolle * Sie können ein Zeitprotokoll auch direkt erstellen und mit einer Aufgabe verknüpfen. -Aufgabe - Zeitprotokoll verknüpfen +Aufgabe - Zeitprotokoll verknüpfen ### Ausgabenmanagement -Sie können [Aufwandsabrechnungen]({{docs_base_url}}/user/manual/de/human-resources/expense-claim.html) mit einer Aufgabe verbuchen. Das System aktualisiert den Gesamtbetrag der Aufwandsabrechnungen im Abschnitt Kostenberechnung. +Sie können [Aufwandsabrechnungen](/docs/user/manual/de/human-resources/expense-claim.html) mit einer Aufgabe verbuchen. Das System aktualisiert den Gesamtbetrag der Aufwandsabrechnungen im Abschnitt Kostenberechnung. * Um eine Aufwandsabrechnung, die zu einer Aufgabe erstellt wurde, anzuschauen, klicken Sie auf "Aufwandsabrechnung". -Aufgabe - Aufwandsabrechnung ansehen +Aufgabe - Aufwandsabrechnung ansehen * Sie können eine Aufwandsabrechnung auch direkt erstellen und sie mit einer Aufgabe verknüpfen. -Aufgabe - Aufwandsabrechnung verknüpfen +Aufgabe - Aufwandsabrechnung verknüpfen * Der Gesamtbetrag der Aufwandsabrechnungen zu einer Aufgabe wird unter "Gesamtbetrag der Aufwandsabrechnungen" im Abschnitt Kostenabrechnung angezeigt. -Aufgabe - Gesamtsumme Aufwandsabrechnung +Aufgabe - Gesamtsumme Aufwandsabrechnung {next} diff --git a/erpnext/docs/user/manual/de/projects/time-log-batch.md b/erpnext/docs/user/manual/de/projects/time-log-batch.md index 6aa85cbe73..4383e1c819 100644 --- a/erpnext/docs/user/manual/de/projects/time-log-batch.md +++ b/erpnext/docs/user/manual/de/projects/time-log-batch.md @@ -9,17 +9,17 @@ ODER Öffnen Sie einfach Ihre Übersicht der Zeitprotokolle und kreuzen Sie die Artikel an, die Sie dem Zeitprotokollstapel hinzufügen möchten. Klicken Sie dann auf die Schaltfläche "Zeitprotokollstapel erstellen" und diese Zeitprotokolle werden ausgewählt. -Zeitprotokoll - Kalender aufziehen +Zeitprotokoll - Kalender aufziehen ### Ausgangsrechnungen erstellen * Sobald Sie einen Zeitprotokollstapel übertragen haben, sollte die Schaltfläche "Rechnung erstellen" erscheinen. -Zeitprotokoll - Kalender aufziehen +Zeitprotokoll - Kalender aufziehen * Klicken Sie auf diese Schaltfläche und erstellen Sie eine Ausgangsrechnung zu einem Zeitprotokollstapel. -Zeitprotokoll - Kalender aufziehen +Zeitprotokoll - Kalender aufziehen * Wenn Sie die Ausgangsrechnung "übertragen", wird die Nummer der Ausgangsrechnung in den Zeitprotokollen und im Zeitprotokollstapel aktualisiert und ihr Status wird auf "abgerechnet" geändert. diff --git a/erpnext/docs/user/manual/de/projects/time-log.md b/erpnext/docs/user/manual/de/projects/time-log.md index d90e27a333..072837ee7f 100644 --- a/erpnext/docs/user/manual/de/projects/time-log.md +++ b/erpnext/docs/user/manual/de/projects/time-log.md @@ -9,7 +9,7 @@ * Projekte * Interne Referenzen -Zeitprotokoll +Zeitprotokoll ### Zeitprotokolle erstellen @@ -21,15 +21,15 @@ Um Zeitprotokolle über den Kalender zu erstellen, gehen Sie zu "Zeitprotokoll" und wählen Sie "Kalender" aus. -Zeitprotokoll - Kalender ansehen +Zeitprotokoll - Kalender ansehen * Um ein Zeitprotokoll für mehrere Tage zu erstellen, klicken Sie und ziehen Sie den Mauszeiger über die Tage. -Zeitprotokoll - Kalender aufziehen +Zeitprotokoll - Kalender aufziehen * Sie können Zeitprotokolle auch aus der Wochen- oder Tagesansicht des Kalender heraus erstellen. -Zeitprotokoll - Kalender aufziehen +Zeitprotokoll - Kalender aufziehen * Zeitprotokolle für Fertigungsprozesse müssen aus dem Fertigungsauftrag heraus erstellt werden. * Um mehrere Zeitprotokolle zu Arbeitsgängen zu erstellen wählen Sie den entsprechenden Arbeitsgang und klicken Sie auf "Zeitprotokoll erstellen". @@ -37,12 +37,12 @@ Um Zeitprotokolle über den Kalender zu erstellen, gehen Sie zu "Zeitprotokoll" ### Abrechnung über Zeitprotokolle * Wenn Sie ein Zeitprotokoll abrechnen wollen, müssem Sie die Option "Abrechenbar" anklicken. -* Im Abschnitt Kostenberechnung erstellt das System den Rechungsbetrag über die [Aktivitätskosten]({{docs_base_url}}/user/manual/de/projects/activity-cost.html) basierend auf dem angegebenen Mitarbeiter und der angegebenen Aktivitätsart. +* Im Abschnitt Kostenberechnung erstellt das System den Rechungsbetrag über die [Aktivitätskosten](/docs/user/manual/de/projects/activity-cost.html) basierend auf dem angegebenen Mitarbeiter und der angegebenen Aktivitätsart. * Das System kalkuliert dann den Rechnungsbetrag basierend auf den im Zeitprotokoll angegebenen Stunden. * Wenn "Abrechenbar" nicht markiert wurde, zeigt das System beim "Rechnungsbetrag" 0 an. -Zeitprotokoll - Abrechnung +Zeitprotokoll - Abrechnung -* Nach dem Übertragen des Zeitprotokolls müssen Sie einen [Zeitprotokollstapel]({{docs_base_url}}/user/manual/de/projects/time-log-batch.html) erstellen um mit der Abrechnung fortfahren zu können. +* Nach dem Übertragen des Zeitprotokolls müssen Sie einen [Zeitprotokollstapel](/docs/user/manual/de/projects/time-log-batch.html) erstellen um mit der Abrechnung fortfahren zu können. {next} diff --git a/erpnext/docs/user/manual/de/selling/quotation.md b/erpnext/docs/user/manual/de/selling/quotation.md index 3434e26e28..94ff78b9a9 100644 --- a/erpnext/docs/user/manual/de/selling/quotation.md +++ b/erpnext/docs/user/manual/de/selling/quotation.md @@ -11,11 +11,11 @@ Um ein neues Angebot zu erstellen gehen Sie zu: Sie können auch ein Angebot aus einer Opportunity heraus erstellen. -Angebot aus Opportunity erstellen +Angebot aus Opportunity erstellen Oder Sie erstellen ein neues Angebot und übernehmen Details aus der Opportunity. -Angebot aus Opportunity erstellen +Angebot aus Opportunity erstellen Ein Angebot enthält Informationen über: @@ -34,12 +34,12 @@ Ein Angebot enthält Informationen über: Die Preise, die sie abgeben, hängen von zwei Dingen ab: -* Die Preisliste: Wenn Sie mehrere verschiedene Preislisten haben, können Sie eine Preisliste auswählen oder sie mit dem Kunden markieren (so dass sie automatisch vorselektiert wird). Ihre Artikelpreise werden automatisch über die Preisliste aktualisert. Für weitere Informationen bitte bei [Preisliste]({{docs_base_url}}/user/manual/de/setting-up/price-lists.html) weiterlesen. +* Die Preisliste: Wenn Sie mehrere verschiedene Preislisten haben, können Sie eine Preisliste auswählen oder sie mit dem Kunden markieren (so dass sie automatisch vorselektiert wird). Ihre Artikelpreise werden automatisch über die Preisliste aktualisert. Für weitere Informationen bitte bei [Preisliste](/docs/user/manual/de/setting-up/price-lists.html) weiterlesen. * Die Währung: Wenn Sie einem Kunden in einer anderen Währung anbieten, müssen Sie die Umrechnungsfaktoren aktualisieren um ERPNext in die Lage zu versetzen die Information in Ihrer Standardwährung zu speichern. Das hilft Ihnen dabei den Wert Ihres Angebots in der Standardwährung zu analysieren. ### Steuern -Um Steuern zu Ihrem Angebot hinzu zu fügen, können Sie entweder eine Steuervorlage oder eine Verkaufssteuern- und Gebühren-Vorlage auswählen oder die Steuern selbst hinzufügen. Um Steuern im Einzelnen zu verstehen, lesen Sie bitte [Steuern]({{docs_base_url}}/user/manual/de/setting-up/setting-up-taxes.html). +Um Steuern zu Ihrem Angebot hinzu zu fügen, können Sie entweder eine Steuervorlage oder eine Verkaufssteuern- und Gebühren-Vorlage auswählen oder die Steuern selbst hinzufügen. Um Steuern im Einzelnen zu verstehen, lesen Sie bitte [Steuern](/docs/user/manual/de/setting-up/setting-up-taxes.html). Sie können Steuern auf die gleiche Art hinzufügen wie die Vorlage Verkaufssteuern und Gebühren. diff --git a/erpnext/docs/user/manual/de/selling/sales-order.md b/erpnext/docs/user/manual/de/selling/sales-order.md index 187aeab37e..d980518b20 100644 --- a/erpnext/docs/user/manual/de/selling/sales-order.md +++ b/erpnext/docs/user/manual/de/selling/sales-order.md @@ -9,7 +9,7 @@ Wenn Ihr Kunde das Angebot annimmt, können Sie das Angebot in einen Kundenauftr ### Flußdiagramm des Kundenauftrags -Kundenauftrag aus Angebot erstellen +Kundenauftrag aus Angebot erstellen Um einen neuen Kundenauftrag zu erstellen gehen Sie zu: > Vertrieb > Kundenauftrag > Neuer Kundenauftrag @@ -17,11 +17,11 @@ Um einen neuen Kundenauftrag zu erstellen gehen Sie zu: > Vertrieb > Kundenauftr Sie können einen Kundenauftrag auch aus einem übertragenen Angebot heraus erstellen. -Kundenauftrag aus Angebot erstellen +Kundenauftrag aus Angebot erstellen Oder Sie erstellen einen neuen Kundenauftrag und entnehmen die Details aus dem Angebot. -Kundenauftrag aus Angebot erstellen +Kundenauftrag aus Angebot erstellen Die meisten Informationen im Kundenauftrag sind dieselben wie im Angebot. Einige Dinge möchte der Kundenauftrag aber aktualisiert haben. @@ -60,7 +60,7 @@ Wenn Sie den Kundenauftrag aktualisieren, wird eine wiederkehrende ID generiert, ERPNext erstellt automatisch eine neue Bestellung und versendet eine E-Mail-Mitteilung an die E-Mail-Konten, die Sie im Feld "Benachrichtigungs-E-Mail-Adresse" eingestellt haben. -Wiederkehrende Kundenaufträge +Wiederkehrende Kundenaufträge ### Die nächsten Schritte diff --git a/erpnext/docs/user/manual/de/selling/setup/product-bundle.md b/erpnext/docs/user/manual/de/selling/setup/product-bundle.md index 30475eb8ca..d97b31d50c 100644 --- a/erpnext/docs/user/manual/de/selling/setup/product-bundle.md +++ b/erpnext/docs/user/manual/de/selling/setup/product-bundle.md @@ -11,7 +11,7 @@ Um ein neues Produkt-Bundle zu erstellen, gehen Sie zu: > Vertrieb > Einstellungen > Produkt-Bundle > Neu -Produkt-Bundle +Produkt-Bundle ### Hauptartikel auswählen @@ -27,7 +27,7 @@ Im Abschnitt Paketartikel listen Sie alle Unterartikel auf, die über das Lager Wenn Vertriebstransaktionen erstellt werden, wie z. B. Ausgangsrechnung, Kundenauftrag und Lieferschein, dann wird der übergeordnete Artikel aus der Hauptartikelliste ausgewählt. -Produkt-Bundle +Produkt-Bundle Beim Auswählen des übergeordneten Artikels aus der Hauptartikelliste werden die Unterartikel aus der Tabelle "Packliste" der Transaktion angezogen. Wenn der Unterartikel ein serialisierter Artikel ist, können Sie seine Seriennummer direkt in der Packlistentabelle angeben. Wenn die Transaktion versendet wird, reduziert das System den Lagerbestand der Unterartikel auf dem Lager der in der Packlistentabelle angegeben ist. diff --git a/erpnext/docs/user/manual/de/selling/setup/sales-partner.md b/erpnext/docs/user/manual/de/selling/setup/sales-partner.md index 66a95a0593..c4d096e80c 100644 --- a/erpnext/docs/user/manual/de/selling/setup/sales-partner.md +++ b/erpnext/docs/user/manual/de/selling/setup/sales-partner.md @@ -13,7 +13,7 @@ Um einen Vertriebspartner anzulegen, gehen Sie zu: Vertriebspartner werden mit einem vom Benutzer vergebenen Namen abgespeichert. -Vertriebspartner +Vertriebspartner Sie können die Adressen und Kontaktdaten von Vertriebsmitarbeitern erfassen und sie basierend auf Menge und Betrag jeder Artikelgruppe zuweisen. @@ -21,13 +21,13 @@ Sie können die Adressen und Kontaktdaten von Vertriebsmitarbeitern erfassen und Um die Namen Ihrer Partner auf Ihrer Webseite anzuzeigen, aktivieren Sie "Auf der Webseite anzeigen". Wenn Sie diese Option anklicken, erscheint ein Feld, über das Sie das Logo Ihres Partners und eine kurze Beschreibung eingeben können. -Vertriebspartner +Vertriebspartner Um eine Übersicht Ihrer Partner zu erhalten, gehen Sie zu: https://example.erpnext.com/Partners -Auflistung der Vertriebspartner +Auflistung der Vertriebspartner {next} diff --git a/erpnext/docs/user/manual/de/selling/setup/selling-settings.md b/erpnext/docs/user/manual/de/selling/setup/selling-settings.md index 0e71d418f5..08492a6a2c 100644 --- a/erpnext/docs/user/manual/de/selling/setup/selling-settings.md +++ b/erpnext/docs/user/manual/de/selling/setup/selling-settings.md @@ -3,7 +3,7 @@ In den Vertriebseinstellungen können Sie Eigenheiten angeben, die bei Ihren Vertriebstransaktionen mit berücksichtigt werden. Im Folgenden sprechen wir jeden einzelnen Punkt an. -Vertriebseinstellungen +Vertriebseinstellungen ### 1\. Benennung der Kunden nach diff --git a/erpnext/docs/user/manual/de/selling/setup/shipping-rule.md b/erpnext/docs/user/manual/de/selling/setup/shipping-rule.md index fc59f02daf..8bf609d121 100644 --- a/erpnext/docs/user/manual/de/selling/setup/shipping-rule.md +++ b/erpnext/docs/user/manual/de/selling/setup/shipping-rule.md @@ -3,6 +3,6 @@ Wenn Sie eine Versandregel verwenden, können Sie die Kosten der Lieferung des Produktes an einen Kunden festlegen. Sie können für den gleichen Artikel für verschiedene Regionen verschiedene Versandregeln definieren. -Versandregel +Versandregel {next} diff --git a/erpnext/docs/user/manual/de/setting-up/authorization-rule.md b/erpnext/docs/user/manual/de/setting-up/authorization-rule.md index 7b202f15d5..bcc5674fba 100644 --- a/erpnext/docs/user/manual/de/setting-up/authorization-rule.md +++ b/erpnext/docs/user/manual/de/setting-up/authorization-rule.md @@ -37,7 +37,7 @@ Wählen Sie die Rolle des Genehmigers aus. Das könnte z. B. die Rolle des Vertr Geben Sie "Autorisierter Wert" ein. Im Beispiel stellen wir das auf 10.000 Euro ein. -Autorisierungsregel +Autorisierungsregel Wenn ein Benutzer aus dem Vertrieb versucht eine Kundenbestellung mit einem Wert über 10.000 Euro zu übertragen, dann bekommt er eine Fehlermeldung. diff --git a/erpnext/docs/user/manual/de/setting-up/bar-code.md b/erpnext/docs/user/manual/de/setting-up/bar-code.md index ec9ac4c666..e85c698c34 100644 --- a/erpnext/docs/user/manual/de/setting-up/bar-code.md +++ b/erpnext/docs/user/manual/de/setting-up/bar-code.md @@ -11,7 +11,7 @@ Ein Barcode-Lesegerät liest die Nummer des Aufklebers eines Artikels ein. Um mi ### Abbildung 1: Markieren Sie das Feld "Artikelbarcode" -Barcode +Barcode Wenn Sie einen Barcode einlesen wollen, gehen Sie zu: @@ -25,7 +25,7 @@ Gehen Sie dann zu "Rechnungswesen" und klicken Sie auf Ausgangsrechnung. Aktivie ### Abbildung 2: Aktivieren Sie das Feld "Ist POS" -Barcode +Barcode Gehen Sie zu "Artikel" und klicken Sie auf "Neue Zeile einfügen". diff --git a/erpnext/docs/user/manual/de/setting-up/data/bulk-rename.md b/erpnext/docs/user/manual/de/setting-up/data/bulk-rename.md index c793463ae6..851424a84a 100644 --- a/erpnext/docs/user/manual/de/setting-up/data/bulk-rename.md +++ b/erpnext/docs/user/manual/de/setting-up/data/bulk-rename.md @@ -13,4 +13,4 @@ Dieses Werkzeug ermöglicht es Ihnen, gleichzeitig mehrere Datensätze umzubenen Um mehrere Datensätze umzubenennen, laden Sie eine CSV-Datei mit den alten Namen in der ersten Spalte und den neuen Namen in der zweiten Spalte hoch indem Sie auf "Hochladen" klicken. -Bulk Rename \ No newline at end of file +Bulk Rename \ No newline at end of file diff --git a/erpnext/docs/user/manual/de/setting-up/data/data-import-tool.md b/erpnext/docs/user/manual/de/setting-up/data/data-import-tool.md index 90dc38c3c9..1ea4e48ae7 100644 --- a/erpnext/docs/user/manual/de/setting-up/data/data-import-tool.md +++ b/erpnext/docs/user/manual/de/setting-up/data/data-import-tool.md @@ -5,7 +5,7 @@ Das Werkzeug zum Datenimport ist ein großartiger Weg um große Mengen an Daten, Um das Werkzeug zum Datenimport zu öffnen, gehen Sie entweder zu den Einstellungen oder zur Transaktion, für die Sie importieren wollen. Wenn der Datenimport erlaubt ist, sehen Sie eine Importschaltfläche: -Importvorgang starten +Importvorgang starten Das Werkzeug hat zwei Abschnitte, einen um eine Vorlage herunter zu laden, und einen zweiten um Daten hoch zu laden. @@ -15,7 +15,7 @@ Das Werkzeug hat zwei Abschnitte, einen um eine Vorlage herunter zu laden, und e Daten werden in ERPNext in Tabellen gespeichert, sehr ähnlich einer Tabellenkalkulation mit Spalten und Zeilen voller Daten. Jede Instanz in ERPNext kann mehrere verschiedene mit Ihr verbundene Untertabellen haben. Die Untertabellen sind mit Ihren übergeordneten Tabellen verknüpft und werden dort eingesetzt, wo es für eine Eigenschaft mehrere verschiedene Werte gibt. So kann z. B. ein Artikel mehrere verschiedene Preise haben, eine Rechnung hat mehrere verschiedene Artikel usw. -Vorlage herunterladen +Vorlage herunterladen * Klicken Sie auf die Tabelle, die Sie herunter laden wollen, oder auf "Alle Tabellen". * Für Massenbearbeitung klicken Sie auf "Mit Daten herunterladen". @@ -24,17 +24,17 @@ Daten werden in ERPNext in Tabellen gespeichert, sehr ähnlich einer Tabellenkal Öffnen Sie die Vorlage nach dem Herunterladen in einer Tabellenkalkulationsanwendung und fügen Sie die Daten unterhalb der Spaltenköpfe ein. -![Tabellenblatt]({{docs_base_url}}/assets/old_images/erpnext/import-3.png) +![Tabellenblatt](/docs/assets/old_images/erpnext/import-3.png) Exportieren Sie dann Ihre Vorlage oder speichern Sie sie im CSV-Format (**Comma Separated Values**). -![Tabellenblatt]({{docs_base_url}}/assets/old_images/erpnext/import-4.png) +![Tabellenblatt](/docs/assets/old_images/erpnext/import-4.png) ### 3. Hochladen der CSV-Datei Fügen Sie abschliessend die CSV-Datei im Abschnitt Import hinzu. Klicken Sie auf die Schaltfläche "Hochladen und Importieren". -Upload +Upload #### Anmerkungen diff --git a/erpnext/docs/user/manual/de/setting-up/email/email-account.md b/erpnext/docs/user/manual/de/setting-up/email/email-account.md index e2923f6127..1a315d2f96 100644 --- a/erpnext/docs/user/manual/de/setting-up/email/email-account.md +++ b/erpnext/docs/user/manual/de/setting-up/email/email-account.md @@ -11,7 +11,7 @@ ERPNext erstellt standardmäßig Vorlagen für einige E-Mail-Konten. Nicht alle Es gibt zwei Arten von E-Mail-Konten, ausgehend und eingehend. E-Mail-Konten für ausgehende E-Mails verwenden einen SMTP-Service, eingehende E-Mails verwenden einen POP-Service. Die meisten E-Mail-Anbieter wie GMail, Outlook oder Yahoo bieten diese Seriveleistungen an. -Kriterien definieren +Kriterien definieren ### Konten zu ausgehenden E-Mails @@ -19,13 +19,13 @@ Alle E-Mails, die vom System aus versendet werden, sei es von einem Benutzer zu Um ein Konto für ausgehende E-Mails einzurichten, markieren Sie die Option **Ausgehend aktivieren** und geben Sie die Einstellungen zum SMTP-Server an. Wenn Sie einen bekannten E-Mail-Service nutzen, wird das vom System für Sie voreingestellt. -Ausgehende E-Mails +Ausgehende E-Mails ### Konten zu eingehenden E-Mails Um ein Konto für eingehende E-Mails einzurichten, markieren Sie die Option **Eingehend aktivieren** und geben Sie die Einstellungen zum POP3-Server an. Wenn Sie einen bekannten E-Mail-Service nutzen, wird das vom System für Sie voreingestellt. -Eingehende E-Mails +Eingehende E-Mails ### Wie ERPNext Antworten handhabt @@ -35,6 +35,6 @@ Wenn Sie aus ERPNext heraus eine E-Mail an einen Kontakt wie z. B. einen Kunden Wenn Sie möchten, dass ERPNext Sie benachrichtigt, wenn eine E-Mail für eine bestimmte Zeit unbeantwortet bleibt, dann können Sie die Option **Benachrichtigen, wenn unbeantwortet** markieren. Hier können Sie die Anzahl der Minuten einstellen, die das System warten soll, bevor eine Benachrichtigung gesendet wird, und den Empfänger. -Eingehende Email +Eingehende Email {next} diff --git a/erpnext/docs/user/manual/de/setting-up/email/email-alerts.md b/erpnext/docs/user/manual/de/setting-up/email/email-alerts.md index 58f6fe33e9..c965c9b466 100644 --- a/erpnext/docs/user/manual/de/setting-up/email/email-alerts.md +++ b/erpnext/docs/user/manual/de/setting-up/email/email-alerts.md @@ -32,7 +32,7 @@ Um eine E-Mail-Erinnerung einzustellen, gehen Sie wie folgt vor: --- #### Beispiel -1. [Kriterien definieren]() -2. [Empfänger und Nachrichtentext eingeben]() +1. [Kriterien definieren]() +2. [Empfänger und Nachrichtentext eingeben]() {next} diff --git a/erpnext/docs/user/manual/de/setting-up/email/email-digest.md b/erpnext/docs/user/manual/de/setting-up/email/email-digest.md index 18117a3ea2..9199ee21a4 100644 --- a/erpnext/docs/user/manual/de/setting-up/email/email-digest.md +++ b/erpnext/docs/user/manual/de/setting-up/email/email-digest.md @@ -13,6 +13,6 @@ Um einen E-Mail-Bericht einzurichten, gehen Sie zu: Stellen Sie ein, wie oft Sie eine Benachrichtigung erhalten wollen, markieren Sie alle Artikel, über die Sie in Ihrer wöchentlichen Aktualisierung benachrichtig werden wollen und wählen Sie die Benutzer-IDs aus, an die die Zusammenfassung gesendet werden soll. -E-Mail-Bericht +E-Mail-Bericht {next} diff --git a/erpnext/docs/user/manual/de/setting-up/email/sending-email.md b/erpnext/docs/user/manual/de/setting-up/email/sending-email.md index d2087cae4b..e1f23b9116 100644 --- a/erpnext/docs/user/manual/de/setting-up/email/sending-email.md +++ b/erpnext/docs/user/manual/de/setting-up/email/sending-email.md @@ -3,8 +3,8 @@ In ERPNext können sie jedes beliebige Dokument per E-Mail versenden (als PDF-Anhang) indem Sie in einem beliebigen geöffneten Dokument auf `Menü > E-Mail` gehen. -Emails versenden +Emails versenden -**Anmerkung:** Es müssen Konten zum [E-Mail-Versand]({{docs_base_url}}/user/manual/de/setting-up/email/email-account.html) eingerichtet sein. +**Anmerkung:** Es müssen Konten zum [E-Mail-Versand](/docs/user/manual/de/setting-up/email/email-account.html) eingerichtet sein. {next} diff --git a/erpnext/docs/user/manual/de/setting-up/pos-setting.md b/erpnext/docs/user/manual/de/setting-up/pos-setting.md index 1849911e8d..b75f96c347 100644 --- a/erpnext/docs/user/manual/de/setting-up/pos-setting.md +++ b/erpnext/docs/user/manual/de/setting-up/pos-setting.md @@ -9,7 +9,7 @@ Wenn Sie im Endkundengeschäft tätig sind, möchten Sie, dass Ihr POS so schnel Setzen Sie die Standardeinstellungen wie definiert. -POS-Einstellungen +POS-Einstellungen > Wichtig: Wenn Sie einen bestimmten Benutzer angeben, werden die POS-Einstellungen nur auf diesen Benutzer angewendet. Wenn diese Optin leer bleibt, werden die Einstellungen auf alle Benutzer angewendet. Um mehr über POS zu erfahren, gehen Sie zu POS. diff --git a/erpnext/docs/user/manual/de/setting-up/price-lists.md b/erpnext/docs/user/manual/de/setting-up/price-lists.md index b58e191cbc..6fc5f08c45 100644 --- a/erpnext/docs/user/manual/de/setting-up/price-lists.md +++ b/erpnext/docs/user/manual/de/setting-up/price-lists.md @@ -11,7 +11,7 @@ Sie können eine neue Preisliste erstellen über: > Vertrieb/Einkauf/Lagerbestand > Einstellungen > Preisliste > Neu -Preisliste +Preisliste * Diese Preislisten werden verwendet, wenn der Datensatz zum Artikelpreis erstellt wird, um den Verkaufs- oder Einkaufspreis eines Artikels nachvollziehen zu können. Klicken Sie hier, wenn Sie mehr über Artikelpreise erfahren wollen. * Um eine bestimmte Preisliste zu deaktivieren, deaktivieren Sie das Feld "Aktiviert" im der Preisliste. Die deaktivierte Preisliste ist dann in der Auswahl nicht mehr in Verkaufs- oder Einkaufstransaktionen verfügbar. diff --git a/erpnext/docs/user/manual/de/setting-up/print/address-template.md b/erpnext/docs/user/manual/de/setting-up/print/address-template.md index b3f37f77a5..0622e0c7d2 100644 --- a/erpnext/docs/user/manual/de/setting-up/print/address-template.md +++ b/erpnext/docs/user/manual/de/setting-up/print/address-template.md @@ -28,6 +28,6 @@ Hier sehen Sie die Standardvorlage: ### Beispiel -Adressvorlage +Adressvorlage {next} diff --git a/erpnext/docs/user/manual/de/setting-up/print/letter-head.md b/erpnext/docs/user/manual/de/setting-up/print/letter-head.md index cc05b85f3f..e08da2893a 100644 --- a/erpnext/docs/user/manual/de/setting-up/print/letter-head.md +++ b/erpnext/docs/user/manual/de/setting-up/print/letter-head.md @@ -15,10 +15,10 @@ Sie können Briefköpfe erstellen/verwalten über: #### Beispiel -Briefkopf +Briefkopf So sieht der Briefkopf eines Ausdruckes aus: -Briefkopf +Briefkopf {next} diff --git a/erpnext/docs/user/manual/de/setting-up/print/print-format-builder.md b/erpnext/docs/user/manual/de/setting-up/print/print-format-builder.md index e4236aec38..14ba20092e 100644 --- a/erpnext/docs/user/manual/de/setting-up/print/print-format-builder.md +++ b/erpnext/docs/user/manual/de/setting-up/print/print-format-builder.md @@ -11,19 +11,19 @@ Oder Sie öffnen das Dokument, für das Sie ein Druckformat erstellen wollen. Kl ### Schritt 1: Erstellen Sie ein neues Format -E-Mail senden +E-Mail senden ### Schritt 2: Ein neues Feld hinzufügen Um ein Feld hinzuzufügen, nehmen Sie es auf der linken Seitenleiste mit der Maus auf und fügen Sie es Ihrem Layout hinzu. Sie können das Layout bearbeiten, indem Sie auf das Symbol für Einstellungen klicken. -E-Mail senden +E-Mail senden ### Schritt 3: Ein Feld entfernen Um ein Feld zu entfernen, legen Sie es einfach zurück in die Seitenleiste. -E-Mail senden +E-Mail senden ### Schritt 4 @@ -31,7 +31,7 @@ Sie können benutzerdefinierten Text als HTML in Ihr Druckformat übernehmen. F Klicken Sie dann auf **HTML bearbeiten** um den Inhalt zu bearbeiten. -E-Mail senden +E-Mail senden Um Ihr Format abzuspeichern klicken Sie einfach auf die Schaltfläche **Speichern**. diff --git a/erpnext/docs/user/manual/de/setting-up/print/print-headings.md b/erpnext/docs/user/manual/de/setting-up/print/print-headings.md index cf6b48a407..b695a3cfd2 100644 --- a/erpnext/docs/user/manual/de/setting-up/print/print-headings.md +++ b/erpnext/docs/user/manual/de/setting-up/print/print-headings.md @@ -9,10 +9,10 @@ Sie können Druckköpfe erstellen über: #### Abbildung 1: Druckköpfe abspeichern -Druckköpfe +Druckköpfe Hier ist ein Beispiel abgebildet, wie man einen Druckkopf auswechselt: -Druckköpfe +Druckköpfe {next} diff --git a/erpnext/docs/user/manual/de/setting-up/print/print-settings.md b/erpnext/docs/user/manual/de/setting-up/print/print-settings.md index 7dc8067a4e..995edd62a6 100644 --- a/erpnext/docs/user/manual/de/setting-up/print/print-settings.md +++ b/erpnext/docs/user/manual/de/setting-up/print/print-settings.md @@ -7,6 +7,6 @@ Um die Druckeinstellungen zu bearbeiten, gehen Sie zu: > Einstellungen > Druck > Druckeinstellungen -Druckeinstellungen +Druckeinstellungen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/print/terms-and-conditions.md b/erpnext/docs/user/manual/de/setting-up/print/terms-and-conditions.md index 718fcc2546..071d757d7d 100644 --- a/erpnext/docs/user/manual/de/setting-up/print/terms-and-conditions.md +++ b/erpnext/docs/user/manual/de/setting-up/print/terms-and-conditions.md @@ -9,13 +9,13 @@ Um die Vorlage für die Allgemeinen Geschäftsbedingungen zu erstellen, gehen Si > Vertrieb > Einstellungen > Vorlage für Allgemeine Geschäftsbedingungen > Neu -Geschäftsbedingungen +Geschäftsbedingungen ### 2\. Bearbeitung in HTML Der Inhalt der Allgemeinen Geschäftsbedingungen kann nach Ihren Vorstellungen formatiert werden und es können bei Bedarf auch Bilder eingefügt werden. Für diejenigen, die sich in HTML auskennen, findet Sich auch eine Möglichkeit den Inhalt der Allgemeinen Geschäftsbedingungen in HTML zu formatieren. -Geschäfsbedingungen - HTML bearbeiten +Geschäfsbedingungen - HTML bearbeiten Dies erlaubt es Ihnen auch die Vorlage für die Allgemeinen Geschäftsbedingungen als Fußzeile zu verwenden, was sonst in ERPNext nicht als dedizierte Funktionalität zur Verfügung steht. Da die Inhalte der Allgemeinen Geschäftsbedingungen im Druckformat immer zuletzt erscheinen, sollten die Einzelheiten zur Fußzeile am Ende des Inhaltes eingefügt werden. @@ -23,6 +23,6 @@ Dies erlaubt es Ihnen auch die Vorlage für die Allgemeinen Geschäftsbedingunge In Transaktionen finden Sie den Abschnitt Allgemeine Geschäftsbedingungen, wo Sie nach einer Vorlage für die Allgemeinen Geschäftsbedingungen suchen und diese auswählen können. -Geschäfsbedingungen - Im Dokument auswählen +Geschäfsbedingungen - Im Dokument auswählen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/setting-up-taxes.md b/erpnext/docs/user/manual/de/setting-up/setting-up-taxes.md index 612cf9a6da..4f45dfc678 100644 --- a/erpnext/docs/user/manual/de/setting-up/setting-up-taxes.md +++ b/erpnext/docs/user/manual/de/setting-up/setting-up-taxes.md @@ -13,11 +13,11 @@ Wenn einige Ihrer Artikel einer anderen Besteuerung unterliegen als andere, gebe Die Tabelle zu den Artikelsteuern ist ein Abschnitt in den Artikelstammdaten. -Artikelsteuer +Artikelsteuer * **Inklusive oder Exklusive Steuer:** ERPNext erlaubt es Ihnen Artikelpreise inklusive Steuer einzugeben. -Steuer inklusive +Steuer inklusive * **Ausnahme von der Regel:** Die Einstellungen zur Artikelsteuer werden nur dann benötigt, wenn sich der Steuersatz eines bestimmten Artikels von demjenigen, den Sie im Standard-Steuerkonto definiert haben, unterscheidet. * **Die Artikelsteuer kann überschrieben werden:** Sie können den Artikelsteuersatz überschreiben oder ändern, wenn Sie in der Artikelsteuertabelle zu den Artikelstammdaten gehen. @@ -34,7 +34,7 @@ Um eine neue Vorlage zu einer Verkaufssteuer z. B. mit dem Namen Vorlage für Ve > Einstellungen > Rechnungswesen > Vorlage für Verkaufssteuern und -abgaben -Vorlage für Verkaufssteuern +Vorlage für Verkaufssteuern Wenn Sie eine neue Vorlage erstellen, müssen Sie für jeden Steuertyp eine neue Zeile einfügen. diff --git a/erpnext/docs/user/manual/de/setting-up/settings/global-defaults.md b/erpnext/docs/user/manual/de/setting-up/settings/global-defaults.md index 44ec38eb24..ef9bc2278b 100644 --- a/erpnext/docs/user/manual/de/setting-up/settings/global-defaults.md +++ b/erpnext/docs/user/manual/de/setting-up/settings/global-defaults.md @@ -7,6 +7,6 @@ Sie können Standardwerte für Ihre Dokumente über die globalen Voreinstellunge Immer dann, wenn ein neues Dokument erstellt wird, werden diese Werte als Standardeinstellungen verwendet. -Globale Voreinstellungen +Globale Voreinstellungen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/settings/module-settings.md b/erpnext/docs/user/manual/de/setting-up/settings/module-settings.md index 996f3dce89..8aaf923edd 100644 --- a/erpnext/docs/user/manual/de/setting-up/settings/module-settings.md +++ b/erpnext/docs/user/manual/de/setting-up/settings/module-settings.md @@ -11,6 +11,6 @@ Beispiel: Wenn Sie im Dienstleistungsbereich arbeiten, möchten Sie evtl. das Fe Markieren oder demarkieren Sie die Elemente die angezeigt / ausgeblendet werden sollen. -Moduleinstellungen +Moduleinstellungen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/settings/naming-series.md b/erpnext/docs/user/manual/de/setting-up/settings/naming-series.md index 1a6f336e0b..0c66c5e9d2 100644 --- a/erpnext/docs/user/manual/de/setting-up/settings/naming-series.md +++ b/erpnext/docs/user/manual/de/setting-up/settings/naming-series.md @@ -33,6 +33,6 @@ Sie können auch den Startpunkt eines Nummernkreises auswählen, indem Sie den N Sehen Sie hier, wie der Nummernkreis eingestellt wird. -Nummernkreise +Nummernkreise {next} diff --git a/erpnext/docs/user/manual/de/setting-up/settings/system-settings.md b/erpnext/docs/user/manual/de/setting-up/settings/system-settings.md index 856d01616f..d804901230 100644 --- a/erpnext/docs/user/manual/de/setting-up/settings/system-settings.md +++ b/erpnext/docs/user/manual/de/setting-up/settings/system-settings.md @@ -7,6 +7,6 @@ Um die Systemeinstellungen zu öffnen, gehen Sie zu: > Einstellungen > Einstellungen > Systemeinstellungen -Systemeinstellungen +Systemeinstellungen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-1-language.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-1-language.md index 0fc2a1f469..eb378364bd 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-1-language.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-1-language.md @@ -3,7 +3,7 @@ Wählen Sie Ihre Sprache. ERPNext gibt es in mehr als 20 Sprachen. -Sprache +Sprache --- diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-10-item.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-10-item.md index 3b6d1ac3a8..6116247119 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-10-item.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-10-item.md @@ -4,7 +4,7 @@ In diesem letzten Schritt geben Sie bitte die Bezeichnungen der Artikel ein, die Sie kaufen oder verkaufen. Artikel hinzufügen +src="/docs/assets/img/setup-wizard/step-10.png"> Bitte stellen Sie auch die Artikelart (Produkt oder Dienstleistung) und die Standardmaßeinheit ein. Machen Sie sich keine Sorgen, Sie können das alles später noch bearbeiten. diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-2-currency-and-timezone.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-2-currency-and-timezone.md index be327aec34..5387b0a4c9 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-2-currency-and-timezone.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-2-currency-and-timezone.md @@ -3,7 +3,7 @@ Stellen Sie den Namen Ihres Landes, die Währung und die Zeitzone ein. -Währung +Währung --- diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-3-user-details.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-3-user-details.md index 2d1789d0d1..97b246d863 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-3-user-details.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-3-user-details.md @@ -4,7 +4,7 @@ Geben Sie Details zum Benutzerprofil, wie Name, Benutzer-ID und das bevorzugte Passwort ein. Benutzer +src="/docs/assets/img/setup-wizard/step-3.png"> --- diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-4-company-details.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-4-company-details.md index 4c131b56b8..aca7823217 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-4-company-details.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-4-company-details.md @@ -4,7 +4,7 @@ Geben Sie Details zum Unternehmen wie Name, Kürzel und Geschäftsjahr ein. Unternehmensdetails +src="/docs/assets/img/setup-wizard/step-4.png"> --- diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-5-letterhead-and-logo.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-5-letterhead-and-logo.md index f32815df36..d8a5c0d939 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-5-letterhead-and-logo.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-5-letterhead-and-logo.md @@ -4,7 +4,7 @@ Fügen Sie einen Firmenbriefkopf und ein Firmenlogo hinzu. Firmenlogo und Briefkopf +src="/docs/assets/img/setup-wizard/step-5.png"> --- @@ -15,7 +15,7 @@ Klicken Sie die Box "Briefkopf anhängen" an. Wählen Sie eine Bilddatei aus und Wenn Ihr Briefkopf noch nicht fertig ist, können Sie diesen Schritt auch überspringen. -Um später einen Briefkopf über das Modul "Einstellungen" auszuwählen, lesen Sie im Bereich [Briefkopf]({{docs_base_url}}/user/manual/de/setting-up/print/letter-head.html) weiter. +Um später einen Briefkopf über das Modul "Einstellungen" auszuwählen, lesen Sie im Bereich [Briefkopf](/docs/user/manual/de/setting-up/print/letter-head.html) weiter. ### Anhang als Internetverknüpfung diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-6-add-users.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-6-add-users.md index 692bb20cd5..07832e1813 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-6-add-users.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-6-add-users.md @@ -4,6 +4,6 @@ Fügen Sie weitere Benutzer hinzu und teilen Sie ihnen gemäß Ihren Verantwortungsbereichen am Arbeitsplatz Rollen zu. Benutzer +src="/docs/assets/img/setup-wizard/step-6.png"> {next} diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-7-tax-details.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-7-tax-details.md index 76f1538a03..edf6476110 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-7-tax-details.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-7-tax-details.md @@ -4,7 +4,7 @@ Geben Sie bis zu drei Steuerarten an, die Sie regelmäßig in Bezug auf Ihr Gehalt zahlen. Dieser Assistent erstellt eine Steuervorlage, die die Steuren für jede Steuerart berechnet. Steuerdetails +src="/docs/assets/img/setup-wizard/step-7.png"> Geben Sie einfach den Namen der Steuerart und den Steuersatz ein. @@ -18,6 +18,6 @@ Eine Mehrwertsteuer (MwSt) ist eine Art Verbrauchssteuer. Aus der Sicht des Kund Das Anliegen der Mehrwertsteuer ist es, für den Staat ähnlich der Körperschaftssteuer und der Einkommensteuer Steuererträge zu generieren. Beispiel: Wenn Sie in einem Kaufhaus einkaufen schlägt Ihnen das Geschäft 19% als Mehrwertsteuer auf die Rechnung auf. -Um im Einstellungsassistenten die Mehrwertsteuer einzustellen, geben Sie einfach den Prozentsatz der vom Staat erhoben wird, ein. Um die Mehrwertsteuer zu einem späteren Zeitpunkt einzustellen, lesen Sie bitte den Abschnitt [Einstellen von Steuern]({{docs_base_url}}/user/manual/de/setting-up/setting-up-taxes.html). +Um im Einstellungsassistenten die Mehrwertsteuer einzustellen, geben Sie einfach den Prozentsatz der vom Staat erhoben wird, ein. Um die Mehrwertsteuer zu einem späteren Zeitpunkt einzustellen, lesen Sie bitte den Abschnitt [Einstellen von Steuern](/docs/user/manual/de/setting-up/setting-up-taxes.html). {next} diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-8-customer-names.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-8-customer-names.md index 69fed2b374..4525c3438a 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-8-customer-names.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-8-customer-names.md @@ -4,7 +4,7 @@ Geben Sie die Namen Ihrer Kunden und die Kontaktpersonen ein. Customers +src="/docs/assets/img/setup-wizard/step-8.png"> --- @@ -18,6 +18,6 @@ Kundenname: American Power Mills Kontaktname: Shiv Agarwal -Um mehr über Kunden zu erfahren, lesen Sie im Abschnitt [Details zu Kunden]({{docs_base_url}}/user/manual/de/CRM/customer.html) nach. +Um mehr über Kunden zu erfahren, lesen Sie im Abschnitt [Details zu Kunden](/docs/user/manual/de/CRM/customer.html) nach. {next} diff --git a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-9-suppliers.md b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-9-suppliers.md index 7d398b5f07..2769879ea6 100644 --- a/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-9-suppliers.md +++ b/erpnext/docs/user/manual/de/setting-up/setup-wizard/step-9-suppliers.md @@ -4,10 +4,10 @@ Geben Sie ein paar Namen Ihrer Lieferanten ein. Lieferanten +src="/docs/assets/img/setup-wizard/step-9.png"> --- -Um den Begriff "Lieferant" besser zu verstehen, lesen Sie unter [Lieferantenstammdaten]({{docs_base_url}}/user/manual/de/buying/supplier.html) nach. +Um den Begriff "Lieferant" besser zu verstehen, lesen Sie unter [Lieferantenstammdaten](/docs/user/manual/de/buying/supplier.html) nach. {next} diff --git a/erpnext/docs/user/manual/de/setting-up/sms-setting.md b/erpnext/docs/user/manual/de/setting-up/sms-setting.md index 1bcc058ae7..0a1e73b47d 100644 --- a/erpnext/docs/user/manual/de/setting-up/sms-setting.md +++ b/erpnext/docs/user/manual/de/setting-up/sms-setting.md @@ -10,7 +10,7 @@ Beispiel-URL: http://instant.smses.com/web2sms.php?username=&password;=&to;=&sender;=&message;= -SMS-Einstellungen +SMS-Einstellungen > Anmerkung: Die Zeichenfolge bis zum "?" ist die URL des SMS-Gateways. @@ -23,7 +23,7 @@ Die oben angegebene URL verschickt SMS über das Konto "abcd" an Mobilnummern "9 Beachten Sie, dass einige Parameter in der URL statisch sind. Sie bekommen von Ihrem SMS-Anbieter statische Werte wie Benutzername, Passwort usw. Diese statischen Werte sollten in die Tabelle der statischen Parameter eingetragen werden. -SMS-Einstellungen +SMS-Einstellungen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/stock-reconciliation-for-non-serialized-item.md b/erpnext/docs/user/manual/de/setting-up/stock-reconciliation-for-non-serialized-item.md index 01f2281734..a1c8dbb892 100644 --- a/erpnext/docs/user/manual/de/setting-up/stock-reconciliation-for-non-serialized-item.md +++ b/erpnext/docs/user/manual/de/setting-up/stock-reconciliation-for-non-serialized-item.md @@ -23,18 +23,18 @@ Um einen Lagerabgleich durchzuführen, gehen Sie zu: Sie sollten sich an eine spezielle Vorlage eines Tabellenblattes halten um den Bestand und den Wert eines Artikels zu importieren. Öffnen Sie ein neues Formular zum Bestandsabgleich um die Optionen für den Download zu sehen. -Bestandsabgleich +Bestandsabgleich #### Schritt 2: Geben Sie Daten in die CSV-Datei ein. -Bestandsabgleich +Bestandsabgleich Das CSV-Format beachtet Groß- und Kleinschreibung. Verändern Sie nicht die Kopfbezeichnungen, die in der Vorlage vordefiniert wurden. In den Spalten "Artikelnummer" und "Lager" geben Sie bitte die richtige Artikelnummer und das Lager ein, so wie es in ERPNext bezeichnet wird. Für die Menge geben Sie den Lagerbestand, den Sie für diesen Artikel erfassen wollen, in einem bestimmten Lager ein. Wenn Sie die Menge oder den wertmäßigen Betrag eines Artikels nicht ändern wollen, dann lassen Sie den Eintrag leer. Anmerkung: Geben Sie keine "0" ein, wenn sie die Menge oder den wertmäßigen Betrag nicht ändern wollen. Sonst kalkuliert das System eine Menge von "0". Lassen Sie also das Feld leer! #### Schritt 3: Laden Sie die Datei hoch und geben Sie in das Formular "Bestandsableich" Werte ein. -Bestandsabgleich +Bestandsabgleich ##### Buchungsdatum @@ -52,11 +52,11 @@ Notiz: Wenn Sie die bewerteten Beträge eines Artikels eingeben, können Sie zum #### Schritt 4: Überprüfen Sie die Daten zum Bestandsabgleich -Bestandsabgleich Überprüfung +Bestandsabgleich Überprüfung ### Bericht zum Lagerbuch -Bestandsabgleich +Bestandsabgleich ##### So arbeitet der Bestandsabgleich diff --git a/erpnext/docs/user/manual/de/setting-up/territory.md b/erpnext/docs/user/manual/de/setting-up/territory.md index 22743d0d9a..24ce34c691 100644 --- a/erpnext/docs/user/manual/de/setting-up/territory.md +++ b/erpnext/docs/user/manual/de/setting-up/territory.md @@ -3,6 +3,6 @@ Wenn sich Ihre Geschäftstätigkeit in verschiedenen Regionen abspielt (das können z. B. Länder, Bundesländer oder Städte sein), ist es normalerweise eine großartige Idee, diese Struktur auch im System abzubilden. Wenn Sie Ihre Kunden erst einmal nach Regionen eingeteilt haben, können für jede Artikelgruppe Ziele aufstellen und bekommen Berichte, die Ihnen Ihre aktuelle Leistung in einem Gebiet zeigen und auch das, was Sie geplant haben. Sie können zudem auch eine unterschiedliche Preispolitik für ein und dasselbe Produkt in unterschiedlichen Regionen einstellen. -Baumstruktur Regionen +Baumstruktur Regionen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/adding-users.md b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/adding-users.md index 8c4c91425c..ac4093bdae 100644 --- a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/adding-users.md +++ b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/adding-users.md @@ -11,7 +11,7 @@ Für einen Benutzer können viele Informationen eingegeben werden. Im Sinne der ### 1. Übersicht der Benutzer -Benutzerliste +Benutzerliste Um einen neuen Benutzer hinzuzufügen, klicken Sie auf "Neu". @@ -28,18 +28,18 @@ Nach dem Hinzufügen dieser Details bitte den Benutzer abspeichern. Nach dem Speichern sehen Sie eine Liste der Rollen und daneben jeweils eine Schaltfläche zum Anklicken. Markieren Sie alle Rollen, von denen Sie möchten, dass sie der Benutzer bekommt, und speichern Sie das Dokument ab. Um zu sehen, welche Berechtigungen die einzelnen Rollen haben, klicken Sie auf den Rollennamen. -Benutzerrollen +Benutzerrollen ### 4. Zugriff auf Module einstellen Benutzer haben Zugriff auf alle Module, für die sie aufgrund Ihrer Rollen Berechtigungen haben. Wenn Sie bestimmte Module für den Zugriff sperren möchten, entfernen Sie die Markierung in der Liste. -Geblockte Module für Benutzer +Geblockte Module für Benutzer ### 5. Sicherheitseinstellungen Wenn Sie dem Benutzer nur zu bestimmten Bürozeiten oder an Wochenenden Zugriff auf das System gewähren möchten, stellen Sie das unter den Sicherheitseinstellungen ein. -Sicherheitseinstellungen für Benutzer +Sicherheitseinstellungen für Benutzer {next} diff --git a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/role-based-permissions.md b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/role-based-permissions.md index 6d8108a87c..1d121c8e3d 100644 --- a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/role-based-permissions.md +++ b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/role-based-permissions.md @@ -7,7 +7,7 @@ Wenn Sie das tun wollen, gehen Sie zu: > Einstellungen > Berechtigungen > Rollenberechtigungen-Manager -Berechtigungen für Lesen, Schreiben, Erstellen, Übertragen und Abändern mit Hilfe des Rollenberechtigungen-Managers einstellen +Berechtigungen für Lesen, Schreiben, Erstellen, Übertragen und Abändern mit Hilfe des Rollenberechtigungen-Managers einstellen Berechtigungen werden angewandt auf einer Kombination von: @@ -31,7 +31,7 @@ Wenn dieser Punkt aktiviert ist, kann ein Benutzer mit dieser Rolle nur auf best Um Benutzerberechtigungen zu setzen, gehen Sie zu: -> Einstellungen > Berechtigungen > [Benutzerrechte-Manager]({{docs_base_url}}/user/manual/de/setting-up/users-and-permissions/user-permissions.html) +> Einstellungen > Berechtigungen > [Benutzerrechte-Manager](/docs/user/manual/de/setting-up/users-and-permissions/user-permissions.html) @@ -43,30 +43,30 @@ Um Benutzerberechtigungen zu setzen, gehen Sie zu: Der Urlaubsantrag ist ein gutes **Beispiel**, welches alle Bereiche des Berechtigungssystems abdeckt. -Der Urlaubsantrag sollte von einem Mitarbeiter erstellt werden, und von einem Urlaubsgenehmiger oder Mitarbeiter des Personalwesens genehmigt werden. +Der Urlaubsantrag sollte von einem Mitarbeiter erstellt werden, und von einem Urlaubsgenehmiger oder Mitarbeiter des Personalwesens genehmigt werden. 1\. **Er sollte von einem "Mitarbeiter" erstellt werden.** Aus diesem Grund sollte die Rolle "Mitarbeiter" Berechtigungen zum Lesen, Schreiben und Erstellen haben. -Einem Mitarbeiter Lese-, Schreib- und Erstellrechte für einen Urlaubsantrag geben. +Einem Mitarbeiter Lese-, Schreib- und Erstellrechte für einen Urlaubsantrag geben. 2\. **Ein Mitarbeiter sollte nur auf seine/Ihre eigenen Urlaubsanträge zugreifen können.** Daher sollte der Punkt "Benutzerberechtigungen anwenden" für die Rolle "Mitarbeiter" aktiviert sein und es sollte ein Datensatz "Benutzerberechtigung" für jede Kombination von Benutzer und Mitarbeiter erstellt werden. (Dieser Aufwand reduziert sich für den Dokumententyp, indem über das Programm Datensätze für Benutzerberechtigungen erstellt werden.) -Den Zugriff für einen Benutzer mit der Rolle Mitarbeiter auf Urlaubsanträge über den Benutzerberechtigungen-Manager einschränken. +Den Zugriff für einen Benutzer mit der Rolle Mitarbeiter auf Urlaubsanträge über den Benutzerberechtigungen-Manager einschränken. 3\. **Der Personalmanager sollte alle Urlaubsanträge sehen können.** Erstellen Sie für den Personalmanager eine Berechtigungsregel auf der Ebene 0 mit Lese-Rechten. Die Option "Benutzerberechtigungen anwenden" sollte deaktiviert sein. -Einem Personalmanager Rechte für Übertragen und Stornieren für Urlaubsanträge geben. 'Benutzerberechtigungen anwenden' ist demarkiert um vollen Zugriff zu ermöglichen. +Einem Personalmanager Rechte für Übertragen und Stornieren für Urlaubsanträge geben. 'Benutzerberechtigungen anwenden' ist demarkiert um vollen Zugriff zu ermöglichen. 4\. **Der Urlaubsgenehmiger sollte die ihn betreffenden Urlaubsanträge lesen und aktualisieren können.** Der Urlaubsgenehmiger erhält Lese- und Schreibzugriff auf Ebene 0, und die Option "Benutzerberechtigungen anwenden" wird aktiviert. Zutreffende Mitarbeiter-Dokumente sollten in den Benutzerberechtigungen des Urlaubsgenehmigers aufgelistet sein. (Dieser Aufwand reduziert sich für Urlaubsgenehmiger, die in Mitarbeiterdokumenten aufgeführt werden, indem über das Programm Datensätze für Benutzerberechtigungen erstellt werden.) -Rechte für Schreiben, Lesen und Übertragen an einen Urlaubsgenehmiger zum Genehmigen von Urlauben geben. 'Benutzerberechtigungen anwenden' ist markiert, um den Zugriff basierend auf dem Mitarbeitertyp einzuschränken. +Rechte für Schreiben, Lesen und Übertragen an einen Urlaubsgenehmiger zum Genehmigen von Urlauben geben. 'Benutzerberechtigungen anwenden' ist markiert, um den Zugriff basierend auf dem Mitarbeitertyp einzuschränken. 5\. **Ein Urlaubsantrag sollte nur von einem Mitarbeiter der Personalverwaltung oder einem Urlaubsgenehmiger bestätigt oder abgelehnt werden können.** Das Statusfeld des Urlaubsantrags wird auf Ebene 1 gesetzt. Mitarbeiter der Personalverwaltung und Urlaubsgenehmiger bekommen Lese- und Schreibrechte für Ebene 1, während allen anderen Leserechte für Ebene 1 gegeben werden. -Leserechte auf einen Satz von Feldern auf bestimmte Rollen beschränken. +Leserechte auf einen Satz von Feldern auf bestimmte Rollen beschränken. 6\. **Der Mitarbeiter der Personalverwaltung sollte die Möglichkeit haben Urlaubsanträge an seine Untergebenen zu delegieren.** Er erhält die Erlaubis Benutzerberechtigungen einzustellen. Ein Nutzer mit der Rolle "Benutzer Personalverwaltung" wäre dann also in der Lage Benutzer-Berechtigungen und Urlaubsanträge für andere Benutzer zu definieren. -Es dem Benutzer der Personalverwaltung ermöglichen, den Zugriff auf Urlaubsanträge zu delegieren, indem er 'Benutzerberechtigungen einstellen' markiert. Dies erlaubt es dem Benutzer der Personalverwaltung auf den Benutzerberechtigungen-Manager für 'Urlaubsanträge' zuzugreifen +Es dem Benutzer der Personalverwaltung ermöglichen, den Zugriff auf Urlaubsanträge zu delegieren, indem er 'Benutzerberechtigungen einstellen' markiert. Dies erlaubt es dem Benutzer der Personalverwaltung auf den Benutzerberechtigungen-Manager für 'Urlaubsanträge' zuzugreifen {next} diff --git a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/sharing.md b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/sharing.md index 2436439432..aea4770641 100644 --- a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/sharing.md +++ b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/sharing.md @@ -5,6 +5,6 @@ Zusätzlich zu Benutzer- und Rollenberechtigungen können Sie ein Dokument auch Um ein Dokument zu teilen, öffnen Sie das Dokument, klicken Sie auf das "+"-Symbol im Abschnitt "Freigegeben für" und wählen Sie den Benutzer aus. - + {next} diff --git a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/user-permissions.md b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/user-permissions.md index a7516936e7..6499cc2a5d 100644 --- a/erpnext/docs/user/manual/de/setting-up/users-and-permissions/user-permissions.md +++ b/erpnext/docs/user/manual/de/setting-up/users-and-permissions/user-permissions.md @@ -1,45 +1,5 @@ # Benutzer-Berechtigungen -Beigetragen von CWT Connector & Wire Technology GmbH -Verwenden Sie den Benutzerberechtigungen-Manager um den Zugriff eines Benutzers auf eine Menge von Dokumenten einzuschränken. +This document has been changed but not yet translated. Please see the English Version -Rollenbasierte Berechtigungen definieren den Rahmen an Dokumententypen, innerhalb derer sich ein Benutzer mit einer Anzahl von Rollen bewegen darf. Sie können jedoch noch feinere Einstellungen treffen, wenn Sie für einen Benutzer Benutzerberechtigungen definieren. Wenn Sie bestimmte Dokumente in der Liste der Benutzerberechtigungen eintragen, dann können Sie den Zugriff dieses Benutzers auf bestimmte Dokumente eines bestimmten DocTypes begrenzen, unter der Bedingung, dass die Option "Benutzerberechtigungen anwenden" im Rollenberechtigungs-Manager aktiviert ist. - -Beginnen Sie wie folgt: - -> Einstellungen > Berechtigungen > Benutzerrechte-Manager - - -Abbildung: Übersicht aus dem Benutzerberechtigungs-Manager die aufzeigt, wie Benutzer nur auf bestimmte Firmen zugreifen können - -#### Beispiel - -Der Benutzer "aromn@example.com" hat die Rolle "Nutzer Vertrieb" und wir möchten die Zugriffsrechte des Benutzers so einschränken, dass er nur auf Datensätze einer bestimmten Firma, nämlich der Wind Power LLC, zugreifen kann. - -1\. Wir fügen eine Benutzerberechtigungs-Zeile für die Firma hinzu. - -Abbildung: Hinzufügen einer Zeile "Benutzer-Berechtigung" für die Kombination aus dem Benutzer "aromn@example.com" und der Firma Wind Power LLC - -2\. Die Rolle "Alle" hat nur Leseberechtigungen für die Firma, "Benutzer-Berechtigungen anwenden" ist aktiviert. - -Abbildung: Leseberechtigung mit aktivierter Option "Benutzer-Berechtigungen anwenden" für den DocType Firma - -3\. Die oben abgebildete Kombination der zwei Regeln führt dazu, dass der Benutzer "aromn@example.com" für die Firma Wind Power LLC nur Leserechte hat. - -Abbildung: Der Zugriff wird auf die Firma Wind Power LLC beschränkt - -4\. Wir möchten nun diese Benutzer-Berechtigung für "Firma" auf andere Dokumente wie "Angebot", "Kundenauftrag" etc. übertragen. Diese Formulare haben **Verknüpfungsfelder zu "Firma"**. Als Ergebnis werden Benutzer-Berechtigungen von "Firma" auch auf diese Dokumente übertragen, was dazu führt, dass der Benutzer "aromn@example.com" auf diese Dokumente zugreifen kann, wenn Sie mit Wind Power LLC verbunden sind. - -Abbildung: Benutzer mit der Rolle "Nutzer Vertrieb" können, basierend auf Ihren Benutzer-Berechtigungen, Angebote lesen, schreiben, erstellen, übertragen und stornieren, wenn "Benutzer-Berechtigungen anwenden" aktiviert ist. - -Abbildung: Die Auflistung der Angebote enthält nur Ergebnisse für die Firma Wind Power LLC für den Benutzer "aromn@example.com" - -5\. Benutzer-Berechtigungen werden automatisch auf Basis von verknüpften Feldern angewandt, genauso wie wir es bei den Angeboten gesehen haben. Aber: Das Lead-Formular hat vier Verknüpfungsfelder: "Region", "Firma", "Eigentümer des Leads" und "Nächster Kontakt durch". Nehmen wir an, Sie möchten dass die Leads den Zugriff des Benutzers basierend auf Ihrer Region einschränken, obwohl Sie für die DocTypes "Benutzer", "Region" und "Firma" Benutzer-Berechtigungen angelegt haben. Dann gehen Sie wir folgt vor: Aktivieren Sie die Option "Benutzer-Berechtigungen ignorieren" für die Verknüpfungsfelder "Firma", "Eigentümer des Leads" und "Nächster Kontakt durch". - -Abbildung: Der Vertriebsmitarbeiter kann Leads lesen, schreiben und erstellen, eingeschränkt durch Benutzer-Berechtigungen. - -Abbildung: Markieren Sie "Benutzer-Berechtigungen ignorieren" für die Felder "Firma", "Lead-Inhaber" und "Nächster Kontakt durch" über Setup > Anpassen > Formular anpassen > Lead. - -Abbildung: Aufgrund der obigen Kombination kann der Benutzer "aromn@example.com" nur auf Leads der Region "United States" zugreifen. - -{next} +User Permission diff --git a/erpnext/docs/user/manual/de/setting-up/workflows.md b/erpnext/docs/user/manual/de/setting-up/workflows.md index 7879a0abba..c53a2644c5 100644 --- a/erpnext/docs/user/manual/de/setting-up/workflows.md +++ b/erpnext/docs/user/manual/de/setting-up/workflows.md @@ -7,7 +7,7 @@ Unten Sehen Sie ein Beispiel eines Worklflows. Wenn ein Benutzer einen Urlaub beantragt, dann wird seine Anfrage an die Personalabteilung weiter geleitet. Die Personalabteilung, repräsentiert durch einen Mitarbeiter der Personalabteilung, wird diese Anfrage dann entweder genehmigen oder ablehnen. Wenn dieser Prozess abgeschlossen ist, dann bekommt der Vorgesetzte des Benutzers (der Urlaubsgenehmiger) eine Mitteilung, dass die Personalabteilung den Antrag genehmigt oder abgelehnt hat. Der Vorgesetzte, der die genehmigende Instanz ist, wird dann den Antrag entweder genehmigen oder ablehnen. Dementsprechend bekommt der Benutzer dann eine Genehmigung oder eine Ablehnung. -Workflow +Workflow Um einen Workflow und Übergangsregeln zu erstellen, gehen Sie zu: @@ -15,11 +15,11 @@ Um einen Workflow und Übergangsregeln zu erstellen, gehen Sie zu: #### Schritt 1: Geben Sie die unterschiedlichen Zustände des Prozesses Urlaubsantrag ein. -Workflow +Workflow #### Schritt 2: Geben Sie die Übergangsregeln ein. -Workflow +Workflow Hinweise: @@ -37,14 +37,14 @@ Gehen Sie in das Modul Personalwesen und klicken Sie auf Urlaubsantrag. Beantrag Wenn ein Urlaubsantrag übertragen wird, steht der Status in der Ecke der rechten Seite auf "Beantragt". -Workflow +Workflow Wenn sich ein Mitarbeiter der Personalabteilung anmeldet, dann kann er den Antrag genehmigen oder ablehnen. Wenn eine Genehmigung erfolgt, wechselt der Status in der rechten Ecke zu "Genehmigt". Es wird jedoch ein blaues Informationssymbol angezeigt, welches aussagt, dass der Urlaubsantrag noch anhängig ist. -Workflow +Workflow Wenn der Urlaubsgenehmiger die Seite mit den Urlaubsanträgen öffnet, kann er den Status von "Genehmigt" auf "Abgelehnt" ändern. -Workflow +Workflow {next} diff --git a/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/index.md b/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/index.md index 1a17675c8d..fb427e1ae4 100644 --- a/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/index.md +++ b/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/index.md @@ -9,7 +9,7 @@ Bei diesem Prozess bucht das System jede Lagertransaktion um Lagerbestand und Bu Wenn Sie Artikel kaufen und erhalten, werden diese Artikel als Vermögen des Unternehmens gebucht (Warenbestand/Anlagevermögen). Wenn Sie diese Artikel wieder verkaufen und ausliefern, werden Kosten (Selbstkosten) in Höhe der Bezugskosten der Artikel verbucht. Nach jeder Lagertransaktion werden Buchungen im Hauptbuch erstellt. Dies hat zum Ergebnis, dass der Wert im Lagerbuch immer gleich dem Wert in der Bilanz bleibt. Das verbessert die Aussagekraft der Bilanz und der Gewinn- und Verlustrechnung. -Um Buchungen für bestimmte Lagertransaktionen zu überprüfen, bitte unter [Beispiele]({{docs_base_url}}/user/manual/de/stock/accounting-of-inventory-stock/perpetual-inventory.html) nachlesen. +Um Buchungen für bestimmte Lagertransaktionen zu überprüfen, bitte unter [Beispiele](/docs/user/manual/de/stock/accounting-of-inventory-stock/perpetual-inventory.html) nachlesen. #### Vorteile @@ -33,6 +33,6 @@ Die Differenz aus dem Wert der Waren, die noch nicht verkauft wurden, und dem Wa Dieser Gesamtprozess wird als Stichtagsinventur bezeichnet. -Wenn Sie als bereits existierender Benutzer die Stichtagsinventur nutzen aber zur Ständigen Inventur wechseln möchten, müssen Sie der Migrationsanleitung folgen. Für weitere Details lesen Sie [Migration aus der Stichtagsinventur]({{docs_base_url}}/user/manual/de/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.html). +Wenn Sie als bereits existierender Benutzer die Stichtagsinventur nutzen aber zur Ständigen Inventur wechseln möchten, müssen Sie der Migrationsanleitung folgen. Für weitere Details lesen Sie [Migration aus der Stichtagsinventur](/docs/user/manual/de/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.html). {next} diff --git a/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md b/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md index 742d24644a..62a91666b1 100644 --- a/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md +++ b/erpnext/docs/user/manual/de/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md @@ -21,7 +21,7 @@ Schritte: > Einstellungen > Rechnungswesen > Konteneinstellungen > Eine Buchung für jede Lagerbewegung erstellen -![Aktivierung]({{docs_base_url}}/assets/old_images/erpnext/accounting-for-stock-1.png) +![Aktivierung](/docs/assets/old_images/erpnext/accounting-for-stock-1.png) * Erstellen Sie Lagerbuchungen (Materialübertrag) um verfügbare Lagerbestände von einem existierenden Lager auf ein neues Lager zu übertragen. Sobald im neuen Lager der Lagerbestand verfügbar wird, sollten Sie für zukünftige Transaktionen nur noch das neue Lager verwenden. 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 f0e1f7a688..639e140e93 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 @@ -133,11 +133,11 @@ Nehmen wir an, Sie haben 10 Stück des Artikels "RM0001" zu 200€ und 5 Stück

Lagerbuch

-Lagerbuch +Lagerbuch **Hauptbuch:** -Hauptbuch +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 +Hauptbuch Hier wird das Konto "Lagerware erhalten aber noch nicht bewertet" belastet und hebt den Effekt des Kaufbeleges auf. @@ -206,11 +206,11 @@ Nehmen wir an, dass Sie eine Kundenbestellung von "Utah Automation Services" üb **Lagerbuch** -Lagerbuch +Lagerbuch **Hauptbuch** -Hauptbuch +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. @@ -231,11 +231,11 @@ Nehmen wir an, dass Sie zur obigen Bestellung keinen Lieferschein erstellt haben **Lagerbuch** -Lagerbuch +Lagerbuch **Hauptbuch** -Hauptbuch +Hauptbuch Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten "In Verkaufsstellen" und "Selbstkosten" basierend auf der Bewertung beeinflusst. @@ -268,11 +268,11 @@ Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten **Lagerbuch** -Lagerbuch +Lagerbuch **Hauptbuch** -Hauptbuch +Hauptbuch * * * @@ -303,11 +303,11 @@ Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten **Lagerbuch** -Lagerbuch +Lagerbuch **Hauptbuch** -Hauptbuch +Hauptbuch * * * @@ -340,8 +340,8 @@ Hier werden, im Gegensatz zu den normalen Buchungen für Rechnungen, die Konten **Lagerbuch** -Lagerbuch +Lagerbuch **Hauptbuch** -Hauptbuch \ No newline at end of file +Hauptbuch \ No newline at end of file diff --git a/erpnext/docs/user/manual/de/stock/articles/article-variants.md b/erpnext/docs/user/manual/de/stock/articles/article-variants.md index afd5347311..a54ccd670c 100644 --- a/erpnext/docs/user/manual/de/stock/articles/article-variants.md +++ b/erpnext/docs/user/manual/de/stock/articles/article-variants.md @@ -1,3 +1,5 @@ +# Article Variants + Beigetragen von CWT Connector & Wire Technology GmbH ## 4.6.2 Artikelvarianten diff --git a/erpnext/docs/user/manual/de/stock/batch.md b/erpnext/docs/user/manual/de/stock/batch.md index 783e7e32e8..69171e11f8 100644 --- a/erpnext/docs/user/manual/de/stock/batch.md +++ b/erpnext/docs/user/manual/de/stock/batch.md @@ -13,7 +13,7 @@ Bei jeder für einen Chargenartikel generierten Lagertransaktion (Kaufbeleg, Lie Die Chargenstammdaten werden vor der Ausfertigung des Kaufbelegs erstellt. Somit erstellen Sie immer dann, wenn für einen Chargenartikel ein Kaufbeleg oder ein Produktionsauftrag ausgegeben werden, zuerst die Chargennummer des Artikels und wählen diese dann im Kaufbeleg oder im Produktionsauftrag aus. -Charge +Charge > Anmerkung: Bei Lagertransaktionen werden die Chargen-IDs basierend auf dem Code, dem Lager, dem Verfallsdatum der Charge (verglichen mit dem Veröffentlichungsdatum der Transaktion) und der aktuellen Menge im Lager gefiltert. diff --git a/erpnext/docs/user/manual/de/stock/delivery-note.md b/erpnext/docs/user/manual/de/stock/delivery-note.md index 00e66ca5e3..5ee2567325 100644 --- a/erpnext/docs/user/manual/de/stock/delivery-note.md +++ b/erpnext/docs/user/manual/de/stock/delivery-note.md @@ -11,7 +11,7 @@ Die Buchung zum Lieferschein ist derjenigen zum Kaufbeleg sehr ähnlich. Sie kö oder aber über eine "übertragene" Kundenbestellung (die noch nicht versandt wurde) indem Sie auf "Lieferschein erstellen" klicken. -Lieferschein +Lieferschein Sie können die Details auch aus einer noch nicht gelieferten Kundenbestellung "herausziehen". @@ -19,7 +19,7 @@ Sie werden bemerken, dass alle Informationen über nicht gelieferte Artikel und ### Pakete oder Artikel mit Produkt-Bundles versenden -Wenn Sie Artikel, die ein [Produkt-Bundle]({{docs_base_url}}/user/manual/de/selling/setup/product-bundle.html), ERPNext will automatically beinhalten, versenden, erstellt Ihnen ERPNext automatisch eine Tabelle "Packliste" basierend auf den Unterartikeln dieses Artikels. +Wenn Sie Artikel, die ein [Produkt-Bundle](/docs/user/manual/de/selling/setup/product-bundle.html), ERPNext will automatically beinhalten, versenden, erstellt Ihnen ERPNext automatisch eine Tabelle "Packliste" basierend auf den Unterartikeln dieses Artikels. Wenn Ihre Artikel serialisiert sind, dann müssen Sie für Artikel vom Typ Produkt-Bundle die Seriennummer in der Tabelle "Packliste" aktualisieren. diff --git a/erpnext/docs/user/manual/de/stock/material-request.md b/erpnext/docs/user/manual/de/stock/material-request.md index 5a47b13e4e..2a59ecb152 100644 --- a/erpnext/docs/user/manual/de/stock/material-request.md +++ b/erpnext/docs/user/manual/de/stock/material-request.md @@ -3,7 +3,7 @@ Eine Materialanfrage ist ein einfaches Dokument, welches einen Bedarf an Artikeln (Produkte oder Dienstleistungen) für einen bestimmten Zweck erfasst. -Materialanfrage +Materialanfrage Um eine Materialanfrage manuell zu erstellen, gehen Sie bitte zu: @@ -11,14 +11,14 @@ Um eine Materialanfrage manuell zu erstellen, gehen Sie bitte zu: ### Materialanfrage erstellen -Materialanfrage +Materialanfrage Eine Materialanfrage kann auf folgende Arten erstellt werden: * Automatisch aus einem Kundenauftrag heraus. * Automatisch, wenn die projizierte Menge eines Artikels in den Lagern einen bestimmten Bestand erreicht. * Automatisch aus einer Stückliste heraus, wenn Sie das Modul "Produktionsplanung" benutzen, um Ihre Fertigungsaktivitäten zu planen. -* Wenn Ihre Artikel Bestandsposten sind, müssen Sie überdies das Lager angeben, auf welches diese Artikel geliefert werden sollen. Das hilft dabei die [projizierte Menge]({{docs_base_url}}/user/manual/de/stock/projected-quantity.html) für diesen Artikel im Auge zu behalten. +* Wenn Ihre Artikel Bestandsposten sind, müssen Sie überdies das Lager angeben, auf welches diese Artikel geliefert werden sollen. Das hilft dabei die [projizierte Menge](/docs/user/manual/de/stock/projected-quantity.html) für diesen Artikel im Auge zu behalten. Es gibt folgende Typen von Materialanfragen: diff --git a/erpnext/docs/user/manual/de/stock/projected-quantity.md b/erpnext/docs/user/manual/de/stock/projected-quantity.md index 2b3d9e7d19..2f6e001af7 100644 --- a/erpnext/docs/user/manual/de/stock/projected-quantity.md +++ b/erpnext/docs/user/manual/de/stock/projected-quantity.md @@ -7,7 +7,7 @@ Der projizierte Lagerbestand wird vom Planungssystem verwendet um den Nachbestel Eine strikte Kontrolle des projizierten Lagerbestandes ist entscheidend um Engpässe vorherzusagen und die richtige Bestellmenge kalkulieren zu können. -Bericht zur projizierten Menge +Bericht zur projizierten Menge > Projizierte Menge = Momentan vorhandene Menge + Geplante Menge + Angefragte Menge + Bestellte Menge - Reservierte Menge diff --git a/erpnext/docs/user/manual/de/stock/purchase-receipt.md b/erpnext/docs/user/manual/de/stock/purchase-receipt.md index f78600d293..5303895092 100644 --- a/erpnext/docs/user/manual/de/stock/purchase-receipt.md +++ b/erpnext/docs/user/manual/de/stock/purchase-receipt.md @@ -11,7 +11,7 @@ Sie können einen Kaufbeleg direkt erstellen über: oder aus einer "übertragenen" Einkaufsbestellung heraus, in dem Sie auf die Schaltfläche "Kaufbeleg erstellen" klicken. -Kaufbeleg +Kaufbeleg ### Ausschuss diff --git a/erpnext/docs/user/manual/de/stock/purchase-return.md b/erpnext/docs/user/manual/de/stock/purchase-return.md index 1da0bc4691..0805d75fc8 100644 --- a/erpnext/docs/user/manual/de/stock/purchase-return.md +++ b/erpnext/docs/user/manual/de/stock/purchase-return.md @@ -7,18 +7,18 @@ Sie können eine Lieferantenreklamation erstellen indem Sie ganz einfach einen K Öffnen Sie hierzu zuerst die ursprüngliche Eingangsrechnung zu der der Lieferant die Artikel geliefert hat. -Original-Eingangsrechnung +Original-Eingangsrechnung Klicken Sie dann auf "Lieferantenreklamation erstellen", dies öffnet einen neuen Kaufbeleg bei dem "Ist Reklamation" markiert ist, und bei dem die Artikel mit negativer Menge aufgeführt sind. -Reklamation zum Lieferschein +Reklamation zum Lieferschein Bei der Ausgabe eines Reklamations-Kaufbelegs vermindert das System die Menge des Artikels auf dem entsprechenden Lager. Um einen korrekten Lagerwert zu erhalten, verändert sich der Lagersaldo entsprechend dem Einkaufspreis des zurückgesendeten Artikels. -Reklamation und Lagerbuch +Reklamation und Lagerbuch Wenn die Ständige Inventur aktiviert wurde, verbucht das System weiterhin Buchungssätze zum Lagerkonto um den Lagersaldo mit dem Lagerbestand des Lagerbuchs zu synchronisieren. -Reklamation und Lagerbuch +Reklamation und Lagerbuch {next} diff --git a/erpnext/docs/user/manual/de/stock/sales-return.md b/erpnext/docs/user/manual/de/stock/sales-return.md index 2b4fbb47d1..0daef5cafb 100644 --- a/erpnext/docs/user/manual/de/stock/sales-return.md +++ b/erpnext/docs/user/manual/de/stock/sales-return.md @@ -7,22 +7,22 @@ In ERPNext können Sie eine Kundenreklamation erstellen, indem Sie ganz einfach Öffnen Sie dazu zuerst den Lieferschein/die Ausgangsrechnung zu dem/der der Kunde einen Artikel zurück sendet. -Original-Lieferschein +Original-Lieferschein Klicken Sie dann auf "Kundenreklamation erstellen", das öffnet einen neuen Lieferschein, bei dem "Ist Reklamation" aktiviert ist, und die Artikel und Steuern mit negativem Betrag angezeigt werden. Sie können die Reklamation auch über die Originalausgangsrechnung erstellen. Um Material mit einer Gutschrift zurück zu geben, markieren Sie die Option "Lager aktualisieren" in der Reklamationsrechnung. -Kundenreklamation zum Lieferschein +Kundenreklamation zum Lieferschein Bei der Ausgabe eines Rücksendelieferscheins / einer Reklamationsrechnung erhöht das System den Lagerbestand im entsprechenden Lager. Um den richtigen Lagerwert zu erhalten erhöht sich der Lagerbestand um den Wert des ursprünglichen Einkaufspreises des zurückgeschickten Artikels. -Kundenreklamation zur Eingangsrechnung +Kundenreklamation zur Eingangsrechnung Für den Fall einer Reklamationsrechnung erhält das Kundenkonto eine Gutschrift und die damit verknüpften Konten für Erträge und Steuern werden belastet. Wenn die ständige Inventur aktiviert ist, erstellt das System auch Buchungen für das Lagerkonto um den Kontostand des Lagers mit dem Lagerbuch zu synchronisieren. -Lagerbuch und Reklamation +Lagerbuch und Reklamation -Lagerbuch und Reklamation +Lagerbuch und Reklamation {next} diff --git a/erpnext/docs/user/manual/de/stock/serial-no.md b/erpnext/docs/user/manual/de/stock/serial-no.md index 1fb8bd8aca..883a45e3fb 100644 --- a/erpnext/docs/user/manual/de/stock/serial-no.md +++ b/erpnext/docs/user/manual/de/stock/serial-no.md @@ -13,7 +13,7 @@ Wenn Ihr Artikel serialisiert ist, müssen Sie die Seriennummern in der entsprec Der Lagerbestand eines Artikels kann nur dann beeinflusst werden, wenn die Seriennummer mit Hilfe einer Lagertransaktion (Lagerbuchung, Kaufbeleg, Lieferschein, Ausgangsrechnung) übertragen wird. Wenn eine neue Seriennummer direkt erstellt wird, kann der Lagerort nicht eingestellt werden. -Seriennummer +Seriennummer * Der Status wird aufgrund der Lagerbuchung eingestellt. * Nur Seriennummern mit dem Status "Verfügbar" können geliefert werden. diff --git a/erpnext/docs/user/manual/de/stock/setup/item-attribute.md b/erpnext/docs/user/manual/de/stock/setup/item-attribute.md index 6deabb38ac..d61c6fcfd9 100644 --- a/erpnext/docs/user/manual/de/stock/setup/item-attribute.md +++ b/erpnext/docs/user/manual/de/stock/setup/item-attribute.md @@ -3,18 +3,18 @@ Sie können Attribute und Attributwerte für Ihre Artikelvarianten hier auswählen. -Attributvorlage +Attributvorlage ### Nicht-numerische Attribute * Für nicht-numerische Attribute definieren Sie Attributwerte und deren Abkürzungen in der Tabelle Attributwerte. -Attributvorlage +Attributvorlage ### Numerische Attribute * Wenn Ihr Attribut numerisch ist, wählen Sie numerische Werte. * Geben Sie den Bereich an und die Schrittweite. -Attributvorlage +Attributvorlage diff --git a/erpnext/docs/user/manual/de/stock/setup/item-group.md b/erpnext/docs/user/manual/de/stock/setup/item-group.md index 8be1a60bff..c911c6ccbb 100644 --- a/erpnext/docs/user/manual/de/stock/setup/item-group.md +++ b/erpnext/docs/user/manual/de/stock/setup/item-group.md @@ -3,19 +3,19 @@ Die Artikelgruppe ist die Klassifikationskategorie. Ordnen Sie ein Produkt abhängig von seiner Art in einen entsprechenden Bereich ein. Wenn das Produkt dienstleistungsorientiert ist, ordnen Sie es unter dem Hauptpunkt Dienstleistung ein. Wenn das Produkt als Rohmaterial verwendet wird, müssen Sie es in der Kategorie Rohmaterial einordnen. Für den Fall, dass es sich bei dem Produkt um reine Handelsware handelt, können Sie es im Bereich Handelsware einordnen. -Baumstruktur Artikelgruppe +Baumstruktur Artikelgruppe ### Eine Artikelgruppe erstellen * Wählen Sie eine Artikelgruppe aus unter der Sie eine Artikelgruppe erstellen wollen. * Klicken Sie auf "Unterpunkt hinzufügen". -Artikelgruppe hinzufügen +Artikelgruppe hinzufügen ### Eine Artikelgruppe löschen * Wählen Sie die zu löschende Artikelgruppe aus. * Klicken Sie auf "Löschen" -Artikelgruppe hinzufügen +Artikelgruppe hinzufügen {next} diff --git a/erpnext/docs/user/manual/de/stock/setup/stock-settings.md b/erpnext/docs/user/manual/de/stock/setup/stock-settings.md index c7237b0e51..2eb84ebe34 100644 --- a/erpnext/docs/user/manual/de/stock/setup/stock-settings.md +++ b/erpnext/docs/user/manual/de/stock/setup/stock-settings.md @@ -3,6 +3,6 @@ Sie können Standardeinstellungen für Ihre mit dem Lager verbundenen Transaktionen hier voreinstellen. -Lagereinstellungen +Lagereinstellungen {next} diff --git a/erpnext/docs/user/manual/de/stock/stock-entry.md b/erpnext/docs/user/manual/de/stock/stock-entry.md index 4b9fe08373..442c42d4ad 100644 --- a/erpnext/docs/user/manual/de/stock/stock-entry.md +++ b/erpnext/docs/user/manual/de/stock/stock-entry.md @@ -7,7 +7,7 @@ Wenn Sie eine Lagerbuchung erstellen möchten, gehen Sie zu: > Lagerbestand > Dokumente > Lagerbuchung > Neu -Lagerbuchung +Lagerbuchung Lagerbuchungen können aus folgenden Gründen erstellt werden: @@ -27,15 +27,15 @@ Wenn die Lagerbuchung eine Eingangsbuchung ist, d. h. wenn ein beliebiger Artike Um Zusatzkosten hinzuzufügen, geben Sie die Beschreibung und den Betrag der Kosten in die Tabelle Zusatzkosten ein. -Lagerbuchung Zusatzlkosten +Lagerbuchung Zusatzlkosten Die hinzugefügten Zusatzkosten werden basierend auf dem Grundwert der Artikel proportional auf die erhaltenen Artikel verteilt. Dann werden die verteilten Zusatzkosten zum Grundpreis hinzugerechnet, um den Wert neu zu berechnen. -Lagerbuchung Preis für Artikelvarianten +Lagerbuchung Preis für Artikelvarianten Wenn die laufende Inventur aktiviert ist, werden Zusatzkosten auf das Konto "Aufwendungen im Wert beinhaltet" gebucht. -Zusatzkosten Hauptbuch +Zusatzkosten Hauptbuch > Hinweis: Um den Lagerbestand über eine Tabellenkalkulation zu aktualisieren, bitte unter Lagerabgleich nachlesen. {next} diff --git a/erpnext/docs/user/manual/de/stock/tools/landed-cost-voucher.md b/erpnext/docs/user/manual/de/stock/tools/landed-cost-voucher.md index 340e104384..0cb6ea19e0 100644 --- a/erpnext/docs/user/manual/de/stock/tools/landed-cost-voucher.md +++ b/erpnext/docs/user/manual/de/stock/tools/landed-cost-voucher.md @@ -23,7 +23,7 @@ Sie können die Einstandskosten an jedem zukünftigen Zeitpunkt über einen Eins Im Dokument können Sie verschiedene Kaufbelege auswählen und alle Artikel daraus abrufen. Dann sollten Sie zutreffende Abgaben aus der Tabelle "Steuern und Abgaben" hinzufügen. Die hinzugefügten Abgaben werden proportional auf die Artikel aufgeteilt, basierend auf ihrem Wert. -Einstandskostenbeleg +Einstandskostenbeleg ### Was passiert bei der Ausgabe? diff --git a/erpnext/docs/user/manual/de/stock/tools/packing-slip.md b/erpnext/docs/user/manual/de/stock/tools/packing-slip.md index 93752be863..474f2d5159 100644 --- a/erpnext/docs/user/manual/de/stock/tools/packing-slip.md +++ b/erpnext/docs/user/manual/de/stock/tools/packing-slip.md @@ -3,6 +3,6 @@ Ein Packzettel ist ein Dokument, welches die Artikel einer Sendung auflistet. Normalerweise wird er den gelieferten Waren beigelegt. Beim Versand eines Produktes wird ein Entwurf für einen Lieferschein erstellt. Sie können aus diesem Lieferschein (Entwurf) einen Packzettel erstellen. -Packzettel +Packzettel {next} diff --git a/erpnext/docs/user/manual/de/stock/tools/quality-inspection.md b/erpnext/docs/user/manual/de/stock/tools/quality-inspection.md index 9c375dfad7..76ef650930 100644 --- a/erpnext/docs/user/manual/de/stock/tools/quality-inspection.md +++ b/erpnext/docs/user/manual/de/stock/tools/quality-inspection.md @@ -5,6 +5,6 @@ In ERPNext können Sie eingehende und ausgehende Produkte für eine Qualitätspr > Lagerbestand > Werkzeuge > Qualitätsprüfung > Neu -Qualitätsprüfung +Qualitätsprüfung {next} diff --git a/erpnext/docs/user/manual/de/stock/warehouse.md b/erpnext/docs/user/manual/de/stock/warehouse.md index a2e6c43fac..56c5913f62 100644 --- a/erpnext/docs/user/manual/de/stock/warehouse.md +++ b/erpnext/docs/user/manual/de/stock/warehouse.md @@ -7,7 +7,7 @@ Um zum Bereich "Lager" zu gelangen, klicken Sie auf "Lagerbestand" und gehen Sie > Lagerbestand > Einstellungen > Lager > Neu -Lager +Lager In ERPNext muss jedes Lager einer festen Firma zugeordnet sein, um einen unternehmensbezogenen Lagerbestand zu erhalten. Die Lager werden mit den ihnen zugeordneten Firmenkürzeln abgespeichert. Dies erleichtert es auf einen Blick herauszufinden, welches Lager zu welcher Firma gehört. diff --git a/erpnext/docs/user/manual/de/support/issue.md b/erpnext/docs/user/manual/de/support/issue.md index 37a1b84fbb..7b8e9113c1 100644 --- a/erpnext/docs/user/manual/de/support/issue.md +++ b/erpnext/docs/user/manual/de/support/issue.md @@ -3,11 +3,11 @@ Bei einem Fall handelt es ich um eine eingehende Nachricht vom Kunden, normalerweise per Email oder aus der Kontaktschnittstelle Ihrer Webseite (Um das Supportticket vollständig in Ihre Emails einzubinden, lesen Sie bitte bei "Email-Einstellungen" nach). -> Tipp: Eine eigens eingerichtete Email-Adresse für Supportanfragen ist eine gute Möglichkeit um per Email eingehende Anfragen zu handhaben. Beispiel: Sie können Supportanfragen über support@erpnext.com an ERPNext senden und es werden automatisch im Frappe-System Einträge erstellt. +> Tipp: Eine eigens eingerichtete Email-Adresse für Supportanfragen ist eine gute Möglichkeit um per Email eingehende Anfragen zu handhaben. Beispiel: Sie können Supportanfragen über support@erpnext.com an ERPNext senden und es werden automatisch im Frappé-System Einträge erstellt. > Support > Dokumente > Anfrage > Neu -Fall +Fall ### Gesprächsaufzeichnung diff --git a/erpnext/docs/user/manual/de/support/maintenance-schedule.md b/erpnext/docs/user/manual/de/support/maintenance-schedule.md index dcc88ae4a5..df08375cdd 100644 --- a/erpnext/docs/user/manual/de/support/maintenance-schedule.md +++ b/erpnext/docs/user/manual/de/support/maintenance-schedule.md @@ -9,7 +9,7 @@ Um einen neuen Wartungsplan zu erstellen, gehen Sie zu: > Support > Dokumente > Wartungsplan > Neu -Wartungsplan +Wartungsplan Im Wartungsplan gibt es zwei Abschnitte: diff --git a/erpnext/docs/user/manual/de/support/maintenance-visit.md b/erpnext/docs/user/manual/de/support/maintenance-visit.md index d215c737fa..86ed897efc 100644 --- a/erpnext/docs/user/manual/de/support/maintenance-visit.md +++ b/erpnext/docs/user/manual/de/support/maintenance-visit.md @@ -5,7 +5,7 @@ Ein Wartungsbesuch ist ein Datensatz über einen Besuch eines Technikers bei ein > Support > Dokumente > Wartungsbesuch > Neu -Wartungsbesuch +Wartungsbesuch Der Wartungsbesuch inhält Informationen über: diff --git a/erpnext/docs/user/manual/de/support/warranty-claim.md b/erpnext/docs/user/manual/de/support/warranty-claim.md index 42ae52d9cc..a54aac82bb 100644 --- a/erpnext/docs/user/manual/de/support/warranty-claim.md +++ b/erpnext/docs/user/manual/de/support/warranty-claim.md @@ -11,7 +11,7 @@ Um einen neuen **Garantiefall** zu erstellen, gehen Sie zu: > Support > Dokukumente > Garantieantrag > Neu -![Warranty Claim]({{docs_base_url}}/assets/img/support/warranty-claim.png) +![Warranty Claim](/docs/assets/img/support/warranty-claim.png) Wenn für die Lösung des Problems ein Besuch beim Kunden notwendig ist, können Sie einen neuen Wartungsbesuch erstellen. diff --git a/erpnext/docs/user/manual/de/using-erpnext/assignment.md b/erpnext/docs/user/manual/de/using-erpnext/assignment.md index 6631491a9f..e24d1326bc 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/assignment.md +++ b/erpnext/docs/user/manual/de/using-erpnext/assignment.md @@ -11,9 +11,9 @@ Einschränkende Berechtigungen können nicht über "Zuweisen zu" erstellt werden Die Option "Zuweisen zu" befindet sich in der Fußzeile des Dokuments. Wenn Sie auf das Zuteilungs-Symbol in der Werkzeugleiste klicken, werden Sie schnell zur Fußzeile des selben Dokuments weiter geleitet. -![Symbol für Zuweisung]({{docs_base_url}}/assets/old_images/erpnext/assigned-to-icon.png) +![Symbol für Zuweisung](/docs/assets/old_images/erpnext/assigned-to-icon.png) -![Zugewiesen zu]({{docs_base_url}}/assets/old_images/erpnext/assigned-to.png) +![Zugewiesen zu](/docs/assets/old_images/erpnext/assigned-to.png) ### Schritt 2: Zu einem Benutzer zuweisen @@ -21,19 +21,19 @@ Im Abschnitt "Zuweisen zu" können Sie einen Benutzer auswählen, dem das Dokume Bei der Zuordnung können Sie auch einen Kommentar für denjenigen hinterlassen, dem das Dokument zugeordnet wird. -![Benutzer zuweisen]({{docs_base_url}}/assets/old_images/erpnext/assign-user.png) +![Benutzer zuweisen](/docs/assets/old_images/erpnext/assign-user.png) ### Aufgabenliste des Empfängers Diese Transaktion erscheint in der Aufgabenliste des Empfängers. -![Todo zuweisen]({{docs_base_url}}/assets/old_images/erpnext/assign-todo.png) +![Todo zuweisen](/docs/assets/old_images/erpnext/assign-todo.png) Zuordnung entfernen Ein Benutzer kann eine Zuordnung entfernen, indem im Dokument die Schaltfläche "Zuordnung abgeschlossen" angeklickt wird. -![Zuordnung entfernen]({{docs_base_url}}/assets/old_images/erpnext/assign-remove.png) +![Zuordnung entfernen](/docs/assets/old_images/erpnext/assign-remove.png) Wenn die Zuordnung einmal als abgeschlossen markiert wurde, wird der Status des zugehörigen Eintrages in der Aufgabenliste auf "Abgeschlossen" gesetzt. diff --git a/erpnext/docs/user/manual/de/using-erpnext/calendar.md b/erpnext/docs/user/manual/de/using-erpnext/calendar.md index 42d884b64e..8be16098b7 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/calendar.md +++ b/erpnext/docs/user/manual/de/using-erpnext/calendar.md @@ -5,7 +5,7 @@ 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 +Calendar ### Ereignisse im Kalender erstellen @@ -15,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. -Calendar +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. @@ -23,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. -Lead Event +Lead Event #### Geburtstag @@ -33,7 +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. -Calendar Recurring Event +Calendar Recurring Event ### Erinnerungen an Ereignisse @@ -43,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. -Calendar Recurring Event +Calendar Recurring Event #### Einen täglichen E-Mail-Bericht erstellen @@ -53,6 +53,6 @@ Der tägliche E-Mail-Bericht kann eingestellt werden über: > Einstellungen > E-Mail > Täglicher E-Mail-Bericht -Calendar Recurring Event +Calendar Recurring Event {next} diff --git a/erpnext/docs/user/manual/de/using-erpnext/collaborating-around-forms.md b/erpnext/docs/user/manual/de/using-erpnext/collaborating-around-forms.md index 3107a2b0de..956a7744dd 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/collaborating-around-forms.md +++ b/erpnext/docs/user/manual/de/using-erpnext/collaborating-around-forms.md @@ -5,7 +5,7 @@ Sie können jedwede Transaktion aus dem System versenden, indem Sie auf die Schaltfläche "Zugeordnet zu" klicken. Im Menü "Kommunikation" wird ein Protokoll aller von Ihnen versendeter E-Mails gepflegt. -![Formulare]({{docs_base_url}}/assets/old_images/erpnext/forms.png) +![Formulare](/docs/assets/old_images/erpnext/forms.png) ### Kommentar @@ -13,6 +13,6 @@ Kommentare sind ein großartiger Weg Informationen über eine Transaktion, die a ### Schlagworte -Lesen Sie hier mehr über [Schlagworte]({{docs_base_url}}/user/manual/de/using-erpnext/tags.html) +Lesen Sie hier mehr über [Schlagworte](/docs/user/manual/de/using-erpnext/tags.html) {next} diff --git a/erpnext/docs/user/manual/de/using-erpnext/messages.md b/erpnext/docs/user/manual/de/using-erpnext/messages.md index 11722a6b55..f9d1796717 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/messages.md +++ b/erpnext/docs/user/manual/de/using-erpnext/messages.md @@ -3,10 +3,10 @@ Sie können mithilfe des Nachrichtenwerkzeuges Mitteilungen über das System versenden und empfangen. Wenn Sie einem Benutzer eine Mitteilung senden, und der Benutzer angemeldet ist, öffnet sich ein Mitteilungsfenster und der Zähler für ungelesene Mitteilungen in der Kopfleiste wird angepasst. -![Liste der Mitteilungen]({{docs_base_url}}/assets/old_images/erpnext/message-list.png) +![Liste der Mitteilungen](/docs/assets/old_images/erpnext/message-list.png) Sie können Mitteilungen an alle Benutzer oder nur an bestimmte versenden. -![Mitteilung an]({{docs_base_url}}/assets/old_images/erpnext/message-to.png) +![Mitteilung an](/docs/assets/old_images/erpnext/message-to.png) {next} diff --git a/erpnext/docs/user/manual/de/using-erpnext/notes.md b/erpnext/docs/user/manual/de/using-erpnext/notes.md index a791352797..cb79771280 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/notes.md +++ b/erpnext/docs/user/manual/de/using-erpnext/notes.md @@ -11,13 +11,13 @@ In diesem Bereich können Sie lange Anmerkungen abspeichern. Diese können z. B. Geben Sie Titel und Inhalt ein. -![Anmerkung]({{docs_base_url}}/assets/old_images/erpnext/note.png) +![Anmerkung](/docs/assets/old_images/erpnext/note.png) ## Berechtigungen für ausgewählte Benutzer setzen Damit alle auf eine Anmerkung zugreifen können, aktivieren Sie "Öffentlich" unter dem Abschnitt Verknüpfungen. Damit ein Benutzer auf eine bestimmte Anmerkung zugreifen kann, können diese in der Tabelle "Teilen mit" ausgewählt werden. -![Berechtigungen für Anmerkungen]({{docs_base_url}}/assets/old_images/erpnext/note-permission.png) +![Berechtigungen für Anmerkungen](/docs/assets/old_images/erpnext/note-permission.png) Anmerkungen können intern auch als Wissensdatenbank genutzt werden. Sie können an die Anmerkungen auch Dateien anhängen und diese einer bestimmten Auswahl an Benutzern zugänglich machen. diff --git a/erpnext/docs/user/manual/de/using-erpnext/tags.md b/erpnext/docs/user/manual/de/using-erpnext/tags.md index 68282b8403..e61a59855f 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/tags.md +++ b/erpnext/docs/user/manual/de/using-erpnext/tags.md @@ -3,6 +3,6 @@ Genauso wie Zuordnungen und Kommentare können Sie auch Ihre eigenen Schlagworte zu jeder Art von Transaktionen hinzufügen. Diese Schlagworte helfen Ihnen bei der Suche nach einem Dokument und klassifizieren dieses. ERPNext zeigt Ihnen die wichtigen Schlagworte in der Dokumentenliste an. -![Schlagworte]({{docs_base_url}}/assets/old_images/erpnext/tags-in-list.png) +![Schlagworte](/docs/assets/old_images/erpnext/tags-in-list.png) {next} diff --git a/erpnext/docs/user/manual/de/using-erpnext/to-do.md b/erpnext/docs/user/manual/de/using-erpnext/to-do.md index 70e718803b..54b6cf4d2d 100644 --- a/erpnext/docs/user/manual/de/using-erpnext/to-do.md +++ b/erpnext/docs/user/manual/de/using-erpnext/to-do.md @@ -3,10 +3,10 @@ "Aufgaben" ist ein einfaches Werkzeug, welches alle Aktivitäten, die Ihnen [zugeordnet](https://erpnext.com/collaboration-tools/assignment) wurden, und die Sie zugeordnet haben, auflistet. Sie können zudem Ihre eigenen ToDos der Liste hinzufügen. -![Todo-Liste]({{docs_base_url}}/assets/old_images/erpnext/todo-list.png) +![Todo-Liste](/docs/assets/old_images/erpnext/todo-list.png) Wenn eine Aufgabe abgeschlossen wurde, können Sie einfach die Zuweisung vom Dokument entfernen. Dabei wird die Aufgabe von der ToDo-Liste entfernt. Bei Aufgaben, die nicht über ein Dokument zugeordnet wurden, können Sie den Status über den ToDo-Datensatz selbst auf "abgeschlossen" setzen. -![Todos abschliessen]({{docs_base_url}}/assets/old_images/erpnext/todo-close.png) +![Todos abschliessen](/docs/assets/old_images/erpnext/todo-close.png) {next} diff --git a/erpnext/docs/user/manual/de/website/blog-post.md b/erpnext/docs/user/manual/de/website/blog-post.md index 1641ea9a1a..c316577171 100644 --- a/erpnext/docs/user/manual/de/website/blog-post.md +++ b/erpnext/docs/user/manual/de/website/blog-post.md @@ -9,12 +9,12 @@ Um einen neuen Blog zu erstellen, gehen Sie zu: > Webseite > Blog-Eintrag > Neu -Blogeintrag +Blogeintrag Sie können einen Blog mit Hilfe des Markdown-Formats formatieren. Sie können auf Ihren Blog auch zugreifen, indem Sie zur Seite "blog.html" gehen. #### Ein Beispiel für einen Blog. -Beispiel für ein Blog +Beispiel für ein Blog {next} diff --git a/erpnext/docs/user/manual/de/website/blogger.md b/erpnext/docs/user/manual/de/website/blogger.md index 8d81b39d0b..6332fb6b2d 100644 --- a/erpnext/docs/user/manual/de/website/blogger.md +++ b/erpnext/docs/user/manual/de/website/blogger.md @@ -3,6 +3,6 @@ Ein Blogger ist ein Benutzer, der Blog-Einträge erstellen kann. Sie können eine Kurzbiografie des Bloggers angeben und dazu einen Avatar. -Blogger +Blogger {next} diff --git a/erpnext/docs/user/manual/de/website/setup/website-settings.md b/erpnext/docs/user/manual/de/website/setup/website-settings.md index 45a44984ab..20824559df 100644 --- a/erpnext/docs/user/manual/de/website/setup/website-settings.md +++ b/erpnext/docs/user/manual/de/website/setup/website-settings.md @@ -3,11 +3,11 @@ Die meisten der Einstellungen, die Ihre Webseite betreffen, können hier eingestellt werden. -Webseiten-Einstellungen +Webseiten-Einstellungen ### Zielseite -* Homepage: Sie können angeben, welche [Webseite]({{docs_base_url}}/user/manual/de/website/web-page.html) die Startseite der Homepage ist. +* Homepage: Sie können angeben, welche [Webseite](/docs/user/manual/de/website/web-page.html) die Startseite der Homepage ist. * Startseite ist "Products": Wenn diese Option markiert ist, ist die Standard-Artikelgruppe die Startseite der Webseite. * Titel-Präfix: Stellt den Browser-Titel ein. @@ -15,7 +15,7 @@ Die meisten der Einstellungen, die Ihre Webseite betreffen, können hier eingest Wählen Sie das Thema für Ihre Webseite aus. Sie können auch neue Themen für Ihre Webseite erstellen. -Webseiten-Themen +Webseiten-Themen * Wählen "Neues Webseiten-Thema erstellen" wenn Sie das Standars-Thema der Webseite anpassen wollen. @@ -23,13 +23,13 @@ Wählen Sie das Thema für Ihre Webseite aus. Sie können auch neue Themen für Hier können Sie ein Banner/Logo auf Ihrer Webseite hinzufügen. Hängen Sie das Bild an und klicken Sie auf "Banner aus Bild einrichten". Das System erstellt einen HTML-Kode unter Banner HTML. -Banner +Banner ### Kopfleiste Hier können Sie die Menüeinträge in der Kopfleiste einstellen. -Kopfleiste +Kopfleiste * In ähnlicher Art und Weise können Sie auch die Verknüpfungen auf der Seitenleiste und in der Fußzeile einstellen. @@ -37,7 +37,7 @@ Hier können Sie die Menüeinträge in der Kopfleiste einstellen. Sie können Google Analytics und soziale Netzwerke in Ihre Webseite mit einbinden und Einträge auf der Webseite teilen. -Einbindungen +Einbindungen * Sie können ein öffentliches Anmelden auf Ihr ERPNext-Konto unterbinden indem Sie auf "Anmelden deaktivieren" klicken. diff --git a/erpnext/docs/user/manual/de/website/web-form.md b/erpnext/docs/user/manual/de/website/web-form.md index 473f2c73e7..e8c98506e8 100644 --- a/erpnext/docs/user/manual/de/website/web-form.md +++ b/erpnext/docs/user/manual/de/website/web-form.md @@ -18,7 +18,7 @@ Um ein neues **Webformular** zu erstellen, gehen Sie zu: 3. Geben Sie an, ob sich der Benutzer einloggen muss, Daten ändern muss, mehrere verschiedene Datensätze verwalten soll, etc. 4. Fügen Sie die Felder, die Sie in den Datensätzen haben wollen, hinzu. -Webformular +Webformular * * * @@ -26,7 +26,7 @@ Um ein neues **Webformular** zu erstellen, gehen Sie zu: Wenn Sie das Web-Formular erstellt haben, können Sie es unter der URL ansehen und ausprobieren! -Webformular +Webformular * * * diff --git a/erpnext/docs/user/manual/de/website/web-page.md b/erpnext/docs/user/manual/de/website/web-page.md index 91bd7d548b..96f917f47a 100644 --- a/erpnext/docs/user/manual/de/website/web-page.md +++ b/erpnext/docs/user/manual/de/website/web-page.md @@ -7,7 +7,7 @@ Um eine neue Webseite zu erstellen, gehen Sie zu: > Webseite > Webseite > Neu -Webseit +Webseit ### Bezeichnung diff --git a/erpnext/docs/user/manual/en/CRM/contact.md b/erpnext/docs/user/manual/en/CRM/contact.md index f87f82c40f..dcc8e17a39 100644 --- a/erpnext/docs/user/manual/en/CRM/contact.md +++ b/erpnext/docs/user/manual/en/CRM/contact.md @@ -18,12 +18,12 @@ To create a new Contact go to, > CRM > Contact > New -Contact +Contact Or you can add a Contact or Address directly from the Customer record, click on “New Contact” or “New Address”. -Contact +Contact > Tip: When you select a Customer in any transaction, one Contact and Address gets pre-selected. This is the “Default Contact or Address”. diff --git a/erpnext/docs/user/manual/en/CRM/crm_reports.md b/erpnext/docs/user/manual/en/CRM/crm_reports.md index 4ff9aa598d..4ac90bb171 100644 --- a/erpnext/docs/user/manual/en/CRM/crm_reports.md +++ b/erpnext/docs/user/manual/en/CRM/crm_reports.md @@ -1,9 +1,11 @@ +# Crm Reports + CRM module's reports helps users to get the information about the prospects. Using Following reports, user can analyze the data about prospect's history with a company and will helps user to build strong relationships with them. ###Lead Details It has data about the leads and their contact and address details. Lead Details + src="/docs/assets/img/crm/report/lead.png"> ###Sales Funnel By using the sales funnel report, and by quantifying the number of prospects at each stage of the process, you can get an idea of your potential customers. @@ -13,28 +15,28 @@ More than this, by looking at the way these numbers change over time, you can id For example, if you notice that very few communications with the prospects has taken place in a month which might indicate a decrease in the sales. From the next month, organization should make sure that more communications has to take place with the prospects. Lead Details + src="/docs/assets/img/crm/report/sales_funnel.png"> ###Prospects Engaged But Not Converted Using this report, user gets the information about the leads who has shown interest in the business with you but due to some reason they were not converted into the customers. Lead Details + src="/docs/assets/img/crm/report/prospects_engaged_but_not_converted.png"> ###Minutes to First Response for Opportunity Immediacy is so important – and so valued In this internet area, we all expect a quicker response time to any of our query. This report gives you the information about the first response time given to an opportunities or issues. Using this report, the organization can improve their first response time to the prospects which can help to the better sales in the future. Lead Details + src="/docs/assets/img/crm/report/minutes_to_first_response.png"> ###Customer Addresses And Contacts It has data about the customers and their contact and address details. Lead Details + src="/docs/assets/img/crm/report/customer_address_and_contact.png"> ###Inactive Customers This report shows the list of customers who has not purchased since long time. Lead Details + src="/docs/assets/img/crm/report/inactive_customers.png"> diff --git a/erpnext/docs/user/manual/en/CRM/customer.md b/erpnext/docs/user/manual/en/CRM/customer.md index 24971bf653..5924665d81 100644 --- a/erpnext/docs/user/manual/en/CRM/customer.md +++ b/erpnext/docs/user/manual/en/CRM/customer.md @@ -1,3 +1,5 @@ +# Customer + A customer, who is sometimes known as a client, buyer, or purchaser is the one who receives goods, services, products, or ideas, from a seller for a monetary consideration. A customer can also receive goods or services from a vendor or @@ -9,20 +11,20 @@ You can either directly create your Customers via > Selling > Customer -Create Customer +Create Customer -or upload it via the [Data Import Tool]({{docs_base_url}}/user/manual/en/setting-up/data/data-import-tool.html). +or upload it via the [Data Import Tool](/docs/user/manual/en/setting-up/data/data-import-tool.html). A Customer can avail the features (operations) in the selling process. The general flow can be summarised as: -Customer +Customer > Note: Customers are separate from Contacts and Addresses. A Customer can have multiple Contacts and Addresses. ### Contacts and Addresses -[Contacts and Addresses]({{docs_base_url}}/user/manual/en/CRM/contact.html) in ERPNext are stored separately so that you can +[Contacts and Addresses](/docs/user/manual/en/CRM/contact.html) in ERPNext are stored separately so that you can attach multiple Contacts or Addresses to Customers and Suppliers Thus we may have identical Customer Names that are uniquely identified by the ID. Since the email address is not part of the @@ -45,7 +47,7 @@ to create an Account in another Company, just change the Company value and By default, the system does not generate an account for every customer. All Customers can be booked in one account called Debtors. In order to manage a separate account for each customer, you have to first create the account under -Accounts Receivable in the [Chart of Accounts]({{docs_base_url}}/user/manual/en/accounts/chart-of-accounts.html) and then add it on the customer's +Accounts Receivable in the [Chart of Accounts](/docs/user/manual/en/accounts/chart-of-accounts.html) and then add it on the customer's form accounts table. ### Customer Settings @@ -60,12 +62,12 @@ You can set how much credit you want to allow for a Customer by adding the “Credit Limit”. You can also set a global “Credit Limit” in the Company master. Classifying Customers -ERPNext allows you to group your Customers using [Customer Group]({{docs_base_url}}/user/manual/en/CRM/setup/customer-group.html) -and also divide them into [Territories]({{docs_base_url}}/user/manual/en/setting-up/territory.html) +ERPNext allows you to group your Customers using [Customer Group](/docs/user/manual/en/CRM/setup/customer-group.html) +and also divide them into [Territories](/docs/user/manual/en/setting-up/territory.html) Grouping will help you get better analysis of your data and identify which Customers are profitable and which are not. Territories will help you set sales targets for the respective territories. -You can also mention [Sales Person]({{docs_base_url}}/user/manual/en/CRM/setup/sales-person.html) against a customer. +You can also mention [Sales Person](/docs/user/manual/en/CRM/setup/sales-person.html) against a customer. ### Sales Partner diff --git a/erpnext/docs/user/manual/en/CRM/lead.md b/erpnext/docs/user/manual/en/CRM/lead.md index 52fa2cc8a7..15b1159d8d 100644 --- a/erpnext/docs/user/manual/en/CRM/lead.md +++ b/erpnext/docs/user/manual/en/CRM/lead.md @@ -1,3 +1,5 @@ +# Lead + To get the customer through the door, you may be doing all or any of the following: @@ -24,7 +26,7 @@ To create a Lead, go to: > CRM > Lead > New Lead -Lead +Lead ERPNext gives you a lot of options you may want to store about your Leads. For example what is the source, how likely are they to give you business etc. If @@ -46,7 +48,7 @@ dropdown. Once the Customer is created, the Lead becomes “Converted” and any further Opportunities from the same source can be created against this Customer. -Create Customer +Create Customer --- diff --git a/erpnext/docs/user/manual/en/CRM/newsletter.md b/erpnext/docs/user/manual/en/CRM/newsletter.md index 9749e17ee6..2aac1b2808 100644 --- a/erpnext/docs/user/manual/en/CRM/newsletter.md +++ b/erpnext/docs/user/manual/en/CRM/newsletter.md @@ -1,3 +1,5 @@ +# Newsletter + A newsletter is a short written report that tells about the recent activities of an organization. It is generally sent to members of the organization, potential clients customers or potential leads. @@ -12,8 +14,8 @@ see how it looks to the recepient, you can use the test function. Save the document before testing. A test email will be sent to your Email Address. You can send the email to all the intended receipients by clicking on the send button. -Newsletter - New +Newsletter - New -Newsletter - Test +Newsletter - Test {next} diff --git a/erpnext/docs/user/manual/en/CRM/opportunity.md b/erpnext/docs/user/manual/en/CRM/opportunity.md index 4651a756b0..94338f9326 100644 --- a/erpnext/docs/user/manual/en/CRM/opportunity.md +++ b/erpnext/docs/user/manual/en/CRM/opportunity.md @@ -1,3 +1,5 @@ +# Opportunity + When you know a Lead is looking for some products or services to buy, you can track that as an Opportunity. Also opportunity document helps user to collect the requirement of a customer/lead. @@ -7,17 +9,17 @@ You can create an Opportunity from: #### Figure 1: Create Opportunity -Opportunity +Opportunity You can also go to an “Open” Lead and select “Opportunity” from the **Make** dropdown. #### Figure 2: Create Opportunity from an open Lead -Opportunity +Opportunity #### Figure 3: Create Opportunity for Customer to Collect their Requirement -Opportunity +Opportunity An Opportunity can also come from an existing Customer. You can create multiple Opportunities against the same Lead. In Opportunity, apart from the @@ -27,7 +29,7 @@ looking for. #### Make Supplier Quotation In some businesses, users collect the rates from their supplier against the customer requirement and based on the supplier rates they prepare the quotation for the customer. With ERPNext, you can make a supplier quotation from the opportunity itself. -Opportunity +Opportunity > Best Practice: Leads and Opportunities are often referred as your “Sales Pipeline” this is what you need to track if you want to be able to predict how diff --git a/erpnext/docs/user/manual/en/CRM/setup/campaign.md b/erpnext/docs/user/manual/en/CRM/setup/campaign.md index 9714350bfe..17b06f18fe 100644 --- a/erpnext/docs/user/manual/en/CRM/setup/campaign.md +++ b/erpnext/docs/user/manual/en/CRM/setup/campaign.md @@ -1,20 +1,22 @@ +# Campaign + A Campaign is a full-scale implementation of a sales strategy to promote a product or a service. This is done in a market segment of a particular geographical area, to achieve specified objectives. -Campaign +Campaign -You can track [Lead]({{docs_base_url}}/user/manual/en/CRM/lead.html), [Opportunity]({{docs_base_url}}/user/manual/en/CRM/opportunity.html), [Quotation]({{docs_base_url}}/user/manual/en/selling/quotation.html) against a campaign. +You can track [Lead](/docs/user/manual/en/CRM/lead.html), [Opportunity](/docs/user/manual/en/CRM/opportunity.html), [Quotation](/docs/user/manual/en/selling/quotation.html) against a campaign. ###Track Leads against Campaign * To track a 'Lead' against a campaign select 'View Leads'. -Campaign - View Leads +Campaign - View Leads * You shall get a filtered list of all leads made against that campaign. * You can also create new leads by clicking 'New' -Campaign - New Lead +Campaign - New Lead {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/CRM/setup/customer-group.md b/erpnext/docs/user/manual/en/CRM/setup/customer-group.md index 505c4fbf7a..628057a0dd 100644 --- a/erpnext/docs/user/manual/en/CRM/setup/customer-group.md +++ b/erpnext/docs/user/manual/en/CRM/setup/customer-group.md @@ -1,14 +1,16 @@ +# Customer Group + Customer groups allow you to organize your customers. You can also have discounts based on customer groups. You can also get trend analysis for each group. Typically Customers are grouped by market segment (that is usually based on your domain). -Customer Group Tree +Customer Group Tree > Tip: If you think all this is too much effort, you can leave it at “Default Customer Group”. But all this effort, will pay off when you start getting reports. An example of a sample report is given below: -Customer Group report +Customer Group report {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/CRM/setup/index.md b/erpnext/docs/user/manual/en/CRM/setup/index.md index 259b5ebc42..2d85ad2e74 100644 --- a/erpnext/docs/user/manual/en/CRM/setup/index.md +++ b/erpnext/docs/user/manual/en/CRM/setup/index.md @@ -1,3 +1,5 @@ +# Setup + ### Topics diff --git a/erpnext/docs/user/manual/en/CRM/setup/sales-person.md b/erpnext/docs/user/manual/en/CRM/setup/sales-person.md index ce5ed934f5..b96020ed10 100644 --- a/erpnext/docs/user/manual/en/CRM/setup/sales-person.md +++ b/erpnext/docs/user/manual/en/CRM/setup/sales-person.md @@ -1,14 +1,16 @@ +# Sales Person + Sales Persons behave exactly like Territories. You can create an organization chart of Sales Persons where each Sales Person’s target can be set individually. Again as in Territory, the target has to be set against Item Group. -Sales Person Tree +Sales Person Tree ####Sales Person in Transactions You can use this Sales Person in Customer and sales transactions like Sales Order, Delivery Note and Sales Invoice. -Click [here]({{docs_base_url}}/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions) to learn more +Click [here](/docs/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions) to learn more about how Sales Persons are used in the transactions of Sales Cycle. {next} diff --git a/erpnext/docs/user/manual/en/accounts/accounting-entries.md b/erpnext/docs/user/manual/en/accounts/accounting-entries.md index 7aeff24a4a..abd2322707 100644 --- a/erpnext/docs/user/manual/en/accounts/accounting-entries.md +++ b/erpnext/docs/user/manual/en/accounts/accounting-entries.md @@ -1,10 +1,12 @@ +# Accounting Entries + The concept of accounting is explained with an example given below: We will take a "Tea Stall" as a company and see how to book accounting entries for the business. * Mama (The Tea-stall owner) invests Rs 25000 to start the business. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-1.png) +![A&L](/docs/assets/old_images/erpnext/assets-1.png) __Analysis:__ Mama invested 25000 in company, hoping to get some profit. In other words, company is liable to pay 25000 to Mama in the future. So, account @@ -14,7 +16,7 @@ will debited. * The company needs equipments (Stove, teapot, cups etc) and raw materials (tea, sugar, milk etc) immediately. He decides to buy from the nearest general store "Super Bazaar" who is a friend so that he gets some credit. Equipments cost him 2800 and raw materials worth of 2200. He pays 2000 out of total cost 5000. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-2.png) +![A&L](/docs/assets/old_images/erpnext/assets-2.png) __Analysis:__ Equipments are "Fixed Assets" (because they have a long life) of the company and raw materials "Current Assets" (since they are used for day-to-day @@ -25,7 +27,7 @@ Bazaar" later, so Super Bazaar will be credited by 3000. * Mama (who takes care of all entries) decides to book sales at the end of the every day, so that he can analyze daily sales. At the end of the very first day, the tea stall sells 325 cups of tea, which gives net sales of Rs. 1575. The owner happily books his first day sales. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-3.png) +![A&L](/docs/assets/old_images/erpnext/assets-3.png) __Analysis:__ Income has been booked in "Sales of Tea" account which has been credited to increase the value and the same amount will be debited to "Cash" @@ -36,7 +38,7 @@ sold" account by same amount. At the end of the month, the company paid the rent amount of stall (5000) and salary of one employee (8000), who joined from the very first day. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-4.png) +![A&L](/docs/assets/old_images/erpnext/assets-4.png) ### Booking Profit @@ -47,7 +49,7 @@ its a liability for the company (it has to pay it to Mama). When the Balance Sheet is not balanced i.e. Debit is not equal to Credit, the profit has not yet been booked. To book profit, the following entry has to be made: -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-5.png) +![A&L](/docs/assets/old_images/erpnext/assets-5.png) Explanation: Company's net sales and expenses are 40000 and 20000 respectively. So, company made a profit of 20000. To make the profit booking diff --git a/erpnext/docs/user/manual/en/accounts/accounting-reports.md b/erpnext/docs/user/manual/en/accounts/accounting-reports.md index 61470b1579..99d7029b59 100644 --- a/erpnext/docs/user/manual/en/accounts/accounting-reports.md +++ b/erpnext/docs/user/manual/en/accounts/accounting-reports.md @@ -1,3 +1,5 @@ +# Accounting Reports + Some of the major accounting reports are: ### General Ledger @@ -7,7 +9,7 @@ and between a period. This will help you to get a full update for all entries done in that period for that Account. General Ledger + src="/docs/assets/img/accounts/general-ledger.png"> ### Trial Balance @@ -20,7 +22,7 @@ the: * Credits * Closing -Trial Balance +Trial Balance The sum of all closing balances in a Trial Balance must be zero. @@ -30,7 +32,7 @@ These reports help you to track the outstanding invoices sent to Customer and Suppliers. In this report, you will get your outstanding amounts period wise. i.e. between 0-30 days, 30-60 days and so on. -Accounts Receivable +Accounts Receivable ### Sales and Purchase Register @@ -38,6 +40,6 @@ In this report, each tax Account is transposed in columns. For each Invoice and invoice Item, you will get the amount of individual tax that has been paid, based on the Taxes and Charges table. -Sales Register +Sales Register {next} diff --git a/erpnext/docs/user/manual/en/accounts/advance-payment-entry.md b/erpnext/docs/user/manual/en/accounts/advance-payment-entry.md index 010d8977ee..9627ff27b0 100644 --- a/erpnext/docs/user/manual/en/accounts/advance-payment-entry.md +++ b/erpnext/docs/user/manual/en/accounts/advance-payment-entry.md @@ -1,3 +1,5 @@ +# Advance Payment Entry + Payment done by the customer before accepting delivery of the product is an Advance Payment. For Orders of high value, the business houses expect to receive advance. @@ -22,7 +24,7 @@ the row "Is Advance" click 'Yes'. #### Figure 1 : Journal Entry -Advance Entry -Advace Payment +Advace Payment ### Double Entry Accounting @@ -39,7 +41,7 @@ will be credited because it has given value. #### Figure 2: Transaction and Difference Entry -Advace Payment +Advace Payment Save and submit the Journal Entry. If this document is not saved it will not be pulled in other accounting documents. @@ -53,7 +55,7 @@ advance in the advances table. The accounting will be adjusted accordingly. #### Figure 3: Receive Advance -Advace Payment +Advace Payment Save and submit the Sales Invoice. diff --git a/erpnext/docs/user/manual/en/accounts/articles/adjust-withhold-amount-payment-entry.md b/erpnext/docs/user/manual/en/accounts/articles/adjust-withhold-amount-payment-entry.md index d469b2883e..01f6ef53d2 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/adjust-withhold-amount-payment-entry.md +++ b/erpnext/docs/user/manual/en/accounts/articles/adjust-withhold-amount-payment-entry.md @@ -1,3 +1,5 @@ +# Adjust Withhold Amount Payment Entry + #Adjust Withhold Amount in the Payment Entry ###Question @@ -22,7 +24,7 @@ To create Payment Entry, go to unpaid Sales Invoice and create click on Make Pay Enter Payment Amount as 19,600. -Sales Invoice Payment Amount +Sales Invoice Payment Amount #####Step 2.2: Allocate Against Sales Invoice @@ -32,6 +34,6 @@ Against Sales Invoice, allocate 20,000 (explained in GIF below). You can notice that there is a difference of 400 in the Payment Amount and the Amount Allocated against Sales Invoice. You can book this difference account under Withhold Account. -Deduction/Loss Account +Deduction/Loss Account Following same steps, you can also manage difference availed due to Currency Exchange Gain/Loss. \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/articles/c-form.md b/erpnext/docs/user/manual/en/accounts/articles/c-form.md index 3c6e09113f..78d15acd02 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/c-form.md +++ b/erpnext/docs/user/manual/en/accounts/articles/c-form.md @@ -1,3 +1,5 @@ +# C Form + #C-Form C-Form functionality is only applicable for Indian customers. @@ -14,7 +16,7 @@ Following are step to manage C-Form related sales in ERPNext. While creating Sales invoice for the customer, set C-Form applicability in Sales Invoice. In More Info section of Sales Invoice, set field called **Is C-Form Applicable** as **Yes**. Bydefault, this field will have No for a value. -![C-form]({{docs_base_url}}/assets/img/articles/Selection_0028c9f9a.png) +![C-form](/docs/assets/img/articles/Selection_0028c9f9a.png) Updating this field as Yes will allow you to pull this Sales Invoice in the C-Form Tool, and update C-Form No. as received from the Customer. @@ -26,22 +28,22 @@ Go to `Accounts > Setup > C-Form > New` Enter details like C-Form No, Received Date, State and Amount etc. Select Customer and pull related Sales Invoices under provided table. -![New C-Form]({{docs_base_url}}/assets/img/articles/Selection_020f01c1e.png) +![New C-Form](/docs/assets/img/articles/Selection_020f01c1e.png) ####Save & Submit C-Form After entering details, save and submit C-Form record. On save system will generate C-Form record and on submission update that C-Form No. in the Sales Invoice. -![C-Form]({{docs_base_url}}/assets/img/articles/Selection_02178f9d6.png) +![C-Form](/docs/assets/img/articles/Selection_02178f9d6.png) C-Form serial no will be updated in related invoice under the field 'C-Form No'. -![C-Form No]({{docs_base_url}}/assets/img/articles/Selection_022b7c6d5.png) +![C-Form No](/docs/assets/img/articles/Selection_022b7c6d5.png) ####Tracking Pending Invoice for C-Form To track invoices for which C-Form has not yet been received from Customer, you can create custom report on Sales Invoice. In this report, you can filter invoices which doesn't have C-Form updated in them yet, and followup with the customer accordingly. -![C-Form Report]({{docs_base_url}}/assets/img/articles/Selection_026.png) +![C-Form Report](/docs/assets/img/articles/Selection_026.png) diff --git a/erpnext/docs/user/manual/en/accounts/articles/changing-parent-account.md b/erpnext/docs/user/manual/en/accounts/articles/changing-parent-account.md index e4a33e040f..1b6c0fba19 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/changing-parent-account.md +++ b/erpnext/docs/user/manual/en/accounts/articles/changing-parent-account.md @@ -1,3 +1,5 @@ +# Changing Parent Account + #Changing Parent Account Chart of Account has hierarchical structure. Each account has a parent it is listed under. @@ -14,22 +16,22 @@ Click on Account for which Parent Account is to be changed. ####2. Edit Account -Project Default Cost Center +Project Default Cost Center ####3. Change Parent Account Search and select preferred Parent Account and save. -Project Default Cost Center +Project Default Cost Center Refresh system from Help menu to experience the change. -Project Default Cost Center +Project Default Cost Center
Note: Parent cannot be customized for the Root Accounts, like Asset, Liability, Income, Expense, Equity.
#### Quick Help -Project Default Cost Center +Project Default Cost Center \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/articles/difference-entry-button.md b/erpnext/docs/user/manual/en/accounts/articles/difference-entry-button.md index acac407fa3..06a4479f53 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/difference-entry-button.md +++ b/erpnext/docs/user/manual/en/accounts/articles/difference-entry-button.md @@ -1,14 +1,16 @@ +# Difference Entry Button + #Difference Entry As per accounting standards, debit in a accounting entry must be equal to credit. If not, system does allow submission of accounting transaction, thereby stops ledger posting. In ERPNext, on saving accounting entry, system validates if debit and credit is tallying. -Debit Credit Not Equal +Debit Credit Not Equal To have entry balanced, you should one more row, select another account, and update different amount in it. Or you can add difference amount in one of the Account's row itself. On clicking 'Make Difference Entry' button, new Row will be added under Journal Entry Accounts table, with difference amount. You can edit that row to select appropriate Account. -Debit Credit Not Equal +Debit Credit Not Equal On selecting account under new row, debit and credit an entry will be tallying, and you should be able to submit Journal Entri correctly. diff --git a/erpnext/docs/user/manual/en/accounts/articles/fiscal-year-error.md b/erpnext/docs/user/manual/en/accounts/articles/fiscal-year-error.md index 003ad31437..4a1b54b484 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/fiscal-year-error.md +++ b/erpnext/docs/user/manual/en/accounts/articles/fiscal-year-error.md @@ -12,19 +12,19 @@ Only User with System Manager's Role Assigned has permission to create new Fisca `Accounts > Setup > Fiscal Year` -Click [here]({{docs_base_url}}/user/manual/en/accounts/setup/fiscal-year.html) to learn more about Fiscal Year. +Click [here](/docs/user/manual/en/accounts/setup/fiscal-year.html) to learn more about Fiscal Year. #### Set Fiscal Year as Default After Fiscal Year is saved, you will find option to set that Fiscal year as Default. -Debit Credit Not Equal +Debit Credit Not Equal Default Fiscal Year will be updated in the Global Default setting as well. You can manually update Default Fiscal Year from: `Setup > Settings > Global Default` -Debit Credit Not Equal +Debit Credit Not Equal Save Global Default, and Reload your ERPNext account. Then, default Fiscal Year will be auto-updated in your transactions. diff --git a/erpnext/docs/user/manual/en/accounts/articles/freeze-accounting-entries.md b/erpnext/docs/user/manual/en/accounts/articles/freeze-accounting-entries.md index 9d5f6143d0..677bb81076 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/freeze-accounting-entries.md +++ b/erpnext/docs/user/manual/en/accounts/articles/freeze-accounting-entries.md @@ -1,3 +1,5 @@ +# Freeze Accounting Entries + #Freeze Accounting Entries To freeze accounting entries upto a certain date, follow below given steps. @@ -10,12 +12,12 @@ To freeze accounting entries upto a certain date, follow below given steps. Set date in the **Accounts Frozen Upto** field. -Accounts Frozen Date +Accounts Frozen Date Now, the system will not allow to make any accounting entries before set date. If at all someone tries creating entries, system will show error message as below. -Frozen Date Error +Frozen Date Error You can still allow user with certain role to create/edit entries within accounts frozen date. You can set that Role in the Account Settings itself. -Frozen Date Error +Frozen Date Error diff --git a/erpnext/docs/user/manual/en/accounts/articles/how-to-freeze-accounting-ledger.md b/erpnext/docs/user/manual/en/accounts/articles/how-to-freeze-accounting-ledger.md index 80aed6d40e..9ddee07189 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/how-to-freeze-accounting-ledger.md +++ b/erpnext/docs/user/manual/en/accounts/articles/how-to-freeze-accounting-ledger.md @@ -1,3 +1,5 @@ +# How To Freeze Accounting Ledger + #How To Freeze Accounting Ledger? If you want to discontinue using specific Account, you can freeze it. @@ -12,7 +14,7 @@ To edit an Account, go to Chart of Accounts: `Explore > Accounts > Chart of Accounts` -Freeze Account +Freeze Account Click on Account in which Frozen Date is to be updated. @@ -20,7 +22,7 @@ Click on Account in which Frozen Date is to be updated. In the Account form, you will find a field called **Frozen**. Set value in this field as 'Yes' -Freeze Account +Freeze Account ####Step 3: Save diff --git a/erpnext/docs/user/manual/en/accounts/articles/index.md b/erpnext/docs/user/manual/en/accounts/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/index.md +++ b/erpnext/docs/user/manual/en/accounts/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/articles/manage-foreign-exchange-difference.md b/erpnext/docs/user/manual/en/accounts/articles/manage-foreign-exchange-difference.md index a9a9fefb1f..643636b4d4 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/manage-foreign-exchange-difference.md +++ b/erpnext/docs/user/manual/en/accounts/articles/manage-foreign-exchange-difference.md @@ -6,7 +6,7 @@ In ERPNext, you can create transactions in the foriegn currency as well. When cr To mange currency difference, create Account **Foreign Exchange Gain/Loss**. This account is generally created on the Expense side of P&L statement. However, you can place it under another group as per your accounting requirement. -Accounts Frozen Date +Accounts Frozen Date #### Book Payment Entry @@ -16,7 +16,7 @@ In the below scenario, Sales Invoice was made EUR, at the exchange rate of 1.090 One receipt of payment, exchange rate changed. As per the new exchange rate, payment received in the base currency was $1080. This means gain of $80 due to change in exchange rate. Following is how Foreign Exchange Gain will be booked in this scenerio. -Accounts Frozen Date +Accounts Frozen Date In case you incur loss due to change foriegn exchnage rate, then different amount about be updated in the debit of Foreign Exchange Gain/Loss account. Also you can add another row to update another expenses like bank charges, remittance charges etc. diff --git a/erpnext/docs/user/manual/en/accounts/articles/managing-transactions-in-multiple-currency.md b/erpnext/docs/user/manual/en/accounts/articles/managing-transactions-in-multiple-currency.md index d89c199358..46b9e4ec93 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/managing-transactions-in-multiple-currency.md +++ b/erpnext/docs/user/manual/en/accounts/articles/managing-transactions-in-multiple-currency.md @@ -1,3 +1,5 @@ +# Managing Transactions In Multiple Currency + #Managing Transactions In Multiple Currency In ERPNext, transactions can be created in the base currency as well as in parties (customer or supplier) currency. If transaction is created in the parties currency, their currency symbol is updated in the print format as well. @@ -16,7 +18,7 @@ Select Customer from the Customer master. If default Currency is updated in the Currency Exchange between base currency and customer currency will auto-fetch. -Accounts Frozen Date +Accounts Frozen Date #### Step 4: Update Details @@ -26,7 +28,7 @@ Update other details like Item, Taxes, Terms. In the Taxes and other Charges tab Save Sales Invoice and then check Print Format. For all the Currency field (rate, amount, totals) Customer's Currency symbol will be updated as well. -Accounts Frozen Date +Accounts Frozen Date #### Currency Exchange Masters diff --git a/erpnext/docs/user/manual/en/accounts/articles/post-dated-cheque-entry.md b/erpnext/docs/user/manual/en/accounts/articles/post-dated-cheque-entry.md index 0b61000686..a2436f3274 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/post-dated-cheque-entry.md +++ b/erpnext/docs/user/manual/en/accounts/articles/post-dated-cheque-entry.md @@ -1,3 +1,5 @@ +# Post Dated Cheque Entry + #Post Dated Cheque Entry Post Dated Cheque is a cheque dated on future date. Party generally give post dated cheque, as advance payment. This cheque would be cleared only when cheque date arrives. @@ -14,7 +16,7 @@ To open new journal voucher go to Assuming your Cheque Date is 31st December, 2016 (or any future date). As a result, this posting in your bank ledger will appear on Posting Date updated. -JE Posting Date +JE Posting Date Note: Payment Entry Reference Date should equal to or less than Posting Date. @@ -24,9 +26,9 @@ After entering required details, Save and Submit the Payment Entry. ####Adjusting Post Dated Cheque Entry -You can adjust Post Dated Payment Entry against an invoice via [Payment Reconciliation Tool]({{docs_base_url}}/user/manual/en/accounts/tools/payment-reconciliation.html). +You can adjust Post Dated Payment Entry against an invoice via [Payment Reconciliation Tool](/docs/user/manual/en/accounts/tools/payment-reconciliation.html). -When cheque is cleared, i.e. on actual date on the cheque, you can update its Clearance Date via [Bank Reconciliation Tool]({{docs_base_url}}/user/manual/en/accounts/tools/bank-reconciliation.html). +When cheque is cleared, i.e. on actual date on the cheque, you can update its Clearance Date via [Bank Reconciliation Tool](/docs/user/manual/en/accounts/tools/bank-reconciliation.html). In the Chart of Accounts, you might find value of this Payment Entry already reflecting against bank Account. You should check **Bank Reconciliation Statement**, a report in the account module to know difference of bank balance as per system, and actual balance in the bank's statement. \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/articles/tracking-project-profitability-using-cost-center.md b/erpnext/docs/user/manual/en/accounts/articles/tracking-project-profitability-using-cost-center.md index b8310adf3e..921a7fa452 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/tracking-project-profitability-using-cost-center.md +++ b/erpnext/docs/user/manual/en/accounts/articles/tracking-project-profitability-using-cost-center.md @@ -1,3 +1,5 @@ +# Tracking Project Profitability Using Cost Center + #Tracking Project Profibitability using Cost Center To track expenses and profibility for a project, you can use Cost Centers. You should create separate Cost Center for each Project. This will allow you to. @@ -15,7 +17,7 @@ To create new Project, go to: `Projects > Project > New` -Project Default Cost Center +Project Default Cost Center #### 1.2 Create Cost Center @@ -25,13 +27,13 @@ To create new Cost Center, go to: `Accounts > Setup > Cost Center` -[Click here to learn how to manage Cost Centers.]({{docs_base_url}}/user/manual/en/accounts/setup/cost-center.html) +[Click here to learn how to manage Cost Centers.](/docs/user/manual/en/accounts/setup/cost-center.html) #### 1.3 Update Cost Center in the Project Update Cost Center in the Project master. -Project Default Cost Center +Project Default Cost Center In the sales and purchase transactions, if Project is selected, then Cost Center will fetched from the Project master. @@ -43,7 +45,7 @@ Let's check how this setting will affect your sales and purchase entries. In the sales transactions (which are Sales Order, Delivery Note and Sales Invoice), Project will be selected in the More Info section. On selection of a Project, respective Cost Center will be updated for all the items in that transaction. Cost Center will be updated on in the transactions which has Cost Center field. -Project Default Cost Center +Project Default Cost Center #### 2.2 Project in the Purchase Transactions @@ -51,7 +53,7 @@ In the purchase transactions, Project is define for each line item. This is beca As per perpetual inventory valuation system, expense for the purchased item will be booked when raw-materials are consumed. On consumption of goods, if you are creating Material Issue (stock) entry, then Expense Cost (says Cost of Goods Sold) and Project's Cost Center should be updated in that entry. -Project Default Cost Center +Project Default Cost Center ### 3. Accounting Report for a Project @@ -61,11 +63,11 @@ Since Project's Cost Center is updated in both sales and purchase entries, you c **Monthly Project Analysis** -Project Default Cost Center +Project Default Cost Center **Overall Profitability** -Project Default Cost Center +Project Default Cost Center #### 3.2 Projectwise Budgeting @@ -75,6 +77,6 @@ To check Budget Variance report, go to: `Accounts > Budget and Cost Center > Budget Variance Report` -[Click here to learn how to do budgeting from Cost Center]({{docs_base_url}}/user/manual/en/accounts/budgeting.html). +[Click here to learn how to do budgeting from Cost Center](/docs/user/manual/en/accounts/budgeting.html). \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/articles/update-stock-option-in-sales-invoice.md b/erpnext/docs/user/manual/en/accounts/articles/update-stock-option-in-sales-invoice.md index 4c6c659cd1..6fb7915090 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/update-stock-option-in-sales-invoice.md +++ b/erpnext/docs/user/manual/en/accounts/articles/update-stock-option-in-sales-invoice.md @@ -1,8 +1,10 @@ +# Update Stock Option In Sales Invoice + #Delivery from Sales Invoice If you have items delivery and invoicing happening at the same time, you can create delivery from with Sales Invoice itself. Sales Invoice has field called **Update Stock**, just before Item table. If this field is checked, on submission of Sales Invoice, stock of Item will be deducted from selected Warehouse. -Update Stock +Update Stock On checking Update Stock, Sales Invoice Item will show relevant fields like Warehouse, Serial No., Batch No., Item valuation etc. diff --git a/erpnext/docs/user/manual/en/accounts/articles/what-is-the-differences-of-total-and-valuation-in-tax-and-charges.md b/erpnext/docs/user/manual/en/accounts/articles/what-is-the-differences-of-total-and-valuation-in-tax-and-charges.md index a23b6e7553..0273f5c7dd 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/what-is-the-differences-of-total-and-valuation-in-tax-and-charges.md +++ b/erpnext/docs/user/manual/en/accounts/articles/what-is-the-differences-of-total-and-valuation-in-tax-and-charges.md @@ -1,3 +1,5 @@ +# What Is The Differences Of Total And Valuation In Tax And Charges + #Purchase Tax or Charges Categories Consider Tax or Charge field in Purchase Taxes and Charges master has three values. @@ -6,7 +8,7 @@ Consider Tax or Charge field in Purchase Taxes and Charges master has three valu - Valuation - Total and Valuation -Purchase Tax and Charges Categories +Purchase Tax and Charges Categories Let's consider an example to understand an effect of each charge type. We purchase ten units of item, at the rate of 800. total purchase amount is 800. Purchased item has 4% VAT applied on it, and INR 100 was incurred in transportation. @@ -24,7 +26,7 @@ Tax or charge categorized as **Valuation** will be added in the value of purchas Transportation charge of INR 100 should be categorized as valuation. With this, the value of purchased item will be increased from 800 to 900. Also, this charge will be not be added to the total of purchase transaction, because it your expense, and should not be reflected to the supplier. -Check [here]({{docs_base_url}}/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.html) to learn general posting done for expense categorized as Valuation. +Check [here](/docs/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.html) to learn general posting done for expense categorized as Valuation. ####Total and Valuation: diff --git a/erpnext/docs/user/manual/en/accounts/articles/withdrawing-salary-from-owners-equity-account.md b/erpnext/docs/user/manual/en/accounts/articles/withdrawing-salary-from-owners-equity-account.md index 1e7a993586..ab84396988 100644 --- a/erpnext/docs/user/manual/en/accounts/articles/withdrawing-salary-from-owners-equity-account.md +++ b/erpnext/docs/user/manual/en/accounts/articles/withdrawing-salary-from-owners-equity-account.md @@ -1,3 +1,5 @@ +# Withdrawing Salary From Owners Equity Account + #Withdrawing Salary from Owner's Equity Account ### Question diff --git a/erpnext/docs/user/manual/en/accounts/bank-guarantee.md b/erpnext/docs/user/manual/en/accounts/bank-guarantee.md index db60300e86..c0c6d7ad3d 100644 --- a/erpnext/docs/user/manual/en/accounts/bank-guarantee.md +++ b/erpnext/docs/user/manual/en/accounts/bank-guarantee.md @@ -1,9 +1,11 @@ +# Bank Guarantee + A Bank Guarantee is a guarantee from a lending institution such as a bank ensuring the liabilities of a debtor will be met. In other words, if the debtor fails to settle a debt, the bank covers it. A Bank Guarantee enables the customer, or debtor, to acquire goods, buy equipment or draw down loans, and thereby expand business activity. A client may ask you to provide a Bank Guarantee from a third party such as a bank. This guarantee is for a specified amount, which is usually a percentage of the total value of the contract. The Bank Guarantee is valid for a specified duration after which it expires and must be returned to you by the client. This document allows you to track Bank Guarantees given to clients. You can set Email Alerts as the Bank Guarantee expiry date approaches to remind yourself to get the Bank Guarantee back from your client. -Bank Guarantee +Bank Guarantee {next} diff --git a/erpnext/docs/user/manual/en/accounts/budgeting.md b/erpnext/docs/user/manual/en/accounts/budgeting.md index fad128c390..3e7db196e9 100644 --- a/erpnext/docs/user/manual/en/accounts/budgeting.md +++ b/erpnext/docs/user/manual/en/accounts/budgeting.md @@ -1,3 +1,5 @@ +# Budgeting + In ERPNext, you can set and manage Budgets against a specific Account. This is useful when, for example, you are doing online sales. You have a budget for search ads, and you want ERPNext to stop or warn you from over spending, based on that budget. Budgets are also great for planning purposes. When you are making plans for the next financial year, you would typically target a revenue based on which you would set your expenses. Setting a budget will ensure that your expenses do not get out of hand, at any point, as per your plans. @@ -10,7 +12,7 @@ To create new Cost Center, go to: > Accounts > Budget and Cost Center > Chart of Cost Center > Add New Cost Center -Budget +Budget ###Budgeting @@ -28,20 +30,20 @@ In the Budget form, select a Cost Center. Budgets can be defined against any Cos In the Budgets table, select Income / Expense account for which Budget is to be defined. -Budget +Budget ####Step 4: Monthly Distribution If you have seasonal business, you can also define a Monthly Distribution record, to distribute the budget between months. If you don't set the monthly distribution, ERPNext will calculate the budget on yearly basis or in equal proportion for every month. -Monthly Distribution +Monthly Distribution ####Step 5: Alert on Budget While setting budget, you can also define the actions when expenses will exceed the allocated budget for a period. You can set separate action for monthly and annual budgets. There are 3 types of actions: Stop, Warn and Ignore. If Stop, system will not allow to book expenses more than allocated budget. In Case of Warn, it will just warn the user that expenses has been exceeded from the allocated budget. And Ignore will do nothing. -Monthly Distribution +Monthly Distribution ####Budget Variance Report @@ -51,6 +53,6 @@ To check Budget Variance report, go to: Accounts > Budget and Cost Center > Budget Variance Report -Budget Variance Report +Budget Variance Report {next} diff --git a/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md b/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md index ae6847e665..f2208b4736 100644 --- a/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md +++ b/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md @@ -1,3 +1,5 @@ +# Chart Of Accounts + The Chart of Accounts forms the blueprint of your organization. The overall structure of your Chart of Accounts is based on a system of double entry accounting that has become a standard all over the world to quantify how a @@ -25,13 +27,13 @@ such as Balance Sheet, Profit and Loss statement and Cash flow statement. An Example of various financial statement are given below: #### Cash Flow Report -Cash Flow Report +Cash Flow Report #### Profit and Loss Report -Profit and Loss Report +Profit and Loss Report #### Balance Sheet Report -Balance Sheet Report +Balance Sheet Report To edit your Chart of Accounts in ERPNext go to: @@ -46,7 +48,7 @@ based on statutory (tax, compliance to government regulations) requirements. Let us understand the main groups of the Chart of Accounts. -Chart of Accounts +Chart of Accounts ### Balance Sheet Accounts @@ -84,7 +86,7 @@ beginning and end of your Fiscal Year, they become zero. In ERPNext it is easy to create a Profit and Loss analysis chart. An example of a Profit and Loss analysis chart is given below: -Financial Analytics Profit and Loss Statement +Financial Analytics Profit and Loss Statement (On the first day of the year you have not made any profit or loss, but you still have assets, hence balance sheet accounts never become zero at the @@ -104,7 +106,7 @@ Supplier). > Note: An Account “Ledger” is also sometimes called as Account “Head”. -Chart of Accounts +Chart of Accounts ### Other Account Types @@ -119,7 +121,7 @@ To create new Accounts, explore your Chart of Accounts and click on an Account group under which you want to create the new Account. On the right side, you will see an option to “Open” or “Add Child” a new Account. -Chart of Accounts +Chart of Accounts Option to create will only appear if you click on a Group (folder) type Account. diff --git a/erpnext/docs/user/manual/en/accounts/credit-limit.md b/erpnext/docs/user/manual/en/accounts/credit-limit.md index 299e67057d..8f92f90951 100644 --- a/erpnext/docs/user/manual/en/accounts/credit-limit.md +++ b/erpnext/docs/user/manual/en/accounts/credit-limit.md @@ -1,3 +1,5 @@ +# Credit Limit + A credit limit is the maximum amount of credit that a financial institution or @@ -12,7 +14,7 @@ To set credit limit go to Customer - Master #### Figure 1: Credit Limit -Credit Limit +Credit Limit Go to the 'More Info section' and enter the amount in the field Credit Limit. @@ -27,7 +29,7 @@ accept orders or raise credit limits of customers. #### Figure 2: Credit Controller -Credit Limit +Credit Limit Save the changes. diff --git a/erpnext/docs/user/manual/en/accounts/index.md b/erpnext/docs/user/manual/en/accounts/index.md index 84c901d660..d9e94c0d84 100644 --- a/erpnext/docs/user/manual/en/accounts/index.md +++ b/erpnext/docs/user/manual/en/accounts/index.md @@ -1,3 +1,5 @@ +# Accounts + At the end of sales and purchase cycle comes billing and payments. You may have an accountant in your team, or you may be doing accounting yourself, or you may have outsourced your accounting. In all the cases financial accounting forms the core of any business management system like an ERP. diff --git a/erpnext/docs/user/manual/en/accounts/item-wise-taxation.md b/erpnext/docs/user/manual/en/accounts/item-wise-taxation.md index 1750f41ea0..a2aefc303a 100644 --- a/erpnext/docs/user/manual/en/accounts/item-wise-taxation.md +++ b/erpnext/docs/user/manual/en/accounts/item-wise-taxation.md @@ -1,3 +1,5 @@ +# Item Wise Taxation + In the sales and purchase transactions, you can apply taxes and other charges on the items. For the ease of applying taxes, you can fetch values from the [Sales Taxes and Charges master](/contents//setting-up/setting-up-taxes). Taxes and charges are applied equally on all the items. For example, if tax GST 16% is added in the tax table, then it will be applied on all the items. However, if you need to have different tax rate applied on some of the items, following is how you should setup Items and Sales Taxes and Other Charges master in your ERPNext account. Let's assume that we are creating a Sales Order. We have Sales Taxes and Charges master for GST 16%. Out of all the Sales Items, on one item, only 12% GST will be applied, while one more item is exempted from the tax. @@ -10,17 +12,17 @@ Items on which differential tax rate is applied, you should mention tax rate for Here is the example of Item on which 12% GST is applied only. -Opening Account +Opening Account For the item which is exempted from GST totally, mention 0% as tax rate in the Item master. -Opening Account +Opening Account ####Step 2: Setup Taxes and Other Charges In Sales Taxes and Other Charges master, select GST 16% account and mention Tax Rate as 16. This tax rate will be applied on all the Items selected in the Sales Order, unless specific Tax Rate is defined in the Item master. -Opening Account +Opening Account
If you want to have tax rate always applied from the Item master, then you should update Rate for the tax account as zero in the Taxes and Charges master.
@@ -28,7 +30,7 @@ In Sales Taxes and Other Charges master, select GST 16% account and mention Tax In the Sales Order, we have selected many Items. For the items mentioned in blue, tax rate is applied based on tax rate mentioned in the taxes table. For the items highlited in red, tax rate has fetched for them from the respective item master. -Opening Account +Opening Account Please note that item's tax rate will be pulled from the item master only if you have update same tax account (GST 16% in this case) in both Item master and tax master. diff --git a/erpnext/docs/user/manual/en/accounts/journal-entry.md b/erpnext/docs/user/manual/en/accounts/journal-entry.md index 061bd62289..ebfc9f59a1 100644 --- a/erpnext/docs/user/manual/en/accounts/journal-entry.md +++ b/erpnext/docs/user/manual/en/accounts/journal-entry.md @@ -1,3 +1,5 @@ +# Journal Entry + All types of accounting entries other than **Sales Invoice** and **Purchase Invoice** are made using the **Journal Entry**. A **Journal Entry** is a standard accounting transaction that affects @@ -7,7 +9,7 @@ To create a Journal Entry go to: > Accounts > Documents > Journal Entry > New -Journal Entry +Journal Entry In a Journal Entry, you must select. diff --git a/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md b/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md index e82ec92772..45bd2278e5 100644 --- a/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md +++ b/erpnext/docs/user/manual/en/accounts/managing-fixed-assets.md @@ -1,10 +1,12 @@ +# Managing Fixed Assets + In ERPNext, you can maintain fixed asset records like Computers, Furnitures, Cars, etc. and manage depreciations, sale or disposal of those assets. ## Asset Category Based on the type of assets, create Asset Category. For example, all your desktops and laptops can be part of an Asset Category named "Computers". Here you can set default depreciation method, periodicity and depreciation related accounts, which will be applicable to all the assets under the category. -Asset Category +Asset Category > **Note:** You can also set default depreciation related Accounts and Cost Centers in Company master. @@ -12,13 +14,13 @@ Based on the type of assets, create Asset Category. For example, all your deskto Asset master is the heart of fixed asset management feature. All the transactions related to Asset like purchasing, sales, depreciation, scrapping will be managed from the Asset master. -Asset +Asset Explanation of the fields: 1. Item Code: An Item for the Asset must be a non-stock item, with "Is Asset" field checked. - Asset Item + Asset Item 2. Asset Category: The category of assets it belongs to. 3. Is Existing Asset: Check if the asset is being carried forward from the previous Fiscal Year. The existing assets which are partially / fully depreciated can also be created/maintained for the future reference. @@ -40,24 +42,24 @@ Explanation of the fields: The system automatically creates a schedule for depreciation based on depreciation method and other related inputs in the Asset record. -Asset +Asset On the scheduled date, system creates depreciation entry by creating a Journal Entry and the same Journal Entry is updated in the depreciation table for reference. Next Depreciation Date and Current Value are also updated on submission of depreciation entry. -Asset +Asset In the depreciation entry, the "Accumulated Depreciation Account" is credited and "Depreciation Expense Account" is debited. The related accounts can be set in the Asset Category or Company. For better visibility, net value of the asset on different depreciation dates are shown in a line graph. -Asset +Asset ## Purchase an Asset For purchasing a new asset, create and submit the asset record with all the depreciation settings. Then create a Purchase Invoice via "Make Purchase Invoice" button. On clicking the button, system will load a new Purchase Invoice form with pre-loaded items table. It will also set proper fixed asset account (defined in the Asset Category) in the Expense Account field. You need to select Supplier and other necessary details and submit the Purchase Invoice. -Asset +Asset On submission of the invoice, the "Fixed Asset Account" will be debited and payable account will be credited. It also updates purchase date, supplier and Purchase Invoice no. in the Asset master. @@ -71,23 +73,23 @@ To sell an asset, open the asset record and create a Sales Invoice by clicking o - "Accumulated Depreciation Account" will be debited by the total depreciated amount till now. - "Gain/Loss Account on Asset Disposal" will be credited/debited based on gain/loss amount. The Gain/Loss account can be set in Company record. -Asset +Asset ## Scrap an Asset You can scrap an asset anytime using the "Scrap Asset" button in the Asset record. The "Gain/Loss Account on Asset Disposal" mentioned in the Company is debited by the Current Value (After Depreciation) of the asset. After scrapping, you can also restore the asset using "Restore Asset" button. -Asset +Asset ## Asset Movement The movement of the assets (from one warehouse to another) is also tracked via Asset Movement form. -Asset +Asset There is also a dedicated button "Transfer Asset" inside the Asset form to track the Asset Movement. -Asset +Asset {next} diff --git a/erpnext/docs/user/manual/en/accounts/multi-currency-accounting.md b/erpnext/docs/user/manual/en/accounts/multi-currency-accounting.md index 4e444905e1..598aa0e7f6 100644 --- a/erpnext/docs/user/manual/en/accounts/multi-currency-accounting.md +++ b/erpnext/docs/user/manual/en/accounts/multi-currency-accounting.md @@ -1,18 +1,20 @@ +# Multi Currency Accounting + In ERPNext, you can make accounting entries in multiple currency. For example, if you have a bank account in foreign currency, you can make transactions in that currency and system will show bank balance in that specific currency only. ## Setup To get started with multi-currency accounting, you need to assign accounting currency in Account record. You can define Currency from Chart of Accounts while creating Account. -Set Currency from Chart of Accounts +Set Currency from Chart of Accounts You can also assign / modify the currency by opening specific Account record for existing Accounts. -Modify Account Currency +Modify Account Currency For Customer / Supplier (Party), you can also define it's billing currency in the Party record. If the Party's accounting currency is different from Company Currency, you should mention Default Receivable / Payable Account in that currency. -Customer Accounting Currency +Customer Accounting Currency Once you defined Currency in the Account and selected relevant accounts in the Party record , you are ready to make transactions against them. If Party account currency is different from Company Currency, system will restrict to make transaction for that party with that currency only. If account currency is same as Company Currency, you can make transactions for that Party in any currency. But accounting entries (GL Entries) will always be in Party Account Currency. @@ -31,7 +33,7 @@ Now, in POS, Paid Amount will be entered in transaction currency, instead of ear Outstanding Amount and Advance Amount will always be calculated and shown in Customer's Account Currency. -Sales Invoice Outstanding +Sales Invoice Outstanding ### Purchase Invoice @@ -41,12 +43,12 @@ Similarly, in Purchase Invoice, accounting entries will be made based on Supplie In Journal Entry, you can make transactions in different currencies. There is a checkbox "Multi Currency", to enable multi-currency entries. If "Multi Currency" option selected, you will be able to select accounts with different currencies. -Journal Entry Exchange Rate +Journal Entry Exchange Rate In Accounts table, on selection of foreign currency account, system will show Currency section and fetch Account Currency and Exchange Rate automatically. You can change / modify the Exchange Rate later manually. Debit / Credit amount should be entered in Account Currency, system will calculate and show the Debit / Credit amount in Company Currency automatically. -Journal Entry in multi currency +Journal Entry in multi currency #### Example 1: Payment Entry Against Customer With Alternate Currency @@ -54,7 +56,7 @@ Suppose, default currency of the company is INR and customer's accounting curren Exchange Rate in the payment entry should always be same as invoice (60), even if exchange rate on the payment date is 62. The bank account will be credited by the amount considering exchange rate as 62. Hence, Exchnage Gain / Loss will be booked based on exchange rate difference. -Payment Entry +Payment Entry #### Example 2: Inter-bank Transfer (USD -> INR) @@ -100,7 +102,7 @@ Lets say, Paypal account debited by following amounts over the week, which has n Suppose, Exchange Rate on the payment date is 62 and Bank Transfer Entry will be look like below: -Inter Bank Transfer +Inter Bank Transfer ## Reports @@ -109,12 +111,12 @@ Suppose, Exchange Rate on the payment date is 62 and Bank Transfer Entry will be In General Ledger, system shows debit / credit amount in both currency if filtered by an Account and Account Currency is different from Company Currency. -General Ledger Report +General Ledger Report ### Accounts Receivable / Payable In Accounts Receivable / Payable report, system shows all the amounts in Party / Account Currency. -Accounts Receivable Report +Accounts Receivable Report {next} diff --git a/erpnext/docs/user/manual/en/accounts/opening-accounts.md b/erpnext/docs/user/manual/en/accounts/opening-accounts.md index 11e4acb80a..1ad90904a8 100644 --- a/erpnext/docs/user/manual/en/accounts/opening-accounts.md +++ b/erpnext/docs/user/manual/en/accounts/opening-accounts.md @@ -1,3 +1,5 @@ +# Opening Accounts + #Updating Opening Balance in Accounts If you are a new company you can start using ERPNext accounting module by going to chart of accounts. However, if you are migrating from a legacy accounting system like Tally or a Fox Pro based software @@ -8,7 +10,7 @@ We recommend that you start using accounting in a new financial year, but you co * List of outstanding sales and purchase invoices (Payables and Receivables). -If you were using another accounting software before, firstly you should close financial statements in that software. The closing balance of the accounts should be updated as an opening balance in the ERPNext. Before starting to update opening balance, ensure that your [Chart of Accounts]({{docs_base_url}}/user/manual/en/accounts/chart-of-accounts.html) has all the Accounts required. +If you were using another accounting software before, firstly you should close financial statements in that software. The closing balance of the accounts should be updated as an opening balance in the ERPNext. Before starting to update opening balance, ensure that your [Chart of Accounts](/docs/user/manual/en/accounts/chart-of-accounts.html) has all the Accounts required. > Opening entry is only for Balance Sheet accounts and not for the Accounts in the Profit and Loss statement. @@ -28,7 +30,7 @@ To open new Journal Entry, go to: If Entry Type is selected as Opening Entry, all the Balance Sheet Accounts will be auto-fetched in the Journal Entry. -Opening Account +Opening Account ####Step 3: Posting Date @@ -38,13 +40,13 @@ Select Posting Date on which Accounts Opening Balance will be updated. For each Account, enter opening value in the Debit or Credit column. As per the double entry valuation system, Total Debit value in a entry must be equal to Total Credit value. -Opening Account +Opening Account ####Step 5: Is Opening Set field `Is Opening` as `Yes`. -Opening Account +Opening Account ####Step 6: Save and Submit @@ -56,13 +58,13 @@ If your Balance Sheet has many Accounts, then updating Account Opening balance f If you are updating account opening balance in few accounts at a time, you can use **Temporary Opening** account for balancing purpose. In the standard chart of accounts, a Temporary Opening Account is auto-created under Assets. -Opening Account +Opening Account In the Journal Entry, manually select an Account for which opening balance is to be updated. For each Account, enter opening balance value in the Debit or Credit column, based on it's Account Type (Asset or Liability). For example, if you want to update balance in bank accounts, create Journal Entry as following. -Opening Account +Opening Account Once all your invoices are entered, your **Temporary Opening** account will have a balance of zero! @@ -70,7 +72,7 @@ Once all your invoices are entered, your **Temporary Opening** account will have After completing the accounting entries, the trial balance report will look like the one given below: -Opening Account +Opening Account ###Stock Opening @@ -78,13 +80,13 @@ To track stock balance in the Chart of Account, an Account is created for each W `Chart of Accounts > Assets > Current Asset > StocK Assets > (Warehouse Account)` -Opening Account +Opening Account -To update stock opening balance, create [Stock Reconciliation entry]({{docs_base_url}}/user/manual/en/stock/opening-stock.html). Based on the valuation of items's update in the Warehouse, balance will be updated in the Warehouse account. +To update stock opening balance, create [Stock Reconciliation entry](/docs/user/manual/en/stock/opening-stock.html). Based on the valuation of items's update in the Warehouse, balance will be updated in the Warehouse account. ###Fixed Asset Opening -Opening balance for the fixed asset account should be updated via Journal Entry. Assets which are not fully depreciated should be added in the [Asset master]({{docs_base_url}}/user/manual/en/accounts/managing-fixed-assets.html). For adding Assets in your possession, ensure to check **Is Existing Asset** field. +Opening balance for the fixed asset account should be updated via Journal Entry. Assets which are not fully depreciated should be added in the [Asset master](/docs/user/manual/en/accounts/managing-fixed-assets.html). For adding Assets in your possession, ensure to check **Is Existing Asset** field. ### Outstanding Invoices diff --git a/erpnext/docs/user/manual/en/accounts/payment-entry.md b/erpnext/docs/user/manual/en/accounts/payment-entry.md index 62dd9b4769..ae82eb21f4 100644 --- a/erpnext/docs/user/manual/en/accounts/payment-entry.md +++ b/erpnext/docs/user/manual/en/accounts/payment-entry.md @@ -1,33 +1,36 @@ +# Payment Entry + Payment Entry can be made against following transactions. 1. Sales Invoice. 2. Purchase Invoice. 3. Sales Order (Advance Payment) 4. Purchase Order (Advance Payment) + 5. Expense Claim ####Step 1: Make Payment On submitting a document against which Payment Entry can be made, you will find Make Payment button. -Making Payment +Making Payment ####Step 2: Mode of Payment In the Payment Entry, select Mode of Payment (eg: Bank, Cash, Wire Transfer). In the Mode of Payment master, default Account can be set. This default payment Account will fetch into Payment Entry. -Making Paymentt +Making Paymentt ####Step 3: Payment Amount -Enter actual payment amount received from the Customer or paid to the Supplier. +Enter actual payment amount received from the Customer or paid to the Supplier or Employee. -Making Payment +Making Payment ####Step 4: Allocate Amount If creating Payment Entry for the Customer, Payment Amount will be allocated against Sales Invoice. -Making Payment +Making Payment On the same lines, when creating Payment Entry for a Supplier, Payment Amount will be allocated against Purchase Invoice. @@ -37,13 +40,13 @@ You Entry can be created directly from `Account > Payment Entry > New`. In the n When making payment entry, there could be some difference in the actual payment amount and the invoice outstanding. This difference could be due to rounding error, or change in the currency exchange rate. You can set an Account here where this difference amount will be booked. -Making Payment +Making Payment ####Step 6: Submit Save and Submit Payment Entry. On submission, outstanding will be updated in the Invoices. -Making Payment +Making Payment If payment entry was created against Sales Order or Purchase Order, field Advance Paid will be updated in them. when creating Payment invoice against those transactions, Payment Entry will auto-update in that Invoice, so that you can allocate invoice amount against advance payment entry. @@ -59,13 +62,13 @@ For outgoing payment: ###Multi Currency Payment Entry -ERPNext allows you maintain accounts and invoicing in the [multiple currency]({{docs_base_url}}/user/manual/en/accounts/multi-currency-accounting.html). If invoice is made in the party currency, Currency Exchange Rate between companies base currency and party currency is also entered in the invoice. When creating Payment Entry against that invoice, you will again have to mention the Currency Exchange Rate at the time of payment. +ERPNext allows you maintain accounts and invoicing in the [multiple currency](/docs/user/manual/en/accounts/multi-currency-accounting.html). If invoice is made in the party currency, Currency Exchange Rate between companies base currency and party currency is also entered in the invoice. When creating Payment Entry against that invoice, you will again have to mention the Currency Exchange Rate at the time of payment. -Making Payment +Making Payment Since Currency Exchange Rate is fluctuating all the time, it can lead to difference in the payment amount against invoice total. This difference amount can be booked in the Currency Exchange Gain/Loss Amount. -Making Payment +Making Payment Payments can also be made independent of invoices by creating a new Payment Entry. @@ -78,7 +81,7 @@ Following internal transfers can be managed from the Payment Entry. 3. Cash - Cash 4. Bank - Bank -Making Payment +Making Payment ###Difference between Payment Entry and Journal Entry? @@ -88,7 +91,7 @@ Following internal transfers can be managed from the Payment Entry. - Updating opening balance in an Accounts. - Fixed Asset Depreciation entry. - For adjusting Credit Note against Sales Invoice and Debit Note against Purchase Invoice, incase there is no payment happening at all. - + 4. Payment Entries are used if a cheque is printed. * * * ## Managing Outstanding Payments diff --git a/erpnext/docs/user/manual/en/accounts/payment-request.md b/erpnext/docs/user/manual/en/accounts/payment-request.md index 30f5b1bfe8..7ee397e3ad 100644 --- a/erpnext/docs/user/manual/en/accounts/payment-request.md +++ b/erpnext/docs/user/manual/en/accounts/payment-request.md @@ -1,10 +1,12 @@ +# Payment Request + Payment Request is sent via Email and will contain a link to a Payment Gateway if setup. You can create payment request via Sales Order or Sales Invoice. - Create Payment Request via Sales Order -Payment Request +Payment Request - Create payment Request via Sales Invoice -Payment Request +Payment Request --- @@ -13,16 +15,16 @@ considered to create journal entry. Note: Invoice/Order currency and Payment Gateway Account currency should be same. -Payment Request +Payment Request --- ##### Notify Customer You can notify customer from Payment Request with print format. If customer contact email is mentioned, it will automatically fetch email. If not so you can set Email Address on Payment Request. -Payment Request +Payment Request ##### Request Mail -Payment Request +Payment Request {next} diff --git a/erpnext/docs/user/manual/en/accounts/payments.md b/erpnext/docs/user/manual/en/accounts/payments.md index 74da05440f..e2d8adeba7 100644 --- a/erpnext/docs/user/manual/en/accounts/payments.md +++ b/erpnext/docs/user/manual/en/accounts/payments.md @@ -1,3 +1,5 @@ +# Payments + Payment can be made against following transactions. 1. Sales Invoice. @@ -16,13 +18,13 @@ In ERPNext, there is two options through which user can capture the payment On submitting a document against which Payment Entry can be made, you will find Make Payment button. -Making Payment +Making Payment ####Step 2: Payment Entry -Making Payment +Making Payment -For more details about payment entry [check here.]({{docs_base_url}}/user/manual/en/accounts/payment-entry) +For more details about payment entry [check here.](/docs/user/manual/en/accounts/payment-entry) ## Journal Entry @@ -32,19 +34,19 @@ To make paymant using journal entry, check below steps Goto Accounts Settings > checked Make Payment via Journal Entry -Making Payment +Making Payment ####Step 2: Make Payment On submitting a document against which Journal Entry can be made, you will find Make Payment button. -Making Payment +Making Payment ####Step 3: Journal Entry Save and submit the journal entry to record the payament against the invoice -Making Payment +Making Payment -For more details about journal entry [check here.]({{docs_base_url}}/user/manual/en/accounts/journal-entry) +For more details about journal entry [check here.](/docs/user/manual/en/accounts/journal-entry) {next} diff --git a/erpnext/docs/user/manual/en/accounts/point-of-sale-pos-invoice.md b/erpnext/docs/user/manual/en/accounts/point-of-sale-pos-invoice.md index 78d2226361..7458f0da78 100644 --- a/erpnext/docs/user/manual/en/accounts/point-of-sale-pos-invoice.md +++ b/erpnext/docs/user/manual/en/accounts/point-of-sale-pos-invoice.md @@ -15,7 +15,7 @@ POS Invoices created in the offline mode will be saved locally in the browser. I In ERPNext all Sales and Purchase transactions, like Sales Invoice, Quotation, Sales Order, Purchase Order etc. can be edited via the POS. There two steps to Setup POS: 1. Enable POS View via (Setup > Customize > Feature Setup) -2. Create a [POS Setting]({{docs_base_url}}/user/manual/en/setting-up/pos-setting.html) record +2. Create a [POS Profile](/docs/user/manual/en/setting-up/pos-setting.html) record #### Different sections of the POS @@ -29,7 +29,7 @@ In ERPNext all Sales and Purchase transactions, like Sales Invoice, Quotation, S In POS, user can select the existing customer during making an order or create the new customer. This features works in the offline mode also. User can also add the customer details like contact number, address details etc on the form. The customer which has been created from the POS will be synced when the internet connection is active. -POS Customer +POS Customer ### Adding an Item @@ -39,7 +39,7 @@ At the billing counter, the retailer needs to select Items which the consumer bu **Barcode / Serial No** \- A Barcode / Serial No is an optical machine-readable representation of data relating to the object to which it is attached. Enter Barcode / Serial No in the box as shown in the image below and pause for a second, the item will be automatically added to the cart. -POS Item +POS Item > Tip: To change the quantity of an Item, enter your desired quantity in the quantity box. These are mostly used if the same Item is purchased in bulk. @@ -51,7 +51,7 @@ in Search box. 1. Select row in the cart and clik on delete button in the numeric keypad -POS Item +POS Item 2. Set Qty as zero to remove Item from the POS invoice. There are two ways to remove an Item. @@ -69,7 +69,7 @@ ready to make the Payment. Payment process is divided into 3 steps - 2. Select your “Mode of Payment”. 3. Click on “Pay” button to Save the document. -POS Payment +POS Payment Submit the document to finalise the record. After the document is submitted, you can either print or email it directly to the customer. @@ -78,7 +78,7 @@ you can either print or email it directly to the customer. Outstanding amount can be write off from the POS, user has to enter the amount under write off field on the payment screen. -POS Payment +POS Payment System books the write off amount into the ledger which has selected on the POS Profile. @@ -86,12 +86,12 @@ System books the write off amount into the ledger which has selected on the POS POS calculate the extra amount paid by the customer, which user can return from the cash account. User has to set the account for the change amount on the POS profile. -POS Payment +POS Payment ### Offline Records All the records from the POS stores into the browser's local storegae and sync submitted records after every minute of the interval if system is connected to internet. User can view the offline records by clicking on Menu > View Offline Records -POS Payment +POS Payment #### Accounting entries (GL Entry) for a Point of Sale: @@ -112,7 +112,7 @@ To see entries after “Submit”, click on “View Ledger”. ### Email User can send email from the POS, after submission of an order, user has to click on menu > email -POS Payment +POS Payment After sync of an order, email sent to the customer with the print of the bill in the attachment {next} diff --git a/erpnext/docs/user/manual/en/accounts/pricing-rule.md b/erpnext/docs/user/manual/en/accounts/pricing-rule.md index bd3c51a834..c2a273ad94 100644 --- a/erpnext/docs/user/manual/en/accounts/pricing-rule.md +++ b/erpnext/docs/user/manual/en/accounts/pricing-rule.md @@ -1,3 +1,5 @@ +# Pricing Rule + #Pricing Rule Pricing Rule is a master where you can define rules based on which discount is applied to specific Customer or Supplier. @@ -25,7 +27,7 @@ In this section, conditions are set for the application of Pricing Rule. When tr ####1.1 Applicable On: -Applicable On +Applicable On If you want Pricing Rule to be applied on all the items, select based on Item Group. For value, select **All Item Group** (parent Item Group). @@ -33,31 +35,31 @@ If you want Pricing Rule to be applied on all the items, select based on Item Gr Applicability option will updated based on our selection for Selling or Buying or both. You can set applicability on one of the following master. -Applicable for +Applicable for ####1.3 Quantity: Specify minimum and maximum qty of an item when this Pricing Rule should be applicable. -Applicable Qty +Applicable Qty ###2. Application: Using Price List Rule, you can ultimately define price or %discount to be applied on an item. -Applicable +Applicable ####2.1 Price Price or Discount specified in the Pricing Rule will be applied only if above applicability rules are matched with values in the transaction. Price mentioned in Pricing Rule will be given priority over item's Price List rate. -Applicable Price +Applicable Price #### 2.2 Discount Percentage Discount Percentage can be applied for a specific Price List. To have it applied for all the Price List, %Discount field should be left blank. -Discount +Discount If %Discount is to be applied on all Price Lists, then leave Price List field blank. @@ -65,19 +67,19 @@ If %Discount is to be applied on all Price Lists, then leave Price List field bl Enter From and To date between which this Pricing Rule will be applicable. This will be useful if creating Pricing Rule for sales promotion exercise available for certain days. -Validity +Validity #### Priority If two or more Pricing Rules are found based on same conditions, Priority is applied. Priority is a number between 0 to 20 while default value is zero (blank). Higher number means it will take precedence if there are multiple Pricing Rules with same conditions. -Priority +Priority #### Disable Check to Disable Pricing Rule. -Disable +Disable ### Add Margin @@ -89,21 +91,21 @@ For example : User want to add 10% margin on the supplier price list at the tim Create price list for supllier and create item price against the price list. -Disable +Disable ####2. Make Pricing Rule Create pricing rule for the item against which supplier rate has created -Disable +Disable ####2. Make Invoice System apply the margin rate on the item price on selection of an item. -Disable +Disable -For more details about pricing rule [Click Here]({{docs_base_url}}/user/manual/en/selling/articles/adding-margin.html) +For more details about pricing rule [Click Here](/docs/user/manual/en/selling/articles/adding-margin.html) \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/purchase-invoice.md b/erpnext/docs/user/manual/en/accounts/purchase-invoice.md index 3ffd93041a..c6b2050e53 100644 --- a/erpnext/docs/user/manual/en/accounts/purchase-invoice.md +++ b/erpnext/docs/user/manual/en/accounts/purchase-invoice.md @@ -1,3 +1,5 @@ +# Purchase Invoice + Purchase Invoice is the exact opposite of your Sales Invoice. It is the bill 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 @@ -12,7 +14,7 @@ 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 +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 diff --git a/erpnext/docs/user/manual/en/accounts/recurring-orders-and-invoices.md b/erpnext/docs/user/manual/en/accounts/recurring-orders-and-invoices.md index 713fb60c9e..067b63371a 100644 --- a/erpnext/docs/user/manual/en/accounts/recurring-orders-and-invoices.md +++ b/erpnext/docs/user/manual/en/accounts/recurring-orders-and-invoices.md @@ -1,3 +1,5 @@ +# Recurring Orders And Invoices + #Recurring Orders and Invoices If you have a contract with a **Customer** where you bill the Customer on a monthly, quarterly, half-yearly or annual basis, you should use recurring feature in orders and invoices. @@ -10,7 +12,7 @@ Feature of setting document as recurring is available in Sales Order, Sales Invo Option to set document as recurring will be visible only after submission. Recurring is last section in document. Check **Is Recurring** to set document as recurring. -Recurring Invoice +Recurring Invoice **From Date and To Date:** This defines contract period with the customer. diff --git a/erpnext/docs/user/manual/en/accounts/sales-invoice.md b/erpnext/docs/user/manual/en/accounts/sales-invoice.md index aa7f3a692e..f4c4143504 100644 --- a/erpnext/docs/user/manual/en/accounts/sales-invoice.md +++ b/erpnext/docs/user/manual/en/accounts/sales-invoice.md @@ -1,3 +1,5 @@ +# Sales Invoice + A Sales Invoice is a bill that you send to your customers, against which the customer processes the payment. Sales Invoice is an accounting transaction. On submission of Sales Invoice, the system updates the receivable and books income against a Customer Account. You can create a Sales Invoice directly from @@ -6,7 +8,7 @@ You can create a Sales Invoice directly from or you can Make a new Sales Invoice after you submit the Delivery Note. -Sales Invoice +Sales Invoice #### Accounting Impact @@ -62,7 +64,7 @@ into the Sales Invoice and you can easily make payments. Also, if you check the **Update Stock** the stock will also update automatically, without the need of a Delivery Note. -POS Invoice +POS Invoice #### Billing Timesheet with Project @@ -71,7 +73,7 @@ they can fill out Timesheets which consists their billing rate. When you make a Sales Invoice, select the Project for which the billing is to be made, and the corresponding Timesheet entries for that Project will be fetched. -POS Invoice +POS Invoice * * * @@ -88,5 +90,5 @@ not ideal as your Customer may or may not decide to pay up. But since your Customer wants an “Invoice”, you could give the Customer a Quotation (in ERPNext) titled as “Pro Forma Invoice”. This way everyone is happy. -This is a fairly common practice. We follow this at Frappe too. +This is a fairly common practice. We follow this at Frappé too. {next} diff --git a/erpnext/docs/user/manual/en/accounts/setup/accounts-settings.md b/erpnext/docs/user/manual/en/accounts/setup/accounts-settings.md index 3b7a686c6f..3bada56ffd 100644 --- a/erpnext/docs/user/manual/en/accounts/setup/accounts-settings.md +++ b/erpnext/docs/user/manual/en/accounts/setup/accounts-settings.md @@ -1,5 +1,7 @@ +# Accounts Settings -Account Settings + +Account Settings * Accounts Frozen Upto: Freeze accounting transactions upto specified date, nobody can make / modify entry except specified role. 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 5ed3802873..0eabce7a29 100644 --- a/erpnext/docs/user/manual/en/accounts/setup/cost-center.md +++ b/erpnext/docs/user/manual/en/accounts/setup/cost-center.md @@ -1,3 +1,5 @@ +# Cost Center + Your Chart of Accounts is mainly designed to provide reports to the government and tax authorities. Most businesses have multiple activities like different product lines, market segments, areas of business, etc that share some common @@ -32,6 +34,6 @@ To setup your Chart of Cost Centers go to: > Accounts > Setup > Chart of Cost Centers -Cost Center +Cost Center {next} diff --git a/erpnext/docs/user/manual/en/accounts/setup/fiscal-year.md b/erpnext/docs/user/manual/en/accounts/setup/fiscal-year.md index 4a1195ade0..a211ee3528 100644 --- a/erpnext/docs/user/manual/en/accounts/setup/fiscal-year.md +++ b/erpnext/docs/user/manual/en/accounts/setup/fiscal-year.md @@ -1,3 +1,5 @@ +# Fiscal Year + A fiscal year is also known as a financial year or a budget year. It is used for calculating financial statements in businesses and other organisations. The fiscal year may or may not be the same as a calendar year. For tax @@ -23,6 +25,6 @@ To set the Fiscal Year as default, click on the 'Default' button. In case you have multiple companies sharing the same Fiscal Year, you can add it into the grid as shown below. -Fiscal Year +Fiscal Year {next} diff --git a/erpnext/docs/user/manual/en/accounts/setup/index.md b/erpnext/docs/user/manual/en/accounts/setup/index.md index 7b4504405b..c328cc01a8 100644 --- a/erpnext/docs/user/manual/en/accounts/setup/index.md +++ b/erpnext/docs/user/manual/en/accounts/setup/index.md @@ -1,3 +1,5 @@ +# Setup + ### Topics {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/setup/tax-rule.md b/erpnext/docs/user/manual/en/accounts/setup/tax-rule.md index bfcf6f0721..a7dee0842a 100644 --- a/erpnext/docs/user/manual/en/accounts/setup/tax-rule.md +++ b/erpnext/docs/user/manual/en/accounts/setup/tax-rule.md @@ -1,6 +1,8 @@ -You can define which [Tax Template]({{docs_base_url}}/user/manual/en/setting-up/setting-up-taxes.html) must be applied on a Sales / Purchase transaction using Tax Rule. +# Tax Rule -Tax Rule +You can define which [Tax Template](/docs/user/manual/en/setting-up/setting-up-taxes.html) must be applied on a Sales / Purchase transaction using Tax Rule. + +Tax Rule You can define Tax Rules for Sales or Purchase Taxes. While making a Transaction the system will select and apply tax template based on the tax rule defined. @@ -10,9 +12,9 @@ Let us consider a senario to understand Tax Rule Better. Suppose we define 2 Tax Rules as below. -Tax Rule +Tax Rule -Tax Rule +Tax Rule Here Tax Rule 1 has Billing Country as India and Tax Rule 2 has Billing Country as United Kingdom 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 87348eebbd..77d27ef99a 100644 --- a/erpnext/docs/user/manual/en/accounts/tools/bank-reconciliation.md +++ b/erpnext/docs/user/manual/en/accounts/tools/bank-reconciliation.md @@ -1,3 +1,5 @@ +# Bank Reconciliation + ### 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. @@ -6,7 +8,7 @@ The Bank Reconciliation Report provide the difference between the bank balance s ####Bank Reconciliation Statement -Bank Reconciliation statement +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. @@ -34,7 +36,7 @@ All the entries in the specified date range will be shown in a table below. __Step 4:__ Click on the JV from the table and update clearance date. -Bank Reconciliation +Bank Reconciliation __Step 5:__ Click on the button 'Update Clearance Date'. diff --git a/erpnext/docs/user/manual/en/accounts/tools/index.md b/erpnext/docs/user/manual/en/accounts/tools/index.md index 7b4504405b..c938dde5a4 100644 --- a/erpnext/docs/user/manual/en/accounts/tools/index.md +++ b/erpnext/docs/user/manual/en/accounts/tools/index.md @@ -1,3 +1,5 @@ +# Tools + ### Topics {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/accounts/tools/payment-reconciliation.md b/erpnext/docs/user/manual/en/accounts/tools/payment-reconciliation.md index bac6f655f1..329d789704 100644 --- a/erpnext/docs/user/manual/en/accounts/tools/payment-reconciliation.md +++ b/erpnext/docs/user/manual/en/accounts/tools/payment-reconciliation.md @@ -1,3 +1,5 @@ +# Payment Reconciliation + In complex scenarios, especially in the capital goods industry, sometimes there is no direct link between payments and invoices. You send invoices to your Customers and your Customer sends you block payments or payments based on some schedule that is not linked to your invoices. In such cases, you can use the Payment to Invoice Matching Tool. @@ -8,7 +10,7 @@ In this tool, you can select an account (your Customer’s account) and click on To cancel off some payments and invoices, select the Invoices and Journal Vouchers and click on “Reconcile”. -Payment Reconciliation +Payment Reconciliation __Step 1:__ Select the Account against whom the payments need to be reconciled. diff --git a/erpnext/docs/user/manual/en/accounts/tools/payment-tool.md b/erpnext/docs/user/manual/en/accounts/tools/payment-tool.md index d0e765a0c8..32a539b0df 100644 --- a/erpnext/docs/user/manual/en/accounts/tools/payment-tool.md +++ b/erpnext/docs/user/manual/en/accounts/tools/payment-tool.md @@ -1,3 +1,5 @@ +# Payment Tool + ###Payment Tool The Payment Tool Feature allows non-accounting personnel to generate Journal Entries by populating relevant fields in the Journal Entry with account and payment details. @@ -11,14 +13,14 @@ To go to Payment Tool, click on Accounts > Tools > Payment Tool. 6. Click on Get Outstanding Vouchers to fetch all the valid Vouchers, Invoices and Orders against which a payment can be made/received. These will appear in the Against Voucher section. * __Note:__ In case User is paying a customer or receiving payment from a supplier, add the details regarding the relevant invoices and orders manually. - Payment Tool + Payment Tool 7. Once details have been fetched, click on the detail entry and enter the payment amount made against that Invoice/Order/Voucher - Payment Tool + Payment Tool 8. Click on 'Make Journal Entry' to generate a new Journal Entry with the relevant Party Details and Credit/Debit details filled in. - Payment Tool + Payment Tool {next} diff --git a/erpnext/docs/user/manual/en/accounts/tools/period-closing-voucher.md b/erpnext/docs/user/manual/en/accounts/tools/period-closing-voucher.md index 418ea84c6a..e48055d4d3 100644 --- a/erpnext/docs/user/manual/en/accounts/tools/period-closing-voucher.md +++ b/erpnext/docs/user/manual/en/accounts/tools/period-closing-voucher.md @@ -1,3 +1,5 @@ +# Period Closing Voucher + At the end of every year or (quarterly or maybe even monthly), after completing auditing, you can close your books of accounts. This means that you make all your special entries like: * Depreciation @@ -19,7 +21,7 @@ In ERPNext after making all the special entries via Journal Entry for the curren **Closing Fiscal Year** will be an year for which you are closing your financial statement. -Period Closing Voucher +Period Closing Voucher This voucher will transfer Profit or Loss (availed from P&L statment) to Closing Account Head. You should select a liability account like Reserves and Surplus, or Capital Fund account as Closing Account. diff --git a/erpnext/docs/user/manual/en/buying/articles/index.md b/erpnext/docs/user/manual/en/buying/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/buying/articles/index.md +++ b/erpnext/docs/user/manual/en/buying/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/buying/articles/maintaining-suppliers-part-no-in-item.md b/erpnext/docs/user/manual/en/buying/articles/maintaining-suppliers-part-no-in-item.md index 2a925813b7..db42fc3511 100644 --- a/erpnext/docs/user/manual/en/buying/articles/maintaining-suppliers-part-no-in-item.md +++ b/erpnext/docs/user/manual/en/buying/articles/maintaining-suppliers-part-no-in-item.md @@ -1,3 +1,5 @@ +# Maintaining Suppliers Part No In Item + #Maintaining Supplier's Item Code in the Item master For each item, code assigned might differ from the code your supplier has given to that same item. ERPNext allows you to track Supplier's Item Code in the item master. Also you can fetch Supplier's Item Code in your purchase transactions, so that they can easily recognize item referring to their Item Code. @@ -6,15 +8,15 @@ For each item, code assigned might differ from the code your supplier has given In the Item master, under Supplier Details section, enter Item Code as given by the Supplier to this item. -Supplier Item Code +Supplier Item Code #### 2. Supplier's Item Code in Transactions -Each purchase transaction has field in the Item table where Supplier's Item Code is fetched. This field is hidden in form as well as in the Standard print format. You can make it visible by changing property for this field from [Customize Form.]({{docs_base_url}}/user/manual/en/customize-erpnext/customize-form.html) +Each purchase transaction has field in the Item table where Supplier's Item Code is fetched. This field is hidden in form as well as in the Standard print format. You can make it visible by changing property for this field from [Customize Form.](/docs/user/manual/en/customize-erpnext/customize-form.html) Supplier Item Code will only be fetched in the purchase transaction, if both Supplier and Item Code selected in purchase transaction is mapped with value mentioned in the Item master. -Supplier Item Code in transaction +Supplier Item Code in transaction \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/buying/articles/pull-items-in-purchase-order-based-on-supplier.md b/erpnext/docs/user/manual/en/buying/articles/pull-items-in-purchase-order-based-on-supplier.md index 80f52833f1..1e9c04254f 100644 --- a/erpnext/docs/user/manual/en/buying/articles/pull-items-in-purchase-order-based-on-supplier.md +++ b/erpnext/docs/user/manual/en/buying/articles/pull-items-in-purchase-order-based-on-supplier.md @@ -1,3 +1,5 @@ +# Pull Items In Purchase Order Based On Supplier + #Pull Items in Purchase Order based on Supplier **Question:** @@ -12,7 +14,7 @@ To pull items from Material Request for specific Supplier only, follow below giv Update Default Supplier in the Item master. -Item Purchase UoM +Item Purchase UoM ####Step 2: New Purchase Order @@ -22,13 +24,13 @@ Update Default Supplier in the Item master. From the options available to pull data in the Purchase Order, click on `For Supplier`. -Item Purchase UoM +Item Purchase UoM ####Step 4: Get Items Select Supplier name and click on `Get`. -Item Purchase UoM +Item Purchase UoM ####Step 5: Edit Items diff --git a/erpnext/docs/user/manual/en/buying/articles/purchasing-in-different-unit.md b/erpnext/docs/user/manual/en/buying/articles/purchasing-in-different-unit.md index 81b1aab345..2f8a673a91 100644 --- a/erpnext/docs/user/manual/en/buying/articles/purchasing-in-different-unit.md +++ b/erpnext/docs/user/manual/en/buying/articles/purchasing-in-different-unit.md @@ -1,3 +1,5 @@ +# Purchasing In Different Unit + #Purchasing in Different Unit (UoM) Each item has stock unit of measument (UoM) associated to it. For example UoM of pen could be numbers (Nos) and sand could be stocked kgs. However, when we place an order with Supplier, UoM for an item could change. Like we can order 1 set/box of Pen, or one truck of sand to our Supplier. When creating purchase transacton, you can change Purchase UoM for an item. @@ -15,28 +17,28 @@ In the Purchase Order, you will find two UoM fied. In both the fields, default UoM of an item will be fetched by default. You should edit UoM field, and select Purchase UoM (Box in this case). Updating Purchase UoM is mainly for the reference of the supplier. In the print format, you will see item qty in the Purchase UoM. -Item Purchase UoM +Item Purchase UoM #### Step 2: Update UoM Conversion Factors In one Box, if you get 20 Nos. of Pen, UoM Conversion Factor would be 20. -Item Conversion Factor +Item Conversion Factor Based on the Qty and Conversion Factor, qty will be calculated in the Stock UoM of an item. If you purchase just one Box, then Qty in the stock UoM will be set as 20. -Purchase Qty in Default UoM +Purchase Qty in Default UoM ### Stock Ledger Posting Irrespective of the Purchase UoM selected, stock ledger posting will be done in the Default UoM of an item. Hence you should ensure that conversion factor is entered correctly while purchasing item in different UoM. -Print Format in Purchase UoM +Print Format in Purchase UoM ### Set Conversion Factor in Item In the Item master, under Purchase section, you can list all the possible purchase UoM of an item, with its UoM Conversion Factor. -Purchase UoM master +Purchase UoM master \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/buying/purchase-order.md b/erpnext/docs/user/manual/en/buying/purchase-order.md index 89bb6d9d5f..cdfd0f9829 100644 --- a/erpnext/docs/user/manual/en/buying/purchase-order.md +++ b/erpnext/docs/user/manual/en/buying/purchase-order.md @@ -1,3 +1,5 @@ +# Purchase Order + A Purchase Order is analogous to a Sales Order. It is usually a binding contract with your Supplier that you promise to buy a set of Items under the given conditions. @@ -7,7 +9,7 @@ Supplier Quotation. #### Purchase Order Flow Chart -![Purchase Order]({{docs_base_url}}/assets/img/buying/buying_flow.png) +![Purchase Order](/docs/assets/img/buying/buying_flow.png) In ERPNext, you can also make a Purchase Order directly by going to: @@ -15,7 +17,7 @@ In ERPNext, you can also make a Purchase Order directly by going to: #### Create Purchase Order -Purchase Order +Purchase Order Entering a Purchase Order is very similar to a Purchase Request, additionally you will have to set: @@ -40,10 +42,10 @@ government is only the difference between what you collect from your Customer and what you pay to your Supplier. This is called Value Added Tax (VAT). #### Add Taxes in Purchase Order -Purchase Order +Purchase Order #### Show Tax break-up -Purchase Order +Purchase Order For example you buy Items worth X and sell them for 1.3X. So your Customer pays 1.3 times the tax you pay your Supplier. Since you have already paid tax @@ -79,7 +81,7 @@ Nos (from the Item form) #### Figure 3: Conversion of Purchase UOM to stock UOM -Purchase Order - UOM +Purchase Order - UOM __Step 4:__ Mention the UOM conversion factor. For example, (100);If one box has 100 pieces. diff --git a/erpnext/docs/user/manual/en/buying/purchase-taxes.md b/erpnext/docs/user/manual/en/buying/purchase-taxes.md index f3be64dddb..b04949ffee 100644 --- a/erpnext/docs/user/manual/en/buying/purchase-taxes.md +++ b/erpnext/docs/user/manual/en/buying/purchase-taxes.md @@ -1,3 +1,5 @@ +# Purchase Taxes + For Tax Accounts that you want to use in the tax templates, you must mention them as type “Tax” in your Chart of Accounts. @@ -8,7 +10,7 @@ Orders and Purchase Invoices. > Buying > Setup > Purchase Taxes and Charges Template > New Purchase Taxes and Charges Master -Purchase taxes +Purchase taxes You can specify if the tax / charge is only for valuation (not a part of diff --git a/erpnext/docs/user/manual/en/buying/request-for-quotation.md b/erpnext/docs/user/manual/en/buying/request-for-quotation.md index 07b0d3fd64..182c89d4e6 100644 --- a/erpnext/docs/user/manual/en/buying/request-for-quotation.md +++ b/erpnext/docs/user/manual/en/buying/request-for-quotation.md @@ -1,10 +1,12 @@ +# Request For Quotation + A Request for Quotation is a document that an organization submits to one or more suppliers eliciting quotation for items. In ERPNext, You can create request for quotation directly by going to: > Buying > Documents > Request for Quotation > New Request for Quotation -![Request For Quotation]({{docs_base_url}}/assets/img/buying/request-for-quotation.png) +![Request For Quotation](/docs/assets/img/buying/request-for-quotation.png) After creation of request for quotation, there are two ways to generate supplier quotation from request for quotation. @@ -12,41 +14,41 @@ After creation of request for quotation, there are two ways to generate supplier __Step 1:__ Open request for quotation and click on make supplier quotation. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/make-supplier-quotation-from-rfq.png) +![Request For Quotation](/docs/assets/img/buying/make-supplier-quotation-from-rfq.png) __Step 2:__ Select supplier and click on make supplier quotation. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-selection-from-rfq.png) +![Request For Quotation](/docs/assets/img/buying/supplier-selection-from-rfq.png) __Step 3:__ System will open the supplier quotation, user has to enter the rate and submit it. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-quotation-from-rfq.png) +![Request For Quotation](/docs/assets/img/buying/supplier-quotation-from-rfq.png) #### For Supplier __Step 1:__ User has to create contact or enter Email Address against the supplier on request for quotation. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/set-email-id.png) +![Request For Quotation](/docs/assets/img/buying/set-email-id.png) __Step 2:__ User has to click on send supplier emails button. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/send-supplier-emails.png) +![Request For Quotation](/docs/assets/img/buying/send-supplier-emails.png) * If supplier's user not available: system will create supplier's user and send details to the supplier, supplier will need to click on the link(Password Update) present in the email. After password update supplier can access his portal with the request for quotation form. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-password-update-link.png) +![Request For Quotation](/docs/assets/img/buying/supplier-password-update-link.png) * If supplier's user available: system will send request for quotation link to supplier, supplier has to login using his credentials to view request for quotation form on portal. -![Request For Quotation]({{docs_base_url}}/assets/img/buying/send-rfq-link.png) +![Request For Quotation](/docs/assets/img/buying/send-rfq-link.png) __Step 3:__ Supplier has to enter amount and notes(payment terms) on the form and click on submit -![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-portal-rfq.png) +![Request For Quotation](/docs/assets/img/buying/supplier-portal-rfq.png) __Step 4:__ On submission, system will create supplier quotation(draft mode) against the supplier. User has to review the supplier quotation and submit it. More details:- -![Request For Quotation]({{docs_base_url}}/assets/img/buying/request-for-quotation.gif) \ No newline at end of file +![Request For Quotation](/docs/assets/img/buying/request-for-quotation.gif) \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/buying/setup/buying-settings.md b/erpnext/docs/user/manual/en/buying/setup/buying-settings.md index 3d5dbb92ad..197a18ebb6 100644 --- a/erpnext/docs/user/manual/en/buying/setup/buying-settings.md +++ b/erpnext/docs/user/manual/en/buying/setup/buying-settings.md @@ -1,6 +1,8 @@ +# Buying Settings + Buying Settings is where you can define properties which will be applied in the Buying module's transactions. -![Buying Settings]({{docs_base_url}}/assets/img/buying/buying-settings.png) +![Buying Settings](/docs/assets/img/buying/buying-settings.png) Let us look at the various options that can be configured: @@ -14,7 +16,7 @@ You can define or select the Naming Series pattern from: `Setup > Data > Naming Series` -[Click here to know more about defining a Naming Series.]({{docs_base_url}}/user/manual/en/setting-up/settings/naming-series.html) +[Click here to know more about defining a Naming Series.](/docs/user/manual/en/setting-up/settings/naming-series.html) ### 2. Default Supplier Type diff --git a/erpnext/docs/user/manual/en/buying/setup/index.md b/erpnext/docs/user/manual/en/buying/setup/index.md index 259b5ebc42..2d85ad2e74 100644 --- a/erpnext/docs/user/manual/en/buying/setup/index.md +++ b/erpnext/docs/user/manual/en/buying/setup/index.md @@ -1,3 +1,5 @@ +# Setup + ### Topics diff --git a/erpnext/docs/user/manual/en/buying/setup/supplier-type.md b/erpnext/docs/user/manual/en/buying/setup/supplier-type.md index 2e88601beb..16d5445fb9 100644 --- a/erpnext/docs/user/manual/en/buying/setup/supplier-type.md +++ b/erpnext/docs/user/manual/en/buying/setup/supplier-type.md @@ -1,3 +1,5 @@ +# Supplier Type + A supplier may be distinguished from a contractor or subcontractor, who commonly adds specialized input to deliverables. A supplier is also known as a vendor. There are different types of suppliers based on their goods and @@ -14,7 +16,7 @@ You can create your own category of Supplier Type. > Buying > Setup > Supplier Type > New Supplier Type -Supplier Type +Supplier Type You can classify your suppliers from a range of choice available in ERPNext. Choose from a set of given options like Distributor, Electrical,Hardware, diff --git a/erpnext/docs/user/manual/en/buying/supplier-quotation.md b/erpnext/docs/user/manual/en/buying/supplier-quotation.md index 868a2977e9..5935477949 100644 --- a/erpnext/docs/user/manual/en/buying/supplier-quotation.md +++ b/erpnext/docs/user/manual/en/buying/supplier-quotation.md @@ -1,3 +1,5 @@ +# Supplier Quotation + A Supplier Quotation is a formal statement of promise by potential supplier to supply the goods or services required by a buyer, at specified prices, and within a specified period. A quotation may also contain terms of sale and @@ -8,7 +10,7 @@ You can make a supplier quotation from a Material Request #### Supplier Quotation Flow-Chart -![Supplier Quotation]({{docs_base_url}}/assets/img/buying/buying_flow.png) +![Supplier Quotation](/docs/assets/img/buying/buying_flow.png) You can also make a Supplier Quotation directly from: @@ -16,7 +18,7 @@ You can also make a Supplier Quotation directly from: #### Create Supplier Quotation -Supplier Quotation +Supplier Quotation If you have multiple Suppliers who supply you with the same Item, you usually send out a message (Request for Quote) to various Suppliers. In @@ -35,10 +37,10 @@ If your Supplier is going to charge you additional taxes or charge like a shippi You can select relevant tax by going to "Taxes and Charges" section and adding an entry to the table as shown below, -Supplier Quotation +Supplier Quotation Besides, in case of multiple items you can keep track of taxes on each by clicking "Show tax break-up" -Supplier Quotation +Supplier Quotation {next} diff --git a/erpnext/docs/user/manual/en/buying/supplier-scorecard.md b/erpnext/docs/user/manual/en/buying/supplier-scorecard.md index cecdf9cd21..eb330302af 100644 --- a/erpnext/docs/user/manual/en/buying/supplier-scorecard.md +++ b/erpnext/docs/user/manual/en/buying/supplier-scorecard.md @@ -1,3 +1,5 @@ +# Supplier Scorecard + A Supplier Scorecard is an evaluation tool used to assess the performance of suppliers. Supplier scorecards can be used to keep track of item quality, delivery and responsiveness of suppliers across long periods of time. This data @@ -12,24 +14,24 @@ In ERPNext, you can create a supplier scorecard by going to: ### Create Supplier Scorecard A supplier scorecard is created for each supplier individually. Only one supplier scorecard can be created for each supplier. -Purchase Order +Purchase Order #### Final Score and Standings The supplier scorecard consists of a set evaluation periods, during which the performance of a supplier is evaluated. This period can be daily, monthly or yearly. The current score is calculated from the score of each evaluation period based on the weighting function. The default formula is linearly weight over the previous 12 scoring periods. -Purchase Order +Purchase Order This formula is customizable. The supplier standing is used to quickly sort suppliers based on their performance. These are customizable for each supplier. The scorecard standing of a supplier can also be used to restrict suppliers from being included in Request for Quotations or being issued Purchase Orders. -Purchase Order +Purchase Order #### Evaluation Criteria and Variables A supplier can be evaluated on several individual evaluation criteria, including (but not limited to) quotation response time, delivered item quality, and delivery timeliness. These criteria are weighed to determine the final period score. -Purchase Order +Purchase Order The method for calculating each criteria is determined through the criteria formula field, which can use a number of pre-established variables. The value of each of these variables is calculated over the scoring period for each supplier. Examples of such variables include: - The total number of items received from the supplier diff --git a/erpnext/docs/user/manual/en/buying/supplier.md b/erpnext/docs/user/manual/en/buying/supplier.md index 89107db841..217d8b79b1 100644 --- a/erpnext/docs/user/manual/en/buying/supplier.md +++ b/erpnext/docs/user/manual/en/buying/supplier.md @@ -1,16 +1,18 @@ +# Supplier + Suppliers are companies or individuals who provide you with products or services. You can create a new Supplier from: `Explore > Supplier > New Supplier` -Supplier Master +Supplier Master ### Contacts and Addresses Contacts and Addresses in ERPNext are stored separately so that you can create multiple Contacts and Addresses for a Suppliers. Once Supplier is saved, you will find option to create Contact and Address for that Supplier. -Supplier Master +Supplier Master > Tip: When you select a Supplier in any transaction, Contact for which "Is Primary" field id checked, it will auto-fetch with the Supplier details. @@ -20,7 +22,7 @@ For all the Supplier, "Creditor" account is set as default payable Account. When If you want to customize payable account for the Supplier, you should first add a payable Account in the Chart of Account, and then select that Payable Account in the Supplier master. -Supplier Master +Supplier Master If you don't want to customize payable account, and proceed with default payable account "Creditor", then do not update any value in the Default Supplier Account's table. 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 b94ac01225..6facabf0bb 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,17 +1,19 @@ +# Customer Orders Invoices And Shipping Status + 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. -Customer Portal +Customer Portal 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 +Customer Portal #### Outstanding Sales Invoice -Customer Portal +Customer Portal #### Paid Sales Invoice -Customer Portal +Customer Portal {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customer-portal/index.md b/erpnext/docs/user/manual/en/customer-portal/index.md index ddac7d2771..1dbb140504 100644 --- a/erpnext/docs/user/manual/en/customer-portal/index.md +++ b/erpnext/docs/user/manual/en/customer-portal/index.md @@ -1,3 +1,5 @@ +# Customer Portal + Customer Portal is designed to give easy accesibility to customers of a company. diff --git a/erpnext/docs/user/manual/en/customer-portal/issues.md b/erpnext/docs/user/manual/en/customer-portal/issues.md index 0088de6b07..17b74e49cc 100644 --- a/erpnext/docs/user/manual/en/customer-portal/issues.md +++ b/erpnext/docs/user/manual/en/customer-portal/issues.md @@ -1,3 +1,5 @@ +# Issues + The customer portal makes it very easy for a customer to raise concerns. A simple and intuitive interface facilitates your customer to report their concerns as Issues. They can view the complete thread of their @@ -5,18 +7,18 @@ conversation. #### Empty Issue List -Issue List +Issue List #### New Issue -New Issue +New Issue #### Open Issue -Issue Raised +Issue Raised #### Reply on Issue -Issue reply +Issue reply {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 62a9b6ffb6..efa70a2a95 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,8 @@ +# Portal Login + 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. -Website User Signup +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 554285c19d..36e1b2cbdf 100644 --- a/erpnext/docs/user/manual/en/customer-portal/sign-up.md +++ b/erpnext/docs/user/manual/en/customer-portal/sign-up.md @@ -1,14 +1,16 @@ +# Sign Up + Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page. #### Step 1: Signup On the Login Page, you will find option to Signup. -Website User Signup +Website User Signup #### Step 2: Enter Customer Name and ID -Website User Signup +Website User Signup After the sign up process, an email will be sent to the customers Email Address with the password details. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/allow-fields-to-be-changed-after-submit.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/allow-fields-to-be-changed-after-submit.md index 902ada8717..42b0fc62b0 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/allow-fields-to-be-changed-after-submit.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/allow-fields-to-be-changed-after-submit.md @@ -1,3 +1,5 @@ +# Allow Fields To Be Changed After Submit + #Editing Value in Submitted Document Once document is submitted, fields are frozen, and no editing is allowd. Still there are certain standard fields like Letter Head, Print Heading which can still be edited. For the custom field, if **Allow on Submit** property is checked, it will be editable even after document is submitted. @@ -12,17 +14,17 @@ Once document is submitted, fields are frozen, and no editing is allowd. Still t In Customize Form, select Document Type (Quotation, Sales Order, Purchase Invoice Item etc.) -select docytpe +select docytpe #### Step 3: Edit Field Property In the fields section, click on the Custom field and check the **Allow On Submit**. -Check Allow on Submit +Check Allow on Submit #### Step 3: Update Customize Form -Update +Update After updating Customize Form, you should reload your ERPNext account. Then check form, and field to confirm its editable in submitted form as well. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/creating-custom-link-field.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/creating-custom-link-field.md index 834617e584..21cc433c1a 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/creating-custom-link-field.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/creating-custom-link-field.md @@ -1,3 +1,5 @@ +# Creating Custom Link Field + #Creating Custom Link Fields Links field are the ones linked to another document type. For example, customer field is a link field in Sales Order. This field is linked to the Customer master. @@ -13,7 +15,7 @@ You can insert Custom Link Field by following steps below. In Customize Form, select Document Type (Quotation, Sales Order, Purchase Invoice Item etc.). Once field are updated in table, open field before which you wish to insert Custom Field. Then click on "Insert Above" to insert new Custom Field. -Select Docytpe +Select Docytpe ####Step 4: Custom Field Values @@ -24,6 +26,6 @@ To set field as Link, enter values as below. 1. Name: Desired name for the field 1. Options: Enter the name of the Doctype to which the field is linked -Enter Values +Enter Values \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/customizing-sorting-order-in-the-list-view.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/customizing-sorting-order-in-the-list-view.md index d8e5319b94..a842085f8f 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/customizing-sorting-order-in-the-list-view.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/customizing-sorting-order-in-the-list-view.md @@ -1,3 +1,5 @@ +# Customizing Sorting Order In The List View + #Customizing Sorting Order in the List View **Question:** I want records in my Item List sorted based on Desc Order of Item Code. @@ -12,13 +14,13 @@ Select document type for which Sort Order is to be customized. -Sort Order field +Sort Order field ####Step 3: Update Sort Details In the Customize Form, you will find these fields. -Sort Order field +Sort Order field 1. Sort Field: Select field based on which sorting will be done. It will be "Item_Code" field in scenario. 2. Sort Order: Sort Order will be two possible options, **Asc** for ascending, and **Desc** for descending. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/deleting-custom-reports.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/deleting-custom-reports.md index ae5b06183c..9d3c0e1ff5 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/deleting-custom-reports.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/deleting-custom-reports.md @@ -1,6 +1,8 @@ +# Deleting Custom Reports + #Deleting Custom Reports -ERPNext has several [types of reports]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext) which can be customize as per the companies/users requirement. +ERPNext has several [types of reports](/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext) which can be customize as per the companies/users requirement. If there is a report custom report which needs to be deleted, it can be achieved by following steps. Please note that its applicable only for the Custom Reports, and not for the standard reports. @@ -8,16 +10,16 @@ If there is a report custom report which needs to be deleted, it can be achieved In the Awesome Bar, type and select "Report List" for an option. -Report Search +Report Search ####Selecting and Deleting Report The Report List will have all the standard and custom reports of your account. You can select Custom Report to be deleted from the list itself, and click on Delete icon. -Report List +Report List Or you can open that report, and delete it from File menu option. -Report Delete +Report Delete \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/disable-rounded-total.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/disable-rounded-total.md index e47692fcfd..ffcb37630d 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/disable-rounded-total.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/disable-rounded-total.md @@ -1,8 +1,10 @@ +# Disable Rounded Total + #Disable Rounded Total All the sales transactions like Sales Order, Sales Invoice has Rounded Total in it. It calculated based on the value of Grand Total. Also Rounded Total is also visible in the Standard Print Formats. -Print Preview +Print Preview Follow steps given below to hide rounded total from Standard Print Formats, for all the sales transactions. @@ -14,7 +16,7 @@ Follow steps given below to hide rounded total from Standard Print Formats, for Check Disable Rounded Total, and Save Global Defaults. -Print Preview +Print Preview For system to take effect of this setting, you should clear cache and refresh your ERPNext account. Then your print formats shall not render value for the Rounded Total in the print formats. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/field-types.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/field-types.md index 813a7a71ae..9d239c4909 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/field-types.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/field-types.md @@ -1,3 +1,5 @@ +# Field Types + #Field Types Following are the types of fields you can define while creating new ones, or while amend standard ones. @@ -32,7 +34,7 @@ This field will give you date and time picker. Current date and time (as provide - Dynamic Link -Click [here]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/managing-dynamic-link-fields.html) to learn how Dynamic Link Field function. +Click [here](/docs/user/manual/en/customize-erpnext/articles/managing-dynamic-link-fields.html) to learn how Dynamic Link Field function. - Float diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/increase-max-attachments.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/increase-max-attachments.md index 2b7459c748..b3f9a98196 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/increase-max-attachments.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/increase-max-attachments.md @@ -1,3 +1,5 @@ +# Increase Max Attachments + #Increase Max Attachments In ERPNext, you can limit how many files can be attached to specific Document. Using Custmize Form, you can set **Max(imum) Attachments** which can be added to a particular documents. @@ -10,13 +12,13 @@ Let's assume we need to update Max Attachment for Quotation to five. #### Step 2: Select Document Type -Select Doctype +Select Doctype #### Step 3: Set Limit Set Maximum Attachments as five. -Set Max Attachment +Set Max Attachment After update Max Attachments, Update Customization Form. Reload your ERPNext account and then check specific Quotation to confirm if Max Attachment limit is applied. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/index.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/index.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/make-field-visible-in-print-format.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/make-field-visible-in-print-format.md index 62cc3f9e6b..5abd291e23 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/make-field-visible-in-print-format.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/make-field-visible-in-print-format.md @@ -1,3 +1,5 @@ +# Make Field Visible In Print Format + #Make Fields Visible In Print Format Each transaction has Standard Print Format. In the Standard format, only certain fields are displayed by default. If user needs field in the Standard format to be visible, it can be customized by using Customize Form tool. @@ -14,13 +16,13 @@ Go to: As per our scenario, Sales Order will be selected as Document Type. field-visible-2.gif -Document Type +Document Type #### Step 3: Uncheck Print Hide click to open field to be made visible in the Standard Print Format. Uncheck **Print Hide** field. -Uncheck Print Hide +Uncheck Print Hide #### Step 4: Update diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md index 7bc965b656..bcc5c6ff78 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md @@ -1,3 +1,5 @@ +# Making Custom Reports In Erpnext + #Reports in ERPNext There are three kind of reports in ERPNext. @@ -12,12 +14,12 @@ Report Builder is an in-built report customization tool in ERPNext. This allows Query Report is written in SQL which pull values from account's database and fetch in the report. Though SQL queries can be written from front end, like HTML, its restricted in hosted users. Because it will allow users with no access to specific report to query data directly from the database. -Check Purchase Order Item to be Received report in Stock module for example of Query report. Click [here](https://frappe.github.io/frappe/user/en/guides/reports-and-printing/how-to-make-query-report.html) to learn how to create Query Report. +Check Purchase Order Item to be Received report in Stock module for example of Query report. Click [here](https://frappe.io/docs/user/en/guides/reports-and-printing/how-to-make-query-report.html) to learn how to create Query Report. ### 3. Script Report Script Reports are written in Python and stored on server side. These are complex reports which involves logic and calculation. Since these reports are written on server side, customizing it from hosted account is not possible. -Check Financial Analytics report in Accounts module for example of Script Report. Click [here](https://frappe.github.io/frappe/user/en/guides/reports-and-printing/how-to-make-script-reports.html) to learn how to create Script Report. +Check Financial Analytics report in Accounts module for example of Script Report. Click [here](https://frappe.io/docs/user/en/guides/reports-and-printing/how-to-make-script-reports.html) to learn how to create Script Report. \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/managing-dynamic-link-fields.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/managing-dynamic-link-fields.md index c72004d64c..f3621a521f 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/managing-dynamic-link-fields.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/managing-dynamic-link-fields.md @@ -1,3 +1,5 @@ +# Managing Dynamic Link Fields + #Managing Dynamic Link Fields Dynamic Link field is one which can search and hold value of any document/doctype. Let's consider an example to learn how Dynamic Link field works. @@ -12,7 +14,7 @@ Below are the steps to insert Custom Dynamic Field. For an instance, we will ins Firstly we will create a link field which will be linked to the Doctype. -Custom Link Field +Custom Link Field By **Doctype** mentioned in the Option field, we mean parent Doctype. So, just like Quotation is one Doctype, which has multiple Quotation under it. Same way, Doctype is also a Doctype which has Sales Order, Purchase Order and other doctypes created as Doctype records. @@ -27,17 +29,17 @@ By **Doctype** mentioned in the Option field, we mean parent Doctype. So, just l So linking this field with parent Doctype will list all the Doctype records. -journal Voucher Link Field +journal Voucher Link Field #### Step 2: Insert Dynamic Link Field This custom field's type will be "Dynamic Link". In the Option field, name of Doctype link field will be mentioned. -Custom Dynamic Field +Custom Dynamic Field This field will allow selecting document id, based on value selected in the Doctype link field. For example, if we select Sales Order in the prior field, Dynamic Link field will list all the Sales Orders ids. -Custom Dynamic Field +Custom Dynamic Field
**Customizing options in the Doctype Link field** diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/maximum-numbers-of-fields-in-a-form.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/maximum-numbers-of-fields-in-a-form.md index 7751a3d90f..8409a8a128 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/maximum-numbers-of-fields-in-a-form.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/maximum-numbers-of-fields-in-a-form.md @@ -1,3 +1,5 @@ +# Maximum Numbers Of Fields In A Form + Sometimes while creating custom fields, you might experienced an error message like below: > Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs @@ -12,7 +14,7 @@ Every table (regardless of storage engine) has a maximum row size of 65,535 byte The maximum row size constrains the number (and possibly size) of columns because the total length of all columns cannot exceed this size (65,535 bytes). For example, `utf8mb3` characters require up to 3 bytes per character, so for a `VARCHAR(140)` column, the server must allocate `140 × 3 = 420` bytes per value. Consequently, a table cannot contain more than `65,535 / 420 = 156` such columns. -In Frappe frapework, `VARCHAR(140)` type columns are created based on "Data", "Link", "Select", "Dynamic Link", "Password" and "Read Only" fieldtypes. Hence, you can create approximately 156 such columns in the system. +In Frappé frapework, `VARCHAR(140)` type columns are created based on "Data", "Link", "Select", "Dynamic Link", "Password" and "Read Only" fieldtypes. Hence, you can create approximately 156 such columns in the system. ### Solutions: diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/module-visibility.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/module-visibility.md index 191ce8a830..41765ab5db 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/module-visibility.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/module-visibility.md @@ -1,3 +1,5 @@ +# Module Visibility + #Module Visibility If you have permission on specific module, but it is still not visible, following are the possibilities of issues you should look at. Let's consider a scenario that user is permission of Website module, but not able to access it. @@ -6,7 +8,7 @@ As step zero, ensure that you have "Website Manager" role assigned. It is a stan If module is hidden in-spite of assignment of required Role, then you should check if Website is not disabled from All Application. -All Applications +All Applications If Website is checked in All Application, but still not visible for the User, check if is hidden by System Manager. In the Setup module, feature called Show/Hide Modules allows System Manager to hide specific module from all the Users. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/perm-level-error-in-permission-manager.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/perm-level-error-in-permission-manager.md index 2562740127..8c099ccca7 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/perm-level-error-in-permission-manager.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/perm-level-error-in-permission-manager.md @@ -1,6 +1,8 @@ +# Perm Level Error In Permission Manager + #Perm Level Error in Permission Manager -While customizing rules in the [Permission Manager]({{docs_base_url}}/user/erpnext/user/manual/en/setting-up/users-and-permissions/role-based-permissions), you might receive an error message saying: +While customizing rules in the [Permission Manager](/docs/user/erpnext/user/manual/en/setting-up/users-and-permissions/role-based-permissions), you might receive an error message saying: `For System Manager _(or other role)_ at level 2 _(or other level)_ in Customer _(or other document)_ in row 8: Permission at level 0 must be set before higher levels are set.` diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/search-record-by-specific-field.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/search-record-by-specific-field.md index 3dd6c68e55..b5aa07c2a3 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/search-record-by-specific-field.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/search-record-by-specific-field.md @@ -1,3 +1,5 @@ +# Search Record By Specific Field + #Search Record by Specific Field While creating any document (say Sales Invoice), you have to select other document id in it (say Serial No). For ease in selection, you can also make value of other field of that visible in the search result. Search By functionality enables to define field whos value will be visible in the search result. @@ -16,12 +18,12 @@ Let's assume that while creating Sales Invoice, you wish to see Serial No result Update Warehouse field name in the Search By field. -Search By in Customize Form +Search By in Customize Form #### Searching in Another Record. While creating transaction, to get filtered result for Customer, you should firstly click on search magnifier. -Search By in Customize Form +Search By in Customize Form diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/set-language.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/set-language.md index ede54f24e9..f3204dc6ae 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/set-language.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/set-language.md @@ -1,3 +1,5 @@ +# Set Language + #Change the Language ERPNext is an multi-lingual application. It allows each user to select preferred lannguage. Following is how User can customize language in one's account. @@ -8,13 +10,13 @@ Following are the steps to set language in your ERPNext account. #### 1.1 Go to My Setting -My Setting +My Setting #### 1.2 Select Language -Select Language +Select Language -Select Language +Select Language #### 1.3 Save User @@ -30,13 +32,13 @@ Being a System Manager, you can set language in other user's master as well. #### Set Language -Global Language +Global Language #### Save Save System Settings, and refresh your EPRNext account. On refreshing, you should language in your ERPNext account changed as per your preference. -Select Language +Select Language Note: For now, we have translation available only for few languages. You can contribute to make translation better, and add new languages from [here](https://translate.erpnext.com). \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/set-precision.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/set-precision.md index 4ed070fcd7..67899e0d91 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/set-precision.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/set-precision.md @@ -1,3 +1,5 @@ +# Set Precision + #Set Precision In ERPNext, default precision for `Float`, `Currency` and `Percent` field is three. It allows you to enter value having value upto three decimal places. @@ -8,11 +10,11 @@ To change the precision globally, go to: `Setup > Settings > System Settings`. -Global Precision +Global Precision You can also set field specific precision. To do that go to `Setup > Customize > Customize Form` and select the DocType there. Then go to the specific field row and change precision. Precision field is only visible if field-type is one of the Float, Currency and Percent. -Field-wise Precision +Field-wise Precision \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/user-restriction.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/user-restriction.md index 586814175b..29eef88dcc 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/articles/user-restriction.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/user-restriction.md @@ -10,10 +10,10 @@ Following are the steps to restrict User to a document based on Owner/creator. Select Document Type for which you want to set user permission. After permissions are loaded for selected document, scroll to role for which you want to set restriction. -Sales Order +Sales Order #### Step 3: Apply User Permission For Role to be restricted (Sales User in this case), check "If Owner". -S +S 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 433db2de1a..33a5857b5b 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md @@ -1,3 +1,5 @@ +# Custom Doctype + 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. @@ -19,7 +21,7 @@ in the Sales Order Doctype, then you should check Is Child Table. Else no. not be able to re-produce. 1. Custom?: This field will be checked by default when adding Custom Doctype. -Doctype Basic +Doctype Basic #### Fields @@ -34,7 +36,7 @@ Fields are much more than database columns, they can be: 1. Actions (button) 1. Attachments or Images -Doc fields +Doc fields When you add fields, you need to enter the **Type**. **Label** is optional for Section Break and Column Break. **Name** (`fieldname`) is the name of the database table column. @@ -44,19 +46,19 @@ You can also set other properties of the field like whether it is mandatory, rea In this section, you can define criteria based on which document for this doctype will be named. There are multiple criterion based on which document can be named, like naming based on the value in the specific field, or based on Naming Series, or based on value provided by the user in the prompt, which will be shown when saving document. In the following example, we are doing naming based on the value in the field **book_name**. -Doctype Naming +Doctype Naming #### Permission In this table, you should select roles and define permission roles for them for this Doctype. -Doctype Permissions +Doctype Permissions #### Save DocType On saving doctype, you will get pop-up to provide name for this Doctype. -Doctype Save +Doctype Save #### DocType in System @@ -65,12 +67,12 @@ Human Resource module, to access this doctype, go to: `Human Resource > Document > Book` -Doctype List +Doctype List #### Book master Using the fields entered, following is the master one book. -Doctype Form +Doctype Form {next} diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-field.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-field.md index 92c5224c9a..2c11e0dc32 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-field.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-field.md @@ -1,3 +1,5 @@ +# Custom Field + Every form in the ERPNext has standard set of fields. If you need to capture some information, but there is no standard field available for it, you can insert Custom Field in a form as per your requirement. Following are the steps to insert Custom Field in the existing form. @@ -12,37 +14,37 @@ To add a Custom Field, go to: In the Customize Form, select Document Type in which you want to insert Custom Field. Let's assume we are inserting Custom Field in the Employee master. -Select Document Type +Select Document Type #### Insert Row for the Custom Field In Customize Form, open the field above which you want to insert a Custom Field. Click on Insert Above. -Select Document Type +Select Document Type ####Set Field Label Custom Field's name will be set based on its Label. If you want to create Custom Field with specific name, but with different label, then you should first set Label as you want Field Name to be set. After Custom Field is saved, you can edit the Field Label again. -Select Document Type +Select Document Type ####Select Field Type There are various types of Field like Data, Date, Link, Select, Text and so on. Select Field Type for the Custom Field. -Select Document Type +Select Document Type -Click [here]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/field-types.html) to learn more about types of field you can set for your Custom Field. +Click [here](/docs/user/manual/en/customize-erpnext/articles/field-types.html) to learn more about types of field you can set for your Custom Field. ####Set Option Based on the Field Type, value will be entered in the Options field. -If you are creating a Link field, then in the Options, enter Doctype name with which this field will be linked. Click [here]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/creating-custom-link-field.html) to learn more about creating custom link field. +If you are creating a Link field, then in the Options, enter Doctype name with which this field will be linked. Click [here](/docs/user/manual/en/customize-erpnext/articles/creating-custom-link-field.html) to learn more about creating custom link field. If field type is set as Select (drop down field), then all he possible result for this field should be listed in the Options field. Each possible result should be separate by row. -Select Document Type +Select Document Type For Data field, Option can be set to "Email" or "Phone" and the field will be validated accordingly. @@ -63,7 +65,7 @@ You can set properties as: After inserting required details for the Custom Field, Update Customize Form. On update, Custom Field will be inserting in the form, Employee master in this case. Before checking Employee form, reload your ERPNext account. After reload, check Employee form to see Custom Field in a form. -Select Document Type +Select Document Type ####Deleting Custom Field diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md index bbfbe45e39..54f264222b 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/custom-script-fetch-values-from-master.md @@ -1,3 +1,5 @@ +# Custom Script Fetch Values From Master + To pull a value of a link on selection, use the `add_fetch` method. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/generate-item-code-based-on-custom-logic.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/generate-item-code-based-on-custom-logic.md index 960aa89c6a..ff6958b3d3 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/generate-item-code-based-on-custom-logic.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/generate-item-code-based-on-custom-logic.md @@ -1,3 +1,5 @@ +# Generate Item Code Based On Custom Logic + Add this in the Custom Script of **Item**, so that the new Item Code is generated just before the a new Item is saved. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/index.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/index.md index 78edcfcfcb..e8649e805f 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/index.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/index.md @@ -1,3 +1,5 @@ +# Custom Script Examples + ### How to Create a Custom Script Create a Custom Script (you must have System Manager role for this): diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/make-read-only-after-saving.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/make-read-only-after-saving.md index 4fda1bd6f9..e665a1c37a 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/make-read-only-after-saving.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/make-read-only-after-saving.md @@ -1,3 +1,5 @@ +# Make Read Only After Saving + Use the method `cur_frm.set_df_property` to update the field's display. In this script we also use the `__islocal` property of the doc to check if the diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-cancel-rights.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-cancel-rights.md index 79fe9a5b07..cd32c81bd0 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-cancel-rights.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-cancel-rights.md @@ -1,3 +1,5 @@ +# Restrict Cancel Rights + Add a handler to `custom_before_cancel` event: diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-purpose-of-stock-entry.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-purpose-of-stock-entry.md index f3efd9813a..97cd8f0765 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-purpose-of-stock-entry.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-purpose-of-stock-entry.md @@ -1,3 +1,5 @@ +# Restrict Purpose Of Stock Entry + frappe.ui.form.on("Material Request", "validate", function(frm) { if(frappe.user=="user1@example.com" && frm.doc.purpose!="Material Receipt") { diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-user-based-on-child-record.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-user-based-on-child-record.md index 849e68681a..ccc21805c0 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-user-based-on-child-record.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/restrict-user-based-on-child-record.md @@ -1,3 +1,5 @@ +# Restrict User Based On Child Record + // restrict certain warehouse to Material Manager cur_frm.cscript.custom_validate = function(doc) { diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/sales-invoice-id-based-on-sales-order-id.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/sales-invoice-id-based-on-sales-order-id.md index 72dbb6dc9d..7dd663345f 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/sales-invoice-id-based-on-sales-order-id.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/sales-invoice-id-based-on-sales-order-id.md @@ -1,3 +1,5 @@ +# Sales Invoice Id Based On Sales Order Id + Below script allows you to get naming series in Sales Invoice, same as of corresponding Sales Order. Invoice uses a prefix M- but the number duplicates the SO doc name (number). diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/update-date-field-based-on-value-in-other-date-field.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/update-date-field-based-on-value-in-other-date-field.md index b7a5e1ce36..d45f5f6216 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/update-date-field-based-on-value-in-other-date-field.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/custom-script-examples/update-date-field-based-on-value-in-other-date-field.md @@ -1,3 +1,5 @@ +# Update Date Field Based On Value In Other Date Field + Below script would auto-set value for the date field, based on the value in another date field. Example: Production Due Date must be set as two days before Delivery Date. If you have Production Due Date field already, with field type as Date, as per the below given script, date will be auto-updated in it, two days prior Deliver Date. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/index.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/index.md index 1a54e8c826..f5519c239d 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/index.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-scripts/index.md @@ -1,10 +1,12 @@ +# Custom Scripts + If you wish to change any ERPNext form formats, you can do so by using Custom Scripts. For example, if you wish to add a submit button after saving, to a Lead form, you can do so by creating your own script. `Setup > Customization > Custom Script` -Custom Script +Custom Script ### Topics diff --git a/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md b/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md index f52cee1aab..5f590bb35b 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md @@ -1,7 +1,9 @@ - -Before we venture to learn form customization tool, click [here](https://frappe.github.io/frappe/user/en/tutorial/doctypes.html) to understand the architecture of forms in ERPNext. It shall help you in using Customize Form tool more efficiently. +# Customize Form -Customize Form is the tool which allows user to customize property of the standard fields, and insert [custom fields]({{docs_base_url}}/user/manual/en/customize-erpnext/custom-field.html) as per the requirement. Let's assume we need to set Project Name field as a mandatory field in the Sales Order form. Following are the steps which shall be followed to achieve this. + +Before we venture to learn form customization tool, click [here](https://frappe.io/docs/user/en/tutorial/doctypes.html) to understand the architecture of forms in ERPNext. It shall help you in using Customize Form tool more efficiently. + +Customize Form is the tool which allows user to customize property of the standard fields, and insert [custom fields](/docs/user/manual/en/customize-erpnext/custom-field.html) as per the requirement. Let's assume we need to set Project Name field as a mandatory field in the Sales Order form. Following are the steps which shall be followed to achieve this. ####Step 1: Go to Customize Form @@ -11,7 +13,7 @@ Go to Customize Form from: You can also reach the Customize Form tool from the List Views. -Customize Form List +Customize Form List ####Step 2: Select Document Type @@ -19,7 +21,7 @@ If navigate from the list view, Document Type will be automatically set in the C If you reach customize form from the Setup module, or from awesome bar, then you will have to manually select Document Type in which customization needs to be made. -Customize Form select doctype +Customize Form select doctype ####Step 3: Edit Property @@ -27,11 +29,11 @@ On selecting Document Type, all the fields of the Document Type will updated as To customized Project field, click on the respective row, and check "Mandatory". With this, Project field will become mandatory in the Sales Order. -Customize Form select doctype +Customize Form select doctype Like setting setting field Mandatory, following are the other customization options in the Customize Form tool. -* Change [Field Type]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/field-types.html). +* Change [Field Type](/docs/user/manual/en/customize-erpnext/articles/field-types.html). * Edit Field Labels to suit your industry/language. * Set field precision for the Currency field. * To hide field, check Hidden. @@ -47,9 +49,9 @@ To have customizations take effect, reload your ERPNext account once. From Customize Form, you can also do following customizations: -* Max Attachment Limit: Define [maximum no. of files]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/increase-max-attachments.html) which can attached on a document. +* Max Attachment Limit: Define [maximum no. of files](/docs/user/manual/en/customize-erpnext/articles/increase-max-attachments.html) which can attached on a document. * Default Print Format: For one document type, you can have multiple print formats. In the Customize Form, you can also set default Print Format for a document. -* Set [Title Field]({{docs_base_url}}/user/manual/en/customize-erpnext/document-title.html) +* Set [Title Field](/docs/user/manual/en/customize-erpnext/document-title.html) * Sort Field and Sort Order: Define field based on which documents in the list view will be sorted. >Note: Though we want you to do everything you can to customize your ERP based on your business needs, we recommend that you do not make “wild” changes to the forms. This is because, these changes may affect certain operations and may mess up your forms. Make small changes and see its effect before doing some more. @@ -92,7 +94,7 @@ table, th, td { Field Type - Click here to learn about of fields types. + Click here to learn about of fields types. Options diff --git a/erpnext/docs/user/manual/en/customize-erpnext/document-title.md b/erpnext/docs/user/manual/en/customize-erpnext/document-title.md index ab83cf2d06..64dad31c98 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/document-title.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/document-title.md @@ -1,3 +1,5 @@ +# Document Title + You can customize the title of documents based on properties so that you have meaningful information for the list views. For example the default title on **Quotation** is the customer name, but if you are dealing a few customers and sending lots of quotes to the same customer, you may want to customize. @@ -21,14 +23,14 @@ You can define the title by setting document properties in braces `{}`. For exam {customer_name} for {project} Customize Title + src="/docs/assets/img/customize/customize-title.gif"> #### Fixed or Editable Titles If your title is generated as a default title, it can be edited by the user by clicking on the heading of the document. Editable Title + src="/docs/assets/img/customize/editable-title.gif"> If you want a fixed title, you can set the rule in the **Options** property. In this way, the title will be automatically updated everytime the document is updated. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/hiding-modules-and-features.md b/erpnext/docs/user/manual/en/customize-erpnext/hiding-modules-and-features.md index ce8a1c3e74..ad4b00e2f9 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/hiding-modules-and-features.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/hiding-modules-and-features.md @@ -4,9 +4,9 @@ To hide modules (icons) from the home page, go to: `Setup > Permissions > Show / Hide Modules` -Hide Features +Hide Features -Click [here]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/module-visibility.html) to learn about other features from where icons from the desktop can be hidden. +Click [here](/docs/user/manual/en/customize-erpnext/articles/module-visibility.html) to learn about other features from where icons from the desktop can be hidden. > Note: Modules are automatically hidden for users that have no permissions on the documents within that module. For example, if a User has no permissions on Purchase Order, Purchase Request, Supplier, the “Buying” module will automatically hidden for that User. diff --git a/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md b/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md index ccfa63a93a..1936c569ff 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md @@ -1,3 +1,5 @@ +# Kanban Board + #Kanban Board Kanban is a Japanese manufacturing system in which the supply of components is regulated through the use of an instruction card sent along the production line. @@ -8,35 +10,35 @@ In ERPNext Kanban board can be an alternative for the list views. It helps you i To create a Kanban board in ERPNext click the Kanban dropdown on the sidebar, and select New Kanban Board. -Add New Kanban Board +Add New Kanban Board ###Add new Card/Document To add Cards on Kanban Board click Add Tasks. You can Edit a card details by click on the card and it will take you to the Task Doctype where you can further add and edit card details. -Add card in Kanban Board +Add card in Kanban Board ###Update Cards/Document Status Based on the Task status you can drag and drop the Cards in the respective column. For example if the task is work in progress you can move the card for the task from the status Open to Working. -Move Cards on Kanban Board +Move Cards on Kanban Board ###Manage Columns To add more columns in the Kanban board click Add columns. -Add New column in Kanban Board +Add New column in Kanban Board To move columns based on the priority drag and drop the columns as per requirement. -Move columns in Kanban Board +Move columns in Kanban Board To set Colors to a Card click drop down menu on the card and assign color to it. -Add color to cards in Kanban Board +Add color to cards in Kanban Board You can also Archive and Restore the columns added in a Kanban board. To do so click Archive in drop down menu on the card. Once archived you can restore the column from the list of the archived columns in the Kanban board. -Archive and Restore in Kanban Board +Archive and Restore in Kanban Board diff --git a/erpnext/docs/user/manual/en/customize-erpnext/print-format.md b/erpnext/docs/user/manual/en/customize-erpnext/print-format.md index 123a613298..993f92ad58 100644 --- a/erpnext/docs/user/manual/en/customize-erpnext/print-format.md +++ b/erpnext/docs/user/manual/en/customize-erpnext/print-format.md @@ -1,3 +1,5 @@ +# Print Format + Print Formats are the layouts that are generated when you want to Print or Email a transaction like a Sales Invoice. There are two types of Print Formats, @@ -16,7 +18,7 @@ To create your own versions, open an existing template from: `Setup > Printing > Print Formats` -Print Format +Print Format Select the type of Print Format you want to edit and click on the “Copy” button on the right column. A new Print Format will open up with “Is Standard” @@ -43,7 +45,7 @@ To edit / update your print and PDF settings, go to: `Setup > Printing and Branding > Print Settings` -Print Format +Print Format #### Example diff --git a/erpnext/docs/user/manual/en/fleet_management/index.md b/erpnext/docs/user/manual/en/fleet_management/index.md index 8ae3b7cc5a..4582716cf9 100644 --- a/erpnext/docs/user/manual/en/fleet_management/index.md +++ b/erpnext/docs/user/manual/en/fleet_management/index.md @@ -1,3 +1,5 @@ +# Fleet Management + Fleet Management module helps your Organization manage their fleet of vehicles and track their expenses. To use Fleet Management in ERPNext, @@ -17,15 +19,15 @@ ERPNext > Vehicle * Enter License Plate,Make,Model,Odometer Value,Fuel Type and Fuel UOM for a quick entry. - Vehicle + Vehicle * Enter details like Insurance,Chassis,Vehicle Value,Location and Employee. - Vehicle + Vehicle * Enter Vehicle attributes like color,wheels,doors and last carbon check - Vehicle + Vehicle ### Vehicle Log @@ -37,17 +39,17 @@ ERPNext > Vehicle Log * Enter License Plate,Employee,Date,Odometer reading for a quick entry. - Vehicle Log + Vehicle Log * Enter Refuelling details,Service details if applicable. - Vehicle Log + Vehicle Log ### Make Expense Claim * Click on Make Expense Claim button .This button appears only in case of Submitted Vehicle Logs. - Vehicle Log + Vehicle Log When you click on 'Make Expense Claim', @@ -55,10 +57,10 @@ When you click on 'Make Expense Claim', 2. The sum of Fuel Expenses and Service Expenses is copied over to Expense Claim Amount. 3. Employee can submit the Expense Claim for further processing. - Vehicle Log + Vehicle Log ### Vehicle Expenses Report * To track and monitor Vehicle Expenses you can use the Vehicle Expenses report.This report gives a one stop view of all your vehicle expenses month wise. - Vehicle Log + Vehicle Log diff --git a/erpnext/docs/user/manual/en/human-resources/appraisal.md b/erpnext/docs/user/manual/en/human-resources/appraisal.md index d3ec301311..6ecb89806c 100644 --- a/erpnext/docs/user/manual/en/human-resources/appraisal.md +++ b/erpnext/docs/user/manual/en/human-resources/appraisal.md @@ -1,3 +1,5 @@ +# Appraisal + In ERPNext, you can manage Employee Appraisals by creating an Appraisal Template for each role with the parameters that define the performance by giving appropriate weightage to each parameter. @@ -6,13 +8,13 @@ giving appropriate weightage to each parameter. #### Step 1: Select an Appraisal Template -Appraisal +Appraisal After you select the template, the remaining form appears. #### Step 2: Enter Employee Details -Appraisal +Appraisal Once the Appraisal Template is completed, you can create Appraisal records for each period where you track performance. You can give points out of 5 for each diff --git a/erpnext/docs/user/manual/en/human-resources/articles/employees-loan-management.md b/erpnext/docs/user/manual/en/human-resources/articles/employees-loan-management.md index d5c4d00715..a24ca93f02 100644 --- a/erpnext/docs/user/manual/en/human-resources/articles/employees-loan-management.md +++ b/erpnext/docs/user/manual/en/human-resources/articles/employees-loan-management.md @@ -10,15 +10,15 @@ Create following Groups and Ledgers in Chart of Accounts if not there. #### 1.1 Employee Loan Account -Create Group as 'Employees Loans' under Current Assets and create employee loan A/C (Ledger) under it. [Check this link for new account creation]({{docs_base_url}}/user/manual/en/setting-up/articles/managing-tree-structure-masters) +Create Group as 'Employees Loans' under Current Assets and create employee loan A/C (Ledger) under it. [Check this link for new account creation](/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters) -![CoA]({{docs_base_url}}/assets/img/articles/Selection_433.png) +![CoA](/docs/assets/img/articles/Selection_433.png) #### 1.2 Salaries Account Create Group as 'Salaries' under Current Liabilities and create employee salary loan A/C (Ledger) under it. -![CoA]({{docs_base_url}}/assets/img/articles/Selection_434.png) +![CoA](/docs/assets/img/articles/Selection_434.png) #### 1.3 Interest Account @@ -28,7 +28,7 @@ Create Ledger as 'Interest on Loan' under Indirect Income. Once loan amount is finalized, make journal voucher to book loan payment entry. You should Credit Loan amount to Bank/Cash account and Debit Loan amount employee loan account. -![Loan Entry]({{docs_base_url}}/assets/img/articles/Selection_435.png) +![Loan Entry](/docs/assets/img/articles/Selection_435.png) ### 3. Book Loan Recovery and Interest @@ -36,13 +36,13 @@ Once loan amount is finalized, make journal voucher to book loan payment entry. If your employee pays separately for his/her loan installment and loan interest, then create journal voucher. -![Loan Reco]({{docs_base_url}}/assets/img/articles/Selection_436.png) +![Loan Reco](/docs/assets/img/articles/Selection_436.png) #### 3.2 Loan Adjustment in Salary And if you deduct loan installment and interest from employees salary, then book journal entry for the same. -![Loan Reco]({{docs_base_url}}/assets/img/articles/Selection_437.png) +![Loan Reco](/docs/assets/img/articles/Selection_437.png) In the Salary Slip of an employee, then create two Deduction Types in Salary Structure. One as 'Loan Installment' and other one as 'Loan Interest'. So that you can update those values under this deduction heads. @@ -50,6 +50,6 @@ In the Salary Slip of an employee, then create two Deduction Types in Salary Str After recovering loan and loan interest, General Ledger report will show the loan account details as follows. -![Loan Reco]({{docs_base_url}}/assets/img/articles/Selection_439.png) +![Loan Reco](/docs/assets/img/articles/Selection_439.png) diff --git a/erpnext/docs/user/manual/en/human-resources/articles/index.md b/erpnext/docs/user/manual/en/human-resources/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/human-resources/articles/index.md +++ b/erpnext/docs/user/manual/en/human-resources/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/articles/leave-calculation-in-salary-slip.md b/erpnext/docs/user/manual/en/human-resources/articles/leave-calculation-in-salary-slip.md index 715370838a..7fb045c738 100644 --- a/erpnext/docs/user/manual/en/human-resources/articles/leave-calculation-in-salary-slip.md +++ b/erpnext/docs/user/manual/en/human-resources/articles/leave-calculation-in-salary-slip.md @@ -27,7 +27,7 @@ a scenario to understand how leaves impact employees Salary Slip.
  • Create Holiday List (if any), and link it with Employee master.
  • When creating Salary Slip for an Employee, following is what you will see:

    - +

    Working Days: Working Days in Salary Slip are calculated based on number of days selected above. If you don't wish to consider holiday in Working Days, then you should do following setting.
    @@ -46,7 +46,7 @@ Leave Type as "Leave Without Pay".
    As indicated above, if you have LWP checked for components in the earning and deducted table, you will notice a reduction in Amount based on no. of LWP of an Employee for that month.

    -
    +
    \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/attendance.md b/erpnext/docs/user/manual/en/human-resources/attendance.md index b180d233ba..1cd5ad3700 100644 --- a/erpnext/docs/user/manual/en/human-resources/attendance.md +++ b/erpnext/docs/user/manual/en/human-resources/attendance.md @@ -1,15 +1,17 @@ +# Attendance + An Attendance record stating that an Employee has been present on a particular day can be created manually by: > Human Resources > Documents > Attendance > New Attendance -Attendence +Attendence You can get a monthly report of your Attendance data by going to the “Monthly Attendance Details” report. -You can easily set attendance for Employees using the [Employee Attendance Tool]({{docs_base_url}}/user/manual/en/human-resources/tools/employee-attendance-tool.html) +You can easily set attendance for Employees using the [Employee Attendance Tool](/docs/user/manual/en/human-resources/tools/employee-attendance-tool.html) -You can also bulk upload attendence using the [Upload Attendence Tool]({{docs_base_url}}/user/manual/en/human-resources/tools/upload-attendance.html) +You can also bulk upload attendence using the [Upload Attendence Tool](/docs/user/manual/en/human-resources/tools/upload-attendance.html) {next} diff --git a/erpnext/docs/user/manual/en/human-resources/daily-work-summary.md b/erpnext/docs/user/manual/en/human-resources/daily-work-summary.md index d3ba22a828..6ae15e0acc 100644 --- a/erpnext/docs/user/manual/en/human-resources/daily-work-summary.md +++ b/erpnext/docs/user/manual/en/human-resources/daily-work-summary.md @@ -12,4 +12,4 @@ Go to "Daily Work Summary Settings" via HR module or search bar and set the comp You can also choose to Customize the Message you send to your employees: -Department +Department diff --git a/erpnext/docs/user/manual/en/human-resources/employee-loan-management.md b/erpnext/docs/user/manual/en/human-resources/employee-loan-management.md index b76a2260c7..28d28b5dc2 100644 --- a/erpnext/docs/user/manual/en/human-resources/employee-loan-management.md +++ b/erpnext/docs/user/manual/en/human-resources/employee-loan-management.md @@ -10,7 +10,7 @@ To create a new Loan Type go to: Configure Loan limit and Rate of interest. -Loan Type +Loan Type ### Employee Loan Application @@ -18,7 +18,7 @@ Employee can apply for loan by going to: > Human Resources > Employee Loan Management > Employee Loan Application > New Employee Loan Application -Employee Loan Application +Employee Loan Application #### In the Employee Loan Application, @@ -27,7 +27,7 @@ Employee can apply for loan by going to: On save, Employee can see Repayment Information and make changes if required before submitting. -Employee Loan Application +Employee Loan Application ### Employee Loan @@ -35,7 +35,7 @@ Once the Loan is approved, Manager can create Employee Loan record for the Emplo > Human Resources > Employee Loan Management > Employee Loan > New Employee Loan -Employee Loan Application +Employee Loan Application #### In the Employee Loan, @@ -44,13 +44,13 @@ Once the Loan is approved, Manager can create Employee Loan record for the Emplo * Enter Disbursement Date and Account Info * As soon as you hit save, the repayment schedule is generated. -repayment Schedule +repayment Schedule #### Loan repayment deduction from Salary To auto deduct the Loan repayment from Salary, check "Repay from Salary" in Employee Loan. It will appear as Loan repayment in Salary Slip. -Salary Slip +Salary Slip \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/employee.md b/erpnext/docs/user/manual/en/human-resources/employee.md index fd14aa90d3..99cc687828 100644 --- a/erpnext/docs/user/manual/en/human-resources/employee.md +++ b/erpnext/docs/user/manual/en/human-resources/employee.md @@ -1,9 +1,11 @@ +# Employee + There are many fields you can add in your Employee records. To create new Employee go to: > Human Resources > Employee > New -Employee +Employee {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/expense-claim.md b/erpnext/docs/user/manual/en/human-resources/expense-claim.md index 1d4996dabc..2d7432f639 100644 --- a/erpnext/docs/user/manual/en/human-resources/expense-claim.md +++ b/erpnext/docs/user/manual/en/human-resources/expense-claim.md @@ -1,23 +1,25 @@ +# Expense Claim + Expense Claim is made when Employee’s make expenses out of their pocket on behalf of the company. For example, if they take a customer out for lunch, they can make a request for reimbursement via the Expense Claim form. To make a new Expense Claim, go to: > HR > Expense Claim > New Expense Claim -Expense Claim +Expense Claim Set the Employee ID, date and the list of expenses that are to be claimed and “Submit” the record. ### Set Account for Employee Set employee's expense account on the employee form, system books an expense amount of an employee under this account. -Expense Claim +Expense Claim ### Approving Expenses Approver for the Expense Claim is selected by an Employee himself. Users to whom `Expense Approver` role is assigned will shown in the Expense Claim Approver field. -After saving Expense Claim, Employee should [Assign document to Approver]({{docs_base_url}}/user/manual/en/using-eprnext/assignment.html). On assignment, approving user will also receive email notification. To automate email notification, you can also setup [Email Alert]({{docs_base_url}}/user/manual/en/setting-up/email/email-alerts.html). +After saving Expense Claim, Employee should [Assign document to Approver](/docs/user/manual/en/using-eprnext/assignment.html). On assignment, approving user will also receive email notification. To automate email notification, you can also setup [Email Alert](/docs/user/manual/en/setting-up/email/email-alerts.html). Expense Claim Approver can update the “Sanctioned Amounts” against Claimed Amount of an Employee. If submitting, Approval Status should be submitted to Approved or Rejected. If Approved, then Expense Claim gets submitted. If rejected, then Expen Comments can be added in the Comments section explaining why the claim was approved or rejected. @@ -25,27 +27,34 @@ Comments can be added in the Comments section explaining why the claim was appro ### Booking the Expense On submission of Expense Claim, system books an expense against the expense account and the employee account -Expense Claim +Expense Claim User can view unpaid expense claim using report "Unclaimed Expense Claims" -Expense Claim +Expense Claim ### Payment for Expense Claim To make payment against the expense claim, user has to click on Make > Bank Entry #### Expense Claim -Expense Claim +Expense Claim #### Payment Entry Expense Claim - Note: This amount should not be clubbed with Salary because the amount will then be taxable to the Employee. +Alternatively, a Payment Entry can be made for an employee and all outstanding Expense Claims will be pulled in. + +> Accounts > Payment Entry > New Payment Entry + +Set the Payment Type to "Pay", the Party Type to Employee, the Party to the employee being paid and the account being paid +from. All outstanding expense claims will be pulled in and payments amounts can be allocated to each expense. +Expense Claim + ### Linking with Task & Project * To Link Expense Claim with Task or Project specify the Task or the Project while making an Expense Claim -Expense Claim - Project Link +Expense Claim - Project Link {next} diff --git a/erpnext/docs/user/manual/en/human-resources/fleet-management.md b/erpnext/docs/user/manual/en/human-resources/fleet-management.md index e55caa551d..d7c4564481 100644 --- a/erpnext/docs/user/manual/en/human-resources/fleet-management.md +++ b/erpnext/docs/user/manual/en/human-resources/fleet-management.md @@ -1,3 +1,5 @@ +# Fleet Management + Fleet Management section of Human Resources helps your Organization manage their fleet of vehicles and track their expenses. To use Fleet Management in ERPNext, @@ -17,15 +19,15 @@ Human Resources > Fleet Management > Vehicle * Enter License Plate, Make, Model, Odometer Value, Fuel Type and Fuel UOM for a quick entry. - Vehicle + Vehicle * Enter details like Insurance, Chassis, Vehicle Value, Location and Employee. - Vehicle + Vehicle * Enter Vehicle attributes like color, wheels, doors and last carbon check - Vehicle + Vehicle ### Vehicle Log @@ -37,17 +39,17 @@ Human Resources > Fleet Management > Vehicle Log * Enter License Plate, Employee, Date, Odometer reading for a quick entry. - Vehicle Log + Vehicle Log * Enter Refueling details, Service details if applicable. - Vehicle Log + Vehicle Log ### Make Expense Claim * Click on Make Expense Claim button. This button appears only in case of Submitted Vehicle Logs. - Vehicle Log + Vehicle Log When you click on 'Make Expense Claim', @@ -55,10 +57,10 @@ When you click on 'Make Expense Claim', 2. The sum of Fuel Expenses and Service Expenses is copied over to Expense Claim Amount. 3. Employee can submit the Expense Claim for further processing. - Vehicle Log + Vehicle Log ### Vehicle Expenses Report * To track and monitor Vehicle Expenses you can use the Vehicle Expenses report.This report gives a one stop view of all your vehicle expenses month wise. - Vehicle Log + Vehicle Log 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 c1e76f1924..0c0463d5ae 100644 --- a/erpnext/docs/user/manual/en/human-resources/holiday-list.md +++ b/erpnext/docs/user/manual/en/human-resources/holiday-list.md @@ -1,3 +1,5 @@ +# Holiday List + #Holiday List Holiday List is a list which contains the dates of holidays. @@ -14,22 +16,22 @@ Click on New to add 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 +Holiday List You can quickly add Weekly Off in the Holiday List as following. -Holiday List +Holiday List After that, you can also add specific days (like festival holidays) manually. -Holiday List +Holiday List ### Holiday List in Employee If you have created multiple Holiday List, then select specific Holiday List for an Employee in the respective master. -Holiday List +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`. diff --git a/erpnext/docs/user/manual/en/human-resources/human-resource-setup.md b/erpnext/docs/user/manual/en/human-resources/human-resource-setup.md index 8f29974206..88b2d288f0 100644 --- a/erpnext/docs/user/manual/en/human-resources/human-resource-setup.md +++ b/erpnext/docs/user/manual/en/human-resources/human-resource-setup.md @@ -1,3 +1,5 @@ +# Human Resource Setup + The HR module has a setup process where you create the masters for all the major activities. diff --git a/erpnext/docs/user/manual/en/human-resources/human-resources-reports.md b/erpnext/docs/user/manual/en/human-resources/human-resources-reports.md index 248a49a33a..406dbdaca8 100644 --- a/erpnext/docs/user/manual/en/human-resources/human-resources-reports.md +++ b/erpnext/docs/user/manual/en/human-resources/human-resources-reports.md @@ -4,37 +4,37 @@ Employee Leave Balance Report shows employees and their respective balance leaves under various leave types. Report is generated as per the number of allowed leaves. -Employee Leave Balance +Employee Leave Balance ### Employee Birthday Employee Birthday Report shows Birthdays of your employees. -Employee Birthday +Employee Birthday ### Employee Information Employee Information Report shows Report View of important information recorded in Employee master. -Employee Information +Employee Information ### Employee Holiday Attendance Employee Holiday Attendance shows the list of Employees who attended on Holidays. -Employee Information +Employee Information ### Monthly Salary Register Monthly Salary Register shows net pay and its components of employee(s) at a glance. -Monthly Salary Register +Monthly Salary Register ### Monthly Attendance Sheet Monthly Attendance Sheet shows monthly attendance of selected employee at a glance. -Monthly Attendance Sheet +Monthly Attendance Sheet {next} diff --git a/erpnext/docs/user/manual/en/human-resources/index.md b/erpnext/docs/user/manual/en/human-resources/index.md index 02fcfc6334..5191505a85 100644 --- a/erpnext/docs/user/manual/en/human-resources/index.md +++ b/erpnext/docs/user/manual/en/human-resources/index.md @@ -1,3 +1,5 @@ +# Human Resources + The Human Resources (HR) Module covers the processes linked to managing a team of co-workers. Most important feature here is processing the payroll by using Process Payroll to generate Salary Slips. Most countries have complex tax diff --git a/erpnext/docs/user/manual/en/human-resources/job-applicant.md b/erpnext/docs/user/manual/en/human-resources/job-applicant.md index 767780fe0a..d13cf19f46 100644 --- a/erpnext/docs/user/manual/en/human-resources/job-applicant.md +++ b/erpnext/docs/user/manual/en/human-resources/job-applicant.md @@ -1,10 +1,12 @@ -You can mantain a list of People who have applied for a [Job Opening]({{docs_base_url}}/user/manual/en/human-resources/job-opening.html). +# Job Applicant + +You can mantain a list of People who have applied for a [Job Opening](/docs/user/manual/en/human-resources/job-opening.html). To create a new Job Applicant go to > Human Resource > Job Applicant > New -Job Applicant +Job Applicant ### Linking with an Email Account @@ -20,6 +22,6 @@ system shall create a New Job Applicant against each email received on the mailb * In 'Append To' select 'Job Applicant' -Email Account +Email Account {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/job-opening.md b/erpnext/docs/user/manual/en/human-resources/job-opening.md index 7e4f0c313d..e198cafc1c 100644 --- a/erpnext/docs/user/manual/en/human-resources/job-opening.md +++ b/erpnext/docs/user/manual/en/human-resources/job-opening.md @@ -1,10 +1,12 @@ +# Job Opening + You can make a record of the open vacancies in your company using Job Opening. To create a new Job Opening go to > Human Resource > Job Opening > New -Job Opening +Job Opening {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/leave-application.md b/erpnext/docs/user/manual/en/human-resources/leave-application.md index 824cd047e7..438dbba428 100644 --- a/erpnext/docs/user/manual/en/human-resources/leave-application.md +++ b/erpnext/docs/user/manual/en/human-resources/leave-application.md @@ -1,3 +1,5 @@ +# Leave Application + If your company has a formal system where Employees have to apply for leaves to be able to qualify as paid leaveas, you can create Leave Application to track approval and usage of leaves. You have to mention the Employee, Leave @@ -5,7 +7,7 @@ Type and the period for which the leave is taken. > Human Resources > Leave Application > New Leave Application -Leave Application +Leave Application ###Setting Leave Approver @@ -13,12 +15,12 @@ Type and the period for which the leave is taken. * You need to mention a list of Leave Approvers against an Employee in the Employee Master. -Leave Approver +Leave Approver > Tip : If you want all users to create their own Leave Applications, you can set their “Employee ID” as a match rule in the Leave Application Permission -settings. See the earlier discussion on [Setting Up Permissions]({{docs_base_url}}/user/manual/en/setting-up/users-and-permissions/user-permissions.html) +settings. See the earlier discussion on [Setting Up Permissions](/docs/user/manual/en/setting-up/users-and-permissions/user-permissions.html) for more info. -You assign Leaves aginast an Employee check [Leave Allocation]({{docs_base_url}}/user/manual/en/human-resources/leave.html) +You assign Leaves aginast an Employee check [Leave Allocation](/docs/user/manual/en/human-resources/leave.html) {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/leave.md b/erpnext/docs/user/manual/en/human-resources/leave.md index 5b32a2b34d..cd81269896 100644 --- a/erpnext/docs/user/manual/en/human-resources/leave.md +++ b/erpnext/docs/user/manual/en/human-resources/leave.md @@ -1,3 +1,5 @@ +# Leave + #Overview This section enables you to manage leave schedule of your organization. It also explains the way employees can apply for leaves. Employees create leave request and manager (leave approver) approves or rejects the request. You can select from a number of leave types such as sick leave, casual leave, privilege leave and so on. You can also allocate leaves to your employees and generate reports to track leaves record. @@ -12,7 +14,7 @@ Leave Type refers to types of leave allotted to an employee by a company. An emp requirement. New Leave Type + src="/docs/assets/img/human-resources/new-leave-type.png"> **Max Days Leave Allowed:** It refers to maximum number of days this particular Leave Type can be availed at a stretch. If an employee exceeds the maximum number of days under a particular Leave Type, his/her extended leave may be considered as ‘Leave Without Pay’ and this may affect his/her salary calculation. @@ -45,7 +47,7 @@ Leave Allocation enables you to allot a specific number of leaves to a particula To allocate leaves to an Employee, select the period and the number of leaves you want to allocate. You can also add unused leaves from previous allocation period. Manual Leave Allocation + src="/docs/assets/img/human-resources/manual-leave-allocation.png"> ###Via Leave Allocation Tool > Human Resources > Tools > Leave Allocation Tool @@ -53,7 +55,7 @@ To allocate leaves to an Employee, select the period and the number of leaves yo This tool enables you to allocate leaves for a category of employees, instead of individual ones. You can allocate leaves based on Employee Type, Branch, Department and Designation. Leave Allocation Tool is also known as Leave Control Panel. Leave Allocation Tool + src="/docs/assets/img/human-resources/leave-allocation-tool.png"> --- @@ -71,7 +73,7 @@ Leave Application section enables an employee to apply for leaves. Employee can - Employee gets notification on the status of his/her Leave Application Leave Allocation Tool + src="/docs/assets/img/human-resources/new-leave-application.png"> **Notes:** @@ -89,4 +91,4 @@ Leave Application section enables an employee to apply for leaves. Employee can Leave Block List is a list of dates in a year, on which employees can not apply for leave. You can define a list of users who can approve Leave Application on blocked days, in case of urgency. You can also define whether the list will applied on entire company or any specific departments. Leave Allocation Tool \ No newline at end of file + src="/docs/assets/img/human-resources/leave-block-list.png"> \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/offer-letter.md b/erpnext/docs/user/manual/en/human-resources/offer-letter.md index 9e8c96622d..1df1a38c54 100644 --- a/erpnext/docs/user/manual/en/human-resources/offer-letter.md +++ b/erpnext/docs/user/manual/en/human-resources/offer-letter.md @@ -1,3 +1,5 @@ +# Offer Letter + Offer Letter is given to candidate after Interview & selection which states the offered salary package, designation, grade, department working, no of days entitled for leave. @@ -5,12 +7,12 @@ In ERPNext you can make a record of the Offer Letters that you can given to cand > Human Resource > Offer Letter > New -Offer Letter +Offer Letter -> Note: An offer letter can be made only against a [Job Applicant]({{docs_base_url}}/user/manual/en/human-resources/job-applicant.html) +> Note: An offer letter can be made only against a [Job Applicant](/docs/user/manual/en/human-resources/job-applicant.html) There is a pre-designed print format to print you offer letter. -Offer Letter +Offer Letter {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/salary-and-payroll.md b/erpnext/docs/user/manual/en/human-resources/salary-and-payroll.md index 48ff96b405..e902617db5 100644 --- a/erpnext/docs/user/manual/en/human-resources/salary-and-payroll.md +++ b/erpnext/docs/user/manual/en/human-resources/salary-and-payroll.md @@ -1,3 +1,5 @@ +# Salary And Payroll + Salary is a fixed amount of money or compensation paid to an employee by an employer in return for the work performed . Payroll is the administration of financial records of employees' salaries, wages, bonuses, net pay, and deductions. @@ -44,7 +46,7 @@ To create a new Salary Structure go to: #### Figure 1.1:Salary Structure -Salary Structure +Salary Structure ### In the Salary Structure, @@ -53,7 +55,7 @@ To create a new Salary Structure go to: #### Figure 1.2:Salary Structure for Salary Slip based on Timesheet -Salary Structure +Salary Structure ### Salary Slip Based on Timesheet @@ -70,20 +72,20 @@ In the “Earnings” and “Deductions” tables, you can calculate the values #### Figure 1.3:Condition and Formula -Salary Structure +Salary Structure * Condition and Amount #### Figure 1.4:Condition and Amount -Salary Structure +Salary Structure * Only Formula * Only Amount #### Figure 1.5:Account Details -Salary Structure +Salary Structure * Select Mode of Payment and Payment Account for the Salary Slips which will be generated using this Salary Structure @@ -121,7 +123,7 @@ To create a new Salary Slip go to: #### Figure 2: Salary Slip -Salary Slip +Salary Slip You can also create salary slip for multiple employees using Process Payroll: @@ -129,7 +131,7 @@ You can also create salary slip for multiple employees using Process Payroll: #### Figure 3: Process Payroll -Process Payroll +Process Payroll In Process Payroll, @@ -164,7 +166,7 @@ created. #### Figure 3.1: Make Bank Entry -Process Payroll +Process Payroll {next} diff --git a/erpnext/docs/user/manual/en/human-resources/setup/branch.md b/erpnext/docs/user/manual/en/human-resources/setup/branch.md index 8116ca4c11..75c0c43082 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/branch.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/branch.md @@ -1,5 +1,7 @@ +# Branch + Branches of your organization -Branch +Branch {next} diff --git a/erpnext/docs/user/manual/en/human-resources/setup/deduction-type.md b/erpnext/docs/user/manual/en/human-resources/setup/deduction-type.md index 4371b624ed..39e7e2a32e 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/deduction-type.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/deduction-type.md @@ -1,10 +1,12 @@ +# Deduction Type + You can make a record of the tax and other salary deductions and describe it as Deduction Type To create a new Deduction Type > Human Resource > Setup > Deduction Type > New -Deduction Type +Deduction Type {next} diff --git a/erpnext/docs/user/manual/en/human-resources/setup/department.md b/erpnext/docs/user/manual/en/human-resources/setup/department.md index 1b088b158f..9eb4245175 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/department.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/department.md @@ -1,5 +1,7 @@ +# Department + Departments in your organization -Department +Department {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/setup/designation.md b/erpnext/docs/user/manual/en/human-resources/setup/designation.md index 1de779e7b3..5ac771f8ff 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/designation.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/designation.md @@ -1,5 +1,7 @@ +# Designation + Designations in your organization -Designation +Designation {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/setup/earning-type.md b/erpnext/docs/user/manual/en/human-resources/setup/earning-type.md index e5c35c6e1c..17586631e9 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/earning-type.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/earning-type.md @@ -1,10 +1,12 @@ +# Earning Type + You can make a record of the Salary Components and describe it as Earning Type To create a new Earning Type > Human Resource > Setup > Earning Type > New -Earning Type +Earning Type {next} diff --git a/erpnext/docs/user/manual/en/human-resources/setup/employment-type.md b/erpnext/docs/user/manual/en/human-resources/setup/employment-type.md index 37d0fd3973..de07ac9fc8 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/employment-type.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/employment-type.md @@ -1,5 +1,7 @@ +# Employment Type + Various employment contracts you have with your employees. -Employment Type +Employment Type {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/setup/hr-settings.md b/erpnext/docs/user/manual/en/human-resources/setup/hr-settings.md index 1741df4a5f..a12bcdbd8f 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/hr-settings.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/hr-settings.md @@ -2,6 +2,6 @@ GLobal settings for HR related documents -HR Settings +HR Settings {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/setup/index.md b/erpnext/docs/user/manual/en/human-resources/setup/index.md index 0dff60b400..59ddddf515 100644 --- a/erpnext/docs/user/manual/en/human-resources/setup/index.md +++ b/erpnext/docs/user/manual/en/human-resources/setup/index.md @@ -1 +1,3 @@ +# Setup + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/tools/employee-attendance-tool.md b/erpnext/docs/user/manual/en/human-resources/tools/employee-attendance-tool.md index f0d6e5f9e8..dfc350e17a 100644 --- a/erpnext/docs/user/manual/en/human-resources/tools/employee-attendance-tool.md +++ b/erpnext/docs/user/manual/en/human-resources/tools/employee-attendance-tool.md @@ -1,9 +1,11 @@ +# Employee Attendance Tool + To go the attendance tool, go to: > Human Resources > Tools > Employee Attendance Tool This tool allows you to add attendance records for multiple employees quickly. -Attendence upload +Attendence upload {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/tools/index.md b/erpnext/docs/user/manual/en/human-resources/tools/index.md index 0dff60b400..79547ee555 100644 --- a/erpnext/docs/user/manual/en/human-resources/tools/index.md +++ b/erpnext/docs/user/manual/en/human-resources/tools/index.md @@ -1 +1,3 @@ +# Tools + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/tools/upload-attendance.md b/erpnext/docs/user/manual/en/human-resources/tools/upload-attendance.md index adfc66d116..7a45002fa6 100644 --- a/erpnext/docs/user/manual/en/human-resources/tools/upload-attendance.md +++ b/erpnext/docs/user/manual/en/human-resources/tools/upload-attendance.md @@ -1,9 +1,11 @@ +# Upload Attendance + This tool helps you to upload bulk attendence from a csv file. To upload the attendance go to: > Human Resources > Upload Attendance -Attendence upload +Attendence upload {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/human-resources/training.md b/erpnext/docs/user/manual/en/human-resources/training.md index 5d55b6c7aa..39b9790246 100644 --- a/erpnext/docs/user/manual/en/human-resources/training.md +++ b/erpnext/docs/user/manual/en/human-resources/training.md @@ -1,8 +1,10 @@ +# Training + ### Training Event Schedule seminars, workshops, conferences etc using Training Event. You can also invite your employees to attend the event using this feature. -Employee +Employee ### Inviting Employees for Event @@ -12,17 +14,17 @@ The system shall notify the employee with status 'Open' by sending a email to th The status is changed to 'Invited' when an invitation email is sent to the employee by the system. When an Employee confirms his/her presence for the event you can change the status to 'Confirmed'. -Employee +Employee ### Training Result After compleation of the training Employee Wise training results can be stored based on the Feedback received from the Trainer. -Employee +Employee ### Trainig Feedback Collect feedback regarding the event from your Employees using Training Feedback. -Employee +Employee diff --git a/erpnext/docs/user/manual/en/introduction/concepts-and-terms.md b/erpnext/docs/user/manual/en/introduction/concepts-and-terms.md index 7e261b85e6..3a51286542 100644 --- a/erpnext/docs/user/manual/en/introduction/concepts-and-terms.md +++ b/erpnext/docs/user/manual/en/introduction/concepts-and-terms.md @@ -1,3 +1,5 @@ +# Concepts And Terms + Before you start implementation, lets get familiar with the terminology that is used and some basic concepts in ERPNext. diff --git a/erpnext/docs/user/manual/en/introduction/do-i-need-an-erp.md b/erpnext/docs/user/manual/en/introduction/do-i-need-an-erp.md index 0c2a0a5e48..278804d4a1 100644 --- a/erpnext/docs/user/manual/en/introduction/do-i-need-an-erp.md +++ b/erpnext/docs/user/manual/en/introduction/do-i-need-an-erp.md @@ -1,3 +1,5 @@ +# Do I Need An Erp + ERPNext is a modern tool that covers not only accounting but also all other business functions, on an integrated platform. It has many benefits over both traditional accounting as well as ERP applications. diff --git a/erpnext/docs/user/manual/en/introduction/getting-started-with-erpnext.md b/erpnext/docs/user/manual/en/introduction/getting-started-with-erpnext.md index 7e783f679b..4aae00ed05 100644 --- a/erpnext/docs/user/manual/en/introduction/getting-started-with-erpnext.md +++ b/erpnext/docs/user/manual/en/introduction/getting-started-with-erpnext.md @@ -1,3 +1,9 @@ +# Getting Started With Erpnext + + + +# Getting Started with ERPNext + There are many ways to get started with ERPNext. ### 1\. See the Demo @@ -10,7 +16,7 @@ see the demo at: ### 2\. Start a Free Account at ERPNext.com -ERPNext.com is managed by the organization (Frappe) that publishes ERPNext. +ERPNext.com is managed by the organization (Frappé) that publishes ERPNext. You can start with your own account by [signing up on the website](https://erpnext.com). @@ -30,6 +36,6 @@ Image](https://erpnext.com/download) ### 4\. Install ERPNext on your Unix/Linux/Mac machine -If you are familiar with installing applications on *nix platforms, read the instructions on how to install using [Frappe Bench](https://github.com/frappe/bench). +If you are familiar with installing applications on *nix platforms, read the instructions on how to install using [Frappé Bench](https://github.com/frappe/bench). {next} diff --git a/erpnext/docs/user/manual/en/introduction/implementation-strategy.md b/erpnext/docs/user/manual/en/introduction/implementation-strategy.md index bc494ca1f0..0a108716de 100644 --- a/erpnext/docs/user/manual/en/introduction/implementation-strategy.md +++ b/erpnext/docs/user/manual/en/introduction/implementation-strategy.md @@ -1,3 +1,5 @@ +# Implementation Strategy + Before you start managing your Operations in EPRNext, you must first become familiar with the system and the terms used. For this we recommend implementation should happen in two phases. diff --git a/erpnext/docs/user/manual/en/introduction/index.md b/erpnext/docs/user/manual/en/introduction/index.md index f1bcb49366..fcaf43e82a 100644 --- a/erpnext/docs/user/manual/en/introduction/index.md +++ b/erpnext/docs/user/manual/en/introduction/index.md @@ -1,3 +1,5 @@ +# Introduction + ## What is an ERP and why should I care? (If you are already convinced you need an all-in-one system for your diff --git a/erpnext/docs/user/manual/en/introduction/key-workflows.md b/erpnext/docs/user/manual/en/introduction/key-workflows.md index bb032696d5..91960143e2 100644 --- a/erpnext/docs/user/manual/en/introduction/key-workflows.md +++ b/erpnext/docs/user/manual/en/introduction/key-workflows.md @@ -3,10 +3,10 @@ This diagram covers how ERPNext tracks your company information across key functions. This diagram does not cover all the features of ERPNext. -![]({{docs_base_url}}/assets/old_images/erpnext/overview.png) +![](/docs/assets/old_images/erpnext/overview.png) -Workflow +Workflow _Note: Not all of the steps are mandatory. ERPNext allows you to freely skip steps if you want to simplify the process._ diff --git a/erpnext/docs/user/manual/en/introduction/open-source.md b/erpnext/docs/user/manual/en/introduction/open-source.md index 0089ba8e12..18d61defa3 100644 --- a/erpnext/docs/user/manual/en/introduction/open-source.md +++ b/erpnext/docs/user/manual/en/introduction/open-source.md @@ -1,3 +1,5 @@ +# Open Source + The source code is an Open Source software. It is open for anyone to understand, extend or improve. And it is free! diff --git a/erpnext/docs/user/manual/en/introduction/the-champion.md b/erpnext/docs/user/manual/en/introduction/the-champion.md index 4d75abb6e6..57086cb9fb 100644 --- a/erpnext/docs/user/manual/en/introduction/the-champion.md +++ b/erpnext/docs/user/manual/en/introduction/the-champion.md @@ -1,8 +1,10 @@ +# The Champion +

    The Champion

    -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/manufacturing/articles/index.md b/erpnext/docs/user/manual/en/manufacturing/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/manufacturing/articles/index.md +++ b/erpnext/docs/user/manual/en/manufacturing/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/manufacturing/articles/nested-bom-structure.md b/erpnext/docs/user/manual/en/manufacturing/articles/nested-bom-structure.md index 3f507afd35..1e8b2bdb25 100644 --- a/erpnext/docs/user/manual/en/manufacturing/articles/nested-bom-structure.md +++ b/erpnext/docs/user/manual/en/manufacturing/articles/nested-bom-structure.md @@ -1,3 +1,5 @@ +# Nested Bom Structure + #Nested BOM Structure **Question:** Our manufacturing process involves producing sub-assembly items before final product. How should we manage BOM master in this scenario? @@ -8,7 +10,7 @@ A computer assembler is creating a BOM for PC. They also manufacture Hard Disk a BOM of PC will have all the raw-material items selected in it. Hard Disk and DVD Drive (sub-assemblies) will also be selected as raw-material items. For the sib-assembly items, respective BOM no. will be fetched as well. -Nested BOM +Nested BOM Following is how the structure of nested BOM will look: diff --git a/erpnext/docs/user/manual/en/manufacturing/articles/production-planning-subassembly.md b/erpnext/docs/user/manual/en/manufacturing/articles/production-planning-subassembly.md index c17b923ceb..050706cf80 100644 --- a/erpnext/docs/user/manual/en/manufacturing/articles/production-planning-subassembly.md +++ b/erpnext/docs/user/manual/en/manufacturing/articles/production-planning-subassembly.md @@ -1,3 +1,5 @@ +# Production Planning Subassembly + #Production Planning & Subassembly if you need Production Planning Tool to consider raw-materials required for the manufacturing of sub-assembly items selected in the BOM, please check following instructions to achieve the same. diff --git a/erpnext/docs/user/manual/en/manufacturing/articles/valuation-based-on-field-in-bom.md b/erpnext/docs/user/manual/en/manufacturing/articles/valuation-based-on-field-in-bom.md index 29803ee363..b07366c73e 100644 --- a/erpnext/docs/user/manual/en/manufacturing/articles/valuation-based-on-field-in-bom.md +++ b/erpnext/docs/user/manual/en/manufacturing/articles/valuation-based-on-field-in-bom.md @@ -1,16 +1,18 @@ +# Valuation Based On Field In Bom + #Valuation Based On in BOM **Question:** What are for various options in `Valuation Based On` in the Bill Of Materials (BOM)? **Answer:** There are 3 available options in the Valuation Based On field: -Nested BOM +Nested BOM **Valuation Rate:** Item valuation rate is defined based on it's purchase or manufacture value. For Purchase Item, it is defined based on charges entered in the Purchase Receipt. If you don't have any Purchase Receipt made for an item or a Stock Reconciliation, then there won't be any Valuation Rate for that item. -**Price List Rate:** This option allows to pull item rates from [Price List.]({{docs_base_url}}/user/manual/en/stock/item/item-price.html) +**Price List Rate:** This option allows to pull item rates from [Price List.](/docs/user/manual/en/stock/item/item-price.html) **Last Purchase Rate:** It will be the last Purchase (Order) Rate of an item. \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/manufacturing/bill-of-materials.md b/erpnext/docs/user/manual/en/manufacturing/bill-of-materials.md index 91bf7edf45..112efab7ea 100644 --- a/erpnext/docs/user/manual/en/manufacturing/bill-of-materials.md +++ b/erpnext/docs/user/manual/en/manufacturing/bill-of-materials.md @@ -1,3 +1,5 @@ +# Bill Of Materials + At the heart of the Manufacturing system is the **Bill of Materials** (BOM). The **BOM** is a list of all materials (either bought or made) and operations that go into a finished product or sub-Item. In ERPNext, the component could @@ -8,11 +10,11 @@ To make a new BOM: > Manufacturing > Bill of Materials > New BOM -Task +Task * To add Operations select 'With Operation'. The Operations table shall appear. -Task +Task * Select the Item for which you want to make the BOM. * Add the operations that you have to go through to make that particular Item in the “Operations” table. For each operation, you will be asked to enter a Workstation. You must create new Workstations as and when necessary. @@ -25,22 +27,22 @@ To make a new BOM: * Add the list of Items you require for each operation, with its quantity. This Item could be a purchased Item or a sub-assembly with its own BOM. If the row Item is a manufactured Item and has multiple BOMs, select the appropriate BOM. You can also define if a part of the Item goes into scrap. -Costing +Costing * This cost can be updated on by using the 'Update Cost' button. -Update Cost +Update Cost * User can select the currency in the BOM * System calculates the costing based on the price list currency -Update Cost +Update Cost ### Materials Required(exploded) This table lists down all the Material required for the Item to be Manufactured. It also fetches sub-assemblies along with the quantity. -Exploded Section +Exploded Section {next} diff --git a/erpnext/docs/user/manual/en/manufacturing/introduction.md b/erpnext/docs/user/manual/en/manufacturing/introduction.md index f9d827c6d1..b7f0a991b8 100644 --- a/erpnext/docs/user/manual/en/manufacturing/introduction.md +++ b/erpnext/docs/user/manual/en/manufacturing/introduction.md @@ -1,4 +1,6 @@ -Task +# Introduction + +Task ### Types of Production Planning diff --git a/erpnext/docs/user/manual/en/manufacturing/operation.md b/erpnext/docs/user/manual/en/manufacturing/operation.md index b21304e432..8d495f199b 100644 --- a/erpnext/docs/user/manual/en/manufacturing/operation.md +++ b/erpnext/docs/user/manual/en/manufacturing/operation.md @@ -1,3 +1,5 @@ +# Operation + ### Operation Stores a list of all Manufacturing Operations, its description and the Default Workstation for the Operation. @@ -6,6 +8,6 @@ You can also create a Operation by: > Manufacturing > Documents > Operation > New -Operation +Operation {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/manufacturing/production-order.md b/erpnext/docs/user/manual/en/manufacturing/production-order.md index a19c510c26..430ef8a172 100644 --- a/erpnext/docs/user/manual/en/manufacturing/production-order.md +++ b/erpnext/docs/user/manual/en/manufacturing/production-order.md @@ -1,4 +1,6 @@ -Production Order +# Production Order + +Production Order A Production Order (also known as a Work Order) is a document that is given to the manufacturing shop floor by the Production Planner as a signal to produce a certain quantity of a certain Item. The Production Order also helps to generate @@ -11,7 +13,7 @@ by: > Manufacturing > Documents > Production Order > New -Production Order +Production Order ### Creating Production Orders @@ -33,11 +35,11 @@ by: * By default the system fetchs workstation and duration for Production Order Operations from the selected BOM. -PO Opeartions +PO Opeartions * If you wish to reassign the workstation for a particular opeeration in the Production Order, you can do so before submitting the Production Order. -PO reassigning Operations +PO reassigning Operations * Select the respective operation, and change its workstation. * You can also change the Operating Time for that operation @@ -54,19 +56,19 @@ by: * Click on 'Start'. -Transfer Materials +Transfer Materials * Mention the quantity of materials to be transfered. -Material Transfer Qty +Material Transfer Qty * Submit the Stock Entry -Stock Entry for PO +Stock Entry for PO * Material Transfered for Manufacturing will be updated in the Production Order based on the Stock Entry. -Stock Entry for PO +Stock Entry for PO #### Material Transfer through Stock Entry Use cases for this option are: @@ -77,12 +79,12 @@ If this is the case, you can select the Skip Material Transfer check box, which ### Making Time Logs -* Progress in the Production Order can be tracked using [Timesheet]({{docs_base_url}}/user/manual/en/projects/timesheet/timesheet-against-production-order.html) +* Progress in the Production Order can be tracked using [Timesheet](/docs/user/manual/en/projects/timesheet/timesheet-against-production-order.html) * Timesheet's time slots are created against Production Order Operations. * Drafts of Timesheet are created based on the scheduled operations when an Production Order is Submitted. * To create more Timesheets against an operation click 'Make Timesheet' button. -Make timesheet against PO +Make timesheet against PO ###Updating Finished Goods @@ -90,11 +92,11 @@ If this is the case, you can select the Skip Material Transfer check box, which * This will create a Stock Entry that will deduct all the sub-Items from the WIP Warehouse and add them to the Finished Goods Warehouse. * Click on 'Finish'. -Update Finished Goods +Update Finished Goods * Mention the quantity of materials to be transfered. -Update Finished Goods Qty +Update Finished Goods Qty > Tip : You can also partially complete a Production Order by updating the Finished Goods stock creating a Stock Entry. @@ -109,7 +111,7 @@ If this is the case, you can select the Skip Material Transfer check box, which 4. Update Finished Goods: This will create a Stock Entry that will deduct all the sub-Items from the WIP Warehouse and add them to the Finished Goods Warehouse. 5. To check all Time Logs made against the Production Order click on 'Show Time Logs' -PO - stop +PO - stop * You can also re-start a stopped Production Order. diff --git a/erpnext/docs/user/manual/en/manufacturing/setup/index.md b/erpnext/docs/user/manual/en/manufacturing/setup/index.md index ec22505469..ac54772e60 100644 --- a/erpnext/docs/user/manual/en/manufacturing/setup/index.md +++ b/erpnext/docs/user/manual/en/manufacturing/setup/index.md @@ -1,3 +1,5 @@ +# Setup + Global settings for manufacturing Processes ### Topics diff --git a/erpnext/docs/user/manual/en/manufacturing/setup/manufacturing-settings.md b/erpnext/docs/user/manual/en/manufacturing/setup/manufacturing-settings.md index 1912a55cbd..2c09f52e5f 100644 --- a/erpnext/docs/user/manual/en/manufacturing/setup/manufacturing-settings.md +++ b/erpnext/docs/user/manual/en/manufacturing/setup/manufacturing-settings.md @@ -1,10 +1,12 @@ +# Manufacturing Settings + #Manufacturing Settings Manufacturing Settings can be found at: `Manufacturing > Setup > Manufacturing Settings` -Manufacturing Settings +Manufacturing Settings ####Disable Capacity Planning and Time Tracking @@ -16,15 +18,15 @@ If you don't track actual operations time, and want to disable creation of Time In the Workstation master, actual working hours are defined (say 101m to 6pm). As per the Capacity Planning, Time Logs are created against Workstation, for tracking actual operations hour. It also considers working hours of a Workstation when scheduling job (via Time Log). -Manufacturing Settings +Manufacturing Settings As per the standard validation, if Operation cannot be completed within working hours of Workstation, then user is asked to divide an Operation into multiple and smaller Operations. However, if `Allow Overtime` field is checked, while creating Time Logs for Operation, working hours of Workstation will not be validated. In this case, Time Logs for Operation will be created beyond working hours of Workstation as well. ####Allow Production on Holidays -Holiday of a company can be recorded in the [Holiday List]({{docs_base_url}}/user/manual/en/human-resources/) master. While scheduling production job on workstation, system doesn't consider a day listed in the Holiday list. If you want production job to be scheduled on holidays as well, `Allow Production on Holidays` field should be checked. +Holiday of a company can be recorded in the [Holiday List](/docs/user/manual/en/human-resources/) master. While scheduling production job on workstation, system doesn't consider a day listed in the Holiday list. If you want production job to be scheduled on holidays as well, `Allow Production on Holidays` field should be checked. -Manufacturing Settings +Manufacturing Settings ####Over Production Allowance Percentage @@ -34,7 +36,7 @@ While making Production Orders against a Sales Order, the system will only allow When creating Manufacture Entry, raw-material items are back-flush based on BOM of production item. If you want raw-material items to be back-flushed based on Material Transfer entry made against that Production Order instead, then you should set Back-flush Raw Materials Based On "Material Transferred for Manufacture". -Manufacturing Settings +Manufacturing Settings ####Capacity Planning For (Days) diff --git a/erpnext/docs/user/manual/en/manufacturing/subcontracting.md b/erpnext/docs/user/manual/en/manufacturing/subcontracting.md index 1589d1b7f0..925afe323d 100644 --- a/erpnext/docs/user/manual/en/manufacturing/subcontracting.md +++ b/erpnext/docs/user/manual/en/manufacturing/subcontracting.md @@ -1,3 +1,5 @@ +# Subcontracting + Subcontracting is a type of job contract that seeks to outsource certain types of work to other companies. It allows work on more than one phase of the project to be done at once, often leading to a quicker completion. @@ -15,7 +17,7 @@ sub-contracting feature of ERPNext. 2. Create a Warehouse for your Supplier so that you can keep track of Items supplied. (you may supply a months worth of Items in one go). 3. For the processed Item, in the Item master, set “Is Sub Contracted Item” to “Yes”. -Sub-Contracting +Sub-Contracting __Step 1:__ Make a Bill of Materials for the processed Item, with the unprocessed @@ -23,20 +25,20 @@ Items as sub-items. For example, If you are manufacturing a pen, the processed pen will be named under Bill of Materials(BOM), whereas, the refill, knob, and other items which go into the making of pen, will be categorized as sub-items. -Sub-Contracting +Sub-Contracting __Step 2:__ Make a Purchase Order for the processed Item. When you “Save”, in the “Raw Materials Supplied”, all your un-processed Items will be updated based on your Bill of Materials. -Sub-Contracting +Sub-Contracting __Step 3:__ Make a Stock Entry to deliver the raw material Items to your Supplier. -Sub-Contracting +Sub-Contracting __Step 4:__ Receive the Items from your Supplier via Purchase Receipt. Make sure to check the “Consumed Quantity” in the “Raw Materials” table so that the correct stock is maintained at the Supplier’s end. -Sub-Contracting +Sub-Contracting > Note 1: Make sure that the “Rate” of processed Item is the processing rate (excluding the raw material rate). diff --git a/erpnext/docs/user/manual/en/manufacturing/tools/bom-replace-tool.md b/erpnext/docs/user/manual/en/manufacturing/tools/bom-replace-tool.md index 794d982c72..98d1f3b985 100644 --- a/erpnext/docs/user/manual/en/manufacturing/tools/bom-replace-tool.md +++ b/erpnext/docs/user/manual/en/manufacturing/tools/bom-replace-tool.md @@ -33,7 +33,7 @@ If we have more items to be added , or existing items to be edited in the BOM of To update new BOM updated in the BOM of finished item, where CPU is selected as raw-material, you can use BOM Replace tool. -BOM replace Tool +BOM replace Tool In this tool, you should select Current BOM, and New BOM. On clicking Replace button, current BOM of CPU will be replaced with New BOM in the BOM of finished Item (Computer). diff --git a/erpnext/docs/user/manual/en/manufacturing/tools/index.md b/erpnext/docs/user/manual/en/manufacturing/tools/index.md index 259b5ebc42..25a46a7ac4 100644 --- a/erpnext/docs/user/manual/en/manufacturing/tools/index.md +++ b/erpnext/docs/user/manual/en/manufacturing/tools/index.md @@ -1,3 +1,5 @@ +# Tools + ### Topics diff --git a/erpnext/docs/user/manual/en/manufacturing/tools/production-planning-tool.md b/erpnext/docs/user/manual/en/manufacturing/tools/production-planning-tool.md index 4bdc48767b..e9ba2a570f 100644 --- a/erpnext/docs/user/manual/en/manufacturing/tools/production-planning-tool.md +++ b/erpnext/docs/user/manual/en/manufacturing/tools/production-planning-tool.md @@ -1,3 +1,5 @@ +# Production Planning Tool + Production Planning Tool helps you plan production and purchase of Items for a period (usually a week or a month). @@ -11,7 +13,7 @@ To use the Production Planning Tool, go to: > Manufacturing > Tools > Production Planning Tool -Production Planing Tool +Production Planing Tool #### Step 1: Specify source to get Production Items @@ -25,7 +27,7 @@ To use the Production Planning Tool, go to: * Use filters to get the Sales Order / Material Request * Click on Get Sales Order / Get Material Requests to generate a list. -Production Planing Tool +Production Planing Tool @@ -34,11 +36,11 @@ To use the Production Planning Tool, go to: * Get the items for the Sales Order / Material request list * You can add/remove or change quantity of these Items. -Production Planing Tool +Production Planing Tool #### Step 4: Create Production Orders -Production Planing Tool +Production Planing Tool @@ -46,7 +48,7 @@ To use the Production Planning Tool, go to: Create Material Request for Items with projected shortfall. -Production Planing Tool +Production Planing Tool diff --git a/erpnext/docs/user/manual/en/manufacturing/workstation.md b/erpnext/docs/user/manual/en/manufacturing/workstation.md index 0ff2a6bba7..5670893d91 100644 --- a/erpnext/docs/user/manual/en/manufacturing/workstation.md +++ b/erpnext/docs/user/manual/en/manufacturing/workstation.md @@ -1,3 +1,5 @@ +# Workstation + ### Workstation Workstation stores information regarding the place where the workstation operations is carried out. @@ -8,12 +10,12 @@ You can also create a Workstation by: > Manufacturing > Documents > Workstation > New -Workstation +Workstation In workstation specify the workstation working hours under the 'working hour' section. You can also specify the working hours based on shifts. While scheduling Production Order, system will check for the availability of the workstation based on the working hours specified. -> Note : You can enable overtime for your workstation in [Manufacturing Settings]({{docs_base_url}}/user/manual/en/manufacturing/setup/manufacturing-settings.html) +> Note : You can enable overtime for your workstation in [Manufacturing Settings](/docs/user/manual/en/manufacturing/setup/manufacturing-settings.html) {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/projects/activity-cost.md b/erpnext/docs/user/manual/en/projects/activity-cost.md index d4e2106a88..88d4f0a5da 100644 --- a/erpnext/docs/user/manual/en/projects/activity-cost.md +++ b/erpnext/docs/user/manual/en/projects/activity-cost.md @@ -1,4 +1,6 @@ +# Activity Cost + Activity Cost records the per-hour billing rate and costing rate of an Employee against an Activity Type. This rate is pulled by the system while making Time Logs. It is used for Project Costing. -Activity Cost +Activity Cost diff --git a/erpnext/docs/user/manual/en/projects/activity-type.md b/erpnext/docs/user/manual/en/projects/activity-type.md index 7f37f51e54..4e968a6b57 100644 --- a/erpnext/docs/user/manual/en/projects/activity-type.md +++ b/erpnext/docs/user/manual/en/projects/activity-type.md @@ -1,6 +1,8 @@ +# Activity Type + Activity Type makes a list of the different types of activities against which a Time Log can be made. -Activity Type +Activity Type By default the following Activity Types are created. diff --git a/erpnext/docs/user/manual/en/projects/articles/index.md b/erpnext/docs/user/manual/en/projects/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/projects/articles/index.md +++ b/erpnext/docs/user/manual/en/projects/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/projects/articles/project-costing.md b/erpnext/docs/user/manual/en/projects/articles/project-costing.md index e5c59400f1..dad849ea9d 100644 --- a/erpnext/docs/user/manual/en/projects/articles/project-costing.md +++ b/erpnext/docs/user/manual/en/projects/articles/project-costing.md @@ -12,17 +12,17 @@ Activity Type is a master of service offered by your personnel. You can add new Activity Cost is a master where you can track billing and costing rate for each Employee, and for each Activity Type. -![Activity Cost]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-06-11 at 4.57.01 pm.png) +![Activity Cost](/docs/assets/img/articles/Screen Shot 2015-06-11 at 4.57.01 pm.png) #### Time Log Based on Actual Time spent on the Project-Task, Employee will create a time log. -![Time Log]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-06-11 at 4.59.49 pm.png) +![Time Log](/docs/assets/img/articles/Screen Shot 2015-06-11 at 4.59.49 pm.png) On selection of Activity Type in the Time Log, Billing and Costing Rate will fetched for that Employee from respective Activity Cost master. -![Time Log Costing]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-06-11 at 5.00.06 pm.png) +![Time Log Costing](/docs/assets/img/articles/Screen Shot 2015-06-11 at 5.00.06 pm.png) Multiplying these rates with total no. of Hours in the Time Log gives Costing Amount and Billing Amount for the specific Time Log. @@ -30,10 +30,10 @@ Multiplying these rates with total no. of Hours in the Time Log gives Costing Am Based on total Time Logs created for a specific Task, its costing will be updated in the respective Task master. -![Costing in Task]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-06-11 at 5.02.54 pm.png) +![Costing in Task](/docs/assets/img/articles/Screen Shot 2015-06-11 at 5.02.54 pm.png) Same way, Project master will have cost updated based on Time Log created against that Projects, and tasks associated with that Project. -![Costing in Project]({{docs_base_url}}/assets/img/articles/Screen Shot 2015-06-11 at 5.02.29 pm.png) +![Costing in Project](/docs/assets/img/articles/Screen Shot 2015-06-11 at 5.02.29 pm.png) \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/projects/index.md b/erpnext/docs/user/manual/en/projects/index.md index 220c67fa84..95af437f24 100644 --- a/erpnext/docs/user/manual/en/projects/index.md +++ b/erpnext/docs/user/manual/en/projects/index.md @@ -1,3 +1,5 @@ +# Projects + ERPNext helps you manage your Projects by breaking them into Tasks and allocating them to different people. diff --git a/erpnext/docs/user/manual/en/projects/project.md b/erpnext/docs/user/manual/en/projects/project.md index 75223962c6..d835295f2c 100644 --- a/erpnext/docs/user/manual/en/projects/project.md +++ b/erpnext/docs/user/manual/en/projects/project.md @@ -1,6 +1,8 @@ +# Project + Project management in ERPNext is Task driven. You can create Project and assign multiple Tasks against it. -Project +Project You can also track % Completion of a Project using different methods. @@ -8,80 +10,80 @@ You can also track % Completion of a Project using different methods. 2. Task Progress 3. Task Weight -Project +Project Some examples of how the % Completion is calculated based on Tasks. -Project +Project -Project +Project ### Managing tasks Project can be divided into multiple Tasks. -Task can be created via Project document itself or can be created via [Task]({{docs_base_url}}/user/manual/en/projects/tasks.html) +Task can be created via Project document itself or can be created via [Task](/docs/user/manual/en/projects/tasks.html) -Project +Project * To view Task made against a Project click on 'Tasks' -Project - View Task +Project - View Task -Project - Task List +Project - Task List * You can also view the Tasks from the Project document itself -Project - Task Grid +Project - Task Grid * To add Weights to Tasks you can follow the below steps -Project - Task Grid -Project - Task Grid +Project - Task Grid +Project - Task Grid ### Managing time -ERPNext uses [Time Log]({{docs_base_url}}/user/manual/en/projects/time-log.html) to track the progress of a Project. +ERPNext uses [Time Log](/docs/user/manual/en/projects/time-log.html) to track the progress of a Project. You can create Time Logs against each task. The Actual Start and End Time along with the costing shall then be updated based on the Time Log. * To view Time Log made against a Project click on 'Time Logs' -Project - View Time Log +Project - View Time Log -Project - Time Log List +Project - Time Log List * You can also create a Time Log directlly and link it to the Project. -Project - Link Time Log +Project - Link Time Log ### Managing expenses -You can book [Expense Claim]({{docs_base_url}}/user/manual/en/human-resources/expense-claim.html) against a project task. +You can book [Expense Claim](/docs/user/manual/en/human-resources/expense-claim.html) against a project task. The system shall update the total amount from expense claims in the project costing section. * To view Expense Claims made against a Project click on 'Expense Claims' -Project - View Expense Claim +Project - View Expense Claim * You can also create a Expense Claims directlly and link it to the Project. -Project - Link Expense Claim +Project - Link Expense Claim * Total amount of Expense Claims booked against a project is shown under 'Total Expense Claim' in the Project Costing Section -Project - Total Expense Claim +Project - Total Expense Claim ### Cost Center -You can make a [Cost Center]({{docs_base_url}}/user/manual/en/accounts/setup/cost-center.html) against a Project or use an existing cost center to track all expenses made against that project. +You can make a [Cost Center](/docs/user/manual/en/accounts/setup/cost-center.html) against a Project or use an existing cost center to track all expenses made against that project. -Project - Cost Center +Project - Cost Center ###Project Costing The Project Costing section helps you track the time and expenses incurred against the project. -Project - Costing +Project - Costing * The Costing Section is updated based on Time Logs made. @@ -89,9 +91,9 @@ The Project Costing section helps you track the time and expenses incurred again ###Billing -You can make/link a [Sales Order]({{docs_base_url}}/user/manual/en/selling/sales-order.html) against a project. Once linked you can use the standard sales module to bill your customer against the Project. +You can make/link a [Sales Order](/docs/user/manual/en/selling/sales-order.html) against a project. Once linked you can use the standard sales module to bill your customer against the Project. -Project - Sales Order +Project - Sales Order ###Gantt Chart @@ -100,8 +102,8 @@ ERPNext gives you a illustrated view of tasks scheduled against that project in * To view gantt chart against a project, go to that project and click on 'Gantt Chart' -Project - View Gantt Chart +Project - View Gantt Chart -Project - Gantt Chart +Project - Gantt Chart {next} diff --git a/erpnext/docs/user/manual/en/projects/tasks.md b/erpnext/docs/user/manual/en/projects/tasks.md index ef597485ab..9447a2ed48 100644 --- a/erpnext/docs/user/manual/en/projects/tasks.md +++ b/erpnext/docs/user/manual/en/projects/tasks.md @@ -1,13 +1,15 @@ +# Tasks + Project is divided into Tasks. In ERPNext, you can also create a Task independently. -Task +Task ### Status of the Task A Task can have one of the following statuses - Open, Working, Pending Review, Closed, or Cancelled. -Task - Status +Task - Status * By default each new Task created has the status set to 'Open'. @@ -17,7 +19,7 @@ A Task can have one of the following statuses - Open, Working, Pending Review, C You can specify a list of dependent tasks under the 'Depends On' section. -Depends On +Depends On * You cannot close the parent task until all dependent tasks are closed. @@ -25,35 +27,35 @@ You can specify a list of dependent tasks under the 'Depends On' section. ### Managing Time -ERPNext uses [Time Log]({{docs_base_url}}/user/manual/en/projects/time-log.html) to track the progress of a Task. +ERPNext uses [Time Log](/docs/user/manual/en/projects/time-log.html) to track the progress of a Task. You can create multiple Time Logs against each task. The Actual Start and End Time along with the costing is updated based on the Time Log. * To view Time Log made against a Task click on 'Time Logs' -Task - View Time Log +Task - View Time Log -Task - Time Log List +Task - Time Log List * You can also create a Time Log directly and link it to the Task. -Task - Link Time Log +Task - Link Time Log ### Managing Expenses -You can book [Expense Claim]({{docs_base_url}}/user/manual/en/human-resources/expense-claim.html) against a task. +You can book [Expense Claim](/docs/user/manual/en/human-resources/expense-claim.html) against a task. The system shall update the total amount from expense claims in the costing section. * To view Expense Claims made against a Task click on 'Expense Claims' -Task - View Expense Claim +Task - View Expense Claim * You can also create a Expense Claims directly and link it to the Task. -Task - Link Expense Claim +Task - Link Expense Claim * Total amount of Expense Claims booked against a task is shown under 'Total Expense Claim' in the Task Costing Section -Task - Total Expense Claim +Task - Total Expense Claim {next} diff --git a/erpnext/docs/user/manual/en/projects/time-log-batch.md b/erpnext/docs/user/manual/en/projects/time-log-batch.md index f4f76dc16b..b307f6a147 100644 --- a/erpnext/docs/user/manual/en/projects/time-log-batch.md +++ b/erpnext/docs/user/manual/en/projects/time-log-batch.md @@ -1,3 +1,5 @@ +# Time Log Batch + You can bill Time Logs by batching them together. This gives you the flexiblity to manage your customer billing in the way you want. To create a new Time Sheet, go to > Projects > Time Sheet > New Time Sheet @@ -6,17 +8,17 @@ OR Just open your Time Log list and check the Items to you want to add to the Time Log. Then click on "Make Time Sheet" button and these Time Logs will be selected. -Time Log - Drag Calender +Time Log - Drag Calender ###Making Sales Invoice * After submitting the Time Sheet, "Make Invoice" button shall appear. -Time Log - Drag Calender +Time Log - Drag Calender * Click on that button to raise a Sales Invoice against the Time Sheet. -Time Log - Drag Calender +Time Log - Drag Calender * When you "Submit" the Sales Invoice, the Sales Invoice number will get updated in the Time Logs and Time Sheet and their status will change to "Billed". diff --git a/erpnext/docs/user/manual/en/projects/timesheet/index.md b/erpnext/docs/user/manual/en/projects/timesheet/index.md index 7a80ab7a42..8fd30c4125 100644 --- a/erpnext/docs/user/manual/en/projects/timesheet/index.md +++ b/erpnext/docs/user/manual/en/projects/timesheet/index.md @@ -1,3 +1,5 @@ +# Timesheet + Timesheet can be used for track actual hours worked. It can be used for multiple purposes like: * Billable work to Customers diff --git a/erpnext/docs/user/manual/en/projects/timesheet/salary-slip-from-timesheet.md b/erpnext/docs/user/manual/en/projects/timesheet/salary-slip-from-timesheet.md index 32faf039ae..5069247097 100644 --- a/erpnext/docs/user/manual/en/projects/timesheet/salary-slip-from-timesheet.md +++ b/erpnext/docs/user/manual/en/projects/timesheet/salary-slip-from-timesheet.md @@ -1,3 +1,5 @@ +# Salary Slip From Timesheet + #Salary Slip from Timesheet If salary / wages for your employees are calculated based on number of hours worked, you can use Timesheet to track actual hours worked, and for creating Salary Slip. @@ -6,7 +8,7 @@ If salary / wages for your employees are calculated based on number of hours wor To track actual hours employee has worked for, create Timesheet for each Employee. We suggest you to create Timesheet based on a payment period. For example, if you paying employee on a weekly bases, create one Timesheet for an Employee for one week. However, you can create multiple Timesheets, and create one Salary Slip for the multiple Timesheets. -Sales Invoice +Sales Invoice ####Salary Structure for the Employee @@ -16,17 +18,17 @@ In the Salary Structure of the Employee, check field "Salary Slip Based on Times Amount directly for other Salary Components (eg: House Rent Allowance, Phone Allowance) can be define directly. When creating Salary Slip, Amount for these Salary Component will be fetched as it is. -Sales Invoice +Sales Invoice ####Create Salary Slip from Timesheet To create Salary Slip against Timesheet, open Timesheet and click on "Salary Slip". -Sales Invoice +Sales Invoice In the Salary Slip, Timesheet ID will be updated. You can select more Timesheet to be paid via this Salary Slip. Based on the Timesheets selected, Total Working Hours will be calculated. -Sales Invoice +Sales Invoice Hour Rate will be fetched from the Salary Structure of an Employee. Based on Total Working Hours and Hour Rate, Amount will be calculated for the Salary Component is to be calculated based on actual hours worked. @@ -34,7 +36,7 @@ Hour Rate will be fetched from the Salary Structure of an Employee. Based on Tot On Submission of Salary Slip, Timesheet's status will be updated to "Payslip". -Sales Invoice +Sales Invoice
    diff --git a/erpnext/docs/user/manual/en/projects/timesheet/sales-invoice-from-timesheet.md b/erpnext/docs/user/manual/en/projects/timesheet/sales-invoice-from-timesheet.md index 383a8817cb..0d03bd3138 100644 --- a/erpnext/docs/user/manual/en/projects/timesheet/sales-invoice-from-timesheet.md +++ b/erpnext/docs/user/manual/en/projects/timesheet/sales-invoice-from-timesheet.md @@ -1,3 +1,5 @@ +# Sales Invoice From Timesheet + #Sales Invoice from Timesheet Customer can be invoiced based on total no. of hours your Employees has worked for that Customer. Timesheet can be used to track actual no. of hours Employee has worked. For example, in the IT services domain, clients are billed based on man-hour bases, where per hour billing cost is pre-determined.s @@ -14,15 +16,15 @@ To create new Timesheet, go to: In the Employee field, only ones having ative Salary Structure will be selectable. Further in the Salary Structure , is created for the E on the actual hours worked, Employee can create Timesheet. To be able to create Sales Invoice against this Timesheet, ensure `Billable` field is checked. -Sales Invoice +Sales Invoice #### Step 3:Activity Type Employee will have to select an Activity Type (like planning, site visit, repairing etc. ). Costing and Billing Rate for each Activity can be different for each Employee. These cost can be tracked in the Activity Cost. On selection of Activity Type, Activity Cost is fetched from that Employee. Based on total Activity Cost and total no. of hours, Total Billing Amount (to the Customer) is calculated. -To learn more on how to setup Activity Type and Activity Cost, click [here]({{docs_base_url}}/user/manual/en/projects/articles/project-costing). +To learn more on how to setup Activity Type and Activity Cost, click [here](/docs/user/manual/en/projects/articles/project-costing). -Sales Invoice +Sales Invoice #### Step 4: Enter Actual Time @@ -30,7 +32,7 @@ In the Timesheet Details table, enter actual hours an Employee has worked for. O To be able to create Sales Invoice from the Time Sheet, ensure 'Is Billable' field is checked. -Sales Invoice +Sales Invoice Based on the actual hours worked and Activity Cost of an Employee, Total Billing Amount will be calculated for Timesheet. @@ -38,7 +40,7 @@ Based on the actual hours worked and Activity Cost of an Employee, Total Billing After submitting Timesheet, you will find buttons to create Sales Invoice and Salary Slip against this Timesheet. -Sales Invoice +Sales Invoice ###Create Sales Invoice from Timesheet @@ -46,13 +48,13 @@ After submitting Timesheet, you will find buttons to create Sales Invoice and Sa In the Timesheet, if "Is Billable" is checked, you will find option to create Sales Invoice against it. -Sales Invoice +Sales Invoice ####Sales Invoice Sales Invoice has dedicated table for the Timesheet table where Timesheet details will be updated. You can select more Timesheets in this table. -Sales Invoice +Sales Invoice ####Select Customer and Item @@ -65,4 +67,4 @@ After enter all required details in the Sales Invoice, Save and Submit it. On submitting Sales Invoice, status of the Timesheets linked to the Sales Invoice will be updated as Billed. -Sales Invoice +Sales Invoice diff --git a/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-production-order.md b/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-production-order.md index 6e108b3f7d..da7bf2f67e 100644 --- a/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-production-order.md +++ b/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-production-order.md @@ -1,10 +1,12 @@ +# Timesheet Against Production Order + #Timesheet based on Production Order Creating Timesheet for Production Order helps in capacity planning for the Workstations. Also it helps in tracking actual time consumed the Workstation for completing specific operation. When a Production Order is submitted, based on the Planned Start Date and the availability of the Workstations, system schedules all operations by creating Timesheet. -Sales Invoice +Sales Invoice Let's assume we are manufacturing a mobile phone. As per the Bill of Material, time required for the assembly of components could be one hour. However the actual time taken for it's completion could be more than planned. The actual time tracking provides actual operation cost, hence helps in determining accurate valuation of the manufacturing item. @@ -12,28 +14,28 @@ Let's assume we are manufacturing a mobile phone. As per the Bill of Material, t As per the Bill of Materials of manufacturing item, following are the Operations and Workstation through which raw-material items are processed. -Sales Invoice +Sales Invoice On submission on Production Order, Timesheet will be created automatically. -Sales Invoice +Sales Invoice ####Time Sheet created from Production Order In the Timesheet, unique row will be added for each Operation - Workstation. This allows operator/supervisor at the workstation to enter actual From Time and To Time taken for each Operation. -Sales Invoice +Sales Invoice After enter From Time and To Time for all the Operations, Total Hours will be calculated. -Sales Invoice +Sales Invoice With updating actual time, you can also enter "Completed Qty". If all the items are not processed in the same Timesheet, you can create another Timesheet from the Production Order. -Sales Invoice +Sales Invoice ####Save and Submit Timesheet On the submission of Timesheet, Total Hours is calculated. Also, in the Production Order, for each Operation, actual Start and End Time is updated. -Sales Invoice +Sales Invoice diff --git a/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-project.md b/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-project.md index a8b2a6bf18..0a9f32fdc9 100644 --- a/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-project.md +++ b/erpnext/docs/user/manual/en/projects/timesheet/timesheet-against-project.md @@ -1,12 +1,14 @@ +# Timesheet Against Project + #Timesheet against Project and Task Timesheets can be tracked against Project and Tasks so that you can get reports on how much time was spent on each Task or Project. -Sales Invoice +Sales Invoice ####Billable Timesheet -To bill Customer based on Timesheet, check "Is Billable" in the Timesheet created against Project and Task. To learn more about billing Customer from Timesheet, click [here]({{docs_base_url}}/user/manual/en/projects/timesheet/sales-invoice-from-timesheet.html). +To bill Customer based on Timesheet, check "Is Billable" in the Timesheet created against Project and Task. To learn more about billing Customer from Timesheet, click [here](/docs/user/manual/en/projects/timesheet/sales-invoice-from-timesheet.html). User can also make invoice against timesheet by selecting the project on the invoice. System will fetch the records from the timesheet based on selected project, for mode detail check below video @@ -17,4 +19,4 @@ When creating Timesheet, Employee will have to select an Activity Type. For each In the Timesheet, costing will be done based on Activity Cost multiplied with number of hours. Based the Timesheet Cost, total costing will be doen for the Task and Project as well. -To learn about setup of Activity Type and Activity Cost, click [here]({{docs_base_url}}/user/manual/en/projects/articles/project-costing). \ No newline at end of file +To learn about setup of Activity Type and Activity Cost, click [here](/docs/user/manual/en/projects/articles/project-costing). \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/regional/index.md b/erpnext/docs/user/manual/en/regional/index.md index 5798860528..2598110d9c 100644 --- a/erpnext/docs/user/manual/en/regional/index.md +++ b/erpnext/docs/user/manual/en/regional/index.md @@ -1,3 +1,5 @@ +# Regional + ERPNext aims to support local regulation for all the regions in the world. In most cases ERPNext is very flexible so you can easily add Custom Fields and make Custom Reports to support the regluation of your region. As of mid-2017, ERPNext aims to pre-set additional fields and forms required for companies to easily submit reports to the relevant authorities. diff --git a/erpnext/docs/user/manual/en/regional/india/gst-remimders.md b/erpnext/docs/user/manual/en/regional/india/gst-remimders.md index 97f016d234..b1061e4c5d 100644 --- a/erpnext/docs/user/manual/en/regional/india/gst-remimders.md +++ b/erpnext/docs/user/manual/en/regional/india/gst-remimders.md @@ -4,7 +4,7 @@ You can send email reminders to your Customers and Suppliers so that they can di To send GSTIN Reminders, you can either open the Customer / Supplier record or **GST Settings** -GST Settings +GST Settings Here you can click on the "Send GSTIN Update Reminders" button to send email reminders to all your customers @@ -12,10 +12,10 @@ Here you can click on the "Send GSTIN Update Reminders" button to send email rem Your customers will receive an email asking them to update their GSTIN and that email will link them to a portal page: -GST Portal Page +GST Portal Page Here they can update their GSTIN and it will automatically be added to your customer GSTIN record. #### Sample GSTIN Reminder Email -GST Reminder Email +GST Reminder Email diff --git a/erpnext/docs/user/manual/en/regional/india/gst-setup.md b/erpnext/docs/user/manual/en/regional/india/gst-setup.md index 49d75b1939..b89be539c1 100644 --- a/erpnext/docs/user/manual/en/regional/india/gst-setup.md +++ b/erpnext/docs/user/manual/en/regional/india/gst-setup.md @@ -4,7 +4,7 @@ GST Law requires that you maintain the GSTIN number for all your suppliers and vendors. In ERPNext, GSTIN is linked to the **Address** -GST in Customer +GST in Customer **GST for your Company Address** @@ -12,20 +12,20 @@ You also need to set the Address for your own Company and your Company's GST Num Go to the Company master and add the GSTIN to your default address. -GST in Company +GST in Company **Include GSTIN number in the Address Template** Open Address Template record for India, add GSTIN number and State Code there if not exists. -GST in Company +GST in Company ### 2. Setting up HSN Codes According to the GST Law, your itemised invoices must contain the HSN Code related to that Item. ERPNext comes pre-installed with all 12,000+ HSN Codes so that you can easily select the relevant HSN Code in your Item -HSN in Item +HSN in Item ### 3. Making Tax Masters @@ -35,7 +35,7 @@ Go to your **Chart of Accounts**, under the Duties and Taxes head of your accoun **Note:** Usually the rate in CGST and SGST is half of IGST. For example if most of your items are billed at 18%, then create IGST at 18%, CGST and SGST at 9% each. -GST in Customer +GST in Customer ### 4. Make Tax Templates @@ -43,7 +43,7 @@ You will have have to make two tax templates for both your sales and purchase, o In your **In State GST** template, select 2 accounts, SGST and CGST -GST in Customer +GST in Customer In your **Out of State GST** template, select IGST @@ -59,22 +59,22 @@ For **Sales Invoice**, 4. Select the the **In State GST** or **Out of State GST** template that you have created based on the type of transaction 5. Save and Submit the Invoice -GST Invoice +GST Invoice ### 6. Print GST Tax Invoice To print Tax Invoice as per GSTN guidelines, please select **GST Tax Invoice** print format. This print format includes company address, GSTIN numbers, HSN/SAC Code and item-wise tax breakup. And while printing select correct value of Invoice Copy field, to mention whether it is for the Customer, Supplier or Transporter. -Sample GST Tax Invoice +Sample GST Tax Invoice ### Reports ERPNext comes with most of your reports you need to prepare your GST Returns. Go to Accounts > GST India head for the list. -GST Menus +GST Menus You can check the impact of your invoice in the **GST Sales Register** and **GST Itemised Sales Register** -GST Itemised Sales Register +GST Itemised Sales Register diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md b/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md index 1538463b8d..fbaa70ff3f 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md @@ -1,13 +1,15 @@ +# Assessment Criteria + #Assessment Criteria Assessment Criteria is the parameter based on which you assess the Student. -Assessment Criteria +Assessment Criteria After assessment is conducted for a Course, marks earned are entered based on the Assessment Criteria. For example, if assessment was conducted for science subject, then you can evaluate Student in Science on various criteria like Writing, Practicals, Presentation etc. Assessment Criteria is be used when scheduling Assessment Plan for Student Group and Course. -Assessment Plan Criteria +Assessment Plan Criteria {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md b/erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md index ae67dba414..53e95a9548 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md @@ -1,13 +1,15 @@ +# Assessment Group + #Assessment Group Assessment Group tree is a master where you can define the hierarchy for examination conducted in your education institute. For example, if you conduct two assessment in a academic year, then setup Assessment Group as following. -Assessment Group Term +Assessment Group Term On the same lines, you can also define multiple Assessment Group bases on assessment conducted in your institute. -Assessment Group Term +Assessment Group Term {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md b/erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md index 85b03bfef0..8a3d42790d 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md @@ -1,3 +1,5 @@ +# Assessment Plan + #Assessment Plan To schedule an assessment/examination for a Student Group, for specific Course, create Assessment Plan. In the Assessment Plan, you can also capture details like: @@ -10,10 +12,10 @@ To schedule an assessment/examination for a Student Group, for specific Course, 4. Examiner and Supervisor -Assessment Plan Details +Assessment Plan Details 5. Assessment Criteria is list of criteria based which each student in will be evaluated and grades will be assigned. -Assessment Plan Criteria +Assessment Plan Criteria {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md b/erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md index 68d17e1d32..766f5d8119 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md @@ -1,7 +1,9 @@ +# Assessment Result + #Assessment Result -Assessment Result is a log of marks/grades earned by the student for specific Assessment. Assessment Result is created in the backend based on the marks entered in the [Assessment Result Tool]({{docs_base_url}}/user/manual/en/schools/assessment/assessment_result_tool.html). +Assessment Result is a log of marks/grades earned by the student for specific Assessment. Assessment Result is created in the backend based on the marks entered in the [Assessment Result Tool](/docs/user/manual/en/schools/assessment/assessment_result_tool.html). -Assessment Result +Assessment Result {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md b/erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md index a1111ebf5a..3e608356d6 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md @@ -1,8 +1,10 @@ +# Assessment Result Tool + #Assessment Result Tool Assessment Result Tool help you entering marks earned by the Students for specific course. In this tool, based on the Assessment Plan, all the Student will be fetched into Assessment Result Tool. Also, Columns for Assessment Criteria will be where marks earned can be entered for each Student. -Assessment Result Tool +Assessment Result Tool As you go on entering marks for a Student, and switch to next student, in the backend, Student Result record will be auto-created for that Student. diff --git a/erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md b/erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md index c0a39cb6a5..11858dd4c5 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md @@ -1,7 +1,9 @@ +# Grading Scale + #Grading Scale In the Grading Scale, you can define various grades and threshold for them. Based on the score earned by an Student for an Assessment, Grade will be assigned. -Grading Scale +Grading Scale {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/Assessment/index.md b/erpnext/docs/user/manual/en/schools/Assessment/index.md index 3dab62a61e..2bbab8e713 100644 --- a/erpnext/docs/user/manual/en/schools/Assessment/index.md +++ b/erpnext/docs/user/manual/en/schools/Assessment/index.md @@ -1,3 +1,5 @@ +# Assessment + #Assessment Every education institute organizes assessment / examination to evaluates progress of their Students. In ERPNext, you can manage complete assessment processing for your ERPNext account. diff --git a/erpnext/docs/user/manual/en/schools/admission/program-enrollment.md b/erpnext/docs/user/manual/en/schools/admission/program-enrollment.md index 060033cba0..2dcc6cb2ce 100644 --- a/erpnext/docs/user/manual/en/schools/admission/program-enrollment.md +++ b/erpnext/docs/user/manual/en/schools/admission/program-enrollment.md @@ -1,5 +1,7 @@ +# Program Enrollment + This form allows you to enroll a student to a program. A student can be enrolled to multiple programs. -Student Applicant Enrollment +Student Applicant Enrollment {next} diff --git a/erpnext/docs/user/manual/en/schools/admission/student-applicant.md b/erpnext/docs/user/manual/en/schools/admission/student-applicant.md index 2b33cf957f..e67c1dc79e 100644 --- a/erpnext/docs/user/manual/en/schools/admission/student-applicant.md +++ b/erpnext/docs/user/manual/en/schools/admission/student-applicant.md @@ -3,7 +3,7 @@ A Student Applicant record needs to be created when a student applies for a program at your institute. You can Approve or Reject a student applicant. By accepting a student applicant you can add them to the student master. -Student Applicant +Student Applicant ### Application Status @@ -21,8 +21,8 @@ You can Approve or Reject a student applicant. By accepting a student applicant Once you approve a Student Applicant you can enroll them to a program. When you click the 'Enroll' buttom, -the system shall create a student against that applicant and redirect you to the [Program Enrollment form]({{docs_base_url}}/user/manual/en/schools/student/program-enrollment.html). +the system shall create a student against that applicant and redirect you to the [Program Enrollment form](/docs/user/manual/en/schools/student/program-enrollment.html). -Student Applicant Enrollment +Student Applicant Enrollment {next} diff --git a/erpnext/docs/user/manual/en/schools/fees/fee-category.md b/erpnext/docs/user/manual/en/schools/fees/fee-category.md index d6694b503d..fbf43e6f23 100644 --- a/erpnext/docs/user/manual/en/schools/fees/fee-category.md +++ b/erpnext/docs/user/manual/en/schools/fees/fee-category.md @@ -2,6 +2,6 @@ List of all different type of fees collected. -Fees Category +Fees Category {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/fees/fee-structure.md b/erpnext/docs/user/manual/en/schools/fees/fee-structure.md index 08d09e545e..a1dd9be6ad 100644 --- a/erpnext/docs/user/manual/en/schools/fees/fee-structure.md +++ b/erpnext/docs/user/manual/en/schools/fees/fee-structure.md @@ -2,6 +2,6 @@ A Fee Structure is a template that can be used while making fee records. -Fees Structure +Fees Structure {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/fees/fees.md b/erpnext/docs/user/manual/en/schools/fees/fees.md index 242abf8797..f17720ce85 100644 --- a/erpnext/docs/user/manual/en/schools/fees/fees.md +++ b/erpnext/docs/user/manual/en/schools/fees/fees.md @@ -1,8 +1,8 @@ # Fees Maintain a record of fees collected from students. -The [Fee Structure]({{docs_base_url}}/user/manual/en/schools/fees/fee-structure.html) is fetched based on the selected Program and Academic Term. +The [Fee Structure](/docs/user/manual/en/schools/fees/fee-structure.html) is fetched based on the selected Program and Academic Term. -Fees +Fees {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/fees/index.md b/erpnext/docs/user/manual/en/schools/fees/index.md index f75c53774f..c5be5f6810 100644 --- a/erpnext/docs/user/manual/en/schools/fees/index.md +++ b/erpnext/docs/user/manual/en/schools/fees/index.md @@ -2,7 +2,7 @@ This section contains 'Fee' related documents. -Fees Section +Fees Section ### Topics diff --git a/erpnext/docs/user/manual/en/schools/index.md b/erpnext/docs/user/manual/en/schools/index.md index e2172ff916..8c766d6db4 100644 --- a/erpnext/docs/user/manual/en/schools/index.md +++ b/erpnext/docs/user/manual/en/schools/index.md @@ -1,6 +1,8 @@ +# Schools + The School Modules is designed to meet requirements of Schools, Colleges & Educational Institutes. -Fees Section +Fees Section {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/schedule/course-schedule.md b/erpnext/docs/user/manual/en/schools/schedule/course-schedule.md index 9c27f61ac7..9f7d980998 100644 --- a/erpnext/docs/user/manual/en/schools/schedule/course-schedule.md +++ b/erpnext/docs/user/manual/en/schools/schedule/course-schedule.md @@ -3,13 +3,13 @@ Course Schedule is the schedule of a session conducted by an Instructor for a particular Course. You can see the overall course schedule in the Calendar view. -Course Schedule +Course Schedule ### Marking Attendance You can mark attendance for a Student Group against a Course Schedule. -Course Schedule Attendance +Course Schedule Attendance - To make attendance, expand the attendance section. - Check the students who were present for that session. @@ -20,6 +20,6 @@ You can mark attendance for a Student Group against a Course Schedule. Once you have marked Attendance against a Course Schedule the Attendance section in the Course Schedule shall be hidden. A View Attendance button shall appear. Click on that button to view all attendance records created against that Course Schedule. -Course Schedule Attendance +Course Schedule Attendance {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/schedule/examination.md b/erpnext/docs/user/manual/en/schools/schedule/examination.md index cd5d8386b6..d167e9c56d 100644 --- a/erpnext/docs/user/manual/en/schools/schedule/examination.md +++ b/erpnext/docs/user/manual/en/schools/schedule/examination.md @@ -2,7 +2,7 @@ The Examination record can be used to track the exam schedule and the results of that exam. -Examination +Examination {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/schedule/index.md b/erpnext/docs/user/manual/en/schools/schedule/index.md index 3fd993ed03..57e578bd98 100644 --- a/erpnext/docs/user/manual/en/schools/schedule/index.md +++ b/erpnext/docs/user/manual/en/schools/schedule/index.md @@ -1,6 +1,6 @@ # Schedule -Schedule Section +Schedule Section ### Topics diff --git a/erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md b/erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md index 84b3908b17..9e13d6d0a6 100644 --- a/erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md +++ b/erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md @@ -2,7 +2,7 @@ This tool can be used to create 'Course Schedules'. -Scheduling Tool +Scheduling Tool ### Creating Course Schedules diff --git a/erpnext/docs/user/manual/en/schools/schedule/student-attendance.md b/erpnext/docs/user/manual/en/schools/schedule/student-attendance.md index 474b543b50..84e1ea8669 100644 --- a/erpnext/docs/user/manual/en/schools/schedule/student-attendance.md +++ b/erpnext/docs/user/manual/en/schools/schedule/student-attendance.md @@ -2,6 +2,6 @@ Maintains attendance record of the student. Attendance Records can be created against Course Schedules. -Student Attendance +Student Attendance {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/setup/academic-term.md b/erpnext/docs/user/manual/en/schools/setup/academic-term.md index dbce6d92ea..6306444b61 100644 --- a/erpnext/docs/user/manual/en/schools/setup/academic-term.md +++ b/erpnext/docs/user/manual/en/schools/setup/academic-term.md @@ -1,6 +1,6 @@ # Academic Term -Academic Term +Academic Term {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/setup/academic-year.md b/erpnext/docs/user/manual/en/schools/setup/academic-year.md index 4a153932bc..3913eb634b 100644 --- a/erpnext/docs/user/manual/en/schools/setup/academic-year.md +++ b/erpnext/docs/user/manual/en/schools/setup/academic-year.md @@ -1,5 +1,5 @@ # Academic Year -Academic Year +Academic Year {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/setup/course.md b/erpnext/docs/user/manual/en/schools/setup/course.md index da5fa379be..140131dccd 100644 --- a/erpnext/docs/user/manual/en/schools/setup/course.md +++ b/erpnext/docs/user/manual/en/schools/setup/course.md @@ -1,5 +1,5 @@ # Course -Course +Course {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/setup/index.md b/erpnext/docs/user/manual/en/schools/setup/index.md index 5a360ddecc..9de753614c 100644 --- a/erpnext/docs/user/manual/en/schools/setup/index.md +++ b/erpnext/docs/user/manual/en/schools/setup/index.md @@ -1,6 +1,6 @@ # Setup -Setup Section +Setup Section ### Topics diff --git a/erpnext/docs/user/manual/en/schools/setup/instructor.md b/erpnext/docs/user/manual/en/schools/setup/instructor.md index adbfe2a2f8..1a4d35161c 100644 --- a/erpnext/docs/user/manual/en/schools/setup/instructor.md +++ b/erpnext/docs/user/manual/en/schools/setup/instructor.md @@ -1,5 +1,5 @@ # Instructor -Instructor +Instructor {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/setup/program.md b/erpnext/docs/user/manual/en/schools/setup/program.md index 813019bfce..64513e20b0 100644 --- a/erpnext/docs/user/manual/en/schools/setup/program.md +++ b/erpnext/docs/user/manual/en/schools/setup/program.md @@ -1,5 +1,5 @@ # Program -Program +Program {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/setup/room.md b/erpnext/docs/user/manual/en/schools/setup/room.md index 052e96204a..bb265e3ea2 100644 --- a/erpnext/docs/user/manual/en/schools/setup/room.md +++ b/erpnext/docs/user/manual/en/schools/setup/room.md @@ -1,6 +1,6 @@ # Room -Room +Room {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/student/student-batch.md b/erpnext/docs/user/manual/en/schools/student/student-batch.md index 0f29d46031..4987c0313f 100644 --- a/erpnext/docs/user/manual/en/schools/student/student-batch.md +++ b/erpnext/docs/user/manual/en/schools/student/student-batch.md @@ -2,6 +2,6 @@ Student batch is a collection of students from Student Groups. -Student +Student {next} diff --git a/erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md b/erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md index 1fcd87c745..130c94491e 100644 --- a/erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md +++ b/erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md @@ -1,6 +1,8 @@ +# Student Group Creation Tool + This tool allows you to create student groups in bulk. You can specify multiple parameters to create them. -Student Group Creation Tool +Student Group Creation Tool {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/student/student-group.md b/erpnext/docs/user/manual/en/schools/student/student-group.md index eaa60f78b0..191e917a8b 100644 --- a/erpnext/docs/user/manual/en/schools/student/student-group.md +++ b/erpnext/docs/user/manual/en/schools/student/student-group.md @@ -3,6 +3,6 @@ A student group is a collection of students taking a same course. You can create Course Schedules and Examinations against a Student Group. A student group needs to be created for every course in a particular academic term and academic year. -Student Group +Student Group {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/schools/student/student-log.md b/erpnext/docs/user/manual/en/schools/student/student-log.md index 787dacb471..a037a231ac 100644 --- a/erpnext/docs/user/manual/en/schools/student/student-log.md +++ b/erpnext/docs/user/manual/en/schools/student/student-log.md @@ -3,6 +3,6 @@ You can make a note of student activities using student log. Logs can be categorised as 'General', 'Academic', 'Medical' or 'Achievement' -Student +Student {next} diff --git a/erpnext/docs/user/manual/en/schools/student/student.md b/erpnext/docs/user/manual/en/schools/student/student.md index a86d36e8cc..dd99a80d2f 100644 --- a/erpnext/docs/user/manual/en/schools/student/student.md +++ b/erpnext/docs/user/manual/en/schools/student/student.md @@ -5,6 +5,6 @@ The student doctype maintains personal details of the student. You can view everything related to a particular student on this page. Eg : Fees, Student Group, etc -Student +Student {next} diff --git a/erpnext/docs/user/manual/en/selling/articles/Selling-in-different-UOM.md b/erpnext/docs/user/manual/en/selling/articles/Selling-in-different-UOM.md index 1efed7592f..2589133ec0 100644 --- a/erpnext/docs/user/manual/en/selling/articles/Selling-in-different-UOM.md +++ b/erpnext/docs/user/manual/en/selling/articles/Selling-in-different-UOM.md @@ -1,3 +1,5 @@ +# Selling In Different Uom + #Selling in Different Unit (UoM) A sell price unit of measure (UOM) is the UOM with which you price items. You can have multiple sell price UOMs for any inventory item. However, when Customer places, UoM for an item could change. @@ -7,7 +9,7 @@ For example an Item Pen is stocked in Nos, but sold in Box. Hence we will make S ###Step 1: In the Item master, under Unit of Measure section, you can list all the possible UoM of an item, with its UoM Conversion Factor. Update UoM Conversion Factors In one Box, if you get 10 Nos. of Pen, UoM Conversion Factor would be 10. -Item Unit of Measure +Item Unit of Measure ###Setp 2: In the Sale Order, you will find two UoM fields @@ -17,7 +19,7 @@ In one Box, if you get 10 Nos. of Pen, UoM Conversion Factor would be 10. In both the fields, default UoM of an item will be fetched by default. You should edit UoM field, and select Sale UoM (Box in this case). Updating Sales UoM is mainly for the reference of the Customer. In the print format, you will see item quantity in the Sales UoM. -Sale order Unit of Measure +Sale order Unit of Measure Based on the Qty and Conversion Factor, qty will be calculated in the Stock UoM of an item. If you sell just one Box, then Qty as per stock UoM will be set as 10. @@ -26,4 +28,4 @@ Based on the Qty and Conversion Factor, qty will be calculated in the Stock UoM Irrespective of the Sales UoM selected in the Sale Order, stock ledger posting will be done in the Default UoM of an item. Hence you should ensure that conversion factor is entered correctly while selling item in different UoM. -Stock report in UOM +Stock report in UOM diff --git a/erpnext/docs/user/manual/en/selling/articles/adding-margin.md b/erpnext/docs/user/manual/en/selling/articles/adding-margin.md index 2725feefbe..fd96d466a4 100644 --- a/erpnext/docs/user/manual/en/selling/articles/adding-margin.md +++ b/erpnext/docs/user/manual/en/selling/articles/adding-margin.md @@ -1,3 +1,5 @@ +# Adding Margin + #Adding Margin User Can apply the margin on Quotation Item and Sales Order Item using following two options. @@ -9,7 +11,7 @@ To setup Pricing Rule, go to: ####Adding Margin in Pricing Rule -Adding Margin in Pricing Rule +Adding Margin in Pricing Rule Total Margin is calculated as follows: `Rate = Price List Rate + Margin Rate` @@ -22,7 +24,7 @@ To add Price List, go to: ####Adding Item Price -Adding Margin in Pricing Rule +Adding Margin in Pricing Rule 2) Apply margin direct on Item: If user wants to apply the margin without pricing rule, they can use this option. In Quotation Item and Sales Order Item, user can select the margin type and rate or amount. The system will calculate the margin and apply it on price list rate to calculate the rate of the product. @@ -34,4 +36,4 @@ add item and scroll down to section where you can find the Margin Type ####Adding Margin in Quotation -Adding Margin in Quotation +Adding Margin in Quotation diff --git a/erpnext/docs/user/manual/en/selling/articles/applying-discount.md b/erpnext/docs/user/manual/en/selling/articles/applying-discount.md index ad66ccc97c..a2a62a4f7a 100644 --- a/erpnext/docs/user/manual/en/selling/articles/applying-discount.md +++ b/erpnext/docs/user/manual/en/selling/articles/applying-discount.md @@ -1,3 +1,5 @@ +# Applying Discount + #Applying Discount There are several ways Discount can be applied on an item in the sales transactions. @@ -6,28 +8,28 @@ There are several ways Discount can be applied on an item in the sales transacti You can find the Discount (%) field in the Item table. Discount (%) is applied on the Price List Rate to get the selling Rate of the Item. -Discount Percentage +Discount Percentage The feature of Discount (%) is available in all sales and purchase transactions. -You can use Pricing Rule for auto-application of Discount (%). [Click here to learn how Pricing Rule functions.]({{docs_base_url}}/user/manual/en/accounts/pricing-rule.html) +You can use Pricing Rule for auto-application of Discount (%). [Click here to learn how Pricing Rule functions.](/docs/user/manual/en/accounts/pricing-rule.html) #### 2. Discount on Net Total and Grand Total In the "Additional Discount" section, you can apply discount as amount or as percentage. -Discount Percentage +Discount Percentage ##### Discount on Net Total If Discount Amount is applied on **Net Total**, then item's Net Rate and Net Amount is calculated as per the Discount Amount. Net Rate and Amount field will be visible only if Discount is applied using this feature. -Discount Percentage +Discount Percentage ##### Discount on Grand Total If Discount Amount is applied based on the **Grand Total**, then with item's Net Rate, Net Amount as well as taxes are also re-calculated as per Discount Amount. -Discount Percentage +Discount Percentage \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/selling/articles/close-sales-order.md b/erpnext/docs/user/manual/en/selling/articles/close-sales-order.md index 3990e7d309..0b41a64a4c 100644 --- a/erpnext/docs/user/manual/en/selling/articles/close-sales-order.md +++ b/erpnext/docs/user/manual/en/selling/articles/close-sales-order.md @@ -1,8 +1,10 @@ +# Close Sales Order + #Close Sales Order In the submitted Sales Orders, you will find **Stop** option. Stopping Sales Order will restrict user from creating Delivery Note and Sales Invoice against it. -Close SO +Close SO ####Scenario @@ -10,7 +12,7 @@ An order is received for ten Wind Turbines. Sales Order is also created for ten In this case, create Delivery Note and Sales Invoice will be created only for the seven units. And the Sales Order should be set as stopped. -Closed SO +Closed SO Once Sales Order is set as stopped, you will not have pending quantities (three in this case) reflecting in Pending to Deliver and Pending to Invoice reports. To make further transactions against Stopped Sales Order, you should first Unstop it. diff --git a/erpnext/docs/user/manual/en/selling/articles/drop-shipping.md b/erpnext/docs/user/manual/en/selling/articles/drop-shipping.md index 2d12ff4a21..fd39d4804e 100644 --- a/erpnext/docs/user/manual/en/selling/articles/drop-shipping.md +++ b/erpnext/docs/user/manual/en/selling/articles/drop-shipping.md @@ -1,3 +1,5 @@ +# Drop Shipping + #Drop Ship **Drop shipping** is a supply chain management technique in which the retailer does not keep goods in stock. Instead they transfer customer orders and shipment details to either the manufacturer, another retailer, or a wholesaler, who then ships the goods directly to the customer @@ -10,19 +12,19 @@ In ERPNext, you can create a Drop Shipping by creating Purchase Order against Sa Set **_Delivered by Supplier (Drop Ship)_** and **_Default Supplier_** in Item Master. -Setup Item Master +Setup Item Master #### Setup on Sales Order If Drop Shipping has set on Item master, it will automatically set **Supplier delivers to Customer** and **Supplier** on Sales Order Item. You can setup Drop Shipping, on Sales Order Item. Under **Drop Ship** section, set **Supplier delivers to Customer** and select **Supplier** agaist which Purchase Order will get created. -Setup Drop Shipping on Sales Order Item +Setup Drop Shipping on Sales Order Item #### Create Purchase Order After submitting a Sales Order, create Puchase Order. -Setup Drop Shipping on Sales Order Item +Setup Drop Shipping on Sales Order Item From Sales Order, all items, having **Supplier delivers to Customer** checked or **Supplier**(matching with supplier selected on For Supplier popup) mentioned, will get mapped onto Purchase Order. @@ -30,16 +32,16 @@ It will automatically set Customer, Customer Address and Contact Person. After submitting Purchase Order, to update delivery status, use **Mark as Delivered** button on Purchase Order. It will update delivery percetage and delivered quantity on Sales Order. -Purchase Order for Drop Shipping +Purchase Order for Drop Shipping **_Close_**, is a new feature introduced on **Purchase Order** and **Sales Order**, to close or to mark fulfillment. -Close Sales Order +Close Sales Order ###Drop Shipping Print Format You can notify, Suppliers by sending a email after submitting Purchase Order by attaching Drop Shipping print format. -Drop Dhip Print Format +Drop Dhip Print Format ###Video Help on Drop Ship diff --git a/erpnext/docs/user/manual/en/selling/articles/erpnext-for-services-organization.md b/erpnext/docs/user/manual/en/selling/articles/erpnext-for-services-organization.md index f905dfd511..09d071f302 100644 --- a/erpnext/docs/user/manual/en/selling/articles/erpnext-for-services-organization.md +++ b/erpnext/docs/user/manual/en/selling/articles/erpnext-for-services-organization.md @@ -1,3 +1,5 @@ +# Erpnext For Services Organization + #ERPNext for Service Organization **Question:** ERPNext looks primarily designed for the traders and manufacturers. Is ERPNext used by companies offering servies? @@ -14,7 +16,7 @@ The setup for a Service company differs primarily for Items. They don't maintain To create a Service (non-stock) Item, in the item master, uncheck "Maintain Stock" field. -Service Item +Service Item When creating Sales Order for the services, select Order Type as **Maintenance**. Sales Order of Maintenance Type needs lesser details compared to stock item's order like Delivery Note, item warehouse etc. @@ -32,11 +34,11 @@ Modules unchecked here will be hidden from all the User. Within the form, there are many fields only needed for companies into trading and manufacturing businesses. These fields can be hidden for the service company. Feature Setup is a tool where you can enable/disable specific feature. If a feature is disabled, then fields relevant to that feature is hidden from all the forms. For example, if Serial No. feature is disabled, then Serial. No. field from Item as well as from all the sales and purchase transaction will be hidden. -[To learn more about Feature Setup, click here.]({{docs_base_url}}/user/manual/en/customize-erpnext/hiding-modules-and-features.html). +[To learn more about Feature Setup, click here.](/docs/user/manual/en/customize-erpnext/hiding-modules-and-features.html). ####Permissions -ERPNext is the permission controlled system. Users access system based on permissions assigned to them. So, if user is not assigned Role related to Stock and Manufacturing module, it will be hidden from that User. [Click here to learn more about permission management.]({{docs_base_url}}/user/manual/en/setting-up/users-and-permissions.html). +ERPNext is the permission controlled system. Users access system based on permissions assigned to them. So, if user is not assigned Role related to Stock and Manufacturing module, it will be hidden from that User. [Click here to learn more about permission management.](/docs/user/manual/en/setting-up/users-and-permissions.html). You can also refer to help video on User and Permissions setting in ERPNext. diff --git a/erpnext/docs/user/manual/en/selling/articles/index.md b/erpnext/docs/user/manual/en/selling/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/selling/articles/index.md +++ b/erpnext/docs/user/manual/en/selling/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions.md b/erpnext/docs/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions.md index 781d2ceece..8cbfd1f1d4 100644 --- a/erpnext/docs/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions.md +++ b/erpnext/docs/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions.md @@ -1,16 +1,18 @@ +# Sales Persons In The Sales Transactions + #Sales Persons in the Sales Transactions -In ERPNext, Sales Person master is maintained in [tree structure]({{docs_base_url}}/user/manual/en/setting-up/articles/managing-tree-structure-masters.html). Sales Person is selectable in all the sales transactions. +In ERPNext, Sales Person master is maintained in [tree structure](/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters.html). Sales Person is selectable in all the sales transactions. Sales Persons can be updated in the Customer master as well. On selection of Customer in the transactions, Sales Persons as updated in the Customer will fetch into sales transaction. -Sales Person Customer +Sales Person Customer ####Sales Person Contribution If more than one sales persons are working together on an order, then contribution (%) should be set for each Sales Person. -Sales Person Order +Sales Person Order On saving transaction, based on the Net Total and Contriution (%), `Contribution to Net Total` will be calculated for each Sales Person. @@ -24,7 +26,7 @@ Check Sales Person's Transaction report from: This report can be generated based on Sales Order, Delivery Note and Sales Invoice. It will give you total amount of sale made by an employe. -Sales Person Report +Sales Person Report ####Sales Person wise Commission diff --git a/erpnext/docs/user/manual/en/selling/articles/shipping-rule.md b/erpnext/docs/user/manual/en/selling/articles/shipping-rule.md index d87ba36c4c..fc82ba4381 100644 --- a/erpnext/docs/user/manual/en/selling/articles/shipping-rule.md +++ b/erpnext/docs/user/manual/en/selling/articles/shipping-rule.md @@ -1,3 +1,5 @@ +# Shipping Rule + #Shipping Rule Shipping Rule master helps in defining a rule based on which shipping charge is applied on a sales transactions. @@ -10,7 +12,7 @@ To setup Shipping Rule, go to: ####Shipping Rule Conditions -Shipping Rule Prices +Shipping Rule Prices Referring above, you will notice that shipping charges are reducing as valye is increasing. This shipping charge will only be applied if transaction total falls under one of the above range. @@ -18,16 +20,16 @@ Referring above, you will notice that shipping charges are reducing as valye is You can set Shipping Charges valid for all the countries, or specify specific Country. If specific countries mentioned, then Shipping Charges will be applied only if Customer's country matches Country mentioned in the Shipping Rule. -Shipping Rule +Shipping Rule ####Shipping Account If shipping charges are applied based on Shipping Rule, then more values like Shipping Account, Cost Center will be needed as well to add row in the Taxes and Other Charges table of transaction. Hence these details are tracked as well in the Shipping Rule. -Shipping Account +Shipping Account ####Shipping Rule Application Following is an example of how shipping charges is auto-applied on Sales Order based on Shipping Rule. -Shipping Rule Application \ No newline at end of file +Shipping Rule Application \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/selling/quotation.md b/erpnext/docs/user/manual/en/selling/quotation.md index 1f7b06c45e..80af009ec8 100644 --- a/erpnext/docs/user/manual/en/selling/quotation.md +++ b/erpnext/docs/user/manual/en/selling/quotation.md @@ -1,3 +1,5 @@ +# Quotation + During a sale, the customer may request for a written note about the products or services you are planning to offer, along with the prices and other terms of engagement. This is called a “Proposal” or an “Estimate” or a “Pro Forma @@ -5,7 +7,7 @@ Invoice”or a **Quotation**. A typical Selling flow looks like: -Make Quotation from Opportunity +Make Quotation from Opportunity To create a new Quotation navigate to: @@ -15,7 +17,7 @@ To create a new Quotation navigate to: You can also create a Quotation from an Opportunity. -Make Quotation from Opportunity +Make Quotation from Opportunity A Quotation contains details about: @@ -34,7 +36,7 @@ A Quotation contains details about: The rates you quote may depend on two things. - * The Price List: If you have multiple Price Lists, you can select a Price List or tag it to the Customer (so that it is auto-selected). Your Item prices will automatically be updated from the Price List. For details refer [Price List]({{docs_base_url}}/user/manual/en/setting-up/price-lists.html) + * The Price List: If you have multiple Price Lists, you can select a Price List or tag it to the Customer (so that it is auto-selected). Your Item prices will automatically be updated from the Price List. For details refer [Price List](/docs/user/manual/en/setting-up/price-lists.html) * The Currency: If you are quoting to a Customer in a different currency, you will have to update the conversion rates to enable ERPNext to save the information in your standard Currency. This will help you to analyze the value of your Quotations in standard Currency. @@ -44,9 +46,9 @@ To add taxes to your Quotation, you can select a **Sales Taxes and Charges Templ For e.g -Taxes and Charges +Taxes and Charges -To understand taxes in detail visit [Taxes]({{docs_base_url}}/user/manual/en/setting-up/setting-up-taxes.html). +To understand taxes in detail visit [Taxes](/docs/user/manual/en/setting-up/setting-up-taxes.html). ### Terms and Conditions @@ -83,6 +85,6 @@ Print Heading. While making your sales transactions like a Quotation (or Sales Order) you can also give discounts to your customers. In the Discount section, add -the discount in percentage or fixed amount. Read [Discount](https://frappe.github.io/erpnext/user/manual/en/selling/articles/applying-discount) for more explanation. +the discount in percentage or fixed amount. Read [Discount](https://erpnext.org/docs/user/manual/en/selling/articles/applying-discount) for more explanation. {next} diff --git a/erpnext/docs/user/manual/en/selling/sales-order.md b/erpnext/docs/user/manual/en/selling/sales-order.md index b103038036..05f178b154 100644 --- a/erpnext/docs/user/manual/en/selling/sales-order.md +++ b/erpnext/docs/user/manual/en/selling/sales-order.md @@ -11,7 +11,7 @@ a Sales Order. ### Sales Order Flow-Chart -Sales Order flow +Sales Order flow To create a new Sales Order go to: @@ -21,11 +21,11 @@ To create a new Sales Order go to: You can also create a Sales Order from a submitted Quotation. -Make Sales Order from Quotation +Make Sales Order from Quotation Or you can create a new Sales Order and pull details from an Quotation. -Make Sales Order from Quotation +Make Sales Order from Quotation Most of the information in your Sales Order is the same as the Quotation. There are a few amongst other things that a Sales Order will ask you to @@ -56,9 +56,9 @@ To add taxes to your Quotation, you can select a **Sales Taxes and Charges Templ For e.g -Taxes and Charges +Taxes and Charges -To understand taxes in detail visit [Taxes]({{docs_base_url}}/user/manual/en/setting-up/setting-up-taxes.html). +To understand taxes in detail visit [Taxes](/docs/user/manual/en/setting-up/setting-up-taxes.html). ### Sales Team @@ -82,7 +82,7 @@ On updating the Sales Order, a Recurring ID will be generated which will be same ERPNext will automatically create new Order and mail a notification to the Email Addresses you set in the 'Notification Email Address'field. -Reccuring Sales Order +Reccuring Sales Order ### Next Steps diff --git a/erpnext/docs/user/manual/en/selling/setup/index.md b/erpnext/docs/user/manual/en/selling/setup/index.md index 0ab4b5ab0b..48add3e986 100644 --- a/erpnext/docs/user/manual/en/selling/setup/index.md +++ b/erpnext/docs/user/manual/en/selling/setup/index.md @@ -1,3 +1,5 @@ +# Setup + This section includes information on how to setup customer groups, sales partners, sales persons and terms and conditions. It has instructions on how to configure selling settings, in order to enable default fields. diff --git a/erpnext/docs/user/manual/en/selling/setup/item-price.md b/erpnext/docs/user/manual/en/selling/setup/item-price.md index 92b41fb185..7e352b9a15 100644 --- a/erpnext/docs/user/manual/en/selling/setup/item-price.md +++ b/erpnext/docs/user/manual/en/selling/setup/item-price.md @@ -1,3 +1,5 @@ +# Item Price + Item Price is the record in which you can log sellig and buying rate of an item. There are two ways to reach to new Item Price form. @@ -14,7 +16,7 @@ Step 1: Select Price List You can create multiple Price List in ERPNext to track Selling and Buying Price List of an item separtely. Also if item's selling prices id changing based on territory, or due to other criteria, you can create multiple selling Price List for it. -+Item Price list ++Item Price list On selection of Price List, its currency and for selling or buying property will be fetched as well. @@ -24,13 +26,13 @@ Step 2: Select Item Select item for which Item Price record is to be created. On selection of Item Code, Item Name and Description will be fetched as well. -+Item Price list ++Item Price list Step 3: Enter Rate Enter selling/buying rate of an item in Price List currency. -+Item Price list ++Item Price list Step 4: Save Item Price diff --git a/erpnext/docs/user/manual/en/selling/setup/product-bundle.md b/erpnext/docs/user/manual/en/selling/setup/product-bundle.md index 123eeaf963..b587374ed1 100644 --- a/erpnext/docs/user/manual/en/selling/setup/product-bundle.md +++ b/erpnext/docs/user/manual/en/selling/setup/product-bundle.md @@ -1,3 +1,5 @@ +# Product Bundle + #Product Bundle Product Bundle can be seen as something like a "Bill-of-Material" on the Sales side. It's a master where you can list existing items which are bundled together and sold as a set (or bundle). For instance, when you sell a laptop, you need to ensure that charger, mouse and laptop bag are delivered with it and stock levels of these items get affected. @@ -11,7 +13,7 @@ To create new Product Bundle, Go to: Selling > Setup > Product Bundle > New -Product Bundle +Product Bundle ###Select Parent Item @@ -33,7 +35,7 @@ Remember: The "Parent Item" is just virtual, so your main product (a laptop in o When making Sales transactions (Sales Invoice, Sales Order, Delivery Note) the Parent Item will be selected in the main item table. -Product Bundle +Product Bundle On selection of a Parent Item in the main item table, its child items will be fetched in Packing List table of the transaction. If child item is the serialized item, you will be able to specify its Serial Mo. diff --git a/erpnext/docs/user/manual/en/selling/setup/sales-partner.md b/erpnext/docs/user/manual/en/selling/setup/sales-partner.md index 728218fc90..d8bf0d0377 100644 --- a/erpnext/docs/user/manual/en/selling/setup/sales-partner.md +++ b/erpnext/docs/user/manual/en/selling/setup/sales-partner.md @@ -1,3 +1,5 @@ +# Sales Partner + People who assist you in getting business are termed as Sales Partners. Sales Partners can be represented by different names in ERPNext. You can call them Channel Partner, Distributor, Dealer, Agent, Retailer, Implementation Partner, Reseller etc. For each Sales Partner, you can define commission offer to them. When Sales Partner is selected in transactions, their commission is calculated over Net Total of Sales Order/Invoice or Delivery Note. @@ -10,7 +12,7 @@ To create a sales partner go to: Sales Partners are saved with Sales Partner name provided by user. -Sales Partner +Sales Partner You can track their address and contact details and also allocate Sales Partner for each Item Group, based on Qty and Amount. @@ -19,13 +21,13 @@ You can track their address and contact details and also allocate Sales Partner To include the name of your Partner on your website, check the "Show in Website" box. When click on "Show in Website", you will see field where you can attach logo of partner's company and enter brief and introduction of partner. -Sales Partner +Sales Partner To see listing of partner, you should go to: https://example.erpnext.com/partners -Sales Partner +Sales Partner {next} diff --git a/erpnext/docs/user/manual/en/selling/setup/sales-person-target-allocation.md b/erpnext/docs/user/manual/en/selling/setup/sales-person-target-allocation.md index 08bbd78236..874a95e8df 100644 --- a/erpnext/docs/user/manual/en/selling/setup/sales-person-target-allocation.md +++ b/erpnext/docs/user/manual/en/selling/setup/sales-person-target-allocation.md @@ -1,3 +1,5 @@ +# Sales Person Target Allocation + With management of Sales Person, ERPNext also allow you to assign target to Sales Persons based on Item Group and Territory. Based on target allocated and actual sales booked by Sales Person, you will get target variance report for the Sales Person. ###1. Sales Person - Item Groupwise Target Allocation @@ -12,7 +14,7 @@ To allocate target, you should open specific Sales Person master. In the Sales Person master, you will find table called Sales Person Target. -Sales person target +Sales person target In this table, you should select Item Group, Fiscal Year, Target Qty and Amount. @@ -23,7 +25,7 @@ In this table, you should select Item Group, Fiscal Year, Target Qty and Amount. If you wish to spread allocated target across months, then you should setup Monthly Distribution master, and select it in the Sales Person master. Considering our example, target for the month of December will be set as 5 qty (10% of total allocation). -Target Distribution +Target Distribution ####Report - Sales Person Target Variance Item Groupwise @@ -34,7 +36,7 @@ To check this report, go to: This report will provide you variance between target and actual performance of Sales Person. This report is based on Sales Order report. -Target Item Group +Target Item Group As per the report, allocated target to Sales Person for the month of December was 5 qty. However, Sales Order was made for this employee and Item Group for only 3 qty. Hence, variance of 2 qty is shown in the report. @@ -50,7 +52,7 @@ To allocate target to Sales Person based on Territory, you can should select spe In the Territory master, you will find field to select Territory Manager. This field is linked to "Sales Person" master. -Sales Person Territory Manager +Sales Person Territory Manager ####2.2 Allocating Target @@ -64,7 +66,7 @@ Using this Monthly Distribution document, you can divide target Qty or Amount ac This report will provide you variance between target and actual performance of Sales in particular territory. This report is based on Sales Order report. Though Sales Person is defined in the Territory master, its details are not pulled in the report. -Sales Person Territory Report +Sales Person Territory Report --- @@ -76,13 +78,13 @@ To create new Monthly Distriibution, go to: `Accounts > Monthly Distributon` -Target Distribution +Target Distribution You can link Monthly Distribution while allocating targets in Sales Person as well as in Territory master. ###See Also -1. [Sales Person Target Allocation]({{docs_base_url}}/user/manual/en/selling/setup/sales-person-target-allocation) -2. [Using Sales Person in transactions]({{docs_base_url}}/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions) +1. [Sales Person Target Allocation](/docs/user/manual/en/selling/setup/sales-person-target-allocation) +2. [Using Sales Person in transactions](/docs/user/manual/en/selling/articles/sales-persons-in-the-sales-transactions) {next} diff --git a/erpnext/docs/user/manual/en/selling/setup/selling-settings.md b/erpnext/docs/user/manual/en/selling/setup/selling-settings.md index d5d71173f2..96dbc29508 100644 --- a/erpnext/docs/user/manual/en/selling/setup/selling-settings.md +++ b/erpnext/docs/user/manual/en/selling/setup/selling-settings.md @@ -1,7 +1,9 @@ +# Selling Settings + Selling Setting is where you can define propertiese which will be applied in your selling transactions. Let's check into each property one by one. -Selling Settings +Selling Settings ####1. Customer Naming By diff --git a/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md b/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md index c4369cbf20..0d8c269fc2 100644 --- a/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md +++ b/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md @@ -1,6 +1,8 @@ +# Shipping Rule + Using Shipping Rule you can define the cost for delivering the product to the customer. You can define different shipping rules for the same item across different territories. -Shipping Rule +Shipping Rule {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/setting-up/articles/change-password.md b/erpnext/docs/user/manual/en/setting-up/articles/change-password.md index 505d6f3ab3..1a36d8a147 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/change-password.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/change-password.md @@ -1,3 +1,5 @@ +# Change Password + #Change User Password Each ERPNext user can customize password for his/her ERPNext account. Also user with System Manager role will be able to reset password for himself as well as for other users. Following are the steps to go about changing your password. @@ -5,11 +7,11 @@ Each ERPNext user can customize password for his/her ERPNext account. Also user ####Step 1: Go to My Setting -Change Password +Change Password ####Step 2: Set New Password -Change Password +Change Password Enter the new password and save the form to save changes. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/delete-a-company-and-all-related-transactions.md b/erpnext/docs/user/manual/en/setting-up/articles/delete-a-company-and-all-related-transactions.md index fa7614f491..66db2ecac4 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/delete-a-company-and-all-related-transactions.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/delete-a-company-and-all-related-transactions.md @@ -1,3 +1,5 @@ +# Delete A Company And All Related Transactions + #Delete All Related Transactions for a Company Often, users setup all the master data and then create a few dummy records. Then they want to delete the dummy records and the company and start over again, keeping the other master data like Customers, Items, BOMs intact. @@ -12,7 +14,7 @@ In Company master, click on the **Delete Company Transactions** button right at This action will wipe out all the data related to that company like Quotation, Invoices, Purchase Orders etc. So be careful -Delete Transactions +Delete Transactions **Note:** If you want to delete the company record itself, use the normal "Delete" button from Menu options. It will also delete Chart of Accounts, Chart of Cost Centers and Warehouse records for that company. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/edit-submitted-document.md b/erpnext/docs/user/manual/en/setting-up/articles/edit-submitted-document.md index 7148611edf..09f1f6b74b 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/edit-submitted-document.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/edit-submitted-document.md @@ -1,3 +1,5 @@ +# Edit Submitted Document + #Edit Submitted Document To edit submitted document, you need to cancel it first. Followings are steps to edit submitted document. @@ -6,19 +8,19 @@ To edit submitted document, you need to cancel it first. Followings are steps to You will find Cancel button on upper right corner of submitted document. -Cancel Doc +Cancel Doc ####Step 2: Amend the document On cancellation of submitted document, Amend button will be became visible. -Amend Doc +Amend Doc ####Step 3: Save and Submit the document On clicking Amend button, same document will become editable again. After Making required changes, save and submit the document. -Resave and Submit Doc +Resave and Submit Doc
    Note: If your document linked with other documents, then you will need to cancel last document you made on top of this document. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/index.md b/erpnext/docs/user/manual/en/setting-up/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/index.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md b/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md index 3cbf159c2f..e2f6c714ee 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md @@ -1,7 +1,9 @@ +# Integrating Erpnext With Other Application + #Integrating ERPNext with other Applications -For now, ERPNext has out-of-the-box integration available for some applications like Shopify, your SMS gateway and payment gateway. To integrate ERPNext with other application, you can use REST API of Frappe. Check following links to learn more about REST API of Frappe. +For now, ERPNext has out-of-the-box integration available for some applications like Shopify, your SMS gateway and payment gateway. To integrate ERPNext with other application, you can use REST API of Frappé. Check following links to learn more about REST API of Frappé. -[Frappe Rest API](https://frappe.github.io/frappe/user/en/guides/integration/rest_api.html) +[Frappé Rest API](https://frappe.io/docs/user/en/guides/integration/rest_api.html) \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/setting-up/articles/manage-header-and-footer.md b/erpnext/docs/user/manual/en/setting-up/articles/manage-header-and-footer.md index 24a9a55298..679f0c83bf 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/manage-header-and-footer.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/manage-header-and-footer.md @@ -1,9 +1,11 @@ +# Manage Header And Footer + #Manage Header And Footer Check following to learn how to setup Letter Head in ERPNext. -[Managing Letter head]({{docs_base_url}}/user/manual/en/setting-up/setup-wizard/step-5-letterhead-and-logo.html) +[Managing Letter head](/docs/user/manual/en/setting-up/setup-wizard/step-5-letterhead-and-logo.html) ERPNext doesn't have option to define standard Footer. As a work around, you can use Terms and Condition master for footer. Content of Terms and Condition is already the last to appear in the standard print formats on transactions. Check following link to learn how to manage Terms and Conditions in ERPNext. -[Terms and Condition]({{docs_base_url}}/user/manual/en/setting-up/print/terms-and-conditions.html) +[Terms and Condition](/docs/user/manual/en/setting-up/print/terms-and-conditions.html) diff --git a/erpnext/docs/user/manual/en/setting-up/articles/managing-multiple-companies.md b/erpnext/docs/user/manual/en/setting-up/articles/managing-multiple-companies.md index 40c12f4ab0..89574088c4 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/managing-multiple-companies.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/managing-multiple-companies.md @@ -1,10 +1,12 @@ +# Managing Multiple Companies + #Managing Multiple Companies ERPNext allows you to create multiple companies in a single ERPNext instance. In one account has multiple companies, you will find option to select Company in each transactions. While most of the records (mostly transactions) will be separated based on Company, there are few masters like Item, Item Group, Customer Group, Territory etc. which are common among all the companies. -If you have separate teams working on each company, you can restrict access of the User to the data of specific Company. Click [here]({{docs_base_url}}/user/manual/en/setting-up/users-and-permissions/) to know how to set permission rules for giving restricted access to the User. +If you have separate teams working on each company, you can restrict access of the User to the data of specific Company. Click [here](/docs/user/manual/en/setting-up/users-and-permissions/) to know how to set permission rules for giving restricted access to the User. Following are the steps to add new Company. @@ -16,7 +18,7 @@ Following are the steps to add new Company. Company will be saved with Company Name provided. -New Company +New Company Also, you can define other properties for new company like: @@ -28,13 +30,13 @@ Also, you can define other properties for new company like: Value will be auto-filled in most of these field to define company-wise defaults. You can edit/customize it as per your requirement. -New Company +New Company ####Chart of Account for New Company A separate Chart of Account master will be set for each company in the ERPNext. This allows you managing Accounts/Ledger master separately for each company. Also it allows you avail financial statement and reports like Balance Sheet and Profit and Loss Statement separately for each company. -New Company +New Company \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/setting-up/articles/managing-perm-level.md b/erpnext/docs/user/manual/en/setting-up/articles/managing-perm-level.md index f79229bb78..9923645d33 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/managing-perm-level.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/managing-perm-level.md @@ -1,10 +1,12 @@ +# Managing Perm Level + #Managing Perm Level in Permission Manager In each document, you can group fields by "levels". Each group of field is denoted by a unique number (0, 1, 2, 3 etc.). A separate set of permission rules can be applied to each field group. By default all fields are of level 0. -Perm Level for a field can be defined in the [Customize Form]({{docs_base_url}}/user/manual/en/customize-erpnext/customize-form.html). +Perm Level for a field can be defined in the [Customize Form](/docs/user/manual/en/customize-erpnext/customize-form.html). -Perm Level Field +Perm Level Field If you need to assign different permission of particular field to different users, you can achieve it via Perm Level. Let's consider an example for better understanding. @@ -14,11 +16,11 @@ For the amount related fields, you should set Perm Level as (say) 2. For Stock Manager, they will have permission on fields on Delivery Note as Perm Level 2 whereas a Stock User will not have any permission on Perm Level 2 for Delivery Note. -Perm Level Rule +Perm Level Rule Considering the same scenario, if you want a Stock User to access a field at Perm Level 2, but not edit it, the Stock User will be assigned permission on Perm Level 2, but only for read, and not for write/edit. -Perm Level Rule 2 +Perm Level Rule 2 Perm Level (1, 2, 3) not need be in order. Perm Level is primarily for grouping number of fields together, and then assigning permission to Roles for that group. Hence, you can set any perm level for an item, and then do permission setting for it. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters.md b/erpnext/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters.md index 98e67c672e..021f36a100 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters.md @@ -1,3 +1,5 @@ +# Managing Tree Structure Masters + #Managing Tree Structure Masters Some of the masters in ERPNext are maintained in tree structure. Tree structured masters allow you to set Parent master, and Child masters under those Parents. Setting up this structure allows you creating intelligent report, and track growth at each level in the hierarchy. @@ -24,7 +26,7 @@ Following are the steps to manage and create record in the tree structured maste ####Step 2 : Parent Territory -Default Territories +Default Territories When click on Parent territory, you will see option to add child territory under it. All default Territory groups will be listed under Parent group called "All Territories". You can add further Parent or child Territory Groups under it. @@ -42,11 +44,11 @@ If Group Node selected as Yes, then this Territory will be created as Parent, wh
    Only child Territory Groups are selectable in another masters and transactions.
    -Default Territories +Default Territories Following is how Child Territories will be listed under a Parent Territory. -Adding new Territories +Adding new Territories Following this steps, you can manage other tree masters as well in ERPNext. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/naming-series-current-value.md b/erpnext/docs/user/manual/en/setting-up/articles/naming-series-current-value.md index 2e7145d85e..c6b6abe4ab 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/naming-series-current-value.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/naming-series-current-value.md @@ -1,6 +1,8 @@ +# Naming Series Current Value + #Setting the Current Value for Naming Series -Naming Series feature allows you to define prefix for naming of a documents. For example, if a Sales Order has prefix "SO", then the series will be generated as SO-00001, SO-00002... and so on. Click [here]({{docs_base_url}}/user/manual/en/setting-up/settings/naming-series.html) to learn how you can customize Number Series for a transaction/master in ERPNext. +Naming Series feature allows you to define prefix for naming of a documents. For example, if a Sales Order has prefix "SO", then the series will be generated as SO-00001, SO-00002... and so on. Click [here](/docs/user/manual/en/setting-up/settings/naming-series.html) to learn how you can customize Number Series for a transaction/master in ERPNext. ### 1. Setting the Current Value @@ -14,19 +16,19 @@ For example, you have 322 Sales Orders created in your old system with SO00322 a #### Update Series Section -Update Series Section +Update Series Section #### Select Prefix Considering our scenario, prefix for Sales Order will be "SO". -Series Prefix +Series Prefix #### Current Value If you have currently 12 Sales Orders created in your account, then current value updated will be 12. You can edit Current Value to 322, and then click on Update Series Number. -Series Current Value +Series Current Value With this setting, you will have numbering for the New Sales Orders starting with #323. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/overwriting-data-from-data-import-tool.md b/erpnext/docs/user/manual/en/setting-up/articles/overwriting-data-from-data-import-tool.md index dafac3b7ea..4632af40a1 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/overwriting-data-from-data-import-tool.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/overwriting-data-from-data-import-tool.md @@ -1,3 +1,5 @@ +# Overwriting Data From Data Import Tool + #Overwriting Data from Data Import Tool Data Import Tool allows importing documents (like customers, Suppliers, Orders, Invoices etc.) from spreadsheet file into ERPNext. The very same tool can also be used for overwrite values in the existing documents. @@ -14,7 +16,7 @@ Template Used for overwriting data will be same as one used for importing new it Since items to be over-written will be already available in the system, while downloading template, click on "Download with data" to get all the existing items in the template. -Download Template +Download Template ####Step 2: Prepare Data @@ -22,7 +24,7 @@ In the template, we can only keep rows of the items to be overwritten and delete Enter new value in the Item Group column for an item. Since Item Group is a master in itself, ensure Item Group entered in the spreadsheet file is already added in the Item Group master. -Update Values +Update Values Since we are overwriting only Item Group, only following columns will be mandatory. @@ -36,13 +38,13 @@ Columns of other field which won't have any impact can be removed, even if they After updating Item Groups in spreadheet, come back to Data Import Tool in ERPNext. Browse and select the File/template which has data to be overwritten. -Browse template +Browse template ####Step 4: Upload On clicking Import, Item Group will be over-written. -Upload +Upload If validation of values fails, then it will indicate row no. of spreadsheet for which validation failed and needs correction. In that case, you should corrected value in that row of spreadsheet, and then import same file again. If validation fails even for one row, none of the records are imported/overwritten. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/rename-user.md b/erpnext/docs/user/manual/en/setting-up/articles/rename-user.md index 643d243d27..71f7b8bf06 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/rename-user.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/rename-user.md @@ -1,3 +1,5 @@ +# Rename User + #Rename User Renaming functionality allows you to edit id of specific record. User is saved with person's Email Address. Only User with System Manager's role will be able to rename User IDs. @@ -14,13 +16,13 @@ Open User to be renamed. From Menu, select Rename. -Rename +Rename #### Step 3: Update Enter valid Email Address and click on Rename. -Update +Update After successful renaming, User will be able login using updated user id. diff --git a/erpnext/docs/user/manual/en/setting-up/articles/using-custom-domain-on-erpnext.md b/erpnext/docs/user/manual/en/setting-up/articles/using-custom-domain-on-erpnext.md index ff631b1fc7..2d82a5337e 100644 --- a/erpnext/docs/user/manual/en/setting-up/articles/using-custom-domain-on-erpnext.md +++ b/erpnext/docs/user/manual/en/setting-up/articles/using-custom-domain-on-erpnext.md @@ -1,3 +1,5 @@ +# Using Custom Domain On Erpnext + If you have subscribed to any of the plans at [ERPNext](https://erpnext.com), you can have us serve your site on your custom domain (for example at http://example.com). This enables your website to be served on a custom domain. diff --git a/erpnext/docs/user/manual/en/setting-up/authorization-rule.md b/erpnext/docs/user/manual/en/setting-up/authorization-rule.md index f6daa1972e..822136696f 100644 --- a/erpnext/docs/user/manual/en/setting-up/authorization-rule.md +++ b/erpnext/docs/user/manual/en/setting-up/authorization-rule.md @@ -1,3 +1,5 @@ +# Authorization Rule + Authorization Rule is a tool to define rule for conditional authorization. If you sales and purchase transactions of higher value or discount requires an authorization from senior manager, you can set authorization rule for it. @@ -34,7 +36,7 @@ Select approvers Role. It will be Sales Manager role which if assigned to user, Set Above Value. Given the exmaple, Above Value will be set as 10000. -Authorization Rule +Authorization Rule If Sales User tries submitting Sales Order of value higher than 10000, then he will get error message. diff --git a/erpnext/docs/user/manual/en/setting-up/bar-code.md b/erpnext/docs/user/manual/en/setting-up/bar-code.md index 2077842379..e317628af5 100644 --- a/erpnext/docs/user/manual/en/setting-up/bar-code.md +++ b/erpnext/docs/user/manual/en/setting-up/bar-code.md @@ -1,3 +1,5 @@ +# Bar Code + A Barcode is a machine-readable code in the form of numbers and a pattern of parallel lines of varying widths, printed on a commodity and used especially for stock control. @@ -18,7 +20,7 @@ setup, check the box that says Item Barcode. #### Figure 1: Check the box 'Item Barcode' -Barcode +Barcode To start scanning with a bar-code, go to @@ -39,7 +41,7 @@ Then go to Accounts and click on Sales Invoice. Check the box 'Is POS' #### Figure 2: Check the box 'Is POS' -Barcode +Barcode Go to Item and click on Add new row. diff --git a/erpnext/docs/user/manual/en/setting-up/calculate-incentive-for-sales-team.md b/erpnext/docs/user/manual/en/setting-up/calculate-incentive-for-sales-team.md index 72f36c04b0..d591f4082e 100644 --- a/erpnext/docs/user/manual/en/setting-up/calculate-incentive-for-sales-team.md +++ b/erpnext/docs/user/manual/en/setting-up/calculate-incentive-for-sales-team.md @@ -1,3 +1,5 @@ +# Calculate Incentive For Sales Team + Can be used in any Sales Transaction with **Sales Team** Table: diff --git a/erpnext/docs/user/manual/en/setting-up/company-setup.md b/erpnext/docs/user/manual/en/setting-up/company-setup.md index 1a07b86b43..429e201d94 100644 --- a/erpnext/docs/user/manual/en/setting-up/company-setup.md +++ b/erpnext/docs/user/manual/en/setting-up/company-setup.md @@ -1,3 +1,5 @@ +# Company Setup + Enter your company details to complete Company Setup. Mention the type of business, under Domain. You can enter manufacturing, retail, or services depending on the nature of your business activity. If you have more than one diff --git a/erpnext/docs/user/manual/en/setting-up/data/bulk-rename.md b/erpnext/docs/user/manual/en/setting-up/data/bulk-rename.md index e1c8b135fd..57db1a5f36 100644 --- a/erpnext/docs/user/manual/en/setting-up/data/bulk-rename.md +++ b/erpnext/docs/user/manual/en/setting-up/data/bulk-rename.md @@ -12,4 +12,4 @@ This tool will allow you to rename multiple records at the same time. To rename multiple records, upload a **.csv** file with the old name in the first column and the new name in the second column and click on **Upload**. -Bulk Rename \ No newline at end of file +Bulk Rename \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md b/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md index a5dd9399a2..b9c6ccc1d2 100644 --- a/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md +++ b/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md @@ -1,8 +1,10 @@ +# Data Import Tool + The Data Import Tool is a great way to upload (or edit) bulk data, specially master data, into the system. To Open the data import tool, you either go to Setup or go to the Transaction you want to Import. If Data Import is allowed, you will see an Import Button: -Start Import +Start Import The tool has two sections, one to download a template and the second to upload the data. @@ -23,33 +25,33 @@ Item can have multiple prices, An Invoice has multiple Items and so on. * Click on "Download Blank Template". * For bulk editing, you can click on "Download With Data". -Download Template +Download Template ### 2\. Fill in the Template After downloading the template, open it in a spreadsheet application and fill in the data below the column headings. -Download Template +Download Template Then export your template or save it as a Excel or Comma Separated Values (CSV) file. To export the document in Excel tick the checkbox for Download in Excel File Format -Download Template +Download Template ### Download in Excel -Download Template +Download Template ### 3\. Upload the File ethier in .xlsx or .csv Finally attach the file in the section. Click on the "Upload". Once the upload is successfull click Import" button. -Upload +Upload -Upload +Upload #### Notes: diff --git a/erpnext/docs/user/manual/en/setting-up/email/.md b/erpnext/docs/user/manual/en/setting-up/email/.md index 5e024b020b..5f85a8079d 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/.md +++ b/erpnext/docs/user/manual/en/setting-up/email/.md @@ -1,3 +1,5 @@ +# + Emails are the nervous system of business communication and ERPNext has been designed to make good use of this. 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 d5aca1a006..7e9b8a767b 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 @@ -10,7 +10,7 @@ ERPNext will create templates for a bunch of email accounts by default. Not all There are 2 types of email accounts, outgoing and incoming. Outgoing email accounts use an SMTP service to send emails and emails are retrived from your inbox using a IMAP or POP service. Most email providers such as GMail, Outlook or Yahoo provide these services. -Defining Criteria +Defining Criteria ### Outgoing Email Accounts @@ -18,19 +18,19 @@ All emails sent from the system, either by the user to a contact or notification To setup an outgoing Email Account, check on **Enable Outgoing** and set your SMTP server settings, if you are using a popular email service, these will be preset for you. -Outgoing EMail +Outgoing EMail ### Incoming Email Accounts To setup an incoming Email Account, check on **Enable Incoming** and set your POP3 settings, if you are using a popular email service, these will be preset for you. -Incoming EMail +Incoming EMail ### Setting Import Conditions for Email Import Email Accounts allows you to set conditions according to the data of the incoming emails. The email will be imported to ERPNext only if the all conditions are true. For example if you want to import an email if the subject is "Some important email", you put doc.subject == "Some important email" in the conditions textbox. You can also set more complex conditions by combining them, as shown on the following screenshot. -Incoming EMail Conditions +Incoming EMail Conditions ### How ERPNext handles replies @@ -40,6 +40,6 @@ In ERPNext when you send an email to a contact like a customer, the sender will If you would like ERPNext to notify you if an email is unreplied for a certain amount of time, then you can set **Notify if Unreplied**. Here you can set the number of minutes to wait before notifications are sent and whom the notifications must go to. -Incoming EMail +Incoming EMail {next} diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md b/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md index 8d239ea9bb..2b89d7d49e 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md +++ b/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md @@ -32,13 +32,13 @@ To setup an Email Alert: ### Setting a Subject You can retrieve the data for a particular field by using `doc.[field_name]`. To use it in your subject / message, you have to surround it with `{% raw %}{{ }}{% endraw %}`. These are called [Jinja](http://jinja.pocoo.org/) tags. So, for example to get the name of a document, you use `{% raw %}{{ doc.name }}{% endraw %}`. The below example sends an email on saving a Task with the Subject, "TASK##### has been created" -Setting Subject +Setting Subject ### Setting Conditions Email alerts allow you to set conditions according to the field data in your documents. For example, if you want to recieve an Email if a Lead has been saved as "Interested" as it's status, you put `doc.status == "Interested"` in the conditions textbox. You can also set more complex conditions by combining them. -Setting Condition +Setting Condition The above example will send an Email Alert when a Task is saved with the status "Open" and the Expected End Date for the Task is the date on or before the date on which it was saved on. @@ -74,14 +74,14 @@ field. Then you can use that as a condition in the **Condition** rules to ensure emails are not sent multiple times -Setting Property in Email Alert +Setting Property in Email Alert ### Example 1. Defining the Criteria - Defining Criteria + Defining Criteria 1. Setting the Recipients and Message - Set Message + Set Message {next} diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-digest.md b/erpnext/docs/user/manual/en/setting-up/email/email-digest.md index 5fa836e604..bceba37a95 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/email-digest.md +++ b/erpnext/docs/user/manual/en/setting-up/email/email-digest.md @@ -12,6 +12,6 @@ To set up Email Digest, go to: Set your frequency, check all the items you want to receive in your weekly update and select the user ids whom you want to send the Digest to. -Email Digest +Email Digest {next} diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-inbox.md b/erpnext/docs/user/manual/en/setting-up/email/email-inbox.md index d098d0c224..14dad78502 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/email-inbox.md +++ b/erpnext/docs/user/manual/en/setting-up/email/email-inbox.md @@ -12,7 +12,7 @@ To add new User, go to: `Setup > User > New User` -Email User +Email User #### Step 2: Create Email Domain @@ -22,7 +22,7 @@ To add new Email Domain, go to: `Setup > Emails > Email Domain > New` -Email Domain +Email Domain Once you have configured an Email Domain for your Email Service, it will be used for creating Email Accounts for all the Users in your ERPNext account. @@ -43,44 +43,44 @@ Create an Email Account based on the Email ID of the User. For each User who's e If you are creating an Email Account for your colleague who's Email Password is unknown to you, then check field "Awaiting Password". As per this setting, a User (for whom Email Account is created) will get a prompt to enter email password when accessing his/her ERPNext Account. -Email Password +Email Password In the Email Account, select Email Domain only if you are using Email Service other than Email Services listed above. Else, you can just select Email Service, leave Email Domain blank and proceed forward. -Email Service +Email Service >If you are creating an Email Account for Email Inbox of a User, then leave Append To field as blank. -For more details on how to setup Email Account, [click here]({{docs_base_url}}/user/manual/en/setting-up/email/email-account.html"). +For more details on how to setup Email Account, [click here](/docs/user/manual/en/setting-up/email/email-account.html"). #### Step 4: Linking Email Account in User master Once an Email Account is created for an User, select that Email Account in the User. This will ensure that emails pulled from the said Email ID will accessible only to this User in your ERPNext account. -Email User Link +Email User Link ## Email Inbox If you have correctly configured Email Inbox as instructed above, then on the login of a User, Email Inbox icon will be visible. This will navigate user to Email Inbox view within the ERPNext account. All the Emails received on that email will be fetch and listed in the Email Inbox view. User will be able to open emails and take various actions against it. -Email Inbox +Email Inbox #### Folders In ERPNext, you can link multiple Email Accounts with the single User. To switch to Inbox of different email account and access other folders like Sent Emails, Spam, Trash, check Email Inbox option in the left bar. -Email Folders +Email Folders #### Actions On the emails in your inbox, you can take various actions like Reply, Forward, Mark as Spam or Trash. -Email Actions +Email Actions #### Make Options The Email Inbox within ERPNext also allow you to quickly create ERPNext transaction based on email received. From an Email itself, you can a Issue, Lead or Opportunity based on the context of the email. -Make from Email +Make from Email diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-reports.md b/erpnext/docs/user/manual/en/setting-up/email/email-reports.md index a27a2dcbdb..95db8bacc5 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/email-reports.md +++ b/erpnext/docs/user/manual/en/setting-up/email/email-reports.md @@ -14,7 +14,7 @@ Or just type "Auto Email Report" on the Search bar. Select the Report, the user for which you want to create this report (permissions will apply for this user), the Email Addresses where you want this report emailed and the frequency of the report. -Make Auto Email Report +Make Auto Email Report #### Step 2 @@ -22,11 +22,11 @@ If your report has filters, you will see a table with the filters Step 1. Select the Report, the user for which you want to create this report. Permissions will apply for this user -With Filters +With Filters Click on the table to edit the table -Edit Filters +Edit Filters #### Test @@ -34,4 +34,4 @@ You can also test the report by clicking on "Download" or "Send Now" Here is an example of the email you will receive for a report -Report by Email +Report by Email diff --git a/erpnext/docs/user/manual/en/setting-up/email/sending-email.md b/erpnext/docs/user/manual/en/setting-up/email/sending-email.md index 504c76d8fb..b4566de0ba 100644 --- a/erpnext/docs/user/manual/en/setting-up/email/sending-email.md +++ b/erpnext/docs/user/manual/en/setting-up/email/sending-email.md @@ -2,8 +2,8 @@ In ERPNext you can send any document as email (with a PDF attachment) by clicking on `Menu > Email` from any open document. -Send Email +Send Email -**Note:** You must have outgoing [email accounts]({{docs_base_url}}/user/manual/en/setting-up/email/email-account.html) setup for this. +**Note:** You must have outgoing [email accounts](/docs/user/manual/en/setting-up/email/email-account.html) setup for this. {next} diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md b/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md index 4afaee1fed..7f873cee2f 100644 --- a/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md +++ b/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md @@ -6,12 +6,12 @@ Feedback Trigger. To request a feedback manually go to respective document e.g. Sales Order, Issue etc. and click on Ask a Feedback option in Menu. -Setting Condition +Setting Condition Then, user can enter the feedback request details like email id, message and send the feedback request mail. -Setting Condition +Setting Condition Note. If Feedback Trigger is already configured for the document then system will fetch Feedback Request details (email id, message) diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md b/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md index 0dbb3b7340..641d0a0b8d 100644 --- a/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md +++ b/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md @@ -2,15 +2,15 @@ We can also Resend the Feedback Request to the Customer/User. -Setting Condition +Setting Condition To resend the Feedback Request we will need to navigate the Communication by clicking the `Details` link on Timeline Feedback. -Setting Condition +Setting Condition On Resend Button click a dialog with the Feedback Request message will appear user can either send the Feedback Request with same message or he/she can make the changes in the Feedback Request message. -Setting Condition +Setting Condition {next} diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md b/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md index 373d703275..441e78eff0 100644 --- a/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md +++ b/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md @@ -19,13 +19,13 @@ To Setup an Feedback: ### Setting a Subject You can retrieve the data for a particular field by using `doc.[field_name]`. To use it in your subject/message, you have to surround it with `{% raw %}{{ }}{% endraw %}`. These are called [Jinja](http://jinja.pocoo.org/) tags. So, for example, to get the name of a document, you use `{% raw %}{{ doc.name }}{% endraw %}`. The below example sends an feedback request whenever Issue is Closed with the Subject, "ISS-##### Issue is Resolved" -Setting Subject +Setting Subject ### Setting Conditions Feedback Trigger allows you to set conditions according to the field data in your documents. The feedback request email will be sent on document save only if the all conditions are true For example if you want to trigger the feedback request mail to a customer if an Issue is has been saved as "Closed" as it's status, you put `doc.status == "Closed"` in the conditions textbox. You can also set more complex conditions by combining them. -Setting Condition +Setting Condition ### Setting a Message @@ -45,9 +45,9 @@ You can use both Jinja Tags (`{% raw %}{{ doc.[field_name] }}{% endraw %}`) and ### Example 1. Setting up Feedback Trigger - Defining Criteria + Defining Criteria 1. Setting the Recipients and Message - Set Message + Set Message {next} diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md b/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md index 9069f3721b..663aae1cfd 100644 --- a/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md +++ b/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md @@ -3,17 +3,17 @@ Once feedback request mail is sent the user/customer. He/She can visit the URL to submit the feedback as well as rating for the document. -Setting Condition +Setting Condition Once Feedback is submitted the feedback details message and ratings will be recorded and will be shown on Document sidebar and timeline. Also once the Feedback is successfully submitted by the user the link shared to the user will be expired and can not be used to submit the Feedback again. On Document sidebar the latest feedback ratings will displayed. -Setting Condition +Setting Condition Also, The Feedback details such as Feedback message and ratings will be shown in the Document's Timeline along with Comment, Email. -Setting Condition +Setting Condition {next} \ No newline at end of file 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 0839072b45..37f74a2c85 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 @@ -1,3 +1,5 @@ +# Dropbox Backup + #Setting Up Dropbox Backups We always recommend customers to maintain backup of their data in ERPNext. The database backup is downloaded in the form of an SQL file. If needed, this SQL file of backup can be restored in the another ERPNext account as well. @@ -11,7 +13,7 @@ To setup Dropbox Backup, Set Frequency to download backup in your Dropbox account. -set frequency +set frequency ####Step 2: Allow Dropbox Access @@ -21,13 +23,13 @@ After setting frequency and updating other details, click on `Allow Dropbox acce Login to your Dropbox account by entering login credentials. -Login +Login ####Step 4: Allow On successful login, you will find a confirmation message as following. Click on "Allow" to let your ERPNext account have access to your Dropbox account. -Allow +Allow With this, a folder called "ERPNext" will be created in your Dropbox account, and database backup will start to auto-download in it. @@ -39,18 +41,18 @@ With this, a folder called "ERPNext" will be created in your Dropbox account, an ####Step 2:Create a new app -Create new +Create new ####Step 3: Fill in details for the app -Choose Dropbox API and type as APP Folder +Choose Dropbox API and type as APP Folder - -Setup APP Name +Setup APP Name ####Step 4: Setup Redirect URL in app -Set Redirect URL +Set Redirect URL ####Step 5: Settings in Site Config diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/index.md b/erpnext/docs/user/manual/en/setting-up/integrations/index.md index e7b5a61d16..ed5a56eb76 100644 --- a/erpnext/docs/user/manual/en/setting-up/integrations/index.md +++ b/erpnext/docs/user/manual/en/setting-up/integrations/index.md @@ -1,3 +1,5 @@ +# Integrations + Integration Services is platform to configure 3rd Party Services. diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/ldap-integration.md b/erpnext/docs/user/manual/en/setting-up/integrations/ldap-integration.md index ec6e8487b1..759077a289 100644 --- a/erpnext/docs/user/manual/en/setting-up/integrations/ldap-integration.md +++ b/erpnext/docs/user/manual/en/setting-up/integrations/ldap-integration.md @@ -1,3 +1,5 @@ +# Ldap Integration + #Setting up LDAP Lightweight Directory Access Protocol is a centralised access controll system used by many small medium scale organisations. @@ -11,9 +13,9 @@ To setup LDAP, To enable ldap service, you need to configure parameters like LDAP Server Url, Organizational Unit, UID, Base Distinguished Name (DN) and Password for Base DN -LDAP Settings +LDAP Settings After setting up LDAP parameters, on login screen, the system enables **Login Via LDAP** option. -LOGIN via LDAP +LOGIN via LDAP diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/paypal-integration.md b/erpnext/docs/user/manual/en/setting-up/integrations/paypal-integration.md index 314eb64a9d..8b309e806f 100644 --- a/erpnext/docs/user/manual/en/setting-up/integrations/paypal-integration.md +++ b/erpnext/docs/user/manual/en/setting-up/integrations/paypal-integration.md @@ -1,3 +1,5 @@ +# Paypal Integration + #Setting up PayPal A payment gateway is an e-commerce application service provider service that authorizes credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar. @@ -11,17 +13,17 @@ To setup PayPal , To enable PayPal payment service, you need to configure parameters like API Username, API Password and Signature. -PayPal Settings +PayPal Settings You also can set test payment environment, by settings `Use Sandbox` On enabling service, the system will create Payment Gateway record and Account head in chart of accounts having account type as Bank. -PayPal COA +PayPal COA Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template. -Payment Gateway Account +Payment Gateway Account After enabling service and configuring Payment Gateway Account your system is able to accept online payments. @@ -33,20 +35,20 @@ AUD, BRL, CAD, CZK, DKK, EUR, HKD, HUF, ILS, JPY, MYR, MXN, TWD, NZD, NOK, PHP, #### Paypal Sanbox API Signature - Login to paypal developer account, PayPal Developer Account - From **Accounts** tab. create a new business account. -Payment Request +Payment Request - From this account profile you will get your sandbox api credentials -Payment Request +Payment Request --- #### PayPal Account API Signature - Login to PayPal Account and go to profile -Payment Request +Payment Request - From **My Selling Tools** go to **api Access** -Payment Request +Payment Request - On API Access Page, choose option 2 to generate API credentials -Payment Request +Payment Request diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/razorpay-integration.md b/erpnext/docs/user/manual/en/setting-up/integrations/razorpay-integration.md index 09cd9114c4..ac8bfd7f4e 100644 --- a/erpnext/docs/user/manual/en/setting-up/integrations/razorpay-integration.md +++ b/erpnext/docs/user/manual/en/setting-up/integrations/razorpay-integration.md @@ -1,3 +1,5 @@ +# Razorpay Integration + #Setting up Razorpay A payment gateway is an e-commerce application service provider service that authorizes credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar. @@ -10,15 +12,15 @@ To setup Razorpay, #### Setup Razorpay To enable Razorpay payment service, you need to configure parameters like API Key, API Secret -Razorpay Settings +Razorpay Settings On enabling service, the system will create Payment Gateway record and Account head in chart of account with account type as Bank. -Razorpay COA +Razorpay COA Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template. -Payment Gateway Account +Payment Gateway Account After enabling service and configuring Payment Gateway Account your system is able to accept online payments. diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/stripe-integration.md b/erpnext/docs/user/manual/en/setting-up/integrations/stripe-integration.md index 05f70f0d4a..6915a9c86b 100644 --- a/erpnext/docs/user/manual/en/setting-up/integrations/stripe-integration.md +++ b/erpnext/docs/user/manual/en/setting-up/integrations/stripe-integration.md @@ -1,3 +1,5 @@ +# Stripe Integration + #Setting up Stripe To setup Stripe, @@ -6,15 +8,15 @@ To setup Stripe, #### Setup Stripe To enable Stripe payment service, you need to configure parameters like Publishable Key, Secret Key -Razorpay Settings +Razorpay Settings On enabling service, the system will create Payment Gateway record and Account head in chart of account with account type as Bank. -Stripe COA +Stripe COA Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template. -Payment Gateway Account +Payment Gateway Account After configuring Payment Gateway Account your system is able to accept online payments. diff --git a/erpnext/docs/user/manual/en/setting-up/pos-setting.md b/erpnext/docs/user/manual/en/setting-up/pos-setting.md index 9bfd8198f2..375c251b5c 100644 --- a/erpnext/docs/user/manual/en/setting-up/pos-setting.md +++ b/erpnext/docs/user/manual/en/setting-up/pos-setting.md @@ -1,4 +1,4 @@ -# Point of Sale Setting +# Point of Sale Profile POS includes advanced features to cater to different functionality, such as inventory management, CRM, financials, warehousing, etc., all built into the @@ -10,14 +10,20 @@ If you are in retail operations, you want your Point of Sale to be as quick and efficient as possible. To do this, you can create a POS Setting for a user from: -> Accounts > Setup > Point-of-Sale Setting +> Accounts > Setup > Point-of-Sale Profile Set default values as defined. -POS Setting +POS Setting + +To set the default mode of payment, enabled the option default in the mode of payments table +POS Setting + +User can sale the particular products to the particular customers from the POS by adding item groups, customer groups in the POS Profile. +POS Setting > Important : If you specify a particular User, the POS setting will be applied only to that User. If the User option is left blank, the setting will -be set for all users. To understand POS in detail visit [Point of Sale]({{docs_base_url}}/user/manual/en/accounts/point-of-sale-pos-invoice.html) +be set for all users. To understand POS in detail visit [Point of Sale](/docs/user/manual/en/accounts/point-of-sale-pos-invoice.html) {next} diff --git a/erpnext/docs/user/manual/en/setting-up/price-lists.md b/erpnext/docs/user/manual/en/setting-up/price-lists.md index a42afb964a..a9655817a3 100644 --- a/erpnext/docs/user/manual/en/setting-up/price-lists.md +++ b/erpnext/docs/user/manual/en/setting-up/price-lists.md @@ -1,3 +1,5 @@ +# Price Lists + ERPNext lets you maintain multiple selling and buying prices for an Item using Price Lists. A PriceList is a name you can give to a set of Item prices. Why would you want Price Lists? You have different prices for different zones (based on the shipping costs), for different currencies etc. @@ -8,7 +10,7 @@ You can create new Price List > Selling/Buying/Stock > Setup > Price List >> New -Price List +Price List * These Price List will be used when creating Item Price record to track selling or buying price of an item. Click here to learn more about Item Price. diff --git a/erpnext/docs/user/manual/en/setting-up/print/address-template.md b/erpnext/docs/user/manual/en/setting-up/print/address-template.md index 53dfef1bfe..34df11c69d 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/address-template.md +++ b/erpnext/docs/user/manual/en/setting-up/print/address-template.md @@ -26,6 +26,6 @@ Here is the default template: ### Example -Print Heading +Print Heading {next} diff --git a/erpnext/docs/user/manual/en/setting-up/print/cheque-print-template.md b/erpnext/docs/user/manual/en/setting-up/print/cheque-print-template.md index 44dd412f12..3a4566a72e 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/cheque-print-template.md +++ b/erpnext/docs/user/manual/en/setting-up/print/cheque-print-template.md @@ -1,8 +1,10 @@ +# Cheque Print Template + #Cheque Print Template Business involves making payment to various parties like suppliers and employees. Payment can be made in various modes like cash, NEFT or cheque. If you are making a payment via cheque, you can also create a Print Format for printing Cheque from ERPNext based on the Payment Entry. -Sample Cheque +Sample Cheque Using the Cheque Print Template you can generate a new Print Format based. It will be created based the cheque format provided by your bank. @@ -14,13 +16,13 @@ To create a new Print Format based on the specific cheque’s format, go to: In the Cheque Print Template, for each value (say Payee, Date), exact co-ordinates are provided based on where that value should be printed on a cheque. Co-ordinates are provided in centi-meter. -Sample Cheque +Sample Cheque ####New Format via Scanning To speed up creation of a new cheque printing format, you can upload scanned image of the cheque. Considering the scanned image for the cheque, system automatically updates co-ordinates for each value like party name, amount, date, amount in words etc. -Sample Cheque +Sample Cheque ####New format by manual entry You can manually provide the co-ordinate for each value based on where you want to to be printed on the cheque. @@ -28,18 +30,18 @@ You can manually provide the co-ordinate for each value based on where you want ####Preview Based on co-ordinates provided for all the values, a preview be shown as to how the values will be printed on the cheque. -Sample Cheque +Sample Cheque ####New Print Format If the preview looks promising, click on the button to create a new Print Format for printing cheque. Based on the values provided in the Cheque Print Template, the system will auto-generate an HTML script for the cheque’s Print Format. -Sample Cheque +Sample Cheque ####Printing Cheque New print format generated for the cheque will be visible in the Payment Entry form. After creating the payment entry, you will be able to print transaction details on the cheque. -Sample Cheque +Sample Cheque diff --git a/erpnext/docs/user/manual/en/setting-up/print/custom-translations.md b/erpnext/docs/user/manual/en/setting-up/print/custom-translations.md index 1dab1c1547..fe5a0d19af 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/custom-translations.md +++ b/erpnext/docs/user/manual/en/setting-up/print/custom-translations.md @@ -1,3 +1,5 @@ +# Custom Translations + #Custom Translations User can print the customer's and supplier's document in their local language. For an example if I have customers from germany, france who want quotation in german, french language will be possible with these feature. @@ -6,11 +8,11 @@ User can print the customer's and supplier's document in their local language. F In the Customer master, select default Language. Say default language for the Customer is deutsch. - + Same way, you can also set default language in the Supplier master. - + ####Print Preview in the Party's Language @@ -18,17 +20,17 @@ In the Print Preview of a transaction, values will be translated into party's la Customer Quotation print preview in customer's default language. - + Supplier Quotation print preview in supplier's default language. - + ####What to do if want to print with another language? User can have option to select alternate language on print view. - + ####Custom Translation @@ -36,11 +38,11 @@ User can set their custom translations using translation form. For example user `Setup > Settings > Translation List > New` - + The translation is applied when user select language as Italiano on supplier quotation's print preview. - + diff --git a/erpnext/docs/user/manual/en/setting-up/print/letter-head.md b/erpnext/docs/user/manual/en/setting-up/print/letter-head.md index 72b79e1ad9..1243903444 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/letter-head.md +++ b/erpnext/docs/user/manual/en/setting-up/print/letter-head.md @@ -1,3 +1,5 @@ +# Letter Head + #Letter Head Each company has default Letter Head for their company. This Letter Head values are generally set as Header and Footer in the documents. In ERPNext, you can capture the these details in the Letter Head master. @@ -19,7 +21,7 @@ Following is how you can enter details in the Letter Head. * Logo Image: You can insert the image in your Letter Head record by clicking on image icon. Once image is inserted, HTML for it will be generated automatically. * Other information (like Address, tax ID etc.) that you want to put on your letter head. -Print Heading +Print Heading > If you want to make this the default letter head, click on “Is Default”. @@ -31,7 +33,7 @@ After enter values in the Header and Footer section, Save Letter Head. This is how the letter head looks in a document's print. -Print Heading +Print Heading > Please note that Footer will be visible only when document's print is seen in the PDF. Footer will not be visible in the HTML based print preview. diff --git a/erpnext/docs/user/manual/en/setting-up/print/print-format-builder.md b/erpnext/docs/user/manual/en/setting-up/print/print-format-builder.md index f9799279af..4e94045924 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/print-format-builder.md +++ b/erpnext/docs/user/manual/en/setting-up/print/print-format-builder.md @@ -10,19 +10,19 @@ or Open the document for which you want to make a print format. Click the Printe ### Step 1: Make a new Format -Send Email +Send Email ### Step 2: Add a new Field To add a field, just drag it from the left sidebar and add it in your layout. You can edit the layout by clicking on the settings icon. -Send Email +Send Email ### Step 3 To remove a field, just drag it back into the fields sidebar. -Send Email +Send Email ### Step 4 @@ -30,7 +30,7 @@ You can add customized text, HTML in your print format, just add the **Custom HT Then click on **Edit HTML** to edit your content. -Send Email +Send Email To save your format, just click on the **Save** button on the top. diff --git a/erpnext/docs/user/manual/en/setting-up/print/print-headings.md b/erpnext/docs/user/manual/en/setting-up/print/print-headings.md index 98fbf53df0..de3395bca3 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/print-headings.md +++ b/erpnext/docs/user/manual/en/setting-up/print/print-headings.md @@ -1,3 +1,5 @@ +# Print Headings + Print Headings are the names which you can give to your sales invoices, supplier quotations etc. You can create a list of names for different business communications. @@ -8,10 +10,10 @@ You can create print headings from : #### Figure 1: Save Print Heading -Print Heading +Print Heading Example of a change in print heading is shown below: -Print Heading +Print Heading {next} diff --git a/erpnext/docs/user/manual/en/setting-up/print/print-settings.md b/erpnext/docs/user/manual/en/setting-up/print/print-settings.md index cdf3c54a37..220b467501 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/print-settings.md +++ b/erpnext/docs/user/manual/en/setting-up/print/print-settings.md @@ -6,6 +6,6 @@ To edit print settings, go to: > Setup > Printing and Branding > Print Settings -Print Settings +Print Settings {next} diff --git a/erpnext/docs/user/manual/en/setting-up/print/terms-and-conditions.md b/erpnext/docs/user/manual/en/setting-up/print/terms-and-conditions.md index 7340f17f38..28e803da99 100644 --- a/erpnext/docs/user/manual/en/setting-up/print/terms-and-conditions.md +++ b/erpnext/docs/user/manual/en/setting-up/print/terms-and-conditions.md @@ -1,3 +1,5 @@ +# Terms And Conditions + Terms and conditions are the general and special arrangements, provisions, requirements, rules, specifications, and standards that a company follows. These specifications are an integral part of an agreement or contract that the company gets into with its customers, suppliers or partners. ### 1. Make a new Terms and Conditions @@ -6,13 +8,13 @@ To setup Terms and Condition master, go to: `Selling > Terms and Condition > New` -Terms and Conditions +Terms and Conditions ### 2. Editing in HTML Content of Terms and Condition can be formatted as per your preference, and also insert images where needed. If you have expertise in HTML, you will also find option to edit the content of Terms and Condition in HTML. -Terms and Conditions, Edit HTML +Terms and Conditions, Edit HTML This also allows you to use Terms and Condition master for footer, which otherwise is not available in ERPNext as dedicated functionality. Since contents of Terms and Condition is always the last to appear in the print format, details of footer should be inserted at the end of the content, so that it actually appears as footer in the print format. @@ -20,6 +22,6 @@ This also allows you to use Terms and Condition master for footer, which otherwi In transactions, you will find section of Terms and Condition where you will be able to search and fetched required Terms and Condition master. -Terms and Conditions, Select in document +Terms and Conditions, Select in document {next} diff --git a/erpnext/docs/user/manual/en/setting-up/setting-company-sales-goal.md b/erpnext/docs/user/manual/en/setting-up/setting-company-sales-goal.md index e18ad053bf..ca0c32a4a0 100644 --- a/erpnext/docs/user/manual/en/setting-up/setting-company-sales-goal.md +++ b/erpnext/docs/user/manual/en/setting-up/setting-company-sales-goal.md @@ -2,14 +2,14 @@ Monthly sales targets can be set for a company via the Company master. By default, the Company master dashboard features past sales stats. -Sales Graph +Sales Graph You can set the **Sales Target** field to track progress to track progress with respect to it. -Setting Sales Goal +Setting Sales Goal The target progress is also shown in notifications: -Sales Notification +Sales Notification {next} diff --git a/erpnext/docs/user/manual/en/setting-up/setting-up-taxes.md b/erpnext/docs/user/manual/en/setting-up/setting-up-taxes.md index a3c11ab2f0..18f2f015a5 100644 --- a/erpnext/docs/user/manual/en/setting-up/setting-up-taxes.md +++ b/erpnext/docs/user/manual/en/setting-up/setting-up-taxes.md @@ -1,3 +1,5 @@ +# Setting Up Taxes + One of the primary motivator for compulsory use of accounting tools is calculation of Taxes. You may or may not make money but your government will (to help your country be safe and prosperous). And if you don’t calculate your @@ -22,11 +24,11 @@ sales or purchase tax rate specified by you as default rates. Item Tax table can be found as a section within the Item Master document. -Item Tax +Item Tax * **Inclusive and Exclusive Tax**: ERPNext allows you to enter Item rates which are tax inclusive. -Inclusive Tax +Inclusive Tax * **Exception to the rule**: Item tax settings are required only if a particular Item has a different tax rate than the rate defined in the standard tax Account * **Item tax is overwrite-able**: You can overwrite or change the item tax rate by going to the Item master in the Item tax table. @@ -49,7 +51,7 @@ have to go to: > Setup > Accounts > Sales Taxes and Charge Master -Sales Tax Master +Sales Tax Master When you create a new master, you will have to add a row for each tax type. diff --git a/erpnext/docs/user/manual/en/setting-up/settings/global-defaults.md b/erpnext/docs/user/manual/en/setting-up/settings/global-defaults.md index 412572a820..87ebcba06a 100644 --- a/erpnext/docs/user/manual/en/setting-up/settings/global-defaults.md +++ b/erpnext/docs/user/manual/en/setting-up/settings/global-defaults.md @@ -6,6 +6,6 @@ You can set default values for your documents from Global Defaults Whenever a new document is created, these values will be set as default. -Global Defaults +Global Defaults {next} diff --git a/erpnext/docs/user/manual/en/setting-up/settings/module-settings.md b/erpnext/docs/user/manual/en/setting-up/settings/module-settings.md index 3e2a109dad..f6ede50fec 100644 --- a/erpnext/docs/user/manual/en/setting-up/settings/module-settings.md +++ b/erpnext/docs/user/manual/en/setting-up/settings/module-settings.md @@ -10,6 +10,6 @@ For example if you are in the services business, you want to hide the Manufactur Check / uncheck the items to show / hide. -Module Settings +Module Settings {next} diff --git a/erpnext/docs/user/manual/en/setting-up/settings/naming-series.md b/erpnext/docs/user/manual/en/setting-up/settings/naming-series.md index 086a272821..71029bcbe3 100644 --- a/erpnext/docs/user/manual/en/setting-up/settings/naming-series.md +++ b/erpnext/docs/user/manual/en/setting-up/settings/naming-series.md @@ -42,7 +42,7 @@ name and the starting point in the “Update Series” section. See how to set the naming series -Naming Series +Naming Series {next} diff --git a/erpnext/docs/user/manual/en/setting-up/settings/system-settings.md b/erpnext/docs/user/manual/en/setting-up/settings/system-settings.md index b436b46dee..43f47f1301 100644 --- a/erpnext/docs/user/manual/en/setting-up/settings/system-settings.md +++ b/erpnext/docs/user/manual/en/setting-up/settings/system-settings.md @@ -8,6 +8,6 @@ To open System Settings, go to: > Setup > Settings > System Settings -System Settings +System Settings {next} diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-1-language.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-1-language.md index 00219fd6a0..c8fba43408 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-1-language.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-1-language.md @@ -2,7 +2,7 @@ Select your language. ERPNext is available in more than 20 languages. -Language +Language --- diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-10-item.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-10-item.md index bc71b9859b..837c3335c4 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-10-item.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-10-item.md @@ -3,7 +3,7 @@ In this final step, please enter the names of the Items you buy or sell. Add Items +src="/docs/assets/img/setup-wizard/step-10.png"> Please set the group of the item (Product / Service) and unit of measure. Don't worry you will be able to edit all of this later. diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-2-currency-and-timezone.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-2-currency-and-timezone.md index 5dc1648197..6809f40c2f 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-2-currency-and-timezone.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-2-currency-and-timezone.md @@ -2,7 +2,7 @@ Set your country name, currency and timezone. -Currency +Currency --- diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-3-user-details.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-3-user-details.md index b9eff18025..5d6002aef0 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-3-user-details.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-3-user-details.md @@ -3,7 +3,7 @@ Enter Users Profile Details like Name, User ID and preferred password. User +src="/docs/assets/img/setup-wizard/step-3.png"> --- diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-4-company-details.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-4-company-details.md index f88d31c998..2558f16cab 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-4-company-details.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-4-company-details.md @@ -3,7 +3,7 @@ Enter Company Details like Name, Abbreviation and Financial Year Details. Company Details +src="/docs/assets/img/setup-wizard/step-4.png"> --- diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-5-letterhead-and-logo.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-5-letterhead-and-logo.md index 869496066b..9f4564264c 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-5-letterhead-and-logo.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-5-letterhead-and-logo.md @@ -3,7 +3,7 @@ Attach Company Letterhead and Company Logo. Company Logo and Letterhead +src="/docs/assets/img/setup-wizard/step-5.png"> --- @@ -15,7 +15,7 @@ Click on the box ‘Attach Letterhead’ . Select the image file from the place You may choose to skip this step if your letterhead is not ready. -To select letterhead later through the setup module, read [Letter-head]({{docs_base_url}}/user/manual/en/setting-up/print/letter-head.html) +To select letterhead later through the setup module, read [Letter-head](/docs/user/manual/en/setting-up/print/letter-head.html) #### To "attach as web-link" diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-6-add-users.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-6-add-users.md index 7e8f083670..0a0cd00f47 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-6-add-users.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-6-add-users.md @@ -3,6 +3,6 @@ Add other users and assign them roles based on their job responsibilities. Users +src="/docs/assets/img/setup-wizard/step-6.png"> {next} diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-7-tax-details.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-7-tax-details.md index 1d353b633b..3b42ebe917 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-7-tax-details.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-7-tax-details.md @@ -3,7 +3,7 @@ Enter any three types of taxes which you regularly pay. This wizard will create a tax master which will calculate the taxes as per the tax-type. Tax Details +src="/docs/assets/img/setup-wizard/step-7.png"> Just set the tax name and the standard percentage levied. @@ -17,6 +17,6 @@ A value added tax (VAT) is a form of consumption tax. From the perspective of th The purpose of VAT is to generate tax revenues to the government similar to the corporate income tax or the personal income tax. For Example: When you shop at a departmental store and avail discount on the products, the store charges you 5% extra on the total bill as the VAT. -To setup VAT in the setup wizard , simply enter the percentage amount levied by your government. To setup VAT at a later stage read [setting-up-taxes]({{docs_base_url}}/user/manual/en/setting-up/setting-up-taxes.html) +To setup VAT in the setup wizard , simply enter the percentage amount levied by your government. To setup VAT at a later stage read [setting-up-taxes](/docs/user/manual/en/setting-up/setting-up-taxes.html) {next} diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-8-customer-names.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-8-customer-names.md index 8143f0be74..2b6ae0cbbe 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-8-customer-names.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-8-customer-names.md @@ -4,7 +4,7 @@ Enter your Customer names and the contact person from that organisation. Customers +src="/docs/assets/img/setup-wizard/step-8.png"> --- @@ -18,6 +18,6 @@ Customer Name: American Power Mills Contact Name: Shiv Agarwal -To understand Customer in detail visit [Customer Details]({{docs_base_url}}/user/manual/en/CRM/customer.html) +To understand Customer in detail visit [Customer Details](/docs/user/manual/en/CRM/customer.html) {next} diff --git a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-9-suppliers.md b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-9-suppliers.md index 762c9842be..46bcfba746 100644 --- a/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-9-suppliers.md +++ b/erpnext/docs/user/manual/en/setting-up/setup-wizard/step-9-suppliers.md @@ -3,10 +3,10 @@ Enter a few of your Suppliers' names. Suppliers +src="/docs/assets/img/setup-wizard/step-9.png"> --- -To understand Suppliers in detail visit [Supplier Master]({{docs_base_url}}/user/manual/en/buying/supplier.html) +To understand Suppliers in detail visit [Supplier Master](/docs/user/manual/en/buying/supplier.html) {next} diff --git a/erpnext/docs/user/manual/en/setting-up/sms-setting.md b/erpnext/docs/user/manual/en/setting-up/sms-setting.md index 7c666924cd..1cb7c36ad3 100644 --- a/erpnext/docs/user/manual/en/setting-up/sms-setting.md +++ b/erpnext/docs/user/manual/en/setting-up/sms-setting.md @@ -17,7 +17,7 @@ Example URL: http://instant.smses.com/web2sms.php?username=&password;=&to;=&sender;=&message;= -SMS Setting 2 +SMS Setting 2 > Note: the string up to the "?" is the SMS Gateway URL @@ -36,6 +36,6 @@ Note that some parameters in the URL are static.You will get static values from your SMS Provider like username, password etc. These static values should be entered in the Static Parameters table. -SMS Setting +SMS Setting {next} diff --git a/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md b/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md index 743f398f4d..36ad65a7c8 100644 --- a/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md +++ b/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md @@ -1,3 +1,5 @@ +# Stock Reconciliation For Non Serialized Item + Stock Reconciliation is the process of counting and evaluating stock-in-trade, usually at an organisations year end in order to value the total stock for preparation of the accounts. In this process actual physical stocks are @@ -27,17 +29,17 @@ To perform Stock Reconciliation, go to: A predefined template of an spreadsheet file should be followed for importing item's stock levels and valuations. Open new Stock Reconciliation form to see download option. -Stock Reconciliation +Stock Reconciliation #### Step 2: Enter Data in csv file. -Stock Reconciliation +Stock Reconciliation The csv format is case-sensitive. Do not edit the headers which are preset in the template. In the Item Code and Warehouse column, enter exact Item Code and Warehouse as created in your ERPNext account. For quatity, enter stock level you wish to set for that item, in a specific warehouse. #### Step 3: Upload file and Enter Values in Stock Reconciliation Form -Stock Reconciliation +Stock Reconciliation **Posting Date** @@ -59,11 +61,11 @@ report. The report will show you all types of rates. #### Step 4: Review the reconciliation data -Stock Reconciliation +Stock Reconciliation ### Stock Ledger Report -Stock Reconciliation +Stock Reconciliation **How Stock Reconciliation Works** diff --git a/erpnext/docs/user/manual/en/setting-up/territory.md b/erpnext/docs/user/manual/en/setting-up/territory.md index 3a1abfdfdd..c82bfe4a1f 100644 --- a/erpnext/docs/user/manual/en/setting-up/territory.md +++ b/erpnext/docs/user/manual/en/setting-up/territory.md @@ -1,3 +1,5 @@ +# Territory + If your business operates in multiple Territories (could be countries, states or cities) it is usually a great idea to build your structure in the system. Once you group your Customers by Territories, you can set annual targets for @@ -5,6 +7,6 @@ each Item Group and get reports that will show your actual performance in the territory v/s what you had planned. You can also set different pricing for the same product sold across different territories. -Territory Tree +Territory Tree {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md index 6fb64df37e..16bf19e826 100644 --- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md +++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/adding-users.md @@ -11,7 +11,7 @@ Important is to realize that the email address is the unique key (ID) identifyin ### 1. List of Users -User List +User List To add a new user, click on "New" @@ -22,8 +22,8 @@ Add user details such as First Name, Last Name, Email etc. The user's Email will become the user id. Mobile No can also be used to log in if you check the Allow Login using Mobile No checkbox under the Security section in System Settings. While Mobile No will be unique, it will not be treated as a user id. -Email Login -Mobile No Login +Email Login +Mobile No Login After adding these details, save the user. @@ -32,19 +32,19 @@ After adding these details, save the user. After saving, you will see a list of roles and a checkbox next to it. Just check the roles you want the user to have and save the document. To click on what permissions translate into roles, click on the role name. -User Roles +User Roles ### 4. Setting Module Access Users will have access to all modules for which they have role based access. If you want to block certain modules for certain users, un-check the module from the list. -User Block Module +User Block Module ### 5. Security Settings If you wish to give the user access to the system only between office hours, or during weekends, mention it under security settings. -User Security +User Security {next} diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/index.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/index.md index 05ad06012d..dcfd77649c 100644 --- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/index.md +++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/index.md @@ -1,3 +1,5 @@ +# Users And Permissions + In ERPNext, you can create multiple users and assign them different roles. There are some users which can only access the public facing part of ERPNext (i.e. the website). Such users are called "Website Users". diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-based-permissions.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-based-permissions.md index 0c4042c154..6f11ecb563 100644 --- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-based-permissions.md +++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-based-permissions.md @@ -5,7 +5,7 @@ ERPNext has a role-based permission system. It means that you can assign Roles t To start with, go to: > Setup > Permissions > Role Permissions Manager -Manage Read, Write, Create, Submit, Amend access using the Role Permissions Manager +Manage Read, Write, Create, Submit, Amend access using the Role Permissions Manager Permissions are applied on a combination of: @@ -28,7 +28,7 @@ Permissions are applied on a combination of: If enabled, a user with that role will be able to access only specific Documents for that Document Type. Such specific Document access is defined in the list of User Permissions. Additionally, User Permissions defined for other Document Types also get applied if they are related to the current Document Type through Link Fields. To set, User Permissions go to: - > Setup > Permissions > [User Permissions Manager]({{docs_base_url}}/user/manual/en/setting-up/users-and-permissions/user-permissions.html) + > Setup > Permissions > [User Permissions Manager](/docs/user/manual/en/setting-up/users-and-permissions/user-permissions.html) --- @@ -38,37 +38,37 @@ Permissions are applied on a combination of: Leave Application is a good **example** that encompasses all areas of Permission System. -Leave Application Form should be created by an Employee, and approved by Leave Approver or HR User +Leave Application Form should be created by an Employee, and approved by Leave Approver or HR User 1. **It should be created by an Employee.** For this, Employee Role should be given Read, Write, Create permissions. -Giving Read, Write and Create Permissions to Employee for Leave Application +Giving Read, Write and Create Permissions to Employee for Leave Application 1. **An Employee should only be able to access his/her Leave Application.** Hence, Apply User Permissions should be enabled for Employee Role, and a User Permission record should be created for each User Employee combination. (This effort is reduced for Employee Document Type, by programmatically creating User Permission records.) -Limiting access to Leave Applications for a user with Employee Role via User Permissions Manager +Limiting access to Leave Applications for a user with Employee Role via User Permissions Manager 1. **HR Manager should be able to see all Leave Applications.** Create a Permission Rule for HR Manager at Level 0, with Read permissions. Apply User Permissions should be disabled. -Giving Submit and Cancel permissions to HR Manager for Leave Applications. 'Apply User Permissions' is unchecked to give full access. +Giving Submit and Cancel permissions to HR Manager for Leave Applications. 'Apply User Permissions' is unchecked to give full access. 2. **Leave Approver should be able to see and update Leave Applications applicable to him/her.** Leave Approver is given Read and Write access at Level 0, with Apply User Permissions enabled. Relevant Employee Documents should be enlisted in the User Permissions of Leave Approvers. (This effort is reduced for Leave Approvers mentioned in Employee Documents, by programmatically creating User Permission records.) -Giving Read, Write and Submit permissions to Leave Approver for Leave Applications.'Apply User Permissions' is checked to limit access based on Employee. +Giving Read, Write and Submit permissions to Leave Approver for Leave Applications.'Apply User Permissions' is checked to limit access based on Employee. 3. **It should be Approved / Rejected only by HR User or Leave Approver.** The Status field of Leave Application is set at Level 1. HR User and Leave Approver are given Read and Write permissions for Level 1, while everyone else (All) are given Read permission for Level 1. -Limiting read access for a set of fields to certain Roles +Limiting read access for a set of fields to certain Roles 4. **HR User should be able to delegate Leave Applications to his/her subordinates** HR User is given the right to Set User Permissions. A User with HR User role would be able to defined User Permissions on Leave Application for other users. -Let HR User delegate access to Leave Applications by checking 'Set User Permissions'. This will allow HR User to access User Permissions Manager for 'Leave Application' +Let HR User delegate access to Leave Applications by checking 'Set User Permissions'. This will allow HR User to access User Permissions Manager for 'Leave Application' {next} diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-permisison-for-page-and-report.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-permisison-for-page-and-report.md index 3a26a328f6..5483af7246 100644 --- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-permisison-for-page-and-report.md +++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/role-permisison-for-page-and-report.md @@ -5,10 +5,10 @@ In ERPNext, user can make his custom user interface using Page and the custom re If user has enabled the developer mode, then they can add the roles directly in the page and report record. But in that case, the permissions will also be reflected in the json file for the page / report. ### For Page -Assign roles to the page +Assign roles to the page ### For Report -Assign roles to the report +Assign roles to the report ## Tool for custom roles assignment @@ -16,10 +16,10 @@ If developer mode is disabled, then user can assign the roles to the page and re To access, goto Setup > Permissions > Role Permission for Page and Report -Tools to assign custom roles to the page +Tools to assign custom roles to the page ### Reset to defaults Using "Reset to Default" button, user can remove the custom permissions applied on a page or report. Then default permissions will be applicable on that page or report. -Reset the default roles +Reset the default roles diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/sharing.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/sharing.md index a939e656fe..23e5b32cb8 100644 --- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/sharing.md +++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/sharing.md @@ -4,6 +4,6 @@ In addition to user and role permissions, you can also Share a document with ano To share a document, open the document, click on the "+" icon under sharing and select the user - + {next} diff --git a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/user-permissions.md b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/user-permissions.md index 7fae95cbe7..896fd85479 100644 --- a/erpnext/docs/user/manual/en/setting-up/users-and-permissions/user-permissions.md +++ b/erpnext/docs/user/manual/en/setting-up/users-and-permissions/user-permissions.md @@ -1,60 +1,52 @@ # User Permissions -Role Base Permissions define the periphery of document types within which a user with a set of Roles can move around in. However, you can have an even finer control by defining User Permissions for a User. By setting specific documents in User Permissions list, you can limit access for that User to specific documents of a particular DocType, on the condition that "Apply User Permissions" is checked in Role Permissions Manager. +Along with Role based permissions, you can also set user level permissions that are based on rules that are evaluated against the data containted in the document being accessed. This is particularly useful when you want to restrict based on: -To start with, go to: +1. Allow user to access data belonging to one Company +1. Allow user to access data related to a specific Customer or Territory -> Setup > Permissions > User Permissions Manager +### Creating User Permissions -User Permissions Manager displaying how users can access only a specific Company. +To create a User Permission, go to Setup > Permission > User Permissions -#### Example +When you create a new record you will have to specify -User 'tom.hagen@riosolutions.com' has Sales User role and we want to limit the user to access records for only a specific Company 'Rio Solutions'. +1. The user for which the rule has to be applied +1. The type of document which will be allowed (for example "Company") +1. The specific item that you want to allow (the name of the "Company) - 1. We add a User Permissions row for Company. - - User Permissions For Company +Creating a new user permission - Add User Permissions row for a combination of User 'tom.hagen@riosolutions.com' and Company 'Rio Solutions'. +If you want to apply the permissions to all Roles for that user, keep the "Apply Permissions for all Roles of this User" checked. If you check this, it will automatically setup the rules for Roles to check for User Permissions. - 1. Also Role "All" has only Read permission for Company, with 'Apply User Permissions' checked. - - Role Permissions for All on Company +### Choosing Which Roles to Apply - Read Permission with Apply User Permissions checked for DocType Company. +You can also manually edit the the roles for which you want the user permissions to apply. To do that go the the **Role Permission Manager** and select the role for which you want to Edit the User Permissions. - 1. The combined effect of the above two rules lead to User 'tom.hagen@riosolutions.com' having only Read access to Company 'Rio Solutions'. - - Effect of Role and User Permissions on Company - - Access is limited to Company 'Rio Solutions'. +Note that the "Apply User Permissions" is already checked for this role. Then click on "Select Document Types" - 1. We want this User Permission on Company to get applied on other documents like Quotation, Sales Order, etc. - - These forms have a **Link Field based on Company**. As a result, User Permissions on Company also get applied on these documents, which leads to User 'tom.hagen@riosolutions' to acces these documents having Company 'Rio Solutions'. +Select Document Types to Edit the Setting - Sales User Role Permissions for Quotation - - Users with Sales User Role can Read, Write, Create, Submit and Cancel Quotations based on their User Permissions, since 'Apply User Permissions' is checked. +Here you will see that Company has already been checked. If you want user permissions not be applied for that particular rule, you can un check it. - Quotation List limited to results for Company 'Rio Solutions' +Select Document Types to Edit the Setting - Quotation List is limited to results for Company 'Rio Solutions' for User 'tom.hagen@riosolutions.com'. +### Ignoring User Permissions on Certain Fields - 1. User Permissions get applied automatically based on Link Fields, just like how it worked for Quotation. But, Lead Form has 4 Link fields: Territory, Company, Lead Owner and Next Contact By. Say, you want Leads to limit access to Users based only on Territory, even though you have defined User Permissions for DocTypes User, Territory and Company. You can do this by setting 'Ignore User Permissions' for Link fields: Company, Lead Owner and Next Contact By. - -Role Permissions on Lead for Sales User Role +Another way of allowing documents to be seen that have been restricited by User Permissions is to check "Ignore User Permissions" on a particular field by going to **Customize Form** -Sales User can Read, Write and Create Leads limited by User Permissions. +For example you don't want Assets to be restricited for any user, then select **Asset** in **Customize Form** and in the Company field, check on "Ignore User Permissions" -Set Ingore User Permissions from Setup > Customize > Customize Form +Ignore User Permissions on specific properties -Check 'Ingore User Permissions' for Company, Lead Owner and Next Contact By fields using Setup > Customize > Customize Form for Lead. +### Strict Permisssions -Lead List is limited to records with Territory 'United States' +Since User Permissions are applied via Roles, there may be many users belonging to a particular Role. Suppose you have three users belonging to Role "Accounts User" and you have applied **User Permissions** to only one user, then the permissions will only be restricted to that user. -Due to the effect of the above combination, User 'tom.hagen@riosolutions.com' can only access Leads with Territory 'United States'. +You can change this setting incase you want the user permissions to be assigned to all users, even if they are not assigned any user permissions by going to **System Settings** and checking "Apply Strict User Permissions" -{next} +### Checking How User Permissions are Applied +Finally once you have created your air-tight permission model, and you want to check how it applies to various users, you can see it via the **Permitted Documents for User** report. Using this report, you can select the **User** and document type and check how user permissions get applied. + +Permitted Documents for User report diff --git a/erpnext/docs/user/manual/en/setting-up/workflows.md b/erpnext/docs/user/manual/en/setting-up/workflows.md index bedb6db05e..4b2cabbba7 100644 --- a/erpnext/docs/user/manual/en/setting-up/workflows.md +++ b/erpnext/docs/user/manual/en/setting-up/workflows.md @@ -1,3 +1,5 @@ +# Workflows + In order to allow multiple people to submit multiple requests, for approvals, by multiple users, ERPNext requires you to fill the workflow conditions. ERPNext tracks the multiple permissions before submission. @@ -11,7 +13,7 @@ will get an indication that the HR department has Accepted or Rejected. The Manager, who is the approving authority, will either Approve or Reject this request. Accordingly,the user will get his Approved or Rejected status. -Workflow +Workflow To make this Workflow and transition rules go to : @@ -19,11 +21,11 @@ To make this Workflow and transition rules go to : #### Step 1: Enter the different states of Leave Approval Process. -Workflow +Workflow #### Step 2: Enter Transition Rules. -Workflow +Workflow #### Notes: @@ -46,15 +48,15 @@ workflow transition step that says from submitted you can cancel. When a Leave Application is saved by Employee, the status of the document changes to "Applied" -Workflow +Workflow When the HR User logs in, he can either Approve or Reject. If approved the status of the document changes to "Approved by HR". However, it is yet to be approved by Leave Approver. -Workflow +Workflow When the Leave Approver opens the Leave Application page, he can finally "Approve" or "Reject" the Leave Application. -Workflow +Workflow {next} diff --git a/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/index.md b/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/index.md index b758ff7f0e..96b792db72 100644 --- a/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/index.md +++ b/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/index.md @@ -1,3 +1,5 @@ +# Accounting Of Inventory Stock + The value of available inventory is treated as an Asset in company's Chart of Accounts. Depending on the type of items, it can be treated as Fixed Asset or Current Asset. To prepare Balance Sheet, you should make the accounting @@ -19,7 +21,7 @@ balance. This improves accuracy of Balance Sheet and Profit and Loss statement. To check accounting entries for a particular stock transaction, please check -[examples]({{docs_base_url}}/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.html) +[examples](/docs/user/manual/en/stock/accounting-of-inventory-stock/perpetual-inventory.html) #### **Advantages** @@ -64,6 +66,6 @@ This complete process is called Periodic Inventory. If you are an existing user using Periodic Inventory and want to use Perpetual Inventory, you have to follow some steps to migrate. For details, check -[Migration From Periodic Inventory]({{docs_base_url}}/user/manual/en/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.html). +[Migration From Periodic Inventory](/docs/user/manual/en/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.html). {next} diff --git a/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md b/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md index 38ae8974da..0e4d2d7be5 100644 --- a/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md +++ b/erpnext/docs/user/manual/en/stock/accounting-of-inventory-stock/migrate-to-perpetual-inventory.md @@ -1,3 +1,5 @@ +# Migrate To Perpetual Inventory + Perpetual Inventory Valuation is activated by default in the system. For the users who are currently following periodic inventory valuation system, and wish to migrate to perpetual inventory valuation system, please follow the steps explained below. @@ -20,7 +22,7 @@ Steps: `Explore > Accounts > Accounts Settings` - Perpetual Inventory + Perpetual Inventory * Create Stock Entry (Material Transfer) to transfer available stock from existing warehouse to new warehouse. As stock will be available in the new warehouse, you should select the new warehouse for all the future transactions. 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 343e3f4769..90bdbbf5e3 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,3 +1,5 @@ +# Perpetual Inventory + 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 Account, with the same name as Warehouse Name. @@ -10,7 +12,7 @@ On receipt of items in a particular warehouse, the balance in the Warehouse Acco > Setup > Company > Stock Settings > "Enable Perpetual Inventory" -Perpetual Inventory +Perpetual Inventory * Setup the following default accounts for each Company. These accounts are created automatically in the new ERPNext accounts. @@ -131,11 +133,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. @@ -147,7 +149,7 @@ On receiving Bill from supplier, for the above Purchase Receipt, you will make P **General Ledger** -Perpetual Inventory +Perpetual Inventory Here "Stock Received But Not Billed" account is debited and nullified the effect of Purchase Receipt. @@ -205,11 +207,11 @@ at $300. Following are the details of Delivery Note: **Stock Ledger** -Perpetual Inventory +Perpetual Inventory **General Ledger** -Perpetual Inventory +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 @@ -238,11 +240,11 @@ of the Sales Invoice are same as the above Delivery Note. **Stock Ledger** -Perpetual Inventory +Perpetual Inventory **General Ledger** -Perpetual Inventory +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. @@ -276,11 +278,11 @@ Goods Sold" accounts are also affected based on the valuation amount. **Stock Ledger** -Perpetual Inventory +Perpetual Inventory **General Ledger** -Perpetual Inventory +Perpetual Inventory * * * @@ -311,11 +313,11 @@ Goods Sold" accounts are also affected based on the valuation amount. **Stock Ledger** -Perpetual Inventory +Perpetual Inventory **General Ledger** -Perpetual Inventory +Perpetual Inventory * * * @@ -348,10 +350,10 @@ Goods Sold" accounts are also affected based on the valuation amount. **Stock Ledger** -Perpetual Inventory +Perpetual Inventory **General Ledger** -Perpetual Inventory +Perpetual Inventory {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md b/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md index 9b140a64a9..58384326d4 100644 --- a/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md +++ b/erpnext/docs/user/manual/en/stock/articles/allow-over-delivery-billing-against-sales-order-upto-certain-limit.md @@ -1,8 +1,10 @@ +# Allow Over Delivery Billing Against Sales Order Upto Certain Limit + #Allow Over Delivery/Billing While creating Delivery Note, system validates if item's Qty mentined is same as in the Sales Order. If Item Qty has been increased, you will get over-delivery validation. If you want to be able to deliver more items than mentioned in the Sales Order, you should update "Allow over delivery or receipt upto this percent" in the Item master. -Item wise Allowance percentage +Item wise Allowance percentage Item's and Rate is also validated when creating Sales Invoice from Sales Order. Also when creating Purchase Receipt and Purchaes Invoice from Purchase Order. Updating "Allow over delivery or receipt upto this percent" will be affective in all sales and purchase transactions. @@ -16,7 +18,7 @@ Update global value for "Allow over delivery or receipt upto this percent" from 3. Save Stock Settings. -Item wise Allowance percentage +Item wise Allowance percentage diff --git a/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md b/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md index 02d88d8d3f..2d5e935219 100644 --- a/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md +++ b/erpnext/docs/user/manual/en/stock/articles/auto-creation-of-material-request.md @@ -1,20 +1,22 @@ +# Auto Creation Of Material Request + #Auto Creation of Material Request To prevent stockouts, you can track item's reorder level. When stock level goes below reorder level, purchase manager is notified and instructed to initiate purchase process for the item. In ERPNext, you can update item's Reorder Level and Reorder Qty in the Item master. If same item has different reorder level, you can also update warehouse-wise reorder level and reorder qty. -reorder level +reorder level With reorder level, you can also define what should be the next action. Either new purchase or transfer from another warehouse. Based on setting in Item master, purpose will be updated in the Material Request as well. -reorder level next action +reorder level next action When item's stock reaches reorder level, Material Request is auto-created automatically. You can enable this feature from: `Stock > Setup > Stock Settings` -active auto-material request +active auto-material request A separate Material Request will be created for each item. User with Purchase Manager's role will receive email alert about these Material Requests. @@ -23,5 +25,5 @@ If auto creation of Material Request is failed, User with Purchase Manager role **An error occurred for certain Items while creating Material Requests based on Re-order level.** **Date 01-04-2016 not in any Fiscal Year.** -One of the reason of error could be Fiscal Year as well. Click [here]({{docs_base_url}}/user/manual/en/accounts/articles/fiscal-year-error.html) to learn more about it. +One of the reason of error could be Fiscal Year as well. Click [here](/docs/user/manual/en/accounts/articles/fiscal-year-error.html) to learn more about it. \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md b/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md index 491427c3f2..fbe00cb6a8 100644 --- a/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md +++ b/erpnext/docs/user/manual/en/stock/articles/creating-depreciation-for-item.md @@ -1,8 +1,10 @@ +# Creating Depreciation For Item + #Depreciation Entry **Question:** A Fixed Asset Item has been purchased and stored in a warehouse. How to create a depreciation for a Fixed Asset Item? -**Answer:**You can post asset depreciation entry for the fixed asset item via [Stock Reconciliation]({{docs_base_url}}/user/manual/en/stock/opening-stock.html) Entry. +**Answer:**You can post asset depreciation entry for the fixed asset item via [Stock Reconciliation](/docs/user/manual/en/stock/opening-stock.html) Entry. ####Step 1: @@ -13,7 +15,7 @@ In the Attachment file, fill in the appropriate columns; - **Qty (Quantity)** Leave this column blank. - **Valuation Rate** will be item's value after depreciation. -reorder level +reorder level After updating Valuation Rate for an item, come back to Stock Reconciliation and upload save .csv file. @@ -21,7 +23,7 @@ After updating Valuation Rate for an item, come back to Stock Reconciliation and Select Expense account for depreciation in **Difference Account**. Value booked in the depreciation account will be the difference of old and next valuation rate of the fixed asset item, which will be actually the depreciation amount. -reorder level +reorder level ####Stock Reconciliation Help Video diff --git a/erpnext/docs/user/manual/en/stock/articles/index.md b/erpnext/docs/user/manual/en/stock/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/stock/articles/index.md +++ b/erpnext/docs/user/manual/en/stock/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md b/erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md index f93e66862b..e1fe2953c8 100644 --- a/erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md +++ b/erpnext/docs/user/manual/en/stock/articles/maintain-stock-field-frozen-in-item-master.md @@ -1,3 +1,5 @@ +# Maintain Stock Field Frozen In Item Master + #Maintain Stock field Frozen in the Item master In the item master, you might witness values in the following fields to be frozen. @@ -6,7 +8,7 @@ In the item master, you might witness values in the following fields to be froze 1. Has Batch No. 1. Has Serial No. -Item Field Frozen +Item Field Frozen For an item, once stock ledger entry is created, values in these fields will be froze. This is to prevent user from changing value which can lead to mis-match of actual stock, and stock level in the system of an item. diff --git a/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md b/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md index 2d57d6442e..b0d33eb4ff 100644 --- a/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md +++ b/erpnext/docs/user/manual/en/stock/articles/manage-rejected-finished-goods-items.md @@ -1,3 +1,5 @@ +# Manage Rejected Finished Goods Items + #Manage Rejected Finished Goods Items There could be manufactured Items which would not pass quality test, hence rejected. diff --git a/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md b/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md index ccf39c1a40..85fc00feff 100644 --- a/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md +++ b/erpnext/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.md @@ -1,16 +1,18 @@ +# Managing Batch Wise Inventory + #Managing Batch wise Inventory Set of items which has same properties and attributes can be group in a single Batch. For example, pharmaceuticals items are batch, so that it's manufacturing and expiry date can be tracked together. To maintain batches against an Item you need to mention 'Has Batch No' as yes in the Item Master. -Batch Item +Batch Item You can create a new Batch from: `Stock > Documents > Batch > New` -To learn more about batch, click [here.]({{docs_base_url}}/user/manual/en/stock/batch.html) +To learn more about batch, click [here.](/docs/user/manual/en/stock/batch.html) For the Batch item, updating Batch No. in the stock transactions (Purchase Receipt & Delivery Note) is mandatory. @@ -18,13 +20,13 @@ For the Batch item, updating Batch No. in the stock transactions (Purchase Recei When creating Purchase Receipt, you should create new Batch, or select one of the existing Batch master. One Batch can be associated with one Batch Item. -Batch in Purchase Receipt +Batch in Purchase Receipt #### Delivery Note Define Batch in Delivery Note Item table. If Batch item is added under Product Bundle, you can update it's Batch No. in the Packing List table sa well. -Batch in Delivery Note +Batch in Delivery Note #### Batch-wise Stock Balance Report @@ -32,4 +34,4 @@ To check batch-wise stock balance report, go to: Stock > Standard Reports > Batch-wise Balance History -Batchwise Stock Balance +Batchwise Stock Balance diff --git a/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md b/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md index 12447e006d..904abd9d41 100644 --- a/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md +++ b/erpnext/docs/user/manual/en/stock/articles/managing-fractions-in-uom.md @@ -1,3 +1,5 @@ +# Managing Fractions In Uom + #Managing Fractions in UoM UoM stands for Unit of Measurement. Few examples of UoM are Numbers (Nos), Kgs, Litre, Meter, Box, Carton etc. @@ -18,7 +20,7 @@ From the list of UoM, select UoM for which value in decimal place is to be restr In the UoM master, you will find a field called "Must be whole number". Check this field to restrict user from enter value in decimal places in quantity field, for item having this UoM. -UoM Must be Whole No +UoM Must be Whole No ####Validation @@ -26,7 +28,7 @@ While creating transaction, if you enter value in fraction for item whos UoM has `Quantity cannot be a fraction at row #` -UoM Validation Message +UoM Validation Message \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md b/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md index 9b8684a1c4..169fe9f97d 100644 --- a/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md +++ b/erpnext/docs/user/manual/en/stock/articles/opening-stock-balance-entry-for-the-serialized-and-batch-item.md @@ -1,6 +1,8 @@ +# Opening Stock Balance Entry For The Serialized And Batch Item + #Opening Stock Balance Entry for the Serialized and Batch Item -Items for which Serial No. and Batch No. is maintained, opening stock balance entry for them is update via Stock Entry. [Click here to learn how serialized inventory is managed in ERPNext]({{docs_base_url}}/user/manual/en/stock/serial-no.html). +Items for which Serial No. and Batch No. is maintained, opening stock balance entry for them is update via Stock Entry. [Click here to learn how serialized inventory is managed in ERPNext](/docs/user/manual/en/stock/serial-no.html). **Question:** Why Opening Balance entry for the Serialized and Batch Item cannot be updated via Stock Reconciliation? @@ -34,13 +36,13 @@ Select Items for which opening balance is to be updated. For the serialized item, update quantity as many Serial Nos are their. -For the serialized item, mention Serial Nos. equivalent to it's Qty. Or if Serial Nos. are configured to be created based on Prefix, then no need to mention Serial Nos. manually. Click [here]({{docs_base_url}}/user/manual/en/stock/articles/serial-no-naming.html) to learn more about Serial No. naming. +For the serialized item, mention Serial Nos. equivalent to it's Qty. Or if Serial Nos. are configured to be created based on Prefix, then no need to mention Serial Nos. manually. Click [here](/docs/user/manual/en/stock/articles/serial-no-naming.html) to learn more about Serial No. naming. For a batch item, provide Batch ID in which opening balance will be updated. Keep batch master ready, and updated it for the Batch Item. To create new Batch, go to: `Stock > Setup > Batch > New` -[Click here to learn how Batchwise inventory is managed in ERPNext.]({{docs_base_url}}/user/manual/en/stock/articles/managing-batch-wise-inventory.html) +[Click here to learn how Batchwise inventory is managed in ERPNext.](/docs/user/manual/en/stock/articles/managing-batch-wise-inventory.html) #### Step 7: Update Valuation Rate an Item @@ -50,7 +52,7 @@ Update valuation rate, which will be per unit value of item. If different units As per perpetual inventory valuation system, accounting entry is created for every stock transaction. Double entry accounting system requires Total Debit matching with Total Credit in an entry. On the submission of Stock Entry, system debits Warehouse account by total value of items. To balance the same, we use Temporary Opening account as a Difference Account. -Difference Account +Difference Account #### Step 9: Save and Submit Stock Entry diff --git a/erpnext/docs/user/manual/en/stock/articles/repack-entry.md b/erpnext/docs/user/manual/en/stock/articles/repack-entry.md index 1d758c8a04..3011bad19e 100644 --- a/erpnext/docs/user/manual/en/stock/articles/repack-entry.md +++ b/erpnext/docs/user/manual/en/stock/articles/repack-entry.md @@ -1,3 +1,5 @@ +# Repack Entry + #Repack Entry Repack Entry is created for item bought in bulk, which is being packed into smaller packages. For example, item bought in tons can be repacked into Kgs. @@ -22,7 +24,7 @@ For raw-material/input item, only Source Warehouse will be provided. For repacked/output items, only Target Warehouse will be provided. You will have to provide valuation for the repack items. -Repack Entry +Repack Entry Update Qty for all the items selected. @@ -30,6 +32,6 @@ Update Qty for all the items selected. On submitting Stock Entry, stock of input item will be reduced from Source Warehouse, and stock of repack/output item will be added in the Target Warehouse. -Repack Stock Entry +Repack Stock Entry \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md b/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md index 4f2425ffb3..3ed608e4cf 100644 --- a/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md +++ b/erpnext/docs/user/manual/en/stock/articles/serial-no-naming.md @@ -1,3 +1,5 @@ +# Serial No Naming + #Serial No. Naming Serial Nos. is unique value assigned on each unit of an item. Serial no. helps in tracking item's warranty and expiry details. Generally high value items like machines, computers, costly equipments are serialized. @@ -14,11 +16,11 @@ If received items already has its Serial No. barcoded, you can simply scan that On submission of Purchase Receipt or Stock entry for the serialized item, Serial Nos. will be auto-generated. -Serial Nos Entry +Serial Nos Entry Generated Serial numbers will be updated for each item. -Serial Nos Created +Serial Nos Created ###2. Serializing Manufacturing Item @@ -28,12 +30,12 @@ To Serialize Manufacturing Item, you can define Series for Serial No. Generation When Item is set as serialized, it will allow you to mentioned Series for it. -Serial Nos Created +Serial Nos Created ####2.2 Production Entry for Serialized Item On submission of production entry for manufacturing item, system will automatically generate Serial Nos. following Series as specified in the Item master. -Serial Nos Created +Serial Nos Created \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md b/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md index 426328ecf7..be5a962e25 100644 --- a/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md +++ b/erpnext/docs/user/manual/en/stock/articles/stock-entry-purpose.md @@ -1,3 +1,5 @@ +# Stock Entry Purpose + #Stock Entry Purpose Stock Entry is a stock transaction, which can be used for multiple purposes. Let's learn about each Stock Entry Purpose below. @@ -8,7 +10,7 @@ Material Issue entry create to issue item(s) from a warehouse. On submission of Material Issue is generally made for the low value consumable items like office stationary, product consumables etc. Also you can create Material Issue to reconcile serialized and batched item's stock. -Material Issue +Material Issue #### 2.Purpose: Material Receipt @@ -16,34 +18,34 @@ Material Receipt entry is created to inward stock of item(s) in a warehouse. Thi For the stock valuation purpose, provided Item Valuation becomes a mandatory field in the Material Receipt entry. -Material Receipt +Material Receipt #### 3.Purpose: Material Transfer Material Transfer entry is created for the inter-warehouse Material Transfer. -Material Transfer +Material Transfer #### 4.Purpose: Material Transfer for Manufacture In the manufacturing process, raw-materials are issued from the stores to the production department (generally WIP warehouse). This Material Transfer entry is created from Production Order. Items in this entry are fetched from the BOM of production Item, as selected in Production Order. -Transfer for Manufacture +Transfer for Manufacture #### 4.Purpose: Manufacture Manufacture is created from Production Order. In this entry, both raw-material item as well as production item are fetched from the BOM, selected in the Production Order. For the raw-material items, only Source Warehouse (generally WIP warehouse) is mentioned. For the production item, only target warehouse as mentioned in the Production Order is updated. On submission, stock of raw-material items are deducted from Source Warehouse, which indicates that raw-material items were consumed in the manufacturing process. Production Item is added to the Target Warehouse marking the completion of production cycle. -Manufacture +Manufacture #### 5.Purpose: Repack -Repack Entry is created when items purchases in bulk is repacked under smaller packs. ![Check this page to know more about Repack entry.]({{docs_base_url}}/user/manual/en/stock/articles/repack-entry.html) +Repack Entry is created when items purchases in bulk is repacked under smaller packs. ![Check this page to know more about Repack entry.](/docs/user/manual/en/stock/articles/repack-entry.html) #### 6.Purpose: Subcontract -Subcontracting transaction involves company transfer raw-material items to the sub-contractors warehouse. This requires adding a warehouse for the sub-contractor as well. Sub-contract entry transfers stock from the companies warehouse to the sub-contractors warehouse.![Check this page to know more about Subcontracting]({{docs_base_url}}/user/manual/en/manufacturing/subcontracting.html). +Subcontracting transaction involves company transfer raw-material items to the sub-contractors warehouse. This requires adding a warehouse for the sub-contractor as well. Sub-contract entry transfers stock from the companies warehouse to the sub-contractors warehouse.![Check this page to know more about Subcontracting](/docs/user/manual/en/manufacturing/subcontracting.html). -Subcontract +Subcontract \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md b/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md index b674470156..de71a916da 100644 --- a/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md +++ b/erpnext/docs/user/manual/en/stock/articles/stock-level-report.md @@ -1,3 +1,5 @@ +# Stock Level Report + #Stock Level Report Stock Level report list stock item's quantity available in a particular warehouse. diff --git a/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md b/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md index 6d8fcb6297..bafa0358b0 100644 --- a/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md +++ b/erpnext/docs/user/manual/en/stock/articles/track-items-using-barcode.md @@ -1,3 +1,5 @@ +# Track Items Using Barcode + #Track Items Using Barcode A barcode is a value decoded into vertical spaced lines. Barcode scanners are the input medium, like Keyboard. When it scans a barcode, the data appears in the computer screens at the point of a cursor. @@ -6,10 +8,10 @@ A barcode is a value decoded into vertical spaced lines. Barcode scanners are th To set the barcode of a particular item, you will have to open the Item record. You can also enter barcode while creating a new item. -Material Transfer +Material Transfer Once barcode field is updated in item master, items can be fetched using barcode. This feature will be availble in Delivery Note, Sales Invoice and Purchase Receipt transactions only. -Material Transfer +Material Transfer \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/batch.md b/erpnext/docs/user/manual/en/stock/batch.md index 73309f491e..a97be920ee 100644 --- a/erpnext/docs/user/manual/en/stock/batch.md +++ b/erpnext/docs/user/manual/en/stock/batch.md @@ -1,3 +1,5 @@ +# Batch + Batch feature in ERPNext allows you to group multiple units of an item, and assign them a unique value/number/tag called Batch No. @@ -9,7 +11,7 @@ To set item as a batch item, "Has Batch No" field should be checked in the Item If you want automatic batch creation at the time of Purchase Receipt, you must check "Create New Batches Automatically" -Item Setup for Batches +Item Setup for Batches ### Creating Batches @@ -23,7 +25,7 @@ To create new Batch No. master for an item, go to: When you open a batch, you will see all the quantities relating this that batch on the page. -Batch View +Batch View To move the batch from one warehouse to another, you can click on the move button. diff --git a/erpnext/docs/user/manual/en/stock/delivery-note.md b/erpnext/docs/user/manual/en/stock/delivery-note.md index ad5f2c8f16..a59ac35bd1 100644 --- a/erpnext/docs/user/manual/en/stock/delivery-note.md +++ b/erpnext/docs/user/manual/en/stock/delivery-note.md @@ -1,3 +1,5 @@ +# Delivery Note + A Delivery Note is made when a shipment is shipped from the company’s Warehouse. @@ -13,7 +15,7 @@ create a new Delivery Note from: or from a “Submitted” Sales Order (that is not already shipped) by clicking on “Make Delivery Note”. -Delivery Note +Delivery Note You can also “fetch” the details from an unshipped Sales Order. @@ -22,7 +24,7 @@ details are carried over from your Sales Order. ### Shipping Packets or Items with Product Bundle -If you are shipping Items that have a [Product Bundle]({{docs_base_url}}/user/manual/en/selling/setup/product-bundle.html), ERPNext will automatically +If you are shipping Items that have a [Product Bundle](/docs/user/manual/en/selling/setup/product-bundle.html), ERPNext will automatically create a “Packing List” table for you based on the sub-Items in that Item. If your Items are serialized, then for Product Bundle type of Items, you will have diff --git a/erpnext/docs/user/manual/en/stock/index.md b/erpnext/docs/user/manual/en/stock/index.md index 971c33c5b1..75872eeb0d 100644 --- a/erpnext/docs/user/manual/en/stock/index.md +++ b/erpnext/docs/user/manual/en/stock/index.md @@ -1,3 +1,5 @@ +# Stock + For most small business that deal in physical goods, a large part of their net worth is invested in the stock in hand. diff --git a/erpnext/docs/user/manual/en/stock/installation-note.md b/erpnext/docs/user/manual/en/stock/installation-note.md index 05196529a9..a75e15fac6 100644 --- a/erpnext/docs/user/manual/en/stock/installation-note.md +++ b/erpnext/docs/user/manual/en/stock/installation-note.md @@ -1,5 +1,7 @@ +# Installation Note + You can use installation note to record the instalation of a product having a serial number. -Installation Note +Installation Note {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 aea38f5258..3e2bdd35bb 100644 --- a/erpnext/docs/user/manual/en/stock/item/index.md +++ b/erpnext/docs/user/manual/en/stock/item/index.md @@ -1,3 +1,5 @@ +# Item + 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 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. @@ -5,11 +7,11 @@ ERPNext is optimised for itemised management of your sales and purchase. If you ## Item Properties * **Item Name:** Item name is the actual name of your product or service. - * **Item Code:** Item Code is a short-form to denote your Item. If you have very few Items, it is advisable to keep the Item Name and the Item Code same. This helps new users to recognise and update Item details in all transactions. In case you have lot of Items with long names and the list runs in hundreds, it is advisable to code. To understand naming Item codes see [Item Codification]({{docs_base_url}}/user/manual/en/stock/item/item-codification.html) - * **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) + * **Item Code:** Item Code is a short-form to denote your Item. If you have very few Items, it is advisable to keep the Item Name and the Item Code same. This helps new users to recognise and update Item details in all transactions. In case you have lot of Items with long names and the list runs in hundreds, it is advisable to code. To understand naming Item codes see [Item Codification](/docs/user/manual/en/stock/item/item-codification.html) + * **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/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 variants 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/user/manual/en/stock/item/item-variants.html) ### Upload an Image @@ -29,11 +31,11 @@ In ERPNext, you can select different type of Warehouses to stock your different These numbers help to track individual units or batches of Items which you sell. It also tracks warranty and returns. In case any individual Item is recalled by the supplier the number system helps to track individual Item. The numbering system also manages expiry dates. Please note that if you sell your items in thousands, and if the items are very small like pens or erasers, you need not serialize them. In ERPNext, you will have to mention the serial number in some accounting entries. To create serial numbers you will have to manually create all the numbers in your entries. If your product is not a big consumer durable Item, if it has no warranty and has no chances of being recalled, avoid giving serial numbers. > Tip: While entering an item code in an items table, if the table requires inventory details, then depending on whether the entered item is batched or serialized, you can enter serial or batch numbers right away in a pop-up dialog. -Serial No modalBatch No modal +Serial No modalBatch No modal > Important: Once you mark an item as serialized or batched or neither, you cannot change it after you have made any stock entry. - * [Discussion on Serialized Inventory]({{docs_base_url}}/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html) + * [Discussion on Serialized Inventory](/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html) ### Re Ordering @@ -45,7 +47,7 @@ These numbers help to track individual units or batches of Items which you sell. 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. +Go to [Setting Up Taxes](/docs/user/manual/en/setting-up/setting-up-taxes.html) to understand this topic in detail. ### Inspection @@ -55,9 +57,9 @@ Inspection Criteria: If a Quality Inspection is prepared for this Item, then thi ### Purchase Details -Item Purchase Details +Item Purchase Details -Purchase details +Purchase details * **Lead time days:** Lead time days are the number of days required for the Item to reach the warehouse. @@ -67,7 +69,7 @@ Inspection Criteria: If a Quality Inspection is prepared for this Item, then thi ###Supplier Details -Item Supplier Details +Item Supplier Details * **Default Supplier:** Supplier from whom you generally purchase this item. @@ -77,25 +79,25 @@ Inspection Criteria: If a Quality Inspection is prepared for this Item, then thi ### Sales Details -Item Sales Details +Item Sales Details * **Default Income Account:** Income account selected here will be fetched automatically in sales invoice for this item. -Sales details +Sales details -Sales details +Sales details ***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. -Sales details +Sales details ### Manufacturing And Website -Manufaturing details +Manufaturing details -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. +Visit [Manufacturing](/docs/user/manual/en/manufacturing.html) and [Website ](/docs/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-codification.md b/erpnext/docs/user/manual/en/stock/item/item-codification.md index eeb4f49a2b..82ed3072bf 100644 --- a/erpnext/docs/user/manual/en/stock/item/item-codification.md +++ b/erpnext/docs/user/manual/en/stock/item/item-codification.md @@ -1,3 +1,5 @@ +# Item Codification + If you already have a full-fledged business with a number of physical items, you would have probably coded your items. If you have not, you have a choice. We recommend that you should codify if you have lot of products with long or diff --git a/erpnext/docs/user/manual/en/stock/item/item-price.md b/erpnext/docs/user/manual/en/stock/item/item-price.md index 342e41989c..52850c2822 100644 --- a/erpnext/docs/user/manual/en/stock/item/item-price.md +++ b/erpnext/docs/user/manual/en/stock/item/item-price.md @@ -1,3 +1,5 @@ +# Item Price + Item Price is the record in which you can log selling and buying rate of an item. There are two ways to reach to new Item Price form. @@ -14,7 +16,7 @@ Step 1: Select Price List You can create multiple Price List in ERPNext to track Selling and Buying Price List of an item separtely. Also if item's selling prices id changing based on territory, or due to other criteria, you can create multiple selling Price List for it. -![Item Price list]({{docs_base_url}}/assets/old_images/erpnext/item-price-list.png) +![Item Price list](/docs/assets/old_images/erpnext/item-price-list.png) On selection of Price List, its currency and for selling or buying property will be fetched as well. @@ -24,13 +26,13 @@ Step 2: Select Item Select item for which Item Price record is to be created. On selection of Item Code, Item Name and Description will be fetched as well. -![Item Price Item]({{docs_base_url}}/assets/old_images/erpnext/item-price-item.png) +![Item Price Item](/docs/assets/old_images/erpnext/item-price-item.png) Step 3: Enter Rate Enter selling/buying rate of an item in Price List currency. -![Item Price Rate]({{docs_base_url}}/assets/old_images/erpnext/item-price-rate.png) +![Item Price Rate](/docs/assets/old_images/erpnext/item-price-rate.png) Step 4: Save Item Price 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 d1456eef34..cc59618467 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 @@ -1,3 +1,5 @@ +# Item Valuation Fifo And Moving Average + ### How are Items Valued? One of the major features of any inventory system is that you can find out the @@ -19,7 +21,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 +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/item-variants.md b/erpnext/docs/user/manual/en/stock/item/item-variants.md index 7514404a6d..8b6da16baa 100644 --- a/erpnext/docs/user/manual/en/stock/item/item-variants.md +++ b/erpnext/docs/user/manual/en/stock/item/item-variants.md @@ -19,33 +19,33 @@ To use Item Variants in ERPNext, create an Item and check 'Has Variants'. * The Item shall then be referred to as a so called 'Template'. Such a Template is not identical to a regular 'Item' any longer. For example it (the Template) can not be used directly in any Transactions (Sales Order, Delivery Note, Purchase Invoice) itself. Only the Variants of an Item (_blue_ t-shirt in size _small)_ can be practically used in such. Therefore it would be ideal to decide whether an item 'Has Variants' or not directly when creating it. -Has Variants +Has Variants On selecting 'Has Variants' a table shall appear. Specify the variant attributes for the Item in the table. In case the attribute has Numeric Values, you can specify the range and increment values here. -Valid Attributes +Valid Attributes > Note: You cannot make Transactions against a 'Template' To create 'Item Variants' against a 'Template' select 'Make Variants' -Make Variants +Make Variants -Make Variants +Make Variants -To learn more about setting Attributes Master check [Item Attributes]({{docs_base_url}}/user/manual/en/stock/setup/item-attribute.html) +To learn more about setting Attributes Master check [Item Attributes](/docs/user/manual/en/stock/setup/item-attribute.html) ### Variants Based on Manufacturers To setup variants based on Manufactueres, in your Item template, set "Variants Based On" as "Manufacturers" Setup Item Variant by Manufacturer + src='/docs/assets/img/stock/select-mfg-for-variant.png'> When you make a new Variant, the system will prompt you to select a Manufacturer. You can also optionally put in a Manufacturer Part Number Setup Item Variant by Manufacturer + src='/docs/assets/img/stock/set-variant-by-mfg.png'> The naming of the variant will be the name (ID) of the template Item with a number suffix. e.g. "ITEM000" will have variant "ITEM000-1" \ No newline at end of file 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 134d551d46..3de1724923 100644 --- a/erpnext/docs/user/manual/en/stock/item/purchase-details.md +++ b/erpnext/docs/user/manual/en/stock/item/purchase-details.md @@ -4,4 +4,4 @@ To track a warranty period, it is necessary that the Item is a serialized Item. 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. -Item Warranty \ No newline at end of file +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 548a8a9ad0..06caa2c075 100644 --- a/erpnext/docs/user/manual/en/stock/item/reorder.md +++ b/erpnext/docs/user/manual/en/stock/item/reorder.md @@ -10,4 +10,4 @@ For example, you can set your reorder level of Motherboard at 10. When there are 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 +Item Reorder \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/material-request.md b/erpnext/docs/user/manual/en/stock/material-request.md index 8e4caea23e..c3ba13ceb6 100644 --- a/erpnext/docs/user/manual/en/stock/material-request.md +++ b/erpnext/docs/user/manual/en/stock/material-request.md @@ -1,7 +1,9 @@ +# Material Request + A Material Request is a simple document identifying a requirement of a set of Items (products or services) for a particular reason. -Material Request +Material Request To generate a Material Request manually go to: @@ -9,14 +11,14 @@ To generate a Material Request manually go to: #### Creating Material Request -Material Request +Material Request A Material Request can be generated: * Automatically from a Sales Order. * Automatically when the Projected Quantity of an Item in stores reaches a particular level. * Automatically from your Bill of Materials if you use Production Plan to plan your manufacturing activities. - * If your Items are inventory items, you must also mention the Warehouse where you expect these Items to be delivered. This helps to keep track of the [Projected Quantity]({{docs_base_url}}/user/manual/en/stock/projected-quantity.html) for this Item. + * If your Items are inventory items, you must also mention the Warehouse where you expect these Items to be delivered. This helps to keep track of the [Projected Quantity](/docs/user/manual/en/stock/projected-quantity.html) for this Item. A Material Request can be of type: @@ -25,7 +27,7 @@ A Material Request can be of type: * Material Issue - If the requested material is to be Issued. * Manufacture - If the requested material is to be Produced. -The User can also raise a [Request For Quotation]({{docs_base_url}}/user/manual/en/buying/request-for-quotation.html) against a Material Request. To create a Request For Quotation the user can click on 'Make'. +The User can also raise a [Request For Quotation](/docs/user/manual/en/buying/request-for-quotation.html) against a Material Request. To create a Request For Quotation the user can click on 'Make'. > Info: Material Request is not mandatory. It is ideal if you have centralized buying so that you can collect this information from various departments. diff --git a/erpnext/docs/user/manual/en/stock/opening-stock.md b/erpnext/docs/user/manual/en/stock/opening-stock.md index e59fb42378..ea77999fe0 100644 --- a/erpnext/docs/user/manual/en/stock/opening-stock.md +++ b/erpnext/docs/user/manual/en/stock/opening-stock.md @@ -10,6 +10,6 @@ In both cases, you should enter "Difference/Expense Account" as **Temporary Open If you are not making opening Stock Entry, you can select "Stock Adjustment" account in Difference/Expense Account field which is an expense account. -To understand Opening Stock for serialized Items visit [Stock Reconciliation]({{docs_base_url}}/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html) +To understand Opening Stock for serialized Items visit [Stock Reconciliation](/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html) {next} diff --git a/erpnext/docs/user/manual/en/stock/projected-quantity.md b/erpnext/docs/user/manual/en/stock/projected-quantity.md index 0e7b742768..e02b2c3010 100644 --- a/erpnext/docs/user/manual/en/stock/projected-quantity.md +++ b/erpnext/docs/user/manual/en/stock/projected-quantity.md @@ -1,3 +1,5 @@ +# Projected Quantity + Projected Quantity is the level of stock that is predicted for a particular Item, based on the current stock levels and other requirements. It is the quantity of gross inventory that includes supply and demand in the past which @@ -11,7 +13,7 @@ maintained to serve unexpected demands. Having a tight control of the projected inventory is crucial to determine shortages and to calculate the right order quantity. -Projected Quantity +Projected Quantity > Projected Qty = Actual Qty + Planned Qty + Requested Qty + Ordered Qty - diff --git a/erpnext/docs/user/manual/en/stock/purchase-receipt.md b/erpnext/docs/user/manual/en/stock/purchase-receipt.md index 0f43b5884e..523b0fa9a0 100644 --- a/erpnext/docs/user/manual/en/stock/purchase-receipt.md +++ b/erpnext/docs/user/manual/en/stock/purchase-receipt.md @@ -1,3 +1,5 @@ +# Purchase Receipt + Purchase Receipts are made when you accept material from your Supplier usually against a Purchase Order. @@ -10,7 +12,7 @@ You can make a Purchase Receipt directly from: or from a “Submitted” Purchase Order, by clicking on “Make Purchase Receipt”. -Purchase Receipt +Purchase Receipt ### Rejections diff --git a/erpnext/docs/user/manual/en/stock/purchase-return.md b/erpnext/docs/user/manual/en/stock/purchase-return.md index 328ed08257..2b630341d9 100644 --- a/erpnext/docs/user/manual/en/stock/purchase-return.md +++ b/erpnext/docs/user/manual/en/stock/purchase-return.md @@ -1,3 +1,5 @@ +# Purchase Return + ERPNext has an option for products that are need to be returned to the supplier. This may be on account of a number of reasons like defects in goods, quality not matching, the buyer not needing the stock, etc. @@ -6,16 +8,16 @@ You can create a Purchase Return by simply making a Purchase Receipt with negati First open the original Purchase Receipt, against which supplier delivered the items. -Original Purchase Receipt +Original Purchase Receipt Then click on "Make Purchase Return", it will open a new Purchase Receipt with "Is Return" checked, items and taxes with negative amount. -Return Against Purchase Receipt +Return Against Purchase Receipt On submission of Return Purchase Return, system will decrease item qty from the mentioned warehouse. To maintain correct stock valuation, stock balance will also go up according to the original purchase rate of the returned items. -Return Stock Ledger +Return Stock Ledger If Perpetual Inventory enabled, system will also post accounting entry against warehouse account to sync warehouse account balance with stock balance as per Stock Ledger. -Return Stock Ledger \ No newline at end of file +Return Stock Ledger \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/sales-return.md b/erpnext/docs/user/manual/en/stock/sales-return.md index 1ce922d5c6..1ba17c2709 100644 --- a/erpnext/docs/user/manual/en/stock/sales-return.md +++ b/erpnext/docs/user/manual/en/stock/sales-return.md @@ -1,3 +1,5 @@ +# Sales Return + Goods sold being returned is quite a common practice in business. They could be returned by the customer on quality issues, non-delivery on agreed date, or any other reason. @@ -6,22 +8,22 @@ In ERPNext, you can create a Sales Return by simply making a Delivery Note / Sal First open the original Delivery Note / Sales Invoice, against which customer returned the items. -Original Delivery Note +Original Delivery Note Then click on "Make Sales Return", it will open a new Delivery Note with "Is Return" checked, items and taxes with negative amount. -Return Against Delivery Note +Return Against Delivery Note You can also create the return entry against original Sales Invoice, to return stock along with credit note, check "Update Stock" option in Return Sales Invoice. -Return Against Sales Invoice +Return Against Sales Invoice On submission of Return Delivery Note / Sales Invoice, system will increase stock balance in the mentioned warehouse. To maintain correct stock valuation, stock balance will go up according to the original purchase rate of the returned items. -Return Stock Ledger +Return Stock Ledger In case of Return Sales Invoice, Customer account will be credited and associated income and tax account will be debited. If Perpetual Inventory enabled, system will also post accounting entry against warehouse account to sync warehouse account balance with stock balance as per Stock Ledger. -Return Stock Ledger \ No newline at end of file +Return Stock Ledger \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/serial-no.md b/erpnext/docs/user/manual/en/stock/serial-no.md index fbbfb1ae3f..cb766ba044 100644 --- a/erpnext/docs/user/manual/en/stock/serial-no.md +++ b/erpnext/docs/user/manual/en/stock/serial-no.md @@ -1,3 +1,5 @@ +# Serial No + As we discussed in the **Item** section, if an **Item** is _serialized_, a **Serial Number** (Serial No) record is maintained for each quantity of that **Item**. This information is helpful in tracking the location of the Serial @@ -20,7 +22,7 @@ Stock transaction (Stock Entry, Purchase Receipt, Delivery Note, Sales Invoice). When a new Serial No is created directly, its warehouse cannot be set. -Serial Number +Serial Number * The Status is set based on Stock Entry. diff --git a/erpnext/docs/user/manual/en/stock/setup/index.md b/erpnext/docs/user/manual/en/stock/setup/index.md index 6f3f1cb6f0..72547856d1 100644 --- a/erpnext/docs/user/manual/en/stock/setup/index.md +++ b/erpnext/docs/user/manual/en/stock/setup/index.md @@ -1,3 +1,5 @@ +# Setup + ### Topics {index} diff --git a/erpnext/docs/user/manual/en/stock/setup/item-attribute.md b/erpnext/docs/user/manual/en/stock/setup/item-attribute.md index 0b2ab748a0..a6e0eecb2f 100644 --- a/erpnext/docs/user/manual/en/stock/setup/item-attribute.md +++ b/erpnext/docs/user/manual/en/stock/setup/item-attribute.md @@ -1,16 +1,18 @@ +# Item Attribute + You can define Attributes and attribute values for your Item Variants here. -Attribute Master +Attribute Master #### Non Numeric Attributes * For Non Numeric Attributes, specify attributes values along with its abbreviation in the Attribute Value Table. -Attribute Master +Attribute Master #### Numeric Attributes * If your attribute is Numeric, select Numeric Values * Specify the Range and the Increment Value -Attribute Master +Attribute Master diff --git a/erpnext/docs/user/manual/en/stock/setup/item-group.md b/erpnext/docs/user/manual/en/stock/setup/item-group.md index cf6a75a166..a2800901ac 100644 --- a/erpnext/docs/user/manual/en/stock/setup/item-group.md +++ b/erpnext/docs/user/manual/en/stock/setup/item-group.md @@ -1,3 +1,5 @@ +# Item Group + Item Group is the classification category. Depending on the type of product, categorise it under its respective field. If the product is service oriented, name it under the group head - service. If the @@ -5,7 +7,7 @@ product is used as a raw-material, you have to name it under the Raw-material category. In case, your product is used only in trading, you can categorise it under Trading. -Item Group Tree +Item Group Tree ### Create a Item Group @@ -13,7 +15,7 @@ under Trading. * Select 'Add Child' -Add Item Group +Add Item Group ### Delete an Item Group @@ -21,6 +23,6 @@ under Trading. * Select 'delete' -Add Item Group +Add Item Group {next} diff --git a/erpnext/docs/user/manual/en/stock/setup/stock-settings.md b/erpnext/docs/user/manual/en/stock/setup/stock-settings.md index f8cb9eaa9d..32562c6c6e 100644 --- a/erpnext/docs/user/manual/en/stock/setup/stock-settings.md +++ b/erpnext/docs/user/manual/en/stock/setup/stock-settings.md @@ -1,5 +1,7 @@ +# Stock Settings + You can set default settings for your stock related transactions here. -Stock Settings +Stock Settings {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/stock-entry.md b/erpnext/docs/user/manual/en/stock/stock-entry.md index fb784c4a91..e2ac6a1433 100644 --- a/erpnext/docs/user/manual/en/stock/stock-entry.md +++ b/erpnext/docs/user/manual/en/stock/stock-entry.md @@ -1,3 +1,5 @@ +# Stock Entry + A Stock Entry is a simple document that lets you record Item movement from a Warehouse, to a Warehouse and between Warehouses. @@ -5,7 +7,7 @@ To make a Stock Entry you have to go to: > Stock > Stock Entry > New -Stock Entry +Stock Entry Stock Entries can be made for the following purposes: @@ -27,15 +29,15 @@ If the stock entry is an incoming entry i.e any item is receiving at a target wa To add additional costs, enter the description and amount of the cost in the Additional Costs table. -Stock Entry Additional Costs +Stock Entry Additional Costs The added additional costs will be distributed among the receiving items (where the target warehouse mentioned) proportionately based on Basic Amount of the items. And the distributed additional cost will be added to the basic rate of the item, to calculate valuation rate. -Stock Entry Item Valuation Rate +Stock Entry Item Valuation Rate If perpetual inventory system is enabled, additional costs will be booked in "Expense Included In Valuation" account. -Additional Costs General Ledger +Additional Costs General Ledger > **Note:** To update Stock from a spreadsheet, see [Stock Reconciliation]({{doc_base_url}}/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html). diff --git a/erpnext/docs/user/manual/en/stock/stock-how-to.md b/erpnext/docs/user/manual/en/stock/stock-how-to.md index e0f5b2f285..e395f43ee7 100644 --- a/erpnext/docs/user/manual/en/stock/stock-how-to.md +++ b/erpnext/docs/user/manual/en/stock/stock-how-to.md @@ -1,2 +1,4 @@ +# Stock How To + This page contains most frequently asked questions on Stocks. diff --git a/erpnext/docs/user/manual/en/stock/tools/index.md b/erpnext/docs/user/manual/en/stock/tools/index.md index 6f3f1cb6f0..1763bf3c8f 100644 --- a/erpnext/docs/user/manual/en/stock/tools/index.md +++ b/erpnext/docs/user/manual/en/stock/tools/index.md @@ -1,3 +1,5 @@ +# Tools + ### Topics {index} diff --git a/erpnext/docs/user/manual/en/stock/tools/landed-cost-voucher.md b/erpnext/docs/user/manual/en/stock/tools/landed-cost-voucher.md index 1209aff1fd..a11759d233 100644 --- a/erpnext/docs/user/manual/en/stock/tools/landed-cost-voucher.md +++ b/erpnext/docs/user/manual/en/stock/tools/landed-cost-voucher.md @@ -1,3 +1,5 @@ +# Landed Cost Voucher + Landed Cost is the total cost of a product to reach the product at the buyer’s door. Landed costs include the original cost of the item, complete shipping costs, customs duties, taxes, insurance and currency conversion fees etc. All of these components might not be applicable in every shipment, but relevant components must be considered as a part of the landed cost. > To understand landed cost better, let’s take an example based on our daily lives. You need to purchase a new washing machine for your home. Before making actual purchase, you probably do some investigation to know the best price. In this process, you often found a better deal from a store which is long away from your home. But you should also consider shipping cost while buying from that store. Total cost including transportation might be more than the price you get in your nearby store. In that case you will choose to buy from your nearest store, as landed cost of the item is cheaper in the nearest store. @@ -20,7 +22,7 @@ You can update landed cost any time in the future via Landed Cost Voucher. In the document, you can select multiple Purchase Receipts and fetch all items from those Purchase Receipts. Then you should add applicable charges in “Taxes and Charges” table. You can easily delete an item if the added charges is not applicable to that item. The added charges are proportionately distributed among all the items based their amount. -Landed Cost Vouher +Landed Cost Vouher ### What happend on submission? diff --git a/erpnext/docs/user/manual/en/stock/tools/packing-slip.md b/erpnext/docs/user/manual/en/stock/tools/packing-slip.md index 0820959677..60cfb5d138 100644 --- a/erpnext/docs/user/manual/en/stock/tools/packing-slip.md +++ b/erpnext/docs/user/manual/en/stock/tools/packing-slip.md @@ -1,7 +1,9 @@ +# Packing Slip + A packing slip is a document listing the items in a shipment. Usually attached to the goods delivered. While Shipping a product 'Draft' for Delivery Notes are created. You can make a Packing Slip from these Delivery Notes (Draft) -Packing Slip +Packing Slip {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/tools/quality-inspection.md b/erpnext/docs/user/manual/en/stock/tools/quality-inspection.md index 34bea40dcc..254da8a477 100644 --- a/erpnext/docs/user/manual/en/stock/tools/quality-inspection.md +++ b/erpnext/docs/user/manual/en/stock/tools/quality-inspection.md @@ -1,8 +1,10 @@ +# Quality Inspection + In ERPNext, you can mark your incoming or outgoing products for Quality Inspection. To enable ERPNext to perform this function, go to : > Stock > Quality Inspection > New -Quality Inspection +Quality Inspection {next} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/stock/warehouse.md b/erpnext/docs/user/manual/en/stock/warehouse.md index 74ee8ccb8a..d90e3f9b10 100644 --- a/erpnext/docs/user/manual/en/stock/warehouse.md +++ b/erpnext/docs/user/manual/en/stock/warehouse.md @@ -1,3 +1,5 @@ +# Warehouse + A warehouse is a commercial building for storage of goods. Warehouses are used by manufacturers, importers, exporters, wholesalers, transport businesses, customs, etc. They are usually large plain buildings in industrial areas of @@ -12,7 +14,7 @@ This can become quite a detailed Tree like >Warehouse >Room >Row >Shelf >Box To go to Warehouse, click on Stock and go to Warehouse under Setup. You could also switch to 'Tree' View or simply type warehouse tree in the awsone bar. -Warehouse +Warehouse In ERPNext, every Warehouse must belong to a specific company, to maintain company wise stock balance. In order to do so each Warehouse is linked with an diff --git a/erpnext/docs/user/manual/en/support/index.md b/erpnext/docs/user/manual/en/support/index.md index 7777049e2d..1fe172c51e 100644 --- a/erpnext/docs/user/manual/en/support/index.md +++ b/erpnext/docs/user/manual/en/support/index.md @@ -1,3 +1,5 @@ +# Support + Great customer support and maintenance is at the heart of any successful small business. ERPNext gives you the tools to track all incoming requests and issues from your customers so that you can respond quickly. Your database of incoming diff --git a/erpnext/docs/user/manual/en/support/issue.md b/erpnext/docs/user/manual/en/support/issue.md index 29fb85800c..56d0058e02 100644 --- a/erpnext/docs/user/manual/en/support/issue.md +++ b/erpnext/docs/user/manual/en/support/issue.md @@ -1,3 +1,5 @@ +# Issue + Issue is an incoming query from your Customer, usually via email or from the “Contact” section of your website. (To fully integrate the Support Ticket to email, see the Email Settings section). @@ -5,13 +7,13 @@ Ticket to email, see the Email Settings section). > Tip: A dedicated support Email Address is a good way to integrate incoming queries via email. For example, you can send support queries to ERPNext at support@erpnext.com and it will automatically create a Issue in the -Frappe system. +Frappé system. > Support > Issue > New Issue -Issue +Issue #### Discussion Thread diff --git a/erpnext/docs/user/manual/en/support/maintenance-schedule.md b/erpnext/docs/user/manual/en/support/maintenance-schedule.md index e211562601..a9be3b9918 100644 --- a/erpnext/docs/user/manual/en/support/maintenance-schedule.md +++ b/erpnext/docs/user/manual/en/support/maintenance-schedule.md @@ -1,3 +1,5 @@ +# Maintenance Schedule + All machines require regular maintenance, specially those that contain a lot of moving parts, so if you are in the business of maintaining those or have some of them in your own premises, this is a useful tool to plan a calendar of @@ -10,7 +12,7 @@ To create a new Maintenance Schedule go to: > Support > Maintenance Schedule > New Maintenance Schedule -Maintenance Schedule +Maintenance Schedule In the Maintenance Schedule, there are two sections: diff --git a/erpnext/docs/user/manual/en/support/maintenance-visit.md b/erpnext/docs/user/manual/en/support/maintenance-visit.md index e93260d9f1..5bda36a795 100644 --- a/erpnext/docs/user/manual/en/support/maintenance-visit.md +++ b/erpnext/docs/user/manual/en/support/maintenance-visit.md @@ -1,10 +1,12 @@ +# Maintenance Visit + A Maintenance Visit is a record of a visit made by an engineer to a Customer’s premise usually against a Customer Issue. You can create a new Maintenance Visit from: > Support > Maintenance Visit > New Maintenance Visit -Maintenance Visit +Maintenance Visit The Maintenance Visit contains information about the: diff --git a/erpnext/docs/user/manual/en/support/support_reports.md b/erpnext/docs/user/manual/en/support/support_reports.md index 2be72e10ef..7ef6ceac0d 100644 --- a/erpnext/docs/user/manual/en/support/support_reports.md +++ b/erpnext/docs/user/manual/en/support/support_reports.md @@ -1,3 +1,5 @@ +# Support Reports + ### Support Hours @@ -5,4 +7,4 @@ This report provide the information about the time slot along with the count of > Support > Reports > Support Hours -Maintenance Visit +Maintenance Visit diff --git a/erpnext/docs/user/manual/en/support/warranty-claim.md b/erpnext/docs/user/manual/en/support/warranty-claim.md index 0a58e18fd6..8080e654af 100644 --- a/erpnext/docs/user/manual/en/support/warranty-claim.md +++ b/erpnext/docs/user/manual/en/support/warranty-claim.md @@ -1,3 +1,5 @@ +# Warranty Claim + If you are selling **Items** under warranty or if you have sold and extended service contract like the Annual Maintenance Contract (AMC), your **Customer** may call you about an issue or a break-down and give you the Serial No of this @@ -15,7 +17,7 @@ To create a new **Warranty Claim**: > Support > Warranty Claim > New Warranty Claim -![Warranty Claim]({{docs_base_url}}/assets/img/support/warranty-claim.png) +![Warranty Claim](/docs/assets/img/support/warranty-claim.png) If a Customer visit is required to address the issue, you can create a new Maintenance Visit record from this. diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/Global-search.md b/erpnext/docs/user/manual/en/using-erpnext/articles/Global-search.md index 776c6e8879..482f12f1aa 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/Global-search.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/Global-search.md @@ -1,3 +1,5 @@ +# Global Search + Global-search.md @@ -8,9 +10,9 @@ Global Search helps users find information quickly. It’s located in the upper ### Using Awesome bar for Global Search. -Global Search +Global Search ### Enable Global Search for fields in a Doctype. -Global Search +Global Search diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/adding-attachments-to-outgoing-messages.md b/erpnext/docs/user/manual/en/using-erpnext/articles/adding-attachments-to-outgoing-messages.md index 75ade179fb..4ab4df47e5 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/adding-attachments-to-outgoing-messages.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/adding-attachments-to-outgoing-messages.md @@ -1,9 +1,11 @@ +# Adding Attachments To Outgoing Messages + #Adding Attachments to Outgoing Messages -ERPNext has in-built file manager. Click [here]({{docs_base_url}}/user/videos/learn/file-manager.html) to learn more on how attachments are managed in ERPNext. +ERPNext has in-built file manager. Click [here](/docs/user/videos/learn/file-manager.html) to learn more on how attachments are managed in ERPNext. If you have file attached to the document (say Purchase Order), and same file needs to be emailed as attachment, following is how you can achieve it. -Emailing Attachments +Emailing Attachments \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/adding-file-as-a-attachment.md b/erpnext/docs/user/manual/en/using-erpnext/articles/adding-file-as-a-attachment.md index e1c4ebd97d..fad7319592 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/adding-file-as-a-attachment.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/adding-file-as-a-attachment.md @@ -1,3 +1,5 @@ +# Adding File As A Attachment + #Adding File as a Attachment ERPNext allows to attach files with documents. User with a read permission on particular document will also be able to access files attached with it. @@ -8,11 +10,11 @@ There are several ways to attach file to the document. ####From Browser -Sales Order File Attachment +Sales Order File Attachment ####By drag and drop -Sales Order File Attachment +Sales Order File Attachment Click on Attach to browse and select the file. @@ -20,11 +22,11 @@ Click on Attach to browse and select the file. If you use separate server for files, or use online service like Dropbox, you can attach file by providing link of a particular file. -Sales Order Select File +Sales Order Select File `For hosted users, limit of 5 MB is applied on file size.` -To ensure there are not many files attached to a document, which can affect your accounts performance, you can set limit as how many files can be attached to a particular document. Click [here]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/increase-max-attachments.html) to learn more about it. +To ensure there are not many files attached to a document, which can affect your accounts performance, you can set limit as how many files can be attached to a particular document. Click [here](/docs/user/manual/en/customize-erpnext/articles/increase-max-attachments.html) to learn more about it. ####File Manager diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/bulk-rename.md b/erpnext/docs/user/manual/en/using-erpnext/articles/bulk-rename.md index a753358389..17e81c93d3 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/bulk-rename.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/bulk-rename.md @@ -1,3 +1,5 @@ +# Bulk Rename + #Bulk Rename Using renaming tool, you can to rectify/change multiple document ids at once. This tool is only accessible to the User who has System Manager role assigned. @@ -10,7 +12,7 @@ You can rename ids of upto 500 records at a time. Following are step to bulk ren In a spreadsheet file, enter old Item IDs in the first column, and new Item Ids in the second column. Save spreadsheet file in a CSV format. -Data File +Data File #### Step 2: Upload Data File @@ -20,7 +22,7 @@ To upload data file go to, Select DocType which you want to rename. Here DocType will be Item. Then Browse and Upload data file. -![Upload Data]({{docs_base_url}}/assets/img/articles/Selection_0173436a8.png) +![Upload Data](/docs/assets/img/articles/Selection_0173436a8.png) {next} diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/check-link-between-documents.md b/erpnext/docs/user/manual/en/using-erpnext/articles/check-link-between-documents.md index 76cdeb73fb..03ab4270f4 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/check-link-between-documents.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/check-link-between-documents.md @@ -1,8 +1,10 @@ +# Check Link Between Documents + #Checking Link Between Documents Links option shows one document is linked to which other documents. Check Menu for the Links options. -Cancel Doc +Cancel Doc ####Scenario @@ -18,6 +20,6 @@ If I check Links in the Purchase Receipt, will it list Purchase Order from which Links only shows forward linkages. For the backward links, you should check current document itself. In the Purchase Receipt Item table table, you can check which Purchase Order it is linked to. -Cancel Doc +Cancel Doc \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/delete-submitted-document.md b/erpnext/docs/user/manual/en/using-erpnext/articles/delete-submitted-document.md index 8d7700a902..f18a355a80 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/delete-submitted-document.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/delete-submitted-document.md @@ -1,3 +1,5 @@ +# Delete Submitted Document + #Delete Submitted Document To be able to delete Submitted document, you should first Cancel. Once canceled, you can delete that document from Menu or from the List View of that Document Type. @@ -12,18 +14,18 @@ Following are step to delete submitted documents. You will find option to Cancel in the submitted document. If document is at draft stage, it can delete directly. Also if document is not submittable, but only save, it can be deleted directly. -Cancel Doc +Cancel Doc ####Step 2: Delete Document After cancellation, go to Menu and click on Delete. -Delete Doc +Delete Doc ####Step 3: Deleting from List For bulk deletion, you can select multiple Cancelled records and delete at once from the List View. -Delete Doc from List +Delete Doc from List \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/duplicate-record.md b/erpnext/docs/user/manual/en/using-erpnext/articles/duplicate-record.md index 69b4ecf3e5..f57e76f4c2 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/duplicate-record.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/duplicate-record.md @@ -1,3 +1,5 @@ +# Duplicate Record + #Duplicate a Record Duplicate feature helps you to copy values of existing document into new document. @@ -10,6 +12,6 @@ You will find Copy option under: `Menu > Copy` -Duplicate +Duplicate \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/index.md b/erpnext/docs/user/manual/en/using-erpnext/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/index.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md b/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md index f03bbd8247..683a47414e 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md @@ -1,3 +1,5 @@ +# Merging Documents + #Merging Documents For a document, if you have two records which are identical, and meant for common purpose, you can merge them into one record. @@ -12,7 +14,7 @@ Following are step to merge documents. Let's assume we are merging two Accounts. For an Account to be merged, click on the "Rename" option. -Sales Order File Attachment +Sales Order File Attachment #### Step 3: Merge Account @@ -20,7 +22,7 @@ In the New Name field, enter another account name with which this account will b Following is how the merged account will appear in the Chart of Accounts master. -Sales Order File Attachment +Sales Order File Attachment ###Effect of Merging diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/pos-view.md b/erpnext/docs/user/manual/en/using-erpnext/articles/pos-view.md index 839e820afc..75f057ea1a 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/pos-view.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/pos-view.md @@ -1,10 +1,12 @@ +# Pos View + #POS View POS (point of sale) view renders form in a different layout, optimized for the quick selection of items. This view has primarily been designed for the retail business. Using POS View, you can only create Sales Invoice, without switching to standard form view. For other transactions, like Sales Order, Delivery Note, Purchase Order, Purchase Receipt etc., POS View is only used for Item selection. For entering other values in the transaction, you should switch to form view. -POS View +POS View For creating POS Invoice, check following help video. diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/renaming-documents.md b/erpnext/docs/user/manual/en/using-erpnext/articles/renaming-documents.md index a6b66965a9..f6072d3854 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/renaming-documents.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/renaming-documents.md @@ -1,3 +1,5 @@ +# Renaming Documents + #Renaming a Document Using Renaming feature, you can change ID of a master documents like Item, Warehouse, Accounts etc. Following are the steps to rename Item Code. Following same steps, you can rename other masters as well. @@ -8,7 +10,7 @@ Using Renaming feature, you can change ID of a master documents like Item, Wareh #### 2. Rename -Renamed Item +Renamed Item ###Effect of Renaming @@ -16,8 +18,8 @@ Renaming document affects existing transaction where this record is selected. Co ###See Also -1. [Bulk Renaming]({{docs_base_url}}/user/manual/en/using-erpnext/articles/bulk-rename.html) -2. [Document Merging]({{docs_base_url}}/user/manual/en/using-erpnext/articles/merging-documents.html) +1. [Bulk Renaming](/docs/user/manual/en/using-erpnext/articles/bulk-rename.html) +2. [Document Merging](/docs/user/manual/en/using-erpnext/articles/merging-documents.html) **List of Renamable Documents** diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/search-filter.md b/erpnext/docs/user/manual/en/using-erpnext/articles/search-filter.md index 8a0a67b3ab..307c9964ca 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/search-filter.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/search-filter.md @@ -1,3 +1,5 @@ +# Search Filter + #Search Filter Search Filter option allow user to filter records based on value in the specific field of that document. Search Filters are available on the List View of Document Type and in the Report Builder. @@ -8,20 +10,20 @@ Each filter option has three fields. Select field of the document based on which you wish to filter records. -Search Filter Field +Search Filter Field #### Based On With Field, you will provide a value. In the based on field, you can define a criterion that when filter should be applied in record. It will be when value define for the field if filter is: -Search Filter Based On +Search Filter Based On #### Value A value should be entered in this field based on while records will be filtered. After filter is applied, records will be filtered based on it. And filter will shrunk under one field/button. -Search Filter Based On +Search Filter Based On You can apply multiple filters at a time. To remove specific filter, just click on cancelled (X) sign ahead of it. @@ -30,6 +32,6 @@ You can apply multiple filters at a time. To remove specific filter, just click From the list views, you can also apply filters by clicking on the Status field. -Renamed Item +Renamed Item diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/tree-master-renaming.md b/erpnext/docs/user/manual/en/using-erpnext/articles/tree-master-renaming.md index 44d4e970de..935e32ba6b 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/articles/tree-master-renaming.md +++ b/erpnext/docs/user/manual/en/using-erpnext/articles/tree-master-renaming.md @@ -1,6 +1,8 @@ +# Tree Master Renaming + #Tree Master Renaming -There are various master which are maintained in tree structure. Click [here]({{docs_base_url}}/user/manual/en/setting-up/articles/managing-tree-structure-masters.html) to learn more about tree structured masters in ERPNext. +There are various master which are maintained in tree structure. Click [here](/docs/user/manual/en/setting-up/articles/managing-tree-structure-masters.html) to learn more about tree structured masters in ERPNext. Following are the steps to be followed for renaming ID of a master which is maintained in tree structure. Let's rename an Account for the instance. @@ -12,12 +14,12 @@ Following are the steps to be followed for renaming ID of a master which is main When click on the Account, you will find Rename option. -Account +Account #### Step 2: Rename Account On clicking Rename, you will get field to enter New Name. After entering new name for the Account, click on the "Rename" button. -Renamed Account +Renamed Account \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/assignment.md b/erpnext/docs/user/manual/en/using-erpnext/assignment.md index e78a1123d6..ffd0abd1db 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/assignment.md +++ b/erpnext/docs/user/manual/en/using-erpnext/assignment.md @@ -1,3 +1,5 @@ +# Assignment + Assign To feature in ERPNext allows you to allocate particular document to specific user, whom needs to further work on that document. For example, if Sales Order needs to be approved/submitted by Sales Manager, first draft user can allocate that Sales Order to Sales Manager. On allocating document to Sales Manager, it will be added to that user's ToDo list. Same way, allocation can also be done to Material User and Account user who needs to create Delivery Note and Sales Invoice respectively against this Sales Note. @@ -10,13 +12,13 @@ Following are the steps to assign document to another user. Assign to option is located at the footer of document. Clicking on Assignment Icon on the tool bar will fast-forward you to footer of same document. -Assign +Assign #### Step 2: Assign to User In the Assign To section, you will find option to select User to whom this document will be assigned to. You can assign one document to multiple people at a time. -Assign +Assign With assignment, you can also leave a comment for the review of assignee. @@ -24,13 +26,13 @@ With assignment, you can also leave a comment for the review of assignee. This transaction will appear in the To-do list of the user in “Todo” section. -Assign +Assign ####Removing Assignment User will be able to remove assignment by clicking on "Assignment Completed" button in the document. -Assign +Assign Once assignment is set as completed, the Status of its ToDo record will be set as Closed. diff --git a/erpnext/docs/user/manual/en/using-erpnext/calendar.md b/erpnext/docs/user/manual/en/using-erpnext/calendar.md index c8b64af98c..bf0412bea7 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/calendar.md +++ b/erpnext/docs/user/manual/en/using-erpnext/calendar.md @@ -1,8 +1,10 @@ +# Calendar + The Calendar is a tool where you can create and share Events and also see auto-generated events from the system. You can switch calendar view based on Month, Week and Day. -Calendar +Calendar ### Creating Events in Calendar @@ -12,7 +14,7 @@ To create event manually, you should first determine Calendar View. If Event's s 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. -Calendar +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. @@ -20,7 +22,7 @@ Based on the selection of time slot, Start Time and End Time will be updated in 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. -Lead Event +Lead Event #### Birthday Event @@ -31,7 +33,7 @@ Birthday Event is created based on Date of Birth specified in the Employee maste You can set events as recurring in specific interval by Checking the "Repeat This Event". -Calendar Recurring Event +Calendar Recurring Event ### Event Reminders @@ -41,7 +43,7 @@ There are two ways you can receive email reminder for an event. In the Event master, checking "Send an email reminder in the morning" will trigger notification email to all the participants for this event. -Calendar Recurring Event +Calendar Recurring Event #### Create Email Digest @@ -51,6 +53,6 @@ Email Digest can be set from: `Setup > Email > Email Digest` -Calendar Recurring Event +Calendar Recurring Event {next} diff --git a/erpnext/docs/user/manual/en/using-erpnext/chat.md b/erpnext/docs/user/manual/en/using-erpnext/chat.md index ed155d8c06..867c4b45e8 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/chat.md +++ b/erpnext/docs/user/manual/en/using-erpnext/chat.md @@ -1,3 +1,5 @@ +# Chat + You can send and receive messages from the system by using the Messages tool. `Explore > Tools > Chat` @@ -5,10 +7,10 @@ You can send and receive messages from the system by using the Messages tool. If you send a message to a user, and the user is logged in, it will appear as a popup message and the unread messages counter in the top toolbar will be updated. -Assign +Assign You can choose to send message to all the users, or to specific user. -Assign +Assign {next} diff --git a/erpnext/docs/user/manual/en/using-erpnext/collaborating-around-forms.md b/erpnext/docs/user/manual/en/using-erpnext/collaborating-around-forms.md index 7ffec7677f..b0cf94553f 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/collaborating-around-forms.md +++ b/erpnext/docs/user/manual/en/using-erpnext/collaborating-around-forms.md @@ -1,24 +1,26 @@ +# Collaborating Around Forms + Following are the tools in each document using which you can collaborate with other Users in your ERPNext account. ### Assigned to -If some document requires an action from User, you can Assign that document to that User. On assignment, User to whom document is assigned is intimated via email. To learn about Assign To feature, [click here.]({{docs_base_url}}/user/manual/en/using-erpnext/assignment.html) +If some document requires an action from User, you can Assign that document to that User. On assignment, User to whom document is assigned is intimated via email. To learn about Assign To feature, [click here.](/docs/user/manual/en/using-erpnext/assignment.html) ### Comments Comments are a great way to add information about a transaction that is not a part of the transactions. Like some background information etc. -Assign +Assign ###Share You can share document with the specific User. If Document is shared with the specific User, he/she will be able to access it, even if that User doesn't have permission to access that document or Document Type. -Assign +Assign ### Tags -[Read more about Tags]({{docs_base_url}}/user/manual/en/using-erpnext/tags.html) +[Read more about Tags](/docs/user/manual/en/using-erpnext/tags.html) {next} diff --git a/erpnext/docs/user/manual/en/using-erpnext/document-versioning.md b/erpnext/docs/user/manual/en/using-erpnext/document-versioning.md index bbcdc55dab..126f7615d2 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/document-versioning.md +++ b/erpnext/docs/user/manual/en/using-erpnext/document-versioning.md @@ -1,3 +1,5 @@ +# Document Versioning + #Document Versioning The document versioning feature allows you to track all the changes made in the form over the period. It will be very helpful in audit trial to check which user edited what value, and when exactly. @@ -6,16 +8,16 @@ The document versioning feature allows you to track all the changes made in the Document Versioning can be enabled for one Document Type as a time. Let's assume that we need to enable it from Purchase Order. Then, we will check Customize Form tool for Purchase Order and check field `Track Changes`. With this, document versioning will be enabled for all the Purchase Orders create and edited hence forth. -Enable Versioning +Enable Versioning ####Version Log Following is link of version in a Purchase Order form. Each time a document is edited, a version's link will be added in that document. To check more details on specific version, click on it's link. -Version Links +Version Links ####Version Details In the Version document, you will find log of all the fields and values changes in it. -Version Details \ No newline at end of file +Version Details \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/using-erpnext/index.md b/erpnext/docs/user/manual/en/using-erpnext/index.md index 93f080ed0c..f2fe0ad196 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/index.md +++ b/erpnext/docs/user/manual/en/using-erpnext/index.md @@ -1,3 +1,5 @@ +# Using Erpnext + We live in an era when people are very comfortable communicating, discussing, asking, assigning work and getting feedback electronically. The Internet acts as a great medium to collaborate on work too. Taking this concept into ERP diff --git a/erpnext/docs/user/manual/en/using-erpnext/notes.md b/erpnext/docs/user/manual/en/using-erpnext/notes.md index 64e7acbe4f..91c1689344 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/notes.md +++ b/erpnext/docs/user/manual/en/using-erpnext/notes.md @@ -1,3 +1,5 @@ +# Notes + You can store your long notes under this section. It can contain your partner lists, frequently used passwords, terms and conditions, or any other document which needs to be shared. Following are the steps to create new Note. `Explore > Note > New` @@ -6,12 +8,12 @@ You can store your long notes under this section. It can contain your partner li Enter Title and Context. -Note New +Note New ####Set Permissions to select Users To make Note accessible for all, check "Public" under links section. Else you can share it with the specific User by using Share feature. -Note New +Note New {next} diff --git a/erpnext/docs/user/manual/en/using-erpnext/restore-deleted-docs.md b/erpnext/docs/user/manual/en/using-erpnext/restore-deleted-docs.md index 2c60d3505a..d43fc679a2 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/restore-deleted-docs.md +++ b/erpnext/docs/user/manual/en/using-erpnext/restore-deleted-docs.md @@ -1,8 +1,10 @@ +# Restore Deleted Docs + #Restore Deleted Documents In ERPNext, you can delete a records if not needed. They can be masters like Items, Customer or transactions like Sales Order, Payment Entries etc. -Delete a Docuemnt +Delete a Docuemnt If you have deleted an entry by mistake and wish to restore it back into your ERPNext account. @@ -14,18 +16,18 @@ Steps below to restore a deleted document. For the list of deleted document, just type Deleted Document in the Search Bar and go to list. -Deleted Docs List +Deleted Docs List ####Step 2: Open Doc and Restore Open the document to be restored from the list. Click on Restore button. -Restored Doc +Restored Doc ####Step 3: Restored Once a document is restored, you will be able to use it for creating entries in your ERPNext account. -Restored Doc +Restored Doc > If canceled document is deleted, then it will not be restored. diff --git a/erpnext/docs/user/manual/en/using-erpnext/tags.md b/erpnext/docs/user/manual/en/using-erpnext/tags.md index 0446a32229..99a6aac81a 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/tags.md +++ b/erpnext/docs/user/manual/en/using-erpnext/tags.md @@ -1,9 +1,11 @@ +# Tags + Like Assignments and Comments, you can also add your own tags to each type of transactions. These tags can help you search a document and also classify it. -Assign +Assign ERPNext will also show you all the important tags in the document list. -Assign +Assign {next} diff --git a/erpnext/docs/user/manual/en/using-erpnext/to-do.md b/erpnext/docs/user/manual/en/using-erpnext/to-do.md index 295e79ac84..c6cd280757 100644 --- a/erpnext/docs/user/manual/en/using-erpnext/to-do.md +++ b/erpnext/docs/user/manual/en/using-erpnext/to-do.md @@ -1,9 +1,11 @@ -To Do is a simple tool where all the activities [assigned]({{docs_base_url}}/user/manual/en/using-erpnext/assignments.html) to you and assigned by you are listed. You can also add your own to-do items in the list. +# To Do -Assign +To Do is a simple tool where all the activities [assigned](/docs/user/manual/en/using-erpnext/assignments.html) to you and assigned by you are listed. You can also add your own to-do items in the list. + +Assign When task is completed, you should simply remove assignment from the assigned document. With this, task will be removed from your Todo list as well. For Todo which are not assigned via document, you can set their status as Closed from the Todo master itself. -Assign +Assign {next} diff --git a/erpnext/docs/user/manual/en/website/add-products-to-website.md b/erpnext/docs/user/manual/en/website/add-products-to-website.md index d8ddcf0aaa..e1489193ed 100644 --- a/erpnext/docs/user/manual/en/website/add-products-to-website.md +++ b/erpnext/docs/user/manual/en/website/add-products-to-website.md @@ -1,3 +1,5 @@ +# Add Products To Website + ### Add Products to the Website ERPNext will populate your website with products out of your Item Master. The html code will be @@ -11,14 +13,14 @@ To edit a catalog item go to: `Stock > Items and Pricing > Item`. From there se For this example, click on the **New** button to create a new item. Fill in the form and then click **Save**. -![New Website Item 01]({{docs_base_url}}/assets/img/articles/new-item-for-website-01.png) +![New Website Item 01](/docs/assets/img/articles/new-item-for-website-01.png) #### Step 2: Save Image 1. Click the new item from the list to edit it. 1. In the upper left, click the image block to give the product a picture. Be sure to uncheck the **Private** box so the image will be publicly viewable. -![New Website Item 02]({{docs_base_url}}/assets/img/articles/new-item-for-website-02.png) +![New Website Item 02](/docs/assets/img/articles/new-item-for-website-02.png) #### Step 3: Check the 'Show in Website' box @@ -26,17 +28,17 @@ Under the Website section near the bottom of the form, check the box that says * * Give the page a route on the website. -![New Website Item 03]({{docs_base_url}}/assets/img/articles/new-item-for-website-03.png) +![New Website Item 03](/docs/assets/img/articles/new-item-for-website-03.png) #### Step 4: Enter Website Details Once the `Show in Website` checkbox is checked, a new section called **Website Specifications** appears. Expand this section to add more details about the rocking chair to the website. -![New Website Item 04]({{docs_base_url}}/assets/img/articles/new-item-for-website-04.png) +![New Website Item 04](/docs/assets/img/articles/new-item-for-website-04.png) Click **Save** in the upper right and then click `See on Website` on the left under the product image to see the item on your website. -![New Website Item 05]({{docs_base_url}}/assets/img/articles/new-item-for-website-05.png) +![New Website Item 05](/docs/assets/img/articles/new-item-for-website-05.png) ### Item Groups @@ -47,17 +49,17 @@ Items can be grouped together in items groups. To see a listing of the existing * Fill in a description for your products page. * Click **Save**. -![New Website Item 06]({{docs_base_url}}/assets/img/articles/new-item-for-website-06.png) +![New Website Item 06](/docs/assets/img/articles/new-item-for-website-06.png) * Go back to the rocking chair item, expand the **website** section. * Click **Add new row** button under the `Item Group` table. * Select `Products` from the list. * Click **Save**. -![New Website Item 07]({{docs_base_url}}/assets/img/articles/new-item-for-website-07.png) +![New Website Item 07](/docs/assets/img/articles/new-item-for-website-07.png) To see on the website, go back to the `Item Group` and then click **See on website**. -![New Website Item 08]({{docs_base_url}}/assets/img/articles/new-item-for-website-08.png) +![New Website Item 08](/docs/assets/img/articles/new-item-for-website-08.png) {next} diff --git a/erpnext/docs/user/manual/en/website/articles/index.md b/erpnext/docs/user/manual/en/website/articles/index.md index 0dff60b400..fb11735e90 100644 --- a/erpnext/docs/user/manual/en/website/articles/index.md +++ b/erpnext/docs/user/manual/en/website/articles/index.md @@ -1 +1,3 @@ +# Articles + {index} \ No newline at end of file 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 b2250e0548..e48b87ae5a 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,10 @@ +# Managing User Sign Up Via Website + #Customer / Supplier Signup Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page. -Website User Signup +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/docs/user/manual/en/website/articles/website-home-page.md b/erpnext/docs/user/manual/en/website/articles/website-home-page.md index d44a31aad2..92bcc77d1f 100644 --- a/erpnext/docs/user/manual/en/website/articles/website-home-page.md +++ b/erpnext/docs/user/manual/en/website/articles/website-home-page.md @@ -18,7 +18,7 @@ To Open website settings page go to: `Website > Setup > Website Settings` Enter the same value you entered for the `route` field in the previous section to the `Home Page` field. ERPNext will set this route to be the same as /index for your page. -![Website Setting Home]({{docs_base_url}}/assets/img/articles/Selection_021.png) +![Website Setting Home](/docs/assets/img/articles/Selection_021.png) #### **Step 4: Save Website Settings Form.** diff --git a/erpnext/docs/user/manual/en/website/articles/website-security.md b/erpnext/docs/user/manual/en/website/articles/website-security.md index ef7986a6c4..5c0e2de4b4 100644 --- a/erpnext/docs/user/manual/en/website/articles/website-security.md +++ b/erpnext/docs/user/manual/en/website/articles/website-security.md @@ -1,11 +1,13 @@ +# Website Security + #Website Security One can easily generate a website using ERPNext. We can list our Products on the website and also create blogs. Products are directly fetched from the Item Master records of your ERPNext account. Some people would like to limit the access of the website generated by ERPNext to certain people. This is because some of the items may not be available to the public. Well at the moment this feature is not available. You cannot limit the access of the website generated by ERPNext to certain people. If you publish the website it will be publicly visible. However while you cannot control who can view the website, you can always choose which items to display on the website. To show or not show an Item on your website go to `Selling > Items and Pricing > Item` and in the Item form check the `show in website` checkbox. - + Once the check box has been checked, then more details will appear that you can fill in for the details of the product as to be shown on the website. - \ No newline at end of file + \ No newline at end of file diff --git a/erpnext/docs/user/manual/en/website/blog-post.md b/erpnext/docs/user/manual/en/website/blog-post.md index dbf7b171ae..e6f7960354 100644 --- a/erpnext/docs/user/manual/en/website/blog-post.md +++ b/erpnext/docs/user/manual/en/website/blog-post.md @@ -1,3 +1,5 @@ +# Blog Post + Blogs are a great way to share your thoughts about your business and keep your customers and readers updated of what you are up to. @@ -8,13 +10,13 @@ To create a new blog, just create a new Blog from: > Website > Blog > New Blog -Blog Post +Blog Post You can format a blog using the Markdown format.You can also access your blog by going to the page “blog.html”. #### A sample blog-page. -Blog Sample +Blog Sample {next} diff --git a/erpnext/docs/user/manual/en/website/blogger.md b/erpnext/docs/user/manual/en/website/blogger.md index 5a5bd81723..a47bdeec7b 100644 --- a/erpnext/docs/user/manual/en/website/blogger.md +++ b/erpnext/docs/user/manual/en/website/blogger.md @@ -1,6 +1,8 @@ +# Blogger + Blogger is a user who can post blogs. You can mention a short bio about the blogger and also set a avatar here. -Blogger +Blogger {next} diff --git a/erpnext/docs/user/manual/en/website/index.md b/erpnext/docs/user/manual/en/website/index.md index a499316c5d..2ac49558a8 100644 --- a/erpnext/docs/user/manual/en/website/index.md +++ b/erpnext/docs/user/manual/en/website/index.md @@ -1,3 +1,5 @@ +# Website + Websites are a core component of any business and having a good website usually means: diff --git a/erpnext/docs/user/manual/en/website/setup/index.md b/erpnext/docs/user/manual/en/website/setup/index.md index 212ccfb1d0..f60d1480e4 100644 --- a/erpnext/docs/user/manual/en/website/setup/index.md +++ b/erpnext/docs/user/manual/en/website/setup/index.md @@ -1,3 +1,5 @@ +# Setup + Settings for your website can be mentioned under setup. ### Topics diff --git a/erpnext/docs/user/manual/en/website/setup/social-login-keys.md b/erpnext/docs/user/manual/en/website/setup/social-login-keys.md index bb1329f3e3..be67a8b72f 100644 --- a/erpnext/docs/user/manual/en/website/setup/social-login-keys.md +++ b/erpnext/docs/user/manual/en/website/setup/social-login-keys.md @@ -1,3 +1,5 @@ +# Social Login Keys + Social Login enables users to login to ERPNext via their Google, Facebook or GitHub account. ### Enabling Social Logins. diff --git a/erpnext/docs/user/manual/en/website/setup/website-settings.md b/erpnext/docs/user/manual/en/website/setup/website-settings.md index 2415589f41..6d5ad2321a 100644 --- a/erpnext/docs/user/manual/en/website/setup/website-settings.md +++ b/erpnext/docs/user/manual/en/website/setup/website-settings.md @@ -1,10 +1,12 @@ +# Website Settings + Most of the website related settings can be defined here. -Website Settings +Website Settings ####Landing Page -* Home Page: You can specify which [Web Page]({{docs_base_url}}/user/manual/en/website/web-page.html) must be the homepage of the website +* Home Page: You can specify which [Web Page](/docs/user/manual/en/website/web-page.html) must be the homepage of the website * Home Page is Products: if Checked, the Home page will be the default Item Group for the website. @@ -14,7 +16,7 @@ Most of the website related settings can be defined here. Select the theme for the website. You can create new Theme for you website also. -Website Theme +Website Theme * Select 'create new website theme' if you wish to customize the default website theme. @@ -23,13 +25,13 @@ Select the theme for the website. You can create new Theme for you website also. You can add a banner/ logo to your website here. Attach the image and click on set banner from Image. An HTML code will be generated by the system under Banner HTML. -Banner +Banner ####Top Bar You can set the menus items in the Top Bar here. -Top Bar +Top Bar * Similarlly you can also set sidebar and footer links. @@ -37,7 +39,7 @@ You can set the menus items in the Top Bar here. You can integrate the website using Google Analytics and enable social media sharing for post shared on the website. -Integrations +Integrations * You can disable public signup to your ERPNext account by checking 'disable signup' diff --git a/erpnext/docs/user/manual/en/website/shopping-cart.md b/erpnext/docs/user/manual/en/website/shopping-cart.md index 6103e3c70f..8fe5244a3d 100644 --- a/erpnext/docs/user/manual/en/website/shopping-cart.md +++ b/erpnext/docs/user/manual/en/website/shopping-cart.md @@ -1,3 +1,5 @@ +# Shopping Cart + On the Webpage, a shopping cart is an icon that allows you to store all the things that you have earmarked for purchasing. It is a graphical representation of a shopping basket or a shopping cart that allows you to save @@ -14,7 +16,7 @@ To set up a shopping cart, go to the website module. #### Enter Company Details and Checkout Details. -Shopping Cart Settings +Shopping Cart Settings To make item available on website go to Item master. @@ -22,11 +24,11 @@ To make item available on website go to Item master. #### Enable Item for website. -Item +Item #### Enter Website Specifications for Item. -Website Specifications +Website Specifications ### Shop using Shopping Cart @@ -35,20 +37,20 @@ To make item available on website go to Item master. Click on "Add to Cart" to add item to shopping cart. -Website Specifications +Website Specifications #### Goto Checkout Click on "Go to Cart" to checkout or on "Cart" which is on upper right side of the screen. -Website Specifications +Website Specifications #### Checkout Change quantity, select Shipping and Billing Address and click on "Place Order" to place the order. -Website Specifications +Website Specifications {next} diff --git a/erpnext/docs/user/manual/en/website/web-form.md b/erpnext/docs/user/manual/en/website/web-form.md index 1668ac06a7..b75ef0b0a1 100644 --- a/erpnext/docs/user/manual/en/website/web-form.md +++ b/erpnext/docs/user/manual/en/website/web-form.md @@ -17,7 +17,7 @@ To create a new **Web Form** go to: 1. Select if you require the user to login, edit records, manage multiple records etc. 1. Add the fields you want in the record. -Web Form +Web Form --- @@ -25,7 +25,7 @@ To create a new **Web Form** go to: Once you create the web form, you can view it on the url and test it out! -Web form +Web form --- diff --git a/erpnext/docs/user/manual/en/website/web-page.md b/erpnext/docs/user/manual/en/website/web-page.md index 947891e30f..f931f024d4 100644 --- a/erpnext/docs/user/manual/en/website/web-page.md +++ b/erpnext/docs/user/manual/en/website/web-page.md @@ -1,10 +1,12 @@ +# Web Page +

    Static Content like your Home Page, About Us, Contact Us, Terms pages can be created using the Web Page.

    To create a new Web Page, go to: > Website > Web Page > New -Web Page +Web Page #### Title diff --git a/erpnext/docs/user/manual/es/accounts/accounting-entries.md b/erpnext/docs/user/manual/es/accounts/accounting-entries.md index ffda0b5a3f..9ad5abdef3 100644 --- a/erpnext/docs/user/manual/es/accounts/accounting-entries.md +++ b/erpnext/docs/user/manual/es/accounts/accounting-entries.md @@ -1,3 +1,5 @@ +# Accounting Entries + @@ -8,7 +10,7 @@ para el negocio. * Mama (El propietario de Tea-stall) invierte $25000 para iniciar el negocio. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-1.png) +![A&L](/docs/assets/old_images/erpnext/assets-1.png) __Análisis:__ Mama invierte 25000 en la compañía, con la esperanza de obtener alguna ganancia. En otras palabras, la compañía es responsable del pago de $25000 a mama en @@ -21,7 +23,7 @@ la compañía y debe ser debitado. que pertenece a un amigo y le concede cierto crédito. Los equipos cuestan 2800 y las materias primas valen 2200. La compañía paga 2000 de un total de 5000. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-2.png) +![A&L](/docs/assets/old_images/erpnext/assets-2.png) __Análisis:__ Los equipos son "Activos Fijos" (porque tienen una larga vida útil) de la compañía y las materias primas son "Activos corrientes" (porque son usados en la @@ -37,7 +39,7 @@ un crédito de 3000. día, Tea Stall vende 325 tazas de té, lo cual da una venta neta de RS. 1575. El propietario registra feliz su primer día de ventas. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-3.png) +![A&L](/docs/assets/old_images/erpnext/assets-3.png) __Análisis:__ Los ingresos han sido anotados en la cuenta "Ventas de Té", la cual se debita para incrementar el valor y la misma cantidad se acredita de la cuenta @@ -48,7 +50,7 @@ debe ser registado en la cuenta "Costos de bienes vendidos" en la misma cantidad Al finalizar el mes, la compañía paga el arriendo del local (5000) y el salario de un empleado (8000), el cual trabajó desde el primer día. -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-4.png) +![A&L](/docs/assets/old_images/erpnext/assets-4.png) ### Registro de ganancias @@ -60,7 +62,7 @@ que pagárselas a Mama). Cuando el Libro de Balance no está balanceado, p.e. el débito no es igual al crédito, la ganacia aún no ha sido anotada. Se debe realziar la siguiente entrada: -![A&L]({{docs_base_url}}/assets/old_images/erpnext/assets-5.png) +![A&L](/docs/assets/old_images/erpnext/assets-5.png) Explicación: Las ventas y gastos netos son 40000 y 20000 respectivamente. Entonces, la compañía tuvo una ganancia de 20000. Para registrar esa entrada, diff --git a/erpnext/docs/user/manual/es/accounts/accounting-reports.md b/erpnext/docs/user/manual/es/accounts/accounting-reports.md index 925ea1fa8a..a887f9a81f 100644 --- a/erpnext/docs/user/manual/es/accounts/accounting-reports.md +++ b/erpnext/docs/user/manual/es/accounts/accounting-reports.md @@ -1,3 +1,5 @@ +# Accounting Reports + @@ -12,7 +14,7 @@ actualizado de todas las entradas que existan para una cuetna dada en un periodo determinado. Libro Mayor + src="/docs/assets/img/accounts/general-ledger.png"> ### Balance Contable @@ -24,7 +26,7 @@ en una fecha particular. Para cada cuenta proporciona: * Creditos * Cierre -Balance Contable +Balance Contable La suma de todos los balances de cierre en el Balance Contable debe ser igual a cero. @@ -33,7 +35,7 @@ La suma de todos los balances de cierre en el Balance Contable debe ser igual a Este reporte permite hacer seguimiento a las facturas enviadas a los clientes y proveedores. En este reporte, se resaltan diferentes periodos de tiempo. p.e. entre 0-30 días, 30-60 días y así por el estilo. -Accounts Receivable +Accounts Receivable ### Registro de Ventas y Compras @@ -41,7 +43,7 @@ En este reporte, cada cuenta de impuestos es transpuesta en columnas. For cada f se puede obtener la cantidad de impuestos individuales que debe ser pagados, de acuerdo a la tabla de Impuestos y Contribuciones, -Sales Register +Sales Register **Trabajo en progreso.** diff --git a/erpnext/docs/user/manual/es/accounts/advance-payment-entry.md b/erpnext/docs/user/manual/es/accounts/advance-payment-entry.md index 81491bc24e..e373c7b8a7 100644 --- a/erpnext/docs/user/manual/es/accounts/advance-payment-entry.md +++ b/erpnext/docs/user/manual/es/accounts/advance-payment-entry.md @@ -1,35 +1,34 @@ - +# Advance Payment Entry + Los pagos realizados por el cliente antes de recibir el envío del producto se denominan Anticipos. Para ordenes de alto costo, los negocios esperan recibir dcho tipos de pago. - + __Por Ejemplo:__ Consider a customer- Jane D'souza placing an order for a double bed costing $10000 She is asked to give some advance before the furniture house begins work on her order. She gives them $5000 in cash. - + Go to Accounts and open a new Journal Entry to make the advance entry. -> Accounts > Documents > Journal Entry > New Journal Entry +> Accounts > Documents > Journal Entry > New Journal Entry Mention the voucher type as cash voucher. This differs for different customers. If somebody pays by cheque the voucher type will be Bank Voucher. Then select the customer account and make the respective debit and credit -entries. +entries. Since the customer has given $5000 as cash advance,it will be recorded as a credit entry against the customer. To balance it with the debit entry [Double accounting Entry] enter $5000 as debit against the company's cash account. In the row "Is Advance" click 'Yes'. -#### Figure 1 : Journal Entry -Advance Entry +#### Figure 1 : Journal Entry -Advance Entry -Advace Payment +Advace Payment -### Double Entry Accounting +### Double Entry Accounting Double entry bookkeeping is a system of accounting in which every transaction has a corresponding positive and negative entry : debits and credits. Every @@ -41,10 +40,10 @@ account. This means that every transaction must be recorded in two accounts; one account will be debited because it receives value and the other account will be credited because it has given value. - + #### Figure 2: Transaction and Difference Entry -Advace Payment +Advace Payment Save and submit the JV. If this document is not saved it will not be pulled in other accounting documents. @@ -56,9 +55,9 @@ To link the Sales Invoice to the Journal Entry which mentions the advance payment entry, click on ‘Get Advances Received’. Allocate the amount of advance in the advances table. The accounting will be adjusted accordingly. -#### Figure 3: Receive Advance +#### Figure 3: Receive Advance -Advace Payment +Advace Payment Save and submit the Sales Invoice. diff --git a/erpnext/docs/user/manual/es/accounts/index.md b/erpnext/docs/user/manual/es/accounts/index.md index 9599bf9166..2617b587da 100644 --- a/erpnext/docs/user/manual/es/accounts/index.md +++ b/erpnext/docs/user/manual/es/accounts/index.md @@ -1,3 +1,5 @@ +# Accounts + diff --git a/erpnext/docs/user/manual/es/index.md b/erpnext/docs/user/manual/es/index.md index 330be14944..c701b421bc 100644 --- a/erpnext/docs/user/manual/es/index.md +++ b/erpnext/docs/user/manual/es/index.md @@ -1,6 +1,3 @@ - # Manual de Usuario (Español) ### Contenido: @@ -9,4 +6,4 @@ WORK IN PROGRESS **Trabajo en progreso.** -[La traducción al Español del manual de ERPNext está en progreso. Click aquí para ver el manual en ingles]({{ docs_base_url }}/user/manual/en) +[La traducción al Español del manual de ERPNext está en progreso. Click aquí para ver el manual en ingles](/docs/user/manual/en) diff --git a/erpnext/docs/user/manual/es/introduction/do-i-need-an-erp.md b/erpnext/docs/user/manual/es/introduction/do-i-need-an-erp.md index a101c837bd..6d916e7475 100644 --- a/erpnext/docs/user/manual/es/introduction/do-i-need-an-erp.md +++ b/erpnext/docs/user/manual/es/introduction/do-i-need-an-erp.md @@ -1,3 +1,5 @@ +# Do I Need An Erp + ERPNext es una herramienta moderna que no solo abarca el módulo de contabilidad, sino que también, cubre todas las otras funciones de su negocio en una plataforma integrada. Tiene muchos beneficios sobre los sistemas tradicionales de contabilidad y otros ERP en el mercado. diff --git a/erpnext/docs/user/manual/es/introduction/getting-started-with-erpnext.md b/erpnext/docs/user/manual/es/introduction/getting-started-with-erpnext.md index d1518e5960..cc0b1c0dbc 100644 --- a/erpnext/docs/user/manual/es/introduction/getting-started-with-erpnext.md +++ b/erpnext/docs/user/manual/es/introduction/getting-started-with-erpnext.md @@ -1,3 +1,5 @@ +# Getting Started With Erpnext + Hay muchas manera de comenzar a utilizar ERPNext. ### 1\. Ver el Demo @@ -10,7 +12,7 @@ see the demo at: ### 2\. Comienza con una cuenta gratis en ERPNext.com -ERPNext.com es manejado por la organización (Frappe) que publicó ERPNext. +ERPNext.com es manejado por la organización (Frappé) que publicó ERPNext. Puedes iniciar con su propia cuenta en [registrandote en la página](https://erpnext.com). También, puedes hostear tu aplicación en erpnext.com comprando un plan de alojamiento. @@ -26,6 +28,6 @@ Puedes usarla en **cualquier** plataforma incluyendo Microsoft Windows. ### 4\. Instalar ERPNext en su ordenador Unix/Linux/Mac -En caso de estar relacionado con la instalación de aplicaciones en plataformas *nix, leer las instrucciones de como instalarlo usando [Frappe Bench](https://github.com/frappe/bench). +En caso de estar relacionado con la instalación de aplicaciones en plataformas *nix, leer las instrucciones de como instalarlo usando [Frappé Bench](https://github.com/frappe/bench). {next} diff --git a/erpnext/docs/user/manual/es/introduction/implementation-strategy.md b/erpnext/docs/user/manual/es/introduction/implementation-strategy.md index e5482f24de..6429ddd34a 100644 --- a/erpnext/docs/user/manual/es/introduction/implementation-strategy.md +++ b/erpnext/docs/user/manual/es/introduction/implementation-strategy.md @@ -1,3 +1,5 @@ +# Implementation Strategy + Antes de que empieces a manejar todas tus operaciones en ERPNext, primero deberías estar familiarizado con el sistema y los términos que utiliza. Por esa razón recomendamos que la implementación pase en dos fases. diff --git a/erpnext/docs/user/manual/es/introduction/index.md b/erpnext/docs/user/manual/es/introduction/index.md index bbbf930328..17e37041af 100644 --- a/erpnext/docs/user/manual/es/introduction/index.md +++ b/erpnext/docs/user/manual/es/introduction/index.md @@ -1,3 +1,5 @@ +# Introduction + ## ¿Qué es un ERP y Por qué debería interesarme? (Si ya sabes que necesitas un sistema todo-en-uno para su compañia, puedes pasar a la siguiente página) diff --git a/erpnext/docs/user/manual/es/introduction/key-workflows.md b/erpnext/docs/user/manual/es/introduction/key-workflows.md index 6a29abf9d5..6877fb3d02 100644 --- a/erpnext/docs/user/manual/es/introduction/key-workflows.md +++ b/erpnext/docs/user/manual/es/introduction/key-workflows.md @@ -3,10 +3,10 @@ Este diagrama cubre como ERPNext hace el seguimiento de la información de su compañia a través de funciones claves. Este diagrama no cubre toda la funcionalidad o características de ERPNext. -![]({{docs_base_url}}/assets/old_images/erpnext/overview.png) +![](/docs/assets/old_images/erpnext/overview.png) -Workflow +Workflow _Nota: No todos los pasos son obligatorios. ERPNext te permite pasar algunos pasos si deseas simplificar el proceso._ diff --git a/erpnext/docs/user/manual/es/introduction/open-source.md b/erpnext/docs/user/manual/es/introduction/open-source.md index e12fd51bc0..efa2f131b0 100644 --- a/erpnext/docs/user/manual/es/introduction/open-source.md +++ b/erpnext/docs/user/manual/es/introduction/open-source.md @@ -1,3 +1,5 @@ +# Open Source + El código fuente de ERPNext es de código abierto. Está abierto para que todos podamos entenderlo, extenderlo o mejorarlo. Y es gratis! diff --git a/erpnext/docs/user/manual/es/introduction/the-champion.md b/erpnext/docs/user/manual/es/introduction/the-champion.md index e124b5366b..0d2106e220 100644 --- a/erpnext/docs/user/manual/es/introduction/the-champion.md +++ b/erpnext/docs/user/manual/es/introduction/the-champion.md @@ -1,8 +1,10 @@ +# The Champion +

    El campeón

    -Champion +Champion Hemos visto docenas de implementaciones de sistemas ERP en los últimos años y nos hemos dado cuenta que una implementación exitosa es más sobre cosas intangibles y actitudes. diff --git a/erpnext/docs/user/manual/index.md b/erpnext/docs/user/manual/index.md index d6cf4f16fe..cc37ba4884 100644 --- a/erpnext/docs/user/manual/index.md +++ b/erpnext/docs/user/manual/index.md @@ -1,10 +1,7 @@ - # ERPNext User Manual Select your language -1. [English]({{docs_base_url}}/user/manual/en) -1. [Deutsch]({{docs_base_url}}/user/manual/de) -1. [Español]({{docs_base_url}}/user/manual/es) \ No newline at end of file +1. [English](/docs/user/manual/en) +1. [Deutsch](/docs/user/manual/de) +1. [Español](/docs/user/manual/es) \ No newline at end of file diff --git a/erpnext/docs/user/videos/index.md b/erpnext/docs/user/videos/index.md index 9a82db5ee0..8d3b70117b 100644 --- a/erpnext/docs/user/videos/index.md +++ b/erpnext/docs/user/videos/index.md @@ -1,13 +1,13 @@ # ERPNext Videos

    - Learn ERPNext + Learn ERPNext

    @@ -24,7 +24,7 @@
    diff --git a/erpnext/docs/user/videos/learn/index.md b/erpnext/docs/user/videos/learn/index.md index faaf49cd1f..dad5cc0fef 100644 --- a/erpnext/docs/user/videos/learn/index.md +++ b/erpnext/docs/user/videos/learn/index.md @@ -11,23 +11,23 @@

    ERPNext Demonstrations

      -
    • +
    • ERPNext for Services Business 52:50
    • -
    • +
    • ERPNext for Distributors 51:47
    • -
    • +
    • ERPNext for Manufacturers 14:26
    • -
    • +
    • ERPNext for Retailers 39:21
    • -
    • +
    • ERPNext for Schools 39:21
    • @@ -35,7 +35,7 @@

      Using ERPNext

        -
      • +
      • User Interface and Navigation 2:17
      • @@ -43,47 +43,47 @@

        Setting Up

          -
        • +
        • The Setup Wizard 2:28
        • -
        • +
        • User and Permissions 6:16
        • -
        • +
        • Data Import Tool 6:31
        • -
        • +
        • Printing and Branding 4:00
        • -
        • +
        • Customer and Supplier 4:35
        • -
        • +
        • Item and Pricing 3:55
        • -
        • +
        • Opening Stock 4:27
        • -
        • +
        • Chart of Accounts 3:10
        • -
        • +
        • Opening Account Balances 4:40
        • -
        • +
        • Email Account 2:27
        • -
        • +
        • File Manager 2:24
        • @@ -91,31 +91,31 @@

          CRM and Sales

            -
          • +
          • Customer Relationship Management 3:29
          • -
          • +
          • Customer 4:35
          • -
          • +
          • Sales Order to Payment 4:28
          • -
          • +
          • Product Bundle 2:31
          • -
          • +
          • Newsletter 2:04
          • -
          • +
          • Taxes 3:00
          • -
          • +
          • Drop Ship 2:26
          • @@ -123,23 +123,23 @@

            Buying

              -
            • +
            • Supplier 4:35
            • -
            • +
            • Material Request to Purchase Order 2:25
            • -
            • +
            • Request for Quotation 3:17
            • -
            • +
            • Purchase Order to Payment 3:16
            • -
            • +
            • Taxes 5:13
            • @@ -147,39 +147,39 @@

              Stock

                -
              • +
              • Item and Pricing 3:17
              • -
              • +
              • Item Variant 2:38
              • -
              • +
              • Stock Opening Balance 4:27
              • -
              • +
              • Stock Entries 3:46
              • -
              • +
              • Serialized Inventory 4:12
              • -
              • +
              • Batched Inventory 3:46
              • -
              • +
              • Managing Subcontracting 4:37
              • -
              • +
              • Quality Inspection 2:36
              • -
              • +
              • Fixed Assets Management 6:35
              • @@ -187,23 +187,23 @@

                Accounts

                  -
                • +
                • Chart of Accounts 3:10
                • -
                • +
                • Accounts Opening Balances 4:40
                • -
                • +
                • Taxes 5:13
                • -
                • +
                • Advance Payments 2:52
                • -
                • +
                • Budgeting 3:26
                • @@ -211,25 +211,25 @@

                  Manufacturing

                    -
                  • +
                  • Bill of Materials 3:27
                  • -
                  • +
                  • Production Planning Tool 1:41
                  • -
                  • +
                  • Production Order 2:24
                  • - + ERPNext for Manufacturers (Make to Order) 14:26
                  • - + ERPNext for Manufacturers (Engineer to Order) 44:40
                  • @@ -237,19 +237,19 @@

                    Human Resource

                      -
                    • +
                    • Employees 1:59
                    • -
                    • +
                    • Processing Payroll 4:00
                    • -
                    • +
                    • Leave Management 2:50
                    • -
                    • +
                    • Expense Claims 2:52
                    • @@ -257,11 +257,11 @@

                      Retail

                        -
                      • +
                      • Point of Sale 2:34
                      • -
                      • +
                      • ERPNext for Retailers (Demo) 39:21
                      • @@ -269,7 +269,7 @@

                        Project

                          -
                        • +
                        • Project and Task 3:52
                        • @@ -277,10 +277,10 @@

                          Website

                            -
                          • +
                          • Publish Items on Website 5:14 -
                          • +
                          • Shopping Cart 6:32
                          • @@ -288,19 +288,19 @@

                            Customization

                              -
                            • +
                            • Field Customization 3:10
                            • -
                            • +
                            • Bulk Update Data 1:38
                            • -
                            • +
                            • Workflow 3:38
                            • -
                            • +
                            • Report Builder 4:27
                            • diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 37fd8692e5..fc8d39b7ba 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -62,49 +62,49 @@ website_route_rules = [ {"from_route": "/orders/", "to_route": "order", "defaults": { "doctype": "Sales Order", - "parents": [{"title": _("Orders"), "name": "orders"}] + "parents": [{"label": _("Orders"), "route": "orders"}] } }, {"from_route": "/invoices", "to_route": "Sales Invoice"}, {"from_route": "/invoices/", "to_route": "order", "defaults": { "doctype": "Sales Invoice", - "parents": [{"title": _("Invoices"), "name": "invoices"}] + "parents": [{"label": _("Invoices"), "route": "invoices"}] } }, {"from_route": "/supplier-quotations", "to_route": "Supplier Quotation"}, {"from_route": "/supplier-quotations/", "to_route": "order", "defaults": { "doctype": "Supplier Quotation", - "parents": [{"title": _("Supplier Quotation"), "name": "quotations"}] + "parents": [{"label": _("Supplier Quotation"), "route": "quotations"}] } }, {"from_route": "/quotations", "to_route": "Quotation"}, {"from_route": "/quotations/", "to_route": "order", "defaults": { "doctype": "Quotation", - "parents": [{"title": _("Quotations"), "name": "quotation"}] + "parents": [{"label": _("Quotations"), "route": "quotation"}] } }, {"from_route": "/shipments", "to_route": "Delivery Note"}, {"from_route": "/shipments/", "to_route": "order", "defaults": { "doctype": "Delivery Note", - "parents": [{"title": _("Shipments"), "name": "shipments"}] + "parents": [{"label": _("Shipments"), "route": "shipments"}] } }, {"from_route": "/rfq", "to_route": "Request for Quotation"}, {"from_route": "/rfq/", "to_route": "rfq", "defaults": { "doctype": "Request for Quotation", - "parents": [{"title": _("Request for Quotation"), "name": "rfq"}] + "parents": [{"label": _("Request for Quotation"), "route": "rfq"}] } }, {"from_route": "/addresses", "to_route": "Address"}, {"from_route": "/addresses/", "to_route": "addresses", "defaults": { "doctype": "Address", - "parents": [{"title": _("Addresses"), "name": "addresses"}] + "parents": [{"label": _("Addresses"), "route": "addresses"}] } }, {"from_route": "/jobs", "to_route": "Job Opening"}, @@ -201,11 +201,14 @@ scheduler_events = { email_brand_image = "assets/erpnext/images/erpnext-logo.jpg" -default_mail_footer = """""" +default_mail_footer = """ + + Sent via + + ERPNext + + +""" get_translated_dict = { ("doctype", "Global Defaults"): "frappe.geo.country_info.get_translated_dict" diff --git a/erpnext/hr/doctype/attendance/test_attendance.js b/erpnext/hr/doctype/attendance/test_attendance.js new file mode 100644 index 0000000000..82347ad567 --- /dev/null +++ b/erpnext/hr/doctype/attendance/test_attendance.js @@ -0,0 +1,35 @@ +QUnit.module('hr'); + +QUnit.test("Test: Attendance [HR]", function (assert) { + assert.expect(4); + let done = assert.async(); + + frappe.run_serially([ + // test attendance creation for one employee + () => frappe.set_route("List", "Attendance", "List"), + () => frappe.timeout(0.5), + () => frappe.new_doc("Attendance"), + () => frappe.timeout(1), + () => assert.equal("Attendance", cur_frm.doctype, + "Form for new Attendance opened successfully."), + // set values in form + () => cur_frm.set_value("company", "Test Company"), + () => frappe.db.get_value('Employee', {'employee_name':'Test Employee 1'}, 'name'), + (employee) => cur_frm.set_value("employee", employee.message.name), + () => cur_frm.save(), + () => frappe.timeout(1), + // check docstatus of attendance before submit [Draft] + () => assert.equal("0", cur_frm.doc.docstatus, + "attendance is currently drafted"), + // check docstatus of attendance after submit [Present] + () => cur_frm.savesubmit(), + () => frappe.timeout(0.5), + () => frappe.click_button('Yes'), + () => assert.equal("1", cur_frm.doc.docstatus, + "attendance is saved after submit"), + // check if auto filled date is present day + () => assert.equal(frappe.datetime.nowdate(), cur_frm.doc.attendance_date, + "attendance for Present day is marked"), + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/employee/test_employee.js b/erpnext/hr/doctype/employee/test_employee.js index 64fde8ee1a..64a6b7a9bf 100644 --- a/erpnext/hr/doctype/employee/test_employee.js +++ b/erpnext/hr/doctype/employee/test_employee.js @@ -10,8 +10,9 @@ QUnit.test("Test: Employee [HR]", function (assert) { () => frappe.set_route("List", "Employee", "List"), () => frappe.new_doc("Employee"), () => frappe.timeout(1), - () => cur_frm.set_value("employee_name", "Test Employee"), + () => cur_frm.set_value("employee_name", "Test Employee 1"), () => cur_frm.set_value("salutation", "Ms"), + () => cur_frm.set_value("company", "Test Company"), () => cur_frm.set_value("date_of_joining", frappe.datetime.add_months(today_date, -2)), // joined 2 month from now () => cur_frm.set_value("date_of_birth", frappe.datetime.add_months(today_date, -240)), // age is 20 years () => cur_frm.set_value("employment_type", "Test Employment type"), @@ -25,7 +26,7 @@ QUnit.test("Test: Employee [HR]", function (assert) { () => cur_frm.save(), () => frappe.timeout(1), // check name of employee - () => assert.equal("Test Employee", cur_frm.doc.employee_name, + () => assert.equal("Test Employee 1", cur_frm.doc.employee_name, 'name of employee correctly saved'), // check auto filled gender according to salutation () => assert.equal("Female", cur_frm.doc.gender, diff --git a/erpnext/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.js b/erpnext/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.js new file mode 100644 index 0000000000..a71ba0f2a2 --- /dev/null +++ b/erpnext/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.js @@ -0,0 +1,49 @@ +QUnit.module('hr'); + +QUnit.test("Test: Employee attendance tool [HR]", function (assert) { + assert.expect(3); + let done = assert.async(); + let today_date = frappe.datetime.nowdate(); + let date_of_attendance = frappe.datetime.add_days(today_date, -1); // previous day + + frappe.run_serially([ + // create employee + () => { + return frappe.tests.make('Employee', [ + {salutation: "Mr"}, + {employee_name: "Test Employee 2"}, + {company: "Test Company"}, + {date_of_joining: frappe.datetime.add_months(today_date, -2)}, // joined 2 month from now + {date_of_birth: frappe.datetime.add_months(today_date, -240)}, // age is 20 years + {employment_type: "Test Employment type"}, + {holiday_list: "Test Holiday list"}, + {branch: "Test Branch"}, + {department: "Test Department"}, + {designation: "Test Designation"} + ]); + }, + () => frappe.set_route("Form", "Employee Attendance Tool"), + () => frappe.timeout(0.5), + () => assert.equal("Employee Attendance Tool", cur_frm.doctype, + "Form for Employee Attendance Tool opened successfully."), + // set values in form + () => cur_frm.set_value("date", date_of_attendance), + () => cur_frm.set_value("branch", "Test Branch"), + () => cur_frm.set_value("department", "Test Department"), + () => cur_frm.set_value("company", "Test Company"), + () => frappe.timeout(1), + () => frappe.click_button('Check all'), + () => frappe.click_button('Mark Present'), + // check if attendance is marked + () => frappe.set_route("List", "Attendance", "List"), + () => frappe.timeout(1), + () => { + assert.deepEqual(["Test Employee 2", "Test Employee 1"], [cur_list.data[0].employee_name, cur_list.data[1].employee_name], + "marked attendance correctly saved for both employee"); + let marked_attendance = cur_list.data.filter(d => d.attendance_date == date_of_attendance); + assert.equal(marked_attendance.length, 2, + 'both the attendance are marked for correct date'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/employee_loan/employee_loan.js b/erpnext/hr/doctype/employee_loan/employee_loan.js index 9720bcba63..33d3a85db6 100644 --- a/erpnext/hr/doctype/employee_loan/employee_loan.js +++ b/erpnext/hr/doctype/employee_loan/employee_loan.js @@ -23,6 +23,14 @@ frappe.ui.form.on('Employee Loan', { }; }); + frm.set_query("employee", function() { + return { + "filters": { + "company": frm.doc.company, + } + }; + }); + $.each(["payment_account", "employee_loan_account"], function (i, field) { frm.set_query(field, function () { return { diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js index b1c43d771b..0bd89112a6 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.js +++ b/erpnext/hr/doctype/expense_claim/expense_claim.js @@ -4,26 +4,12 @@ frappe.provide("erpnext.hr"); erpnext.hr.ExpenseClaimController = frappe.ui.form.Controller.extend({ - make_bank_entry: function() { - var me = this; - return frappe.call({ - method: "erpnext.hr.doctype.expense_claim.expense_claim.make_bank_entry", - args: { - "docname": cur_frm.doc.name, - }, - callback: function(r) { - var doc = frappe.model.sync(r.message); - frappe.set_route('Form', 'Journal Entry', r.message.name); - } - }); - }, - expense_type: function(doc, cdt, cdn) { var d = locals[cdt][cdn]; if(!doc.company) { d.expense_type = ""; frappe.msgprint(__("Please set the Company")); - this.frm.refresh_fields() + this.frm.refresh_fields(); return; } @@ -44,16 +30,16 @@ erpnext.hr.ExpenseClaimController = frappe.ui.form.Controller.extend({ } }); } -}) +}); $.extend(cur_frm.cscript, new erpnext.hr.ExpenseClaimController({frm: cur_frm})); cur_frm.add_fetch('employee', 'company', 'company'); cur_frm.add_fetch('employee','employee_name','employee_name'); -cur_frm.cscript.onload = function(doc,cdt,cdn) { +cur_frm.cscript.onload = function(doc) { if(!doc.approval_status) - cur_frm.set_value("approval_status", "Draft") + cur_frm.set_value("approval_status", "Draft"); if (doc.__islocal) { cur_frm.set_value("posting_date", frappe.datetime.get_today()); @@ -62,10 +48,10 @@ cur_frm.cscript.onload = function(doc,cdt,cdn) { cur_frm.cscript.clear_sanctioned(doc); } - cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) { - return{ + cur_frm.fields_dict.employee.get_query = function() { + return { query: "erpnext.controllers.queries.employee_query" - } + }; }; cur_frm.set_query("exp_approver", function() { @@ -73,7 +59,7 @@ cur_frm.cscript.onload = function(doc,cdt,cdn) { query: "erpnext.hr.doctype.expense_claim.expense_claim.get_expense_approver" }; }); -} +}; cur_frm.cscript.clear_sanctioned = function(doc) { var val = doc.expenses || []; @@ -83,9 +69,9 @@ cur_frm.cscript.clear_sanctioned = function(doc) { doc.total_sanctioned_amount = ''; refresh_many(['sanctioned_amount', 'total_sanctioned_amount']); -} +}; -cur_frm.cscript.refresh = function(doc,cdt,cdn) { +cur_frm.cscript.refresh = function(doc) { cur_frm.cscript.set_help(doc); if(!doc.__islocal) { @@ -96,11 +82,6 @@ cur_frm.cscript.refresh = function(doc,cdt,cdn) { cur_frm.savesubmit(); if (doc.docstatus===1 && doc.approval_status=="Approved") { - if (cint(doc.total_amount_reimbursed) < cint(doc.total_sanctioned_amount) && frappe.model.can_create("Journal Entry")) { - cur_frm.add_custom_button(__("Bank Entry"), cur_frm.cscript.make_bank_entry, __("Make")); - cur_frm.page.set_inner_btn_group_as_primary(__("Make")); - } - /* eslint-disable */ // no idea how `me` works here if (cint(doc.total_amount_reimbursed) > 0 && frappe.model.can_read("Journal Entry")) { @@ -116,12 +97,12 @@ cur_frm.cscript.refresh = function(doc,cdt,cdn) { /* eslint-enable */ } } -} +}; cur_frm.cscript.set_help = function(doc) { cur_frm.set_intro(""); if(doc.__islocal && !in_list(frappe.user_roles, "HR User")) { - cur_frm.set_intro(__("Fill the form and save it")) + cur_frm.set_intro(__("Fill the form and save it")); } else { if(doc.docstatus==0 && doc.approval_status=="Draft") { if(frappe.session.user==doc.exp_approver) { @@ -131,13 +112,13 @@ cur_frm.cscript.set_help = function(doc) { } } } -} +}; cur_frm.cscript.validate = function(doc) { cur_frm.cscript.calculate_total(doc); -} +}; -cur_frm.cscript.calculate_total = function(doc,cdt,cdn){ +cur_frm.cscript.calculate_total = function(doc){ doc.total_claimed_amount = 0; doc.total_sanctioned_amount = 0; $.each((doc.expenses || []), function(i, d) { @@ -147,18 +128,17 @@ cur_frm.cscript.calculate_total = function(doc,cdt,cdn){ refresh_field("total_claimed_amount"); refresh_field('total_sanctioned_amount'); - -} +}; cur_frm.cscript.calculate_total_amount = function(doc,cdt,cdn){ cur_frm.cscript.calculate_total(doc,cdt,cdn); -} +}; -cur_frm.cscript.on_submit = function(doc, cdt, cdn) { +cur_frm.cscript.on_submit = function() { if(cint(frappe.boot.notification_settings && frappe.boot.notification_settings.expense_claim)) { cur_frm.email_doc(frappe.boot.notification_settings.expense_claim_message); } -} +}; erpnext.expense_claim = { set_title :function(frm) { @@ -169,11 +149,20 @@ erpnext.expense_claim = { frm.set_value("title", frm.doc.employee_name + " for "+ frm.doc.task); } } -} +}; frappe.ui.form.on("Expense Claim", { + setup: function(frm) { + frm.trigger("set_query_for_cost_center"); + frm.trigger("set_query_for_payable_account"); + frm.add_fetch("company", "cost_center", "cost_center"); + frm.add_fetch("company", "default_payable_account", "payable_account"); + }, + refresh: function(frm) { - if(frm.doc.docstatus == 1) { + frm.trigger("toggle_fields"); + + if(frm.doc.docstatus == 1 && frm.doc.approval_status == 'Approved') { frm.add_custom_button(__('Accounting Ledger'), function() { frappe.route_options = { voucher_no: frm.doc.name, @@ -183,47 +172,41 @@ frappe.ui.form.on("Expense Claim", { frappe.set_route("query-report", "General Ledger"); }, __("View")); } - } -}) -frappe.ui.form.on("Expense Claim Detail", { - claim_amount: function(frm, cdt, cdn) { - var child = locals[cdt][cdn]; - var doc = frm.doc; - - if(!child.sanctioned_amount){ - frappe.model.set_value(cdt, cdn, 'sanctioned_amount', child.claim_amount) + if (frm.doc.docstatus===1 && frm.doc.approval_status=="Approved" + && (cint(frm.doc.total_amount_reimbursed) < cint(frm.doc.total_sanctioned_amount)) + && frappe.model.can_create("Payment Entry")) { + frm.add_custom_button(__('Payment'), + function() { frm.events.make_payment_entry(frm); }, __("Make")); } - - cur_frm.cscript.calculate_total(doc,cdt,cdn); }, - sanctioned_amount: function(frm, cdt, cdn) { - var doc = frm.doc; - cur_frm.cscript.calculate_total(doc,cdt,cdn); - } -}) - -frappe.ui.form.on("Expense Claim",{ - setup: function(frm) { - frm.trigger("set_query_for_cost_center") - frm.trigger("set_query_for_payable_account") - frm.add_fetch("company", "cost_center", "cost_center"); - frm.add_fetch("company", "default_payable_account", "payable_account"); + make_payment_entry: function(frm) { + var method = "erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry"; + if(frm.doc.__onload && frm.doc.__onload.make_payment_via_journal_entry) { + method = "erpnext.hr.doctype.expense_claim.expense_claim.make_bank_entry" + } + return frappe.call({ + method: method, + args: { + "dt": frm.doc.doctype, + "dn": frm.doc.name + }, + callback: function(r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + } + }); }, - - refresh: function(frm) { - frm.trigger("toggle_fields") - }, - + set_query_for_cost_center: function(frm) { frm.fields_dict["cost_center"].get_query = function() { return { filters: { "company": frm.doc.company } - } - } + }; + }; }, set_query_for_payable_account: function(frm) { @@ -233,25 +216,43 @@ frappe.ui.form.on("Expense Claim",{ "report_type": "Balance Sheet", "account_type": "Payable" } - } - } + }; + }; }, is_paid: function(frm) { - frm.trigger("toggle_fields") + frm.trigger("toggle_fields"); }, toggle_fields: function(frm) { - frm.toggle_reqd("mode_of_payment", frm.doc.is_paid) + frm.toggle_reqd("mode_of_payment", frm.doc.is_paid); + }, + + employee_name: function(frm) { + erpnext.expense_claim.set_title(frm); + }, + + task: function(frm) { + erpnext.expense_claim.set_title(frm); } }); -frappe.ui.form.on("Expense Claim", "employee_name", function(frm) { - erpnext.expense_claim.set_title(frm); -}); +frappe.ui.form.on("Expense Claim Detail", { + claim_amount: function(frm, cdt, cdn) { + var child = locals[cdt][cdn]; + var doc = frm.doc; -frappe.ui.form.on("Expense Claim", "task", function(frm) { - erpnext.expense_claim.set_title(frm); + if(!child.sanctioned_amount){ + frappe.model.set_value(cdt, cdn, 'sanctioned_amount', child.claim_amount); + } + + cur_frm.cscript.calculate_total(doc,cdt,cdn); + }, + + sanctioned_amount: function(frm, cdt, cdn) { + var doc = frm.doc; + cur_frm.cscript.calculate_total(doc,cdt,cdn); + } }); cur_frm.fields_dict['task'].get_query = function(doc) { @@ -259,5 +260,5 @@ cur_frm.fields_dict['task'].get_query = function(doc) { filters:{ 'project': doc.project } - } -} + }; +}; diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py index 2781f28213..507d6a9752 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.py +++ b/erpnext/hr/doctype/expense_claim/expense_claim.py @@ -16,6 +16,10 @@ from frappe.utils.csvutils import getlink class InvalidExpenseApproverError(frappe.ValidationError): pass class ExpenseClaim(AccountsController): + def onload(self): + self.get("__onload").make_payment_via_journal_entry = frappe.db.get_single_value('Accounts Settings', + 'make_payment_via_journal_entry') + def get_feed(self): return _("{0}: From {0} for {1}").format(self.approval_status, self.employee_name, self.total_claimed_amount) @@ -207,10 +211,10 @@ def get_expense_approver(doctype, txt, searchfield, start, page_len, filters): """, ("%" + txt + "%")) @frappe.whitelist() -def make_bank_entry(docname): +def make_bank_entry(dt, dn): from erpnext.accounts.doctype.journal_entry.journal_entry import get_default_bank_cash_account - expense_claim = frappe.get_doc("Expense Claim", docname) + expense_claim = frappe.get_doc(dt, dn) default_bank_cash_account = get_default_bank_cash_account(expense_claim.company, "Bank") if not default_bank_cash_account: default_bank_cash_account = get_default_bank_cash_account(expense_claim.company, "Cash") @@ -218,7 +222,7 @@ def make_bank_entry(docname): je = frappe.new_doc("Journal Entry") je.voucher_type = 'Bank Entry' je.company = expense_claim.company - je.remark = 'Payment against Expense Claim: ' + docname; + je.remark = 'Payment against Expense Claim: ' + dn; je.append("accounts", { "account": expense_claim.payable_account, diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.py b/erpnext/hr/doctype/expense_claim/test_expense_claim.py index e8c24bbba5..b813537441 100644 --- a/erpnext/hr/doctype/expense_claim/test_expense_claim.py +++ b/erpnext/hr/doctype/expense_claim/test_expense_claim.py @@ -14,6 +14,7 @@ class TestExpenseClaim(unittest.TestCase): frappe.db.sql("""delete from `tabTask` where project = "_Test Project 1" """) frappe.db.sql("""delete from `tabProject` where name = "_Test Project 1" """) + frappe.get_doc({ "project_name": "_Test Project 1", "doctype": "Project", @@ -24,54 +25,27 @@ class TestExpenseClaim(unittest.TestCase): task_name = frappe.db.get_value("Task", {"project": "_Test Project 1"}) payable_account = get_payable_account("Wind Power LLC") - expense_claim = frappe.get_doc({ - "doctype": "Expense Claim", - "employee": "_T-Employee-0001", - "payable_account": payable_account, - "approval_status": "Approved", - "project": "_Test Project 1", - "task": task_name, - "expenses": - [{ "expense_type": "Travel", "default_account": "Travel Expenses - WP", "claim_amount": 300, "sanctioned_amount": 200 }] - }) - expense_claim.submit() + make_expense_claim(payable_account, 300, 200, "Wind Power LLC","Travel Expenses - WP", "_Test Project 1", task_name) self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200) self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200) - expense_claim2 = frappe.get_doc({ - "doctype": "Expense Claim", - "employee": "_T-Employee-0001", - "approval_status": "Approved", - "project": "_Test Project 1", - "task": task_name, - "expenses": - [{ "expense_type": "Travel", "default_account": "Travel Expenses - WP", "claim_amount": 600, "sanctioned_amount": 500 }] - }) - expense_claim2.submit() + expense_claim2 = make_expense_claim(payable_account, 600, 500, "Wind Power LLC", "Travel Expenses - WP","_Test Project 1", task_name) self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 700) self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 700) expense_claim2.cancel() - frappe.delete_doc("Expenses Claim", expense_claim2.name) + frappe.delete_doc("Expense Claim", expense_claim2.name) self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200) self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200) - + def test_expense_claim_status(self): payable_account = get_payable_account("Wind Power LLC") - expense_claim = frappe.get_doc({ - "doctype": "Expense Claim", - "employee": "_T-Employee-0001", - "payable_account": payable_account, - "approval_status": "Approved", - "expenses": - [{ "expense_type": "Travel", "default_account": "Travel Expenses - WP", "claim_amount": 300, "sanctioned_amount": 200 }] - }) - expense_claim.submit() + expense_claim = make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP") - je_dict = make_bank_entry(expense_claim.name) + je_dict = make_bank_entry("Expense Claim", expense_claim.name) je = frappe.get_doc(je_dict) je.posting_date = nowdate() je.cheque_no = random_string(5) @@ -80,23 +54,16 @@ class TestExpenseClaim(unittest.TestCase): expense_claim = frappe.get_doc("Expense Claim", expense_claim.name) self.assertEqual(expense_claim.status, "Paid") - + je.cancel() expense_claim = frappe.get_doc("Expense Claim", expense_claim.name) self.assertEqual(expense_claim.status, "Unpaid") def test_expense_claim_gl_entry(self): payable_account = get_payable_account("Wind Power LLC") - expense_claim = frappe.get_doc({ - "doctype": "Expense Claim", - "employee": "_T-Employee-0001", - "payable_account": payable_account, - "approval_status": "Approved", - "expenses": - [{ "expense_type": "Travel", "default_account": "Travel Expenses - WP", "claim_amount": 300, "sanctioned_amount": 200 }] - }) + expense_claim = make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP") expense_claim.submit() - + gl_entries = frappe.db.sql("""select account, debit, credit from `tabGL Entry` where voucher_type='Expense Claim' and voucher_no=%s order by account asc""", expense_claim.name, as_dict=1) @@ -133,3 +100,23 @@ class TestExpenseClaim(unittest.TestCase): def get_payable_account(company): return frappe.db.get_value('Company', company, 'default_payable_account') + +def make_expense_claim(payable_account,claim_amount, sanctioned_amount, company, account, project=None, task_name=None): + expense_claim = frappe.get_doc({ + "doctype": "Expense Claim", + "employee": "_T-Employee-0001", + "payable_account": payable_account, + "approval_status": "Approved", + "company": company, + "expenses": + [{ "expense_type": "Travel", "default_account": account, "claim_amount": claim_amount, "sanctioned_amount": sanctioned_amount }] + }) + if project: + expense_claim.project = project + if task_name: + expense_claim.task = task_name + + expense_claim.submit() + return expense_claim + + diff --git a/erpnext/hr/doctype/leave_allocation/test_leave_allocation.js b/erpnext/hr/doctype/leave_allocation/test_leave_allocation.js new file mode 100644 index 0000000000..5d189d2cf2 --- /dev/null +++ b/erpnext/hr/doctype/leave_allocation/test_leave_allocation.js @@ -0,0 +1,37 @@ +QUnit.module('hr'); + +QUnit.test("Test: Leave allocation [HR]", function (assert) { + assert.expect(3); + let done = assert.async(); + let today_date = frappe.datetime.nowdate(); + + frappe.run_serially([ + // test creating leave alloction + () => frappe.set_route("List", "Leave Allocation", "List"), + () => frappe.new_doc("Leave Allocation"), + () => frappe.timeout(1), + () => frappe.db.get_value('Employee', {'employee_name':'Test Employee 1'}, 'name'), + (employee) => cur_frm.set_value("employee", employee.message.name), + () => cur_frm.set_value("leave_type", "Test Leave type"), + () => cur_frm.set_value("to_date", frappe.datetime.add_months(today_date, 2)), // for two months + () => cur_frm.set_value("description", "This is just for testing"), + () => cur_frm.set_value("new_leaves_allocated", 2), + () => frappe.click_check('Add unused leaves from previous allocations'), + // save form + () => cur_frm.save(), + () => frappe.timeout(1), + () => cur_frm.savesubmit(), + () => frappe.timeout(1), + () => assert.equal("Confirm", cur_dialog.title, + 'confirmation for leave alloction shown'), + () => frappe.click_button('Yes'), + () => frappe.timeout(1), + // check auto filled from date + () => assert.equal(today_date, cur_frm.doc.from_date, + "from date correctly set"), + // check for total leaves + () => assert.equal(cur_frm.doc.carry_forwarded_leaves + 2, cur_frm.doc.total_leaves_allocated, + "total leave calculation is correctly set"), + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.js b/erpnext/hr/doctype/leave_application/test_leave_application.js new file mode 100644 index 0000000000..51e8ed623c --- /dev/null +++ b/erpnext/hr/doctype/leave_application/test_leave_application.js @@ -0,0 +1,50 @@ +QUnit.module('hr'); + +QUnit.test("Test: Leave application [HR]", function (assert) { + assert.expect(5); + let done = assert.async(); + let today_date = frappe.datetime.nowdate(); + let leave_date = frappe.datetime.add_days(today_date, 1); // leave for tomorrow + + frappe.run_serially([ + // test creating leave application + () => frappe.db.get_value('Employee', {'employee_name':'Test Employee 1'}, 'name'), + (employee) => { + return frappe.tests.make('Leave Application', [ + {leave_type: "Test Leave type"}, + {from_date: leave_date}, // for today + {to_date: leave_date}, + {half_day: 1}, + {employee: employee.message.name}, + {leave_approver: "Administrator"}, + {follow_via_email: 0} + ]); + }, + () => frappe.timeout(1), + // check calculated total leave days + () => assert.equal("0.5", cur_frm.doc.total_leave_days, + "leave application for half day"), + () => assert.ok(!cur_frm.doc.docstatus, + "leave application not submitted with status as open"), + () => cur_frm.set_value("status", "Approved"), // approve the application [as administrator] + () => frappe.timeout(0.5), + // save form + () => cur_frm.save(), + () => frappe.timeout(1), + () => cur_frm.savesubmit(), + () => frappe.timeout(1), + () => frappe.click_button('Yes'), + () => frappe.timeout(1), + () => assert.ok(cur_frm.doc.docstatus, + "leave application submitted after approval"), + // check auto filled posting date [today] + () => assert.equal(today_date, cur_frm.doc.posting_date, + "posting date correctly set"), + () => frappe.set_route("List", "Leave Application", "List"), + () => frappe.timeout(1), + // check approved application in list + () => assert.deepEqual(["Test Employee 1", "Approved"], [cur_list.data[0].employee_name, cur_list.data[0].status], + "leave for correct employee is approved"), + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/leave_control_panel/test_leave_control_panel.js b/erpnext/hr/doctype/leave_control_panel/test_leave_control_panel.js new file mode 100644 index 0000000000..e71ff6e396 --- /dev/null +++ b/erpnext/hr/doctype/leave_control_panel/test_leave_control_panel.js @@ -0,0 +1,36 @@ +QUnit.module('hr'); + +QUnit.test("Test: Leave control panel [HR]", function (assert) { + assert.expect(2); + let done = assert.async(); + let today_date = frappe.datetime.nowdate(); + + frappe.run_serially([ + // test leave allocation using leave control panel + () => frappe.set_route("Form", "Leave Control Panel"), + () => frappe.timeout(1), + () => cur_frm.set_value("leave_type", "Test Leave type"), + () => cur_frm.set_value("company", "Test Company"), + () => cur_frm.set_value("employment_type", "Test Employment Type"), + () => cur_frm.set_value("branch", "Test Branch"), + () => cur_frm.set_value("department", "Test Department"), + () => cur_frm.set_value("designation", "Test Designation"), + () => cur_frm.set_value("from_date", frappe.datetime.add_months(today_date, -2)), + () => cur_frm.set_value("to_date", frappe.datetime.add_days(today_date, -1)), // for two months [not today] + () => cur_frm.set_value("no_of_days", 3), + // allocate leaves + () => frappe.click_button('Allocate'), + () => frappe.timeout(1), + () => assert.equal("Message", cur_dialog.title, + "leave alloction message shown"), + () => frappe.click_button('Close'), + () => frappe.set_route("List", "Leave Allocation", "List"), + () => frappe.timeout(1), + () => { + let leave_allocated = cur_list.data.filter(d => d.leave_type == "Test Leave type"); + assert.equal(2, leave_allocated.length, + 'leave allocation successfully done for both the employee'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/leave_type/test_leave_type.js b/erpnext/hr/doctype/leave_type/test_leave_type.js new file mode 100644 index 0000000000..4cde49bce3 --- /dev/null +++ b/erpnext/hr/doctype/leave_type/test_leave_type.js @@ -0,0 +1,22 @@ +QUnit.module('hr'); + +QUnit.test("Test: Leave type [HR]", function (assert) { + assert.expect(1); + let done = assert.async(); + + frappe.run_serially([ + // test leave type creation + () => frappe.set_route("List", "Leave Type", "List"), + () => frappe.new_doc("Leave Type"), + () => frappe.timeout(1), + () => cur_frm.set_value("leave_type_name", "Test Leave type"), + () => cur_frm.set_value("max_days_allowed", "5"), + () => frappe.click_check('Is Carry Forward'), + // save form + () => cur_frm.save(), + () => frappe.timeout(1), + () => assert.equal("Test Leave type", cur_frm.doc.leave_type_name, + 'leave type correctly saved'), + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/upload_attendance/upload_attendance.py b/erpnext/hr/doctype/upload_attendance/upload_attendance.py index fc1a8ae333..78d5aee81d 100644 --- a/erpnext/hr/doctype/upload_attendance/upload_attendance.py +++ b/erpnext/hr/doctype/upload_attendance/upload_attendance.py @@ -121,7 +121,7 @@ def upload(): try: check_record(d) ret.append(import_doc(d, "Attendance", 1, row_idx, submit=True)) - except Exception, e: + except Exception as e: error = True ret.append('Error for row (#%d) %s : %s' % (row_idx, len(row)>1 and row[1] or "", cstr(e))) diff --git a/erpnext/manufacturing/doctype/bom/test_bom.js b/erpnext/manufacturing/doctype/bom/test_bom.js index 8187ef3617..80a4edee8e 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.js +++ b/erpnext/manufacturing/doctype/bom/test_bom.js @@ -12,6 +12,7 @@ QUnit.test("test: item", function (assert) { {item: "Laptop"}, {quantity: 1}, {with_operations: 1}, + {company: "Razer Blade"}, {operations: [ [ {operation: "Assemble CPU"}, diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.js b/erpnext/manufacturing/doctype/production_order/test_production_order.js new file mode 100644 index 0000000000..57299db039 --- /dev/null +++ b/erpnext/manufacturing/doctype/production_order/test_production_order.js @@ -0,0 +1,41 @@ +QUnit.test("test: production order", function (assert) { + assert.expect(2); + let done = assert.async(); + let laptop_quantity = 5; + let single_laptop_cost = 1340; // Calculated in workstation (time * per_hour_cost) for every item + + frappe.run_serially([ + // test production order + () => frappe.set_route("List", "Production Order"), + () => frappe.timeout(0.5), + + // Create a laptop production order + () => frappe.new_doc("Production Order"), + () => frappe.timeout(1), + () => cur_frm.set_value("production_item", "Laptop"), + () => frappe.timeout(2), + () => cur_frm.set_value("company", "Razer Blade"), + () => frappe.timeout(2), + () => cur_frm.set_value("qty", laptop_quantity), + () => frappe.timeout(2), + () => cur_frm.set_value("scrap_warehouse", "Laptop Scrap Warehouse - RB"), + () => frappe.timeout(1), + () => cur_frm.set_value("wip_warehouse", "Work In Progress - RB"), + () => frappe.timeout(1), + () => cur_frm.set_value("fg_warehouse", "Finished Goods - RB"), + () => cur_frm.save(), + () => frappe.timeout(1), + + () => { + assert.equal(cur_frm.doc.planned_operating_cost, cur_frm.doc.total_operating_cost, "Total and Planned Cost is equal"); + assert.equal(cur_frm.doc.planned_operating_cost, laptop_quantity*single_laptop_cost, "Total cost is calculated correctly "+cur_frm.doc.planned_operating_cost); + }, + + () => cur_frm.savesubmit(), + () => frappe.timeout(1), + () => frappe.click_button('Yes'), + () => frappe.timeout(1), + + () => done() + ]); +}); diff --git a/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py index 4f80b6a626..af4220ccfc 100644 --- a/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py +++ b/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py @@ -15,7 +15,7 @@ test_records = frappe.get_test_records('Production Planning Tool') test_dependencies = ["Item","BOM"] class TestEvent(unittest.TestCase): - + def test_materials_requests_all_raw_multi_level(self): items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", @@ -23,10 +23,10 @@ class TestEvent(unittest.TestCase): quantities = [14,9,36,1,0,0,0,0,0,0] types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", "Purchase","Manufacture"] - + self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=1, \ include_subcontracted=1) - + def test_materials_requests_multi_no_subcontracted(self): items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", @@ -34,12 +34,12 @@ class TestEvent(unittest.TestCase): quantities = [14,5,20,0,0,0,0,0,0,0] types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", "Purchase","Manufacture"] - + # This one should fail for now self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=1, \ include_subcontracted=0) - + def test_materials_requests_manufacture_and_sub_multi_level(self): items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", @@ -48,10 +48,10 @@ class TestEvent(unittest.TestCase): quantities = [14,9,36,1,2,5,2,1,4,0] types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", "Purchase","Manufacture"] - + self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=0, \ include_subcontracted=1) - + def test_materials_requests_manufacture_multi_level(self): items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", @@ -59,12 +59,12 @@ class TestEvent(unittest.TestCase): quantities = [14,5,20,0,2,5,2,1,4,0] types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", "Purchase","Manufacture"] - + self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=0, \ include_subcontracted=0) - - - + + + def test_materials_requests_single_level_purch_only(self): items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", @@ -72,10 +72,10 @@ class TestEvent(unittest.TestCase): quantities = [2,0,0,0,0,0,0,1,0,0] types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", "Purchase","Manufacture"] - + self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=0, only_raw_materials=1, \ include_subcontracted=0) - + def test_materials_requests_single_level(self): items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", @@ -83,32 +83,32 @@ class TestEvent(unittest.TestCase): quantities = [2,0,0,0,2,1,0,1,0,0] types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", "Purchase","Manufacture"] - + self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=0, only_raw_materials=0, \ include_subcontracted=0) - + def runtest_materials_requests(self, items, quantities, types,use_multi_level_bom, only_raw_materials, \ include_subcontracted): - + clear_material_requests() create_test_records() - - ppt = run_production_planning_tool(use_multi_level_bom=use_multi_level_bom, - only_raw_materials=only_raw_materials, include_subcontracted=include_subcontracted, - item_code = "_Test PPT Item Master", bom_no = "BOM-_Test PPT Item Master-001", - planned_qty = 1, planned_start_date = "5/5/2029", + + ppt = run_production_planning_tool(use_multi_level_bom=use_multi_level_bom, + only_raw_materials=only_raw_materials, include_subcontracted=include_subcontracted, + item_code = "_Test PPT Item Master", bom_no = "BOM-_Test PPT Item Master-001", + planned_qty = 1, planned_start_date = "5/5/2029", warehouse = "_Test Warehouse - _TC", company = "_Test Company") - + create_material_requests(ppt) - + for item, qty, type in zip(items, quantities, types): self.assertEqual(qty, get_requested_qty(item)) for mat_req_type in get_requested_types(item): - self.assertEqual(type, mat_req_type) - + self.assertEqual(type, mat_req_type) + def create_test_records(): from erpnext.stock.doctype.item.test_item import make_item - + subA = make_item("_Test PPT Item Sub A",{ "item_code": "_Test PPT Item Sub A", "item_name": "_Test PPT Item Sub A", @@ -119,7 +119,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + subB = make_item("_Test PPT Item Sub B",{ "item_code": "_Test PPT Item Sub B", "item_name": "_Test PPT Item Sub B", @@ -130,7 +130,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + subC = make_item("_Test PPT Item Sub C",{ "item_code": "_Test PPT Item Sub C", "item_name": "_Test PPT Item Sub C", @@ -141,7 +141,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + sCA = make_item("_Test PPT Item SC A",{ "item_code": "_Test PPT Item SC A", "item_name": "_Test PPT Item SC A", @@ -172,7 +172,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + rawA = make_item("_Test PPT Item Raw A",{ "item_code": "_Test PPT Item Raw A", "item_name": "_Test PPT Item Raw A", @@ -183,7 +183,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + rawB = make_item("_Test PPT Item Raw B",{ "item_code": "_Test PPT Item Raw B", "item_name": "_Test PPT Item Raw B", @@ -194,7 +194,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + rawC = make_item("_Test PPT Item Raw C",{ "item_code": "_Test PPT Item Raw C", "item_name": "_Test PPT Item Raw C", @@ -205,7 +205,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + rawD = make_item("_Test PPT Item Raw D",{ "item_code": "_Test PPT Item Raw D", "item_name": "_Test PPT Item Raw D", @@ -216,7 +216,7 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - + master = make_item("_Test PPT Item Master",{ "item_code": "_Test PPT Item Master", "item_name": "_Test PPT Item Master", @@ -227,9 +227,9 @@ def create_test_records(): "stock_uom": "_Test UOM", "item_group": "_Test Item Group", "default_warehouse": "_Test Warehouse - _TC"}) - - - + + + bom_subB = make_bom("BOM-_Test PPT Item Sub B-001",{"quantity":1.0, "item": "_Test PPT Item Sub B", "is_active": 1, @@ -239,39 +239,39 @@ def create_test_records(): "rate":100, "amount": 100, "stock_uom": "_Test UOM"}, {"item_code": "_Test PPT Item Raw C", "doctype":"BOM Item", "stock_qty":4, "rate":100, "amount": 400,"stock_uom": "_Test UOM"}]) - + bom_subC = make_bom("BOM-_Test PPT Item Sub C-001",{"quantity":1, "item": "_Test PPT Item Sub C", "is_active": 1, "is_default": 1, "docstatus": 1, "with_operations": 0}, [ - {"item_code": "_Test PPT Item Raw A","item_name": "_Test PPT Item Raw A", + {"item_code": "_Test PPT Item Raw A","item_name": "_Test PPT Item Raw A", "doctype":"BOM Item", "stock_qty":6, "rate":100, "amount": 600}, - {"item_code": "_Test PPT Item Sub B","item_name": "_Test PPT Item Sub B", + {"item_code": "_Test PPT Item Sub B","item_name": "_Test PPT Item Sub B", "bom_no":"BOM-_Test PPT Item Sub B-001", "doctype":"BOM Item", "stock_qty":2, "rate":100, "amount": 200}]) - + bom_sCA = make_bom("BOM-_Test PPT Item SC A-001",{"quantity":1, "item": "_Test PPT Item SC A", "is_active": 1, "is_default": 1, "docstatus": 1, "with_operations": 0}, [ - {"item_code": "_Test PPT Item Raw D","item_name": "_Test PPT Item Raw D", + {"item_code": "_Test PPT Item Raw D","item_name": "_Test PPT Item Raw D", "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}]) - + bom_sCB = make_bom("BOM-_Test PPT Item SC B-001",{"quantity":1, "item": "_Test PPT Item SC B", "is_active": 1, "is_default": 1, "docstatus": 1, "with_operations": 0}, [ - {"item_code": "_Test PPT Item Raw B","item_name": "_Test PPT Item Raw B", + {"item_code": "_Test PPT Item Raw B","item_name": "_Test PPT Item Raw B", "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}, - {"item_code": "_Test PPT Item Raw C","item_name": "_Test PPT Item Raw C", + {"item_code": "_Test PPT Item Raw C","item_name": "_Test PPT Item Raw C", "doctype":"BOM Item", "stock_qty":4, "rate":100, "amount": 400}]) - + bom_subA = make_bom("BOM-_Test PPT Item Sub A-001",{"quantity":1, "item": "_Test PPT Item Sub A", "is_active": 1, @@ -279,29 +279,29 @@ def create_test_records(): "docstatus": 1, "with_operations": 0}, [ {"item_code": "_Test PPT Item Sub C","item_name": "_Test PPT Item Sub C", - "bom_no":"BOM-_Test PPT Item Sub C-001", "doctype":"BOM Item", + "bom_no":"BOM-_Test PPT Item Sub C-001", "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}, - {"item_code": "_Test PPT Item SC B","item_name": "_Test PPT Item SC B", + {"item_code": "_Test PPT Item SC B","item_name": "_Test PPT Item SC B", "bom_no":"BOM-_Test PPT Item SC B-001", "doctype":"BOM Item", "stock_qty":2, - "rate":100, "amount": 200}]) - + "rate":100, "amount": 200}]) + bom_master = make_bom("BOM-_Test PPT Item Master-001",{"quantity":1, "item": "_Test PPT Item Master", "is_active": 1, "is_default": 1, "docstatus": 1, "with_operations": 0}, [ - {"item_code": "_Test PPT Item Sub A","item_name": "_Test PPT Item Sub A", - "bom_no":"BOM-_Test PPT Item Sub A-001", + {"item_code": "_Test PPT Item Sub A","item_name": "_Test PPT Item Sub A", + "bom_no":"BOM-_Test PPT Item Sub A-001", "doctype":"BOM Item", "stock_qty":2, "rate":100, "amount": 200}, - {"item_code": "_Test PPT Item Sub B","item_name": "_Test PPT Item Sub B", - "bom_no":"BOM-_Test PPT Item Sub B-001", + {"item_code": "_Test PPT Item Sub B","item_name": "_Test PPT Item Sub B", + "bom_no":"BOM-_Test PPT Item Sub B-001", "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}, - {"item_code": "_Test PPT Item Raw A","item_name": "_Test PPT Item Raw A", + {"item_code": "_Test PPT Item Raw A","item_name": "_Test PPT Item Raw A", "doctype":"BOM Item", "stock_qty":2, "rate":100, "amount": 200}, - {"item_code": "_Test PPT Item SC A","item_name": "_Test PPT Item SC A", - "bom_no":"BOM-_Test PPT Item SC A-001", + {"item_code": "_Test PPT Item SC A","item_name": "_Test PPT Item SC A", + "bom_no":"BOM-_Test PPT Item SC A-001", "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100} ]) @@ -309,7 +309,7 @@ def create_test_records(): def make_bom(name, properties=None, items=None): if frappe.db.exists("BOM", name): return frappe.get_doc("BOM", name) - + bom = frappe.new_doc("BOM") item = frappe.get_doc({ "doctype": "BOM", @@ -317,20 +317,20 @@ def make_bom(name, properties=None, items=None): "quantity": "1", "with_operations": 0 }) - + if properties: bom.update(properties) - + if items: for item in items: bom.append("items", item) - + bom.insert() bom.submit() - + return bom - + def clear_material_requests(): frappe.db.sql("delete from `tabMaterial Request Item`") frappe.db.sql("delete from `tabMaterial Request`") @@ -339,53 +339,50 @@ def clear_material_requests(): def run_production_planning_tool(**args): ppt = frappe.new_doc("Production Planning Tool") args = frappe._dict(args) - + if args.use_multi_level_bom: ppt.use_multi_level_bom = args.use_multi_level_bom else: ppt.use_multi_level_bom = 0 - + if args.only_raw_materials: ppt.only_raw_materials = args.only_raw_materials else: ppt.only_raw_materials = 0 - + if args.include_subcontracted: ppt.include_subcontracted = args.include_subcontracted else: ppt.include_subcontracted = 0 - + if args.warehouse: - ppt.purchase_request_for_warehouse = args.warehouse - + ppt.purchase_request_for_warehouse = args.warehouse + if args.company: ppt.company = args.company ppt.create_material_requests_for_all_required_qty = 1 - - ppt.append("items",{"item_code": args.item_code, "bom_no": args.bom_no, "planned_qty": args.planned_qty, - "planned_start_date": args.planned_start_date, "warehouse": args.warehouse}) - - return ppt -def create_production_orders(ppt): - raise_production_orders(ppt) + ppt.append("items",{"item_code": args.item_code, "bom_no": args.bom_no, "planned_qty": args.planned_qty, + "planned_start_date": args.planned_start_date, "warehouse": args.warehouse}) + + return ppt def create_material_requests(ppt): ppt.raise_material_requests() - + def get_requested_qty(item_code): total_qty = 0 - for d in frappe.db.sql("""select item.qty as qty - from `tabMaterial Request` mat_req, `tabMaterial Request Item` item + for d in frappe.db.sql("""select item.qty as qty + from `tabMaterial Request` mat_req, `tabMaterial Request Item` item where item.item_code = %(item_code)s and item.parent = mat_req.name""", {"item_code":item_code}, as_dict=1): total_qty += d.qty return total_qty def get_requested_types(item_code): types = [] - for d in frappe.db.sql("""select mat_req.material_request_type as type - from `tabMaterial Request` mat_req, `tabMaterial Request Item` item + for d in frappe.db.sql("""select mat_req.material_request_type as type + from `tabMaterial Request` mat_req, `tabMaterial Request Item` item where item.item_code = %(item_code)s and item.parent = mat_req.name""", {"item_code":item_code}, as_dict=1): types.append(d.type) return types - + diff --git a/erpnext/patches.txt b/erpnext/patches.txt index cb751f1c60..60caf0fec1 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -427,6 +427,7 @@ erpnext.patches.v8_1.set_delivery_date_in_so_item #2017-07-28 erpnext.patches.v8_5.fix_tax_breakup_for_non_invoice_docs erpnext.patches.v8_5.remove_quotations_route_in_sidebar erpnext.patches.v8_5.update_existing_data_in_project_type +erpnext.patches.v8_5.set_default_mode_of_payment erpnext.patches.v8_5.update_customer_group_in_POS_profile erpnext.patches.v8_6.update_timesheet_company_from_PO erpnext.patches.v8_6.set_write_permission_for_quotation_for_sales_manager diff --git a/erpnext/patches/v4_0/apply_user_permissions.py b/erpnext/patches/v4_0/apply_user_permissions.py index 640fe6b92d..c21b605188 100644 --- a/erpnext/patches/v4_0/apply_user_permissions.py +++ b/erpnext/patches/v4_0/apply_user_permissions.py @@ -12,8 +12,6 @@ def execute(): frappe.clear_cache() def update_hr_permissions(): - from frappe.core.page.user_permissions import user_permissions - # add set user permissions rights to HR Manager frappe.db.sql("""update `tabDocPerm` set `set_user_permissions`=1 where parent in ('Employee', 'Leave Application') and role='HR Manager' and permlevel=0 and `read`=1""") diff --git a/erpnext/patches/v4_0/rename_sitemap_to_route.py b/erpnext/patches/v4_0/rename_sitemap_to_route.py index 257580bac6..ffb1fda144 100644 --- a/erpnext/patches/v4_0/rename_sitemap_to_route.py +++ b/erpnext/patches/v4_0/rename_sitemap_to_route.py @@ -12,6 +12,6 @@ def execute(): frappe.model.rename_field("Item", "parent_website_sitemap", "parent_website_route") frappe.model.rename_field("Sales Partner", "parent_website_sitemap", "parent_website_route") - except Exception, e: + except Exception as e: if e.args[0]!=1054: - raise \ No newline at end of file + raise diff --git a/erpnext/patches/v4_2/add_currency_turkish_lira.py b/erpnext/patches/v4_2/add_currency_turkish_lira.py index dac1fe908f..1a46089f94 100644 --- a/erpnext/patches/v4_2/add_currency_turkish_lira.py +++ b/erpnext/patches/v4_2/add_currency_turkish_lira.py @@ -6,5 +6,5 @@ import frappe def execute(): return - country = get_country_info(country="Turkey") - add_country_and_currency("Turkey", country) + # country = get_country_info(country="Turkey") + # add_country_and_currency("Turkey", country) diff --git a/erpnext/patches/v4_2/default_website_style.py b/erpnext/patches/v4_2/default_website_style.py index d168c86831..e8f9502ea6 100644 --- a/erpnext/patches/v4_2/default_website_style.py +++ b/erpnext/patches/v4_2/default_website_style.py @@ -3,9 +3,9 @@ import frappe def execute(): return - frappe.reload_doc('website', 'doctype', 'style_settings') - style_settings = frappe.get_doc("Style Settings", "Style Settings") - if not style_settings.apply_style: - style_settings.update(default_properties) - style_settings.apply_style = 1 - style_settings.save() + # frappe.reload_doc('website', 'doctype', 'style_settings') + # style_settings = frappe.get_doc("Style Settings", "Style Settings") + # if not style_settings.apply_style: + # style_settings.update(default_properties) + # style_settings.apply_style = 1 + # style_settings.save() diff --git a/erpnext/patches/v4_4/make_email_accounts.py b/erpnext/patches/v4_4/make_email_accounts.py index 126acfcd1e..510fe3ae6d 100644 --- a/erpnext/patches/v4_4/make_email_accounts.py +++ b/erpnext/patches/v4_4/make_email_accounts.py @@ -78,7 +78,7 @@ def execute(): def insert_or_update(account): try: account.insert() - except frappe.NameError, e: + except frappe.NameError as e: if e.args[0]=="Email Account": existing_account = frappe.get_doc("Email Account", e.args[1]) for key, value in account.as_dict().items(): diff --git a/erpnext/patches/v7_0/fix_nonwarehouse_ledger_gl_entries_for_transactions.py b/erpnext/patches/v7_0/fix_nonwarehouse_ledger_gl_entries_for_transactions.py index 2b92b17f11..58da0594ea 100644 --- a/erpnext/patches/v7_0/fix_nonwarehouse_ledger_gl_entries_for_transactions.py +++ b/erpnext/patches/v7_0/fix_nonwarehouse_ledger_gl_entries_for_transactions.py @@ -34,7 +34,7 @@ def execute(): voucher = frappe.get_doc(voucher_type, voucher_no) voucher.make_gl_entries() frappe.db.commit() - except Exception, e: + except Exception as e: print frappe.get_traceback() rejected.append([voucher_type, voucher_no]) frappe.db.rollback() diff --git a/erpnext/patches/v7_0/update_party_status.py b/erpnext/patches/v7_0/update_party_status.py index f3733dbd84..9ca3d02b9d 100644 --- a/erpnext/patches/v7_0/update_party_status.py +++ b/erpnext/patches/v7_0/update_party_status.py @@ -2,19 +2,19 @@ import frappe def execute(): return - for party_type in ('Customer', 'Supplier'): - frappe.reload_doctype(party_type) - - # set all as default status - frappe.db.sql('update `tab{0}` set status=%s'.format(party_type), default_status[party_type]) - - for doctype in status_depends_on[party_type]: - filters = get_filters_for(doctype) - parties = frappe.get_all(doctype, fields="{0} as party".format(party_type.lower()), - filters=filters, limit_page_length=1) - - parties = filter(None, [p.party for p in parties]) - - if parties: - frappe.db.sql('update `tab{0}` set status="Open" where name in ({1})'.format(party_type, - ', '.join(len(parties) * ['%s'])), parties) \ No newline at end of file + # for party_type in ('Customer', 'Supplier'): + # frappe.reload_doctype(party_type) + # + # # set all as default status + # frappe.db.sql('update `tab{0}` set status=%s'.format(party_type), default_status[party_type]) + # + # for doctype in status_depends_on[party_type]: + # filters = get_filters_for(doctype) + # parties = frappe.get_all(doctype, fields="{0} as party".format(party_type.lower()), + # filters=filters, limit_page_length=1) + # + # parties = filter(None, [p.party for p in parties]) + # + # if parties: + # frappe.db.sql('update `tab{0}` set status="Open" where name in ({1})'.format(party_type, + # ', '.join(len(parties) * ['%s'])), parties) \ No newline at end of file diff --git a/erpnext/patches/v8_0/rename_total_margin_to_rate_with_margin.py b/erpnext/patches/v8_0/rename_total_margin_to_rate_with_margin.py index 3fc477ec8f..4065438796 100644 --- a/erpnext/patches/v8_0/rename_total_margin_to_rate_with_margin.py +++ b/erpnext/patches/v8_0/rename_total_margin_to_rate_with_margin.py @@ -19,6 +19,6 @@ def execute(): def rename_field_if_exists(doctype, old_fieldname, new_fieldname): try: rename_field(doctype, old_fieldname, new_fieldname) - except Exception, e: + except Exception as e: if e.args[0] != 1054: raise diff --git a/erpnext/patches/v8_1/delete_deprecated_reports.py b/erpnext/patches/v8_1/delete_deprecated_reports.py index 887277ab9c..99d77c103c 100644 --- a/erpnext/patches/v8_1/delete_deprecated_reports.py +++ b/erpnext/patches/v8_1/delete_deprecated_reports.py @@ -51,4 +51,4 @@ def check_and_update_auto_email_report(report): frappe.delete_doc("Auto Email Report", auto_email_report) elif report in ["Customer Addresses And Contacts", "Supplier Addresses And Contacts"]: - frapppe.db.set_value("Auto Email Report", auto_email_report, "report", report) \ No newline at end of file + frappe.db.set_value("Auto Email Report", auto_email_report, "report", report) \ No newline at end of file diff --git a/erpnext/patches/v8_5/set_default_mode_of_payment.py b/erpnext/patches/v8_5/set_default_mode_of_payment.py new file mode 100644 index 0000000000..34ecbb0a3c --- /dev/null +++ b/erpnext/patches/v8_5/set_default_mode_of_payment.py @@ -0,0 +1,17 @@ +# Copyright (c) 2017, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import frappe + +def execute(): + frappe.reload_doctype("POS Profile") + frappe.reload_doctype("Sales Invoice Payment") + + frappe.db.sql(""" + update + `tabSales Invoice Payment` + set `tabSales Invoice Payment`.default = 1 + where + `tabSales Invoice Payment`.parenttype = 'POS Profile' + and `tabSales Invoice Payment`.idx=1""") \ No newline at end of file diff --git a/erpnext/projects/doctype/activity_type/activity_type.json b/erpnext/projects/doctype/activity_type/activity_type.json index 65a0fa16ee..dc50a09df7 100644 --- a/erpnext/projects/doctype/activity_type/activity_type.json +++ b/erpnext/projects/doctype/activity_type/activity_type.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 1, "allow_rename": 1, "autoname": "field:activity_type", @@ -12,6 +13,7 @@ "editable_grid": 0, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -22,7 +24,8 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 0, + "in_global_search": 0, + "in_list_view": 1, "in_standard_filter": 0, "label": "Activity Type", "length": 0, @@ -39,6 +42,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -49,6 +53,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Default Costing Rate", @@ -67,6 +72,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -77,6 +83,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "length": 0, @@ -94,6 +101,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -104,6 +112,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Default Billing Rate", @@ -120,20 +129,51 @@ "search_index": 0, "set_only_once": 0, "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "0", + "fieldname": "disabled", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Disabled", + "length": 0, + "no_copy": 0, + "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 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "icon": "icon-flag", "idx": 1, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-12-13 12:38:18.218618", + "modified": "2017-07-25 20:11:05.229092", "modified_by": "Administrator", "module": "Projects", "name": "Activity Type", @@ -149,11 +189,11 @@ "export": 1, "if_owner": 0, "import": 1, - "is_custom": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, + "restrict": 0, "role": "System Manager", "set_user_permissions": 0, "share": 1, @@ -175,6 +215,7 @@ "print": 1, "read": 1, "report": 1, + "restrict": 0, "role": "Projects User", "set_user_permissions": 0, "share": 1, @@ -196,6 +237,7 @@ "print": 0, "read": 1, "report": 0, + "restrict": 0, "role": "Employee", "set_user_permissions": 0, "share": 0, @@ -206,6 +248,8 @@ "quick_entry": 1, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_order": "ASC", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/projects/doctype/activity_type/test_activity_type.js b/erpnext/projects/doctype/activity_type/test_activity_type.js new file mode 100644 index 0000000000..8023121671 --- /dev/null +++ b/erpnext/projects/doctype/activity_type/test_activity_type.js @@ -0,0 +1,20 @@ +QUnit.test("test: Activity Type", function (assert) { + // number of asserts + assert.expect(1); + let done = assert.async(); + + frappe.run_serially([ + // insert a new Activity Type + () => frappe.set_route("List", "Activity Type", "List"), + () => frappe.new_doc("Activity Type"), + () => frappe.timeout(1), + () => frappe.click_link('Edit in full page'), + () => cur_frm.set_value("activity_type", "Test Activity"), + () => frappe.click_button('Save'), + () => frappe.timeout(1), + () => { + assert.equal(cur_frm.doc.name,"Test Activity"); + }, + () => done() + ]); +}); diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py index 45d6442d2c..16abd2499c 100644 --- a/erpnext/projects/doctype/timesheet/timesheet.py +++ b/erpnext/projects/doctype/timesheet/timesheet.py @@ -279,7 +279,6 @@ class Timesheet(Document): ts_detail.billing_rate = 0.0 ts_detail.costing_rate = 0.0 - @frappe.whitelist() def get_projectwise_timesheet_data(project, parent=None): cond = '' diff --git a/erpnext/public/css/email.css b/erpnext/public/css/email.css new file mode 100644 index 0000000000..8cf1a31ad6 --- /dev/null +++ b/erpnext/public/css/email.css @@ -0,0 +1,29 @@ +.panel-header { + background-color: #fafbfc; + border: 1px solid #d1d8dd; + border-radius: 3px 3px 0 0; +} +.panel-body { + background-color: #fff; + border: 1px solid #d1d8dd; + border-top: none; + border-radius: 0 0 3px 3px; + overflow-wrap: break-word; +} +.sender-avatar { + width: 24px; + height: 24px; + border-radius: 3px; + vertical-align: middle; +} +.sender-avatar-placeholder { + width: 24px; + height: 24px; + border-radius: 3px; + vertical-align: middle; + line-height: 24px; + text-align: center; + color: #d1d8dd; + border: 1px solid #d1d8dd; + background-color: #fff; +} diff --git a/erpnext/public/images/erpnext-grey.png b/erpnext/public/images/erpnext-grey.png new file mode 100644 index 0000000000..0e70f0538b Binary files /dev/null and b/erpnext/public/images/erpnext-grey.png differ diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index a54f30de58..c653640de6 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -5,7 +5,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ setup: function() {}, apply_pricing_rule_on_item: function(item){ if(item.margin_type == "Percentage"){ - item.rate_with_margin = flt(item.price_list_rate) + item.rate_with_margin = flt(item.price_list_rate) + flt(item.price_list_rate) * ( flt(item.margin_rate_or_amount) / 100); } else { item.rate_with_margin = flt(item.price_list_rate) + flt(item.margin_rate_or_amount); @@ -70,12 +70,11 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ } else { frappe.throw(repl('%(conversion_rate_label)s' + __(' is mandatory. Maybe Currency Exchange record is not created for ') + - '%(from_currency)s' + __(" to ") + '%(to_currency)s', - { - "conversion_rate_label": conversion_rate_label, - "from_currency": this.frm.doc.currency, - "to_currency": company_currency - })); + '%(from_currency)s' + __(" to ") + '%(to_currency)s', { + "conversion_rate_label": conversion_rate_label, + "from_currency": this.frm.doc.currency, + "to_currency": company_currency + })); } } @@ -101,7 +100,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ var me = this; $.each(fields, function(i, f) { doc["base_"+f] = flt(flt(doc[f], precision(f, doc)) * me.frm.doc.conversion_rate, precision("base_" + f, doc)); - }) + }); }, initialize_taxes: function() { @@ -111,14 +110,14 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ tax.item_wise_tax_detail = {}; var tax_fields = ["total", "tax_amount_after_discount_amount", "tax_amount_for_current_item", "grand_total_for_current_item", - "tax_fraction_for_current_item", "grand_total_fraction_for_current_item"] + "tax_fraction_for_current_item", "grand_total_fraction_for_current_item"]; if (cstr(tax.charge_type) != "Actual" && !(me.discount_amount_applied && me.frm.doc.apply_discount_on=="Grand Total")) { tax_fields.push("tax_amount"); } - $.each(tax_fields, function(i, fieldname) { tax[fieldname] = 0.0 }); + $.each(tax_fields, function(i, fieldname) { tax[fieldname] = 0.0; }); if (!this.discount_amount_applied && cur_frm) { cur_frm.cscript.validate_taxes_and_charges(tax.doctype, tax.name); @@ -134,7 +133,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ var has_inclusive_tax = false; $.each(me.frm.doc["taxes"] || [], function(i, row) { if(cint(row.included_in_print_rate)) has_inclusive_tax = true; - }) + }); if(has_inclusive_tax==false) return; $.each(me.frm.doc["items"] || [], function(n, item) { @@ -223,7 +222,6 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ $.each(this.frm.doc["items"] || [], function(n, item) { var item_tax_map = me._load_item_tax_rate(item.item_tax_rate); - $.each(me.frm.doc["taxes"] || [], function(i, tax) { // tax_amount represents the amount of tax for the current step var current_tax_amount = me.get_current_tax_amount(item, tax, item_tax_map); @@ -232,7 +230,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ if (tax.charge_type == "Actual") { actual_tax_dict[tax.idx] -= current_tax_amount; if (n == me.frm.doc["items"].length - 1) { - current_tax_amount += actual_tax_dict[tax.idx] + current_tax_amount += actual_tax_dict[tax.idx]; } } @@ -258,23 +256,25 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ current_tax_amount *= (tax.add_deduct_tax == "Deduct") ? -1.0 : 1.0; } - // Calculate tax.total viz. grand total till that step // note: grand_total_for_current_item contains the contribution of // item's amount, previously applied tax and the current tax on that item if(i==0) { - tax.grand_total_for_current_item = flt(item.net_amount + current_tax_amount, precision("total", tax)); + tax.grand_total_for_current_item = flt(item.net_amount + current_tax_amount); } else { tax.grand_total_for_current_item = - flt(me.frm.doc["taxes"][i-1].grand_total_for_current_item + current_tax_amount, precision("total", tax)); + flt(me.frm.doc["taxes"][i-1].grand_total_for_current_item + current_tax_amount); } - // in tax.total, accumulate grand total for each item - tax.total += tax.grand_total_for_current_item; - // set precision in the last item iteration if (n == me.frm.doc["items"].length - 1) { me.round_off_totals(tax); + // in tax.total, accumulate grand total for each item + me.set_cumulative_total(i, tax); + + me.set_in_company_currency(tax, + ["total", "tax_amount", "tax_amount_after_discount_amount"]); + // adjust Discount Amount loss in last tax iteration if ((i == me.frm.doc["taxes"].length - 1) && me.discount_amount_applied && me.frm.doc.apply_discount_on == "Grand Total" && me.frm.doc.discount_amount) @@ -284,6 +284,16 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ }); }, + set_cumulative_total: function(row_idx, tax) { + if(row_idx==0) { + tax.total = flt(this.frm.doc.net_total + tax.tax_amount_after_discount_amount, + precision("total", tax)); + } else { + tax.total = flt(this.frm.doc["taxes"][row_idx-1].total + tax.tax_amount_after_discount_amount, + precision("total", tax)); + } + }, + _load_item_tax_rate: function(item_tax_rate) { return item_tax_rate ? JSON.parse(item_tax_rate) : {}; }, @@ -300,7 +310,6 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ } else if(tax.charge_type == "On Net Total") { current_tax_amount = (tax_rate / 100.0) * item.net_amount; - } else if(tax.charge_type == "On Previous Row Amount") { current_tax_amount = (tax_rate / 100.0) * this.frm.doc["taxes"][cint(tax.row_id) - 1].tax_amount_for_current_item; @@ -310,8 +319,6 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ this.frm.doc["taxes"][cint(tax.row_id) - 1].grand_total_for_current_item; } - current_tax_amount = flt(current_tax_amount, precision("tax_amount", tax)); - this.set_item_wise_tax(item, tax, tax_rate, current_tax_amount); return current_tax_amount; @@ -322,18 +329,14 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ var key = item.item_code || item.item_name; var item_wise_tax_amount = current_tax_amount * this.frm.doc.conversion_rate; if (tax.item_wise_tax_detail && tax.item_wise_tax_detail[key]) - item_wise_tax_amount += tax.item_wise_tax_detail[key][1] - - tax.item_wise_tax_detail[key] = [tax_rate,flt(item_wise_tax_amount, precision("base_tax_amount", tax))] + item_wise_tax_amount += tax.item_wise_tax_detail[key][1]; + tax.item_wise_tax_detail[key] = [tax_rate, flt(item_wise_tax_amount, precision("base_tax_amount", tax))]; }, round_off_totals: function(tax) { - tax.total = flt(tax.total, precision("total", tax)); tax.tax_amount = flt(tax.tax_amount, precision("tax_amount", tax)); tax.tax_amount_after_discount_amount = flt(tax.tax_amount_after_discount_amount, precision("tax_amount", tax)); - - this.set_in_company_currency(tax, ["total", "tax_amount", "tax_amount_after_discount_amount"]); }, adjust_discount_amount_loss: function(tax) { @@ -391,7 +394,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ me.frm.doc.taxes_and_charges_deducted += flt(tax.tax_amount_after_discount_amount); } } - }) + }); frappe.model.round_floats_in(this.frm.doc, ["taxes_and_charges_added", "taxes_and_charges_deducted"]); } @@ -437,7 +440,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ if(this.frm.doc["taxes"] && this.frm.doc["taxes"].length) { var temporary_fields = ["tax_amount_for_current_item", "grand_total_for_current_item", - "tax_fraction_for_current_item", "grand_total_fraction_for_current_item"] + "tax_fraction_for_current_item", "grand_total_fraction_for_current_item"]; if(!frappe.meta.get_docfield(this.frm.doc["taxes"][0].doctype, "tax_amount_after_discount_amount", this.frm.doctype)) { temporary_fields.push("tax_amount_after_discount_amount"); @@ -473,13 +476,24 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ precision("base_discount_amount")); var total_for_discount_amount = this.get_total_for_discount_amount(); + var net_total = 0; // calculate item amount after Discount Amount if (total_for_discount_amount) { $.each(this.frm.doc["items"] || [], function(i, item) { distributed_amount = flt(me.frm.doc.discount_amount) * item.net_amount / total_for_discount_amount; - item.net_amount = flt(item.net_amount - distributed_amount, precision("base_amount", item)); - item.net_rate = flt(item.net_amount / item.qty, precision("net_rate", item)); + item.net_amount = flt(item.net_amount - distributed_amount, + precision("base_amount", item)); + net_total += item.net_amount; + // discount amount rounding loss adjustment if no taxes + if ((!(me.frm.doc.taxes || []).length || (me.frm.doc.apply_discount_on == "Net Total")) + && i == (me.frm.doc.items || []).length - 1) { + var discount_amount_loss = flt(me.frm.doc.net_total - net_total + - me.frm.doc.discount_amount, precision("net_total")); + item.net_amount = flt(item.net_amount + discount_amount_loss, + precision("net_amount", item)); + } + item.net_rate = flt(item.net_amount / item.qty, precision("net_rate", item)); me.set_in_company_currency(item, ["net_rate", "net_amount"]); }); @@ -490,10 +504,8 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ }, get_total_for_discount_amount: function() { - var me = this; - if(this.frm.doc.apply_discount_on == "Net Total") { - return this.frm.doc.net_total + return this.frm.doc.net_total; } else { var total_actual_tax = 0.0; var actual_taxes_dict = {}; @@ -517,7 +529,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ calculate_total_advance: function(update_paid_amount) { var total_allocated_amount = frappe.utils.sum($.map(this.frm.doc["advances"] || [], function(adv) { - return flt(adv.allocated_amount, precision("allocated_amount", adv)) + return flt(adv.allocated_amount, precision("allocated_amount", adv)); })); this.frm.doc.total_advance = flt(total_allocated_amount, precision("total_advance")); @@ -528,9 +540,9 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ // NOTE: // paid_amount and write_off_amount is only for POS Invoice // total_advance is only for non POS Invoice - + if(this.frm.doc.doctype == "Sales Invoice" && this.frm.doc.is_return){ - this.calculate_paid_amount() + this.calculate_paid_amount(); } if(this.frm.doc.is_return || this.frm.doc.docstatus > 0) return; @@ -558,25 +570,21 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ } if(this.frm.doc.doctype == "Sales Invoice"){ - this.set_default_payment(total_amount_to_pay, update_paid_amount) - this.calculate_paid_amount() + this.set_default_payment(total_amount_to_pay, update_paid_amount); + this.calculate_paid_amount(); } - this.calculate_change_amount() - var outstanding_amount = 0.0 + this.calculate_change_amount(); var paid_amount = (this.frm.doc.party_account_currency == this.frm.doc.currency) ? this.frm.doc.paid_amount : this.frm.doc.base_paid_amount; - var change_amount = (this.frm.doc.party_account_currency == this.frm.doc.currency) ? - this.frm.doc.change_amount : this.frm.doc.base_change_amount; - this.frm.doc.outstanding_amount = flt(total_amount_to_pay - flt(paid_amount) + flt(this.frm.doc.change_amount * this.frm.doc.conversion_rate), precision("outstanding_amount")); } else if(this.frm.doc.doctype == "Purchase Invoice") { this.frm.doc.outstanding_amount = flt(total_amount_to_pay, precision("outstanding_amount")); - } + } }, set_default_payment: function(total_amount_to_pay, update_paid_amount){ @@ -584,14 +592,14 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ var payment_status = true; if(this.frm.doc.is_pos && (update_paid_amount===undefined || update_paid_amount)){ $.each(this.frm.doc['payments'] || [], function(index, data){ - if(data.type == "Cash" && payment_status && total_amount_to_pay > 0) { + if(data.default && payment_status && total_amount_to_pay > 0) { data.base_amount = flt(total_amount_to_pay, precision("base_amount")); data.amount = flt(total_amount_to_pay / me.frm.doc.conversion_rate, precision("amount")); payment_status = false; }else if(me.frm.doc.paid_amount){ data.amount = 0.0; } - }) + }); } }, @@ -604,7 +612,7 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ data.base_amount = flt(data.amount * me.frm.doc.conversion_rate, precision("base_amount")); paid_amount += data.amount; base_paid_amount += data.base_amount; - }) + }); } else if(!this.frm.doc.is_return){ this.frm.doc.payments = []; } @@ -617,30 +625,28 @@ erpnext.taxes_and_totals = erpnext.payments.extend({ this.frm.doc.change_amount = 0.0; this.frm.doc.base_change_amount = 0.0; if(this.frm.doc.paid_amount > this.frm.doc.grand_total && !this.frm.doc.is_return) { - var payment_types = $.map(this.frm.doc.payments, function(d) { return d.type }); + var payment_types = $.map(this.frm.doc.payments, function(d) { return d.type; }); if (in_list(payment_types, 'Cash')) { this.frm.doc.change_amount = flt(this.frm.doc.paid_amount - this.frm.doc.grand_total + this.frm.doc.write_off_amount, precision("change_amount")); - - this.frm.doc.base_change_amount = flt(this.frm.doc.base_paid_amount - - this.frm.doc.base_grand_total + this.frm.doc.base_write_off_amount, + + this.frm.doc.base_change_amount = flt(this.frm.doc.base_paid_amount - + this.frm.doc.base_grand_total + this.frm.doc.base_write_off_amount, precision("base_change_amount")); - } } }, calculate_write_off_amount: function(){ if(this.frm.doc.paid_amount > this.frm.doc.grand_total){ - this.frm.doc.write_off_amount = flt(this.frm.doc.grand_total - this.frm.doc.paid_amount + this.frm.doc.change_amount, - precision("write_off_amount")) - + this.frm.doc.write_off_amount = flt(this.frm.doc.grand_total - this.frm.doc.paid_amount + + this.frm.doc.change_amount, precision("write_off_amount")); + this.frm.doc.base_write_off_amount = flt(this.frm.doc.write_off_amount * this.frm.doc.conversion_rate, precision("base_write_off_amount")); }else{ - this.frm.doc.paid_amount = 0.0 + this.frm.doc.paid_amount = 0.0; } - - this.calculate_outstanding_amount(false) + this.calculate_outstanding_amount(false); } -}) +}); diff --git a/erpnext/public/js/help_links.js b/erpnext/public/js/help_links.js index 6ac60c2c30..7de87b7964 100644 --- a/erpnext/public/js/help_links.js +++ b/erpnext/public/js/help_links.js @@ -14,7 +14,7 @@ frappe.help.help_links['List/User'] = [ frappe.help.help_links['permission-manager'] = [ { label: 'Role Permissions Manager', url: 'https://frappe.github.io/erpnext/user/manual/en/setting-up/users-and-permissions/role-based-permissions' }, { label: 'Managing Perm Level in Permissions Manager', url: 'https://frappe.github.io/erpnext/user/manual/en/setting-up/articles/managing-perm-level' }, - { label: 'User Permissions Manager', url: 'https://frappe.github.io/erpnext/user/manual/en/setting-up/users-and-permissions/user-permissions' }, + { label: 'User Permissions', url: 'https://frappe.github.io/erpnext/user/manual/en/setting-up/users-and-permissions/user-permissions' }, { label: 'Sharing', url: 'https://frappe.github.io/erpnext/user/manual/en/setting-up/users-and-permissions/sharing' }, { label: 'Password', url: 'https://frappe.github.io/erpnext/user/manual/en/setting-up/articles/change-password' }, ] diff --git a/erpnext/public/js/pos/pos_selected_item.html b/erpnext/public/js/pos/pos_selected_item.html index 0ed6c71fcc..6f2772be21 100644 --- a/erpnext/public/js/pos/pos_selected_item.html +++ b/erpnext/public/js/pos/pos_selected_item.html @@ -17,6 +17,6 @@
    {{ __("Amount") }}:
    - +
    \ No newline at end of file diff --git a/erpnext/public/less/email.less b/erpnext/public/less/email.less new file mode 100644 index 0000000000..4077c4940d --- /dev/null +++ b/erpnext/public/less/email.less @@ -0,0 +1,32 @@ +@import "../../../../frappe/frappe/public/less/variables.less"; + +.panel-header { + background-color: @light-bg; + border: 1px solid @border-color; + border-radius: 3px 3px 0 0; +} + +.panel-body { + background-color: #fff; + border: 1px solid @border-color; + border-top: none; + border-radius: 0 0 3px 3px; + overflow-wrap: break-word; +} + +.sender-avatar { + width: 24px; + height: 24px; + border-radius: 3px; + vertical-align: middle; +} + +.sender-avatar-placeholder { + .sender-avatar; + + line-height: 24px; + text-align: center; + color: @border-color; + border: 1px solid @border-color; + background-color: #fff; +} \ No newline at end of file diff --git a/erpnext/schools/doctype/academic_term/test_academic_term.js b/erpnext/schools/doctype/academic_term/test_academic_term.js index c74071b7e7..688ad54905 100644 --- a/erpnext/schools/doctype/academic_term/test_academic_term.js +++ b/erpnext/schools/doctype/academic_term/test_academic_term.js @@ -1,8 +1,7 @@ // Testing Setup Module in Schools -QUnit.module('setup'); +QUnit.module('schools'); -// Testing Academic Term option -QUnit.test('test academic term', function(assert){ +QUnit.test('Test: Academic Term', function(assert){ assert.expect(4); let done = assert.async(); frappe.run_serially([ diff --git a/erpnext/schools/doctype/academic_year/test_academic_year.js b/erpnext/schools/doctype/academic_year/test_academic_year.js index 5123b6e454..7bf1772971 100644 --- a/erpnext/schools/doctype/academic_year/test_academic_year.js +++ b/erpnext/schools/doctype/academic_year/test_academic_year.js @@ -1,23 +1,22 @@ // Testing Setup Module in Schools -QUnit.module('setup'); +QUnit.module('schools'); -// Testing Academic Year Testing option -QUnit.test('test academic year', function(assert){ +QUnit.test('Test: Academic Year', function(assert){ assert.expect(3); let done = assert.async(); frappe.run_serially([ () => { return frappe.tests.make('Academic Year', [ - {academic_year_name: '2015-16'}, - {year_start_date: '2015-07-20'}, - {year_end_date:'2016-06-20'}, + {academic_year_name: '2016-17'}, + {year_start_date: '2016-07-20'}, + {year_end_date:'2017-06-20'}, ]); }, () => { - assert.ok(cur_frm.doc.academic_year_name=='2015-16'); - assert.ok(cur_frm.doc.year_start_date=='2015-07-20'); - assert.ok(cur_frm.doc.year_end_date=='2016-06-20'); + assert.ok(cur_frm.doc.academic_year_name=='2016-17'); + assert.ok(cur_frm.doc.year_start_date=='2016-07-20'); + assert.ok(cur_frm.doc.year_end_date=='2017-06-20'); }, () => done() ]); diff --git a/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js b/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js new file mode 100644 index 0000000000..6c0540eebb --- /dev/null +++ b/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js @@ -0,0 +1,16 @@ +// School Assessment module +QUnit.module('schools'); + +QUnit.test('Test: Assessment Criteria', function(assert){ + assert.expect(0); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Assessment Criteria', [ + {assessment_criteria: 'Pass'}, + {assessment_criteria_group: 'Reservation'} + ]); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js b/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js new file mode 100644 index 0000000000..92dba1dfd8 --- /dev/null +++ b/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js @@ -0,0 +1,15 @@ +// School Assessment module +QUnit.module('schools'); + +QUnit.test('Test: Assessment Criteria Group', function(assert){ + assert.expect(0); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Assessment Criteria Group', [ + {assessment_criteria_group: 'Reservation'} + ]); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/course/test_course.js b/erpnext/schools/doctype/course/test_course.js new file mode 100644 index 0000000000..48667309ce --- /dev/null +++ b/erpnext/schools/doctype/course/test_course.js @@ -0,0 +1,36 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test('test course', function(assert) { + assert.expect(8); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Course', [ + {course_name: 'Test_Subject'}, + {course_code: 'Test_Sub'}, + {department: 'Test Department'}, + {course_abbreviation: 'Test_Sub'}, + {course_intro: 'Test Subject Intro'}, + {default_grading_scale: 'GTU'}, + {assessment_criteria: [ + [ + {assessment_criteria: 'Pass'}, + {weightage: 100} + ] + ]} + ]); + }, + () => { + assert.ok(cur_frm.doc.course_name == 'Test_Subject', 'Course name correctly set'); + assert.ok(cur_frm.doc.course_code == 'Test_Sub', 'Course code correctly set'); + assert.ok(cur_frm.doc.department == 'Test Department', 'Department selected correctly'); + assert.ok(cur_frm.doc.course_abbreviation == 'Test_Sub'); + assert.ok(cur_frm.doc.course_intro == 'Test Subject Intro'); + assert.ok(cur_frm.doc.default_grading_scale == 'GTU', 'Grading scale selected correctly'); + assert.ok(cur_frm.doc.assessment_criteria[0].assessment_criteria == 'Pass', 'Assessment criteria selected correctly'); + assert.ok(cur_frm.doc.assessment_criteria[0].weightage == '100'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/grading_scale/test_grading_scale.js b/erpnext/schools/doctype/grading_scale/test_grading_scale.js new file mode 100644 index 0000000000..6539343a31 --- /dev/null +++ b/erpnext/schools/doctype/grading_scale/test_grading_scale.js @@ -0,0 +1,28 @@ +// School Assessment module +QUnit.module('schools'); + +QUnit.test('Test: Grading Scale', function(assert){ + assert.expect(0); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Grading Scale', [ + {grading_scale_name: 'GTU'}, + {description: 'The score will be set according to 10 based system.'}, + {intervals: [ + [ + {grade_code: 'AA'}, + {threshold: '90'}, + {grade_description: 'Distinction'} + ], + [ + {grade_code: 'FF'}, + {threshold: '0'}, + {grade_description: 'Fail'} + ] + ]} + ]); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/guardian/test_guardian.js b/erpnext/schools/doctype/guardian/test_guardian.js new file mode 100644 index 0000000000..a16ba0836d --- /dev/null +++ b/erpnext/schools/doctype/guardian/test_guardian.js @@ -0,0 +1,34 @@ +// Testing Student Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Guardian', function(assert){ + assert.expect(9); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Guardian', [ + {guardian_name: 'Test Guardian'}, + {email_address: 'guardian@testmail.com'}, + {mobile_number: 9898980000}, + {alternate_number: 8989890000}, + {date_of_birth: '1982-07-22'}, + {education: 'Testing'}, + {occupation: 'Testing'}, + {designation: 'Testing'}, + {work_address: 'Testing address'} + ]); + }, + () => { + assert.ok(cur_frm.doc.guardian_name == 'Test Guardian'); + assert.ok(cur_frm.doc.email_address == 'guardian@testmail.com'); + assert.ok(cur_frm.doc.mobile_number == 9898980000); + assert.ok(cur_frm.doc.alternate_number == 8989890000); + assert.ok(cur_frm.doc.date_of_birth == '1982-07-22'); + assert.ok(cur_frm.doc.education == 'Testing'); + assert.ok(cur_frm.doc.occupation == 'Testing'); + assert.ok(cur_frm.doc.designation == 'Testing'); + assert.ok(cur_frm.doc.work_address == 'Testing address'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/instructor/test_instructor.js b/erpnext/schools/doctype/instructor/test_instructor.js new file mode 100644 index 0000000000..a9e25616c1 --- /dev/null +++ b/erpnext/schools/doctype/instructor/test_instructor.js @@ -0,0 +1,20 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Instructor', function(assert){ + assert.expect(2); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make("Instructor", [ + {instructor_name: 'Instructor 1'}, + {department: 'Test Department'} + ]); + }, + () => { + assert.ok(cur_frm.doc.instructor_name == 'Instructor 1'); + assert.ok(cur_frm.doc.department = 'Test Department'); + }, + () => done() + ]); +}); diff --git a/erpnext/schools/doctype/program/test_program.js b/erpnext/schools/doctype/program/test_program.js new file mode 100644 index 0000000000..16bc932101 --- /dev/null +++ b/erpnext/schools/doctype/program/test_program.js @@ -0,0 +1,78 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Program', function(assert){ + assert.expect(11); + let done = assert.async(); + let fee_structure_code; + frappe.run_serially([ + () => { + return frappe.tests.make('Program', [ + {program_name: 'Standard Test'}, + {program_code: 'Standard Test'}, + {department: 'Test Department'}, + {program_abbreviation: 'Standard Test'}, + {courses: [ + [ + {course: 'Test_Sub'}, + {required: true} + ] + ]} + ]); + }, + + () => cur_frm.save(), + // Setting up Fee Category to select in Program doctype + () => { + return frappe.tests.make('Fee Category', [ + {category_name: 'Reservation'}, + {description: 'Special Provision'} + ]); + }, + // Setting up Fee Structure to be selected in Program doctype + () => { + return frappe.tests.make('Fee Structure', [ + {program: 'Standard Test'}, + {academic_term: '2016-17 (Semester 1)'}, + {student_category: 'Reservation'}, + {components: [ + [ + {fees_category: 'Reservation'}, + {amount: 20000} + ] + ]} + ]); + }, + () => {fee_structure_code = frappe.get_route()[2];}, // Storing naming convention of Fee Structure entry + () => frappe.set_route('Form', ('Program/Standard Test')), // Routing to our current Program doctype + + () => $('.shaded-section~ .visible-section+ .visible-section .grid-add-row').trigger('click'), // clicking on Add Row button + // Storing data that were inter-dependent + () => cur_frm.doc.fees[0].academic_term = '2016-17 (Semester 1)', + () => cur_frm.doc.fees[0].student_category = 'Reservation', + () => cur_frm.doc.fees[0].due_date = '2016-08-20', + () => $('.error').trigger('click'), + () => $('.bold.input-sm').trigger('focus'), + () => frappe.timeout(1), + () => $('.bold.input-sm').trigger('focus'), + () => $('.bold.input-sm').val(fee_structure_code), + () => $('.bold.input-sm').trigger('focus'), + () => frappe.timeout(1), + () => cur_frm.save(), + + () => { + assert.ok(cur_frm.doc.program_name == 'Standard Test'); + assert.ok(cur_frm.doc.program_code == 'Standard Test'); + assert.ok(cur_frm.doc.department == 'Test Department'); + assert.ok(cur_frm.doc.program_abbreviation == 'Standard Test'); + assert.ok(cur_frm.doc.courses[0].course == 'Test_Sub'); + assert.ok(cur_frm.doc.courses[0].required == true); + assert.ok(cur_frm.doc.fees[0].academic_term == '2016-17 (Semester 1)'); + assert.ok(cur_frm.doc.fees[0].fee_structure == fee_structure_code); + assert.ok(cur_frm.doc.fees[0].student_category == 'Reservation'); + assert.ok(cur_frm.doc.fees[0].due_date == '2016-08-20'); + assert.ok(cur_frm.doc.fees[0].amount == 20000); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/room/test_room.js b/erpnext/schools/doctype/room/test_room.js new file mode 100644 index 0000000000..0a93a8553f --- /dev/null +++ b/erpnext/schools/doctype/room/test_room.js @@ -0,0 +1,22 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Room', function(assert){ + assert.expect(3); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Room', [ + {room_name: 'Room 1'}, + {room_number: '1'}, + {seating_capacity: '60'}, + ]); + }, + () => { + assert.ok(cur_frm.doc.room_name == 'Room 1'); + assert.ok(cur_frm.doc.room_number = '1'); + assert.ok(cur_frm.doc.seating_capacity = '60'); + }, + () => done() + ]); +}); diff --git a/erpnext/schools/doctype/school_settings/test_school_settings.js b/erpnext/schools/doctype/school_settings/test_school_settings.js new file mode 100644 index 0000000000..641405684c --- /dev/null +++ b/erpnext/schools/doctype/school_settings/test_school_settings.js @@ -0,0 +1,25 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test("Test: School Settings", function(assert){ + assert.expect(3); + let done = assert.async(); + frappe.run_serially([ + () => frappe.set_route("List", "School Settings"), + () => frappe.timeout(0.4), + () => { + return frappe.tests.set_form_values(cur_frm, [ + {current_academic_year: '2016-17'}, + {current_academic_term: '2016-17 (Semester 1)'}, + {attendance_freeze_date: '2016-07-20'} + ]); + }, + () => { + cur_frm.save(); + assert.ok(cur_frm.doc.current_academic_year=="2016-17"); + assert.ok(cur_frm.doc.current_academic_term=="2016-17 (Semester 1)"); + assert.ok(cur_frm.doc.attendance_freeze_date=="2016-07-20"); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/student_admission/test_student_admission.js b/erpnext/schools/doctype/student_admission/test_student_admission.js new file mode 100644 index 0000000000..0d7c997adb --- /dev/null +++ b/erpnext/schools/doctype/student_admission/test_student_admission.js @@ -0,0 +1,34 @@ +// Testing Admission Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Student Admission', function(assert) { + assert.expect(9); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Student Admission', [ + {academic_year: '2016-17'}, + {admission_start_date: '2016-04-20'}, + {admission_end_date: '2016-05-31'}, + {title: '2016-17 Admissions'}, + {program: 'Standard Test'}, + {application_fee: 1000}, + {naming_series_for_student_applicant: 'AP'}, + {introduction: 'Test intro'}, + {eligibility: 'Test eligibility'} + ]); + }, + () => { + assert.ok(cur_frm.doc.academic_year == '2016-17'); + assert.ok(cur_frm.doc.admission_start_date == '2016-04-20'); + assert.ok(cur_frm.doc.admission_end_date == '2016-05-31'); + assert.ok(cur_frm.doc.title == '2016-17 Admissions'); + assert.ok(cur_frm.doc.program == 'Standard Test', 'Program correctly selected'); + assert.ok(cur_frm.doc.application_fee == 1000); + assert.ok(cur_frm.doc.naming_series_for_student_applicant == 'AP'); + assert.ok(cur_frm.doc.introduction == 'Test intro'); + assert.ok(cur_frm.doc.eligibility == 'Test eligibility'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/student_applicant/student_applicant.js b/erpnext/schools/doctype/student_applicant/student_applicant.js index 974d9727de..9b08ee5f6a 100644 --- a/erpnext/schools/doctype/student_applicant/student_applicant.js +++ b/erpnext/schools/doctype/student_applicant/student_applicant.js @@ -28,7 +28,7 @@ frappe.ui.form.on("Student Applicant", { frappe.realtime.on("enroll_student_progress", function(data) { if(data.progress) { - frappe.hide_frappe.msgprint(true); + frappe.hide_msgprint(true); frappe.show_progress(__("Enrolling student"), data.progress[0],data.progress[1]); } }) diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js new file mode 100644 index 0000000000..a45b45a6b9 --- /dev/null +++ b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js @@ -0,0 +1,95 @@ +// Testing Admission module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Student Applicant', function(assert){ + assert.expect(24); + let done = assert.async(); + let guradian_auto_code; + let guardian_name; + frappe.run_serially([ + () => frappe.set_route('List', 'Guardian'), + () => frappe.timeout(0.5), + () => {$(`a:contains("Test Guardian"):visible`)[0].click();}, + () => frappe.timeout(1), + () => { + guardian_name = cur_frm.doc.guardian_name; + guradian_auto_code = frappe.get_route()[2]; + }, + // Testing data entry for Student Applicant + () => { + return frappe.tests.make('Student Applicant',[ + {first_name: 'Fname'}, + {middle_name: 'Mname'}, + {last_name: 'Lname'}, + {program: 'Standard Test'}, + {student_admission: '2016-17 Admissions'}, + {academic_year: '2016-17'}, + {date_of_birth: '1995-07-20'}, + {student_email_id: 'test@testmail.com'}, + {gender: 'Male'}, + {student_mobile_number: '9898980000'}, + {blood_group: 'O+'}, + {address_line_1: 'Test appt, Test Society,'}, + {address_line_2: 'Test district, Test city.'}, + {city: 'Test'}, + {state: 'Test'}, + {pincode: '400086'} + ]); + }, + // Entry in Guardian child table + () => $('a:contains("Guardian Details"):visible').click(), + () => $('.btn:contains("Add Row"):visible').click(), + () => { + cur_frm.get_field("guardians").grid.grid_rows[0].doc.guardian = guradian_auto_code; + cur_frm.get_field("guardians").grid.grid_rows[0].doc.relation = "Father"; + cur_frm.get_field("guardians").grid.grid_rows[0].doc.guardian_name = guardian_name; + $('a:contains("Guardian Details"):visible').click(); + }, + // Entry in Sibling child table + () => $('a:contains("Sibling Details"):visible').click(), + () => $('.btn:contains("Add Row"):visible').click(), + () => { + cur_frm.get_field("siblings").grid.grid_rows[0].doc.full_name = "Test Name"; + cur_frm.get_field("siblings").grid.grid_rows[0].doc.gender = "Male"; + cur_frm.get_field("siblings").grid.grid_rows[0].doc.institution = "Test Institution"; + cur_frm.get_field("siblings").grid.grid_rows[0].doc.program = "Test Program"; + cur_frm.get_field("siblings").grid.grid_rows[0].doc.date_of_birth = "1995-07-20"; + $('span.hidden-xs.octicon.octicon-triangle-up').click(); + cur_frm.save(); + }, + () => { + assert.ok(cur_frm.doc.first_name == 'Fname'); + assert.ok(cur_frm.doc.middle_name == 'Mname'); + assert.ok(cur_frm.doc.last_name == 'Lname'); + assert.ok(cur_frm.doc.program == 'Standard Test', 'Program selected correctly'); + assert.ok(cur_frm.doc.student_admission == '2016-17 Admissions', 'Student Admission entry correctly selected'); + assert.ok(cur_frm.doc.academic_year == '2016-17'); + assert.ok(cur_frm.doc.date_of_birth == '1995-07-20'); + assert.ok(cur_frm.doc.student_email_id == 'test@testmail.com'); + assert.ok(cur_frm.doc.gender == 'Male'); + assert.ok(cur_frm.doc.student_mobile_number == '9898980000'); + assert.ok(cur_frm.doc.blood_group == 'O+'); + assert.ok(cur_frm.doc.address_line_1 == 'Test appt, Test Society,'); + assert.ok(cur_frm.doc.address_line_2 == 'Test district, Test city.'); + assert.ok(cur_frm.doc.city == 'Test'); + assert.ok(cur_frm.doc.state == 'Test'); + assert.ok(cur_frm.doc.pincode == '400086'); + }, + () => frappe.timeout(1), + () => $('a:contains("Guardian Details"):visible').click(), + () => { + assert.ok(cur_frm.get_field("guardians").grid.grid_rows[0].doc.guardian == guradian_auto_code, 'Guardian correctly selected from dropdown'); + assert.ok(cur_frm.get_field("guardians").grid.grid_rows[0].doc.relation == 'Father'); + assert.ok(cur_frm.get_field("guardians").grid.grid_rows[0].doc.guardian_name == guardian_name, 'Guardian name was correctly retrieved'); + }, + () => $('a:contains("Sibling Details"):visible').click(), + () => { + assert.ok(cur_frm.get_field("siblings").grid.grid_rows[0].doc.full_name == 'Test Name'); + assert.ok(cur_frm.get_field("siblings").grid.grid_rows[0].doc.gender == 'Male'); + assert.ok(cur_frm.get_field("siblings").grid.grid_rows[0].doc.institution == 'Test Institution'); + assert.ok(cur_frm.get_field("siblings").grid.grid_rows[0].doc.program == 'Test Program'); + assert.ok(cur_frm.get_field("siblings").grid.grid_rows[0].doc.date_of_birth == '1995-07-20'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js new file mode 100644 index 0000000000..61f36e2cbf --- /dev/null +++ b/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js @@ -0,0 +1,123 @@ +// Testing Admission module in Schools +QUnit.module('schools'); + +QUnit.test('test student applicant', function(assert){ + assert.expect(12); + let done = assert.async(); + let testing_status; + frappe.run_serially([ + () => frappe.set_route('Form', 'School House/New School House'), + () => frappe.timeout(0.5), + () => cur_frm.doc.house_name = 'Test_house', + () => cur_frm.save(), + () => frappe.set_route('List', 'Student Applicant'), + () => frappe.timeout(0.5), + () => {$(`a:contains("Fname Mname Lname"):visible`)[0].click();}, + + // Checking different options + // 1. Moving forward with Submit + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => { + testing_status = $('span.indicator.orange').text(); + assert.ok(testing_status.indexOf('Submit this document to confirm') == -1); // checking if submit has been successfull + }, + + // 2. Cancelling the Submit request + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Cancel'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.5), + () => { + testing_status = $('h1.editable-title').text(); + assert.ok(testing_status.indexOf('Cancelled') != -1); // checking if cancel request has been successfull + }, + + // 3. Checking Amend option + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Amend'), + () => cur_frm.doc.student_email_id = "test2@testmail.com", // updating email id since same id again is not allowed + () => cur_frm.save(), + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), // Submitting again after amend + () => { + testing_status = $('span.indicator.orange').text(); + assert.ok(testing_status.indexOf('Submit this document to confirm') == -1); // checking if submit has been successfull after amend + }, + + // Checking different Application status option + () => { + testing_status = $('h1.editable-title').text(); + assert.ok(testing_status.indexOf('Applied') != -1); // checking if Applied has been successfull + }, + () => cur_frm.set_value('application_status', "Rejected"), // Rejected Status + () => frappe.tests.click_button('Update'), + () => { + testing_status = $('h1.editable-title').text(); + assert.ok(testing_status.indexOf('Rejected') != -1); // checking if Rejected has been successfull + }, + () => cur_frm.set_value('application_status', "Admitted"), // Admitted Status + () => frappe.tests.click_button('Update'), + () => { + testing_status = $('h1.editable-title').text(); + assert.ok(testing_status.indexOf('Admitted') != -1); // checking if Admitted has been successfull + }, + () => cur_frm.set_value('application_status', "Approved"), // Approved Status + () => frappe.tests.click_button('Update'), + () => { + testing_status = $('h1.editable-title').text(); + assert.ok(testing_status.indexOf('Approved') != -1); // checking if Approved has been successfull + }, + + // Clicking on Enroll button should add the applicant's entry in Student doctype, and take you to Program Enrollment page + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Enroll'), + () => frappe.timeout(0.5), + () => { + assert.ok(frappe.get_route()[0] == 'Form'); // Checking if the current page is Program Enrollment page or not + assert.ok(frappe.get_route()[1] == 'Program Enrollment'); + }, + + // Routing to Student List to check if the Applicant's entry has been made or not + () => frappe.timeout(0.5), + () => frappe.set_route('List', 'Student'), + () => frappe.timeout(0.5), + () => {$(`a:contains("Fname Mname Lname"):visible`)[0].click();}, + () => frappe.timeout(0.5), + () => {assert.ok(($(`h1.editable-title`).text()).indexOf('Enabled') != -1, 'Student entry successfully created');}, // Checking if the Student entry has been enabled + // Enrolling the Student into a Program + () => {$('.form-documents .row:nth-child(1) .col-xs-6:nth-child(1) .octicon-plus').click();}, + () => frappe.timeout(1), + () => { + cur_frm.set_value('program', 'Standard Test'); + cur_frm.set_value('student_category', 'Reservation'); + cur_frm.set_value('student_batch_name', 'A'); + cur_frm.set_value('academic_year', '2016-17'); + cur_frm.set_value('academic_term', '2016-17 (Semester 1)'); + cur_frm.set_value('school_house', 'Test_house'); + $('a:contains("Fees"):visible').click(); + }, + () => frappe.timeout(1), + () => { + cur_frm.doc.fees[0].student_category = "Reservation"; + }, + () => cur_frm.save(), + // Submitting Program Enrollment form for our Test Student + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => { + testing_status = $('.msgprint').text(); + assert.ok("Fee Records Created" == (testing_status.substring(0,19)), "Fee record created for enrolled student test"); + }, + () => frappe.timeout(0.5), + () => frappe.tests.click_button('Close'), + () => { + testing_status = $('h1').text(); + assert.ok(testing_status.indexOf('Submitted') != -1, "Program enrollment successfully submitted"); // Checking if the program enrollment entry shows submitted or not + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/student_batch_name/test_student_batch_name.js b/erpnext/schools/doctype/student_batch_name/test_student_batch_name.js new file mode 100644 index 0000000000..6a10dc1e35 --- /dev/null +++ b/erpnext/schools/doctype/student_batch_name/test_student_batch_name.js @@ -0,0 +1,19 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Student Batch Name', function(assert){ + assert.expect(1); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Student Batch Name', [ + {batch_name: 'A'} + ]); + }, + () => cur_frm.save(), + () => { + assert.ok(cur_frm.doc.batch_name=='A'); + }, + () => done() + ]); +}); diff --git a/erpnext/schools/doctype/student_category/test_student_category.js b/erpnext/schools/doctype/student_category/test_student_category.js new file mode 100644 index 0000000000..5e3109a6bb --- /dev/null +++ b/erpnext/schools/doctype/student_category/test_student_category.js @@ -0,0 +1,19 @@ +// Testing Setup Module in Schools +QUnit.module('schools'); + +QUnit.test('Test: Student Category', function(assert){ + assert.expect(1); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Student Category', [ + {category: 'Reservation'} + ]); + }, + () => cur_frm.save(), + () => { + assert.ok(cur_frm.doc.name=='Reservation'); + }, + () => done() + ]); +}); diff --git a/erpnext/selling/doctype/product_bundle/test_product_bundle.js b/erpnext/selling/doctype/product_bundle/test_product_bundle.js new file mode 100644 index 0000000000..ba5ba0dc3b --- /dev/null +++ b/erpnext/selling/doctype/product_bundle/test_product_bundle.js @@ -0,0 +1,36 @@ +QUnit.test("test sales order", function(assert) { + assert.expect(4); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Product Bundle', [ + {new_item_code: 'Computer'}, + {items: [ + [ + {item_code:'CPU'}, + {qty:1} + ], + [ + {item_code:'Screen'}, + {qty:1} + ], + [ + {item_code:'Keyboard'}, + {qty:1} + ] + ]}, + ]); + }, + () => cur_frm.save(), + () => { + // get_item_details + assert.ok(cur_frm.doc.items[0].item_code=='CPU', "Item Code correct"); + assert.ok(cur_frm.doc.items[1].item_code=='Screen', "Item Code correct"); + assert.ok(cur_frm.doc.items[2].item_code=='Keyboard', "Item Code correct"); + assert.ok(cur_frm.doc.new_item_code == "Computer", "Parent Item correct"); + }, + () => frappe.timeout(0.3), + () => done() + ]); +}); + diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 43fa20f8c1..b90f725bb2 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -27,9 +27,19 @@ erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({ var me = this; + if (doc.valid_till && frappe.datetime.get_diff(doc.valid_till, frappe.datetime.get_today()) < 0) { + this.frm.set_intro(__("Validity period of this quotation has ended")); + } + + if (doc.__islocal) { + this.frm.set_value('valid_till', frappe.datetime.add_months(doc.transaction_date, 1)) + } + if(doc.docstatus == 1 && doc.status!=='Lost') { - cur_frm.add_custom_button(__('Make Sales Order'), - cur_frm.cscript['Make Sales Order']); + if(!doc.valid_till || frappe.datetime.get_diff(doc.valid_till, frappe.datetime.get_today()) > 0) { + cur_frm.add_custom_button(__('Make Sales Order'), + cur_frm.cscript['Make Sales Order']); + } if(doc.status!=="Ordered") { cur_frm.add_custom_button(__('Set as Lost'), diff --git a/erpnext/selling/doctype/quotation/quotation.json b/erpnext/selling/doctype/quotation/quotation.json index 313041352a..16ea578764 100644 --- a/erpnext/selling/doctype/quotation/quotation.json +++ b/erpnext/selling/doctype/quotation/quotation.json @@ -363,6 +363,36 @@ "unique": 0, "width": "100px" }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "valid_till", + "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Valid Till", + "length": 0, + "no_copy": 0, + "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, diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index 420b84a634..5eb8b06ed8 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals import frappe from frappe.model.mapper import get_mapped_doc -from frappe.utils import flt +from frappe.utils import flt, nowdate, getdate from frappe import _ from erpnext.controllers.selling_controller import SellingController @@ -21,9 +21,14 @@ class Quotation(SellingController): self.validate_order_type() self.validate_uom_is_integer("stock_uom", "qty") self.validate_quotation_to() + self.validate_valid_till() if self.items: self.with_items = 1 + def validate_valid_till(self): + if self.valid_till and self.valid_till < self.transaction_date: + frappe.throw(_("Valid till date cannot be before transaction date")) + def has_sales_order(self): return frappe.db.get_value("Sales Order Item", {"prevdoc_docname": self.name, "docstatus": 1}) @@ -100,6 +105,9 @@ def get_list_context(context=None): @frappe.whitelist() def make_sales_order(source_name, target_doc=None): + quotation = frappe.db.get_value("Quotation", source_name, ["transaction_date", "valid_till"], as_dict = 1) + if quotation.valid_till and (quotation.valid_till < quotation.transaction_date or quotation.valid_till < getdate(nowdate())): + frappe.throw(_("Validity period of this quotation has ended.")) return _make_sales_order(source_name, target_doc) def _make_sales_order(source_name, target_doc=None, ignore_permissions=False): diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py index fa69df418a..c642c47cd4 100644 --- a/erpnext/selling/doctype/quotation/test_quotation.py +++ b/erpnext/selling/doctype/quotation/test_quotation.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -from frappe.utils import flt +from frappe.utils import flt, add_days, nowdate, add_months import unittest test_dependencies = ["Product Bundle"] @@ -13,10 +13,11 @@ class TestQuotation(unittest.TestCase): from erpnext.selling.doctype.quotation.quotation import make_sales_order quotation = frappe.copy_doc(test_records[0]) + quotation.transaction_date = nowdate() + quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.insert() self.assertRaises(frappe.ValidationError, make_sales_order, quotation.name) - quotation.submit() sales_order = make_sales_order(quotation.name) @@ -29,9 +30,21 @@ class TestQuotation(unittest.TestCase): sales_order.delivery_date = "2014-01-01" sales_order.naming_series = "_T-Quotation-" - sales_order.transaction_date = "2013-05-12" + sales_order.transaction_date = nowdate() sales_order.insert() + def test_valid_till(self): + from erpnext.selling.doctype.quotation.quotation import make_sales_order + + quotation = frappe.copy_doc(test_records[0]) + quotation.valid_till = add_days(quotation.transaction_date, -1) + self.assertRaises(frappe.ValidationError, quotation.validate) + + quotation.valid_till = add_days(nowdate(), -1) + quotation.insert() + quotation.submit() + self.assertRaises(frappe.ValidationError, make_sales_order, quotation.name) + def test_create_quotation_with_margin(self): from erpnext.selling.doctype.quotation.quotation import make_sales_order from erpnext.selling.doctype.sales_order.sales_order \ @@ -44,6 +57,8 @@ class TestQuotation(unittest.TestCase): test_records[0]['items'][0]['margin_rate_or_amount'] = 18.75 quotation = frappe.copy_doc(test_records[0]) + quotation.transaction_date = nowdate() + quotation.valid_till = add_months(quotation.transaction_date, 1) quotation.insert() self.assertEquals(quotation.get("items")[0].rate, rate_with_margin) diff --git a/erpnext/selling/doctype/quotation/test_records.json b/erpnext/selling/doctype/quotation/test_records.json index 5637fb906c..7a9d3eb1e2 100644 --- a/erpnext/selling/doctype/quotation/test_records.json +++ b/erpnext/selling/doctype/quotation/test_records.json @@ -23,14 +23,15 @@ "parentfield": "items", "qty": 10.0, "rate": 100.0, - "uom": "_Test UOM 1", + "uom": "_Test UOM 1", "stock_uom": "_Test UOM 1", - "conversion_factor": 1.0 + "conversion_factor": 1.0 } ], "quotation_to": "Customer", "selling_price_list": "_Test Price List", "territory": "_Test Territory", - "transaction_date": "2013-02-21" + "transaction_date": "2013-02-21", + "valid_till": "2013-03-21" } ] \ No newline at end of file diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index ce8c18af41..7c0d7f9dca 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -16,7 +16,7 @@ class TestSalesOrder(unittest.TestCase): frappe.set_user("Administrator") for role in ("Stock User", "Sales User"): - set_user_permission_doctypes(doctype="Sales Order", role=role, + set_user_permission_doctypes(doctypes="Sales Order", role=role, apply_user_permissions=0, user_permission_doctypes=None) def test_make_material_request(self): @@ -137,10 +137,10 @@ class TestSalesOrder(unittest.TestCase): total_projected_qty = get_total_projected_qty('_Test Item') item_doc_after_cancel = frappe.get_doc('Item', '_Test Item') self.assertEqual(total_projected_qty, item_doc_after_cancel.total_projected_qty) - + def test_reserved_qty_for_over_delivery_via_sales_invoice(self): make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100) - + # set over-delivery tolerance frappe.db.set_value('Item', "_Test Item", 'tolerance', 50) @@ -158,9 +158,9 @@ class TestSalesOrder(unittest.TestCase): total_projected_qty = get_total_projected_qty('_Test Item') item_doc = frappe.get_doc('Item', '_Test Item') self.assertEqual(total_projected_qty, item_doc.total_projected_qty) - + self.assertEqual(get_reserved_qty(), existing_reserved_qty) - + so.load_from_db() self.assertEqual(so.get("items")[0].delivered_qty, 12) self.assertEqual(so.per_delivered, 100) @@ -170,7 +170,7 @@ class TestSalesOrder(unittest.TestCase): total_projected_qty = get_total_projected_qty('_Test Item') item_doc = frappe.get_doc('Item', '_Test Item') self.assertEqual(total_projected_qty, item_doc.total_projected_qty) - + so.load_from_db() self.assertEqual(so.get("items")[0].delivered_qty, 0) self.assertEqual(so.per_delivered, 0) @@ -178,8 +178,8 @@ class TestSalesOrder(unittest.TestCase): def test_reserved_qty_for_partial_delivery_with_packing_list(self): make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100) make_stock_entry(item="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=10, rate=100) - - + + existing_reserved_qty_item1 = get_reserved_qty("_Test Item") existing_reserved_qty_item2 = get_reserved_qty("_Test Item Home Desktop 100") @@ -227,7 +227,7 @@ class TestSalesOrder(unittest.TestCase): def test_reserved_qty_for_over_delivery_with_packing_list(self): make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100) make_stock_entry(item="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=10, rate=100) - + # set over-delivery tolerance frappe.db.set_value('Item', "_Test Product Bundle Item", 'tolerance', 50) @@ -257,7 +257,7 @@ class TestSalesOrder(unittest.TestCase): def test_warehouse_user(self): for role in ("Stock User", "Sales User"): - set_user_permission_doctypes(doctype="Sales Order", role=role, + set_user_permission_doctypes(doctypes="Sales Order", role=role, apply_user_permissions=1, user_permission_doctypes=["Warehouse"]) frappe.permissions.add_user_permission("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com") @@ -283,6 +283,7 @@ class TestSalesOrder(unittest.TestCase): frappe.set_user("test2@example.com") so.insert() + frappe.set_user("Administrator") frappe.permissions.remove_user_permission("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com") frappe.permissions.remove_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com") frappe.permissions.remove_user_permission("Company", "_Test Company 1", "test2@example.com") @@ -363,7 +364,7 @@ class TestSalesOrder(unittest.TestCase): from erpnext.buying.doctype.purchase_order.purchase_order import update_status make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100) - + po_item = make_item("_Test Item for Drop Shipping", {"is_stock_item": 1, "delivered_by_supplier": 1, 'default_supplier': '_Test Supplier', "expense_account": "_Test Account Cost for Goods Sold - _TC", diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order.js new file mode 100644 index 0000000000..3eceb89ca2 --- /dev/null +++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order.js @@ -0,0 +1,62 @@ +QUnit.module('Sales Order'); + +QUnit.test("test sales order", function(assert) { + assert.expect(8); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Order', [ + {customer: 'Test Customer 1'}, + {items: [ + [ + {'delivery_date': frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)}, + {'qty': 5}, + {'item_code': 'Test Product 4'}, + {'uom': 'unit'}, + {'margin_type': 'Percentage'}, + {'discount_percentage': 10}, + ] + ]}, + {customer_address: 'Test1-Billing'}, + {shipping_address_name: 'Test1-Shipping'}, + {contact_person: 'Contact 1-Test Customer 1'}, + {taxes_and_charges: 'TEST In State GST'}, + {tc_name: 'Test Term 1'}, + {terms: 'This is Test'} + ]); + }, + () => { + return frappe.tests.set_form_values(cur_frm, [ + {selling_price_list:'Test-Selling-USD'}, + {currency: 'USD'}, + {apply_discount_on:'Grand Total'}, + {additional_discount_percentage:10} + ]); + }, + () => cur_frm.save(), + () => { + // get_item_details + assert.ok(cur_frm.doc.items[0].item_name=='Test Product 4', "Item name correct"); + // get tax details + assert.ok(cur_frm.doc.taxes_and_charges=='TEST In State GST', "Tax details correct"); + // get tax account head details + assert.ok(cur_frm.doc.taxes[0].account_head=='CGST - '+frappe.get_abbr(frappe.defaults.get_default('Company')), " Account Head abbr correct"); + // calculate totals + assert.ok(cur_frm.doc.items[0].price_list_rate==1000, "Item 1 price_list_rate"); + assert.ok(cur_frm.doc.total== 4500, "total correct "); + assert.ok(cur_frm.doc.rounded_total== 4414.5, "rounded total correct "); + + }, + () => cur_frm.print_doc(), + () => frappe.timeout(1), + () => { + assert.ok($('.btn-print-print').is(':visible'), "Print Format Available"); + assert.ok($(".section-break+ .section-break .column-break:nth-child(1) .data-field:nth-child(1) .value").text().includes("Billing Street 1"), "Print Preview Works As Expected"); + }, + () => cur_frm.print_doc(), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + () => done() + ]); +}); diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js new file mode 100644 index 0000000000..3247c85d97 --- /dev/null +++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js @@ -0,0 +1,41 @@ +QUnit.module('Sales Order'); + +QUnit.test("test sales order with additional discount in grand total", function(assert) { + assert.expect(2); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Order', [ + {customer: 'Test Customer 1'}, + {items: [ + [ + {'delivery_date': frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)}, + {'qty': 5}, + {'item_code': 'Test Product 4'}, + ] + ]}, + {customer_address: 'Test1-Billing'}, + {shipping_address_name: 'Test1-Shipping'}, + {contact_person: 'Contact 1-Test Customer 1'} + ]); + }, + () => { + return frappe.tests.set_form_values(cur_frm, [ + {apply_discount_on:'Grand Total'}, + {additional_discount_percentage:10} + ]); + }, + () => cur_frm.save(), + () => { + // get_item_details + assert.ok(cur_frm.doc.items[0].item_name=='Test Product 4', "Item name correct"); + // get grand_total details + assert.ok(cur_frm.doc.grand_total== 450, "Grand total correct "); + + }, + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + () => done() + ]); +}); diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js new file mode 100644 index 0000000000..c745374fcc --- /dev/null +++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js @@ -0,0 +1,37 @@ +QUnit.module('Sales Order'); + +QUnit.test("test sales order", function(assert) { + assert.expect(2); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Order', [ + {customer: 'Test Customer 1'}, + {items: [ + [ + {'delivery_date': frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)}, + {'qty': 5}, + {'item_code': 'Test Product 4'}, + {'discount_percentage': 10}, + {'margin_type': 'Percentage'} + ] + ]}, + {customer_address: 'Test1-Billing'}, + {shipping_address_name: 'Test1-Shipping'}, + {contact_person: 'Contact 1-Test Customer 1'} + ]); + }, + () => cur_frm.save(), + () => { + // get_item_details + assert.ok(cur_frm.doc.items[0].item_name=='Test Product 4', "Item name correct"); + // get grand_total details + assert.ok(cur_frm.doc.grand_total== 450, "Grand total correct "); + + }, + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + () => done() + ]); +}); diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multi_uom.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multi_uom.js new file mode 100644 index 0000000000..74f51ca72c --- /dev/null +++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multi_uom.js @@ -0,0 +1,38 @@ +QUnit.module('Sales Order'); + +QUnit.test("test sales order", function(assert) { + assert.expect(3); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Order', [ + {customer: 'Test Customer 1'}, + {items: [ + [ + {'delivery_date': frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)}, + {'qty': 5}, + {'item_code': 'Test Product 4'}, + {'uom': 'unit'}, + ] + ]}, + {customer_address: 'Test1-Billing'}, + {shipping_address_name: 'Test1-Shipping'}, + {contact_person: 'Contact 1-Test Customer 1'} + ]); + }, + () => cur_frm.save(), + () => { + // get_item_details + assert.ok(cur_frm.doc.items[0].item_name=='Test Product 4', "Item name correct"); + // get uom details + assert.ok(cur_frm.doc.items[0].uom=='Unit', "Multi Uom correct"); + // get grand_total details + assert.ok(cur_frm.doc.grand_total== 5000, "Grand total correct "); + + }, + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + () => done() + ]); +}); diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multiple_delivery_date.js similarity index 96% rename from erpnext/selling/doctype/sales_order/test_sales_order.js rename to erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multiple_delivery_date.js index 87f0e965c2..8e0538511a 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.js +++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multiple_delivery_date.js @@ -27,7 +27,7 @@ QUnit.test("test: Sales Order", function (assert) { assert.ok(cur_frm.doc.items[0].delivery_date == delivery_date); }, () => frappe.timeout(1), - // make SO without delivery date in parent, + // make SO without delivery date in parent, // parent delivery date should be set based on final delivery date entered in item () => { return frappe.tests.make('Sales Order', [ diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_taxes_and_charges.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_taxes_and_charges.js new file mode 100644 index 0000000000..c9464435ab --- /dev/null +++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_taxes_and_charges.js @@ -0,0 +1,40 @@ +QUnit.module('Sales Order'); + +QUnit.test("test sales order with taxes and charges", function(assert) { + assert.expect(3); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Order', [ + {customer: 'Test Customer 1'}, + {items: [ + [ + {'delivery_date': frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)}, + {'qty': 5}, + {'item_code': 'Test Product 4'}, + ] + ]}, + {customer_address: 'Test1-Billing'}, + {shipping_address_name: 'Test1-Shipping'}, + {contact_person: 'Contact 1-Test Customer 1'}, + {taxes_and_charges: 'TEST In State GST'}, + {tc_name: 'Test Term 1'}, + {terms: 'This is Test'} + ]); + }, + () => cur_frm.save(), + () => { + // get_item_details + assert.ok(cur_frm.doc.items[0].item_name=='Test Product 4', "Item name correct"); + // get tax details + assert.ok(cur_frm.doc.taxes_and_charges=='TEST In State GST', "Tax details correct"); + // get tax account head details + assert.ok(cur_frm.doc.taxes[0].account_head=='CGST - '+frappe.get_abbr(frappe.defaults.get_default('Company')), " Account Head abbr correct"); + + }, + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(0.3), + () => done() + ]); +}); diff --git a/erpnext/setup/doctype/company/test_company.js b/erpnext/setup/doctype/company/tests/test_company.js similarity index 100% rename from erpnext/setup/doctype/company/test_company.js rename to erpnext/setup/doctype/company/tests/test_company.js diff --git a/erpnext/setup/doctype/company/tests/test_company_production.js b/erpnext/setup/doctype/company/tests/test_company_production.js new file mode 100644 index 0000000000..73bd710e23 --- /dev/null +++ b/erpnext/setup/doctype/company/tests/test_company_production.js @@ -0,0 +1,19 @@ +QUnit.test("Test: Company", function (assert) { + assert.expect(0); + + let done = assert.async(); + + frappe.run_serially([ + // Added company for Production Order testing + () => frappe.set_route("List", "Company"), + () => frappe.new_doc("Company"), + () => frappe.timeout(1), + () => cur_frm.set_value("company_name", "Razer Blade"), + () => cur_frm.set_value("abbr", "RB"), + () => cur_frm.set_value("default_currency", "USD"), + () => cur_frm.save(), + () => frappe.timeout(1), + + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html b/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html index cd4d9771c4..57fce28eeb 100644 --- a/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +++ b/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html @@ -22,7 +22,7 @@ diff --git a/erpnext/setup/setup_wizard/install_fixtures.py b/erpnext/setup/setup_wizard/install_fixtures.py index f139d92f35..ea6da04641 100644 --- a/erpnext/setup/setup_wizard/install_fixtures.py +++ b/erpnext/setup/setup_wizard/install_fixtures.py @@ -233,10 +233,10 @@ def install(country=None): try: doc.insert(ignore_permissions=True) - except frappe.DuplicateEntryError, e: + except frappe.DuplicateEntryError as e: # pass DuplicateEntryError and continue if e.args and e.args[0]==doc.doctype and e.args[1]==doc.name: # make sure DuplicateEntryError is for the exact same doc and not a related doc pass else: - raise \ No newline at end of file + raise diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py index 086235e1cb..888099fc4f 100644 --- a/erpnext/setup/utils.py +++ b/erpnext/setup/utils.py @@ -107,7 +107,7 @@ def enable_all_roles_and_domains(): _role.save() # add all roles to users - user = frappe.get_doc("User", "test@erpnext.com") + user = frappe.get_doc("User", "Administrator") user.add_roles(*[role.get("name") for role in roles]) domains = frappe.get_list("Domain") diff --git a/erpnext/shopping_cart/test_shopping_cart.py b/erpnext/shopping_cart/test_shopping_cart.py index f221a8a7a1..22b2895043 100644 --- a/erpnext/shopping_cart/test_shopping_cart.py +++ b/erpnext/shopping_cart/test_shopping_cart.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import unittest import frappe +from frappe.utils import nowdate, add_months from erpnext.shopping_cart.cart import _get_cart_quotation, update_cart, get_party from erpnext.tests.utils import create_test_contact_and_address @@ -126,6 +127,8 @@ class TestShoppingCart(unittest.TestCase): "selling_price_list": "_Test Price List Rest of the World", "currency": "USD", "taxes_and_charges" : "_Test Tax 1", + "transaction_date" : nowdate(), + "valid_till" : add_months(nowdate(), 1), "items": [{ "item_code": "_Test Item", "qty": 1 diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 2c6aab52c1..5dc97f623b 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -132,7 +132,8 @@ class Item(WebsiteGenerator): from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry # default warehouse, or Stores - default_warehouse = (frappe.db.get_single_value('Stock Settings', 'default_warehouse') + default_warehouse = (self.default_warehouse + or frappe.db.get_single_value('Stock Settings', 'default_warehouse') or frappe.db.get_value('Warehouse', {'warehouse_name': _('Stores')})) if default_warehouse: @@ -696,7 +697,7 @@ def _msgprint(msg, verbose): if verbose: msgprint(msg, raise_exception=True) else: - raise frappe.ValidationError, msg + raise frappe.ValidationError(msg) def get_last_purchase_details(item_code, doc_name=None, conversion_rate=1.0): diff --git a/erpnext/stock/doctype/manufacturer/manufacturer.js b/erpnext/stock/doctype/manufacturer/manufacturer.js new file mode 100644 index 0000000000..67df1bf4c0 --- /dev/null +++ b/erpnext/stock/doctype/manufacturer/manufacturer.js @@ -0,0 +1,8 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Manufacturer', { + refresh: function(frm) { + + } +}); diff --git a/erpnext/stock/doctype/manufacturer/manufacturer.json b/erpnext/stock/doctype/manufacturer/manufacturer.json index 4e1da10627..5025917836 100644 --- a/erpnext/stock/doctype/manufacturer/manufacturer.json +++ b/erpnext/stock/doctype/manufacturer/manufacturer.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 1, "allow_rename": 1, "autoname": "field:short_name", @@ -13,6 +14,7 @@ "editable_grid": 0, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -43,6 +45,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -72,6 +75,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -101,11 +105,12 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, "columns": 0, - "fieldname": "data_6", + "fieldname": "country", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, @@ -131,6 +136,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -160,6 +166,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -189,18 +196,18 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "icon": "fa fa-certificate", "idx": 0, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-02-20 13:28:13.374242", + "modified": "2017-08-03 06:27:57.182666", "modified_by": "Administrator", "module": "Stock", "name": "Manufacturer", diff --git a/erpnext/stock/doctype/manufacturer/test_manufacturer.js b/erpnext/stock/doctype/manufacturer/test_manufacturer.js new file mode 100644 index 0000000000..0254a367cc --- /dev/null +++ b/erpnext/stock/doctype/manufacturer/test_manufacturer.js @@ -0,0 +1,23 @@ +/* eslint-disable */ +// rename this file from _test_[name] to test_[name] to activate +// and remove above this line + +QUnit.test("test: Manufacturer", function (assert) { + let done = assert.async(); + + // number of asserts + assert.expect(1); + + frappe.run_serially('Manufacturer', [ + // insert a new Manufacturer + () => frappe.tests.make([ + // values to be set + {key: 'value'} + ]), + () => { + assert.equal(cur_frm.doc.key, 'value'); + }, + () => done() + ]); + +}); diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index 33610201b4..fc0b9b2106 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -36,9 +36,14 @@ frappe.ui.form.on("Material Request Item", { 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'); + }, + + schedule_date: function(frm, cdt, cdn) { + erpnext.utils.copy_value_in_all_row(frm.doc, cdt, cdn, "items", "schedule_date"); } }); diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index fdb65cda53..92de229a8c 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -32,7 +32,7 @@ class TestStockEntry(unittest.TestCase): set_perpetual_inventory(0) for role in ("Stock User", "Sales User"): - set_user_permission_doctypes(doctype="Stock Entry", role=role, + set_user_permission_doctypes(doctypes="Stock Entry", role=role, apply_user_permissions=0, user_permission_doctypes=None) def test_fifo(self): @@ -188,18 +188,18 @@ class TestStockEntry(unittest.TestCase): [["_Test Item", "_Test Warehouse - _TC", -45.0], ["_Test Item", "_Test Warehouse 1 - _TC", 45.0]]) stock_in_hand_account = get_inventory_account(mtn.company, mtn.get("items")[0].s_warehouse) - + fixed_asset_account = get_inventory_account(mtn.company, mtn.get("items")[0].t_warehouse) - + if stock_in_hand_account == fixed_asset_account: # no gl entry as both source and target warehouse has linked to same account. self.assertFalse(frappe.db.sql("""select * from `tabGL Entry` where voucher_type='Stock Entry' and voucher_no=%s""", mtn.name)) - + else: stock_value_diff = abs(frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Stock Entry", "voucher_no": mtn.name, "warehouse": "_Test Warehouse - _TC"}, "stock_value_difference")) - + self.check_gl_entries("Stock Entry", mtn.name, sorted([ [stock_in_hand_account, 0.0, stock_value_diff], @@ -467,7 +467,7 @@ class TestStockEntry(unittest.TestCase): # permission tests def test_warehouse_user(self): for role in ("Stock User", "Sales User"): - set_user_permission_doctypes(doctype="Stock Entry", role=role, + set_user_permission_doctypes(doctypes="Stock Entry", role=role, apply_user_permissions=1, user_permission_doctypes=["Warehouse"]) frappe.defaults.add_default("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com", "User Permission") diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 9c425295c5..360ebca11e 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -143,16 +143,16 @@ class StockReconciliation(StockController): # item should not be serialized if item.has_serial_no == 1: - raise frappe.ValidationError, _("Serialized Item {0} cannot be updated using Stock Reconciliation, please use Stock Entry").format(item_code) + raise frappe.ValidationError(_("Serialized Item {0} cannot be updated using Stock Reconciliation, please use Stock Entry").format(item_code)) # item managed batch-wise not allowed if item.has_batch_no == 1: - raise frappe.ValidationError, _("Batched Item {0} cannot be updated using Stock Reconciliation, instead use Stock Entry").format(item_code) + raise frappe.ValidationError(_("Batched Item {0} cannot be updated using Stock Reconciliation, instead use Stock Entry").format(item_code)) # docstatus should be < 2 validate_cancelled_item(item_code, item.docstatus, verbose=0) - except Exception, e: + except Exception as e: self.validation_messages.append(_("Row # ") + ("%d: " % (row_num)) + cstr(e)) def update_stock_ledger(self): diff --git a/erpnext/stock/doctype/warehouse/test_warehouse.js b/erpnext/stock/doctype/warehouse/test_warehouse.js new file mode 100644 index 0000000000..3763613042 --- /dev/null +++ b/erpnext/stock/doctype/warehouse/test_warehouse.js @@ -0,0 +1,19 @@ +QUnit.test("test: warehouse", function (assert) { + assert.expect(0); + let done = assert.async(); + + frappe.run_serially([ + // test warehouse creation + () => frappe.set_route("List", "Warehouse"), + + // Create a Laptop Scrap Warehouse + () => frappe.tests.make( + "Warehouse", [ + {warehouse_name: "Laptop Scrap Warehouse"}, + {company: "Razer Blade"} + ] + ), + + () => done() + ]); +}); diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 80226914f9..7c6b34bd90 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -378,7 +378,7 @@ class update_entries_after(object): if self.verbose: frappe.throw(msg, NegativeStockError, title='Insufficent Stock') else: - raise NegativeStockError, msg + raise NegativeStockError(msg) def get_previous_sle(args, for_update=False): """ diff --git a/erpnext/support/web_form/issues/issues.json b/erpnext/support/web_form/issues/issues.json index 6474799277..264b9dfbc2 100644 --- a/erpnext/support/web_form/issues/issues.json +++ b/erpnext/support/web_form/issues/issues.json @@ -7,16 +7,18 @@ "allow_multiple": 1, "allow_print": 0, "amount": 0.0, - "breadcrumbs": "[{\"title\":\"Issues\", \"name\":\"issues\"}]", + "amount_based_on_field": 0, + "breadcrumbs": "[{\"label\":_(\"Issues\"), \"route\":\"issues\"}]", "creation": "2016-06-24 15:50:33.186483", "doc_type": "Issue", "docstatus": 0, "doctype": "Web Form", "idx": 0, + "introduction_text": "", "is_standard": 1, "login_required": 1, "max_attachment_size": 0, - "modified": "2016-12-07 04:26:13.917693", + "modified": "2017-07-25 22:49:10.762704", "modified_by": "Administrator", "module": "Support", "name": "issues", diff --git a/erpnext/templates/emails/daily_work_summary.html b/erpnext/templates/emails/daily_work_summary.html index 726de3b890..a22e09cb8d 100644 --- a/erpnext/templates/emails/daily_work_summary.html +++ b/erpnext/templates/emails/daily_work_summary.html @@ -1,28 +1,25 @@ -
    -

    {{ title }}

    -
    +

    {{ title }}

    {% for reply in replies %} - +
    @@ -30,13 +27,12 @@
    {% if reply.image %} - + {% else %} -
    +
    {{ reply.sender_name[0] }}
    {% endif %}
    -
    +
    {{ reply.sender_name }}
    - +
    @@ -51,7 +47,7 @@ {% if did_not_reply %}
    -
    +
    {{ reply.content }}
    -
    +

    {{ did_not_reply_title }}: {{ did_not_reply }}

    diff --git a/erpnext/templates/includes/announcement/announcement_row.html b/erpnext/templates/includes/announcement/announcement_row.html index d807bfc530..3099441e34 100644 --- a/erpnext/templates/includes/announcement/announcement_row.html +++ b/erpnext/templates/includes/announcement/announcement_row.html @@ -3,12 +3,12 @@
    -

    {{ doc.subject }}

    +

    {{ doc.subject }}

    {{ doc.description }}

    {{ doc.posted_by }} - {{ frappe.format_date(doc.modified) }} - {{ doc.num_attachments }} attachments + {{ frappe.format_date(doc.modified) }} + {{ doc.num_attachments }} attachments

    diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html index da9eb33c89..3e4eca3a98 100644 --- a/erpnext/templates/pages/order.html +++ b/erpnext/templates/pages/order.html @@ -80,7 +80,7 @@

    Pay {{ doc.get_formatted("grand_total") }} + class="btn btn-primary btn-sm">{{ _("Pay") }} {{ doc.get_formatted("grand_total") }}

    {% endif %} diff --git a/erpnext/templates/pages/order.py b/erpnext/templates/pages/order.py index b453c7e3e7..7551a0f9bb 100644 --- a/erpnext/templates/pages/order.py +++ b/erpnext/templates/pages/order.py @@ -18,6 +18,7 @@ def get_context(context): context.attachments = get_attachments(frappe.form_dict.doctype, frappe.form_dict.name) context.parents = frappe.form_dict.parents + context.title = frappe.form_dict.name context.payment_ref = frappe.db.get_value("Payment Request", {"reference_name": frappe.form_dict.name}, "name") diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt index 84af433815..fb86b7c24b 100644 --- a/erpnext/tests/ui/tests.txt +++ b/erpnext/tests/ui/tests.txt @@ -1,20 +1,55 @@ erpnext/tests/ui/make_fixtures.js #long -erpnext/setup/doctype/company/test_company.js +erpnext/setup/doctype/company/tests/test_company.js erpnext/accounts/doctype/account/test_account.js +erpnext/accounts/doctype/account/test_make_tax_account.js +erpnext/accounts/doctype/pricing_rule/test_pricing_rule.js +erpnext/accounts/doctype/sales_taxes_and_charges_template/test_sales_taxes_and_charges_template.js +erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js erpnext/crm/doctype/lead/test_lead.js erpnext/crm/doctype/opportunity/test_opportunity.js erpnext/selling/doctype/quotation/test_quotation.js +erpnext/setup/doctype/company/tests/test_company_production.js erpnext/crm/doctype/item/test_item.js +erpnext/selling/doctype/sales_order/tests/test_sales_order.js +erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multiple_delivery_date.js +erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js +erpnext/selling/doctype/sales_order/tests/test_sales_order_with_multi_uom.js +erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js +erpnext/selling/doctype/sales_order/tests/test_sales_order_with_taxes_and_charges.js erpnext/manufacturing/doctype/workstation/test_workstation.js erpnext/manufacturing/doctype/operation/test_operation.js erpnext/manufacturing/doctype/bom/test_bom.js +erpnext/projects/doctype/project/project_timesheet.js erpnext/hr/doctype/holiday_list/test_holiday_list.js erpnext/hr/doctype/branch/test_branch.js -erpnext/manufacturing/doctype/bom/test_bom.js -erpnext/projects/doctype/project/project_timesheet.js erpnext/hr/doctype/leave_block_list/test_leave_block_list.js erpnext/hr/doctype/department/test_department.js erpnext/hr/doctype/designation/test_designation.js erpnext/hr/doctype/employment_type/test_employment_type.js erpnext/hr/doctype/employee/test_employee.js -erpnext/selling/doctype/sales_order/test_sales_order.js \ No newline at end of file +erpnext/hr/doctype/employee_attendance_tool/test_employee_attendance_tool.js +erpnext/hr/doctype/attendance/test_attendance.js +erpnext/hr/doctype/leave_type/test_leave_type.js +erpnext/hr/doctype/leave_control_panel/test_leave_control_panel.js +erpnext/hr/doctype/leave_allocation/test_leave_allocation.js +erpnext/hr/doctype/leave_application/test_leave_application.js +erpnext/schools/doctype/academic_year/test_academic_year.js +erpnext/schools/doctype/academic_term/test_academic_term.js +erpnext/schools/doctype/school_settings/test_school_settings.js +erpnext/schools/doctype/student_batch_name/test_student_batch_name.js +erpnext/schools/doctype/student_category/test_student_category.js +erpnext/schools/doctype/room/test_room.js +erpnext/schools/doctype/instructor/test_instructor.js +erpnext/stock/doctype/warehouse/test_warehouse.js +erpnext/manufacturing/doctype/production_order/test_production_order.js +erpnext/accounts/page/pos/test_pos.js +erpnext/selling/doctype/product_bundle/test_product_bundle.js +erpnext/schools/doctype/grading_scale/test_grading_scale.js +erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js +erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js +erpnext/schools/doctype/course/test_course.js +erpnext/schools/doctype/program/test_program.js +erpnext/schools/doctype/guardian/test_guardian.js +erpnext/schools/doctype/student_admission/test_student_admission.js +erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js +erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js \ No newline at end of file