eurobonos.component.ts 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730
  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-eurobonos",
  18. templateUrl: "./eurobonos.component.html"
  19. })
  20. export class EURB implements InstrumentComponent {
  21. title: string = "Eurobonos";
  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. "renta"
  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. consolidado_proyeccion: any;
  123. ejecuciones = [
  124. { codigo: 1, nombre: "Completa" },
  125. { codigo: 0, nombre: "Parcial" }
  126. ];
  127. tipoEjecucion: number = 0;
  128. constructor(
  129. private formBuilder: FormBuilder,
  130. private router: Router,
  131. private formDataService: FormInvestmentProposalService,
  132. private catalogService: CatalogsService,
  133. private instrumentCalcService: InstrumentCalculations,
  134. public datepipe: DatePipe
  135. ) {
  136. this.instrument_work = this.formDataService.getWork();
  137. this.instrument_exists = this.instrument_work == undefined;
  138. this.general = this.formDataService.getGeneralInfo();
  139. if (
  140. this.instrument_work != undefined &&
  141. this.instrument_work.proyecciones != ""
  142. ) {
  143. this.hasProjections = true;
  144. this.consolidado_proyeccion = this.instrument_work.proyecciones[
  145. this.instrument_work.proyecciones.length - 1
  146. ];
  147. this.operation_results_work = this.instrument_work["resultado_operacion"];
  148. if (this.instrument_work["instrumento"] != undefined) {
  149. this.instrument_work = this.instrument_work["instrumento"];
  150. }
  151. this.instrument_work_summary = this.instrument_work;
  152. this.dataSource2.data = this.instrument_work.proyecciones.slice(0, -1);
  153. this.dataSource2.paginator = this.paginator;
  154. this.dataSource2.sort = this.sort;
  155. } else {
  156. this.hasProjections = false;
  157. }
  158. if (
  159. this.operation_results_work != undefined &&
  160. this.operation_results_work != ""
  161. ) {
  162. this.operation_result = true;
  163. }
  164. if (+this.instrument_work["valor_nominal_venta"] > 0) {
  165. this.tipoEjecucion = 1;
  166. }
  167. console.log("EJECUCION");
  168. console.log(this.tipoEjecucion);
  169. this.investmentProposalForm = this.formBuilder.group({
  170. ejecucion: [this.instrument_exists ? "" : this.tipoEjecucion],
  171. renta_porcentaje: [
  172. this.instrument_exists ? "" : this.instrument_work.renta_porcentaje,
  173. [
  174. Validators.required,
  175. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  176. ]
  177. ],
  178. costo_cedeval: [
  179. this.instrument_exists ? "" : this.instrument_work.costo_cedeval,
  180. [
  181. Validators.required,
  182. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  183. ]
  184. ],
  185. costo_transferencia: [
  186. this.instrument_exists ? "" : this.instrument_work.costo_transferencia,
  187. [
  188. Validators.required,
  189. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  190. ]
  191. ],
  192. precio_compra: [
  193. this.instrument_exists ? "" : this.instrument_work.precio_compra,
  194. [
  195. Validators.required,
  196. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  197. ]
  198. ],
  199. valor_nominal_compra: [
  200. this.instrument_exists ? "" : this.instrument_work.valor_nominal_compra,
  201. [
  202. Validators.required,
  203. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  204. ]
  205. ],
  206. precio_vencimiento_compra: [
  207. this.instrument_exists
  208. ? ""
  209. : this.instrument_work.precio_vencimiento_compra,
  210. [
  211. Validators.required,
  212. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  213. ]
  214. ],
  215. cupon_porcentaje_compra: [
  216. this.instrument_exists
  217. ? ""
  218. : this.instrument_work.cupon_porcentaje_compra,
  219. [
  220. Validators.required,
  221. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  222. ]
  223. ],
  224. comision_casa_porcentaje_compra: [
  225. this.instrument_exists
  226. ? ""
  227. : this.instrument_work.comision_casa_porcentaje_compra,
  228. [
  229. Validators.required,
  230. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  231. ]
  232. ],
  233. comision_bolsa_porcentaje_compra: [
  234. this.instrument_exists
  235. ? ""
  236. : this.instrument_work.comision_bolsa_porcentaje_compra,
  237. [
  238. Validators.required,
  239. Validators.pattern(/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/)
  240. ]
  241. ],
  242. precio_venta: [
  243. this.instrument_exists ? "" : this.instrument_work.precio_venta
  244. ],
  245. valor_nominal_venta: [
  246. this.instrument_exists ? "" : this.instrument_work.valor_nominal_venta
  247. ],
  248. precio_vencimiento_venta: [
  249. this.instrument_exists
  250. ? ""
  251. : this.instrument_work.precio_vencimiento_venta
  252. ],
  253. cupon_porcentaje_venta: [
  254. this.instrument_exists
  255. ? ""
  256. : this.instrument_work.cupon_porcentaje_venta
  257. ],
  258. comision_casa_porcentaje_venta: [
  259. this.instrument_exists
  260. ? ""
  261. : this.instrument_work.comision_casa_porcentaje_venta
  262. ],
  263. comision_bolsa_porcentaje_venta: [
  264. this.instrument_exists
  265. ? ""
  266. : this.instrument_work.comision_bolsa_porcentaje_venta
  267. ],
  268. fecha_ultima_cupon_compra: [
  269. this.instrument_exists
  270. ? ""
  271. : {
  272. isRange: false,
  273. singleDate: {
  274. jsDate: parse(
  275. this.instrument_work.fecha_ultima_cupon_compra,
  276. "dd/MM/yyyy",
  277. new Date()
  278. ),
  279. formatted: this.instrument_work.fecha_ultima_cupon_compra
  280. }
  281. },
  282. Validators.required
  283. ],
  284. fecha_liquidacion_compra: [
  285. this.instrument_exists
  286. ? ""
  287. : {
  288. isRange: false,
  289. singleDate: {
  290. jsDate: parse(
  291. this.instrument_work.fecha_liquidacion_compra,
  292. "dd/MM/yyyy",
  293. new Date()
  294. ),
  295. formatted: this.instrument_work.fecha_liquidacion_compra
  296. }
  297. },
  298. Validators.required
  299. ],
  300. fecha_vencimiento_compra: [
  301. this.instrument_exists
  302. ? ""
  303. : {
  304. isRange: false,
  305. singleDate: {
  306. jsDate: parse(
  307. this.instrument_work.fecha_vencimiento_compra,
  308. "dd/MM/yyyy",
  309. new Date()
  310. ),
  311. formatted: this.instrument_work.fecha_vencimiento_compra
  312. }
  313. },
  314. Validators.required
  315. ],
  316. fecha_ultima_cupon_venta: [
  317. this.instrument_exists
  318. ? ""
  319. : {
  320. isRange: false,
  321. singleDate: {
  322. jsDate: parse(
  323. this.instrument_work.fecha_ultima_cupon_venta,
  324. "dd/MM/yyyy",
  325. new Date()
  326. ),
  327. formatted: this.instrument_work.fecha_ultima_cupon_venta
  328. }
  329. }
  330. ],
  331. fecha_liquidacion_venta: [
  332. this.instrument_exists
  333. ? ""
  334. : {
  335. isRange: false,
  336. singleDate: {
  337. jsDate: parse(
  338. this.instrument_work.fecha_liquidacion_venta,
  339. "dd/MM/yyyy",
  340. new Date()
  341. ),
  342. formatted: this.instrument_work.fecha_liquidacion_venta
  343. }
  344. }
  345. ],
  346. fecha_vencimiento_venta: [
  347. this.instrument_exists
  348. ? ""
  349. : {
  350. isRange: false,
  351. singleDate: {
  352. jsDate: parse(
  353. this.instrument_work.fecha_vencimiento_venta,
  354. "dd/MM/yyyy",
  355. new Date()
  356. ),
  357. formatted: this.instrument_work.fecha_vencimiento_venta
  358. }
  359. }
  360. ]
  361. });
  362. }
  363. get f() {
  364. return this.investmentProposalForm.controls;
  365. }
  366. save(form: any): boolean {
  367. if (!form.valid) {
  368. return false;
  369. }
  370. this.formDataService.setWork(this.bonosObject);
  371. return true;
  372. }
  373. getCalculations(form: any, saveForm: boolean) {
  374. this.submitted = true;
  375. if (!form.valid) {
  376. return false;
  377. }
  378. Swal.fire({
  379. allowOutsideClick: false,
  380. icon: "info",
  381. text: "Espere por favor..."
  382. });
  383. Swal.showLoading();
  384. this.instrumentCalcService
  385. .bonosCalc(
  386. "EURB", // Codigo del instrumento
  387. {
  388. id_tipo_base: +this.general.base_anual,
  389. id_formato_ingreso: +this.general.formato_ingreso,
  390. id_periodicidad: +this.general.periodicidad
  391. },
  392. {
  393. completo: this.tipoEjecucion,
  394. renta_porcentaje: +this.f.renta_porcentaje.value,
  395. costo_cedeval: +this.f.costo_cedeval.value,
  396. costo_transferencia: +this.f.costo_transferencia.value,
  397. valor_nominal_compra: +this.f.valor_nominal_compra.value,
  398. precio_compra: +this.f.precio_compra.value,
  399. precio_vencimiento_compra: +this.f.precio_vencimiento_compra.value,
  400. cupon_porcentaje_compra: +this.f.cupon_porcentaje_compra.value,
  401. comision_casa_porcentaje_compra: this.f
  402. .comision_casa_porcentaje_compra.value,
  403. comision_bolsa_porcentaje_compra: this.f
  404. .comision_bolsa_porcentaje_compra.value,
  405. valor_nominal_venta: +this.f.valor_nominal_venta.value,
  406. precio_venta: +this.f.precio_venta.value,
  407. precio_vencimiento_venta: +this.f.precio_vencimiento_venta.value,
  408. cupon_porcentaje_venta: +this.f.cupon_porcentaje_venta.value,
  409. comision_casa_porcentaje_venta: this.f.comision_casa_porcentaje_venta
  410. .value,
  411. comision_bolsa_porcentaje_venta: this.f
  412. .comision_bolsa_porcentaje_venta.value,
  413. fecha_vencimiento_compra:
  414. this.f.fecha_vencimiento_compra.value == ""
  415. ? ""
  416. : this.f.fecha_vencimiento_compra.value.singleDate.formatted,
  417. fecha_ultima_cupon_compra:
  418. this.f.fecha_ultima_cupon_compra.value == ""
  419. ? ""
  420. : this.f.fecha_ultima_cupon_compra.value.singleDate.formatted,
  421. fecha_liquidacion_compra:
  422. this.f.fecha_liquidacion_compra.value == ""
  423. ? ""
  424. : this.f.fecha_liquidacion_compra.value.singleDate.formatted,
  425. fecha_vencimiento_venta:
  426. this.f.fecha_vencimiento_venta.value == ""
  427. ? ""
  428. : this.f.fecha_vencimiento_venta.value.singleDate.formatted,
  429. fecha_ultima_cupon_venta:
  430. this.f.fecha_ultima_cupon_venta.value == ""
  431. ? ""
  432. : this.f.fecha_ultima_cupon_venta.value.singleDate.formatted,
  433. fecha_liquidacion_venta:
  434. this.f.fecha_liquidacion_venta.value == ""
  435. ? ""
  436. : this.f.fecha_liquidacion_venta.value.singleDate.formatted
  437. }
  438. )
  439. .subscribe(
  440. ans => {
  441. // Instrumento de compra
  442. this.comision_casa_compra =
  443. ans["result"]["instrumento_compra"]["comision_casa_compra"];
  444. this.comision_bolsa_compra =
  445. ans["result"]["instrumento_compra"]["comision_bolsa_compra"];
  446. this.fecha_siguiente_cupon_compra =
  447. ans["result"]["instrumento_compra"]["fecha_siguiente_cupon_compra"];
  448. this.dias_vencimiento_compra =
  449. ans["result"]["instrumento_compra"]["dias_vencimiento_compra"];
  450. this.dias_acumulados_compra =
  451. ans["result"]["instrumento_compra"]["dias_acumulados_compra"];
  452. this.ytm_vencimiento_comision_porcentaje_compra =
  453. ans["result"]["instrumento_compra"][
  454. "ytm_vencimiento_comision_porcentaje_compra"
  455. ];
  456. this.ytm_vencimiento_porcentaje_compra =
  457. ans["result"]["instrumento_compra"][
  458. "ytm_vencimiento_porcentaje_compra"
  459. ];
  460. this.interes_acumulado_compra =
  461. ans["result"]["instrumento_compra"]["interes_acumulado_compra"];
  462. this.interes_acumulado_porcentaje_compra =
  463. ans["result"]["instrumento_compra"][
  464. "interes_acumulado_porcentaje_compra"
  465. ];
  466. this.precio_sucio_porcentaje_compra =
  467. ans["result"]["instrumento_compra"][
  468. "precio_sucio_porcentaje_compra"
  469. ];
  470. this.valor_transado_compra =
  471. ans["result"]["instrumento_compra"]["valor_transado_compra"];
  472. this.monto_pagar = ans["result"]["instrumento_compra"]["monto_pagar"];
  473. this.fecha_inicio_vigencia =
  474. ans["result"]["instrumento_compra"]["fecha_inicio_vigencia"];
  475. // Instrumento de venta
  476. if (this.tipoEjecucion == 1) {
  477. this.comision_casa_venta =
  478. ans["result"]["instrumento_venta"]["comision_casa_venta"];
  479. this.comision_bolsa_venta =
  480. ans["result"]["instrumento_venta"]["comision_bolsa_venta"];
  481. this.fecha_siguiente_cupon_venta =
  482. ans["result"]["instrumento_venta"]["fecha_siguiente_cupon_venta"];
  483. this.dias_vencimiento_venta =
  484. ans["result"]["instrumento_venta"]["dias_vencimiento_venta"];
  485. this.dias_acumulados_venta =
  486. ans["result"]["instrumento_venta"]["dias_acumulados_venta"];
  487. this.ytm_vencimiento_comision_porcentaje_venta =
  488. ans["result"]["instrumento_venta"][
  489. "ytm_vencimiento_comision_porcentaje_venta"
  490. ];
  491. this.ytm_vencimiento_porcentaje_venta =
  492. ans["result"]["instrumento_venta"][
  493. "ytm_vencimiento_porcentaje_venta"
  494. ];
  495. this.interes_acumulado_venta =
  496. ans["result"]["instrumento_venta"]["interes_acumulado_venta"];
  497. this.interes_acumulado_porcentaje_venta =
  498. ans["result"]["instrumento_venta"][
  499. "interes_acumulado_porcentaje_venta"
  500. ];
  501. this.precio_sucio_porcentaje_venta =
  502. ans["result"]["instrumento_venta"][
  503. "precio_sucio_porcentaje_venta"
  504. ];
  505. this.valor_transado_venta =
  506. ans["result"]["instrumento_venta"]["valor_transado_venta"];
  507. this.monto_recibir =
  508. ans["result"]["instrumento_venta"]["monto_recibir"];
  509. this.operation_results_work = ans["result"]["resultado_operacion"];
  510. this.operation_result = true;
  511. }
  512. // Proyecciones
  513. this.proyecciones = ans["result"]["proyecciones"];
  514. if (this.proyecciones != undefined && this.proyecciones.length > 0) {
  515. this.hasProjections = true;
  516. let proyecciones_temp = this.proyecciones;
  517. this.consolidado_proyeccion =
  518. proyecciones_temp[proyecciones_temp.length - 1];
  519. this.proyecciones = ans["result"]["proyecciones"];
  520. }
  521. this.dataSource.data = this.proyecciones.slice(0, -1);
  522. this.dataSource2.data = this.proyecciones.slice(0, -1);
  523. this.dataSource.paginator = this.paginator;
  524. this.dataSource.sort = this.sort;
  525. this.bonosObject = {
  526. completo: this.tipoEjecucion,
  527. cancelado: this.tipoEjecucion,
  528. renta_porcentaje: this.investmentProposalForm.value
  529. .renta_porcentaje,
  530. costo_cedeval: this.investmentProposalForm.value.costo_cedeval,
  531. costo_transferencia: this.investmentProposalForm.value
  532. .costo_transferencia,
  533. valor_nominal_compra: this.investmentProposalForm.value
  534. .valor_nominal_compra,
  535. precio_compra: this.investmentProposalForm.value.precio_compra,
  536. precio_vencimiento_compra: this.investmentProposalForm.value
  537. .precio_vencimiento_compra,
  538. cupon_porcentaje_compra: this.investmentProposalForm.value
  539. .cupon_porcentaje_compra,
  540. comision_casa_porcentaje_compra: this.investmentProposalForm.value
  541. .comision_casa_porcentaje_compra,
  542. comision_bolsa_porcentaje_compra: this.investmentProposalForm.value
  543. .comision_bolsa_porcentaje_compra,
  544. fecha_vencimiento_compra: this.f.fecha_vencimiento_compra.value
  545. .singleDate.formatted,
  546. fecha_ultima_cupon_compra: this.f.fecha_ultima_cupon_compra.value
  547. .singleDate.formatted,
  548. fecha_liquidacion_compra: this.f.fecha_liquidacion_compra.value
  549. .singleDate.formatted,
  550. // Instrumento de compra
  551. comision_casa_compra: this.comision_casa_compra,
  552. comision_bolsa_compra: this.comision_bolsa_compra,
  553. fecha_siguiente_cupon_compra: this.fecha_siguiente_cupon_compra,
  554. dias_vencimiento_compra: this.dias_vencimiento_compra,
  555. dias_acumulados_compra: this.dias_acumulados_compra,
  556. ytm_vencimiento_porcentaje_compra: this
  557. .ytm_vencimiento_porcentaje_compra,
  558. ytm_vencimiento_comision_porcentaje_compra: this
  559. .ytm_vencimiento_comision_porcentaje_compra,
  560. interes_acumulado_compra: this.interes_acumulado_compra,
  561. interes_acumulado_porcentaje_compra: this
  562. .interes_acumulado_porcentaje_compra,
  563. precio_sucio_porcentaje_compra: this.precio_sucio_porcentaje_compra,
  564. valor_transado_compra: this.valor_transado_compra,
  565. monto_pagar: this.monto_pagar,
  566. fecha_inicio_vigencia: this.fecha_inicio_vigencia,
  567. // Resultado de la operacion
  568. /*
  569. monto_recibir: this.monto_recibir,
  570. dias_tenencia_total: this.dias_tenencia_total,
  571. ganancia_perdida_capital: this.ganancia_perdida_capital,
  572. ingresos_intereses: this.ingresos_intereses,
  573. costos_totales: this.costos_totales,
  574. ganancia_perdida_total: this.ganancia_perdida_total,
  575. ganancia_perdida_capital_porcentaje: this
  576. .ganancia_perdida_capital_porcentaje,
  577. intereses_porcentaje: this.intereses_porcentaje,
  578. neto_antes_impuesto_porcentaje: this.neto_antes_impuesto_porcentaje,
  579. neto_despues_impuesto_porcentaje: this
  580. .neto_despues_impuesto_porcentaje,
  581. total_ingresos_recibidos: this.total_ingresos_recibidos,
  582. */
  583. // Proyecciones
  584. proyecciones: this.proyecciones
  585. };
  586. if (this.tipoEjecucion == 1) {
  587. this.bonosObject[
  588. "valor_nominal_venta"
  589. ] = this.investmentProposalForm.value.valor_nominal_venta;
  590. this.bonosObject[
  591. "precio_venta"
  592. ] = this.investmentProposalForm.value.precio_venta;
  593. this.bonosObject[
  594. "precio_vencimiento_venta"
  595. ] = this.investmentProposalForm.value.precio_vencimiento_venta;
  596. this.bonosObject[
  597. "comision_casa_porcentaje_venta"
  598. ] = this.investmentProposalForm.value.comision_casa_porcentaje_venta;
  599. this.bonosObject[
  600. "comision_bolsa_porcentaje_venta"
  601. ] = this.investmentProposalForm.value.comision_bolsa_porcentaje_venta;
  602. this.bonosObject[
  603. "fecha_vencimiento_venta"
  604. ] = this.f.fecha_vencimiento_venta.value.singleDate.formatted;
  605. this.bonosObject[
  606. "fecha_ultima_cupon_venta"
  607. ] = this.f.fecha_ultima_cupon_venta.value.singleDate.formatted;
  608. this.bonosObject[
  609. "fecha_liquidacion_venta"
  610. ] = this.f.fecha_liquidacion_venta.value.singleDate.formatted;
  611. this.bonosObject["comision_casa_venta"] = this.comision_casa_venta;
  612. this.bonosObject[
  613. "comision_bolsa_venta"
  614. ] = this.comision_bolsa_venta;
  615. this.bonosObject[
  616. "fecha_siguiente_cupon_venta"
  617. ] = this.fecha_siguiente_cupon_venta;
  618. this.bonosObject[
  619. "dias_vencimiento_venta"
  620. ] = this.dias_vencimiento_venta;
  621. this.bonosObject[
  622. "dias_acumulados_venta"
  623. ] = this.dias_acumulados_venta;
  624. this.bonosObject[
  625. "ytm_vencimiento_porcentaje_venta"
  626. ] = this.ytm_vencimiento_porcentaje_venta;
  627. this.bonosObject[
  628. "ytm_vencimiento_comision_porcentaje_venta"
  629. ] = this.ytm_vencimiento_comision_porcentaje_venta;
  630. this.bonosObject[
  631. "interes_acumulado_venta"
  632. ] = this.interes_acumulado_venta;
  633. this.bonosObject[
  634. "interes_acumulado_porcentaje_venta"
  635. ] = this.interes_acumulado_porcentaje_venta;
  636. this.bonosObject[
  637. "precio_sucio_porcentaje_venta"
  638. ] = this.precio_sucio_porcentaje_venta;
  639. this.bonosObject[
  640. "valor_transado_venta"
  641. ] = this.valor_transado_venta;
  642. }
  643. this.formDataService.setWork(this.bonosObject);
  644. Swal.close();
  645. if (saveForm == true) {
  646. if (this.investmentID != undefined) {
  647. this.router.navigate(["/investment-proposal/complement-info"], {
  648. queryParams: { id: this.investmentID }
  649. });
  650. } else {
  651. this.router.navigate(["/investment-proposal/complement-info"]);
  652. }
  653. }
  654. },
  655. err => {
  656. Swal.fire({
  657. icon: "error",
  658. title: "Error en el servidor",
  659. text: "No su pudo obtener la informacion"
  660. });
  661. return false;
  662. }
  663. );
  664. }
  665. goToPrevious() {
  666. this.submitted = true;
  667. if (this.investmentID != undefined) {
  668. this.router.navigate(["/investment-proposal/general-info"], {
  669. queryParams: { id: this.investmentID }
  670. });
  671. } else {
  672. this.router.navigate(["/investment-proposal/general-info"]);
  673. }
  674. }
  675. goToNext(form: any) {
  676. this.getCalculations(form, true);
  677. }
  678. toggle_ejecucion(input: any) {
  679. this.tipoEjecucion = +input;
  680. }
  681. }