From 9ddc36b70e15c383ade6788d81ba01ddf84ae568 Mon Sep 17 00:00:00 2001 From: fro1991 Date: Sun, 18 Jan 2026 18:19:33 +0700 Subject: [PATCH] finance Purchase Request --- src/entity/finance/finance_plan_items.ts | 5 +- src/entity/finance/finance_plans.ts | 3 +- .../finance/finance_purchase_requests.ts | 77 +++++++++++++++++++ src/schema/finances.ts | 1 + src/types/finance.ts | 6 ++ 5 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 src/entity/finance/finance_purchase_requests.ts create mode 100644 src/types/finance.ts diff --git a/src/entity/finance/finance_plan_items.ts b/src/entity/finance/finance_plan_items.ts index 3cf2ae1..62a7fb1 100644 --- a/src/entity/finance/finance_plan_items.ts +++ b/src/entity/finance/finance_plan_items.ts @@ -1,8 +1,7 @@ -import { Entity, PrimaryGeneratedColumn, Column, OneToMany, PrimaryColumn, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne, JoinColumn } from "typeorm"; -import { Status } from "../../types/status"; +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; +import { HrmsDepartment } from "../hrms/hrms_department"; import { FinancePlan } from "./finance_plans"; import { FinanceSubBudgetLine } from "./fincance_sub_budget_lines"; -import { HrmsDepartment } from "../hrms/hrms_department"; @Entity("finance_plan_items", { schema: "finances" }) export class FinancePlanItem { diff --git a/src/entity/finance/finance_plans.ts b/src/entity/finance/finance_plans.ts index 59126d7..e175fc9 100644 --- a/src/entity/finance/finance_plans.ts +++ b/src/entity/finance/finance_plans.ts @@ -1,5 +1,4 @@ -import { Entity, PrimaryGeneratedColumn, Column, OneToMany, PrimaryColumn, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from "typeorm"; -import { Status } from "../../types/status"; +import { Column, CreateDateColumn, DeleteDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; @Entity("finance_plans", { schema: "finances" }) export class FinancePlan { diff --git a/src/entity/finance/finance_purchase_requests.ts b/src/entity/finance/finance_purchase_requests.ts new file mode 100644 index 0000000..9e35055 --- /dev/null +++ b/src/entity/finance/finance_purchase_requests.ts @@ -0,0 +1,77 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; +import { HrmsEmployee } from "../hrms/hrms_employee"; +import { FinanceAtividade } from "./finance_atividade"; +import { FinanceLocalizacao } from "./finance_localizacao"; +import { FinanceSubBudgetLine } from "./fincance_sub_budget_lines"; +import { PurchaseRequestStatusType } from "../../types/finance"; + +@Entity("finance_purchase_requests", { schema: "finances" }) +export class FinancePurchaseRequest { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => FinanceAtividade, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + atividade: FinanceAtividade; + + @ManyToOne(() => FinanceLocalizacao, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + localizacao: FinanceLocalizacao; + + @ManyToOne(() => FinanceSubBudgetLine, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + sub_budget_line: FinanceSubBudgetLine; + + @Column({ + unique: true, + length: 128, + }) + code: string; + + @Column({ + nullable: false, + }) + purchase_request_at: Date; + + @Column({ + nullable: true, + type: "float8", + }) + total: number; + + @ManyToOne(() => HrmsEmployee, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + prepare_by: HrmsEmployee; + + @ManyToOne(() => HrmsEmployee, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + approval_by: HrmsEmployee; + + @Column({ + nullable: false, + default: PurchaseRequestStatusType.draft, + length: 128, + }) + status: PurchaseRequestStatusType; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} diff --git a/src/schema/finances.ts b/src/schema/finances.ts index baafbe9..dd0a504 100644 --- a/src/schema/finances.ts +++ b/src/schema/finances.ts @@ -9,3 +9,4 @@ export * from "../entity/finance/finance_bank_account"; export * from "../entity/finance/finance_localizacao"; export * from "../entity/finance/finance_plans"; export * from "../entity/finance/finance_plan_items"; +export * from "../entity/finance/finance_purchase_requests"; diff --git a/src/types/finance.ts b/src/types/finance.ts new file mode 100644 index 0000000..3886078 --- /dev/null +++ b/src/types/finance.ts @@ -0,0 +1,6 @@ +export enum PurchaseRequestStatusType { + draft = "draft", + pending_approval = "pending_approval", + approve = "approve", + reject = "reject", +}