diff --git a/src/entity/asset_fixed_type.ts b/src/entity/asset_fixed_type.ts index fe48362..5444a0a 100644 --- a/src/entity/asset_fixed_type.ts +++ b/src/entity/asset_fixed_type.ts @@ -1,5 +1,6 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne, JoinTable } from "typeorm" import { AssetFixedClassification } from "./asset_fixed_classification" +import { AssetFixedTypeType } from "../types/asset" @Entity("asset_fixed_types") export class AssetFixedType { @@ -19,6 +20,15 @@ export class AssetFixedType { @Column({ type: "text", nullable: true }) description: string + @Column({ type: "text", nullable: true }) + type: AssetFixedTypeType + + @Column({ type: "float8", default: 0 }) + depreciation_percent: number + + @Column({ type: "smallint", default: 0 }) + depreciation_month: number + @Column() @CreateDateColumn() created_at: Date diff --git a/src/entity/asset_inventory_depreciations.ts b/src/entity/asset_inventory_depreciations.ts new file mode 100644 index 0000000..8fc9348 --- /dev/null +++ b/src/entity/asset_inventory_depreciations.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 }) + employee_id: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + employee_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/index.ts b/src/index.ts index 2d80594..6972c08 100644 --- a/src/index.ts +++ b/src/index.ts @@ -76,7 +76,7 @@ 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 { AssetInventoryCondition } from "./types/asset"; +import { AssetInventoryCondition, AssetFixedTypeType } from "./types/asset"; import { AssetInventory } from "./entity/asset_inventories"; import { AssetInventoryAttribute } from "./entity/asset_inventory_attributes"; import { AssetInventoryHistory } from "./entity/asset_inventory_histories"; @@ -199,6 +199,7 @@ export { AssetInventory, AssetInventoryAttribute, AssetInventoryHistory, + AssetFixedTypeType, RemitOtp, RemitPartnerUser, RemitPartner, diff --git a/src/types/asset.ts b/src/types/asset.ts index 77b0f50..52ce45e 100644 --- a/src/types/asset.ts +++ b/src/types/asset.ts @@ -6,4 +6,9 @@ export enum AssetInventoryCondition { "unusabel" = "unusable", "disposed" = "disposed", "lost" = "lost", -}; \ No newline at end of file +}; + +export enum AssetFixedTypeType { + "exploitation" = "exploitation", + "depreciation" = "depreciation" +} \ No newline at end of file