| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- import { Component, ViewChild, OnInit } from "@angular/core";
- import { MatPaginator } from "@angular/material/paginator";
- import { MatSort } from "@angular/material/sort";
- import { MatTableDataSource } from "@angular/material/table";
- import Swal from "sweetalert2";
- import { CatalogsService } from "src/app/services/catalogs.service";
- import { IncomesService } from "@app/services/incomes.service";
- import { AuthService } from "@app/services/auth2.service";
- import { JwtHelperService } from "@auth0/angular-jwt";
- import { IncomeList } from "@app/models/income-list";
- import { from } from "rxjs";
- import { FormInvestmentProposalService } from "@app/services/form-investment-proposal.service";
- import { Router } from "@angular/router";
- import { IAngularMyDpOptions, IMyDateModel } from "angular-mydatepicker";
- @Component({
- selector: "app-income-proposals",
- templateUrl: "./incomes.component.html",
- styleUrls: ["./incomes.component.scss"]
- })
- export class IncomesComponent implements OnInit {
- helper = new JwtHelperService();
- title: string = "Ingresos";
- // For daterange
- daysLabels: any = {
- su: "Dom",
- mo: "Lun",
- tu: "Mar",
- we: "Mie",
- th: "Jue",
- fr: "Vie",
- sa: "Sab"
- };
- monthsLabels: any = {
- 1: "Ene",
- 2: "Feb",
- 3: "Mar",
- 4: "Abr",
- 5: "May",
- 6: "Jun",
- 7: "Jul",
- 8: "Ago",
- 9: "Sep",
- 10: "Oct",
- 11: "Nov",
- 12: "Dic"
- };
- myDpOptions: IAngularMyDpOptions = {
- dateRange: true,
- dateFormat: "dd/mm/yyyy",
- dayLabels: this.daysLabels,
- monthLabels: this.monthsLabels
- };
- myDateInit: boolean = true;
- model: IMyDateModel = null;
- displayedColumns: string[] = [
- "codigo_inversion",
- "nombre_inversion",
- "fecha_proyeccion_pago",
- "tipo_instrumento",
- "empresa",
- "estado",
- "id_inversion",
- "proyeccion_ingreso"
- ];
- //displayedColumns: string[] = ['state'];
- listProposals: IncomeList[];
- dataSource = new MatTableDataSource(this.listProposals);
- resultsLength = 0;
- isLoadingResults = true;
- isRateLimitReached = false;
- userRole: any;
- @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
- @ViewChild(MatSort, { static: true }) sort: MatSort;
- role_number: any;
- instrumentTypes: any;
- constructor(
- private catalogService: CatalogsService,
- private incomesService: IncomesService,
- private authService: AuthService,
- private formInvestmentProposal: FormInvestmentProposalService,
- private router: Router
- ) {
- const decodedToken = this.helper.decodeToken(
- this.authService.getJwtToken()
- );
- this.userRole = decodedToken.groups;
- Swal.fire({
- allowOutsideClick: false,
- icon: "info",
- text: "Espere por favor..."
- });
- Swal.showLoading();
- }
- ngOnInit() {
- this.catalogService.getInstrumentTypes().subscribe(res => {
- this.instrumentTypes = res;
- });
- this.incomesService.getProjectionsIncomeList().subscribe(
- ans => {
- this.listProposals = ans.result;
- this.dataSource.data = this.listProposals;
- this.dataSource.paginator = this.paginator;
- this.dataSource.sort = this.sort;
- },
- err => {
- Swal.fire({
- icon: "error",
- title: "Error en el servidor",
- text: err.message
- });
- }
- );
- setTimeout(() => {
- Swal.close();
- }, 1200);
- }
- filter_by_instrument(event: any) {
- const filterInstrument = (event.target as HTMLInputElement).value;
- this.dataSource.filter = filterInstrument;
- if (this.dataSource.paginator) {
- this.dataSource.paginator.firstPage();
- }
- this.dataSource.sort = this.sort;
- }
- filter_by_date(event: any) {
- let dateFormat = event.dateRange.formatted.split(" - ", 2);
- let date0 = dateFormat[0].split("/");
- let date1 = dateFormat[1].split("/");
- let dateStart = Number(date0[2] + date0[1] + date0[0]);
- let dateFinish = Number(date1[2] + date1[1] + date1[0]);
- this.dataSource.filterPredicate = (data, filter) => {
- if (dateFormat[0] && dateFormat[1]) {
- let date2 = data["fecha_proyeccion_pago"].split("/");
- let payment_date = Number(date2[2] + date2[1] + date2[0]);
- return payment_date >= dateStart && payment_date <= dateFinish;
- }
- return true;
- };
- this.dataSource.filter = "" + Math.random();
- if (this.dataSource.paginator) {
- this.dataSource.paginator.firstPage();
- }
- this.dataSource.sort = this.sort;
- }
- filter_by_income_status(event: any) {
- Swal.fire({
- allowOutsideClick: false,
- icon: "info",
- text: "Espere por favor..."
- });
- Swal.showLoading();
- let active = event.target.value;
- this.incomesService.getProjectionsIncomeList(active).subscribe(
- ans => {
- this.listProposals = ans["result"];
- this.dataSource.data = this.listProposals;
- this.dataSource.paginator = this.paginator;
- this.dataSource.sort = this.sort;
- Swal.close();
- },
- err => {
- Swal.fire({
- icon: "error",
- title: "Error en el servidor",
- text: err.message
- });
- }
- );
- }
- applyFilter(event: Event) {
- const filterValue = (event.target as HTMLSelectElement).value;
- this.dataSource.filter = filterValue;
- if (this.dataSource.paginator) {
- this.dataSource.paginator.firstPage();
- }
- }
- view_investment_proposal(id: string) {
- this.formInvestmentProposal.resetFormData();
- Swal.fire({
- allowOutsideClick: false,
- icon: "info",
- text: "Espere por favor..."
- });
- Swal.showLoading();
- setTimeout(() => {
- this.router.navigate([`/investment-proposal/${id}`]);
- }, 1000);
- }
- instrument_has_costs(id: string) {
- return true;
- }
- go_to_instrument_url(
- id: string,
- id_proyeccion_instrumento: string,
- fecha: string,
- id_proyeccion?: string
- ) {
- Swal.fire({
- allowOutsideClick: false,
- icon: "info",
- text: "Espere por favor..."
- });
- Swal.showLoading();
- setTimeout(() => {
- this.router.navigate([`/investment-income`], {
- queryParams: {
- id_inversion: id,
- id_proyeccion_ingreso_instrumento: id_proyeccion_instrumento,
- fecha_proyeccion_pago: fecha,
- id_proyeccion_ingreso: id_proyeccion
- }
- });
- }, 1000);
- }
- }
|