| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import { Injectable } from "@angular/core";
- import {
- InvestmentProposalForm,
- GeneralInfo,
- ComplementInfo
- } from "@app/models/investment-proposal-form";
- import { InvestmentProposalWorkflowService } from "@app/services/investment-proposal-workflow.service";
- import { STEPS } from "@app/models/investment-proposal-workflow";
- @Injectable({
- providedIn: "root"
- })
- export class FormInvestmentProposalService {
- private formData: InvestmentProposalForm = new InvestmentProposalForm();
- private instrumentData: any;
- private isGeneralInfoFormValid: boolean = false;
- private isWorkFormValid: boolean = false;
- private isComplementInfoFormValid: boolean = false;
- constructor(private workflowService: InvestmentProposalWorkflowService) {}
- getGeneralInfo(): GeneralInfo {
- // Return the GeneralInfo data
- var general_info: GeneralInfo = {
- asunto: this.formData.asunto,
- origenes_fondo: this.formData.origenes_fondo,
- name: this.formData.name,
- tipo_tasa: this.formData.tipo_tasa,
- tipo_renta: this.formData.tipo_renta,
- periodicidad: this.formData.periodicidad,
- instrumentos: this.formData.instrumentos,
- base_anual: this.formData.base_anual,
- casa: this.formData.casa,
- formato_ingreso: this.formData.formato_ingreso
- };
- return general_info;
- }
- setGeneralInfo(data: GeneralInfo) {
- // Update the general_info data only when the general_info Form had been validated successfully
- this.isGeneralInfoFormValid = true;
- this.formData.asunto = data.asunto;
- this.formData.origenes_fondo = data.origenes_fondo;
- this.formData.name = data.name;
- this.formData.tipo_tasa = data.tipo_tasa;
- this.formData.tipo_renta = data.tipo_renta;
- this.formData.periodicidad = data.periodicidad;
- this.formData.instrumentos = data.instrumentos;
- this.formData.base_anual = data.base_anual;
- this.formData.casa = data.casa;
- this.formData.formato_ingreso = data.formato_ingreso;
- // Validate general_info Step in Workflow
- this.workflowService.validateStep(STEPS.general);
- }
- getWork(): string {
- // Return the work type
- return this.instrumentData || undefined;
- }
- setWork(data: any) {
- // Update the work type only when the Work Form had been validated successfully
- this.isWorkFormValid = true;
- //this.formData.work = data;
- this.instrumentData = data;
- // Validate Work Step in Workflow
- this.workflowService.validateStep(STEPS.work);
- }
- // Return the complement info of an investment proposal
- getComplementInfo(): ComplementInfo {
- var complement_info: ComplementInfo = {
- tipo_mercado: this.formData.tipo_mercado,
- emisores: this.formData.emisores,
- empresa: this.formData.empresa,
- pais: this.formData.pais,
- comentarios: this.formData.comentarios,
- justificacion: this.formData.justificacion,
- plazo: this.formData.plazo,
- operaciones: this.formData.operaciones
- };
- return complement_info;
- }
- // Update the complement info data only when the form had been validated successfully
- setComplementInfo(data: ComplementInfo) {
- this.isComplementInfoFormValid = true;
- this.formData.tipo_mercado = data.tipo_mercado;
- this.formData.emisores = data.emisores;
- this.formData.empresa = data.empresa;
- this.formData.pais = data.pais;
- this.formData.plazo = data.plazo;
- this.formData.operaciones = data.operaciones;
- this.formData.comentarios = data.comentarios;
- this.formData.justificacion = data.justificacion;
- // Validate complement_info Step in Workflow
- this.workflowService.validateStep(STEPS.complement);
- }
- getFormData(): InvestmentProposalForm {
- // Return the entire Form Data
- return this.formData;
- }
- resetFormData(): InvestmentProposalForm {
- // Reset the workflow
- // Return the form data after all this.* members had been reset
- this.formData.clear();
- this.instrumentData = undefined;
- this.setWork(this.instrumentData);
- this.isGeneralInfoFormValid = this.isWorkFormValid = this.isComplementInfoFormValid = false;
- this.workflowService.resetSteps();
- return this.formData;
- }
- isFormValid() {
- // Return true if all forms had been validated successfully; otherwise, return false
- return (
- this.isGeneralInfoFormValid &&
- this.isWorkFormValid &&
- this.isComplementInfoFormValid
- );
- }
- }
|