certificados.component.ts 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. import { Component, OnInit, Input, ViewChild } from "@angular/core";
  2. import { InstrumentComponent } from "@app/components/investment-proposals/instrument/instrument.component";
  3. import { FormBuilder, FormGroup, Validators } from "@angular/forms";
  4. import { IAngularMyDpOptions, IMyDateModel } from "angular-mydatepicker";
  5. import { formatDate, DatePipe } from "@angular/common";
  6. import { Router } from "@angular/router";
  7. import { FormInvestmentProposalService } from "@app/services/form-investment-proposal.service";
  8. import { CatalogsService } from "@app/services/catalogs.service";
  9. import { InstrumentCalculations } from "@app/services/instrument-calculations.service";
  10. import Swal from "sweetalert2";
  11. import { GeneralInfo } from "@app/models/investment-proposal-form";
  12. import { parse } from "date-fns";
  13. import { MatPaginator } from "@angular/material/paginator";
  14. import { MatSort } from "@angular/material/sort";
  15. import { MatTableDataSource } from "@angular/material/table";
  16. @Component({
  17. selector: "app-certificados",
  18. templateUrl: "./certificados.component.html"
  19. })
  20. export class CINV implements InstrumentComponent {
  21. title: string = "Certificados de inversión";
  22. @Input() data: any;
  23. @Input() summary: boolean;
  24. @Input() investmentID: string;
  25. displayedColumns: string[] = [
  26. "posicion",
  27. "plazo",
  28. "fecha_pago",
  29. "ingreso_bruto",
  30. "ingreso_neto",
  31. "impuesto"
  32. ];
  33. @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
  34. @ViewChild(MatSort, { static: true }) sort: MatSort;
  35. form: any;
  36. general: GeneralInfo;
  37. // For daterange
  38. daysLabels: any = {
  39. su: "Dom",
  40. mo: "Lun",
  41. tu: "Mar",
  42. we: "Mie",
  43. th: "Jue",
  44. fr: "Vie",
  45. sa: "Sab"
  46. };
  47. monthsLabels: any = {
  48. 1: "Ene",
  49. 2: "Feb",
  50. 3: "Mar",
  51. 4: "Abr",
  52. 5: "May",
  53. 6: "Jun",
  54. 7: "Jul",
  55. 8: "Ago",
  56. 9: "Sep",
  57. 10: "Oct",
  58. 11: "Nov",
  59. 12: "Dic"
  60. };
  61. investmentProposalForm: FormGroup;
  62. myDpOptions: IAngularMyDpOptions = {
  63. dateRange: false,
  64. dateFormat: "dd/mm/yyyy",
  65. dayLabels: this.daysLabels,
  66. monthLabels: this.monthsLabels
  67. };
  68. myDateInit: boolean = true;
  69. m_fecha_vencimiento_compra: IMyDateModel;
  70. m_fecha_ultima_cupon_compra: IMyDateModel;
  71. m_fecha_rendencion: IMyDateModel;
  72. m_fecha_liquidacion_compra: IMyDateModel;
  73. submitted: boolean = false;
  74. instrument_exists: boolean;
  75. instrument_work: any = [];
  76. financials: any;
  77. base_types: any;
  78. proyecciones: any;
  79. bonosObject: {};
  80. dataSource = new MatTableDataSource(this.proyecciones);
  81. dataSource2 = new MatTableDataSource(this.proyecciones);
  82. hasProjections: boolean;
  83. fecha_vencimiento: any;
  84. comision_casa_compra: any;
  85. comision_bolsa_compra: any;
  86. fecha_siguiente_cupon_compra: any;
  87. dias_vencimiento_compra: any;
  88. dias_acumulados_compra: any;
  89. ytm_vencimiento_comision_porcentaje_compra: any;
  90. interes_acumulado_compra: any;
  91. interes_acumulado_porcentaje_compra: any;
  92. precio_sucio_porcentaje_compra: any;
  93. valor_transado_compra: any;
  94. monto_pagar: any;
  95. fecha_inicio_vigencia: any;
  96. comision_casa_venta: any;
  97. fecha_siguiente_cupon_venta: any;
  98. dias_vencimiento_venta: any;
  99. dias_acumulados_venta: any;
  100. ytm_vencimiento_comision_porcentaje_venta: any;
  101. interes_acumulado_venta: any;
  102. interes_acumulado_porcentaje_venta: any;
  103. precio_sucio_porcentaje_venta: any;
  104. valor_transado_venta: any;
  105. monto_recibir: any;
  106. dias_tenencia_total: any;
  107. ganancia_perdida_capital: any;
  108. ingresos_intereses: any;
  109. costos_totales: any;
  110. ganancia_perdida_total: any;
  111. ganancia_perdida_capital_porcentaje: any;
  112. intereses_porcentaje: any;
  113. neto_antes_impuesto_porcentaje: any;
  114. neto_despues_impuesto_porcentaje: any;
  115. total_ingresos_recibidos: any;
  116. operation_result: boolean = false;
  117. operation_results_work: any = [];
  118. instrument_work_summary: any = [];
  119. ytm_vencimiento_porcentaje_compra: any;
  120. ytm_vencimiento_porcentaje_venta: any;
  121. comision_bolsa_venta: any;
  122. constructor(
  123. private formBuilder: FormBuilder,
  124. private router: Router,
  125. private formDataService: FormInvestmentProposalService,
  126. private catalogService: CatalogsService,
  127. private instrumentCalcService: InstrumentCalculations,
  128. public datepipe: DatePipe
  129. ) {
  130. this.instrument_work = this.formDataService.getWork();
  131. this.instrument_exists = this.instrument_work == undefined;
  132. this.general = this.formDataService.getGeneralInfo();
  133. if (
  134. this.instrument_work != undefined &&
  135. this.instrument_work.proyecciones != ""
  136. ) {
  137. this.hasProjections = true;
  138. this.operation_results_work = this.instrument_work["resultado_operacion"];
  139. if (this.instrument_work["instrumento"] != undefined) {
  140. this.instrument_work = this.instrument_work["instrumento"];
  141. }
  142. this.instrument_work_summary = this.instrument_work;
  143. this.dataSource2.data = this.instrument_work.proyecciones;
  144. this.dataSource2.paginator = this.paginator;
  145. this.dataSource2.sort = this.sort;
  146. } else {
  147. this.hasProjections = false;
  148. }
  149. if (
  150. this.operation_results_work != undefined &&
  151. this.operation_results_work != ""
  152. ) {
  153. this.operation_result = true;
  154. }
  155. this.investmentProposalForm = this.formBuilder.group({
  156. costo_cedeval: [
  157. this.instrument_exists ? "" : this.instrument_work.costo_cedeval,
  158. [
  159. Validators.required,
  160. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  161. ]
  162. ],
  163. costo_transferencia: [
  164. this.instrument_exists ? "" : this.instrument_work.costo_transferencia,
  165. [
  166. Validators.required,
  167. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  168. ]
  169. ],
  170. precio_compra: [
  171. this.instrument_exists ? "" : this.instrument_work.precio_compra,
  172. [
  173. Validators.required,
  174. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  175. ]
  176. ],
  177. valor_nominal_compra: [
  178. this.instrument_exists ? "" : this.instrument_work.valor_nominal_compra,
  179. [
  180. Validators.required,
  181. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  182. ]
  183. ],
  184. precio_vencimiento_compra: [
  185. this.instrument_exists
  186. ? ""
  187. : this.instrument_work.precio_vencimiento_compra,
  188. [
  189. Validators.required,
  190. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  191. ]
  192. ],
  193. cupon_porcentaje_compra: [
  194. this.instrument_exists
  195. ? ""
  196. : this.instrument_work.cupon_porcentaje_compra,
  197. [
  198. Validators.required,
  199. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  200. ]
  201. ],
  202. comision_casa_porcentaje_compra: [
  203. this.instrument_exists
  204. ? ""
  205. : this.instrument_work.comision_casa_porcentaje_compra,
  206. [
  207. Validators.required,
  208. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  209. ]
  210. ],
  211. comision_bolsa_porcentaje_compra: [
  212. this.instrument_exists
  213. ? ""
  214. : this.instrument_work.comision_bolsa_porcentaje_compra,
  215. [
  216. Validators.required,
  217. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  218. ]
  219. ],
  220. precio_venta: [
  221. this.instrument_exists ? "" : this.instrument_work.precio_venta,
  222. [
  223. Validators.required,
  224. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  225. ]
  226. ],
  227. valor_nominal_venta: [
  228. this.instrument_exists ? "" : this.instrument_work.valor_nominal_venta,
  229. [
  230. Validators.required,
  231. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  232. ]
  233. ],
  234. precio_vencimiento_venta: [
  235. this.instrument_exists
  236. ? ""
  237. : this.instrument_work.precio_vencimiento_venta,
  238. [
  239. Validators.required,
  240. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  241. ]
  242. ],
  243. cupon_porcentaje_venta: [
  244. this.instrument_exists
  245. ? ""
  246. : this.instrument_work.cupon_porcentaje_venta,
  247. [
  248. Validators.required,
  249. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  250. ]
  251. ],
  252. comision_casa_porcentaje_venta: [
  253. this.instrument_exists
  254. ? ""
  255. : this.instrument_work.comision_casa_porcentaje_venta,
  256. [
  257. Validators.required,
  258. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  259. ]
  260. ],
  261. comision_bolsa_porcentaje_venta: [
  262. this.instrument_exists
  263. ? ""
  264. : this.instrument_work.comision_bolsa_porcentaje_venta,
  265. [
  266. Validators.required,
  267. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  268. ]
  269. ],
  270. fecha_ultima_cupon_compra: [
  271. this.instrument_exists
  272. ? ""
  273. : {
  274. isRange: false,
  275. singleDate: {
  276. jsDate: parse(
  277. this.instrument_work.fecha_ultima_cupon_compra,
  278. "dd/MM/yyyy",
  279. new Date()
  280. ),
  281. formatted: this.instrument_work.fecha_ultima_cupon_compra
  282. }
  283. },
  284. Validators.required
  285. ],
  286. fecha_liquidacion_compra: [
  287. this.instrument_exists
  288. ? ""
  289. : {
  290. isRange: false,
  291. singleDate: {
  292. jsDate: parse(
  293. this.instrument_work.fecha_liquidacion_compra,
  294. "dd/MM/yyyy",
  295. new Date()
  296. ),
  297. formatted: this.instrument_work.fecha_liquidacion_compra
  298. }
  299. },
  300. Validators.required
  301. ],
  302. fecha_vencimiento_compra: [
  303. this.instrument_exists
  304. ? ""
  305. : {
  306. isRange: false,
  307. singleDate: {
  308. jsDate: parse(
  309. this.instrument_work.fecha_vencimiento_compra,
  310. "dd/MM/yyyy",
  311. new Date()
  312. ),
  313. formatted: this.instrument_work.fecha_vencimiento_compra
  314. }
  315. },
  316. Validators.required
  317. ],
  318. fecha_ultima_cupon_venta: [
  319. this.instrument_exists
  320. ? ""
  321. : {
  322. isRange: false,
  323. singleDate: {
  324. jsDate: parse(
  325. this.instrument_work.fecha_ultima_cupon_venta,
  326. "dd/MM/yyyy",
  327. new Date()
  328. ),
  329. formatted: this.instrument_work.fecha_ultima_cupon_venta
  330. }
  331. },
  332. Validators.required
  333. ],
  334. fecha_liquidacion_venta: [
  335. this.instrument_exists
  336. ? ""
  337. : {
  338. isRange: false,
  339. singleDate: {
  340. jsDate: parse(
  341. this.instrument_work.fecha_liquidacion_venta,
  342. "dd/MM/yyyy",
  343. new Date()
  344. ),
  345. formatted: this.instrument_work.fecha_liquidacion_venta
  346. }
  347. },
  348. Validators.required
  349. ],
  350. fecha_vencimiento_venta: [
  351. this.instrument_exists
  352. ? ""
  353. : {
  354. isRange: false,
  355. singleDate: {
  356. jsDate: parse(
  357. this.instrument_work.fecha_vencimiento_venta,
  358. "dd/MM/yyyy",
  359. new Date()
  360. ),
  361. formatted: this.instrument_work.fecha_vencimiento_venta
  362. }
  363. },
  364. Validators.required
  365. ]
  366. });
  367. }
  368. get f() {
  369. return this.investmentProposalForm.controls;
  370. }
  371. save(form: any): boolean {
  372. if (!form.valid) {
  373. return false;
  374. }
  375. this.formDataService.setWork(this.bonosObject);
  376. return true;
  377. }
  378. getCalculations(form: any, saveForm: boolean) {
  379. this.submitted = true;
  380. if (!form.valid) {
  381. return false;
  382. }
  383. Swal.fire({
  384. allowOutsideClick: false,
  385. icon: "info",
  386. text: "Espere por favor..."
  387. });
  388. Swal.showLoading();
  389. this.instrumentCalcService
  390. .bonosCalc(
  391. "CINV", // Codigo del instrumento
  392. {
  393. id_tipo_base: +this.general.base_anual,
  394. id_formato_ingreso: +this.general.formato_ingreso,
  395. id_periodicidad: +this.general.periodicidad
  396. },
  397. {
  398. costo_cedeval: +this.f.costo_cedeval.value,
  399. costo_transferencia: +this.f.costo_transferencia.value,
  400. valor_nominal_compra: +this.f.valor_nominal_compra.value,
  401. precio_compra: +this.f.precio_compra.value,
  402. precio_vencimiento_compra: +this.f.precio_vencimiento_compra.value,
  403. cupon_porcentaje_compra: +this.f.cupon_porcentaje_compra.value,
  404. comision_casa_porcentaje_compra: this.f
  405. .comision_casa_porcentaje_compra.value,
  406. comision_bolsa_porcentaje_compra: this.f
  407. .comision_bolsa_porcentaje_compra.value,
  408. valor_nominal_venta: +this.f.valor_nominal_venta.value,
  409. precio_venta: +this.f.precio_venta.value,
  410. precio_vencimiento_venta: +this.f.precio_vencimiento_venta.value,
  411. cupon_porcentaje_venta: +this.f.cupon_porcentaje_venta.value,
  412. comision_casa_porcentaje_venta: this.f.comision_casa_porcentaje_venta
  413. .value,
  414. comision_bolsa_porcentaje_venta: this.f
  415. .comision_bolsa_porcentaje_venta.value,
  416. fecha_vencimiento_compra: this.f.fecha_vencimiento_compra.value
  417. .singleDate.formatted,
  418. fecha_ultima_cupon_compra: this.f.fecha_ultima_cupon_compra.value
  419. .singleDate.formatted,
  420. fecha_liquidacion_compra: this.f.fecha_liquidacion_compra.value
  421. .singleDate.formatted,
  422. fecha_vencimiento_venta: this.f.fecha_vencimiento_venta.value
  423. .singleDate.formatted,
  424. fecha_ultima_cupon_venta: this.f.fecha_ultima_cupon_venta.value
  425. .singleDate.formatted,
  426. fecha_liquidacion_venta: this.f.fecha_liquidacion_venta.value
  427. .singleDate.formatted
  428. }
  429. )
  430. .subscribe(
  431. ans => {
  432. // Instrumento de compra
  433. this.comision_casa_compra =
  434. ans["result"]["instrumento_compra"]["comision_casa_compra"];
  435. this.comision_bolsa_compra =
  436. ans["result"]["instrumento_compra"]["comision_bolsa_compra"];
  437. this.fecha_siguiente_cupon_compra =
  438. ans["result"]["instrumento_compra"]["fecha_siguiente_cupon_compra"];
  439. this.dias_vencimiento_compra =
  440. ans["result"]["instrumento_compra"]["dias_vencimiento_compra"];
  441. this.dias_acumulados_compra =
  442. ans["result"]["instrumento_compra"]["dias_acumulados_compra"];
  443. this.ytm_vencimiento_comision_porcentaje_compra =
  444. ans["result"]["instrumento_compra"][
  445. "ytm_vencimiento_comision_porcentaje_compra"
  446. ];
  447. this.ytm_vencimiento_porcentaje_compra =
  448. ans["result"]["instrumento_compra"][
  449. "ytm_vencimiento_porcentaje_compra"
  450. ];
  451. this.interes_acumulado_compra =
  452. ans["result"]["instrumento_compra"]["interes_acumulado_compra"];
  453. this.interes_acumulado_porcentaje_compra =
  454. ans["result"]["instrumento_compra"][
  455. "interes_acumulado_porcentaje_compra"
  456. ];
  457. this.precio_sucio_porcentaje_compra =
  458. ans["result"]["instrumento_compra"][
  459. "precio_sucio_porcentaje_compra"
  460. ];
  461. this.valor_transado_compra =
  462. ans["result"]["instrumento_compra"]["valor_transado_compra"];
  463. this.monto_pagar = ans["result"]["instrumento_compra"]["monto_pagar"];
  464. this.fecha_inicio_vigencia =
  465. ans["result"]["instrumento_compra"]["fecha_inicio_vigencia"];
  466. // Instrumento de venta
  467. this.comision_casa_venta =
  468. ans["result"]["instrumento_venta"]["comision_casa_venta"];
  469. this.comision_bolsa_venta =
  470. ans["result"]["instrumento_venta"]["comision_bolsa_venta"];
  471. this.fecha_siguiente_cupon_venta =
  472. ans["result"]["instrumento_venta"]["fecha_siguiente_cupon_venta"];
  473. this.dias_vencimiento_venta =
  474. ans["result"]["instrumento_venta"]["dias_vencimiento_venta"];
  475. this.dias_acumulados_venta =
  476. ans["result"]["instrumento_venta"]["dias_acumulados_venta"];
  477. this.ytm_vencimiento_comision_porcentaje_venta =
  478. ans["result"]["instrumento_venta"][
  479. "ytm_vencimiento_comision_porcentaje_venta"
  480. ];
  481. this.ytm_vencimiento_porcentaje_venta =
  482. ans["result"]["instrumento_venta"][
  483. "ytm_vencimiento_porcentaje_venta"
  484. ];
  485. this.interes_acumulado_venta =
  486. ans["result"]["instrumento_venta"]["interes_acumulado_venta"];
  487. this.interes_acumulado_porcentaje_venta =
  488. ans["result"]["instrumento_venta"][
  489. "interes_acumulado_porcentaje_venta"
  490. ];
  491. this.precio_sucio_porcentaje_venta =
  492. ans["result"]["instrumento_venta"]["precio_sucio_porcentaje_venta"];
  493. this.valor_transado_venta =
  494. ans["result"]["instrumento_venta"]["valor_transado_venta"];
  495. this.monto_recibir =
  496. ans["result"]["instrumento_venta"]["monto_recibir"];
  497. // Resultado de la operacion
  498. this.dias_tenencia_total =
  499. ans["result"]["resultado_operacion"]["dias_tenencia_total"];
  500. this.ganancia_perdida_capital =
  501. ans["result"]["resultado_operacion"]["ganancia_perdida_capital"];
  502. this.ingresos_intereses =
  503. ans["result"]["resultado_operacion"]["ingresos_intereses"];
  504. this.costos_totales =
  505. ans["result"]["resultado_operacion"]["costos_totales"];
  506. this.ganancia_perdida_total =
  507. ans["result"]["resultado_operacion"]["ganancia_perdida_total"];
  508. this.ganancia_perdida_capital_porcentaje =
  509. ans["result"]["resultado_operacion"][
  510. "ganancia_perdida_capital_porcentaje"
  511. ];
  512. this.intereses_porcentaje =
  513. ans["result"]["resultado_operacion"]["intereses_porcentaje"];
  514. this.neto_antes_impuesto_porcentaje =
  515. ans["result"]["resultado_operacion"][
  516. "neto_antes_impuesto_porcentaje"
  517. ];
  518. this.neto_despues_impuesto_porcentaje =
  519. ans["result"]["resultado_operacion"][
  520. "neto_despues_impuesto_porcentaje"
  521. ];
  522. this.total_ingresos_recibidos =
  523. ans["result"]["resultado_operacion"]["total_ingresos_recibidos"];
  524. // Proyecciones
  525. this.proyecciones = ans["result"]["proyecciones"];
  526. this.operation_result = true;
  527. this.dataSource.data = this.proyecciones;
  528. this.dataSource2.data = this.proyecciones;
  529. this.dataSource.paginator = this.paginator;
  530. this.dataSource.sort = this.sort;
  531. // Obj
  532. this.bonosObject = {
  533. costo_cedeval: this.investmentProposalForm.value.costo_cedeval,
  534. costo_transferencia: this.investmentProposalForm.value
  535. .costo_transferencia,
  536. valor_nominal_compra: this.investmentProposalForm.value
  537. .valor_nominal_compra,
  538. precio_compra: this.investmentProposalForm.value.precio_compra,
  539. precio_vencimiento_compra: this.investmentProposalForm.value
  540. .precio_vencimiento_compra,
  541. cupon_porcentaje_compra: this.investmentProposalForm.value
  542. .cupon_porcentaje_compra,
  543. comision_casa_porcentaje_compra: this.investmentProposalForm.value
  544. .comision_casa_porcentaje_compra,
  545. comision_bolsa_porcentaje_compra: this.investmentProposalForm.value
  546. .comision_bolsa_porcentaje_compra,
  547. valor_nominal_venta: this.investmentProposalForm.value
  548. .valor_nominal_venta,
  549. precio_venta: this.investmentProposalForm.value.precio_venta,
  550. precio_vencimiento_venta: this.investmentProposalForm.value
  551. .precio_vencimiento_venta,
  552. cupon_porcentaje_venta: this.investmentProposalForm.value
  553. .cupon_porcentaje_venta,
  554. comision_casa_porcentaje_venta: this.investmentProposalForm.value
  555. .comision_casa_porcentaje_venta,
  556. comision_bolsa_porcentaje_venta: this.investmentProposalForm.value
  557. .comision_bolsa_porcentaje_venta,
  558. fecha_vencimiento_compra: this.f.fecha_vencimiento_compra.value
  559. .singleDate.formatted,
  560. fecha_ultima_cupon_compra: this.f.fecha_ultima_cupon_compra.value
  561. .singleDate.formatted,
  562. fecha_liquidacion_compra: this.f.fecha_liquidacion_compra.value
  563. .singleDate.formatted,
  564. fecha_vencimiento_venta: this.f.fecha_vencimiento_venta.value
  565. .singleDate.formatted,
  566. fecha_ultima_cupon_venta: this.f.fecha_ultima_cupon_venta.value
  567. .singleDate.formatted,
  568. fecha_liquidacion_venta: this.f.fecha_liquidacion_venta.value
  569. .singleDate.formatted,
  570. // Instrumento de compra
  571. comision_casa_compra: this.comision_casa_compra,
  572. comision_bolsa_compra: this.comision_bolsa_compra,
  573. fecha_siguiente_cupon_compra: this.fecha_siguiente_cupon_compra,
  574. dias_vencimiento_compra: this.dias_vencimiento_compra,
  575. dias_acumulados_compra: this.dias_acumulados_compra,
  576. ytm_vencimiento_porcentaje_compra: this
  577. .ytm_vencimiento_porcentaje_compra,
  578. ytm_vencimiento_comision_porcentaje_compra: this
  579. .ytm_vencimiento_comision_porcentaje_compra,
  580. interes_acumulado_compra: this.interes_acumulado_compra,
  581. interes_acumulado_porcentaje_compra: this
  582. .interes_acumulado_porcentaje_compra,
  583. precio_sucio_porcentaje_compra: this.precio_sucio_porcentaje_compra,
  584. valor_transado_compra: this.valor_transado_compra,
  585. monto_pagar: this.monto_pagar,
  586. fecha_inicio_vigencia: this.fecha_inicio_vigencia,
  587. // Instrumento de venta
  588. comision_casa_venta: this.comision_casa_venta,
  589. comision_bolsa_venta: this.comision_bolsa_venta,
  590. fecha_siguiente_cupon_venta: this.fecha_siguiente_cupon_venta,
  591. dias_vencimiento_venta: this.dias_vencimiento_venta,
  592. dias_acumulados_venta: this.dias_acumulados_venta,
  593. ytm_vencimiento_porcentaje_venta: this
  594. .ytm_vencimiento_porcentaje_venta,
  595. ytm_vencimiento_comision_porcentaje_venta: this
  596. .ytm_vencimiento_comision_porcentaje_venta,
  597. interes_acumulado_venta: this.interes_acumulado_venta,
  598. interes_acumulado_porcentaje_venta: this
  599. .interes_acumulado_porcentaje_venta,
  600. precio_sucio_porcentaje_venta: this.precio_sucio_porcentaje_venta,
  601. valor_transado_venta: this.valor_transado_venta,
  602. // Resultado de la operacion
  603. monto_recibir: this.monto_recibir,
  604. dias_tenencia_total: this.dias_tenencia_total,
  605. ganancia_perdida_capital: this.ganancia_perdida_capital,
  606. ingresos_intereses: this.ingresos_intereses,
  607. costos_totales: this.costos_totales,
  608. ganancia_perdida_total: this.ganancia_perdida_total,
  609. ganancia_perdida_capital_porcentaje: this
  610. .ganancia_perdida_capital_porcentaje,
  611. intereses_porcentaje: this.intereses_porcentaje,
  612. neto_antes_impuesto_porcentaje: this.neto_antes_impuesto_porcentaje,
  613. neto_despues_impuesto_porcentaje: this
  614. .neto_despues_impuesto_porcentaje,
  615. total_ingresos_recibidos: this.total_ingresos_recibidos,
  616. // Proyecciones
  617. proyecciones: this.proyecciones
  618. };
  619. this.formDataService.setWork(this.bonosObject);
  620. Swal.close();
  621. if (saveForm == true) {
  622. if (this.investmentID != undefined) {
  623. this.router.navigate(["/investment-proposal/complement-info"], {
  624. queryParams: { id: this.investmentID }
  625. });
  626. } else {
  627. this.router.navigate(["/investment-proposal/complement-info"]);
  628. }
  629. }
  630. },
  631. err => {
  632. Swal.fire({
  633. icon: "error",
  634. title: "Error en el servidor",
  635. text: "No su pudo obtener la informacion"
  636. });
  637. return false;
  638. }
  639. );
  640. }
  641. goToPrevious() {
  642. this.submitted = true;
  643. if (this.investmentID != undefined) {
  644. this.router.navigate(["/investment-proposal/general-info"], {
  645. queryParams: { id: this.investmentID }
  646. });
  647. } else {
  648. this.router.navigate(["/investment-proposal/general-info"]);
  649. }
  650. }
  651. goToNext(form: any) {
  652. this.getCalculations(form, true);
  653. }
  654. }