[jira] [Commented] (OFBIZ-10577) New Feature: Inventory Cycle Count

2020-01-08 Thread Yashwant Dhakad (Jira)


[ 
https://issues.apache.org/jira/browse/OFBIZ-10577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17010797#comment-17010797
 ] 

Yashwant Dhakad commented on OFBIZ-10577:
-

Sure, Pierre, I will update this field and end of this week I will add a patch 
for this new feature.

> New Feature: Inventory Cycle Count
> --
>
> Key: OFBIZ-10577
> URL: https://issues.apache.org/jira/browse/OFBIZ-10577
> Project: OFBiz
>  Issue Type: New Feature
>  Components: hhfacility
>Affects Versions: Trunk
>Reporter: Yashwant Dhakad
>Assignee: Yashwant Dhakad
>Priority: Major
> Attachments: OFBIZ-10577-Database-Changes.patch
>
>
> *Here are the design notes for cycle count workflow:*
> *Find Session Screen:* In this screen, we will show all the sessions created 
> in the system with respect to the facility, locations, inventory count item, 
> current status, and created date. We have a search field to filter the 
> records on the basis of the facility, status.
> *Find Pending Locations:* In this screen, we have a table listing all the 
> pending locations whose countings are pending and we can create a session for 
> them. All details regarding the pending locations are listed here with the 
> location, next count date, last count date and days extended for the count, 
> total inventory item and product for this location. We have facets for 
> filtering the records on the basis of the facility, not scanned since and 
> scheduled for next scan. Also, we have a global search at the top of the 
> screen. In Pending Locations screen, we have a Create Session button. To 
> create a session we can either select one or more records from the below list 
> or create a new session by yourself.
> In Create Session screen, the basic overview is shown in the "Overview" 
> section and the items are listed in the "Items" section. We can create a new 
> line item by clicking on the 'Add' button and we can also update the item 
> quantity. After completing this, we can proceed with this session and mark it 
> with 'Pending for Review' status from the 'Status' button at the top of the 
> screen or we can simply 'Reject'. 'Reject' status button is available at the 
> top of the screen.
> *Find Review Screen:* In this screen, we have a table listing all the 
> locations pending for the review. All the details regarding the review 
> sessions are listed with the facility, locations and counted inventory item. 
> We have facets for filtering records on the basis of the facility. By 
> clicking any session we can go to its detail screen, where basic details 
> regarding this session are listed in the 'Overview' section and items are 
> listed in the 'Items' section. We can select any number of rows and mark them 
> as 'Accept' or 'Reject'. When these items are marked as 'Accepted' then the 
> variance is created and these are added in the Count Progress report. Only 
> authorized persons can accept or reject the sessions and once the session is 
> accepted it is marked as 'Completed'.
> *Count Progress Report:* In this screen, User can view the advanced counting 
> related analytics with respect to all the 'Completed' status session from 
> Reports Screen. We can filter the records on the basis of the facility and 
> within the date range. We can also see the percentage of the total locations, 
> inventory items counted and errors occurred during the process. Item variance 
> details are listed in the below section in tabular form.
> Following changes to the existing data model to support end to end counting 
> process flow:
> *New entities:*
> *InventoryCount*
>    inventoryCountId
>    uploadedByUserLogin
>    facilityId
>    statusId
>    createdDatetime
>  *InventoryCountItem*
>    inventoryCountId
>    inventoryCountItemSeqId
>    inventoryItemId
>    itemStatusId
>    locationSeqId
>    productId
>    productIdentifier
>    quantity
>  *InventoryCountVariance* 
>    inventoryCountId
>    inventoryCountItemSeqId
>    inventoryItemId
>    productId
>    productIdentifier
>    locationSeqId
>    systemQuantityOnHand
>    actualQuantityOnHand
>    varianceQuantityOnHand
>    totalCost
>    actualCost
>    costVariance
>    actualValue
>    totalValue
>    valueVariance
>    unitCost
>  ***Extended entity:*
>  *FacilityLocation*
>    locked
>    lastCountDate
>    nextCountDate
> **We will prevent the following inbound and outbound transactions within the 
> application if the location is locked for counting:
>  Inventory Transfer 
>  Issuance against Sales Order 
>  Sales Return receiving 
>  Inventory receive 
>  Issuance and return inventory in manufacturing Job
>  Kit breakup 
>  Update Location 
>  Physical Variance creation
> The locked locations won’t have any bearing on the transactions that are 
> affecting the only ATP of parts 

