diff --git a/src/modules/catalog/product/ProductCreate.tsx b/src/modules/catalog/product/ProductCreate.tsx index fb9d10e..0680b85 100644 --- a/src/modules/catalog/product/ProductCreate.tsx +++ b/src/modules/catalog/product/ProductCreate.tsx @@ -12,10 +12,14 @@ import { GetCategoriesShortDocument, useCreateProductMutation, ProductCategoryCreateInput, + TenantPriceDisplay, } from '../../../generated/graphql'; import * as DineroHelper from '../../../helpers'; +import { DineroObject } from 'dinero.js'; +import { useTenant } from '../../../context/TenantContext'; const ProductCreate: React.FC = () => { + const { currentTenant } = useTenant(); const navigate = useNavigate(); const [createProduct, { error }] = useCreateProductMutation({ refetchQueries: [ @@ -27,13 +31,22 @@ const ProductCreate: React.FC = () => { const onSubmitBasic = useCallback( async (values) => { const input: ProductCreateInput = { - tenantId: 1, + tenantId: currentTenant?.id, ...values, price: { - grossAmount: DineroHelper.moneyFromString(values.price), + grossAmount: + currentTenant?.priceDisplay === TenantPriceDisplay.ExlVat + ? DineroHelper.moneyFromString(values.price) + : DineroHelper.moneyFromString( + DineroHelper.priceWithoutRate( + currentTenant?.vatRate?.value as DineroObject, + values.price + ) + ), }, stockControl: true, inStockNum: 0, + vatRateId: currentTenant?.vatRate?.id, }; if (values.categories) { diff --git a/src/modules/catalog/product/ProductUpdate.tsx b/src/modules/catalog/product/ProductUpdate.tsx index 9bcf3b5..471f44c 100644 --- a/src/modules/catalog/product/ProductUpdate.tsx +++ b/src/modules/catalog/product/ProductUpdate.tsx @@ -20,10 +20,14 @@ import { useGetProductQuery, useUpdateProductMutation, ProductUpdateInput, + TenantPriceDisplay, } from '../../../generated/graphql'; import * as DineroHelper from '../../../helpers'; +import { DineroObject } from 'dinero.js'; +import { useTenant } from '../../../context/TenantContext'; const ProductUpdate: React.FC = () => { + const { currentTenant } = useTenant(); const navigate = useNavigate(); const params = useParams(); const productId = Number(params.productId); @@ -49,16 +53,26 @@ const ProductUpdate: React.FC = () => { const onSubmit = useCallback( async (values) => { - const input = _.omit({ tenantId: 1, ...data?.product, ...values }, [ - 'id', - '__typename', - 'price', - 'categories', - ]) as ProductUpdateInput; + const input = _.omit( + { + tenantId: currentTenant?.id, + ...data?.product, + ...values, + }, + ['id', '__typename', 'price', 'categories'] + ) as ProductUpdateInput; if (values.price) { input.price = { - grossAmount: DineroHelper.moneyFromString(values.price), + grossAmount: + currentTenant?.priceDisplay === TenantPriceDisplay.ExlVat + ? DineroHelper.moneyFromString(values.price) + : DineroHelper.moneyFromString( + DineroHelper.priceWithoutRate( + currentTenant?.vatRate?.value as DineroObject, + values.price + ) + ), }; } if (values.categories) { diff --git a/src/modules/catalog/product/components/ProductBasicOptions.tsx b/src/modules/catalog/product/components/ProductBasicOptions.tsx index 23223dd..eae3a23 100644 --- a/src/modules/catalog/product/components/ProductBasicOptions.tsx +++ b/src/modules/catalog/product/components/ProductBasicOptions.tsx @@ -22,6 +22,7 @@ import { GetSignedUrlQuery, GetSignedUrlQueryVariables, ProductStatus, + TenantPriceDisplay, useGetCategoriesShortQuery, } from '../../../../generated/graphql'; import { useTenant } from '../../../../context/TenantContext'; @@ -86,7 +87,10 @@ const ProductBasicOptions: React.FC = ({ initialValues: { ...defaultValues, ...product, - price: DineroHelper.formatPrice(product?.price), + price: DineroHelper.formatPrice( + product?.price, + currentTenant?.priceDisplay === TenantPriceDisplay.IncVat + ), categories: product?.categories.map((category) => ({ id: category?.id, name: category?.title, @@ -195,7 +199,11 @@ const ProductBasicOptions: React.FC = ({
= ({ {form.touched.price && form.errors.price && ( )} - + {currentTenant?.priceDisplay === TenantPriceDisplay.IncVat && ( + + )}
= ({ tenant }) => { { Header: 'Pris', accessor: 'price.amount', + Cell: ({ + row: { original: deliveryMethod }, + }: CellProps) => + DineroHelper.formatMoney(deliveryMethod?.price), }, { Header: 'Status', diff --git a/src/modules/settings/ShippingSettingsModalContent.tsx b/src/modules/settings/ShippingSettingsModalContent.tsx index 6e94ea5..1a5dff0 100644 --- a/src/modules/settings/ShippingSettingsModalContent.tsx +++ b/src/modules/settings/ShippingSettingsModalContent.tsx @@ -31,10 +31,8 @@ export const ShippingSettingsModalContent: React.FC<{ tenantId: number | null | undefined; onRequestClose: () => void; }> = ({ currentDeliveryMethod, onRequestClose, tenantId }) => { - const [updateDeliveryMethod, { error: updateError }] = - useUpdateDeliveryMethodMutation(); - const [createDeliveryMethod, { error: createError }] = - useCreateDeliveryMethodMutation(); + const [updateDeliveryMethod] = useUpdateDeliveryMethodMutation(); + const [createDeliveryMethod] = useCreateDeliveryMethodMutation(); const update = async ( currentDeliveryMethod: DeliveryMethodItem, @@ -68,14 +66,14 @@ export const ShippingSettingsModalContent: React.FC<{ { + onSubmit={async (values) => { const input = { name: values.name, price: DineroHelper.moneyFromString(String(values.price)),