update entity
This commit is contained in:
@ -7,21 +7,9 @@ import {
|
|||||||
DeleteDateColumn,
|
DeleteDateColumn,
|
||||||
OneToMany,
|
OneToMany,
|
||||||
} from 'typeorm';
|
} from 'typeorm';
|
||||||
import { Goods } from './goods';
|
|
||||||
import { RequestSubmission } from './request_submission';
|
import { RequestSubmission } from './request_submission';
|
||||||
|
import { ApprovalStatus } from '../enum/approvalStatus';
|
||||||
enum ApprovalStatus {
|
import { DocumentStatus } from '../enum/documentStatus';
|
||||||
PENDING = 'PENDING',
|
|
||||||
APPROVED = 'APPROVED',
|
|
||||||
REJECTED = 'REJECTED',
|
|
||||||
}
|
|
||||||
|
|
||||||
enum RequestOrderStatus {
|
|
||||||
DRAFT = 'DRAFT',
|
|
||||||
SUBMITTED = 'SUBMITTED',
|
|
||||||
APPROVED = 'APPROVED',
|
|
||||||
REJECTED = 'REJECTED',
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity('request_orders')
|
@Entity('request_orders')
|
||||||
export class RequestOrder {
|
export class RequestOrder {
|
||||||
@ -46,8 +34,8 @@ export class RequestOrder {
|
|||||||
@Column({ type: 'text', nullable: true })
|
@Column({ type: 'text', nullable: true })
|
||||||
remarks: string | null;
|
remarks: string | null;
|
||||||
|
|
||||||
@Column({ type: 'enum', enum: RequestOrderStatus, nullable: false })
|
@Column({ type: 'enum', enum: DocumentStatus, nullable: false })
|
||||||
status: RequestOrderStatus;
|
status: DocumentStatus;
|
||||||
|
|
||||||
@Column({ length: 2, nullable: false })
|
@Column({ length: 2, nullable: false })
|
||||||
purchasing_method: string;
|
purchasing_method: string;
|
||||||
@ -82,13 +70,14 @@ export class RequestOrder {
|
|||||||
@Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
|
@Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
|
||||||
ga_approval_status: ApprovalStatus;
|
ga_approval_status: ApprovalStatus;
|
||||||
|
|
||||||
// Relationship with Goods
|
// Storing goods as a JSON array, Use 'jsonb' for PostgreSQL or 'json' for MySQL
|
||||||
@OneToMany(() => Goods, (goods) => goods.id)
|
@Column({ type: 'jsonb', nullable: true })
|
||||||
goods: Goods[];
|
goods: Array<{
|
||||||
|
name: string;
|
||||||
// Storing related goods UUIDs as an array
|
item_code: string;
|
||||||
@Column('uuid', { array: true, nullable: true })
|
quantity: number;
|
||||||
goods_ids: string[];
|
price: number;
|
||||||
|
}>;
|
||||||
|
|
||||||
@OneToMany(() => RequestSubmission, (submission) => submission.request_order, { cascade: true })
|
@OneToMany(() => RequestSubmission, (submission) => submission.request_order, { cascade: true })
|
||||||
submissions: RequestSubmission[];
|
submissions: RequestSubmission[];
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import {
|
|||||||
} from 'typeorm';
|
} from 'typeorm';
|
||||||
import { SubmissionRecap } from './request_submission_recap';
|
import { SubmissionRecap } from './request_submission_recap';
|
||||||
import { RequestOrder } from './request_orders';
|
import { RequestOrder } from './request_orders';
|
||||||
|
import { ApprovalStatus } from '../enum/approvalStatus';
|
||||||
@Entity('request_submissions')
|
@Entity('request_submissions')
|
||||||
export class RequestSubmission {
|
export class RequestSubmission {
|
||||||
@PrimaryGeneratedColumn('uuid')
|
@PrimaryGeneratedColumn('uuid')
|
||||||
@ -57,6 +57,36 @@ export class RequestSubmission {
|
|||||||
@Column({ type: 'decimal', precision: 12, scale: 2, nullable: false, default: 0.0 })
|
@Column({ type: 'decimal', precision: 12, scale: 2, nullable: false, default: 0.0 })
|
||||||
total: number;
|
total: number;
|
||||||
|
|
||||||
|
// Supervisor Approval
|
||||||
|
@Column({ type: 'varchar', nullable: true })
|
||||||
|
approved_by_spv: string | null;
|
||||||
|
|
||||||
|
@Column({ type: 'timestamp', nullable: true })
|
||||||
|
spv_approval_date: Date | null;
|
||||||
|
|
||||||
|
@Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
|
||||||
|
spv_approval_status: ApprovalStatus;
|
||||||
|
|
||||||
|
// General Manager Approval
|
||||||
|
@Column({ type: 'varchar', nullable: true })
|
||||||
|
approved_by_gm: string | null;
|
||||||
|
|
||||||
|
@Column({ type: 'timestamp', nullable: true })
|
||||||
|
gm_approval_date: Date | null;
|
||||||
|
|
||||||
|
@Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
|
||||||
|
gm_approval_status: ApprovalStatus;
|
||||||
|
|
||||||
|
// General Affairs (GA) Approval
|
||||||
|
@Column({ type: 'varchar', nullable: true })
|
||||||
|
approved_by_ga: string | null;
|
||||||
|
|
||||||
|
@Column({ type: 'timestamp', nullable: true })
|
||||||
|
ga_approval_date: Date | null;
|
||||||
|
|
||||||
|
@Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
|
||||||
|
ga_approval_status: ApprovalStatus;
|
||||||
|
|
||||||
@CreateDateColumn()
|
@CreateDateColumn()
|
||||||
created_at: Date;
|
created_at: Date;
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,9 @@ export class SubmissionRecap {
|
|||||||
@OneToMany(() => RequestSubmission, (submission) => submission.recap, { cascade: true })
|
@OneToMany(() => RequestSubmission, (submission) => submission.recap, { cascade: true })
|
||||||
submission_ids: RequestSubmission[];
|
submission_ids: RequestSubmission[];
|
||||||
|
|
||||||
|
@Column({ type: 'varchar', nullable: true })
|
||||||
|
item_code: string;
|
||||||
|
|
||||||
@Column({ type: 'varchar', nullable: true })
|
@Column({ type: 'varchar', nullable: true })
|
||||||
created_by: string;
|
created_by: string;
|
||||||
|
|
||||||
|
|||||||
5
src/enum/approvalStatus.ts
Normal file
5
src/enum/approvalStatus.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export enum ApprovalStatus {
|
||||||
|
PENDING = 'PENDING',
|
||||||
|
APPROVED = 'APPROVED',
|
||||||
|
REJECTED = 'REJECTED',
|
||||||
|
}
|
||||||
7
src/enum/documentStatus.ts
Normal file
7
src/enum/documentStatus.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
export enum DocumentStatus {
|
||||||
|
DRAFT = 'DRAFT',
|
||||||
|
SUBMITTED = 'SUBMITTED',
|
||||||
|
APPROVED = 'APPROVED',
|
||||||
|
REJECTED = 'REJECTED',
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user