diff --git a/src/entity/asset_inventories.ts b/src/entity/asset_inventories.ts new file mode 100644 index 0000000..66fd3d7 --- /dev/null +++ b/src/entity/asset_inventories.ts @@ -0,0 +1,127 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, JoinTable, ManyToOne, DeleteDateColumn } from "typeorm"; +import { AssetSupplier } from "./asset_supplier"; +import { AssetInventoryCondition } from "../types/asset" +import { AssetPurchaseGoodsReceipt } from "./asset_purchase_goods_receipt"; +import { AssetPurchase } from "./asset_purchase"; +import { AssetRequestOrder } from "./asset_request_order"; +import { AssetGood } from "./asset_good"; +import { Branch } from "./branchs"; + +@Entity("asset_inventories") +export class AssetInventory { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ type: "varchar", length: 255 }) + code: string; + + @ManyToOne(() => AssetPurchaseGoodsReceipt, { onDelete: 'RESTRICT' }) + @JoinTable() + purchase_goods_receipt: AssetPurchaseGoodsReceipt; + + @ManyToOne(() => AssetPurchase, { onDelete: 'RESTRICT' }) + @JoinTable() + purchase: AssetPurchase; + + @ManyToOne(() => AssetRequestOrder, { onDelete: 'RESTRICT' }) + @JoinTable() + request_order: AssetRequestOrder; + + @ManyToOne(() => AssetGood, { onDelete: 'RESTRICT' }) + @JoinTable() + good: AssetGood; + + @Column({ type: "varchar", length: 255 }) + description: string; + + @Column({ type: "varchar", length: 255 }) + serial: string; + + @Column({ type: "varchar", length: 255 }) + notes: string; + + @Column({ + nullable: true, + }) + acquired_at: Date; + + @Column({ + type: 'float8', + nullable: false, + default: 0 + }) + acquired_price: number; + + @Column({ + type: 'float8', + nullable: false, + default: 0 + }) + book_value: number; + + @Column({ + type: 'float8', + nullable: false, + default: 0 + }) + insured_value: number; + + @Column({ + type: 'float8', + nullable: false, + default: 0 + }) + current_value: number; + + @Column({ + type: 'float8', + nullable: false, + default: 0 + }) + premi_value: number; + + @Column({ type: "varchar", length: 255 }) + condition: AssetInventoryCondition; + + @Column({ type: 'varchar', length: 255, nullable: true }) + branch_id: string; + + @Column({ type: 'varchar', length: 255, nullable: true }) + branch_code: string; + + @Column({ type: 'varchar', length: 255, nullable: true }) + branch_name: string; + + @Column({ type: 'varchar', length: 255, nullable: true }) + department_id: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + department_name: string; + + @Column({ type: 'varchar', length: 255, nullable: true }) + employement_id: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + employement_name: string; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ type: "varchar", length: 255 }) + created_by: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + updated_by: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + deleted_by: string; +} diff --git a/src/entity/asset_inventory_attributes.ts b/src/entity/asset_inventory_attributes.ts new file mode 100644 index 0000000..ff2e83b --- /dev/null +++ b/src/entity/asset_inventory_attributes.ts @@ -0,0 +1,45 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, JoinTable, ManyToOne, DeleteDateColumn } from "typeorm"; +import { AssetSupplier } from "./asset_supplier"; +import { AssetInventoryCondition } from "../types/asset" +import { AssetPurchase } from "./asset_purchase"; +import { AssetRequestOrder } from "./asset_request_order"; +import { AssetGood } from "./asset_good"; +import { Branch } from "./branchs"; +import { AssetInventory } from "./asset_inventories"; + +@Entity("asset_inventory_attributes") +export class AssetInventoryAttribute { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => AssetInventory, { onDelete: 'RESTRICT' }) + @JoinTable() + inventory: AssetInventory; + + @Column({ type: "varchar", length: 255 }) + name: string; + + @Column({ type: "varchar", length: 255 }) + value: string; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ type: "varchar", length: 255 }) + created_by: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + updated_by: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + deleted_by: string; +} diff --git a/src/entity/asset_purchase_goods_receipt.ts b/src/entity/asset_purchase_goods_receipt.ts index e22d90d..81ab169 100644 --- a/src/entity/asset_purchase_goods_receipt.ts +++ b/src/entity/asset_purchase_goods_receipt.ts @@ -38,6 +38,14 @@ export class AssetPurchaseGoodsReceipt { }) balance: number; + @Column({ length: 64, default: 'N' }) + is_inventoried: string; + + @Column({ + nullable: true, + }) + inventoried_at: Date; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/index.ts b/src/index.ts index 1a45066..945de7d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -76,6 +76,8 @@ import { AssetPurchaseGoodReceiptGood } from "./entity/asset_purchase_goods_rece import { AssetPurchaseRealization } from "./entity/asset_purchase_realization"; import { AssetPurchaseBondRealizationGood } from "./entity/asset_purchase_purchase_bond_realization_good"; import { AssetPurchaseInvoice } from "./entity/asset_purchase_invoice"; +import { AssetInventory } from "./entity/asset_inventories"; +import { AssetInventoryAttribute } from "./entity/asset_inventory_attributes"; import { RemitOtp } from "./entity/remit_otp"; import { RemitPartnerUser } from "./entity/remit_partner_users"; import { RemitPartner } from "./entity/remit_partners"; @@ -170,6 +172,8 @@ export { AssetPurchaseRealization, AssetPurchaseBondRealizationGood, AssetPurchaseInvoice, + AssetInventory, + AssetInventoryAttribute, RemitOtp, RemitPartnerUser, RemitPartner, diff --git a/src/types/asset.ts b/src/types/asset.ts new file mode 100644 index 0000000..77b0f50 --- /dev/null +++ b/src/types/asset.ts @@ -0,0 +1,9 @@ +export enum AssetInventoryCondition { + "new" = "new", + "good" = "good", + "minor_damage" = "minor_damage", + "damaged" = "damaged", + "unusabel" = "unusable", + "disposed" = "disposed", + "lost" = "lost", +}; \ No newline at end of file