update entity
This commit is contained in:
@ -7,21 +7,9 @@ import {
|
||||
DeleteDateColumn,
|
||||
OneToMany,
|
||||
} from 'typeorm';
|
||||
import { Goods } from './goods';
|
||||
import { RequestSubmission } from './request_submission';
|
||||
|
||||
enum ApprovalStatus {
|
||||
PENDING = 'PENDING',
|
||||
APPROVED = 'APPROVED',
|
||||
REJECTED = 'REJECTED',
|
||||
}
|
||||
|
||||
enum RequestOrderStatus {
|
||||
DRAFT = 'DRAFT',
|
||||
SUBMITTED = 'SUBMITTED',
|
||||
APPROVED = 'APPROVED',
|
||||
REJECTED = 'REJECTED',
|
||||
}
|
||||
import { ApprovalStatus } from '../enum/approvalStatus';
|
||||
import { DocumentStatus } from '../enum/documentStatus';
|
||||
|
||||
@Entity('request_orders')
|
||||
export class RequestOrder {
|
||||
@ -46,8 +34,8 @@ export class RequestOrder {
|
||||
@Column({ type: 'text', nullable: true })
|
||||
remarks: string | null;
|
||||
|
||||
@Column({ type: 'enum', enum: RequestOrderStatus, nullable: false })
|
||||
status: RequestOrderStatus;
|
||||
@Column({ type: 'enum', enum: DocumentStatus, nullable: false })
|
||||
status: DocumentStatus;
|
||||
|
||||
@Column({ length: 2, nullable: false })
|
||||
purchasing_method: string;
|
||||
@ -82,13 +70,14 @@ export class RequestOrder {
|
||||
@Column({ type: 'enum', enum: ApprovalStatus, default: ApprovalStatus.PENDING })
|
||||
ga_approval_status: ApprovalStatus;
|
||||
|
||||
// Relationship with Goods
|
||||
@OneToMany(() => Goods, (goods) => goods.id)
|
||||
goods: Goods[];
|
||||
|
||||
// Storing related goods UUIDs as an array
|
||||
@Column('uuid', { array: true, nullable: true })
|
||||
goods_ids: string[];
|
||||
// Storing goods as a JSON array, Use 'jsonb' for PostgreSQL or 'json' for MySQL
|
||||
@Column({ type: 'jsonb', nullable: true })
|
||||
goods: Array<{
|
||||
name: string;
|
||||
item_code: string;
|
||||
quantity: number;
|
||||
price: number;
|
||||
}>;
|
||||
|
||||
@OneToMany(() => RequestSubmission, (submission) => submission.request_order, { cascade: true })
|
||||
submissions: RequestSubmission[];
|
||||
|
||||
@ -10,7 +10,7 @@ import {
|
||||
} from 'typeorm';
|
||||
import { SubmissionRecap } from './request_submission_recap';
|
||||
import { RequestOrder } from './request_orders';
|
||||
|
||||
import { ApprovalStatus } from '../enum/approvalStatus';
|
||||
@Entity('request_submissions')
|
||||
export class RequestSubmission {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
@ -57,6 +57,36 @@ export class RequestSubmission {
|
||||
@Column({ type: 'decimal', precision: 12, scale: 2, nullable: false, default: 0.0 })
|
||||
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()
|
||||
created_at: Date;
|
||||
|
||||
|
||||
@ -38,6 +38,9 @@ export class SubmissionRecap {
|
||||
@OneToMany(() => RequestSubmission, (submission) => submission.recap, { cascade: true })
|
||||
submission_ids: RequestSubmission[];
|
||||
|
||||
@Column({ type: 'varchar', nullable: true })
|
||||
item_code: string;
|
||||
|
||||
@Column({ type: 'varchar', nullable: true })
|
||||
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