Compare commits
3 Commits
911fdbb1c3
...
2a1d49d1c4
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a1d49d1c4 | |||
| d2a314edc0 | |||
| 77fec8fc77 |
@ -1,8 +1,11 @@
|
||||
import type { Name, TextValue, UniqueID } from "@repo/rdx-ddd";
|
||||
import type { Maybe } from "@repo/rdx-utils";
|
||||
|
||||
export type PaymentMethodDetail = {
|
||||
id: string;
|
||||
name: string;
|
||||
type: string;
|
||||
id: UniqueID;
|
||||
companyId: UniqueID;
|
||||
name: Name;
|
||||
description: Maybe<TextValue>;
|
||||
is_active: boolean;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
is_system: boolean;
|
||||
};
|
||||
|
||||
@ -1,19 +1,23 @@
|
||||
import type { GetPaymentMethodByIdResponseDTO } from "@erp/catalogs/common";
|
||||
import type { ISnapshotBuilder } from "@erp/core/api";
|
||||
import { toNullable } from "@repo/rdx-ddd";
|
||||
import { maybeToNullable } from "@repo/rdx-ddd";
|
||||
|
||||
import type { PaymentMethod } from "../../../../domain";
|
||||
|
||||
export type PaymentMethodFullSnapshot = GetPaymentMethodByIdResponseDTO;
|
||||
|
||||
export interface IPaymentMethodFullSnapshotBuilder
|
||||
extends ISnapshotBuilder<PaymentMethod, GetPaymentMethodByIdResponseDTO> {}
|
||||
extends ISnapshotBuilder<PaymentMethod, PaymentMethodFullSnapshot> {}
|
||||
|
||||
export class PaymentMethodFullSnapshotBuilder implements IPaymentMethodFullSnapshotBuilder {
|
||||
public toOutput(paymentMethod: PaymentMethod): GetPaymentMethodByIdResponseDTO {
|
||||
public toOutput(paymentMethod: PaymentMethod): PaymentMethodFullSnapshot {
|
||||
return {
|
||||
id: paymentMethod.id.toPrimitive(),
|
||||
company_id: paymentMethod.companyId.toPrimitive(),
|
||||
|
||||
name: paymentMethod.name.toPrimitive(),
|
||||
description: toNullable(paymentMethod.description, (value) => value.toPrimitive()),
|
||||
description: maybeToNullable(paymentMethod.description, (value) => value.toPrimitive()),
|
||||
|
||||
is_active: paymentMethod.isActive,
|
||||
is_system: paymentMethod.isSystem,
|
||||
};
|
||||
|
||||
@ -11,7 +11,9 @@ export class PaymentMethodSummarySnapshotBuilder implements IPaymentMethodSummar
|
||||
return {
|
||||
id: paymentMethod.id.toString(),
|
||||
company_id: paymentMethod.companyId.toString(),
|
||||
|
||||
name: paymentMethod.name.toString(),
|
||||
|
||||
is_system: paymentMethod.isSystem,
|
||||
is_active: paymentMethod.isActive,
|
||||
};
|
||||
|
||||
@ -1,2 +1,3 @@
|
||||
export * from "./request";
|
||||
export * from "./response";
|
||||
export * from "./shared";
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import { SpainTaxCatalogProvider } from "@erp/core";
|
||||
import { ErrorAlert, NotFoundCard, PageHeader } from "@erp/core/components";
|
||||
import {
|
||||
FormCommitButtonGroup,
|
||||
@ -7,7 +6,6 @@ import {
|
||||
} from "@erp/core/hooks";
|
||||
import { SelectCustomerDialog } from "@erp/customers";
|
||||
import { AppContent, AppHeader, BackHistoryButton } from "@repo/rdx-ui/components";
|
||||
import { useMemo } from "react";
|
||||
import { FormProvider } from "react-hook-form";
|
||||
|
||||
import { useTranslation } from "../../../../i18n";
|
||||
@ -17,7 +15,6 @@ import { ProformaUpdateEditorForm } from "../editors";
|
||||
|
||||
export const ProformaUpdatePage = () => {
|
||||
const { t } = useTranslation();
|
||||
const taxCatalog = useMemo(() => SpainTaxCatalogProvider(), []);
|
||||
|
||||
const { updateCtrl, selectCustomerCtrl, returnTo } = useUpdateProformaPageController();
|
||||
|
||||
|
||||
@ -16,44 +16,44 @@ export const CustomerCreatePage = () => {
|
||||
const { form, formId, onSubmit, resetForm, isCreating, isCreateError, createError } = createCtrl;
|
||||
|
||||
return (
|
||||
<UnsavedChangesProvider isDirty={form.formState.isDirty}>
|
||||
<AppHeader>
|
||||
<PageHeader
|
||||
description={t("pages.create.description")}
|
||||
onBackClick={() => navigate("/customers/list")}
|
||||
rightSlot={
|
||||
<FormCommitButtonGroup
|
||||
cancel={{
|
||||
to: "/customers/list",
|
||||
}}
|
||||
disabled={createCtrl.isCreating}
|
||||
isLoading={createCtrl.isCreating}
|
||||
onReset={createCtrl.form.formState.isDirty ? createCtrl.resetForm : undefined}
|
||||
submit={{
|
||||
formId: createCtrl.formId,
|
||||
}}
|
||||
/>
|
||||
}
|
||||
title={t("pages.create.title")}
|
||||
/>
|
||||
</AppHeader>
|
||||
|
||||
<AppContent>
|
||||
{isCreateError && (
|
||||
<ErrorAlert
|
||||
message={(createError as Error)?.message ?? t("pages.create.errorMsg")}
|
||||
title={t("pages.create.errorTitle")}
|
||||
<FormProvider {...form}>
|
||||
<UnsavedChangesProvider isDirty={form.formState.isDirty}>
|
||||
<AppHeader className="mx-auto max-w-7xl space-y-4">
|
||||
<PageHeader
|
||||
description={t("pages.create.description")}
|
||||
onBackClick={() => navigate("/customers/list")}
|
||||
rightSlot={
|
||||
<FormCommitButtonGroup
|
||||
cancel={{
|
||||
to: "/customers/list",
|
||||
}}
|
||||
disabled={createCtrl.isCreating}
|
||||
isLoading={createCtrl.isCreating}
|
||||
onReset={createCtrl.form.formState.isDirty ? createCtrl.resetForm : undefined}
|
||||
submit={{
|
||||
formId: createCtrl.formId,
|
||||
}}
|
||||
/>
|
||||
}
|
||||
title={t("pages.create.title")}
|
||||
/>
|
||||
)}
|
||||
</AppHeader>
|
||||
|
||||
<AppContent className="mx-auto max-w-7xl space-y-4">
|
||||
{isCreateError && (
|
||||
<ErrorAlert
|
||||
message={(createError as Error)?.message ?? t("pages.create.errorMsg")}
|
||||
title={t("pages.create.errorTitle")}
|
||||
/>
|
||||
)}
|
||||
|
||||
<FormProvider {...form}>
|
||||
<CustomerCreateEditorForm
|
||||
className="bg-white rounded-xl border shadow-xl max-w-7xl mx-auto mt-6"
|
||||
formId={formId}
|
||||
onSubmit={onSubmit}
|
||||
/>
|
||||
</FormProvider>
|
||||
</AppContent>
|
||||
</UnsavedChangesProvider>
|
||||
</AppContent>
|
||||
</UnsavedChangesProvider>
|
||||
</FormProvider>
|
||||
);
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user