diff --git a/src/entity/hrms/hrms_bank.ts b/src/entity/hrms/hrms_bank.ts new file mode 100644 index 0000000..0749696 --- /dev/null +++ b/src/entity/hrms/hrms_bank.ts @@ -0,0 +1,57 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from "typeorm"; +import { Status } from "../../types/status"; + +@Entity("hrms_banks", { schema: "hrms" }) +export class HrmsBank { + @PrimaryGeneratedColumn('uuid') + id: string; + + @Column({ + nullable: false, + unique: false, + length: 64 + }) + code: string; + + @Column({ + nullable: false, + unique: false, + length: 128 + }) + name: string; + + @Column({ + nullable: true, + unique: false, + length: 256 + }) + description: string; + + @Column({ + nullable: false, + length: 64 + }) + status: Status; + + @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/entity/hrms/hrms_payroll.ts b/src/entity/hrms/hrms_payroll.ts new file mode 100644 index 0000000..666f820 --- /dev/null +++ b/src/entity/hrms/hrms_payroll.ts @@ -0,0 +1,67 @@ +import { + Entity, + PrimaryGeneratedColumn, + Column, + CreateDateColumn, + UpdateDateColumn, + DeleteDateColumn, + ManyToOne, + JoinColumn, +} from "typeorm"; +import { Status } from "../../types/status"; +import { HrmsEmployee } from "./hrms_employee"; +import { HrmsBank } from "./hrms_bank"; + +@Entity("hrms_payroll", { schema: "hrms" }) +export class HrmsPayroll { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => HrmsEmployee, { onDelete: "RESTRICT", nullable: false }) + @JoinColumn({ name: "employee_id" }) + employee: HrmsEmployee; + + @ManyToOne(() => HrmsBank, { onDelete: "RESTRICT", nullable: false }) + @JoinColumn({ name: "bank_id" }) + bank: HrmsBank; + + @Column({ length: 128, nullable: false }) + account_number: string; + + @Column({ length: 128, nullable: false }) + account_name: string; + + @Column({ type: "decimal", precision: 15, scale: 2, nullable: false }) + basic_salary: number; + + @Column({ type: "decimal", precision: 15, scale: 2, nullable: false, default: 0 }) + subsidy: number; + + @Column({ type: "decimal", precision: 5, scale: 2, nullable: false, default: 4.0 }) + niss_percentage: number; + + @Column({ type: "decimal", precision: 5, scale: 2, nullable: false, default: 10.0 }) + tax_percentage: number; + + @Column({ length: 64 }) + status: Status; + + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @UpdateDateColumn({ nullable: true }) + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @DeleteDateColumn({ nullable: true }) + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} + diff --git a/src/entity/users.ts b/src/entity/users.ts index 6d56105..9f3a112 100644 --- a/src/entity/users.ts +++ b/src/entity/users.ts @@ -21,7 +21,7 @@ export class User { unique: false, length: 64 }) - nik: string; + employee_id: string; @Column({ nullable: false, diff --git a/src/schema/hrms.ts b/src/schema/hrms.ts index da3500f..d80af7e 100644 --- a/src/schema/hrms.ts +++ b/src/schema/hrms.ts @@ -8,5 +8,7 @@ export * from "../entity/hrms/hrms_employee"; export * from "../entity/hrms/hrms_scholarship"; export * from "../entity/hrms/hrms_training"; export * from "../entity/hrms/hrms_training_participant"; +export * from "../entity/hrms/hrms_bank"; +export * from "../entity/hrms/hrms_payroll"; export * from "../types/hrms";