diff --git a/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx b/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx
index 1434d46..ad8fde6 100644
--- a/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx
+++ b/client/src/app/quotes/components/editors/QuoteDetailsCardEditor.tsx
@@ -41,7 +41,7 @@ export const QuoteDetailsCardEditor = ({ currency }: { currency: CurrencyData })
header: () => (
{t("quotes.form_fields.items.quantity.label")}
),
- size: 8,
+ size: 6,
cell: ({ row: { index } }) => {
return (
{
- return ;
+ return (
+
+ );
},
},
{
@@ -80,29 +82,30 @@ export const QuoteDetailsCardEditor = ({ currency }: { currency: CurrencyData })
);
},
},
- /*{
+ {
id: "subtotal_price" as const,
accessorKey: "subtotal_price",
header: () => (
{t("quotes.form_fields.items.subtotal_price.label")}
),
+ size: 12,
cell: ({ row: { index }, column: { id } }) => {
return (
);
},
- },*/
+ },
{
id: "discount" as const,
accessorKey: "discount",
- size: 8,
+ size: 6,
header: () => (
{t("quotes.form_fields.items.discount.label")}
),
@@ -117,25 +120,26 @@ export const QuoteDetailsCardEditor = ({ currency }: { currency: CurrencyData })
);
},
},
- /*{
+ {
id: "total_price" as const,
accessorKey: "total_price",
header: () => (
{t("quotes.form_fields.items.total_price.label")}
),
+ size: 12,
cell: ({ row: { index }, column: { id } }) => {
return (
);
},
- },*/
+ },
],
{
enableDragHandleColumn: true,
@@ -191,6 +195,8 @@ export const QuoteDetailsCardEditor = ({ currency }: { currency: CurrencyData })
const defaultLayout = [265, 440, 655];
const navCollapsedSize = 4;
+ return ;
+
return (
- {/**/}
+
diff --git a/client/src/app/quotes/edit.tsx b/client/src/app/quotes/edit.tsx
index 759301b..89f04e1 100644
--- a/client/src/app/quotes/edit.tsx
+++ b/client/src/app/quotes/edit.tsx
@@ -68,11 +68,12 @@ export const QuoteEdit = () => {
scale: 2,
currency_code: data?.currency_code,
},
- /*items: [
+ items: [
{
+ description: "",
quantity: {
amount: undefined,
- scale: 2,
+ scale: 0,
},
subtotal_price: {
amount: undefined,
@@ -81,7 +82,7 @@ export const QuoteEdit = () => {
},
discount: {
amount: undefined,
- scale: 0,
+ scale: 2,
},
total_price: {
amount: undefined,
@@ -89,7 +90,7 @@ export const QuoteEdit = () => {
currency_code: data?.currency_code,
},
},
- ],*/
+ ],
},
});
@@ -129,6 +130,8 @@ export const QuoteEdit = () => {
const { unsubscribe } = watch((_, { name, type }) => {
const value = getValues();
+ console.log(value);
+
if (name) {
if (name === "currency_code") {
setQuoteCurrency(
@@ -146,8 +149,6 @@ export const QuoteEdit = () => {
items.map((item, index) => {
const itemTotals = calculateItemTotals(item);
- console.log(itemTotals?.quantity.toObject());
-
if (itemTotals === null) {
return;
}
diff --git a/client/src/components/Forms/FormCurrencyField.tsx b/client/src/components/Forms/FormCurrencyField.tsx
index 826f237..2aa1299 100644
--- a/client/src/components/Forms/FormCurrencyField.tsx
+++ b/client/src/components/Forms/FormCurrencyField.tsx
@@ -61,6 +61,8 @@ export const FormCurrencyField = React.forwardRef("");
+
const transform = {
input: (value: any) => {
if (typeof value !== "object") {
@@ -73,11 +75,20 @@ export const FormCurrencyField = React.forwardRef {
const { value: amount } = values ?? { value: null };
+ setOldValue(amount ?? "");
+
const moneyOrError = MoneyValue.createFromFormattedValue(amount, currency.code);
if (moneyOrError.isFailure) {
throw moneyOrError.error;
@@ -126,6 +137,7 @@ export const FormCurrencyField = React.forwardRef
+
{description && {description}}
diff --git a/client/src/components/Forms/FormTextField.tsx b/client/src/components/Forms/FormTextField.tsx
index 7c4d5c4..fd982e5 100644
--- a/client/src/components/Forms/FormTextField.tsx
+++ b/client/src/components/Forms/FormTextField.tsx
@@ -1,7 +1,7 @@
import { cn } from "@/lib/utils";
import { FormControl, FormDescription, FormField, FormItem, Input, InputProps } from "@/ui";
-import { cva } from "class-variance-authority";
+import { cva, type VariantProps } from "class-variance-authority";
import * as React from "react";
import { createElement } from "react";
import { FieldPath, FieldValues, UseControllerProps, useFormContext } from "react-hook-form";
@@ -9,7 +9,7 @@ import { FormErrorMessage } from "./FormErrorMessage";
import { FormLabel, FormLabelProps } from "./FormLabel";
import { FormInputProps, FormInputWithIconProps } from "./FormProps";
-const FormTextFieldVariants = cva("", {
+const formTextFieldVariants = cva("", {
variants: {
variant: {
default: "",
@@ -31,7 +31,8 @@ export type FormTextFieldProps<
FormInputProps &
Partial &
FormInputWithIconProps &
- UseControllerProps;
+ UseControllerProps &
+ VariantProps;
export const FormTextField = React.forwardRef(
(props, ref) => {
@@ -95,7 +96,7 @@ export const FormTextField = React.forwardRef
diff --git a/client/src/lib/calc.ts b/client/src/lib/calc.ts
index 494d004..0ce34df 100644
--- a/client/src/lib/calc.ts
+++ b/client/src/lib/calc.ts
@@ -12,8 +12,14 @@ export const calculateItemTotals = (item: {
discount: Percentage;
totalPrice: MoneyValue;
} | null => {
+ console.log(item);
+
const { quantity: quantity_dto, unit_price: unit_price_dto, discount: discount_dto } = item;
+ if (quantity_dto === "" || unit_price_dto === "") {
+ return null;
+ }
+
const quantityOrError = Quantity.create(quantity_dto);
if (quantityOrError.isFailure) {
throw quantityOrError.error;
diff --git a/shared/lib/contexts/common/domain/entities/MoneyValue.ts b/shared/lib/contexts/common/domain/entities/MoneyValue.ts
index 1a378be..008842d 100644
--- a/shared/lib/contexts/common/domain/entities/MoneyValue.ts
+++ b/shared/lib/contexts/common/domain/entities/MoneyValue.ts
@@ -141,8 +141,6 @@ export class MoneyValue extends ValueObject implements IMoneyValue {
scale = defaultMoneyValueProps.scale,
} = props || {};
- console.log(props, { amount, currencyCode, scale });
-
const validationResult = MoneyValue.validate(amount, options);
if (validationResult.isFailure) {