diff --git a/src/app/deals/components/shared/DealCard/DealCard.tsx b/src/app/deals/components/shared/DealCard/DealCard.tsx
index 6566df5..c840a5c 100644
--- a/src/app/deals/components/shared/DealCard/DealCard.tsx
+++ b/src/app/deals/components/shared/DealCard/DealCard.tsx
@@ -12,7 +12,7 @@ type Props = {
const DealCard = ({ deal }: Props) => {
const { selectedProject, modulesSet } = useProjectsContext();
- const { dealsCrud } = useDealsContext();
+ const { dealsCrud, refetchDeals } = useDealsContext();
const { openDrawer } = useDrawersContext();
const onClick = () => {
@@ -24,6 +24,7 @@ const DealCard = ({ deal }: Props) => {
onDelete: dealsCrud.onDelete,
project: selectedProject,
},
+ onClose: refetchDeals,
});
};
@@ -51,9 +52,14 @@ const DealCard = ({ deal }: Props) => {
{modulesSet.has(ModuleNames.CLIENTS) && (
{deal.client?.name}
)}
- Wb электросталь
- 19 000 руб.
- 130 тов.
+ {modulesSet.has(ModuleNames.FULFILLMENT_BASE) && (
+ <>
+ {deal.totalPrice} руб.
+
+ {deal.productsQuantity} тов.
+
+ >
+ )}
Срочно
diff --git a/src/app/deals/components/shared/DealsTable/DealsTable.tsx b/src/app/deals/components/shared/DealsTable/DealsTable.tsx
index 70720e0..4e0fd5c 100644
--- a/src/app/deals/components/shared/DealsTable/DealsTable.tsx
+++ b/src/app/deals/components/shared/DealsTable/DealsTable.tsx
@@ -11,9 +11,16 @@ import { DealSchema } from "@/lib/client";
const DealsTable: FC = () => {
const isMobile = useIsMobile();
- const { selectedProject } = useProjectsContext();
- const { deals, paginationInfo, page, setPage, sortingForm, dealsCrud } =
- useDealsContext();
+ const { selectedProject, modulesSet } = useProjectsContext();
+ const {
+ deals,
+ paginationInfo,
+ page,
+ setPage,
+ sortingForm,
+ dealsCrud,
+ refetchDeals,
+ } = useDealsContext();
const { openDrawer } = useDrawersContext();
const onEditClick = useCallback(
@@ -26,12 +33,13 @@ const DealsTable: FC = () => {
onDelete: dealsCrud.onDelete,
project: selectedProject,
},
+ onClose: refetchDeals,
});
},
[openDrawer, dealsCrud]
);
- const columns = useDealsTableColumns({ onEditClick });
+ const columns = useDealsTableColumns({ onEditClick, modulesSet });
return (
void;
+ modulesSet: Set;
};
-const useDealsTableColumns = ({ onEditClick }: Props) => {
+const useDealsTableColumns = ({ onEditClick, modulesSet }: Props) => {
const isMobile = useIsMobile();
return useMemo(
@@ -35,19 +37,30 @@ const useDealsTableColumns = ({ onEditClick }: Props) => {
accessor: "id",
title: isMobile ? "№" : "Номер",
sortable: true,
- width: "20%",
},
{
accessor: "name",
title: "Название",
- width: "45%",
},
{
title: "Дата создания",
accessor: "createdAt",
render: deal => utcDateTimeToLocalString(deal.createdAt),
sortable: true,
- width: "35%",
+ },
+ {
+ title: "Клиент",
+ accessor: "client.name",
+ hidden: !modulesSet.has(ModuleNames.CLIENTS),
+ },
+ {
+ title: "Общая стоимость",
+ accessor: "totalPrice",
+ render: deal =>
+ deal.totalPrice
+ ? `${deal.totalPrice.toLocaleString("ru")}₽`
+ : "0₽",
+ hidden: !modulesSet.has(ModuleNames.FULFILLMENT_BASE),
},
] as DataTableColumn[],
[onEditClick]
diff --git a/src/app/deals/contexts/ProjectsContext.tsx b/src/app/deals/contexts/ProjectsContext.tsx
index c3ad53a..c314d12 100644
--- a/src/app/deals/contexts/ProjectsContext.tsx
+++ b/src/app/deals/contexts/ProjectsContext.tsx
@@ -7,6 +7,7 @@ import useProjectsList from "@/hooks/lists/useProjectsList";
import useIsMobile from "@/hooks/utils/useIsMobile";
import { ProjectSchema } from "@/lib/client";
import makeContext from "@/lib/contextFactory/contextFactory";
+import { ModuleNames } from "@/modules/modules";
type ProjectsContextState = {
selectedProject: ProjectSchema | null;
@@ -14,7 +15,7 @@ type ProjectsContextState = {
refetchProjects: () => void;
projects: ProjectSchema[];
projectsCrud: ProjectsCrud;
- modulesSet: Set;
+ modulesSet: Set;
};
const useProjectsContextState = (): ProjectsContextState => {
@@ -33,7 +34,10 @@ const useProjectsContextState = (): ProjectsContextState => {
);
const modulesSet = useMemo(
- () => new Set(selectedProject?.builtInModules.map(m => m.key)),
+ () =>
+ new Set(
+ selectedProject?.builtInModules.map(m => m.key as ModuleNames)
+ ),
[selectedProject]
);
diff --git a/src/lib/client/types.gen.ts b/src/lib/client/types.gen.ts
index af06593..27bcd3a 100644
--- a/src/lib/client/types.gen.ts
+++ b/src/lib/client/types.gen.ts
@@ -855,6 +855,14 @@ export type DealSchema = {
* Createdat
*/
createdAt: string;
+ /**
+ * Productsquantity
+ */
+ productsQuantity?: number;
+ /**
+ * Totalprice
+ */
+ totalPrice?: number;
client?: ClientSchema | null;
};
diff --git a/src/lib/client/zod.gen.ts b/src/lib/client/zod.gen.ts
index d54ba11..ae32d91 100644
--- a/src/lib/client/zod.gen.ts
+++ b/src/lib/client/zod.gen.ts
@@ -327,6 +327,8 @@ export const zDealSchema = z.object({
createdAt: z.iso.datetime({
offset: true,
}),
+ productsQuantity: z.optional(z.int()).default(0),
+ totalPrice: z.optional(z.number()).default(0),
client: z.optional(z.union([zClientSchema, z.null()])),
});