@tomei/rental
Version:
Tomei Rental Package
74 lines (73 loc) • 4.19 kB
TypeScript
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>;
}