User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
en:extensions:extensions:warehouse [2020/02/28 13:34]
joebordes [Multi Warehouse Enhancements]
en:extensions:extensions:warehouse [2020/02/28 13:41]
joebordes
Line 55: Line 55:
  
 ====Movements==== ====Movements====
-  * When you want to do a purchase for you warehouse, you have to go to Inventory -> Stock Movement and create a new movement.+  * When you want to do a purchase for your warehouse, you have to go to Inventory -> Stock Movement and create a new movement.
 {{temporaryhold:​mwh:​img1.png|}} ​ {{temporaryhold:​mwh:​img1.png|}} ​
-  *  ​After you have to select the source warehouse, that in this case is Purchase, select destination warehouse, for example WH00001 and finally select the product and units that you have bought.+  *  ​There, ​you have to select the source warehouse, that in this case is Purchase, select destination warehouse, for exampleWH00001 and finally select the product and units that you have bought.
  
-  * And if you want to do a sale from you warehouse WH00001, you have to select the source warehouse, WH00001, and then the Sales warehouse as destination.+  * And if you want to do a sale from your warehouse WH00001, you have to select the source warehouse, WH00001, and then the Sales warehouse as the destination.
   * If you have more warehouses, you can do movements between them selecting the source and destination warehouse accordingly   * If you have more warehouses, you can do movements between them selecting the source and destination warehouse accordingly
  
 ====Workflows:​==== ====Workflows:​====
  
-We have created three workflows to help control the stock when working with PO and Invoice (SO). The first two are relate ​to the normal work sequence in vtiger CRM while the third to handle returns.+We have created three workflows to help control the stock when working with PO and Invoice (SO). The first two are related ​to the normal work sequence in coreBOS ​while the third is to handle returns.
  
-As normal, to configure workflows you have to go to Settings->​Workflows,​ where we have already added the new workflows related to the entities so you just have to configure them depending on your business model conditions.+As normal, to configure workflows you have to go to Settings->​Workflows,​ where we have already added the new workflows related to the entitiesso you just have to configure them depending on your business model conditions.
  
 {{temporaryhold:​mwh:​img2.png|}} ​ {{temporaryhold:​mwh:​img2.png|}} ​
  
 === Decrement Stock === === Decrement Stock ===
-This is when you make a sale through an Invoice or Sales Order. You have to edit the first worflow ​(module -> Invoice , description -> UpdateInventoryProducts On Every Save), then edit the Task and change the UpdateInventory function to mwDecrementStock.+ 
 +This is when you make a sale through an Invoice or Sales Order. You have to edit the first workflow ​(module -> Invoice , description -> UpdateInventoryProducts On Every Save), then edit the Task and change the UpdateInventory function to mwDecrementStock.
  
 {{temporaryhold:​mwh:​img3.png|}} ​ {{temporaryhold:​mwh:​img3.png|}} ​
  
 === Increment Stock=== === Increment Stock===
-This is when you buy products on a Purchase Order. You have to create new workflow with Purchase Order module and create new task selecting Invoke Custom Function. In this task you have to select the mwIncrementStock.+ 
 +This is when you buy products on a Purchase Order. You have to create ​new workflow with the Purchase Order module and create ​new task selecting Invoke Custom Function. In this taskyou have to select the mwIncrementStock.
  
 {{temporaryhold:​mwh:​img4.png|}} ​ {{temporaryhold:​mwh:​img4.png|}} ​
  
 === Return Stock === === Return Stock ===
 +
 You return stock when you cancel an Invoice (Sales Order) or return products to your vendor. Normally you would create new workflows with a condition depending on some status field on the record. The mwReturnStock custom function knows when it is returning a Sale or a Purchase so we use the same custom function for both. You return stock when you cancel an Invoice (Sales Order) or return products to your vendor. Normally you would create new workflows with a condition depending on some status field on the record. The mwReturnStock custom function knows when it is returning a Sale or a Purchase so we use the same custom function for both.
 +
 ====Notes:​==== ====Notes:​====
  
Line 92: Line 96:
 ===== How to import Products and initialize stock. ===== ===== How to import Products and initialize stock. =====
  
-If we have products to import and we want to initialize the stock , we have to follow the next steps.+If we have products to import and we want to initialize the stock, we have to follow the next steps.
  
-  * First we have to import ​ us csv with products to Products module. ​Here you can read the next tutorial to import in vtiger: ​ https://​wiki.vtiger.com/​index.php/​Export_Import_Enhancements +  * First we have to import ​a CSV with products to the Products module. 
- +  * Now we have all our products imported and we want to initialize the stock and first movement from the virtual Purchase warehouse to our warehouse. 
-  *  Now we have all us products imported and we want to initialize the stock and first movement from virtual Purchase warehouse to us warehouse. +  *  If you have created a new warehouse, you can export the products that you need to initialize from the Products Module. We need the CSV that coreBOS generates ​to obtain the product number in the applicationSomething ​like this: <code>​Products::::​PRO27</​code>​ 
- +   ​*  Now we can edit this CSV and add or delete ​columns we need to import Movements to coreBOS. We have to obtain a CSV like this:
-  *  If you have created a new warehouse , you can export the products that you need to initialize from de Products Module. We need the csv that generate vtiger , to obtain the product number in vtigerSome like this - Products::::​PRO27 +
-  +
-  ​*  Now we can edit this csv and add or deleted ​columns we need to import Movements to vtiger. We have to obtain a csv like this:+
  {{ :​temporaryhold:​mwh:​movements_example.png?​600 |}}  {{ :​temporaryhold:​mwh:​movements_example.png?​600 |}}
- +  ​*  After importing these movements we can see that we have new stock registers.
-  ​*  After import this movements we can see that we have new stock registers.+
  
 ====Questions and Answers:​==== ====Questions and Answers:​====
Line 115: Line 115:
 Para poder ver todos los movimientos que representan el stock actual deberías poder hacer un informe o filtro en un almacén y un producto. Esos movimientos son los que representan el stock actual en el almacén. Para poder ver todos los movimientos que representan el stock actual deberías poder hacer un informe o filtro en un almacén y un producto. Esos movimientos son los que representan el stock actual en el almacén.
  
-??? The concept/​menu item stock, I’m afraid that I don’t how/​why ​its used? +??? The concept/​menu item "stock", I’m afraid that I don’t ​know how/​why ​it'​s ​used? 
-!!! As can be read above, the stock module is to make reporting and filtering on stock easy, it is automatically filled in when a movement is created. The movement will automatically create/​update the stock records in the stock module so there is no need to do anything there. It is just for reporting. We could have saved that information internally and then invented some way for you to filter and report on the stock but we figured that adding the information to a normal ​vtiger CRM module would consume the same database space (more or less) and we wouldn'​t have to invent anything, all vtiger CRM users would already know how to report and filter on the information there.+!!! As can be read above, the stock module is to make reporting and filtering on stock easy. It is automatically filled in when a movement is created. The movement will automatically create/​update the stock records in the stock moduleso there is no need to do anything there. It is just for reporting. We could have saved that information internally and then invented some way for you to filter and report on the stock but we figured that adding the information to a normal module would consume the same database space (more or less) and we wouldn'​t have to invent anything, all users would already know how to report and filter on the information there.