import { EntityEnum, Nullable } from "../interface/entity.utils.interface"; import { RelationConfigs } from "../interface/relation-config.interface"; import { IUserEntity } from "../interface/user.entity.interface"; import { BaseEntityModel } from "./base.entity.model"; import { IRowActions } from "./interface/row-actions.interface"; import { UserEntityModel } from "./user.entity.model"; import { VendorActionEnum } from "../enums/vendor_action_enum"; import { VendorContractApplicabilityEnum } from "../enums/vendor_contract_applicability_enum"; import { VendorGstTypeEnum } from "../enums/vendor_gst_type_enum"; import { VendorLocationTypeEnum } from "../enums/vendor_location_type_enum"; import { VendorPanTypeEnum } from "../enums/vendor_pan_type_enum"; import { VendorStatusEnum } from "../enums/vendor_status_enum"; import { IVendorFlowConfigContextData } from "../flow-configs/vendor_flow.config"; import { IVendorEntity } from "../interface/vendor.entity.interface"; import { BankEntityModel } from "./bank.entity.model"; import { CountryEntityModel } from "./country.entity.model"; import { ExpenseHeadEntityModel } from "./expense_head.entity.model"; import { GstRateEntityModel } from "./gst_rate.entity.model"; import { OfficeLocationEntityModel } from "./office_location.entity.model"; import { OrganizationTypeEntityModel } from "./organization_type.entity.model"; import { StateEntityModel } from "./state.entity.model"; import { TdsRateEntityModel } from "./tds_rate.entity.model"; import { VendorAdvanceEntityModel } from "./vendor_advance.entity.model"; import { VendorInvoiceEntityModel } from "./vendor_invoice.entity.model"; import { VendorInvoiceAdvanceEntityModel } from "./vendor_invoice_advance.entity.model"; import { VendorInvoiceItemEntityModel } from "./vendor_invoice_item.entity.model"; import { VendorInvoicePaymentEntityModel } from "./vendor_invoice_payment.entity.model"; import { VendorTdsChallanEntityModel } from "./vendor_tds_challan.entity.model"; import { VendorTdsLiabilityEntityModel } from "./vendor_tds_liability.entity.model"; import { VoucherTypeEntityModel } from "./voucher_type.entity.model"; export declare class VendorEntityModel extends BaseEntityModel implements IVendorEntity { id: number; name: string; locationType: VendorLocationTypeEnum; address?: string; city?: string; pincode?: string; state: string; country: string; gstType: VendorGstTypeEnum; gstNo?: string; panType: VendorPanTypeEnum; panNo?: string; contractApplicability: VendorContractApplicabilityEnum; panDocument?: string; gstDocument?: string; contractDocument?: string; remarks?: string; paymentDueDays?: number; attachmentDocuments?: string; contactDetail?: string; bankDetail?: string; organizationTypeId?: number; status: VendorStatusEnum; remark: Nullable; createdOn: number; updatedOn: number; createdBy: number; updatedBy: number; stateModel?: StateEntityModel; countryModel?: CountryEntityModel; organizationType?: OrganizationTypeEntityModel; vendorInvoices?: VendorInvoiceEntityModel[]; vendorAdvances?: VendorAdvanceEntityModel[]; vendorInvoiceAdvances?: VendorInvoiceAdvanceEntityModel[]; static relationConfigs: RelationConfigs<[ EntityEnum.STATE, EntityEnum.COUNTRY, EntityEnum.ORGANIZATION_TYPE, EntityEnum.VENDOR_INVOICE, EntityEnum.VENDOR_ADVANCE, EntityEnum.VENDOR_INVOICE_ADVANCE ], EntityEnum.VENDOR>; static fromEntity(entity: IVendorEntity): VendorEntityModel; getRelationConfigs(): any[]; get officeLocations(): OfficeLocationEntityModel[] | undefined; get vendorInvoiceItems(): VendorInvoiceItemEntityModel[] | undefined; get voucherTypes(): VoucherTypeEntityModel[] | undefined; get tdsRates(): TdsRateEntityModel[] | undefined; get vendorTdsLiabilitys(): VendorTdsLiabilityEntityModel[] | undefined; get vendorTdsChallans(): VendorTdsChallanEntityModel[] | undefined; get expenseHeads(): ExpenseHeadEntityModel[] | undefined; get banks(): BankEntityModel[] | undefined; get gstRates(): GstRateEntityModel[] | undefined; get vendorInvoicePayments(): VendorInvoicePaymentEntityModel[] | undefined; getNextStatus(currentUser: IUserEntity, action: VendorActionEnum, vendorFlowConfigContextData: IVendorFlowConfigContextData): VendorStatusEnum; getAvailableActions(currentUser: UserEntityModel, config?: { combinedActions?: Record; customLabels?: Partial>; }): IRowActions[]; getUpdateActionVisibility(currentUser: UserEntityModel): { [key: string]: () => boolean; }; static readonly VENDOR_ENTITY_DOCUMENT_TYPES: readonly ["pan", "gst"]; /** * Default number of days added to the Invoice Date to calculate the Due Date, * used as a fallback when the Vendor does not have a `paymentDueDays` value configured. * * @formula * DueDate = InvoiceDate + (vendor.paymentDueDays ?? VendorEntityModel.DEFAULT_DUE_DAYS) * * @example * vendor.paymentDueDays = 30 → DueDate = InvoiceDate + 30 * vendor.paymentDueDays = null → DueDate = InvoiceDate + 7 (this constant) * * @see VendorEntityModel.paymentDueDays */ static readonly DEFAULT_DUE_DAYS = 7; }