[jira] [Commented] (OFBIZ-10577) New Feature: Inventory Cycle Count

2020-01-08 Thread Pierre Smits (Jira)


[ 
https://issues.apache.org/jira/browse/OFBIZ-10577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17010705#comment-17010705
 ] 

Pierre Smits commented on OFBIZ-10577:
--

In your suggestion for the InventoryCount entity you're stating 
*uploadedByUserLogin*. I suggest you stick to the standard fields for capturing 
who created and updated the records and when this happened. ** 

> New Feature: Inventory Cycle Count
> --
>
> Key: OFBIZ-10577
> URL: https://issues.apache.org/jira/browse/OFBIZ-10577
> Project: OFBiz
>  Issue Type: New Feature
>  Components: hhfacility
>Affects Versions: Trunk
>Reporter: Yashwant Dhakad
>Assignee: Yashwant Dhakad
>Priority: Major
> Attachments: OFBIZ-10577-Database-Changes.patch
>
>
> *Here are the design notes for cycle count workflow:*
> *Find Session Screen:* In this screen, we will show all the sessions created 
> in the system with respect to the facility, locations, inventory count item, 
> current status, and created date. We have a search field to filter the 
> records on the basis of the facility, status.
> *Find Pending Locations:* In this screen, we have a table listing all the 
> pending locations whose countings are pending and we can create a session for 
> them. All details regarding the pending locations are listed here with the 
> location, next count date, last count date and days extended for the count, 
> total inventory item and product for this location. We have facets for 
> filtering the records on the basis of the facility, not scanned since and 
> scheduled for next scan. Also, we have a global search at the top of the 
> screen. In Pending Locations screen, we have a Create Session button. To 
> create a session we can either select one or more records from the below list 
> or create a new session by yourself.
> In Create Session screen, the basic overview is shown in the "Overview" 
> section and the items are listed in the "Items" section. We can create a new 
> line item by clicking on the 'Add' button and we can also update the item 
> quantity. After completing this, we can proceed with this session and mark it 
> with 'Pending for Review' status from the 'Status' button at the top of the 
> screen or we can simply 'Reject'. 'Reject' status button is available at the 
> top of the screen.
> *Find Review Screen:* In this screen, we have a table listing all the 
> locations pending for the review. All the details regarding the review 
> sessions are listed with the facility, locations and counted inventory item. 
> We have facets for filtering records on the basis of the facility. By 
> clicking any session we can go to its detail screen, where basic details 
> regarding this session are listed in the 'Overview' section and items are 
> listed in the 'Items' section. We can select any number of rows and mark them 
> as 'Accept' or 'Reject'. When these items are marked as 'Accepted' then the 
> variance is created and these are added in the Count Progress report. Only 
> authorized persons can accept or reject the sessions and once the session is 
> accepted it is marked as 'Completed'.
> *Count Progress Report:* In this screen, User can view the advanced counting 
> related analytics with respect to all the 'Completed' status session from 
> Reports Screen. We can filter the records on the basis of the facility and 
> within the date range. We can also see the percentage of the total locations, 
> inventory items counted and errors occurred during the process. Item variance 
> details are listed in the below section in tabular form.
> Following changes to the existing data model to support end to end counting 
> process flow:
> *New entities:*
> *InventoryCount*
>    inventoryCountId
>    uploadedByUserLogin
>    facilityId
>    statusId
>    createdDatetime
>  *InventoryCountItem*
>    inventoryCountId
>    inventoryCountItemSeqId
>    inventoryItemId
>    itemStatusId
>    locationSeqId
>    productId
>    productIdentifier
>    quantity
>  *InventoryCountVariance* 
>    inventoryCountId
>    inventoryCountItemSeqId
>    inventoryItemId
>    productId
>    productIdentifier
>    locationSeqId
>    systemQuantityOnHand
>    actualQuantityOnHand
>    varianceQuantityOnHand
>    totalCost
>    actualCost
>    costVariance
>    actualValue
>    totalValue
>    valueVariance
>    unitCost
>  ***Extended entity:*
>  *FacilityLocation*
>    locked
>    lastCountDate
>    nextCountDate
> **We will prevent the following inbound and outbound transactions within the 
> application if the location is locked for counting:
>  Inventory Transfer 
>  Issuance against Sales Order 
>  Sales Return receiving 
>  Inventory receive 
>  Issuance and return inventory in manufacturing Job
>  Kit breakup 
>  Update Location 
>  Physical Variance creation
> The 

