From e84aefab9aa7660c5c8322018662cdc35b7fc172 Mon Sep 17 00:00:00 2001 From: dominik-zeglen Date: Wed, 29 Apr 2020 18:51:19 +0200 Subject: [PATCH] Use quantity allocated to get available variants --- .../ProductVariants/ProductVariants.tsx | 5 ++++- src/products/fixtures.ts | 3 +++ src/products/queries.ts | 1 + src/products/types/AddOrRemoveStocks.ts | 2 ++ src/products/types/Product.ts | 1 + src/products/types/ProductCreate.ts | 1 + src/products/types/ProductDetails.ts | 1 + src/products/types/ProductImageCreate.ts | 1 + src/products/types/ProductImageUpdate.ts | 1 + src/products/types/ProductUpdate.ts | 1 + src/products/types/ProductVariant.ts | 1 + src/products/types/ProductVariantDetails.ts | 1 + src/products/types/SimpleProductUpdate.ts | 5 +++++ src/products/types/StockFragment.ts | 1 + src/products/types/VariantCreate.ts | 1 + src/products/types/VariantImageAssign.ts | 1 + src/products/types/VariantImageUnassign.ts | 1 + src/products/types/VariantUpdate.ts | 2 ++ src/storybook/__snapshots__/Stories.test.ts.snap | 16 ++++++++-------- 19 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/products/components/ProductVariants/ProductVariants.tsx b/src/products/components/ProductVariants/ProductVariants.tsx index adf2d8c39..869a5facd 100644 --- a/src/products/components/ProductVariants/ProductVariants.tsx +++ b/src/products/components/ProductVariants/ProductVariants.tsx @@ -296,7 +296,10 @@ export const ProductVariants: React.FC = props => { const isSelected = variant ? isChecked(variant.id) : false; const numAvailable = variant && variant.stocks - ? variant.stocks.reduce((acc, s) => acc + s.quantity, 0) + ? variant.stocks.reduce( + (acc, s) => acc + s.quantity - s.quantityAllocated, + 0 + ) : null; return ( diff --git a/src/products/fixtures.ts b/src/products/fixtures.ts index 04eca4b56..b871cb42c 100644 --- a/src/products/fixtures.ts +++ b/src/products/fixtures.ts @@ -266,12 +266,14 @@ export const product: ( __typename: "Stock", id: "1", quantity: 1, + quantityAllocated: 0, warehouse: warehouseList[0] }, { __typename: "Stock", id: "2", quantity: 4, + quantityAllocated: 2, warehouse: warehouseList[1] } ], @@ -301,6 +303,7 @@ export const product: ( __typename: "Stock", id: "1", quantity: 13, + quantityAllocated: 2, warehouse: warehouseList[0] } ], diff --git a/src/products/queries.ts b/src/products/queries.ts index 0b43ce676..a614f0318 100644 --- a/src/products/queries.ts +++ b/src/products/queries.ts @@ -37,6 +37,7 @@ export const stockFragment = gql` fragment StockFragment on Stock { id quantity + quantityAllocated warehouse { id name diff --git a/src/products/types/AddOrRemoveStocks.ts b/src/products/types/AddOrRemoveStocks.ts index 723501871..0ce1d9d9c 100644 --- a/src/products/types/AddOrRemoveStocks.ts +++ b/src/products/types/AddOrRemoveStocks.ts @@ -25,6 +25,7 @@ export interface AddOrRemoveStocks_productVariantStocksCreate_productVariant_sto __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: AddOrRemoveStocks_productVariantStocksCreate_productVariant_stocks_warehouse; } @@ -56,6 +57,7 @@ export interface AddOrRemoveStocks_productVariantStocksDelete_productVariant_sto __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: AddOrRemoveStocks_productVariantStocksDelete_productVariant_stocks_warehouse; } diff --git a/src/products/types/Product.ts b/src/products/types/Product.ts index a0420a20a..a1c8c7696 100644 --- a/src/products/types/Product.ts +++ b/src/products/types/Product.ts @@ -159,6 +159,7 @@ export interface Product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: Product_variants_stocks_warehouse; } diff --git a/src/products/types/ProductCreate.ts b/src/products/types/ProductCreate.ts index f85cef9c8..d757729d0 100644 --- a/src/products/types/ProductCreate.ts +++ b/src/products/types/ProductCreate.ts @@ -165,6 +165,7 @@ export interface ProductCreate_productCreate_product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductCreate_productCreate_product_variants_stocks_warehouse; } diff --git a/src/products/types/ProductDetails.ts b/src/products/types/ProductDetails.ts index ed22c7264..2c5913c5a 100644 --- a/src/products/types/ProductDetails.ts +++ b/src/products/types/ProductDetails.ts @@ -159,6 +159,7 @@ export interface ProductDetails_product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductDetails_product_variants_stocks_warehouse; } diff --git a/src/products/types/ProductImageCreate.ts b/src/products/types/ProductImageCreate.ts index 3c1ad318d..49cd57bda 100644 --- a/src/products/types/ProductImageCreate.ts +++ b/src/products/types/ProductImageCreate.ts @@ -165,6 +165,7 @@ export interface ProductImageCreate_productImageCreate_product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductImageCreate_productImageCreate_product_variants_stocks_warehouse; } diff --git a/src/products/types/ProductImageUpdate.ts b/src/products/types/ProductImageUpdate.ts index becd44e2c..abb5401cb 100644 --- a/src/products/types/ProductImageUpdate.ts +++ b/src/products/types/ProductImageUpdate.ts @@ -165,6 +165,7 @@ export interface ProductImageUpdate_productImageUpdate_product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductImageUpdate_productImageUpdate_product_variants_stocks_warehouse; } diff --git a/src/products/types/ProductUpdate.ts b/src/products/types/ProductUpdate.ts index f9c8c7a7e..9ea3e5fd8 100644 --- a/src/products/types/ProductUpdate.ts +++ b/src/products/types/ProductUpdate.ts @@ -165,6 +165,7 @@ export interface ProductUpdate_productUpdate_product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductUpdate_productUpdate_product_variants_stocks_warehouse; } diff --git a/src/products/types/ProductVariant.ts b/src/products/types/ProductVariant.ts index 9a9d2e743..ec79ea8ed 100644 --- a/src/products/types/ProductVariant.ts +++ b/src/products/types/ProductVariant.ts @@ -99,6 +99,7 @@ export interface ProductVariant_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductVariant_stocks_warehouse; } diff --git a/src/products/types/ProductVariantDetails.ts b/src/products/types/ProductVariantDetails.ts index 1bd3a8d52..3e7de3718 100644 --- a/src/products/types/ProductVariantDetails.ts +++ b/src/products/types/ProductVariantDetails.ts @@ -99,6 +99,7 @@ export interface ProductVariantDetails_productVariant_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: ProductVariantDetails_productVariant_stocks_warehouse; } diff --git a/src/products/types/SimpleProductUpdate.ts b/src/products/types/SimpleProductUpdate.ts index a6515ab73..7e4d34600 100644 --- a/src/products/types/SimpleProductUpdate.ts +++ b/src/products/types/SimpleProductUpdate.ts @@ -165,6 +165,7 @@ export interface SimpleProductUpdate_productUpdate_product_variants_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: SimpleProductUpdate_productUpdate_product_variants_stocks_warehouse; } @@ -307,6 +308,7 @@ export interface SimpleProductUpdate_productVariantUpdate_productVariant_stocks __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: SimpleProductUpdate_productVariantUpdate_productVariant_stocks_warehouse; } @@ -430,6 +432,7 @@ export interface SimpleProductUpdate_productVariantStocksCreate_productVariant_s __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: SimpleProductUpdate_productVariantStocksCreate_productVariant_stocks_warehouse; } @@ -552,6 +555,7 @@ export interface SimpleProductUpdate_productVariantStocksDelete_productVariant_s __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: SimpleProductUpdate_productVariantStocksDelete_productVariant_stocks_warehouse; } @@ -675,6 +679,7 @@ export interface SimpleProductUpdate_productVariantStocksUpdate_productVariant_s __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: SimpleProductUpdate_productVariantStocksUpdate_productVariant_stocks_warehouse; } diff --git a/src/products/types/StockFragment.ts b/src/products/types/StockFragment.ts index bdd9674a3..667cee296 100644 --- a/src/products/types/StockFragment.ts +++ b/src/products/types/StockFragment.ts @@ -16,5 +16,6 @@ export interface StockFragment { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: StockFragment_warehouse; } diff --git a/src/products/types/VariantCreate.ts b/src/products/types/VariantCreate.ts index 67d363617..6d8e19e5c 100644 --- a/src/products/types/VariantCreate.ts +++ b/src/products/types/VariantCreate.ts @@ -107,6 +107,7 @@ export interface VariantCreate_productVariantCreate_productVariant_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: VariantCreate_productVariantCreate_productVariant_stocks_warehouse; } diff --git a/src/products/types/VariantImageAssign.ts b/src/products/types/VariantImageAssign.ts index f85d92ee4..fad6f55d6 100644 --- a/src/products/types/VariantImageAssign.ts +++ b/src/products/types/VariantImageAssign.ts @@ -107,6 +107,7 @@ export interface VariantImageAssign_variantImageAssign_productVariant_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: VariantImageAssign_variantImageAssign_productVariant_stocks_warehouse; } diff --git a/src/products/types/VariantImageUnassign.ts b/src/products/types/VariantImageUnassign.ts index 294514c50..51b14b8c0 100644 --- a/src/products/types/VariantImageUnassign.ts +++ b/src/products/types/VariantImageUnassign.ts @@ -107,6 +107,7 @@ export interface VariantImageUnassign_variantImageUnassign_productVariant_stocks __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: VariantImageUnassign_variantImageUnassign_productVariant_stocks_warehouse; } diff --git a/src/products/types/VariantUpdate.ts b/src/products/types/VariantUpdate.ts index ca646c23d..94d6bcd9a 100644 --- a/src/products/types/VariantUpdate.ts +++ b/src/products/types/VariantUpdate.ts @@ -107,6 +107,7 @@ export interface VariantUpdate_productVariantUpdate_productVariant_stocks { __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: VariantUpdate_productVariantUpdate_productVariant_stocks_warehouse; } @@ -230,6 +231,7 @@ export interface VariantUpdate_productVariantStocksUpdate_productVariant_stocks __typename: "Stock"; id: string; quantity: number; + quantityAllocated: number; warehouse: VariantUpdate_productVariantStocksUpdate_productVariant_stocks_warehouse; } diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index cb34e0b1c..b024828d7 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -111482,7 +111482,7 @@ Ctrl + K" class="MuiTableCell-root-id MuiTableCell-body-id ProductVariants-colInventory-id" data-tc="inventory" > - 5 available at 2 locations + 3 available at 2 locations - 13 available at 1 location + 11 available at 1 location @@ -113043,7 +113043,7 @@ Ctrl + K" class="MuiTableCell-root-id MuiTableCell-body-id ProductVariants-colInventory-id" data-tc="inventory" > - 5 available at 2 locations + 3 available at 2 locations - 13 available at 1 location + 11 available at 1 location @@ -118480,7 +118480,7 @@ Ctrl + K" class="MuiTableCell-root-id MuiTableCell-body-id ProductVariants-colInventory-id" data-tc="inventory" > - 5 available at 2 locations + 3 available at 2 locations - 13 available at 1 location + 11 available at 1 location @@ -121360,7 +121360,7 @@ Ctrl + K" class="MuiTableCell-root-id MuiTableCell-body-id ProductVariants-colInventory-id" data-tc="inventory" > - 5 available at 2 locations + 3 available at 2 locations - 13 available at 1 location + 11 available at 1 location