{next}
diff --git a/erpnext/docs/user/manual/de/buying/purchase-order.md b/erpnext/docs/user/manual/de/buying/purchase-order.md
index 11b414c6a2e..7c72d1e1085 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
-
+
In ERPNext können Sie einen Lieferantenauftrag auch direkt erstellen über:
diff --git a/erpnext/docs/user/manual/de/buying/supplier-quotation.md b/erpnext/docs/user/manual/de/buying/supplier-quotation.md
index 1aec1035608..93db6a7d6cb 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
-
+
Sie können ein Lieferantenangebot auch direkt erstellen über:
diff --git a/erpnext/docs/user/manual/de/customer-portal/issues.md b/erpnext/docs/user/manual/de/customer-portal/issues.md
index 9650ccacc3b..8f0c7d3b22a 100644
--- a/erpnext/docs/user/manual/de/customer-portal/issues.md
+++ b/erpnext/docs/user/manual/de/customer-portal/issues.md
@@ -5,18 +5,17 @@ Kunden können über das Kundenportal sehr einfach Fälle eröffnen. Eine einfac
### Ticketliste leeren
-
-
+
### Neuer Fall
-
+
### Fall öffnen
-
+
### Fall beantworten
-
+
{next}
diff --git a/erpnext/docs/user/manual/de/selling/sales-order.md b/erpnext/docs/user/manual/de/selling/sales-order.md
index bd9ddc47ee7..187aeab37e6 100644
--- a/erpnext/docs/user/manual/de/selling/sales-order.md
+++ b/erpnext/docs/user/manual/de/selling/sales-order.md
@@ -9,11 +9,9 @@ Wenn Ihr Kunde das Angebot annimmt, können Sie das Angebot in einen Kundenauftr
### Flußdiagramm des Kundenauftrags
-
+
-Um einen neuen Kundenauftrag zu erstellen gehen Sie zu:
-
-> Vertrieb > Kundenauftrag > Neuer Kundenauftrag
+Um einen neuen Kundenauftrag zu erstellen gehen Sie zu: > Vertrieb > Kundenauftrag > Neuer Kundenauftrag
### Einen Kundenauftrag aus einem Angebot erstellen
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 7cbf0d8dcab..66a95a0593b 100644
--- a/erpnext/docs/user/manual/de/selling/setup/sales-partner.md
+++ b/erpnext/docs/user/manual/de/selling/setup/sales-partner.md
@@ -27,10 +27,7 @@ Um eine Übersicht Ihrer Partner zu erhalten, gehen Sie zu:
https://example.erpnext.com/Partners
-
+
-Im Folgenden sehen Sie, wie die vollständigen Daten Ihres Partners auf der Webseite angezeigt werden.
-
-
{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 327e8e8b822..1bcc058ae75 100644
--- a/erpnext/docs/user/manual/de/setting-up/sms-setting.md
+++ b/erpnext/docs/user/manual/de/setting-up/sms-setting.md
@@ -10,8 +10,8 @@ Beispiel-URL:
http://instant.smses.com/web2sms.php?username=
-
> Anmerkung: Die Zeichenfolge bis zum "?" ist die URL des SMS-Gateways.
@@ -23,6 +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.
-
+
+
{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 6d101bcc60b..6d8108a87c1 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
@@ -51,7 +51,7 @@ Der Urlaubsantrag ist ein gutes **Beispiel**, welches alle Bereiche des Berechti
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.)
-
+
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.
diff --git a/erpnext/docs/user/manual/de/stock/material-request.md b/erpnext/docs/user/manual/de/stock/material-request.md
index 0f55b1ec4df..5a47b13e4e2 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.
-
+
Um eine Materialanfrage manuell zu erstellen, gehen Sie bitte zu:
diff --git a/erpnext/docs/user/manual/de/stock/projected-quantity.md b/erpnext/docs/user/manual/de/stock/projected-quantity.md
index 8cea6cfb0f6..2b3d9e7d190 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.
-
+
> Projizierte Menge = Momentan vorhandene Menge + Geplante Menge + Angefragte Menge + Bestellte Menge - Reservierte Menge
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 007f44514b9..505c4fbf7ae 100644
--- a/erpnext/docs/user/manual/en/CRM/setup/customer-group.md
+++ b/erpnext/docs/user/manual/en/CRM/setup/customer-group.md
@@ -9,6 +9,6 @@ based on your domain).
Customer Group”. But all this effort, will pay off when you start getting
reports. An example of a sample report is given below:
-
+
{next}
\ No newline at end of file
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 0c7e591c33d..78d2226361f 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
@@ -47,9 +47,14 @@ quantity box. These are mostly used if the same Item is purchased in bulk.
If your product list is very long use the Search field, type the product name
in Search box.
-### Removing an Item
+### Removing an Item from the Cart
-Set Qty as zero to remove Item from the POS invoice. There are two ways to remove an Item.
+1. Select row in the cart and clik on delete button in the numeric keypad
+
+
+
+
+2. Set Qty as zero to remove Item from the POS invoice. There are two ways to remove an Item.
* If Item's Qty is 1, click on a minus sign to make it zero.
diff --git a/erpnext/docs/user/manual/en/buying/purchase-taxes.md b/erpnext/docs/user/manual/en/buying/purchase-taxes.md
index 871ff960812..f3be64dddbd 100644
--- a/erpnext/docs/user/manual/en/buying/purchase-taxes.md
+++ b/erpnext/docs/user/manual/en/buying/purchase-taxes.md
@@ -8,9 +8,8 @@ Orders and Purchase Invoices.
> Buying > Setup > Purchase Taxes and Charges Template > New Purchase Taxes and Charges
Master
-
+
-
You can specify if the tax / charge is only for valuation (not a part of
total) or only for total (does not add value to the item) or for both.
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 257370ea3fa..a5e277df4a0 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,10 +1,11 @@
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.
-
+Once an order is raised, either using the Shopping Cart or from within
+ERPNext, your customer can view the order and keep an eye on the billing and
+shipment status. When the invoice and payment against these orders are
+submitted, the customer can see the updated status on the portal, at a glance.
-Once an order is raised, either using the Shopping Cart or from within ERPNext, your customer can view the order and keep an eye on the billing and shipment status. When the invoice and payment against these orders are submitted, the customer can see the updated status on the portal, at a glance.
-
-
+
#### New Issue
-
+
#### Open Issue
-
+
#### Reply on Issue
-
+
{next}
diff --git a/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md b/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md
new file mode 100644
index 00000000000..ccfa63a93af
--- /dev/null
+++ b/erpnext/docs/user/manual/en/customize-erpnext/kanban-board.md
@@ -0,0 +1,42 @@
+#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.
+
+In ERPNext Kanban board can be an alternative for the list views. It helps you in visualizing various documents (like Task, Projects, Quotatio etc.) based on some status on a virtual board. Also, you can easily update card status by dragging and dropping to required status column. Kanban Board helps to visualize, control and optimize workflow and collaborate in real-time with the entire team.
+
+###Create new Kanban Board
+
+To create a Kanban board in ERPNext click the Kanban dropdown on the sidebar, and select 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.
+
+
+
+###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.
+
+
+
+###Manage Columns
+
+To add more columns in the Kanban board click Add columns.
+
+
+
+To move columns based on the priority drag and drop the columns as per requirement.
+
+
+
+To set Colors to a Card click drop down menu on the card and assign color to it.
+
+
+
+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.
+
+
+
diff --git a/erpnext/docs/user/manual/en/manufacturing/subcontracting.md b/erpnext/docs/user/manual/en/manufacturing/subcontracting.md
index 9252171a243..1589d1b7f07 100644
--- a/erpnext/docs/user/manual/en/manufacturing/subcontracting.md
+++ b/erpnext/docs/user/manual/en/manufacturing/subcontracting.md
@@ -15,8 +15,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”.
-
-
+
__Step 1:__ Make a Bill of Materials for the processed Item, with the unprocessed
@@ -24,13 +23,21 @@ 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.
+
+
__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.
+
+
__Step 3:__ Make a Stock Entry to deliver the raw material Items to your Supplier.
+
+
__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.
+
+
> 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/selling/articles/Selling-in-different-UOM.md b/erpnext/docs/user/manual/en/selling/articles/Selling-in-different-UOM.md
new file mode 100644
index 00000000000..1efed7592fd
--- /dev/null
+++ b/erpnext/docs/user/manual/en/selling/articles/Selling-in-different-UOM.md
@@ -0,0 +1,29 @@
+#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.
+
+For example an Item Pen is stocked in Nos, but sold in Box. Hence we will make Sales Order for Pen in Box.
+
+###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.
+
+
+
+
+###Setp 2: In the Sale Order, you will find two UoM fields
+
+-UoM
+-Stock UoM
+
+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.
+
+
+
+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.
+
+
+###Stock Ledger Posting
+
+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.
+
+
diff --git a/erpnext/docs/user/manual/en/selling/sales-order.md b/erpnext/docs/user/manual/en/selling/sales-order.md
index bcd9c935711..99b9a85c252 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
-
+
To create a new Sales Order go to:
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 b877e8dd558..92b41fb185c 100644
--- a/erpnext/docs/user/manual/en/selling/setup/item-price.md
+++ b/erpnext/docs/user/manual/en/selling/setup/item-price.md
@@ -14,7 +14,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.
-
++
On selection of Price List, its currency and for selling or buying property will be fetched as well.
@@ -24,13 +24,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.
-
++
Step 3: Enter Rate
Enter selling/buying rate of an item in Price List currency.
-
++
Step 4: Save Item Price
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 b8762056fb7..728218fc908 100644
--- a/erpnext/docs/user/manual/en/selling/setup/sales-partner.md
+++ b/erpnext/docs/user/manual/en/selling/setup/sales-partner.md
@@ -25,10 +25,7 @@ To see listing of partner, you should go to:
https://example.erpnext.com/partners
-
+
-Following is the complete partners details published on the website.
-
-
{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 75b7561a6e2..08bbd782364 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
@@ -12,7 +12,7 @@ To allocate target, you should open specific Sales Person master.
In the Sales Person master, you will find table called Sales Person Target.
-
+
In this table, you should select Item Group, Fiscal Year, Target Qty and Amount.
@@ -22,7 +22,8 @@ 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).
-
+
+
####Report - Sales Person Target Variance Item Groupwise
@@ -32,7 +33,8 @@ 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.
-
+
+
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.
@@ -48,7 +50,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.
-
+
####2.2 Allocating Target
@@ -62,7 +64,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.
-
+
---
@@ -74,7 +76,7 @@ To create new Monthly Distriibution, go to:
`Accounts > Monthly Distributon`
-
+
You can link Monthly Distribution while allocating targets in Sales Person as well as in Territory master.
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 563568acdce..a5dd9399a2b 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
@@ -32,18 +32,25 @@ in the data below the column headings.
-Then export your template or save it as a **Comma Separated Values** (CSV)
-file.
+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
-### 3\. Upload the .csv File
+### Download in Excel
-Finally attach the .csv file in the section. Click on the "Upload and Import"
+
+
+### 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.
+
+
+
#### Notes:
1. Make sure that if your application allows, use encoding as UTF-8.
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 4871ed1a957..7c666924cdd 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,8 @@ Example URL:
http://instant.smses.com/web2sms.php?username=
+
> Note: the string up to the "?" is the SMS Gateway URL
@@ -35,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.
-
+
{next}
diff --git a/erpnext/docs/user/manual/en/stock/item/index.md b/erpnext/docs/user/manual/en/stock/item/index.md
index b3b72790126..b8b5fd660ca 100644
--- a/erpnext/docs/user/manual/en/stock/item/index.md
+++ b/erpnext/docs/user/manual/en/stock/item/index.md
@@ -52,7 +52,7 @@ Inspection Criteria: If a Quality Inspection is prepared for this Item, then thi
### Purchase Details
-
+
* **Lead time days:** Lead time days are the number of days required for the Item to reach the warehouse.
@@ -80,9 +80,11 @@ Inspection Criteria: If a Quality Inspection is prepared for this Item, then thi
* **Customer Codes:** Track Item Code assigned by the Customers for this Item. This will help you in searching item while creating Sales Order based on the Item Code in the Customer's Purchase Order.
+
+
### Manufacturing And Website
-
+
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.
diff --git a/erpnext/docs/user/manual/en/stock/material-request.md b/erpnext/docs/user/manual/en/stock/material-request.md
index d707dd70106..8e4caea23ef 100644
--- a/erpnext/docs/user/manual/en/stock/material-request.md
+++ b/erpnext/docs/user/manual/en/stock/material-request.md
@@ -1,7 +1,7 @@
A Material Request is a simple document identifying a requirement of a set of
Items (products or services) for a particular reason.
-
+
To generate a Material Request manually go to:
diff --git a/erpnext/docs/user/manual/en/stock/projected-quantity.md b/erpnext/docs/user/manual/en/stock/projected-quantity.md
index d38bfc9fffe..0e7b7427688 100644
--- a/erpnext/docs/user/manual/en/stock/projected-quantity.md
+++ b/erpnext/docs/user/manual/en/stock/projected-quantity.md
@@ -11,7 +11,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 Qty = Actual Qty + Planned Qty + Requested Qty + Ordered Qty -
diff --git a/erpnext/docs/user/manual/en/website/shopping-cart.md b/erpnext/docs/user/manual/en/website/shopping-cart.md
index 7b10037dc86..6103e3c70f2 100644
--- a/erpnext/docs/user/manual/en/website/shopping-cart.md
+++ b/erpnext/docs/user/manual/en/website/shopping-cart.md
@@ -39,7 +39,7 @@ Click on "Add to Cart" to add item to shopping cart.
#### Goto Checkout
-Click on "Goto Cart" to checkout or on "Cart" which is on upper right side
+Click on "Go to Cart" to checkout or on "Cart" which is on upper right side
of the screen.
diff --git a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.json b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.json
index f2090b731a5..c563b87686d 100644
--- a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.json
+++ b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.json
@@ -8,7 +8,7 @@
"idx": 0,
"is_standard": "Yes",
"letter_head": "",
- "modified": "2017-02-24 19:56:30.215599",
+ "modified": "2017-06-23 04:46:43.209008",
"modified_by": "Administrator",
"module": "Manufacturing",
"name": "BOM Stock Report",
@@ -16,7 +16,7 @@
"query": "SELECT \n\tbom_item.item_code as \"Item:Link/Item:200\",\n\tbom_item.description as \"Description:Data:300\",\n\tbom_item.qty as \"Required Qty:Float:100\",\n\tledger.actual_qty as \"In Stock Qty:Float:100\",\n\tFLOOR(ledger.actual_qty /bom_item.qty) as \"Enough Parts to Build:Int:100\"\nFROM\n\t`tabBOM Item` AS bom_item \n\tLEFT JOIN `tabBin` AS ledger\t\n\t\tON bom_item.item_code = ledger.item_code \n\t\tAND ledger.warehouse = %(warehouse)s\nWHERE\n\tbom_item.parent=%(bom)s\n\nGROUP BY bom_item.item_code",
"ref_doctype": "BOM",
"report_name": "BOM Stock Report",
- "report_type": "Query Report",
+ "report_type": "Script Report",
"roles": [
{
"role": "Manufacturing Manager"
diff --git a/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py
new file mode 100644
index 00000000000..343cfe9da8f
--- /dev/null
+++ b/erpnext/manufacturing/report/bom_stock_report/bom_stock_report.py
@@ -0,0 +1,57 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+
+def execute(filters=None):
+ if not filters: filters = {}
+ columns = get_columns()
+ data = get_bom_stock(filters)
+ return columns, data
+
+def get_columns():
+ """return columns"""
+ columns = [
+ _("Item") + ":Link/Item:150",
+ _("Description") + "::500",
+ _("Required Qty") + ":Float:100",
+ _("In Stock Qty") + ":Float:100",
+ _("Enough Parts to Build") + ":Float:200",
+ ]
+
+ return columns
+
+def get_bom_stock(filters):
+ conditions = ""
+ bom = filters.get("bom")
+
+ if filters.get("warehouse"):
+ warehouse_details = frappe.db.get_value("Warehouse", filters.get("warehouse"), ["lft", "rgt"], as_dict=1)
+ if warehouse_details:
+ conditions += " and exists (select name from `tabWarehouse` wh \
+ where wh.lft >= %s and wh.rgt <= %s and ledger.warehouse = wh.name)" % (warehouse_details.lft,
+ warehouse_details.rgt)
+ else:
+ conditions += " and ledger.warehouse = '%s'" % frappe.db.escape(filters.get("warehouse"))
+
+ else:
+ conditions += ""
+
+ return frappe.db.sql("""
+ SELECT
+ bom_item.item_code ,
+ bom_item.description ,
+ bom_item.qty,
+ sum(ledger.actual_qty) as actual_qty,
+ sum(FLOOR(ledger.actual_qty /bom_item.qty))as to_build
+ FROM
+ `tabBOM Item` AS bom_item
+ LEFT JOIN `tabBin` AS ledger
+ ON bom_item.item_code = ledger.item_code
+ %s
+ WHERE
+ bom_item.parent = '%s'
+
+ GROUP BY bom_item.item_code""" % (conditions, bom))
diff --git a/erpnext/patches/v7_2/contact_address_links.py b/erpnext/patches/v7_2/contact_address_links.py
index 5375d818c6f..07d9341f247 100644
--- a/erpnext/patches/v7_2/contact_address_links.py
+++ b/erpnext/patches/v7_2/contact_address_links.py
@@ -5,7 +5,7 @@ from frappe.utils import update_progress_bar
def execute():
frappe.reload_doc('core', 'doctype', 'dynamic_link')
frappe.reload_doc('email', 'doctype', 'contact')
- frappe.reload_doc('geo', 'doctype', 'address')
+ frappe.reload_doc('contact', 'doctype', 'address')
map_fields = (
('Customer', 'customer'),
('Supplier', 'supplier'),
diff --git a/erpnext/patches/v8_0/create_domain_docs.py b/erpnext/patches/v8_0/create_domain_docs.py
index 2f376db3d72..cdd3117f76d 100644
--- a/erpnext/patches/v8_0/create_domain_docs.py
+++ b/erpnext/patches/v8_0/create_domain_docs.py
@@ -21,7 +21,7 @@ def execute():
condition = ""
company = erpnext.get_default_company()
if company:
- condition = " and name='{0}'".format(company)
+ condition = " and name='{0}'".format(frappe.db.escape(company))
domains = frappe.db.sql_list("select distinct domain from `tabCompany` where domain != 'Other' {0}".format(condition))
diff --git a/erpnext/patches/v8_0/move_perpetual_inventory_setting.py b/erpnext/patches/v8_0/move_perpetual_inventory_setting.py
index 594a15c5000..78322d4575e 100644
--- a/erpnext/patches/v8_0/move_perpetual_inventory_setting.py
+++ b/erpnext/patches/v8_0/move_perpetual_inventory_setting.py
@@ -10,4 +10,4 @@ def execute():
for data in frappe.get_all('Company', fields = ["name"]):
doc = frappe.get_doc('Company', data.name)
doc.enable_perpetual_inventory = enabled
- doc.save(ignore_permissions=True)
\ No newline at end of file
+ doc.db_update()
\ No newline at end of file
diff --git a/erpnext/patches/v8_0/save_system_settings.py b/erpnext/patches/v8_0/save_system_settings.py
index d91e4c12093..d479ece8a69 100644
--- a/erpnext/patches/v8_0/save_system_settings.py
+++ b/erpnext/patches/v8_0/save_system_settings.py
@@ -3,6 +3,7 @@
from __future__ import unicode_literals
import frappe
+from frappe.utils import cint
def execute():
"""
@@ -10,6 +11,10 @@ def execute():
"""
frappe.reload_doc("core", "doctype", "system_settings")
- doc = frappe.get_doc("System Settings", "System Settings")
+ doc = frappe.get_doc("System Settings")
doc.flags.ignore_mandatory = True
+
+ if cint(doc.currency_precision) == 0:
+ doc.currency_precision = ''
+
doc.save(ignore_permissions=True)
diff --git a/erpnext/public/js/pos/pos_selected_item.html b/erpnext/public/js/pos/pos_selected_item.html
index 64f8c165229..0ed6c71fcc2 100644
--- a/erpnext/public/js/pos/pos_selected_item.html
+++ b/erpnext/public/js/pos/pos_selected_item.html
@@ -1,4 +1,4 @@
-