[jira] [Updated] (OFBIZ-10577) New Feature: Inventory Cycle Count

2020-01-08 Thread Yashwant Dhakad (Jira)


 [ 
https://issues.apache.org/jira/browse/OFBIZ-10577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yashwant Dhakad updated OFBIZ-10577:

Description: 
*Here are the design notes for cycle count workflow:*

*Find Session Screen:* In this screen, we will show all the sessions created in 
the system with respect to the facility, locations, inventory count item, 
current status, and created date. We have a search field to filter the records 
on the basis of the facility, status.

*Find Pending Locations:* In this screen, we have a table listing all the 
pending locations whose countings are pending and we can create a session for 
them. All details regarding the pending locations are listed here with the 
location, next count date, last count date and days extended for the count, 
total inventory item and product for this location. We have facets for 
filtering the records on the basis of the facility, not scanned since and 
scheduled for next scan. Also, we have a global search at the top of the 
screen. In Pending Locations screen, we have a Create Session button. To create 
a session we can either select one or more records from the below list or 
create a new session by yourself.

In Create Session screen, the basic overview is shown in the "Overview" section 
and the items are listed in the "Items" section. We can create a new line item 
by clicking on the 'Add' button and we can also update the item quantity. After 
completing this, we can proceed with this session and mark it with 'Pending for 
Review' status from the 'Status' button at the top of the screen or we can 
simply 'Reject'. 'Reject' status button is available at the top of the screen.

*Find Review Screen:* In this screen, we have a table listing all the locations 
pending for the review. All the details regarding the review sessions are 
listed with the facility, locations and counted inventory item. We have facets 
for filtering records on the basis of the facility. By clicking any session we 
can go to its detail screen, where basic details regarding this session are 
listed in the 'Overview' section and items are listed in the 'Items' section. 
We can select any number of rows and mark them as 'Accept' or 'Reject'. When 
these items are marked as 'Accepted' then the variance is created and these are 
added in the Count Progress report. Only authorized persons can accept or 
reject the sessions and once the session is accepted it is marked as 
'Completed'.

*Count Progress Report:* In this screen, User can view the advanced counting 
related analytics with respect to all the 'Completed' status session from 
Reports Screen. We can filter the records on the basis of the facility and 
within the date range. We can also see the percentage of the total locations, 
inventory items counted and errors occurred during the process. Item variance 
details are listed in the below section in tabular form.

Following changes to the existing data model to support end to end counting 
process flow:

*New entities:*

*InventoryCount*
   inventoryCountId
   uploadedByUserLogin
   facilityId
   statusId
   createdDatetime
 *InventoryCountItem*
   inventoryCountId
   inventoryCountItemSeqId
   inventoryItemId
   itemStatusId
   locationSeqId
   productId
   productIdentifier
   quantity
 *InventoryCountVariance* 
   inventoryCountId
   inventoryCountItemSeqId
   inventoryItemId
   productId
   productIdentifier
   locationSeqId
   systemQuantityOnHand
   actualQuantityOnHand
   varianceQuantityOnHand
   totalCost
   actualCost
   costVariance
   actualValue
   totalValue
   valueVariance
   unitCost
 ***Extended entity:*
 *FacilityLocation*
   locked
   lastCountDate
   nextCountDate

**We will prevent the following inbound and outbound transactions within the 
application if the location is locked for counting:
 Inventory Transfer 
 Issuance against Sales Order 
 Sales Return receiving 
 Inventory receive 
 Issuance and return inventory in manufacturing Job
 Kit breakup 
 Update Location 
 Physical Variance creation

The locked locations won’t have any bearing on the transactions that are 
affecting the only ATP of parts i.e. Reserving component for Jobs/Sales Orders 
etc. as they don’t affect QOH in any way.

  was:
*Here are the design notes for cycle count workflow:*

*Find Session Screen:* In this screen, we will show all the sessions created in 
the system with respect to the facility, locations, inventory count item, 
current status, and created date. We have a search field to filter the records 
on the basis of the facility, status.

*Find Pending Locations:* In this screen, we have a table listing all the 
pending locations whose countings are pending and we can create a session for 
them. All details regarding the pending locations are listed here with the 
location, next count date, last count date and days extended for the count, 
total inventory item and product for this 

[jira] [Commented] (OFBIZ-11306) POC for CSRF Token

2020-01-08 Thread Jacques Le Roux (Jira)


[ 
https://issues.apache.org/jira/browse/OFBIZ-11306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17010581#comment-17010581
 ] 

Jacques Le Roux commented on OFBIZ-11306:
-

Another point I wanted to discuss with you is about "csrf tokens as URL 
parameters".

If I refer to [OWASP Disclosure of Token in 
URL|https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#disclosure-of-token-in-url]
 it's not recommended. It's not even needed for "embedded links in the page" or 
"or other general design patterns" (for us pagination, or in js trees, for 
instance) which I believe are the most cases we us them.

It's really a bad thing if you use an unique per-session token, which is not 
our case, one worry less.

In OFBiz some post calls are actually nothing more than get calls, like
{code:html}
https://localhost:8443/catalog/control/EditProdCatalog?csrfToken=V3TVvfsQVoM8;
 style="margin: 0;" name="EditProdCatalogForm">
  

  Edit Catalog with Catalog ID:
  


  


  OR:
  https://localhost:8443/catalog/control/EditProdCatalog?csrfToken=V3TVvfsQVoM8;
 class="buttontext">Create New Catalog

  

{code}
There again there is no possible harm, since nothing can be changed with this 
link.

But there are cases which should not be, like

{code:html}


  
  
  
Catalog ID  
  

[...]
{code}

So we need to remove csrfTokens from cases like this one. Anyway, I need to now 
review the Java code. I'll get back to you then.

Thanks for your very good start!



> POC for CSRF Token
> --
>
> Key: OFBIZ-11306
> URL: https://issues.apache.org/jira/browse/OFBIZ-11306
> Project: OFBiz
>  Issue Type: Improvement
>  Components: ALL APPLICATIONS
>Affects Versions: Upcoming Branch
>Reporter: James Yong
>Assignee: Jacques Le Roux
>Priority: Minor
>  Labels: CSRF
> Fix For: Upcoming Branch
>
> Attachments: OFBIZ-11306-v2.patch, OFBIZ-11306.patch, 
> OFBIZ-11306.patch, OFBIZ-11306.patch, OFBIZ-11306.patch, OFBIZ-11306.patch, 
> OFBIZ-11306.patch, OFBIZ-11306.patch, OFBIZ-11306.patch, OFBIZ-11306.patch, 
> OFBIZ-11306.patch, OFBIZ-11306_Plugins.patch, OFBIZ-11306_Plugins.patch, 
> OFBIZ-11306_Plugins.patch
>
>
> CRSF tokens are generated using CSRF Guard library and used in:
> 1) In widget form where a hidden token field is auto-generated.
> 2) In FTL form where a <@csrfTokenField> macro is used to generate the csrf 
> token field. 
> 3) In Ajax call where a <@csrfTokenAjax> macro is used to assign csrf token 
> to X-CSRF-Token in request header. 
> CSRF tokens are stored in the user sessions, and verified during POST request.
> A new attribute i.e. csrf-token is added to the security tag to exempt CSRF 
> token check.
> Certain request path, like LookupPartyName, can be exempt from CSRF token 
> check during Ajax POST call. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)