UNPKG

@tomei/rental

Version:
74 lines (73 loc) 4.19 kB
import { IRentalAttr } from '../../interfaces/rental-attr.interface'; import { RentalStatusEnum } from '../../enum/rental-status.enum'; import { RentalRepository } from './rental.repository'; import { ObjectBase } from '@tomei/general'; import { LoginUser } from '@tomei/sso'; import { RentalPrice } from '../rental-price/rental-price'; import { IRentalFindAllSearchAttr } from '../../interfaces/rental-find-all-search-attr.interface'; import { RentalAccountTypeEnum } from '../../enum/account-type.enum'; import { JointHirer } from '../joint-hirer/joint-hirer'; import { AgreementRepository } from '../agreement/agreement.repository'; import { JointHirerRepository } from '../joint-hirer/joint-hirer.repository'; import { AgreementSignatureRepository } from '../agreement-signature/agreement-signature.repository'; import { AgreementHistoryRepository } from '../agreement-history/agreement-history.repository'; import { Document, IAccountSystem } from '@tomei/finance'; import { AgreementSignatureVerificationMethodEnum } from '../../enum/agreement-signature-verification-method.enum'; export declare class Rental extends ObjectBase { ObjectId: string; ObjectName: string; ObjectType: string; TableName: string; CustomerId: string; CustomerType: string; ItemId: string; ItemType: string; PriceId: string; StartDateTime: Date; EndDateTime: Date; CancelRemarks: string; TerminateRemarks: string; AgreementNo: string; AccountType: RentalAccountTypeEnum; JointHirers: JointHirer[]; Invoices: Document[]; Item: any; protected _Status: RentalStatusEnum | string; protected _EscheatmentYN: string; protected _CreatedById: string; protected _CreatedAt: Date; protected _UpdatedById: string; protected _UpdatedAt: Date; protected static _Repo: RentalRepository; protected static _AgreementRepo: AgreementRepository; protected static _JointHirerRepo: JointHirerRepository; protected static _AgreementSignatureRepo: AgreementSignatureRepository; protected static _AgreementHistoryRepo: AgreementHistoryRepository; get RentalId(): string; set RentalId(value: string); get Status(): RentalStatusEnum | string; get EscheatmentYN(): string; get CreatedById(): string; get CreatedAt(): Date; get UpdatedById(): string; get UpdatedAt(): Date; private setTerminated; protected constructor(rentalAttr?: IRentalAttr); static init(dbTransaction?: any, rentalId?: string): Promise<Rental>; create(rentalPrice: RentalPrice, loginUser: LoginUser, jointHirers?: JointHirer[], dbTransaction?: any): Promise<any>; static isItemAvailable(itemId: string, itemType: string, startDateTime: Date, endDateTime: Date, dbTransaction?: any): Promise<boolean>; static findAll(loginUser: LoginUser, dbTransaction: any, page?: number, row?: number, search?: IRentalFindAllSearchAttr): Promise<any>; static checkActiveByItemId(loginUser: LoginUser, itemId: string, itemType: string, dbTransaction?: any): Promise<boolean>; setStartDateTime(startDateTime: Date): void; periodEndProcess(loginUser: LoginUser, dbTransaction: any, stockInventory: any): Promise<this>; getCustomerActiveRentals(loginUser: LoginUser, dbTransaction: any, CustomerId: string): Promise<IRentalAttr[]>; getJointHirers(dbTransaction: any): Promise<JointHirer[]>; getCustomerIds(loginUser: LoginUser, dbTransaction: any): Promise<string[]>; signAgreement(loginUser: LoginUser, party: string, PartyId: string, PartyType: string, dbTransaction: any, statusAfterSign?: RentalStatusEnum | string, method?: AgreementSignatureVerificationMethodEnum, justification?: string): Promise<void>; generateAgreement(loginUser: LoginUser, dbTransaction: any, MediaId: string): Promise<void>; toJSON(): IRentalAttr; getInvoices(loginUser: LoginUser, dbTransaction: any, accountingSystem?: IAccountSystem): Promise<Document[]>; getItem(dbTransaction: any): Promise<any>; cancel(loginUser: LoginUser, dbTransaction: any, remarks: string): Promise<Rental>; update(loginUser: LoginUser, dbTransaction: any, updates: Partial<IRentalAttr>): Promise<Rental>; }