This commit is contained in:
2026-06-26 12:40:16 +03:30
parent 6d16a7dde5
commit 1f74019eaf
5 changed files with 38 additions and 30 deletions
+10 -3
View File
@@ -5,7 +5,7 @@ export class Migration20260626140000 extends Migration {
override async up(): Promise<void> { override async up(): Promise<void> {
this.addSql(` this.addSql(`
alter table "invoices" alter table "invoices"
add column "confirm_status" text check ("confirm_status" in ('pending', 'confirmed')) not null default 'pending'; add column "confirm_status" text check ("confirm_status" in ('pending', 'partially_confirmed', 'confirmed')) not null default 'pending';
`); `);
this.addSql(` this.addSql(`
@@ -55,14 +55,21 @@ export class Migration20260626140000 extends Migration {
AND deleted_at IS NULL; AND deleted_at IS NULL;
SELECT CASE SELECT CASE
WHEN EXISTS ( WHEN NOT EXISTS (
SELECT 1 SELECT 1
FROM invoice_items FROM invoice_items
WHERE invoice_id = v_invoice_id WHERE invoice_id = v_invoice_id
AND deleted_at IS NULL AND deleted_at IS NULL
AND confirmed_at IS NOT NULL AND confirmed_at IS NOT NULL
) THEN 'pending'
WHEN NOT EXISTS (
SELECT 1
FROM invoice_items
WHERE invoice_id = v_invoice_id
AND deleted_at IS NULL
AND confirmed_at IS NULL
) THEN 'confirmed' ) THEN 'confirmed'
ELSE 'pending' ELSE 'partially_confirmed'
END END
INTO v_confirm_status; INTO v_confirm_status;
+1 -1
View File
@@ -10,7 +10,7 @@
"db:update": "npx mikro-orm schema:update --run --config ./src/config/mikro-orm.config.dev.ts ", "db:update": "npx mikro-orm schema:update --run --config ./src/config/mikro-orm.config.dev.ts ",
"db:drop": "npx mikro-orm schema:drop --run --config ./src/config/mikro-orm.config.dev.ts", "db:drop": "npx mikro-orm schema:drop --run --config ./src/config/mikro-orm.config.dev.ts",
"db:refresh": "npm run db:drop && npm run db:create ", "db:refresh": "npm run db:drop && npm run db:create ",
"db:reset": "npm run db:drop && npm run db:create && npm run db:seed", "db:reset": "npm run db:drop && npm run db:create && npm run migration:up && npm run db:seed",
"db:seed": "npx mikro-orm seeder:run --config ./src/config/mikro-orm.config.dev.ts", "db:seed": "npx mikro-orm seeder:run --config ./src/config/mikro-orm.config.dev.ts",
"build": "nest build", "build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
@@ -80,8 +80,8 @@ export class Invoice extends BaseEntity {
balance: number & Opt; balance: number & Opt;
@Enum({ items: () => InvoiceConfirmStatusEnum, persist: false }) @Enum(() => InvoiceConfirmStatusEnum)
confirmStatus!: InvoiceConfirmStatusEnum & Opt; confirmStatus: InvoiceConfirmStatusEnum = InvoiceConfirmStatusEnum.PENDING;
@Property({ type: 'boolean', default: false }) @Property({ type: 'boolean', default: false })
enableTax?: boolean = false enableTax?: boolean = false
@@ -1,4 +1,5 @@
export enum InvoiceConfirmStatusEnum { export enum InvoiceConfirmStatusEnum {
PENDING = 'pending', PENDING = 'pending',
PARTIALLY_CONFIRMED = 'partially_confirmed',
CONFIRMED = 'confirmed', CONFIRMED = 'confirmed',
} }
+24 -24
View File
@@ -13,32 +13,32 @@ export const adminsData: AdminData[] = [
roleName: 'admin', roleName: 'admin',
}, },
{ // {
phone: '09121724095', // phone: '09121724095',
firstName: 'آقای', // firstName: 'آقای',
lastName: 'نواعتقاد', // lastName: 'نواعتقاد',
roleName: 'admin', // roleName: 'admin',
}, // },
{ // {
phone: '09185290775', // phone: '09185290775',
firstName: 'حمید', // firstName: 'حمید',
lastName: 'ضرقامی', // lastName: 'ضرقامی',
roleName: 'admin', // roleName: 'admin',
}, // },
{ // {
phone: '09180000000', // phone: '09180000000',
firstName: 'ندا', // firstName: 'ندا',
lastName: 'سعیدی', // lastName: 'سعیدی',
roleName: 'designer', // roleName: 'designer',
}, // },
{ // {
phone: '09184317567', // phone: '09184317567',
firstName: 'حسابداری', // firstName: 'حسابداری',
lastName: 'ح', // lastName: 'ح',
roleName: 'accountant', // roleName: 'accountant',
}, // },
]; ];