Files
entity/src/entity/asset_inventory_depreciations.ts
2025-04-25 14:48:36 +07:00

128 lines
2.9 KiB
TypeScript

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;
}