65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
/**
|
|
* Contract Entity
|
|
* Contratos con clientes y subcontratistas
|
|
*
|
|
* @module Contracts
|
|
* @table contracts.contracts
|
|
*/
|
|
import { Tenant } from '../../core/entities/tenant.entity';
|
|
import { User } from '../../core/entities/user.entity';
|
|
import { ContractAddendum } from './contract-addendum.entity';
|
|
export type ContractType = 'client' | 'subcontractor';
|
|
export type ContractStatus = 'draft' | 'review' | 'approved' | 'active' | 'completed' | 'terminated';
|
|
export type ClientContractType = 'desarrollo' | 'llave_en_mano' | 'administracion';
|
|
export declare class Contract {
|
|
id: string;
|
|
tenantId: string;
|
|
projectId: string;
|
|
fraccionamientoId: string;
|
|
contractNumber: string;
|
|
contractType: ContractType;
|
|
clientContractType: ClientContractType;
|
|
name: string;
|
|
description: string;
|
|
clientName: string;
|
|
clientRfc: string;
|
|
clientAddress: string;
|
|
subcontractorId: string;
|
|
specialty: string;
|
|
startDate: Date;
|
|
endDate: Date;
|
|
contractAmount: number;
|
|
currency: string;
|
|
paymentTerms: string;
|
|
retentionPercentage: number;
|
|
advancePercentage: number;
|
|
status: ContractStatus;
|
|
submittedAt: Date;
|
|
submittedById: string;
|
|
legalApprovedAt: Date;
|
|
legalApprovedById: string;
|
|
approvedAt: Date;
|
|
approvedById: string;
|
|
signedAt: Date;
|
|
terminatedAt: Date;
|
|
terminationReason: string;
|
|
documentUrl: string;
|
|
signedDocumentUrl: string;
|
|
progressPercentage: number;
|
|
invoicedAmount: number;
|
|
paidAmount: number;
|
|
notes: string;
|
|
createdAt: Date;
|
|
createdById: string;
|
|
updatedAt: Date;
|
|
updatedById: string;
|
|
deletedAt: Date;
|
|
deletedById: string;
|
|
get remainingAmount(): number;
|
|
get isExpiring(): boolean;
|
|
tenant: Tenant;
|
|
createdBy: User;
|
|
approvedBy: User;
|
|
addendums: ContractAddendum[];
|
|
}
|
|
//# sourceMappingURL=contract.entity.d.ts.map
|