Fixed merge conflict
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index d018c4f..4c87187 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
import frappe
-__version__ = '7.1.2'
+__version__ = '7.1.3'
def get_default_company(user=None):
'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 1c9bcbc..22de07f 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -305,25 +305,8 @@
if not self.grand_total:
return
- self.auto_accounting_for_stock = \
- cint(frappe.defaults.get_global_default("auto_accounting_for_stock"))
-
- self.stock_received_but_not_billed = self.get_company_default("stock_received_but_not_billed")
- self.expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
- self.negative_expense_to_be_booked = 0.0
- gl_entries = []
-
-
- self.make_supplier_gl_entry(gl_entries)
- self.make_item_gl_entries(gl_entries)
- self.make_tax_gl_entries(gl_entries)
-
- gl_entries = merge_similar_entries(gl_entries)
-
- self.make_payment_gl_entries(gl_entries)
-
- self.make_write_off_gl_entry(gl_entries)
-
+ gl_entries = self.get_gl_entries()
+
if gl_entries:
update_outstanding = "No" if (cint(self.is_paid) or self.write_off_account) else "Yes"
@@ -342,6 +325,26 @@
elif self.docstatus == 2 and cint(self.update_stock) and self.auto_accounting_for_stock:
delete_gl_entries(voucher_type=self.doctype, voucher_no=self.name)
+ def get_gl_entries(self, warehouse_account=None):
+ self.auto_accounting_for_stock = \
+ cint(frappe.defaults.get_global_default("auto_accounting_for_stock"))
+
+ self.stock_received_but_not_billed = self.get_company_default("stock_received_but_not_billed")
+ self.expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
+ self.negative_expense_to_be_booked = 0.0
+ gl_entries = []
+
+
+ self.make_supplier_gl_entry(gl_entries)
+ self.make_item_gl_entries(gl_entries)
+ self.make_tax_gl_entries(gl_entries)
+
+ gl_entries = merge_similar_entries(gl_entries)
+
+ self.make_payment_gl_entries(gl_entries)
+ self.make_write_off_gl_entry(gl_entries)
+
+ return gl_entries
def make_supplier_gl_entry(self, gl_entries):
if self.grand_total:
diff --git a/erpnext/docs/assets/img/accounts/change-amount.png b/erpnext/docs/assets/img/accounts/change-amount.png
new file mode 100644
index 0000000..33f9c88
--- /dev/null
+++ b/erpnext/docs/assets/img/accounts/change-amount.png
Binary files differ
diff --git a/erpnext/docs/assets/img/accounts/offline-records.png b/erpnext/docs/assets/img/accounts/offline-records.png
new file mode 100644
index 0000000..78bb730
--- /dev/null
+++ b/erpnext/docs/assets/img/accounts/offline-records.png
Binary files differ
diff --git a/erpnext/docs/assets/img/accounts/pos-item.png b/erpnext/docs/assets/img/accounts/pos-item.png
index fb6c1f8..321e8dc 100644
--- a/erpnext/docs/assets/img/accounts/pos-item.png
+++ b/erpnext/docs/assets/img/accounts/pos-item.png
Binary files differ
diff --git a/erpnext/docs/assets/img/accounts/pos-payment.png b/erpnext/docs/assets/img/accounts/pos-payment.png
index 0a0d37f..187e82c 100644
--- a/erpnext/docs/assets/img/accounts/pos-payment.png
+++ b/erpnext/docs/assets/img/accounts/pos-payment.png
Binary files differ
diff --git a/erpnext/docs/assets/img/accounts/write-off.png b/erpnext/docs/assets/img/accounts/write-off.png
new file mode 100644
index 0000000..c6896ea
--- /dev/null
+++ b/erpnext/docs/assets/img/accounts/write-off.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/price-list.png b/erpnext/docs/assets/img/articles/price-list.png
new file mode 100644
index 0000000..a6982f9
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/price-list.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/pricing-rule-invoice.png b/erpnext/docs/assets/img/articles/pricing-rule-invoice.png
new file mode 100644
index 0000000..79d7fa7
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/pricing-rule-invoice.png
Binary files differ
diff --git a/erpnext/docs/assets/img/articles/pricing-rule-margin.png b/erpnext/docs/assets/img/articles/pricing-rule-margin.png
new file mode 100644
index 0000000..66f6050
--- /dev/null
+++ b/erpnext/docs/assets/img/articles/pricing-rule-margin.png
Binary files differ
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 6a697b1..64fa22c 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
@@ -69,6 +69,25 @@
Submit the document to finalise the record. After the document is submitted,
you can either print or email it directly to the customer.
+### Write off Amount
+
+Outstanding amount can be write off from the POS, user has to enter the amount under write off field on the payment screen.
+
+<img class="screenshot" alt="POS Payment" src="{{docs_base_url}}/assets/img/accounts/write-off.png">
+
+System books the write off amount into the ledger which has selected on the POS Profile.
+
+### Change Amount
+
+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.
+
+<img class="screenshot" alt="POS Payment" src="{{docs_base_url}}/assets/img/accounts/change-amount.png">
+
+### 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
+
+<img class="screenshot" alt="POS Payment" src="{{docs_base_url}}/assets/img/accounts/offline-records.png">
+
#### Accounting entries (GL Entry) for a Point of Sale:
Debits:
@@ -82,6 +101,7 @@
* Taxes (liabilities to be paid to the government)
* Customer (payment)
* Write Off (optional)
+ * Account for Change Amount (optional)
To see entries after “Submit”, click on “View Ledger”.
diff --git a/erpnext/docs/user/manual/en/accounts/pricing-rule.md b/erpnext/docs/user/manual/en/accounts/pricing-rule.md
index 7afcbea..bd3c51a 100644
--- a/erpnext/docs/user/manual/en/accounts/pricing-rule.md
+++ b/erpnext/docs/user/manual/en/accounts/pricing-rule.md
@@ -79,4 +79,31 @@
<img alt="Disable" class="screenshot" src="{{docs_base_url}}/assets/img/articles/pricing-rule-disable.png">
+### Add Margin
+
+Using pricing rule user can add margin on the sales transactions
+
+For example : User want to add 10% margin on the supplier price list at the time of sales
+
+####1. Make Price List
+
+Create price list for supllier and create item price against the price list.
+
+<img alt="Disable" class="screenshot" src="{{docs_base_url}}/assets/img/articles/price-list.png">
+
+
+####2. Make Pricing Rule
+
+Create pricing rule for the item against which supplier rate has created
+
+<img alt="Disable" class="screenshot" src="{{docs_base_url}}/assets/img/articles/pricing-rule-margin.png">
+
+####2. Make Invoice
+
+System apply the margin rate on the item price on selection of an item.
+
+<img alt="Disable" class="screenshot" src="{{docs_base_url}}/assets/img/articles/pricing-rule-invoice.png">
+
+For more details about pricing rule [Click Here]({{docs_base_url}}/user/manual/en/selling/articles/adding-margin.html)
+
<!-- markdown -->
\ No newline at end of file
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 2a9ddfa..2b2fb09 100644
--- a/erpnext/docs/user/manual/en/selling/articles/adding-margin.md
+++ b/erpnext/docs/user/manual/en/selling/articles/adding-margin.md
@@ -9,7 +9,7 @@
####Adding Margin in Pricing Rule
-<img alt="Adding Margin in Pricing Rule" class="screenshot" src="{{docs_base_url}}/assets/img/articles/margin-pricing-rule.png">
+<img alt="Adding Margin in Pricing Rule" class="screenshot" src="{{docs_base_url}}/assets/img/selling/margin-pricing-rule.png">
Total Margin is calculated as follows:
`Rate = Price List Rate + Margin Rate`
@@ -22,7 +22,7 @@
####Adding Item Price
-<img alt="Adding Margin in Pricing Rule" class="screenshot" src="{{docs_base_url}}/assets/img/articles/margin-item-price-list.png">
+<img alt="Adding Margin in Pricing Rule" class="screenshot" src="{{docs_base_url}}/assets/img/selling/margin-item-price-list.png">
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 +34,4 @@
####Adding Margin in Quotation
-<img alt="Adding Margin in Quotation" class="screenshot" src="{{docs_base_url}}/assets/img/articles/margin-quotation-item.png">
+<img alt="Adding Margin in Quotation" class="screenshot" src="{{docs_base_url}}/assets/img/selling/margin-quotation-item.png">
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index e7c9e7c..6659221 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -342,4 +342,5 @@
erpnext.patches.v7_1.set_prefered_contact_email
execute:frappe.db.sql("update `tabSingles` set value = 1 where field = 'unlink_payment_on_cancellation_of_invoice' and doctype = 'Accounts Settings'")
execute:frappe.db.sql("update `tabStock Entry` set total_amount = null where purpose in('Repack', 'Manufacture')")
-erpnext.patches.v7_1.save_stock_settings
\ No newline at end of file
+erpnext.patches.v7_1.save_stock_settings
+erpnext.patches.v7_1.repost_gle_for_pi_with_update_stock
diff --git a/erpnext/patches/v7_1/repost_gle_for_pi_with_update_stock.py b/erpnext/patches/v7_1/repost_gle_for_pi_with_update_stock.py
new file mode 100644
index 0000000..2355d53
--- /dev/null
+++ b/erpnext/patches/v7_1/repost_gle_for_pi_with_update_stock.py
@@ -0,0 +1,16 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import cint
+
+def execute():
+ if not cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
+ return
+
+ for pi in frappe.db.sql("""select name from `tabPurchase Invoice`
+ where update_stock=1 and docstatus=1 order by posting_date asc""", as_dict=1):
+ pi_doc = frappe.get_doc("Purchase Invoice", pi.name)
+ pi_doc.make_gl_entries()
+ frappe.db.commit()
\ No newline at end of file