import { CategorySetup } from './budget-setup.models'; import { EBudgetBuildType } from '../enums/ebudget-build-type.enum'; import { ETipoGeneracionPresupuestoFinanciacion } from '../enums/etipo-generacion-presupuesto-financiacion.enum'; export interface NewBudgetDto { oldId: string; promCode: string; applicationId: string; budgetSetupId: string; studyStart: string; studyEnd: string; financingStart: string; financingEnd: string; overwrite: boolean; tag: EBudgetBuildType; } export declare enum EPeriodicity { monthly = "monthly", multidate = "multidate", repeated = "repeated", unique = "unique", composite = "composite", annual = "annual", automatic = "automatic" } export interface BudgetWizard { id: string; created: string; modified: string; applicationId: string; promCodigo: number; budgetSetupId: string; userBudgetId: string; studyStart: string; studyEnd: string; financingStart: string; financingEnd: string; setupStart: string; setupEnd: string; financingYears: number; financingPeriods: number; financingMonths: number; categories: CategoryWizard[]; tag: string; baseCurrency: string; _version: string; } export interface CategoryWizard { category: string; type: EPeriodicity; currency: string; baseCurrency: string; baseExchangeRate: number; paymentMultiDate?: WizardPaymentMultiDate; paymentMonthly?: WizardPaymentMonthly; paymentUnique?: WizardPaymentUnique; paymentComposite?: WizardPaymentComposite; paymentRepeated?: WizardPaymentRepeated; paymentAnnual?: WizardPaymentAnnual; periodicityFinancing: ETipoGeneracionPresupuestoFinanciacion; financingPeriod: string; rule: CategorySetup; } export interface WizardPaymentMultiDate { maxPayments: number; periodPayments: PeriodPayment[]; } export interface PeriodPayment { date: string; value: number; } export interface WizardPaymentMonthly { value: number; subCategories: SubcategoryValue[]; } export interface WizardPaymentUnique { date: string; value: number; subCategories: SubcategoryValue[]; } export interface WizardPaymentAnnual { month: number; value: number; subCategories: SubcategoryValue[]; } export interface SubcategoryValue { name: string; description: string; value: number; } export interface WizardPaymentComposite { children: WizardPaymentRepeated[]; } export interface WizardPaymentRepeated { subcategory: string; repeatEachMonths: number; value: number; }