{"version":3,"file":"main.js","mappings":"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,2DAAa;IAAb,iFAAa;IAIb,0DAAa;IAAb,iFAAa;IAQb,0DAAwB;IAAxB,4FAAwB;IAQxB,0DAAgB;IAAhB,oFAAgB;IAYpC,2DACF;IADE,sGACF;IAKE,0DAEF;IAFE,mNAEF;IAKE,0DACF;IADE,8KACF;IAOE,0DAEF;IAFE,kIAEF;IAKE,0DACF;IADE,iGACF;IAKE,0DACF;IADE,8FACF;IAKE,0DACF;IADE,iLACF;IAOE,0DACF;IADE,mGACF;IAKE,0DACF;IADE,mGACF;IAKE,0DACF;IADE,4FACF;IAKE,0DACF;IADE,uGACF;IAKE,0DACF;IADE,+KACF;IAuCE,2DACF;IADE,mKACF;IAKE,0DACF;IADE,qKACF;IAKE,0DACF;IADE,qKACF;IAKE,0DACF;IADE,mKACF;IAKE,0DACF;IADE,qKACF;IASE,0DACF;IADE,sKACF;IAKE,0DACF;IADE,oKACF;IAKE,0DACF;IADE,qKACF;IAKE,0DACF;IADE,sKACF;IAKE,0DACF;IADE,qKACF;IAKE,0DACF;IADE,oKACF;IAaE,2DACF;IADE,6GACF;IAKE,0DACF;IADE,2HACF;IAgBE,2DAEF;IAFE,sPAEF;IAOE,0DAEF;IAFE,sJAEF;IAKE,0DACF;IADE,0GACF;IAKE,0DACF;IADE,mGACF;IAKE,0DACF;IADE,mHACF;IASE,0DACF;IADE,2FACF;IAKE,0DACF;IADE,8FACF;IAKE,0DACF;IADE,4FACF;IAUE,0DACF;IADE,0KACF;IAKE,0DACF;IADE,0KACF;IA6DmB,2DAAe;IAAf,wFAAe;IAuGhC,2DAEA;IAFA,4IAEA;IACA,0DACF;IADE,iGACF;;ADpmBlB,YAAY,CAAC;AAsBN,MAAM,iBAAiB;IA6B5B,YACS,MAAiB,EAChB,SAAsB,EACvB,SAA0C,EACzC,kBAAsC,EACd,IAAgB,EACxC,UAAsB;QALvB,WAAM,GAAN,MAAM,CAAW;QAChB,cAAS,GAAT,SAAS,CAAa;QACvB,cAAS,GAAT,SAAS,CAAiC;QACzC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACd,SAAI,GAAJ,IAAI,CAAY;QACxC,eAAU,GAAV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QAmCrB,2DAA0B;QAA1B,0FAA0B;QAwG1B,0DAA0B;QAA1B,0FAA0B;;;;;;;;;;;;;;;;;ACzUtE,MAAM,WAAW,GAAG;IAEzB,UAAU,EAAE,KAAK;IACjB,qBAAqB,EAAE,uDAAuD;IAC9E,iBAAiB,EAAE,mDAAmD;IACtE,iBAAiB,EAAE,mDAAmD;IACtE,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,cAAc;IACxB,oBAAoB,EAAE,sCAAsC;IAC5D,qBAAqB,EAAE,0CAA0C;IACjE,YAAY,EAAE,0BAA0B;IACxC,KAAK,EAAE,6DAA6D;CACrE,CAAC;;;;;;;;;;;;;;;;;;ACZ6C;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/Components/delete/delete.component.ts","./src/app/Components/delete/delete.component.html","./src/app/Components/documentos-relacionados/documentos-relacionados/documentos-relacionados.component.ts","./src/app/Components/documentos-relacionados/documentos-relacionados/documentos-relacionados.component.html","./src/app/Components/documentos-relacionados/shared/documento.service.ts","./src/app/Components/documentos-relacionados/shared/documentos-relacionados.model.ts","./src/app/Components/editor-html-template/editor-html-template/editor-html-template.component.ts","./src/app/Components/editor-html-template/editor-html-template/editor-html-template.html","./src/app/Components/itens/itens-cadastro/itens-cadastro.component.ts","./src/app/Components/itens/itens-cadastro/itens-cadastro.component.html","./src/app/Components/parcelas/calcula-parcelas/calcula-parcelas.component.ts","./src/app/Components/parcelas/calcula-parcelas/calcula-parcelas-component.html","./src/app/Components/parcelas/shared/item-parcela.model.ts","./src/app/Components/table/table/table.component.ts","./src/app/Components/table/table/table.component.html","./src/app/anexo/anexo.module.ts","./src/app/anexo/anexo/anexo.component.ts","./src/app/anexo/anexo/anexo.component.html","./src/app/anexo/shared/anexo.model.ts","./src/app/anexo/shared/anexo.service.ts","./src/app/app-interceptors.ts","./src/app/app-material/app-date-adapter.ts","./src/app/app-material/app-material.module.ts","./src/app/app-material/portugues-paginator-intl.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/cep/shared/cep.service.ts","./src/app/cfop/shared/cfop.service.ts","./src/app/cliente/cliente-cadastro/cliente-cadastro.component.ts","./src/app/cliente/cliente-cadastro/cliente-cadastro.component.html","./src/app/cliente/cliente-faturamento/cliente-faturamento.component.ts","./src/app/cliente/cliente-faturamento/cliente-faturamento.component.html","./src/app/cliente/cliente-historico/cliente-historico.component.ts","./src/app/cliente/cliente-historico/cliente-historico.component.html","./src/app/cliente/cliente-metodo-pagamento/cliente-metodo-pagamento.component.ts","./src/app/cliente/cliente-metodo-pagamento/cliente-metodo-pagamento.component.html","./src/app/cliente/cliente-servico/cliente-servico.component.ts","./src/app/cliente/cliente-servico/cliente-servico.component.html","./src/app/cliente/shared/cliente-contador.service.ts","./src/app/cliente/shared/cliente-faturamento.model.ts","./src/app/cliente/shared/cliente-faturamento.service.ts","./src/app/cliente/shared/cliente-historico.model.ts","./src/app/cliente/shared/cliente-historico.service.ts","./src/app/cliente/shared/cliente-metodo-pagamento.model.ts","./src/app/cliente/shared/cliente-metodo-pagamento.service.ts","./src/app/cliente/shared/cliente-servico.model.ts","./src/app/cliente/shared/cliente-servico.service.ts","./src/app/cliente/shared/cliente.model.ts","./src/app/cliente/shared/cliente.service.ts","./src/app/compra/compra-cadastro/compra-cadastro.component.ts","./src/app/compra/compra-cadastro/compra-cadastro.component.html","./src/app/compra/compra-item/compra-item.component.ts","./src/app/compra/compra-item/compra-item.component.html","./src/app/compra/shared/compra-item.model.ts","./src/app/compra/shared/compra.model.ts","./src/app/compra/shared/compra.service.ts","./src/app/configuracao/shared/integracao.service.ts","./src/app/conta-corrente/conta-corrente-venda-parcela/conta-corrente-venda-parcela.component.ts","./src/app/conta-corrente/conta-corrente-venda-parcela/conta-corrente-venda-parcela.component.html","./src/app/conta-corrente/conta-corrente-venda/conta-corrente-venda.component.ts","./src/app/conta-corrente/conta-corrente-venda/conta-corrente-venda.component.html","./src/app/conta-corrente/shared/conta-corrente-terminal.service.ts","./src/app/conta-corrente/shared/conta-corrente-venda-parcela.model.ts","./src/app/conta-corrente/shared/conta-corrente-venda-parcela.service.ts","./src/app/conta-corrente/shared/conta-corrente-venda.model.ts","./src/app/conta-corrente/shared/conta-corrente-venda.service.ts","./src/app/contabil/shared/conta-contabil.service.ts","./src/app/contabil/shared/operacao-contabil.service.ts","./src/app/contato/contato-cadastro/contato-cadastro.component.ts","./src/app/contato/contato-cadastro/contato-cadastro.component.html","./src/app/contato/shared/contato.model.ts","./src/app/contato/shared/contato.service.ts","./src/app/core/dialogs/confirm-dialog/confirm-dialog.component.ts","./src/app/core/dialogs/confirm-dialog/confirm-dialog.component.html","./src/app/core/dialogs/desconto-dialog/desconto-dialog/desconto-dialog.component.ts","./src/app/core/dialogs/desconto-dialog/desconto-dialog/desconto-dialog.component.html","./src/app/core/dialogs/info-dialog/info-dialog.component.ts","./src/app/core/dialogs/info-dialog/info-dialog.component.html","./src/app/core/directives/autocomplete-scroll.directive.ts","./src/app/core/directives/required-fields-directive.ts","./src/app/core/export-excel/export-excel.service.ts","./src/app/core/exporta-csv/exporta-csv.service.ts","./src/app/core/exporta-xml/exporta-xml.service.ts","./src/app/core/exporta-zip/exporta-zip.service.ts","./src/app/core/html-printer/html-printer.service.ts","./src/app/core/interceptors/global-error-handler.service.ts","./src/app/core/interceptors/loader-interceptor.module.ts","./src/app/core/loader/loader.component.ts","./src/app/core/loader/loader.component.html","./src/app/core/loader/loader.service.ts","./src/app/core/utils/utils.service.ts","./src/app/dado-bancario/dado-bancario-cadastro/dado-bancario-cadastro.component.ts","./src/app/dado-bancario/dado-bancario-cadastro/dado-bancario-cadastro.component.html","./src/app/dado-bancario/shared/dado-bancario-chave-pix.model.ts","./src/app/dado-bancario/shared/dado-bancario.model.ts","./src/app/dado-bancario/shared/dado-bancario.service.ts","./src/app/documento/documento-cadastro/documento-cadastro.component.ts","./src/app/documento/documento-cadastro/documento-cadastro.component.html","./src/app/documento/documento-routing.module.ts","./src/app/documento/documento-template-cadastro/documento-template-cadastro.component.ts","./src/app/documento/documento-template-cadastro/documento-template-cadastro.component.html","./src/app/documento/documento-template/documento-template.component.ts","./src/app/documento/documento-template/documento-template.component.html","./src/app/documento/documento.module.ts","./src/app/documento/documentos-relacionados/documentos-relacionados.component.ts","./src/app/documento/documentos-relacionados/documentos-relacionados.component.html","./src/app/documento/shared/documento-template.model.ts","./src/app/documento/shared/documento-template.service.ts","./src/app/documento/shared/documento.service.ts","./src/app/embalagem/embalagem-cadastro/embalagem-cadastro.component.ts","./src/app/embalagem/embalagem-cadastro/embalagem-cadastro.component.html","./src/app/embalagem/shared/embalagem.model.ts","./src/app/embalagem/shared/embalagem.service.ts","./src/app/estoque/estoque-movimento/estoque-movimento.component.ts","./src/app/estoque/estoque-movimento/estoque-movimento.component.html","./src/app/estoque/shared/estoque-movimento.model.ts","./src/app/estoque/shared/estoque-movimento.service.ts","./src/app/fatura/confirmacao-divergencia-cservico-dialog/confirmacao-divergencia-cservico-dialog.component.ts","./src/app/fatura/confirmacao-divergencia-cservico-dialog/confirmacao-divergencia-cservico-dialog.component.html","./src/app/fatura/descontar-retencao-dialog/descontar-retencao-dialog.component.ts","./src/app/fatura/descontar-retencao-dialog/descontar-retencao-dialog.component.html","./src/app/fatura/enviar-email-dialog/enviar-email-dialog.component.ts","./src/app/fatura/enviar-email-dialog/enviar-email-dialog.component.html","./src/app/fatura/fatura-cadastro/fatura-cadastro.component.ts","./src/app/fatura/fatura-cadastro/fatura-cadastro.component.html","./src/app/fatura/fatura-item/fatura-item.component.ts","./src/app/fatura/fatura-item/fatura-item.component.html","./src/app/fatura/shared/fatura-item.model.ts","./src/app/fatura/shared/fatura.model.ts","./src/app/fatura/shared/fatura.service.ts","./src/app/financeiro/caixa-movimento/caixa-movimento.component.ts","./src/app/financeiro/caixa-movimento/caixa-movimento.component.html","./src/app/financeiro/conta-cadastro/conta-cadastro.component.ts","./src/app/financeiro/conta-cadastro/conta-cadastro.component.html","./src/app/financeiro/conta-parcela-baixa/conta-parcela-baixa.component.ts","./src/app/financeiro/conta-parcela-baixa/conta-parcela-baixa.component.html","./src/app/financeiro/conta-parcela-recorrente/conta-parcela-recorrente.component.ts","./src/app/financeiro/conta-parcela-recorrente/conta-parcela-recorrente.component.html","./src/app/financeiro/conta-parcela/conta-parcela.component.ts","./src/app/financeiro/conta-parcela/conta-parcela.component.html","./src/app/financeiro/shared/caixa-movimento.model.ts","./src/app/financeiro/shared/caixa-movimento.service.ts","./src/app/financeiro/shared/conta-parcela.model.ts","./src/app/financeiro/shared/conta-parcela.service.ts","./src/app/financeiro/shared/conta.model.ts","./src/app/financeiro/shared/conta.service.ts","./src/app/financeiro/shared/grupo-conta.service.ts","./src/app/fiscal/nfe-cadastro/nfe-cadastro.component.ts","./src/app/fiscal/nfe-cadastro/nfe-cadastro.component.html","./src/app/fiscal/nfe-carta-correcao/nfe-carta-correcao.component.ts","./src/app/fiscal/nfe-carta-correcao/nfe-carta-correcao.component.html","./src/app/fiscal/nfe-danfe/nfe-danfe.component.ts","./src/app/fiscal/nfe-danfe/nfe-danfe.component.html","./src/app/fiscal/nfe-evento/nfe-evento.component.ts","./src/app/fiscal/nfe-evento/nfe-evento.component.html","./src/app/fiscal/nfe-inbound-importar/nfe-inbound-importar.component.ts","./src/app/fiscal/nfe-inbound-importar/nfe-inbound-importar.component.html","./src/app/fiscal/nfe-item/nfe-item.component.ts","./src/app/fiscal/nfe-item/nfe-item.component.html","./src/app/fiscal/nfe-pedido-compra/nfe-pedido-compra.component.ts","./src/app/fiscal/nfe-pedido-compra/nfe-pedido-compra.component.html","./src/app/fiscal/nfe-pedido-venda/nfe-pedido-venda.component.ts","./src/app/fiscal/nfe-pedido-venda/nfe-pedido-venda.component.html","./src/app/fiscal/nfe-status/nfe-status.component.ts","./src/app/fiscal/nfe-status/nfe-status.component.html","./src/app/fiscal/nfse-cadastro/nfse-cadastro.component.ts","./src/app/fiscal/nfse-cadastro/nfse-cadastro.component.html","./src/app/fiscal/nfse-status/nfse-status.component.ts","./src/app/fiscal/nfse-status/nfse-status.component.html","./src/app/fiscal/shared/nfe-evento.model.ts","./src/app/fiscal/shared/nfe-evento.service.ts","./src/app/fiscal/shared/nfe-item.model.ts","./src/app/fiscal/shared/nfe-status.service.ts","./src/app/fiscal/shared/nfe.model.ts","./src/app/fiscal/shared/nfe.service.ts","./src/app/fiscal/shared/nfse-status.service.ts","./src/app/fiscal/shared/nfse.model.ts","./src/app/fiscal/shared/nfse.service.ts","./src/app/header/shared/header.service.ts","./src/app/home/home.module.ts","./src/app/home/home/home.component.ts","./src/app/home/home/home.component.html","./src/app/home/shared/home.service.ts","./src/app/home/shared/total.model.ts","./src/app/juridico/adiciona-relacao-contrato-dialog/adiciona-relacao-contrato-dialog.component.ts","./src/app/juridico/adiciona-relacao-contrato-dialog/adiciona-relacao-contrato-dialog.component.html","./src/app/juridico/contrato-cadastro/contrato-cadastro.component.ts","./src/app/juridico/contrato-cadastro/contrato-cadastro.component.html","./src/app/juridico/contrato-fatura/contrato-fatura.component.ts","./src/app/juridico/contrato-fatura/contrato-fatura.component.html","./src/app/juridico/contrato-signatario/cadastro-signatario.component.ts","./src/app/juridico/contrato-signatario/cadastro-signatario.component.html","./src/app/juridico/contrato-tipofaturamento-dialog/contrato-tipofaturamento-dialog.component.ts","./src/app/juridico/contrato-tipofaturamento-dialog/contrato-tipofaturamento-dialog.component.html","./src/app/juridico/shared/adiciona-contrato-documento-dto.model.ts","./src/app/juridico/shared/contrato-signatario.model.ts","./src/app/juridico/shared/contrato.model.ts","./src/app/juridico/shared/contrato.service.ts","./src/app/log/log/log.component.ts","./src/app/log/log/log.component.html","./src/app/log/shared/log.model.ts","./src/app/log/shared/log.service.ts","./src/app/login/login/login.component.ts","./src/app/login/login/login.component.html","./src/app/municipio/shared/municipio.service.ts","./src/app/notificacao/notification.component.ts","./src/app/notificacao/notification.component.html","./src/app/ordem-servico/shared/ordem-servico.service.ts","./src/app/pais/shared/pais.service.ts","./src/app/parceiro/shared/parceiro.service.ts","./src/app/produto/shared/produto.model.ts","./src/app/produtoeservico/produtoeservico-cadastro/produtoeservico-cadastro.component.ts","./src/app/produtoeservico/produtoeservico-cadastro/produtoeservico-cadastro.component.html","./src/app/produtoeservico/produtoeservico-grupo-cadastro/cad-grupo.component.ts","./src/app/produtoeservico/produtoeservico-grupo-cadastro/cad-grupo.component.html","./src/app/produtoeservico/shared/servico.service.ts","./src/app/remessa/remessa-cadastro/remessa-cadastro.component.ts","./src/app/remessa/remessa-cadastro/remessa-cadastro.component.html","./src/app/remessa/shared/remessa.model.ts","./src/app/remessa/shared/remessa.service.ts","./src/app/uf/shared/uf.service.ts","./src/app/unidade-medida/shared/unidade-medida.service.ts","./src/app/venda/desconto-adicional/desconto-adicional.component.ts","./src/app/venda/desconto-adicional/desconto-adicional.component.html","./src/app/venda/orcamento-cadastro/orcamento-cadastro.component.ts","./src/app/venda/orcamento-cadastro/orcamento-cadastro.component.html","./src/app/venda/orcamento-item/orcamento-item.component.ts","./src/app/venda/orcamento-item/orcamento-item.component.html","./src/app/venda/shared/OrcamentoParcelaDataVencimento.model.ts","./src/app/venda/shared/VendaParcelaDataVencimentoDto.model.ts","./src/app/venda/shared/orcamento-item.model.ts","./src/app/venda/shared/orcamento-parcela.model.ts","./src/app/venda/shared/orcamento.service.ts","./src/app/venda/shared/venda-config.service.ts","./src/app/venda/shared/venda-item.model.ts","./src/app/venda/shared/venda-parcela.model.ts","./src/app/venda/shared/venda.model.ts","./src/app/venda/shared/venda.service.ts","./src/app/venda/venda-cadastro/venda-cadastro.component.ts","./src/app/venda/venda-cadastro/venda-cadastro.component.html","./src/app/venda/venda-devolucao/venda-devolucao.component.ts","./src/app/venda/venda-devolucao/venda-devolucao.component.html","./src/app/venda/venda-item/venda-item.component.ts","./src/app/venda/venda-item/venda-item.component.html","./src/environments/environment.hom.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-delete',\r\n templateUrl: './delete.component.html',\r\n styleUrls: ['./delete.component.css']\r\n})\r\nexport class DeleteComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n fecharDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\n
\n

{{ data.title }}

\n \n
\n \n
\n
\n
\n \n \n
\n
\n

Por favor, escreva REMOVER para remover o registro.

\n
\n
\n
\n \n REMOVER\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n ","'use strict'\r\nimport { Component, EventEmitter, Inject, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { InfoDialogComponent } from '../../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, of } from 'rxjs';\r\nimport { TipoDocumento } from '../shared/documentos-relacionados.model';\r\nimport { DocumentoService } from '../shared/documento.service';\r\n\r\n\r\n@Component({ \r\n selector: 'app-documentos-relacionados-component',\r\n templateUrl: 'documentos-relacionados.component.html',\r\n})\r\n\r\nexport class DocumentosRelacionadosComponent {\r\n \r\n @Input() empresas: any[] = [];\r\n @Input() postDocumentoByIdEEmpresas: (params: any) => Observable;\r\n @Input() clienteId: any;\r\n @Input() panelOpenState: boolean = true;\r\n @Input() id: any;\r\n\r\n\r\n @Output() documentosRelacionadosNovos = new EventEmitter();\r\n\r\n documentoRelacionadoForm: FormGroup;\r\n tipoDocumentoRelacionadoTexto: any = '';\r\n documentoFormControl = new FormControl();\r\n filteredObjetos: any[];\r\n documentosRelacionados: any[] = [];\r\n documentosRelacionadosFormatados: any[] = [];\r\n documentosRelacionadosDataTable = new MatTableDataSource([]);\r\n documentosRelacionadosAnteriores: any[] = [];\r\n optionsDocumentosRelacionados: any[]; \r\n \r\n\r\n configInicialOptions = [\r\n { value: 1, viewValue: 'Pedido de Venda' },\r\n { value: 4, viewValue: 'Orçamento' },\r\n { value: 6, viewValue: 'Contrato Anterior' },\r\n ];\r\n\r\n \r\n\r\n columnsDocumentosRelacionados = [\r\n { def: 'idDocumentoDestino', header: 'ID do Documento' },\r\n { def: 'tipoDocumentoDestino', header: 'Tipo do Documento' },\r\n { def: 'acaoTable', header: 'Ações' },\r\n \r\n ];\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n private _formBuilder: FormBuilder,\r\n private utilsService: UtilsService,\r\n private documentoService: DocumentoService,\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n \r\n \r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.optionsDocumentosRelacionados = this.configInicialOptions;\r\n\r\n // criar campos do formulario documentoRelacionadoForm\r\n this.documentoRelacionadoForm = this._formBuilder.group({\r\n idDocumentoDestino: ['', Validators.required],\r\n tipoDocumentoDestino: ['', Validators.required],\r\n \r\n });\r\n\r\n this.documentoRelacionadoForm.get('tipoDocumentoDestino').valueChanges.pipe(\r\n startWith(this.documentoRelacionadoForm.get('tipoDocumentoDestino')?.value)\r\n ).subscribe(value => {\r\n const selectedOption = this.optionsDocumentosRelacionados.find(option => option.value === value);\r\n this.tipoDocumentoRelacionadoTexto = selectedOption ? selectedOption.viewValue : null;\r\n });\r\n\r\n this.documentoFormControl.valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(value => {\r\n const id = parseInt(value);\r\n if (value?.length >= 1 && !isNaN(id)) {\r\n // Acessa o formArray na posição [0] e o FormArray empresas dentro dele\r\n const contratoEmpresasArray = this.empresas;\r\n \r\n // Mapeia os valores de EmpresaId\r\n const empresaIds = contratoEmpresasArray.map(item => item.empresaId);\r\n \r\n // Retorna o resultado da API se o comprimento for 3 ou mais caracteres\r\n return this.postDocumentoByIdEEmpresas(\r\n {\r\n idBuscado: id, \r\n tipoDocumentoDestino: parseInt(this.documentoRelacionadoForm.get('tipoDocumentoDestino').value),\r\n empresasIds: empresaIds,\r\n clienteId: this.clienteId\r\n }\r\n ).pipe(\r\n map(response => response.body || []),\r\n );\r\n } else {\r\n // Retorna um array vazio se o comprimento for menor que 3 caracteres\r\n return of([]);\r\n }\r\n })\r\n ).subscribe(data => {\r\n // Atualiza a lista de clientes filtrados\r\n this.filteredObjetos = data;\r\n });\r\n \r\n this.visualizaDocumento();\r\n\r\n }\r\n\r\n visualizaDocumento() {\r\n\r\n if(this.id){\r\n \r\n\r\n var parametros: any = {\r\n tipoOrigem: TipoDocumento.Contrato,\r\n idOrigem: this.id\r\n };\r\n \r\n this.documentoService.getVisualizaDocumento(parametros).subscribe(data => {\r\n \r\n this.documentosRelacionadosAnteriores = data.body;\r\n\r\n this.documentosRelacionados = this.documentosRelacionadosAnteriores;\r\n if(this.documentosRelacionadosAnteriores?.length>0){\r\n this.documentosRelacionadosAnteriores.forEach(element => {\r\n this.documentosRelacionadosFormatados.push({\r\n idDocumentoDestino: element.idDocumentoDestino,\r\n tipoDocumentoDestino: TipoDocumento[element.tipoDocumentoDestino],\r\n });\r\n }); \r\n }\r\n\r\n this.documentosRelacionadosDataTable.data = this.documentosRelacionadosFormatados;\r\n \r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n \r\n //verifica se tem mudanças em id\r\n if (changes.id && changes.id.currentValue !== changes.id.previousValue) {\r\n this.visualizaDocumento();\r\n }\r\n\r\n \r\n }\r\n\r\n addDocumento(){\r\n this.documentosRelacionados.push(this.documentoRelacionadoForm.value);\r\n \r\n this.documentosRelacionadosFormatados.push({\r\n idDocumentoDestino: this.documentoRelacionadoForm.get('idDocumentoDestino').value,\r\n tipoDocumentoDestino: this.tipoDocumentoRelacionadoTexto,\r\n \r\n });\r\n \r\n // Atribuição dos valores ao MatTableDataSource\r\n this.documentosRelacionadosDataTable.data = this.documentosRelacionadosFormatados;\r\n \r\n // Emitir o evento para o componente pai\r\n this.documentosRelacionadosNovos.emit(this.documentosRelacionados);\r\n\r\n //limpar todos os campos do formulario documentoRelacionadoForm após a inserção sem remover as funções onChanges\r\n this.documentoRelacionadoForm.reset();\r\n this.documentoFormControl.setValue(undefined);\r\n this.verificaContratoAnteriorExiste();\r\n \r\n }\r\n \r\n\r\n \r\n\r\n onDocumentoSelected(documento: any) {\r\n if(documento){\r\n this.documentoRelacionadoForm.patchValue({ idDocumentoDestino: documento.id });\r\n\r\n this.addDocumento();\r\n \r\n }\r\n }\r\n\r\n displayDocumentoFn(documento): string {\r\n return documento ? documento.descricao : '';\r\n }\r\n\r\n //cria uma função chamada contratoAnteriorExiste para verificar se em this.contratoForm.get('formArray').get([5]).get('documentos').value possui algum registro com tipo de registro = 6\r\n verificaContratoAnteriorExiste(){\r\n if (this.documentosRelacionados.some((documento: any) => documento.tipoDocumentoDestino === 6)){\r\n\r\n //remove option 6 de optionsDocumentosRelacionados\r\n this.optionsDocumentosRelacionados = this.optionsDocumentosRelacionados?.filter(option => option.value !== 6);\r\n }else{\r\n //adiciona option 6 de optionsDocumentosRelacionados\r\n this.optionsDocumentosRelacionados = this.configInicialOptions;\r\n }\r\n }\r\n\r\n\r\n onExcluirDocumento(idToRemove: any): void {\r\n \r\n // Encontrar o índice do item a ser removido\r\n const index = this.documentosRelacionados.findIndex(item => item.idDocumentoDestino === idToRemove);\r\n \r\n // Remover o item se encontrado\r\n if (index !== -1) {\r\n this.documentosRelacionados.splice(index,1);\r\n this.documentosRelacionadosFormatados.splice(index,1);\r\n\r\n }\r\n \r\n // Atualizar os dados da tabela\r\n this.documentosRelacionadosDataTable.data = this.documentosRelacionadosFormatados;\r\n\r\n // Emitir o evento para o componente pai\r\n this.documentosRelacionadosNovos.emit(this.documentosRelacionados);\r\n\r\n this.verificaContratoAnteriorExiste();\r\n \r\n }\r\n\r\n \r\n}\r\n","
\r\n
\r\n

Esse é o momento de relacionar esse documento com outros documentos relevantes do sistema, como orçamentos anteriores e pedidos de venda, para garantir que todas as informações estejam devidamente integradas e atualizadas.\r\n

\r\n
\r\n\r\n
\r\n\r\n
\r\n

Vincular Elemento:

\r\n
\r\n \r\n Tipo Relação\r\n \r\n \r\n {{ option.viewValue }}\r\n \r\n \r\n \r\n\r\n \r\n ID do item que será relacionado\r\n \r\n \r\n \r\n {{objeto.descricao}}\r\n \r\n 0)\" class=\"nao-encontrado\">\r\n ❌ Nenhum item com o mesmo cliente ou empresa cadastrado foi encontrado.\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
0\">\r\n \r\n \r\n
\r\n\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class DocumentoService {\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n \r\n const params = {\r\n id: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/documento/visualizapororigemtipoorigem', { observe: 'response', params })\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class DocumentoRelacionado {\r\n documentoId: number = 0;\r\n descricao: number = 0;\r\n tipoDocumentoOrigem: TipoDocumento;\r\n idDocumentoOrigem: number = 0;\r\n tipoDocumentoDestino: TipoDocumento;\r\n idDocumentoDestino: number = 0;\r\n\r\n}\r\n\r\nexport enum TipoDocumento {\r\n\r\n \r\n Compra = 0,\r\n Venda = 1,\r\n Devolucao = 2,\r\n Producao = 3,\r\n Orcamento = 4,\r\n Nfe = 5,\r\n Contrato = 6,\r\n Remessa = 7,\r\n FaturaVenda = 8,\r\n FaturaCompra = 9,\r\n ContaReceber = 10,\r\n ContaPagar = 11,\r\n CaixaMovimento = 12,\r\n EstoqueMovimento = 13,\r\n Entrega = 14,\r\n MDFe = 15,\r\n ContaReceberRecibo = 16,\r\n ContaPagarRecibo = 17,\r\n HistoricoEscolar = 18,\r\n FuncionarioFoto = 19,\r\n VeiculoFoto = 20,\r\n FuncionarioFicha = 21,\r\n VeiculoFicha = 22,\r\n Oportunidade = 23,\r\n OrdemServico = 24\r\n}","import { CurrencyPipe } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, SimpleChange, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { AsyncSubject, Observable, of, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';;\r\nimport { EditorComponent, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';\r\nimport { TipoTemplate } from 'src/app/template/shared/template.model';\r\n\r\n@Component({\r\n selector: 'app-editor-html-template',\r\n templateUrl: './editor-html-template.html',\r\n providers: [\r\n {provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js'}\r\n\r\n ]\r\n\r\n})\r\nexport class EditorHtmlTemplateComponent implements OnInit {\r\neditorConfig: any;\r\neditorContent: string ='';\r\n@ViewChild(EditorComponent) editorComponent: EditorComponent;\r\n// other properties\r\neditorSubject: Subject = new AsyncSubject();\r\n\r\n @Input() htmlAntigo:any;\r\n @Input() getTemplateTagsService: (params: any) => Observable;\r\n @Input() empresas:any[];\r\n @Input() tpTemplate: TipoTemplate;\r\n @Input() objeto:any;\r\n @Input() postTrocarTagsHtmlService: (params: any) => Observable;\r\n \r\n @Output() novoHtml = new EventEmitter();\r\n\r\n\r\n\r\n private contentChangeSubject = new Subject();\r\n\r\n tags:any;\r\n editor: any;\r\n\r\n ngOnInit(): void {\r\n \r\n this.setupEditor();\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n\r\n }\r\n\r\n \r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (changes.htmlAntigo && changes.htmlAntigo.currentValue!==changes.htmlAntigo.previousValue) {\r\n //insere o html no editor\r\n this.editorContent = this.htmlAntigo\r\n }\r\n if(changes.empresas && changes.empresas.currentValue!==changes.empresas.previousValue && changes.empresas.currentValue.length>0){\r\n this.carregaTags( changes.empresas.currentValue);\r\n }\r\n\r\n if(changes.tpTemplate && changes.tpTemplate.currentValue!==changes.tpTemplate.previousValue && changes.tpTemplate.currentValue>0){\r\n this.carregaTags(this.empresas);\r\n }\r\n \r\n}\r\n // Método para simular o clique no botão de impressão do TinyMCE\r\n triggerPrint() {\r\n if (this.editorComponent.editor) {\r\n this.editorComponent.editor.execCommand('mcePrint');\r\n }\r\n }\r\n\r\nonEditorContentChange(event: any) {\r\n\r\n if(this.htmlAntigo !== event){\r\n\r\n if (this.containsDynamicTags(event) && this.objeto) {\r\n this.objeto.contratoHtmlTexto = event;\r\n \r\n\r\n this.postTrocarTagsHtmlService(this.objeto).pipe(\r\n map(response => response.body || [])\r\n )\r\n .subscribe(data => {\r\n this.editorContent = data;\r\n \r\n\r\n });\r\n } \r\n\r\n this.editorContent = event;\r\n\r\n // this.editorComponent.editor.setContent(this.editorContent);\r\n // this.editorComponent.editor.execCommand('mceRepaint');\r\n this.novoHtml.emit(this.editorContent);\r\n\r\n }\r\n}\r\n\r\ncontainsDynamicTags(content: string): boolean {\r\n const dynamicTagPattern = /\\{\\{.*?\\}\\}/;\r\n return dynamicTagPattern.test(content);\r\n }\r\n\r\n\r\ncarregaTags(empresasCurrent) {\r\n if(empresasCurrent.length > 0){ \r\n this.getTemplateTagsService(empresasCurrent).pipe(\r\n map(response => response.body || []))\r\n .subscribe(data => {\r\n // Atualiza a lista de tags filtrados\r\n this.tags = data; \r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n onEditorInit(event: any) {\r\n this.editorSubject.next(event.editor);\r\n this.editorSubject.complete();\r\n }\r\n\r\n setupEditor() {\r\n this.editorConfig = {\r\n base_url: '/tinymce', \r\n suffix: '.min',\r\n license_key: 'gpl',\r\n language: 'pt_BR',\r\n language_url: 'assets/tinymce/pt_BR.js',\r\n toolbar_mode: 'sliding',\r\n plugins: 'link image code table emoticons lists preview fullscreen searchreplace insertdatetime advlist quickbars',\r\n toolbar1: 'undo redo | blocks fontfamily fontsize | bold italic underline strikethrough | align lineheight outdent indent | numlist bullist',\r\n toolbar2: 'link image table emoticons| forecolor backcolor removeformat | code fullscreen preview | addTagButton',\r\n toolbar3: 'customAlertButton',\r\n menubar: 'file edit view insert format tools table help',\r\n quickbars_selection_toolbar: 'addTagButton | bold align numlist bullist',\r\n quickbars_insert_toolbar: 'addTagButton | bold align numlist bullist',\r\n height: 600,\r\n \r\n setup: (editor) => {\r\n editor.on('Change', () => {\r\n this.onEditorContentChange(editor.getContent());\r\n });\r\n \r\n const flatten = (arr) => [].concat(...arr);\r\n \r\n const generateMenu = (data) => {\r\n // Verifica se o data está vazio ou se não existem tags\r\n if (Object.keys(data).length === 0) {\r\n return [{\r\n type: 'menuitem',\r\n text: 'Não existem tags disponíveis para esse tipo de template',\r\n onAction: () => {}\r\n }];\r\n }\r\n \r\n return Object.keys(data).map(key => {\r\n const subItems = data[key];\r\n \r\n //verificar se subItems tem a propriedade placeholder, se tiver hasSubmenu = false\r\n let hasSubmenu = true;\r\n if (subItems.hasOwnProperty('placeholder')) {\r\n hasSubmenu = false;\r\n }\r\n \r\n\r\n if (hasSubmenu) {\r\n // Se tiver submenu, monta o submenu normalmente\r\n const submenuItems = flatten(Object.keys(subItems)\r\n .filter(subKey => subKey !== 'nome')\r\n .map(subKey => {\r\n const subItem = subItems[subKey];\r\n if (Array.isArray(subItem) && subItem.length > 0) {\r\n return subItem.map(item => ({\r\n type: 'nestedmenuitem',\r\n text: item.nome,\r\n getSubmenuItems: () => Object.keys(item)\r\n .filter(itemKey => itemKey !== 'nome')\r\n .map(itemKey => ({\r\n type: 'menuitem',\r\n text: item[itemKey].nome,\r\n onAction: () => editor.insertContent(item[itemKey].placeholder)\r\n }))\r\n }));\r\n }\r\n else if (typeof subItem === 'object' && subItem.hasOwnProperty('placeholder')) {\r\n // SubItem é um menu simples\r\n return {\r\n type: 'menuitem',\r\n text: subItem.nome,\r\n onAction: () => editor.insertContent(subItem.placeholder)\r\n };\r\n } else if (typeof subItem === 'object' && subItem !== null) {\r\n // SubItem é um submenu\r\n return {\r\n type: 'nestedmenuitem',\r\n text: subItem.nome,\r\n getSubmenuItems: () => Object.keys(subItem)\r\n .filter(itemKey => itemKey !== 'nome')\r\n .map(itemKey => ({\r\n type: 'menuitem',\r\n text: subItem[itemKey].nome,\r\n onAction: () => editor.insertContent(subItem[itemKey].placeholder)\r\n }))\r\n };\r\n }\r\n })\r\n );\r\n \r\n return {\r\n type: 'nestedmenuitem',\r\n text: subItems.nome,\r\n getSubmenuItems: () => submenuItems.length > 0 ? submenuItems : [{\r\n type: 'menuitem',\r\n text: 'Não existem tags disponíveis para esse tipo de template',\r\n onAction: () => {}\r\n }]\r\n };\r\n } \r\n });\r\n };\r\n\r\n editor.ui.registry.addMenuButton('addTagButton', {\r\n icon: 'addtag',\r\n tooltip: 'Add Tag',\r\n fetch: (callback) => {\r\n const items = generateMenu(this.tags);\r\n callback(items);\r\n }\r\n });\r\n \r\n }\r\n };\r\n }\r\n \r\n \r\n\r\n modifyHtmlBeforePrint(orientacaoPaisagem = false): any {\r\n \r\n let texto='';\r\n if (orientacaoPaisagem) {\r\n texto += '';\r\n } else {\r\n texto += '';\r\n }\r\n \r\n // Adiciona estilos para remover margens do corpo e da página ao imprimir\r\n texto += '';\r\n texto += '';\r\n \r\n texto += '' + this.novoHtml + '';\r\n return texto;\r\n\r\n\r\n\r\n\r\n }\r\n \r\n\r\n}","
\r\n \r\n\r\n
","import { CurrencyPipe } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, SimpleChange, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Observable, of } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { Produto } from 'src/app/produto/shared/produto.model';\r\n\r\n@Component({\r\n selector: 'app-itens',\r\n templateUrl: './itens-cadastro.component.html',\r\n})\r\nexport class ItensCadastroComponent implements OnInit {\r\n\r\n @Input() getProdutoPorNomeEEmpresasService: (params: any) => Observable;\r\n @Input() empresas: any;\r\n @Input() itens: any[] = [];\r\n @Input() panelOpenState: boolean = true;\r\n\r\n @Output() valorTotalBruto = new EventEmitter();\r\n @Output() descontosAplicadosAosItens = new EventEmitter();\r\n @Output() valorTotalLiquido = new EventEmitter();\r\n @Output() novosItens = new EventEmitter();\r\n\r\n\r\n\r\n\r\n filteredProdutos: any[];\r\n\r\n columns = [\r\n { def: 'quantidade', header: 'Quantidade' },\r\n { def: 'descricao', header: 'Nome', minWidth: '250px' },\r\n { def: 'valorUnitario', header: 'Valor Unitário' },\r\n { def: 'descontoUnitario', header: 'Valor Desconto Unitário' },\r\n { def: 'valorTotalBruto', header: 'Valor Total Bruto' },\r\n { def: 'valorTotalLiquido', header: 'Valor Total Líquido' },\r\n { def: 'acaoTable', header: 'Ações' },\r\n\r\n\r\n ];\r\n itemForm: FormGroup;\r\n\r\n itensTabela = new MatTableDataSource([]);\r\n\r\n constructor(private _formBuilder: FormBuilder, private currencyPipe: CurrencyPipe, private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n\r\n this.itemForm = this._formBuilder.group({\r\n quantidade: [1, [Validators.required, Validators.min(1)]],\r\n item:['', Validators.required],\r\n descricao: ['', Validators.required],\r\n codProd: [''],\r\n valorUnitario: [0, Validators.required],\r\n descontoUnitario: [0],\r\n valorTotalBruto: [0, Validators.required],\r\n valorTotalLiquido: [0, Validators.required],\r\n produtoId: [0, Validators.required],\r\n produtoTipo: [0, Validators.required],\r\n\r\n\r\n });\r\n\r\n this.onChanges();\r\n this.cdr.detectChanges();\r\n\r\n }\r\n\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.itens) {\r\n this.setFormatedItensIntoTable();\r\n this.calcularValoresGerais();}\r\n\r\n }\r\n\r\n\r\n\r\n\r\n onChanges(): void {\r\n this.itemForm.valueChanges.subscribe(val => {\r\n const valorUnitario= this.itemForm.get('valorUnitario').value;\r\n const quantidade = this.itemForm.get('quantidade').value;\r\n const descontoUnitario = this.itemForm.get('descontoUnitario').value;\r\n const valorTotalBruto = valorUnitario * quantidade;\r\n const valorTotalLiquido = (valorUnitario-descontoUnitario) * quantidade;\r\n this.itemForm.get('valorTotalBruto').setValue(valorTotalBruto, { emitEvent: false });\r\n this.itemForm.get('valorTotalLiquido').setValue(valorTotalLiquido, { emitEvent: false });\r\n\r\n });\r\n\r\n this.itemForm.get('item').valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(value => {\r\n if (value?.length >= 3) {\r\n // Retorna o resultado da API se o comprimento for 3 ou mais caracteres\r\n return this.getProdutoPorNomeEEmpresasService({\r\n id: value,\r\n empresasIds: this.empresas.map((empresa: any) => empresa.empresaId)}).pipe(\r\n map(response => response.body || [])\r\n );\r\n } else {\r\n // Retorna um array vazio se o comprimento for menor que 3 caracteres\r\n return of([]);\r\n }\r\n })\r\n ).subscribe(data => {\r\n // Atualiza a lista de clientes filtrados\r\n this.filteredProdutos = data;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n displayItemFn(item:any): string {\r\n return item ? item.descricao : '';\r\n }\r\n\r\n\r\n onItemSelected(item: Produto) {\r\n if(item){\r\n this.itemForm.patchValue({ valorUnitario: item.vlrComercial});\r\n this.itemForm.patchValue({ codProd: item.codProd});\r\n this.itemForm.patchValue({ produtoId: item.produtoId});\r\n this.itemForm.patchValue({ produtoTipo: item.produtoTipo});\r\n this.itemForm.patchValue({ descricao: item.descricao});\r\n this.itemForm.patchValue({ descontoUnitario: 0});\r\n\r\n }\r\n }\r\n\r\n\r\n addItem(): void {\r\n this.itens.push(this.itemForm.value);\r\n\r\n\r\n this.setFormatedItensIntoTable();\r\n this.calcularValoresGerais();\r\n this.panelOpenState =false\r\n this.emitChanges();\r\n this.itemForm.reset();\r\n\r\n\r\n }\r\n\r\n emitChanges() {\r\n this.novosItens.emit(this.itens);\r\n }\r\n\r\n setFormatedItensIntoTable(){\r\n // Set formatted item in itens.data\r\n this.itensTabela.data = this.itens?.map(item => {\r\n return {\r\n codProd: item.codProd,\r\n descricao: item.descricao,\r\n valorUnitario: this.currencyPipe.transform(item.valorUnitario, 'BRL', 'symbol'),\r\n produtoId: item.produtoId,\r\n produtoTipo: item.produtoTipo,\r\n quantidade: item.quantidade,\r\n valorTotalBruto: this.currencyPipe.transform(item.valorTotalBruto, 'BRL', 'symbol'),\r\n descontoUnitario: this.currencyPipe.transform(item.descontoUnitario, 'BRL', 'symbol'),\r\n valorTotalLiquido: this.currencyPipe.transform(item.valorTotalLiquido, 'BRL', 'symbol')\r\n };\r\n });\r\n\r\n }\r\n\r\n\r\n onExcluir(idToRemove: any): void {\r\n\r\n // Encontrar o índice do item a ser removido\r\n const index = this.itens.findIndex(item => item.produtoId === idToRemove);\r\n\r\n // Remover o item se encontrado\r\n if (index !== -1) {\r\n this.itens.splice(index,1);\r\n\r\n }\r\n\r\n // Atualizar os dados da tabela\r\n this.itensTabela.data = this.itens;\r\n this.calcularValoresGerais();\r\n }\r\n\r\n calcularValoresGerais() {\r\n\r\n const valorTotalBrutoTemp = this.itens?.reduce((sum, item) => sum + item.valorTotalBruto, 0);\r\n const descontosAplicadosAosItens = this.itens?.reduce((sum, item) => sum + item.descontoUnitario * item.quantidade, 0);\r\n const valorTotalLiquidoTemp = valorTotalBrutoTemp - descontosAplicadosAosItens;\r\n\r\n this.valorTotalBruto.emit(valorTotalBrutoTemp);\r\n this.descontosAplicadosAosItens.emit(descontosAplicadosAosItens);\r\n this.valorTotalLiquido.emit(valorTotalLiquidoTemp);\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n ➕ Clique para adicionar novos itens\r\n \r\n \r\n Adicione novos itens 👇\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Quantidade\r\n \r\n \r\n \r\n Serviço/Produto que será adicionado\r\n \r\n \r\n \r\n {{produto.codProd}} - {{produto.descricao}}\r\n \r\n 0)&&(itemForm?.get('item').value?.length >= 3))\" class=\"nao-encontrado\">\r\n ❌ Produto/Serviço não localizado nas filiais selecionadas.\r\n \r\n \r\n 🔎 Digite 3 letras que existam sequencialmente no Nome ou no Código do Serviço/Produto desejado.\r\n \r\n\r\n
0\">\r\n \r\n Valor Unitário\r\n R$  \r\n \r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n Desconto no Valor Unitário\r\n R$  \r\n \r\n \r\n \r\n Valor Total Bruto\r\n R$  \r\n \r\n \r\n\r\n \r\n Valor Total Líquido\r\n R$  \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
0\">\r\n
\r\n

Itens adicionados:

\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n","import { Component, Input, OnInit, AfterViewInit, OnChanges, SimpleChanges, EventEmitter, Output } from '@angular/core';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forEach } from 'jszip';\r\nimport { DatePipe, CurrencyPipe } from '@angular/common';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ItemParcela, TipoPagamento } from '../shared/item-parcela.model';\r\nimport { NativeDateAdapter, DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\n\r\nclass ParcelaDateAdapter extends NativeDateAdapter {\r\n format(date: Date, displayFormat: Object): string {\r\n if (displayFormat === 'input') {\r\n const day = date.getDate();\r\n const month = date.getMonth() + 1;\r\n const year = date.getFullYear();\r\n return `${day.toString().padStart(2, '0')}/${month.toString().padStart(2, '0')}/${year}`;\r\n }\r\n return date.toDateString();\r\n }\r\n\r\n parse(value: any): Date | null {\r\n if (typeof value === 'string') {\r\n const [day, month, year] = value.split('/').map(Number);\r\n const date = new Date(year, month - 1, day);\r\n return isNaN(date.getTime()) ? null : date;\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nconst PARCELA_DATE_FORMATS = {\r\n parse: {\r\n dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\r\n },\r\n display: {\r\n dateInput: 'input',\r\n monthYearLabel: { year: 'numeric', month: 'numeric' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\r\n }\r\n};\r\n\r\n@Component({\r\n selector: 'app-calcula-parcelas',\r\n templateUrl: 'calcula-parcelas-component.html',\r\n styleUrls: ['calcula-parcelas-component.css'],\r\n providers: [\r\n DatePipe,\r\n { provide: DateAdapter, useClass: ParcelaDateAdapter },\r\n { provide: MAT_DATE_FORMATS, useValue: PARCELA_DATE_FORMATS },\r\n { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' }\r\n ]\r\n})\r\n export class CalculaParcelasComponent implements OnInit, AfterViewInit, OnChanges {\r\n \r\n //entradas\r\n @Input() valorTotal: number = 0; //valor total do contrato\r\n @Input() valorLiquido: number; //valor sugestivo para primeira parcela\r\n @Input() tipoPagamento: number = 3; // valor surgestivo tipo de pagamento\r\n @Input() numeroParcelas: number = 1;\r\n @Input() vencimento: Date;\r\n @Input() parcelasIniciais: ItemParcela[] = [];\r\n @Input() parcelaIdNome:string ='';\r\n @Input() panelOpenState: boolean = true;\r\n @Input() intervaloParcelas: number = 30;\r\n\r\n //saidas\r\n @Output() parcelasFinaisChange = new EventEmitter();\r\n \r\n formParcelas!: FormGroup;\r\n valorCadaParcela: number = 0;\r\n currentDate = new Date();\r\n parcelas = new MatTableDataSource([]);\r\n metodoPagamentoTexto: any = '';\r\n private _parcelasFinais: any[] = [];\r\n\r\n\r\n\r\n get parcelasFinais(): any[] {\r\n return this._parcelasFinais;\r\n }\r\n\r\n \r\n set parcelasFinais(value: any[]) {\r\n this._parcelasFinais = value;\r\n this.parcelasFinaisChange.emit(this._parcelasFinais);\r\n }\r\n\r\n columns = [\r\n { def: 'dataVencimentoParcela', header: 'Data de Vencimento' },\r\n { def: 'valorLiquido', header: 'Valor Parcela' },\r\n { def: 'tipoPagamento', header: 'Tipo Pagamento'},\r\n { def: 'acaoTable', header: 'Ações' }\r\n \r\n ];\r\n \r\n\r\n constructor(private formBuilder: FormBuilder,private datePipe: DatePipe, private currencyPipe: CurrencyPipe, private _snackBar: MatSnackBar,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n \r\n\r\n this.createForm();\r\n const brTime = this.currentDate.toLocaleString(\"en-US\", {timeZone: \"America/Sao_Paulo\"});\r\n this.currentDate = new Date(brTime);\r\n\r\n this.onChanges();\r\n\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n \r\n \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['valorLiquido']) {\r\n this.formParcelas.get('valorLiquido')?.setValue(Number(this.valorLiquido.toFixed(2)), { emitEvent: false });\r\n }\r\n if (changes['vencimento']) {\r\n this.formParcelas.get('dataVencimentoParcela')?.setValue(this.vencimento, { emitEvent: false });\r\n }\r\n if (changes['numeroParcelas']) {\r\n this.formParcelas.get('numeroParcelas')?.setValue(this.numeroParcelas, { emitEvent: false });\r\n }\r\n if (changes['valorTotal']) {\r\n const numeroParcelas = this.formParcelas?.get('numeroParcelas').value;\r\n const valorLiquido = numeroParcelas === 0 ? 0 : this.valorTotal / numeroParcelas;\r\n this.formParcelas?.get('valorLiquido').setValue(Number(valorLiquido.toFixed(2)), { emitEvent: false });\r\n }\r\n if (changes['intervaloParcelas']) {\r\n this.formParcelas?.get('intervaloParcelas')?.setValue(this.intervaloParcelas, { emitEvent: false });\r\n }\r\n\r\n if (changes['tipoPagamento']) {\r\n this.formParcelas?.get('tipoPagamento')?.setValue(this.tipoPagamento, { emitEvent: false });\r\n }\r\n\r\n\r\n if (changes.parcelasIniciais) {\r\n\r\n if(this.parcelasIniciais?.length>0){\r\n\r\n this.panelOpenState = false;\r\n \r\n \r\n }else{\r\n this.panelOpenState = true;\r\n }\r\n \r\n \r\n this.parcelas.data = this.parcelasIniciais?.map((parcela: any) => {\r\n return {\r\n parcelaId: parcela[this.parcelaIdNome],\r\n dataVencimentoParcela: this.datePipe.transform(parcela.dataVencimento, 'dd/MM/yyyy'),\r\n valorLiquido: this.currencyPipe.transform(parcela.valorLiquido, 'BRL', 'symbol'),\r\n tipoPagamento: TipoPagamento[parcela.tipoPagamento]\r\n\r\n\r\n }});\r\n\r\n this.parcelasFinais = this.parcelasIniciais?.map((parcela: any) => {\r\n return {\r\n parcelaId: parcela[this.parcelaIdNome],\r\n dataVencimentoParcela: parcela.dataVencimento,\r\n valorLiquido: Number(parcela.valorLiquido.toFixed(2)),\r\n tipoPagamento: parcela.tipoPagamento\r\n\r\n\r\n }});\r\n\r\n this.preencherFormularioSugestoes();\r\n\r\n }\r\n\r\n }\r\n\r\n createForm() {\r\n let data = new Date();\r\n if(!this.vencimento){\r\n data.setDate(this.currentDate.getDate() + 5);\r\n \r\n }else{\r\n data = this.vencimento;\r\n }\r\n \r\n\r\n this.formParcelas = this.formBuilder.group({\r\n tipoPagamento: [3, Validators.required],\r\n numeroParcelas: [1, new Date()],\r\n dataVencimentoParcela: [data, Validators.required],\r\n valorLiquido: [this.valorLiquido, Validators.required],\r\n intervaloParcelas: [30, Validators.required]\r\n }); \r\n\r\n this.metodoPagamentoTexto = \"BOLETO\";\r\n }\r\n\r\n ajustaDizimaPeriodica(somaTodasParcelasAposInsercao:any, quantidadeParcelasAposInsercao:any){\r\n \r\n const diferenca = this.valorTotal - somaTodasParcelasAposInsercao;\r\n \r\n if(diferenca<1 && diferenca>-1){\r\n\r\n //pode ser uma dizima periodica ou diferença de arredondamento\r\n return diferenca;\r\n\r\n }else{\r\n\r\n if(diferenca>=1){\r\n //o usuário apenas não finalizou a inserção de todas as parcelas\r\n return 0\r\n\r\n }else{\r\n //o usuário inseriu mais do que deveria\r\n return -99;\t\r\n\r\n }\r\n\r\n }\r\n \r\n \r\n } \r\n\r\n getSomaValorTotalParcelasFinais(){\r\n return Number((this.parcelasFinais?.reduce((sum, item) => Number(sum.toFixed(2)) + Number(item.valorLiquido.toFixed(2)), 0)).toFixed(2)) || 0;\r\n }\r\n\r\n \r\n verificaParcelas(){\r\n\r\n //somar o valor de todas as parcelasFinais\r\n const valorLiquidoParcelas = Number((this.parcelasFinais?.reduce((sum, item) => Number(sum.toFixed(2)) + Number(item.valorLiquido.toFixed(2)), 0)).toFixed(2));\r\n //quantidade de parcelas que tem em parcelasFinais\r\n const quantidadeParcelasAtuais = this.parcelasFinais.length;\r\n\r\n //multipla o valor this.formParcelas.get('numeroParcelas') pelo valor this.formParcelas.get('valorLiquido')\r\n const somaDasParcelasQueSeraoInseridas = Number((Number(this.formParcelas.get('numeroParcelas').value.toFixed(2)) * Number(this.formParcelas.get('valorLiquido').value.toFixed(2))).toFixed(2));\r\n //quantidade de parcelas que serão inseridas\r\n const quantidadeParcelasQueSeraInserida = this.formParcelas.get('numeroParcelas').value;\r\n\r\n const somaTodasParcelasAposInsercao = valorLiquidoParcelas + somaDasParcelasQueSeraoInseridas;\r\n //quantidade de parcelas apos a inserção\r\n const quantidadeParcelasAposInsercao = quantidadeParcelasAtuais + quantidadeParcelasQueSeraInserida;\r\n\r\n const diferenca = this.ajustaDizimaPeriodica(somaTodasParcelasAposInsercao, quantidadeParcelasAposInsercao);\r\n \r\n\r\n //se o valorLiquidoParcelas + valorTotalQueSeraInserido for menor do que o this.valorTotal, ele chama o gerarParcelas, senão ele retorna um erro de snackbar falando que a soma não pode ultrapassar o valor total do contrato\r\n if(diferenca!==-99){\r\n \r\n \r\n this.gerarParcelas(diferenca);\r\n \r\n }\r\n else{\r\n this._snackBar.open('😵‍💫 Erro! As parcelas não foram adicionadas! \\n\\n A soma dos valores das parcelas não pode ultrapassar o Valor Total Líquido que precisa ser faturado.\\n\\n Altere ou exclua as parcelas atuais para continuar.', '✖', {\r\n duration: 10000, panelClass: ['mat-toolbar', 'warn']\r\n });\r\n }\r\n }\r\n\r\n\r\n gerarParcelas(diferenca: any){ \r\n const parcelasTemp = this.parcelas.data.slice(); // Usar slice para criar uma cópia\r\n const numeroParcelasNovas = this.formParcelas.get('numeroParcelas')?.value || 1;\r\n const dataVencimento = this.formParcelas.get('dataVencimentoParcela')?.value;\r\n const intervaloParcela = this.formParcelas.get('intervaloParcelas')?.value || 30; // Obter o intervalo em dias\r\n const tipoPagamento = this.formParcelas.get('tipoPagamento')?.value >= 0 ? this.formParcelas.get('tipoPagamento')?.value : 3;\r\n\r\n \r\n const valorParcela = Number((this.formParcelas.get('valorLiquido').value).toFixed(2));\r\n \r\n \r\n for (let i = 0; i < numeroParcelasNovas; i++) {\r\n const dataVencimentoParcela = new Date(dataVencimento);\r\n dataVencimentoParcela.setDate(dataVencimentoParcela.getDate() + (i * intervaloParcela)); // Adicionar o intervalo em dias\r\n\r\n const valorParcelaAjustada = i === numeroParcelasNovas - 1 ? valorParcela + diferenca : valorParcela;\r\n \r\n parcelasTemp.push({\r\n parcelaId: parcelasTemp.length - 1,\r\n dataVencimentoParcela: this.datePipe.transform(dataVencimentoParcela, 'dd/MM/yyyy'),\r\n valorLiquido: this.currencyPipe.transform(valorParcelaAjustada, 'BRL', 'symbol'),\r\n tipoPagamento: TipoPagamento[tipoPagamento]\r\n });\r\n \r\n this.parcelasFinais.push({\r\n parcelaId: this.parcelasFinais.length - 1,\r\n dataVencimentoParcela: dataVencimentoParcela,\r\n valorLiquido: Number(valorParcelaAjustada.toFixed(2)),\r\n tipoPagamento: this.formParcelas.get('tipoPagamento')?.value\r\n });\r\n }\r\n \r\n this.parcelas.data = parcelasTemp;\r\n this.parcelasFinaisChange.emit(this.parcelasFinais);\r\n this.panelOpenState = false;\r\n \r\n this.formParcelas.reset();\r\n this.preencherFormularioSugestoes();\r\n \r\n }\r\n \r\n onExcluir(idToRemove: any): void {\r\n // Filtra as parcelas finais para remover aquelas com parcelaId igual a idToRemove\r\n this.parcelasFinais = this.parcelasFinais.filter(parcela => parcela.parcelaId !== idToRemove);\r\n \r\n // Filtra as parcelas temporárias para remover aquelas com parcelaId igual a idToRemove\r\n const parcelasTemp = this.parcelas.data.filter(parcela => parcela.parcelaId !== idToRemove);\r\n \r\n // Atualiza o data source com as parcelas filtradas\r\n this.parcelas.data = parcelasTemp;\r\n\r\n this.preencherFormularioSugestoes();\r\n }\r\n\r\n onChanges(): void {\r\n this.formParcelas.get('numeroParcelas').valueChanges.subscribe(val => {\r\n const numeroParcelas = this.formParcelas.get('numeroParcelas').value;\r\n const valorRestante = this.getValorRestante() >0 ? this.getValorRestante() : 0;\r\n\r\n const valorLiquido= numeroParcelas===0? 0 : Number((valorRestante/numeroParcelas).toFixed(2));\r\n this.formParcelas.get('valorLiquido').setValue(valorLiquido, { emitEvent: false });\r\n \r\n });\r\n }\r\n\r\n preencherFormularioSugestoes(){\r\n this.formParcelas?.get('numeroParcelas').setValue(1);\r\n const intervalo = this.intervaloParcelas>0 ? this.intervaloParcelas : 30;\r\n this.formParcelas.get('intervaloParcelas').setValue(intervalo);\r\n\r\n const tipoPagamento = this.tipoPagamento>=0 ? this.tipoPagamento : 3;\r\n this.formParcelas.get('tipoPagamento').setValue(tipoPagamento);\r\n\r\n const dataAtual = new Date();\r\n const dataComUmMesAMenos = new Date(dataAtual.setMonth(dataAtual.getMonth() - 1));\r\n\r\n let ultimaDataInserida = this.parcelasFinais[this.parcelasFinais.length - 1]?.dataVencimentoParcela || dataComUmMesAMenos;\r\n \r\n //SOMAR O INTERVALO NA ÚLTIMA DATA INSERIDA\r\n ultimaDataInserida = new Date(ultimaDataInserida);\r\n ultimaDataInserida.setDate(ultimaDataInserida.getDate() + intervalo);\r\n \r\n\r\n this.formParcelas.get('dataVencimentoParcela').setValue(ultimaDataInserida);\r\n\r\n //subtrair o this.valorLiquido pela soma da propriedade valorLiquido de todas as parcelasFinais\r\n let valorLiquido = this.getValorRestante() >0 ? this.getValorRestante() : 0;\r\n\r\n //arredondar valorLiquido para 2 casas decimais, usando Math.round\r\n valorLiquido = Number(valorLiquido.toFixed(2));\r\n\r\n\r\n this.formParcelas.get('valorLiquido').setValue(valorLiquido);\r\n \r\n \r\n }\r\n\r\n //obter valor restante para completar o valor total do contrato\r\n getValorRestante(): number {\r\n return Number(this.valorTotal.toFixed(2)) - Number((this.parcelasFinais.reduce((sum, item) => Number(sum.toFixed(2)) + Number(item.valorLiquido.toFixed(2)), 0)).toFixed(2)); \r\n }\r\n\r\n\r\n onSelectChange(event: MatSelectChange) {\r\n const selectedOption = event.source.selected as any;\r\n this.metodoPagamentoTexto = selectedOption ? selectedOption.viewValue : null;\r\n }\r\n\r\n\r\n \r\n \r\n }\r\n","\r\n \r\n \r\n \r\n ➕ Clique para adicionar novas parcelas\r\n \r\n \r\n Adicionar novas parcelas 👇\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Tipo de Pagamento\r\n \r\n Dinheiro\r\n Débito\r\n Crédito\r\n Boleto\r\n PIX\r\n Transferência\r\n Cheque\r\n Vale Refeição\r\n Banco\r\n \r\n \r\n \r\n Número de Parcelas\r\n \r\n \r\n \r\n Valor da Parcela\r\n R$  \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Vencimento 1ª Parcela\r\n \r\n \r\n \r\n \r\n \r\n Intervalo entre Parcelas (em dias)\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Quantidade de parcelas geradas: {{parcelas.data?.length>0?parcelas.data.length:0}}

\r\n\r\n
0\">\r\n\r\n \r\n\r\n
Valor que precisa ser parcelado: R$ {{ valorTotal.toFixed(2) }} | Valor já parcelado: R$ {{ getSomaValorTotalParcelasFinais().toFixed(2) }} | 0}\"> Faltante: R$ {{ (valorTotal - getSomaValorTotalParcelasFinais()).toFixed(2) }}
\r\n
\r\n
\r\n
","export class ItemParcela {\r\n\r\n parcelaId: number = 0;\r\n\r\n dataVencimento:Date = new Date();\r\n\r\n valorLiquido: number=0;\r\n\r\n tipoPagamento: TipoPagamento = 3 ;\r\n \r\n saguiClienteId: number = 0;\r\n}\r\n\r\nexport enum TipoPagamento {\r\n\r\n Dinheiro = 0,\r\n Debito = 1,\r\n Credito = 2,\r\n Boleto = 3,\r\n Transferencia = 4,\r\n Cheque = 5,\r\n ValeRefeicao = 6,\r\n Banco = 7,\r\n PrestacaoConta = 8,\r\n Devolucao = 9,\r\n TransferenciaEntreCaixas = 10,\r\n Pix = 11\r\n}\r\n","import { Component, Input, OnInit, ViewChild, AfterViewInit, Output, EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\n@Component({\r\n selector: 'app-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.css']\r\n})\r\nexport class TableComponent implements OnInit, AfterViewInit {\r\n @Input() actions: Array<{ name: string, method: (id: number) => void }>;\r\n @Input() dataSource = new MatTableDataSource([]);\r\n @Input() columns: Array<{ def: string, header: string, minWidth?: string }> = [];\r\n @Input() onDuplicar: (id: number) => void;\r\n @Input() onEditar: (id: number) => void;\r\n @Input() onExcluir: (id: number) => void;\r\n @Input() enableSelection: boolean = false;\r\n @Input() enablePagination: boolean = true; \r\n @Input() itemIdProperty: string = 'id'; // Adicionado para especificar a propriedade do ID\r\n\r\n @Output() selectionChange = new EventEmitter();\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n displayedColumns: string[];\r\n selection = new SelectionModel(true, []);\r\n isSmallScreen: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.displayedColumns = this.enableSelection ? ['select', ...this.columns.map(column => column.def)] : this.columns.map(column => column.def);\r\n\r\n this.isSmallScreen = window.innerWidth < 768;\r\n //emitir um evento para o componente pai se o selection mudar\r\n this.selection.changed.subscribe((change) => {\r\n //emitir evento para o componente pai\r\n this.selectionChange.emit(this.getSelectedRows());\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n\r\n}\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n isAllSelected() {\r\n const numRows = this.dataSource.data?.length;\r\n const numSelected = this.selection.selected.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n toggleRow(row: any) {\r\n this.selection.toggle(row); \r\n }\r\n\r\n getSelectedRows() {\r\n return this.selection.selected;\r\n \r\n }\r\n\r\n duplicar(item: any) {\r\n const id = item[this.itemIdProperty];\r\n if (this.onDuplicar) {\r\n this.onDuplicar(id);\r\n }\r\n }\r\n\r\n editar(item: any) {\r\n const id = item[this.itemIdProperty];\r\n if (this.onEditar) {\r\n this.onEditar(id);\r\n }\r\n }\r\n\r\n excluir(item: any) {\r\n const id = item[this.itemIdProperty];\r\n if (this.onExcluir) {\r\n this.onExcluir(id);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{column.header}} \r\n \r\n \r\n {{element[column.def] | currency}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{element[column.def]}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AppMaterialModule } from '../app-material/app-material.module';\r\nimport { AnexoService } from './shared/anexo.service';\r\nimport { AnexoComponent } from './anexo/anexo.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppMaterialModule,\r\n ],\r\n declarations: [\r\n AnexoComponent,\r\n ],\r\n providers: [\r\n AnexoService\r\n ]\r\n})\r\n\r\nexport class AnexoModule { }\r\n","'use strict';\r\nimport { Component, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AnexoService } from '../shared/anexo.service';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { Anexo } from '../shared/anexo.model';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ConfirmDialogComponent } from 'src/app/core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nexport interface DialogData {\r\n documentoIdReferenciado: number;\r\n documentoTipo: number;\r\n saguiClienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'anexo',\r\n templateUrl: 'anexo.component.html',\r\n})\r\n\r\nexport class AnexoComponent {\r\n\r\n @ViewChild('arquivoInput', { static: true }) arquivoInput;\r\n\r\n maximizado: boolean;\r\n anexos: any[];\r\n textoDocumentoTipo: string = '';\r\n anexo: Anexo = new Anexo();\r\n anexoForm: FormGroup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private anexoService: AnexoService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public IAnexo: DialogData,\r\n private _formBuilder: FormBuilder) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.anexoForm = this._formBuilder.group(new Anexo());\r\n\r\n this.maximizado = false;\r\n\r\n this.visualizaAnexo();\r\n\r\n this.textoDocumentoTipo = this.preencheTipoAnexo(this.IAnexo.documentoTipo);\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n download(anexo: any) {\r\n\r\n this.anexoService.getAnexoBaixar(anexo.anexoId).subscribe(data => {\r\n\r\n let link = document.createElement(\"a\");\r\n\r\n link.setAttribute(\"target\", \"_blank\");\r\n\r\n if (Blob !== undefined) {\r\n\r\n var blob = new Blob([data], { type: anexo.ContentType });\r\n\r\n link.setAttribute(\"href\", URL.createObjectURL(blob));\r\n\r\n }\r\n\r\n link.setAttribute(\"download\", anexo.nomeArquivo);\r\n\r\n document.body.appendChild(link);\r\n\r\n link.click();\r\n\r\n document.body.removeChild(link);\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n preencheTipoAnexo(tipoAnexoDestino: number) {\r\n\r\n var texto = \"\";\r\n\r\n switch (tipoAnexoDestino) {\r\n case 0:\r\n texto = \"Compra\";\r\n break;\r\n case 1:\r\n texto = \"Venda\";\r\n break;\r\n case 2:\r\n texto = \"Devolução\";\r\n break;\r\n case 3:\r\n texto = \"Produção\";\r\n break;\r\n case 4:\r\n texto = \"Orçamento\";\r\n break;\r\n case 5:\r\n texto = \"NFe\";\r\n break;\r\n case 6:\r\n texto = \"Contrato\";\r\n break;\r\n case 7:\r\n texto = \"Remessa\";\r\n break;\r\n case 8:\r\n texto = \"Fatura de Venda\";\r\n break;\r\n case 9:\r\n texto = \"Fatura de Compra\";\r\n break;\r\n case 10:\r\n texto = \"Conta a Receber\";\r\n break;\r\n case 11:\r\n texto = \"Conta a Pagar\";\r\n break;\r\n case 12:\r\n texto = \"Caixa Movimento\";\r\n break;\r\n case 13:\r\n texto = \"Estoque Movimento\";\r\n break;\r\n }\r\n return texto;\r\n }\r\n\r\n visualizaAnexo() {\r\n\r\n var parametros: any = {\r\n documentoTipo: this.IAnexo.documentoTipo,\r\n documentoIdReferenciado: this.IAnexo.documentoIdReferenciado\r\n };\r\n\r\n this.anexoService.postVisualizaAnexoPorFiltro(parametros).subscribe(data => {\r\n\r\n this.anexos = data.body;\r\n\r\n });\r\n }\r\n\r\n fileChanged(e: any) {\r\n\r\n this.anexo.descricao = this.anexoForm.get('descricao').value;\r\n this.anexo.nomeArquivo = e.target.files[0].name;\r\n this.anexo.documentoTipo = this.IAnexo.documentoTipo;\r\n this.anexo.documentoIdReferenciado = this.IAnexo.documentoIdReferenciado;\r\n this.anexo.saguiClienteId = this.IAnexo.saguiClienteId;\r\n this.anexo.corpoArquivo = e.target.files[0];\r\n\r\n let fileReader = new FileReader();\r\n\r\n fileReader.onload = (e) => {\r\n this.anexo.corpoArquivo = fileReader.result;\r\n }\r\n\r\n fileReader.readAsDataURL(e.target.files[0]);\r\n\r\n }\r\n\r\n uploadArquivo() {\r\n\r\n if (this.anexo.nomeArquivo.length > 0) {\r\n\r\n let formData = new FormData();\r\n formData.append('fileUpload', this.arquivoInput.nativeElement.files[0]);\r\n formData.append('descricao', this.anexoForm.get('descricao').value);\r\n formData.append('documentoIdReferenciado', this.IAnexo.documentoIdReferenciado.toString());\r\n formData.append('documentoTipo', this.IAnexo.documentoTipo.toString());\r\n formData.append('nomeArquivo', this.anexo.nomeArquivo);\r\n formData.append('saguiClienteId', this.IAnexo.saguiClienteId.toString());\r\n\r\n this.anexoService.postAnexo(formData).subscribe(data => {\r\n\r\n this.visualizaAnexo();\r\n\r\n });\r\n }\r\n }\r\n\r\n excluir(anexoId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse anexo?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.anexoService.delete(anexoId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Anexo Excluído\"\r\n }\r\n });\r\n\r\n this.visualizaAnexo();\r\n\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n

Anexos relacionados com {{textoDocumentoTipo}} - {{IAnexo.documentoIdReferenciado}}

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Descrição Anexo\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DataDescriçãoNomeAções
{{anexo.dataCriacao | date:'dd/MM/yyyy'}}{{anexo.descricao}}{{anexo.nomeArquivo}}\r\n \r\n download\r\n \r\n delete\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","export class Anexo {\r\n\r\n anexoId: number = 0;\r\n\r\n documentoTipo: number = 0;\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n descricao: string = '';\r\n\r\n link: string = '';\r\n\r\n //Chave do Tipo de Documento Referênciado\r\n documentoIdReferenciado: number = 0;\r\n\r\n nomeArquivo: string = '';\r\n\r\n corpoArquivo: any;\r\n\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class AnexoService {\r\n\r\n postAnexo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/anexo/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n getAnexoBaixar(itemId: any): Observable {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/anexo/baixar/' + itemId, { responseType: 'blob' })\r\n }\r\n\r\n postVisualizaAnexoPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/anexo/visualizaporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/anexo/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { LoaderInterceptor } from './core/interceptors/loader-interceptor.module';\r\nimport { MsalInterceptor } from '@azure/msal-angular';\r\nimport { ErrorHandler } from '@angular/core';\r\nimport { GlobalErrorHandlerService } from './core/interceptors/global-error-handler.service';\r\n\r\nexport const interceptorProviders =\r\n [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoaderInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: ErrorHandler, \r\n useClass: GlobalErrorHandlerService\r\n }\r\n ];\r\n","import { NativeDateAdapter } from \"@angular/material/core\";\r\nimport { Injectable } from '@angular/core';\r\n\r\n\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class AppDateAdapter extends NativeDateAdapter {\r\n\r\n format(date: Date, displayFormat: Object): string {\r\n if (displayFormat === 'input') {\r\n\r\n const day = date.getDate();\r\n const month = date.getMonth() + 1;\r\n const year = date.getFullYear();\r\n\r\n return `${day}/${month}/${year}`;\r\n }\r\n\r\n return date.toDateString();\r\n }\r\n\r\n parse(value: any): Date | null {\r\n const date = moment(value, \"DD/MM/YYYY\");\r\n return date.isValid() ? date.toDate() : null;\r\n }\r\n}\r\n\r\nexport const APP_DATE_FORMATS =\r\n{\r\n parse: {\r\n dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\r\n },\r\n display: {\r\n dateInput: 'input',\r\n monthYearLabel: { year: 'numeric', month: 'numeric' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\r\n }\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\n\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { MatNativeDateModule, MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';\r\nimport { AppDateAdapter, APP_DATE_FORMATS } from './app-date-adapter';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { getPortuguesPaginatorIntl } from './portugues-paginator-intl';\r\nimport {MatBadgeModule} from '@angular/material/badge';\r\nimport {MAT_SNACK_BAR_DEFAULT_OPTIONS, MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n AngularEditorModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatSlideToggleModule,\r\n MatProgressSpinnerModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatTabsModule,\r\n MatMenuModule,\r\n MatDividerModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatNativeDateModule,\r\n MatTreeModule,\r\n MatExpansionModule,\r\n MatBadgeModule,\r\n MatSnackBarModule,\r\n MatTooltipModule\r\n ],\r\n exports: [\r\n AngularEditorModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatSlideToggleModule,\r\n MatProgressSpinnerModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatTabsModule,\r\n MatMenuModule,\r\n MatDividerModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatNativeDateModule,\r\n MatTreeModule,\r\n MatExpansionModule,\r\n MatBadgeModule,\r\n MatSnackBarModule,\r\n MatTooltipModule\r\n ],\r\n providers: [\r\n {\r\n provide: DateAdapter, useClass: AppDateAdapter\r\n },\r\n { \r\n provide: MatPaginatorIntl, useValue: getPortuguesPaginatorIntl() },\r\n {\r\n provide: MAT_DATE_FORMATS, useValue: APP_DATE_FORMATS\r\n },\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' }\r\n },\r\n {\r\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: {\r\n duration: 2000,\r\n }\r\n }\r\n ]\r\n})\r\nexport class AppMaterialModule { }\r\n","import { MatPaginatorIntl } from '@angular/material/paginator';\r\n\r\nconst portuguesRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length == 0 || pageSize == 0) { return `0 de ${length}`; }\r\n \r\n length = Math.max(length, 0);\r\n\r\n const startIndex = page * pageSize;\r\n\r\n // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n const endIndex = startIndex < length ?\r\n Math.min(startIndex + pageSize, length) :\r\n startIndex + pageSize;\r\n\r\n return `${startIndex + 1} - ${endIndex} de ${length}`;\r\n}\r\n\r\n\r\nexport function getPortuguesPaginatorIntl() {\r\n\r\n const paginatorIntl = new MatPaginatorIntl();\r\n \r\n paginatorIntl.itemsPerPageLabel = 'Itens por Página:';\r\n paginatorIntl.nextPageLabel = 'Próxima Página';\r\n paginatorIntl.previousPageLabel = 'Página Anterior';\r\n paginatorIntl.getRangeLabel = portuguesRangeLabel;\r\n \r\n return paginatorIntl;\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { AppMaterialModule } from './app-material/app-material.module';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { LoginComponent } from './login/login/login.component';\r\nimport { HomeComponent } from './home/home/home.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: LoginComponent,\r\n },\r\n {\r\n path: 'code',\r\n component: HomeComponent,\r\n },\r\n {\r\n path: 'state',\r\n component: HomeComponent,\r\n },\r\n {\r\n path: 'home',\r\n component: HomeComponent,\r\n canActivate: [MsalGuard]\r\n },\r\n {\r\n path: 'venda',\r\n loadChildren: () => import('./venda/venda.module').then(m => m.VendaModule)\r\n },\r\n {\r\n path: 'remessa',\r\n loadChildren: () => import('./remessa/remessa.module').then(m => m.RemessaModule)\r\n },\r\n {\r\n path: 'cliente',\r\n loadChildren: () => import('./cliente/cliente.module').then(m => m.ClienteModule)\r\n },\r\n {\r\n path: 'faturavenda',\r\n loadChildren: () => import('./fatura/fatura.module').then(m => m.FaturaModule)\r\n },\r\n {\r\n path: 'faturacompra',\r\n loadChildren: () => import('./fatura/fatura.module').then(m => m.FaturaModule)\r\n },\r\n {\r\n path: 'fornecedor',\r\n loadChildren: () => import('./fornecedor/fornecedor.module').then(m => m.FornecedorModule)\r\n },\r\n {\r\n path: 'centro',\r\n loadChildren: () => import('./centro/centro.module').then(m => m.CentroModule)\r\n },\r\n {\r\n path: 'produto',\r\n loadChildren: () => import('./produto/produto.module').then(m => m.ProdutoModule)\r\n },\r\n {\r\n path: 'produtos-e-servicos',\r\n loadChildren: () => import('./produtoeservico/servico.module').then(m => m.ServicoModule)\r\n },\r\n {\r\n path: 'segurancadotrabalho',\r\n loadChildren: () => import('./ordem-servico/ordem-servico.module').then(m => m.OrdemServicoModule)\r\n },\r\n {\r\n path: 'assinaturas',\r\n loadChildren: () => import('./assinatura/assinatura.module').then(m => m.AssinaturaModule)\r\n },\r\n {\r\n path: 'produtousoconsumo',\r\n loadChildren: () => import('./produto/produto.module').then(m => m.ProdutoModule)\r\n },\r\n {\r\n path: 'ativoimobilizado',\r\n loadChildren: () => import('./produto/produto.module').then(m => m.ProdutoModule)\r\n },\r\n {\r\n path: 'embalagem',\r\n loadChildren: () => import('./produto/produto.module').then(m => m.ProdutoModule)\r\n },\r\n {\r\n path: 'email',\r\n loadChildren: () => import('./email/email.module').then(m => m.EmailModule)\r\n },\r\n {\r\n path: 'compra',\r\n loadChildren: () => import('./compra/compra.module').then(m => m.CompraModule)\r\n },\r\n {\r\n path: 'veiculo',\r\n loadChildren: () => import('./veiculo/veiculo.module').then(m => m.VeiculoModule)\r\n },\r\n {\r\n path: 'empresa',\r\n loadChildren: () => import('./empresa/empresa.module').then(m => m.EmpresaModule)\r\n },\r\n {\r\n path: 'rh',\r\n loadChildren: () => import('./rh/rh.module').then(m => m.RhModule)\r\n },\r\n {\r\n path: 'financeiro',\r\n loadChildren: () => import('./financeiro/financeiro.module').then(m => m.FinanceiroModule)\r\n },\r\n {\r\n path: 'juridico',\r\n loadChildren: () => import('./juridico/juridico.module').then(m => m.JuridicoModule)\r\n },\r\n {\r\n path: 'contacorrente',\r\n loadChildren: () => import('./conta-corrente/conta-corrente.module').then(m => m.ContaCorrenteModule)\r\n },\r\n {\r\n path: 'estoque',\r\n loadChildren: () => import('./estoque/estoque.module').then(m => m.EstoqueModule)\r\n },\r\n {\r\n path: 'seguranca',\r\n loadChildren: () => import('./seguranca/seguranca.module').then(m => m.SegurancaModule)\r\n },\r\n {\r\n path: 'fiscal',\r\n loadChildren: () => import('./fiscal/fiscal.module').then(m => m.FiscalModule)\r\n },\r\n {\r\n path: 'prospect',\r\n loadChildren: () => import('./prospect/prospect.module').then(m => m.ProspectModule)\r\n },\r\n {\r\n path: 'contabil',\r\n loadChildren: () => import('./contabil/contabil.module').then(m => m.ContabilModule)\r\n },\r\n {\r\n path: 'transportadora',\r\n loadChildren: () => import('./transportadora/transportadora.module').then(m => m.TransportadoraModule)\r\n },\r\n {\r\n path: 'template',\r\n loadChildren: () => import('./template/template.module').then(m => m.TemplateModule)\r\n },\r\n {\r\n path: 'configuracao',\r\n loadChildren: () => import('./configuracao/configuracao.module').then(m => m.ConfiguracaoModule)\r\n },\r\n {\r\n path: 'crm',\r\n loadChildren: () => import('./crm/crm.module').then(m => m.CrmModule)\r\n },\r\n {\r\n path: 'pedagogico',\r\n loadChildren: () => import('./pedagogico/pedagogico.module').then(m => m.PedagogicoModule)\r\n },\r\n {\r\n path: 'diario',\r\n loadChildren: () => import('./diario/diario.module').then(m => m.DiarioModule)\r\n },\r\n {\r\n path: 'transporte',\r\n loadChildren: () => import('./transporte/transporte.module').then(m => m.TransporteModule)\r\n },\r\n {\r\n path: 'auditoria',\r\n loadChildren: () => import('./auditoria/auditoria.module').then(m => m.AuditoriaModule)\r\n },\r\n {\r\n path: '**',\r\n redirectTo: '',\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { \r\n useHash: true, \r\n relativeLinkResolution: 'legacy' }),\r\n AppMaterialModule\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MsalService, MsalBroadcastService } from '@azure/msal-angular';\r\nimport { HeaderService } from './header/shared/header.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { InfoDialogComponent } from './core/dialogs/info-dialog/info-dialog.component';\r\nimport { EventMessage, EventType, AuthenticationResult } from '@azure/msal-browser';\r\nimport { filter } from 'rxjs/operators';\r\nimport { NotificationComponent } from './notificacao/notification.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: 'app.component.html',\r\n styleUrls: ['app.component.css'],\r\n})\r\n\r\nexport class AppComponent implements OnInit {\r\n @ViewChild(NotificationComponent) notification: NotificationComponent;\r\n\r\n title = 'saguicontol-web';\r\n menuClass: string = \"nav-sm\";\r\n modulosIndex: any = [];\r\n autenticado: boolean = false;\r\n moduloAtivo: string = \"\";\r\n logoSaguiCliente: string = \"\";\r\n fotoUsuario: string = \"\";\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n mobile: boolean = false;\r\n appLogo = '';\r\n appImagemFundo = '';\r\n\r\n notifications = [];\r\n\r\n constructor(\r\n\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private headerService: HeaderService,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let urlApp = window.location.hostname;\r\n\r\n if (urlApp.indexOf('saguilog') > 0) {\r\n this.appLogo = './assets/images/saguilog-logo-login.png';\r\n this.appImagemFundo = './assets/images/saguilog-polygon.jpg';\r\n }\r\n else {\r\n \r\n if (urlApp.indexOf('saguiedu') > 0) {\r\n this.appLogo = './assets/images/saguiedu-logo-login.png';\r\n this.appImagemFundo = './assets/images/saguiedu-polygon.jpg';\r\n }\r\n\r\n else {\r\n this.appLogo = './assets/images/saguicontrol-logo-login.png';\r\n this.appImagemFundo = './assets/images/saguicontrol-polygon.jpg';\r\n }\r\n }\r\n\r\n if (window.screen.width < 650) {\r\n this.mobile = true;\r\n }\r\n\r\n this.CheckAccount();\r\n\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS),\r\n )\r\n .subscribe((result: EventMessage) => {\r\n\r\n const payload = result.payload as AuthenticationResult;\r\n\r\n if (payload?.account) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n this.CheckAccount();\r\n }\r\n });\r\n }\r\n\r\n CheckAccount() {\r\n\r\n this.autenticado = this.msalService.instance.getAllAccounts().length > 0;\r\n\r\n if (this.autenticado) {\r\n\r\n this.CarregaMenu();\r\n\r\n }else{\r\n \r\n }\r\n\r\n /**\r\n * \r\n * Configuração da tag do chat\r\n * \r\n */\r\n\r\n const accounts = this.msalService.instance.getAllAccounts();\r\n accounts.forEach(account => {\r\n const user = {\r\n name: account.name,\r\n id: account.homeAccountId,\r\n email: account.username,\r\n createdAt: new Date().getTime()\r\n };\r\n // @ts-ignore\r\n window.fcWidget.setExternalId(user.id);\r\n // @ts-ignore\r\n window.fcWidget.user.setFirstName(user.name);\r\n // @ts-ignore\r\n window.fcWidget.user.setEmail(user.email);\r\n // @ts-ignore\r\n window.fcWidget.user.setProperties({\r\n cf_plan: \"Pro\", \r\n cf_status: \"Active\" \r\n });\r\n });\r\n\r\n /**\r\n * \r\n * Fim da Configuração da tag do chat\r\n * \r\n */\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n LogOut() {\r\n this.msalService.logout();\r\n };\r\n\r\n EscondeMenu() {\r\n\r\n if (this.menuClass == \"nav-md\") {\r\n this.menuClass = \"nav-sm\";\r\n } else {\r\n this.menuClass = \"nav-md\";\r\n }\r\n\r\n }\r\n\r\n AtivarModulo(modulo: any) {\r\n\r\n if (this.moduloAtivo != modulo.nome) {\r\n this.moduloAtivo = modulo.nome;\r\n } else {\r\n this.moduloAtivo = \"\";\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n async CarregaMenu() {\r\n\r\n this.headerService.getUsuarioModuloFuncionalidades().subscribe(data => {\r\n\r\n this.modulosIndex = data.body;\r\n\r\n });\r\n\r\n this.headerService.getLogo().subscribe(data => {\r\n\r\n this.logoSaguiCliente = data.body;\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{modulo.icone}}\r\n \r\n {{modulo.nome}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Sair\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, LOCALE_ID, DEFAULT_CURRENCY_CODE, NO_ERRORS_SCHEMA } from '@angular/core';\r\n\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { AppMaterialModule } from './app-material/app-material.module';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { DocumentoModule } from './documento/documento.module';\r\nimport { InfoDialogComponent } from './core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from './core/dialogs/confirm-dialog/confirm-dialog.component';\r\nimport { LoaderComponent } from './core/loader/loader.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { HeaderService } from './header/shared/header.service';\r\nimport { LoaderService } from './core/loader/loader.service';\r\nimport { exportExcelService } from './core/export-excel/export-excel.service';\r\nimport { HtmlPrinterService } from './core/html-printer/html-printer.service';\r\nimport { CfopService } from './cfop/shared/cfop.service';\r\nimport { CepService } from './cep/shared/cep.service';\r\nimport { MunicipioService } from './municipio/shared/municipio.service';\r\nimport { PaisService } from './pais/shared/pais.service';\r\nimport { UfService } from './uf/shared/uf.service';\r\n\r\nimport { MsalGuard, MsalBroadcastService, MsalInterceptorConfiguration, MsalModule, MsalService, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalGuardConfiguration, MsalRedirectComponent } from '@azure/msal-angular';\r\nimport { LogLevel, IPublicClientApplication, InteractionType, PublicClientApplication } from '@azure/msal-browser';\r\n\r\nimport { ExportaXmlService } from './core/exporta-xml/exporta-xml.service';\r\nimport { ExportaZipService } from './core/exporta-zip/exporta-zip.service';\r\n\r\nimport { environment } from '../environments/environment';\r\nimport pt from '@angular/common/locales/pt';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport { interceptorProviders } from './app-interceptors';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\n\r\nimport { HomeModule } from './home/home.module';\r\nimport { AnexoModule } from './anexo/anexo.module';\r\n\r\nimport { CurrencyMaskConfig, CurrencyMaskModule, CURRENCY_MASK_CONFIG } from 'ng2-currency-mask';\r\nimport { NgxMaskModule, IConfig } from 'ngx-mask'\r\nimport { UtilsService } from './core/utils/utils.service';\r\nimport { ExportaCsvService } from './core/exporta-csv/exporta-csv.service';\r\nimport { FormComponent } from './Components/form/form.component';\r\nimport { ServicosComponent } from './produtoeservico/produtoeservico/servicos.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { DialogComponent } from './Components/dialog/dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { DeleteComponent } from './Components/delete/delete.component';\r\nimport { CadServicoComponent } from './produtoeservico/produtoeservico-cadastro/produtoeservico-cadastro.component';\r\nimport { CadGrupoComponent } from './produtoeservico/produtoeservico-grupo-cadastro/cad-grupo.component';\r\nimport { NotificationComponent } from './notificacao/notification.component';\r\nimport { LogsEmailComponent } from './auditoria/logs-email/logs-email.component';\r\n\r\nexport function loggerCallback(logLevel: LogLevel, message: string) {\r\n console.log(message);\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: environment.saguiControlClientId,\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: LogLevel.Error,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: {\r\n scopes: ['user.read']\r\n },\r\n loginFailedRoute: '/login'\r\n };\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n// protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);\r\n protectedResourceMap.set('https://localhost:44327', ['https://saguitech.com.br/saguicontrolapi/user_impersonation']);\r\n protectedResourceMap.set('https://localhost:7297', ['https://saguitech.com.br/geradordechavesecertificados/user_impersonation']);\r\n protectedResourceMap.set('https://localhost:44329', ['https://saguitech.com.br/saguilogapi/user_impersonation']);\r\n protectedResourceMap.set('https://localhost:44330', ['https://saguitech.com.br/saguieduapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguicontrolapi-homologacao.azurewebsites.net', ['https://saguitech.com.br/saguicontrolapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguilogapi-homologacao.azurewebsites.net', ['https://saguitech.com.br/saguilogapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguieduapi-homologacao.azurewebsites.net', ['https://saguitech.com.br/saguieduapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguicontrolapi-beta.azurewebsites.net', ['https://saguitech.com.br/saguicontrolapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguilogapi-beta.azurewebsites.net', ['https://saguitech.com.br/saguilogapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguieduapi-beta.azurewebsites.net', ['https://saguitech.com.br/saguieduapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguicontrolapi.azurewebsites.net', ['https://saguitech.com.br/saguicontrolapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguilogapi.azurewebsites.net', ['https://saguitech.com.br/saguilogapi/user_impersonation']);\r\n protectedResourceMap.set('https://saguieduapi.azurewebsites.net', ['https://saguitech.com.br/saguieduapi/user_impersonation']);\r\n protectedResourceMap.set('https://geradordechavesecertficados.azurewebsites.net', ['https://saguitech.com.br/geradordechavesecertificados/user_impersonation']);\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\n\r\nexport const CustomCurrencyMaskConfig: CurrencyMaskConfig = {\r\n align: \"right\",\r\n allowNegative: true,\r\n decimal: \",\",\r\n precision: 2,\r\n prefix: \"R$ \",\r\n suffix: \"\",\r\n thousands: \".\"\r\n};\r\n\r\nexport const options: Partial | (() => Partial) = null;\r\n\r\nregisterLocaleData(pt);\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n InfoDialogComponent,\r\n ConfirmDialogComponent,\r\n LoaderComponent,\r\n DeleteComponent,\r\n CadServicoComponent,\r\n CadGrupoComponent,\r\n NotificationComponent\r\n \r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n MsalModule,\r\n AppRoutingModule,\r\n AppMaterialModule,\r\n AnexoModule,\r\n DocumentoModule,\r\n HomeModule,\r\n CurrencyMaskModule,\r\n ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),\r\n NgxMaskModule.forRoot(),\r\n ReactiveFormsModule,\r\n MatDialogModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n BrowserModule,\r\n FormsModule,\r\n\r\n ],\r\n providers: [\r\n interceptorProviders,\r\n {\r\n provide: CURRENCY_MASK_CONFIG,\r\n useValue: CustomCurrencyMaskConfig\r\n },\r\n {\r\n provide: LOCALE_ID,\r\n useValue: \"pt\"\r\n },\r\n {\r\n provide: MAT_DATE_LOCALE, useValue: 'pt'\r\n },\r\n {\r\n provide: DEFAULT_CURRENCY_CODE,\r\n useValue: 'BRL'\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,\r\n CfopService,\r\n CepService,\r\n MunicipioService,\r\n HeaderService,\r\n PaisService,\r\n UfService,\r\n LoaderService,\r\n exportExcelService,\r\n HtmlPrinterService,\r\n ExportaXmlService,\r\n ExportaZipService,\r\n ExportaCsvService,\r\n UtilsService\r\n ],\r\n\r\n bootstrap: [AppComponent, MsalRedirectComponent],\r\n entryComponents: [DialogComponent],\r\n schemas: [NO_ERRORS_SCHEMA]\r\n})\r\nexport class AppModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class CepService {\r\n\r\n getDadosEndereco(cepTemp: string): Observable> {\r\n\r\n let cep = cepTemp.replace(/\\D/g, '');\r\n\r\n if (cep != \"\") {\r\n\r\n let validacep = /^[0-9]{8}$/;\r\n\r\n if (validacep.test(cep)) {\r\n\r\n return this.http.get('https://viacep.com.br/ws/' + cep + '/json', { observe: 'response' })\r\n }\r\n }\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class CfopService {\r\n\r\n getCfops(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.empresaId,\r\n direcao: parametros.direcao,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/cfop/visualiza', { observe: 'response', params })\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { ClienteImpostosEmpresas } from './../shared/cliente.model';\r\nimport { ClienteContadorService } from '../shared/cliente-contador.service';\r\n'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, map, switchMap } from \"rxjs/operators\";\r\n\r\nimport { ClienteService } from '../shared/cliente.service';\r\nimport { UfService } from '../../uf/shared/uf.service';\r\nimport { PaisService } from '../../pais/shared/pais.service';\r\nimport { MunicipioService } from '../../municipio/shared/municipio.service';\r\nimport { CepService } from '../../cep/shared/cep.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { ClienteHistoricoComponent } from '../cliente-historico/cliente-historico.component';\r\n\r\nimport { Cliente, ClienteImpostoAgrupado, TipoImposto, TipoImpostoBackendToFrontend, TipoImpostoFrontendToBackend, TipoNota } from '../shared/cliente.model';\r\nimport { ContaContabilService } from '../../contabil/shared/conta-contabil.service';\r\nimport { ClienteServicoComponent } from '../cliente-servico/cliente-servico.component';\r\nimport { ClienteFaturamentoComponent } from '../cliente-faturamento/cliente-faturamento.component';\r\nimport { ParceiroService } from 'src/app/parceiro/shared/parceiro.service';\r\nimport { ClienteServicoService } from '../shared/cliente-servico.service';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\nimport { ClienteFaturamentoService } from '../shared/cliente-faturamento.service';\r\nimport { ContatoCadastroComponent } from 'src/app/contato/contato-cadastro/contato-cadastro.component';\r\nimport { ContatoService } from 'src/app/contato/shared/contato.service';\r\nimport { DadoBancarioService } from 'src/app/dado-bancario/shared/dado-bancario.service';\r\nimport { DadoBancarioCadastroComponent } from 'src/app/dado-bancario/dado-bancario-cadastro/dado-bancario-cadastro.component';\r\nimport { ClienteContador } from '../shared/cliente-contador';\r\nimport { IntegracaoService } from 'src/app/configuracao/shared/integracao.service';\r\nimport { Observable, of } from 'rxjs';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\nexport interface DialogData {\r\n clienteId: number;\r\n clienteTipo: number;\r\n clienteNome: string;\r\n clienteEmpresas: [];\r\n}\r\n\r\n@Component({\r\n selector: 'cliente-cadastro',\r\n templateUrl: 'cliente-cadastro.component.html',\r\n})\r\n\r\nexport class ClienteCadastroComponent {\r\n\r\n cliente: any = {};\r\n clientes: any = [];\r\n clienteCadastroForm: FormGroup;\r\n maximizado: boolean = false;\r\n pessoaFisica: boolean = false;\r\n isento: boolean = false;\r\n localEntregaAtivo: boolean = false;\r\n ufs: any = [];\r\n paises: any = [];\r\n municipios: any = [];\r\n localEntregaMunicipios: any = [];\r\n contasContabeis: any = [];\r\n usuarios: any = [];\r\n cepPesquisado: any = {};\r\n cepEntregaPesquisado: any = {};\r\n clienteHistoricos: any = [];\r\n clienteServicos: any = [];\r\n clienteFaturamentos: any = [];\r\n contatos: any = [];\r\n dadosBancarios: any = [];\r\n textoclienteTipo: string = '';\r\n clienteContadorForm = this._formBuilder.group({\r\n clienteContadorId: [0],\r\n razaoSocial: [''],\r\n funcionarioId: [0],\r\n nomeFantasia: [''],\r\n cnpj: [''],\r\n telefone: [''],\r\n municipioId: [0],\r\n ufId: [0],\r\n paisId: [0],\r\n clienteId: [0],\r\n });\r\n empresas: any = [];\r\n filteredEmpresas: any[] = [];\r\n integracao: boolean = false;\r\n isChecked: boolean = false;\r\n displayedColumns: string[] = ['retido', 'tipoImposto', 'empresas'];\r\n dataSourceNfse = new MatTableDataSource();\r\n dataSourceNfe = new MatTableDataSource();\r\n fiscalCheckbox = {\r\n nfse: false,\r\n nfe: false\r\n };\r\n\r\n\r\n\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public ICliente: DialogData,\r\n private clienteService: ClienteService,\r\n private clienteServicoService: ClienteServicoService,\r\n private municipioService: MunicipioService,\r\n private ufService: UfService,\r\n private paisService: PaisService,\r\n private cepService: CepService,\r\n private contaContabilService: ContaContabilService,\r\n private clienteFaturamentoService: ClienteFaturamentoService,\r\n private parceiroService: ParceiroService,\r\n private utilsService: UtilsService,\r\n private contatoService: ContatoService,\r\n private dadoBancarioService: DadoBancarioService,\r\n private clienteContadorService: ClienteContadorService,\r\n private integracaoService: IntegracaoService\r\n ) {\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.clienteCadastroForm = this._formBuilder.group(new Cliente());\r\n if (this.ICliente.clienteId > 0) {\r\n\r\n this.buscarCliente(this.ICliente.clienteId);\r\n } else {\r\n if (this.ICliente.clienteTipo == 1) {\r\n this.textoclienteTipo = 'Lead';\r\n this.clienteCadastroForm.get('clienteTipo').setValue(1);\r\n } else {\r\n this.textoclienteTipo = 'Cliente';\r\n this.clienteCadastroForm.get('clienteTipo').setValue(0);\r\n }\r\n }\r\n\r\n this.clienteCadastroForm.addControl('contaContabilAutoComplete', new FormControl(''));\r\n this.clienteContadorForm.addControl('contadorCheckbox', new FormControl(''));\r\n\r\n if (this.ICliente.clienteNome != null && this.ICliente.clienteNome != undefined) {\r\n this.clienteCadastroForm.get('razaoSocial').setValue(this.ICliente.clienteNome);\r\n }\r\n\r\n this.updateCheckboxState();\r\n this.clienteContadorForm.get('clienteContadorId').valueChanges.subscribe(() => {\r\n this.updateCheckboxState();\r\n });\r\n\r\n this.clienteCadastroForm.get('clienteEmpresas').setValue(this.ICliente.clienteEmpresas);\r\n this.clienteCadastroForm.get('email').setValidators(this.utilsService.emailValidator());\r\n\r\n this.buscarPaises();\r\n\r\n this.buscarUfs();\r\n\r\n this.onChanges();\r\n\r\n }\r\n private updateCheckboxState(): void {\r\n const clienteContadorId = this.clienteContadorForm.get('clienteContadorId').value;\r\n this.clienteContadorForm.get('contadorCheckbox').setValue(clienteContadorId > 0, { emitEvent: false });\r\n }\r\n onChanges(): void {\r\n\r\n this.clienteCadastroForm\r\n .get('contaContabilAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.contaContabilService.postVisualizaContaContabilPorFiltro(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.contasContabeis = data.body\r\n );\r\n\r\n this.clienteCadastroForm\r\n .get('ufId')\r\n .valueChanges\r\n .subscribe(data => this.buscarMunicipioPorUf(data, false));\r\n\r\n this.clienteCadastroForm\r\n .get('ufEntregaId')\r\n .valueChanges\r\n .subscribe(data => this.buscarMunicipioPorUf(data, true));\r\n\r\n this.clienteCadastroForm\r\n .get('isento')\r\n .valueChanges\r\n .subscribe(data => {\r\n if (data === true) {\r\n this.clienteCadastroForm\r\n .get('inscEstadual').setValue('ISENTO');\r\n }\r\n });\r\n\r\n this.clienteCadastroForm\r\n .get('pessoaFisica')\r\n .valueChanges\r\n .subscribe(data => {\r\n if (data === true) {\r\n this.pessoaFisica = true;\r\n } else {\r\n this.pessoaFisica = false;\r\n }\r\n });\r\n\r\n\r\n this.buscaEmpresas();\r\n this.anyIntegracaoSocAtiva();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close(this.clienteCadastroForm.value);\r\n }\r\n private transformBackendData(data: any[]): ClienteImpostoAgrupado[] {\r\n return data.map(item => ({\r\n ...item,\r\n TipoImposto: TipoImpostoFrontendToBackend[item.TipoImposto]\r\n }));\r\n }\r\n salvarClienteContador() {\r\n const clienteContador: ClienteContador = this.clienteContadorForm.value;\r\n if (clienteContador.clienteContadorId > 0) {\r\n this.clienteContadorService.patchClienteContador(clienteContador).subscribe(data => {\r\n\r\n this.clienteContadorForm.patchValue(data.body);\r\n this.clienteCadastroForm.get('clienteContadorId').setValue(data.body.clienteContadorId);\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n });\r\n\r\n } else {\r\n this.clienteContadorService.postClienteContador(clienteContador).subscribe(data => {\r\n\r\n this.clienteContadorForm.patchValue(data.body);\r\n this.clienteCadastroForm.get('clienteContadorId').setValue(data.body.clienteContadorId);\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n buscaEmpresas() {\r\n this.clienteService.getEmpresasAllDados().subscribe(data => {\r\n this.empresas = data.body;\r\n this.listaEmpresa();\r\n });\r\n }\r\n enumImpostoEmString(enumNumber: TipoImposto) {\r\n return TipoImpostoBackendToFrontend[enumNumber];\r\n }\r\n\r\n listaEmpresa() {\r\n if (this.clienteCadastroForm.value && this.clienteCadastroForm.value.clienteEmpresas) {\r\n const selectedEmpresas = this.empresas.filter(empresa =>\r\n this.clienteCadastroForm.value.clienteEmpresas.some(pe => pe.empresaId === empresa.empresaId)\r\n );\r\n this.clienteCadastroForm.get('clienteEmpresas').setValue(selectedEmpresas);\r\n }\r\n }\r\n\r\n\r\n getClienteImpostosEmpresas(tipoNota: TipoNota): Observable {\r\n const data: ClienteImpostosEmpresas[] = this.clienteCadastroForm.value.clienteImpostosEmpresas\r\n\r\n\r\n return of(data).pipe(\r\n map(backendData => this.mergeWithAllImpostos(backendData, tipoNota))\r\n );\r\n }\r\n\r\n private mergeWithAllImpostos(backendData: ClienteImpostosEmpresas[], tipoNota: TipoNota): ClienteImpostoAgrupado[] {\r\n const allImpostosNfse = [\r\n TipoImposto.PIS,\r\n TipoImposto.COFINS,\r\n TipoImposto.CSLL,\r\n TipoImposto.ISSQN,\r\n TipoImposto.IRRF,\r\n TipoImposto.INSS\r\n ];\r\n\r\n const allImpostosNfe = [\r\n TipoImposto.ICMS,\r\n TipoImposto.ICMS_ST,\r\n TipoImposto.PIS,\r\n TipoImposto.PIS_ST,\r\n TipoImposto.COFINS,\r\n TipoImposto.COFINS_ST,\r\n TipoImposto.IPI\r\n ];\r\n\r\n const allImpostos = tipoNota === TipoNota.NFSE ? allImpostosNfse : allImpostosNfe;\r\n\r\n const allImpostosMapped = allImpostos.map(imposto => ({\r\n TipoImposto: imposto,\r\n Retido: false,\r\n Empresas: []\r\n }));\r\n\r\n const groupedData = this.groupByImposto(backendData.filter(item => item.TipoNota === tipoNota));\r\n\r\n return allImpostosMapped.map(imposto => {\r\n const match = groupedData.find(item => item.TipoImposto === imposto.TipoImposto);\r\n return match ? match : imposto;\r\n });\r\n }\r\n\r\n private groupByImposto(data: ClienteImpostosEmpresas[]): ClienteImpostoAgrupado[] {\r\n const grouped = data.reduce((acc, item) => {\r\n const key = `${item.TipoImposto}-${item.Retido}`;\r\n if (!acc[key]) {\r\n acc[key] = {\r\n TipoImposto: item.TipoImposto,\r\n Retido: item.Retido,\r\n Empresas: []\r\n };\r\n }\r\n acc[key].Empresas.push(item.EmpresaId);\r\n return acc;\r\n }, {});\r\n\r\n return Object.values(grouped);\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarUfs() {\r\n\r\n this.ufService.getUFs().subscribe(data => {\r\n\r\n this.ufs = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarPaises() {\r\n\r\n this.paisService.getPaises().subscribe(data => {\r\n\r\n this.paises = data.body;\r\n });\r\n }\r\n\r\n buscarMunicipioPorUf(ufId: number, localEntrega: boolean) {\r\n\r\n if (ufId > 0) {\r\n\r\n this.municipioService.getMunicipioPorUf(ufId).subscribe(data => {\r\n\r\n let municipiosTemp = data.body;\r\n\r\n if (this.cepPesquisado.ibge > 0) {\r\n\r\n let municipioSelecionado = municipiosTemp.find(municipioTemp => municipioTemp.codIBGE == this.cepPesquisado.ibge);\r\n this.clienteCadastroForm.get('municipioId').setValue(municipioSelecionado.municipioId);\r\n\r\n }\r\n\r\n if (this.cepEntregaPesquisado.ibge > 0) {\r\n\r\n let municipioSelecionado = municipiosTemp.find(municipioTemp => municipioTemp.codIBGE == this.cepEntregaPesquisado.ibge);\r\n this.clienteCadastroForm.get('municipioEntregaId').setValue(municipioSelecionado.municipioId);\r\n }\r\n\r\n if (!localEntrega) {\r\n this.municipios = data.body;\r\n this.clienteCadastroForm.get('localEntregaAtivo').setValue(false);\r\n }\r\n else {\r\n this.localEntregaMunicipios = data.body;\r\n this.clienteCadastroForm.get('localEntregaAtivo').setValue(true);\r\n }\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n buscarCliente(clienteId: number) {\r\n\r\n this.clienteService.getCliente(clienteId).subscribe(data => {\r\n this.InsereDadosCliente(data.body);\r\n });\r\n this.listaEmpresa();\r\n }\r\n\r\n InsereDadosCliente(data: any) {\r\n\r\n this.clienteCadastroForm.patchValue(data);\r\n if (this.clienteCadastroForm.get('clienteTipo').value == 1) {\r\n this.textoclienteTipo = 'Lead';\r\n } else {\r\n this.textoclienteTipo = 'Cliente';\r\n }\r\n\r\n if (data.inscEstadual == \"ISENTO\") {\r\n this.clienteCadastroForm.get('isento').setValue(true);\r\n }\r\n\r\n if (data.cnpj == \"\" || data.cnpj == undefined || data.cnpj == null) {\r\n this.clienteCadastroForm.get('pessoaFisica').setValue(true);\r\n } else {\r\n this.clienteCadastroForm.get('pessoaFisica').setValue(false);\r\n }\r\n\r\n this.clienteContadorService.getClienteContadorByClienteId(data.clienteId).subscribe(data => {\r\n this.clienteContadorForm.patchValue(data.body);\r\n });\r\n\r\n if (this.clienteContadorForm.get('clienteContadorId').value == 0) {\r\n this.clienteContadorForm.get('contadorCheckbox').setValue(false);\r\n }\r\n\r\n var clienteForm = this.clienteCadastroForm.value\r\n\r\n this.getClienteImpostosEmpresas(TipoNota.NFSE).subscribe(data => {\r\n const transformedData = this.transformBackendData(data);\r\n this.dataSourceNfse.data = transformedData;\r\n\r\n let groupedByTipoImpostoNfse = this.groupByTipoImposto(clienteForm.clienteImpostosEmpresas, 0);\r\n\r\n this.dataSourceNfse.data = this.dataSourceNfse.data.map(item => {\r\n const match = groupedByTipoImpostoNfse.find(groupedItem => groupedItem.TipoImposto === item.TipoImposto);\r\n return match ? match : item;\r\n });\r\n\r\n });\r\n\r\n this.getClienteImpostosEmpresas(TipoNota.NFE).subscribe(data => {\r\n\r\n const transformedData = this.transformBackendData(data);\r\n this.dataSourceNfe.data = transformedData;\r\n\r\n let groupedByTipoImpostoNfe = this.groupByTipoImposto(clienteForm.clienteImpostosEmpresas, 1);\r\n\r\n this.dataSourceNfe.data = this.dataSourceNfe.data.map(item => {\r\n const match = groupedByTipoImpostoNfe.find(groupedItem => groupedItem.TipoImposto === item.TipoImposto);\r\n return match ? match : item;\r\n });\r\n });\r\n\r\n this.buscaEmpresas();\r\n\r\n }\r\n\r\n groupByTipoImposto(data, tipoNota): ClienteImpostoAgrupado[] {\r\n\r\n const filteredArray = data.filter(item => item.tipoNota == tipoNota);\r\n\r\n if (tipoNota == 0 && filteredArray.length > 0) {\r\n this.fiscalCheckbox.nfse = true;\r\n } else if (tipoNota == 1 && filteredArray.length > 0) {\r\n this.fiscalCheckbox.nfe = true;\r\n }\r\n\r\n const grouped = filteredArray.reduce((acc, item) => {\r\n const key = `${item.tipoImposto}-${item.retido}`;\r\n if (!acc[key]) {\r\n acc[key] = {\r\n TipoImposto: item.tipoImposto,\r\n Retido: item.retido,\r\n Empresas: []\r\n };\r\n }\r\n acc[key].Empresas.push(item.empresaId);\r\n return acc;\r\n }, {});\r\n\r\n return Object.values(grouped);\r\n\r\n }\r\n\r\n\r\n salvar(): void {\r\n let clienteForm = this.clienteCadastroForm;\r\n let empresasIds = clienteForm.value?.clienteEmpresas?.map(empresa => empresa.empresaId);\r\n\r\n let nfsesComEmpresasSelecioandas = this.dataSourceNfse.data.filter(nfse => nfse.Empresas.length > 0);\r\n let nfeComEmpresasSelecioandas = this.dataSourceNfe.data.filter(nfe => nfe.Empresas.length > 0);\r\n let clienteEmpresImpostos: ClienteImpostosEmpresas[] = [];\r\n\r\n nfsesComEmpresasSelecioandas.forEach(nfse => {\r\n nfse.Empresas.forEach((empresaId: number) => {\r\n clienteEmpresImpostos.push({\r\n ClienteImpostosEmpresasId: 0,\r\n EmpresaId: empresaId,\r\n Retido: nfse.Retido,\r\n TipoImposto: nfse.TipoImposto,\r\n TipoNota: TipoNota.NFSE,\r\n ClienteId: clienteForm.value.clienteId,\r\n SaguiClienteId: clienteForm.value.saguiClienteId\r\n });\r\n });\r\n });\r\n\r\n nfeComEmpresasSelecioandas.forEach(nfe => {\r\n nfe.Empresas.forEach((empresaId: number) => {\r\n clienteEmpresImpostos.push({\r\n ClienteImpostosEmpresasId: 0,\r\n EmpresaId: empresaId,\r\n Retido: nfe.Retido,\r\n TipoImposto: nfe.TipoImposto,\r\n TipoNota: TipoNota.NFE,\r\n ClienteId: clienteForm.value.clienteId,\r\n SaguiClienteId: clienteForm.value.saguiClienteId\r\n });\r\n });\r\n });\r\n\r\n let clienteEmpresas = empresasIds?.map(empresaId => {\r\n return {\r\n clienteId: clienteForm.value?.clienteId,\r\n empresaId: empresaId\r\n }\r\n });\r\n\r\n clienteForm.get('clienteEmpresas').setValue(clienteEmpresas);\r\n\r\n\r\n if (!clienteForm.value.clienteEmpresas || clienteForm.value.clienteEmpresas.length === 0) {\r\n this._snackBar.open(\"Selecione ao menos uma empresa\", \"Fechar\", {\r\n duration: 5000,\r\n panelClass: ['snackbar-error']\r\n });\r\n return;\r\n }\r\n clienteForm.value.clienteImpostosEmpresas = clienteEmpresImpostos;\r\n\r\n if (clienteForm.value.clienteId == 0) {\r\n this.clienteService.postCliente(clienteForm.value).subscribe(data => {\r\n this._snackBar.open(\"Registro Salvo com Sucesso\", \"Fechar\", {\r\n duration: 5000\r\n });\r\n\r\n this.buscarCliente(data.body.clienteId);\r\n this.dialogRef.close(data.body);\r\n });\r\n } else {\r\n this.clienteService.putCliente(clienteForm.value, clienteForm.value.clienteId).subscribe(data => {\r\n this._snackBar.open(\"Registro Salvo com Sucesso\", \"Fechar\", {\r\n duration: 5000\r\n });\r\n\r\n this.buscarCliente(clienteForm.value.clienteId);\r\n });\r\n }\r\n if(this.clienteContadorForm.value.contadorCheckbox){\r\n this.salvarClienteContador();\r\n }\r\n }\r\n\r\n\r\n buscarContasContabeis() {\r\n\r\n if (this.clienteCadastroForm.value.contaContabilId > 0) {\r\n\r\n this.contaContabilService.getContaContabil(this.clienteCadastroForm.value.contaContabilId).subscribe(data => {\r\n\r\n this.clienteCadastroForm.get('contaContabilAutoComplete').setValue(data.body.descricao);\r\n\r\n });\r\n }\r\n }\r\n\r\n buscarClienteHistoricos() {\r\n\r\n if (this.clienteCadastroForm.value.clienteId > 0) {\r\n\r\n this.clienteService.getClienteHistoricos(this.clienteCadastroForm.value.clienteId).subscribe(data => {\r\n\r\n this.clienteHistoricos = data.body;\r\n\r\n });\r\n }\r\n }\r\n\r\n buscarClienteServicos() {\r\n\r\n if (this.clienteCadastroForm.value.clienteId > 0) {\r\n\r\n this.clienteService.getClienteServicos(this.clienteCadastroForm.value.clienteId).subscribe(data => {\r\n\r\n this.clienteServicos = data.body;\r\n\r\n });\r\n }\r\n }\r\n\r\n buscarClienteFaturamentos() {\r\n\r\n if (this.clienteCadastroForm.value.clienteId > 0) {\r\n\r\n this.clienteService.getClienteFaturamentos(this.clienteCadastroForm.value.clienteId).subscribe(data => {\r\n\r\n this.clienteFaturamentos = data.body;\r\n\r\n });\r\n }\r\n }\r\n\r\n filtrarContasContabeis(searchText) {\r\n\r\n let filtro: any = {};\r\n\r\n filtro.descricao = searchText;\r\n\r\n this.contaContabilService.postVisualizaContaContabilPorFiltro(filtro).subscribe(data => {\r\n\r\n this.contasContabeis = data.body;\r\n\r\n });\r\n }\r\n\r\n determinarContaContabil(conta) {\r\n\r\n if (conta != undefined) {\r\n this.clienteCadastroForm.get('contaContabilId').setValue(conta.contaContabilId);\r\n }\r\n\r\n };\r\n\r\n consultarCep(valor, localEntrega: boolean) {\r\n\r\n if (valor != undefined) {\r\n\r\n this.cepService.getDadosEndereco(valor).subscribe(data => {\r\n\r\n this.clienteCadastroForm.get('paisId').setValue(30);\r\n\r\n if (!localEntrega) {\r\n\r\n this.clienteCadastroForm.get('logradouro').setValue(data.body.logradouro);\r\n this.clienteCadastroForm.get('bairro').setValue(data.body.bairro);\r\n let uf = this.ufs.find(ufTemp => ufTemp.siglaUF == data.body.uf);\r\n this.clienteCadastroForm.get('ufId').setValue(uf.ufId);\r\n this.cepPesquisado = data.body;\r\n\r\n } else {\r\n\r\n this.clienteCadastroForm.get('logradouroEntrega').setValue(data.body.logradouro);\r\n this.clienteCadastroForm.get('bairroEntrega').setValue(data.body.bairro);\r\n let uf = this.ufs.find(ufTemp => ufTemp.siglaUF == data.body.uf);\r\n this.clienteCadastroForm.get('ufEntregaId').setValue(uf.ufId);\r\n this.cepEntregaPesquisado = data.body;\r\n }\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: \"Erro ao consultar CEP, preencha o endereço manualmente\"\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n ModalClienteHistorico(clienteHistoricoId) {\r\n\r\n const dialogRef = this.dialog.open(ClienteHistoricoComponent, {\r\n data: {\r\n clienteHistoricoId: clienteHistoricoId,\r\n clienteId: this.clienteCadastroForm.value.clienteId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarClienteHistoricos();\r\n\r\n });\r\n\r\n }\r\n\r\n ModalClienteServico(clienteServicoId) {\r\n\r\n const dialogRef = this.dialog.open(ClienteServicoComponent, {\r\n data: {\r\n clienteServicoId: clienteServicoId,\r\n clienteId: this.clienteCadastroForm.value.clienteId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarClienteServicos();\r\n\r\n });\r\n\r\n }\r\n\r\n ModalClienteFaturamento(clienteFaturamentoId) {\r\n\r\n const dialogRef = this.dialog.open(ClienteFaturamentoComponent, {\r\n data: {\r\n clienteFaturamentoId: clienteFaturamentoId,\r\n clienteId: this.clienteCadastroForm.value.clienteId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarClienteFaturamentos();\r\n\r\n });\r\n\r\n }\r\n\r\n confirmarExclusaoClienteFaturamento(clienteFaturamentoId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Exclusão\",\r\n mensagem: \"Tem certeza que deseja excluir esse agendamento?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n this.clienteFaturamentoService.delete(clienteFaturamentoId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro excluído com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarClienteFaturamentos();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n confirmarExclusaoClienteServico(clienteServicoId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Exclusão\",\r\n mensagem: \"Tem certeza que deseja cancelar este serviço?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.clienteServicoService.deleteClienteServico(clienteServicoId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro excluído com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarClienteServicos();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n ExcluirUsuario(clienteUsuarioId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Exclusão\",\r\n mensagem: \"Tem certeza que deseja excluir este usuário?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.clienteService.deleteClienteUsuario(clienteUsuarioId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro excluído com Sucesso\"\r\n }\r\n });\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: \"Erro ao excluir este usuário. Tente novamente mais tarde ou entre em contato com suporte@saguitech.com.br\"\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n buscarParceiro() {\r\n\r\n this.tratarCampos();\r\n\r\n let parceiroPesquisa: any = {\r\n cnpj: this.clienteCadastroForm.get('cnpj').value,\r\n cpf: this.clienteCadastroForm.get('cpf').value,\r\n uf: this.clienteCadastroForm.get('ufSigla').value,\r\n }\r\n\r\n if ((parceiroPesquisa.cpf == undefined || parceiroPesquisa.cpf == null || parceiroPesquisa.cpf == '') &&\r\n (parceiroPesquisa.cnpj == undefined || parceiroPesquisa.cnpj == null || parceiroPesquisa.cnpj == '')) {\r\n return;\r\n };\r\n\r\n this.clienteService.consultaParceiro(parceiroPesquisa).subscribe(data => {\r\n if (data.body != null && data.body.cnpj != null) {\r\n this.clienteCadastroForm.get('ufId').setValue(data.body.ufId);\r\n this.clienteCadastroForm.get('municipioId').setValue(data.body.municipioId);\r\n this.clienteCadastroForm.get('razaoSocial').setValue(data.body.razaoSocial);\r\n this.clienteCadastroForm.get('nomeFantasia').setValue(data.body.nomeFantasia);\r\n this.clienteCadastroForm.get('logradouro').setValue(data.body.logradouro);\r\n this.clienteCadastroForm.get('numero').setValue(data.body.numero);\r\n this.clienteCadastroForm.get('cep').setValue(data.body.cep);\r\n this.clienteCadastroForm.get('telefone').setValue(data.body.telefone);\r\n this.clienteCadastroForm.get('bairro').setValue(data.body.bairro);\r\n this.clienteCadastroForm.get('complemento').setValue(data.body.complemento);\r\n this.clienteCadastroForm.get('paisId').setValue(30);\r\n this.clienteCadastroForm.get('inscEstadual').setValue(data.body.inscricaoEstadual);\r\n this.clienteCadastroForm.get('codRegimeTributario').setValue(data.body.codRegimeTributario);\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n buscarParceiroContador() {\r\n this.tratarCampos();\r\n let parceiroPesquisa: any = {\r\n cnpj: this.clienteContadorForm.get('cnpj').value,\r\n cpf: null,\r\n uf: this.clienteContadorForm.get('ufId').value,\r\n }\r\n\r\n if ((parceiroPesquisa.cpf == undefined || parceiroPesquisa.cpf == null || parceiroPesquisa.cpf == '') &&\r\n (parceiroPesquisa.cnpj == undefined || parceiroPesquisa.cnpj == null || parceiroPesquisa.cnpj == '')) {\r\n return;\r\n };\r\n\r\n this.clienteService.consultaParceiro(parceiroPesquisa).subscribe(data => {\r\n if (data.body != null) {\r\n this.clienteContadorForm.patchValue(data.body);\r\n this.clienteContadorForm.value.municipioId = data.body.municipioId;\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n definieUf(uf: any) {\r\n\r\n this.clienteCadastroForm.get('ufId').setValue(uf.ufId);\r\n\r\n }\r\n\r\n tratarCampos() {\r\n\r\n let cnpj = this.utilsService.removeCaracteresEspeciais(this.clienteCadastroForm.get('cnpj').value);\r\n let cnpjContador = this.utilsService.removeCaracteresEspeciais(this.clienteContadorForm.get('cnpj').value);\r\n\r\n cnpj = this.utilsService.removerEspacosComecoFim(cnpj);\r\n cnpjContador = this.utilsService.removerEspacosComecoFim(cnpjContador);\r\n this.clienteCadastroForm.get('cnpj').setValue(cnpj);\r\n this.clienteContadorForm.get('cnpj').setValue(cnpjContador);\r\n\r\n let cpf = this.utilsService.removeCaracteresEspeciais(this.clienteCadastroForm.get('cpf').value);\r\n cpf = this.utilsService.removerEspacosComecoFim(cpf);\r\n this.clienteCadastroForm.get('cpf').setValue(cpf);\r\n\r\n }\r\n\r\n modalContato(id: number) {\r\n\r\n const dialogRef = this.dialog.open(ContatoCadastroComponent, {\r\n data: {\r\n contatoId: id,\r\n idOrigem: this.clienteCadastroForm.value.clienteId,\r\n contatoTipo: 1,\r\n saguiClienteId: this.clienteCadastroForm.value.saguiClienteId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarContatos();\r\n\r\n });\r\n }\r\n\r\n buscarContatos() {\r\n\r\n this.clienteService.getContatos(this.clienteCadastroForm.value.clienteId).subscribe(data => {\r\n\r\n this.contatos = data.body;\r\n\r\n });\r\n }\r\n\r\n confirmarExclusaoContato(contatoId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse contato?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.contatoService.deleteContato(contatoId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro excluído com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarContatos();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n modalDadoBancario(id: number) {\r\n\r\n const dialogRef = this.dialog.open(DadoBancarioCadastroComponent, {\r\n data: {\r\n dadoBancarioId: id,\r\n idOrigem: this.clienteCadastroForm.value.clienteId,\r\n dadoBancarioTipoOrigem: 1,\r\n saguiClienteId: this.clienteCadastroForm.value.saguiClienteId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarDadosBancarios();\r\n\r\n });\r\n }\r\n\r\n buscarDadosBancarios() {\r\n\r\n this.clienteService.getDadosBancarios(this.clienteCadastroForm.value.clienteId).subscribe(data => {\r\n\r\n this.dadosBancarios = data.body;\r\n\r\n });\r\n\r\n }\r\n\r\n confirmarExclusaoDadoBancario(dadoBancarioId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse registro?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.dadoBancarioService.deleteDadoBancario(dadoBancarioId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro excluído com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarDadosBancarios();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n matTabMudouAba($event: any) {\r\n\r\n switch ($event.index) {\r\n\r\n case 1:\r\n //Faturamento\r\n this.buscarContasContabeis();\r\n this.buscarClienteFaturamentos();\r\n break;\r\n case 2:\r\n //Contato\r\n this.buscarContatos();\r\n break;\r\n case 3:\r\n //Dados Bancários\r\n this.buscarDadosBancarios();\r\n break;\r\n case 4:\r\n //Histórico\r\n this.buscarClienteHistoricos();\r\n break;\r\n case 5:\r\n //Assinaturas\r\n this.buscarClienteServicos();\r\n }\r\n }\r\n\r\n\r\n anyIntegracaoSocAtiva() {\r\n\r\n this.clienteService.verficaIntegracaoSeHaIntegrcaoSoc().subscribe(data => {\r\n this.integracao = data.body ? true : false;\r\n\r\n });\r\n }\r\n\r\n}\r\n","\r\n
\r\n

\r\n {{textoclienteTipo}} {{clienteCadastroForm.value.clienteId}}

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

{{clienteCadastroForm.value.razaoSocial}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
0\">\r\n Ativo?\r\n
\r\n
\r\n \r\n Pessoa Física\r\n Pessoa Jurídica\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Empresa\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n UF\r\n \r\n \r\n {{uf.siglaUF}} - {{uf.descUF}}\r\n \r\n \r\n \r\n \r\n CNPJ do Cliente\r\n \r\n \r\n \r\n
\r\n \r\n Inscrição Estadual do Cliente\r\n \r\n \r\n
\r\n Isento?\r\n
\r\n
\r\n \r\n CPF do Cliente\r\n \r\n \r\n \r\n \r\n RG\r\n \r\n \r\n
\r\n
\r\n \r\n Razão Social (Nome)\r\n \r\n \r\n \r\n Nome Fantasia\r\n \r\n \r\n \r\n Data de Nascimento\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Inscrição Municipal\r\n \r\n \r\n \r\n Inscrição Suframa\r\n \r\n \r\n \r\n Código de Regime Tributário\r\n \r\n 1 - Simples Nacional\r\n 2 - Lucro Presumido\r\n 3 - Lucro Real\r\n 4 - MEI\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n CEP\r\n \r\n \r\n \r\n Logradouro\r\n \r\n \r\n \r\n Número\r\n \r\n \r\n \r\n Complemento\r\n \r\n \r\n \r\n Bairro\r\n \r\n \r\n \r\n País\r\n \r\n \r\n {{pais.descPais}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n UF\r\n \r\n \r\n {{uf.descUF}}\r\n \r\n \r\n \r\n \r\n Município\r\n \r\n \r\n {{municipio?.descricao}}\r\n \r\n \r\n \r\n \r\n Telefone\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n E-mail\r\n \r\n \r\n
\r\n \r\n Indicação\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Local de Entrega diferente?\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Local Entrega

\r\n
\r\n
\r\n
\r\n
\r\n \r\n CEP\r\n \r\n \r\n \r\n Logradouro\r\n \r\n \r\n \r\n Número\r\n \r\n \r\n \r\n Complemento\r\n \r\n \r\n \r\n Bairro\r\n \r\n \r\n
\r\n \r\n UF\r\n \r\n \r\n {{uf.descUF}}\r\n \r\n \r\n \r\n \r\n Município\r\n \r\n \r\n {{municipio?.descricao}}\r\n \r\n \r\n \r\n
\r\n
\r\n 0\">\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Contábil\r\n \r\n \r\n
\r\n \r\n Conta Contábil\r\n \r\n \r\n \r\n {{contaContabil.numero}} - {{contaContabil.descricao}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Deseja armazenar os dados do contador desse cliente?\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Dados do Contador\r\n \r\n \r\n
\r\n \r\n CNPJ\r\n \r\n \r\n \r\n Telefone\r\n \r\n \r\n
\r\n
\r\n \r\n Razão Social (Nome)\r\n \r\n \r\n \r\n Nome Fantasia\r\n \r\n \r\n
\r\n
\r\n \r\n País\r\n \r\n \r\n {{pais.descPais}}\r\n \r\n \r\n \r\n \r\n UF\r\n \r\n \r\n {{uf.descUF}}\r\n \r\n \r\n \r\n \r\n Município\r\n \r\n \r\n {{municipio?.descricao}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
AçõesNomeSobrenomeWhatsAppCelularEmail
\r\n \r\n edit\r\n \r\n \r\n delete\r\n \r\n {{contato.nome}}{{contato.sobreNome}}{{contato.whatsApp}}\r\n \r\n \r\n \r\n {{contato.celular}}\r\n \r\n \r\n \r\n {{contato.email}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n 0 && clienteCadastroForm.value.clienteTipo == 0\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
AçõesBancoAgenciaNúmeroTipoNomeCNPJ/CPF
\r\n \r\n edit\r\n \r\n \r\n delete\r\n \r\n {{dadoBancario.bancoDescricao}}{{dadoBancario.agenciaNumero}}{{dadoBancario.contaCorrenteNumero}}{{dadoBancario.dadoBancarioTipo == 0 ? 'Conta Corrente' : 'Conta Poupança'}}{{dadoBancario.favorecidoNome}}{{dadoBancario.favorecidoCpf != undefined && dadoBancario.favorecidoCpf != ''?\r\n dadoBancario.favorecidoCpf : dadoBancario.favorecidoCnpj }}
\r\n
\r\n
\r\n
\r\n 0\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
AçõesUsuárioDataTítulo
\r\n \r\n edit\r\n {{clienteHistorico.usuario}}{{clienteHistorico.dataCriacao | date:'dd/MM/yyyy'}}{{clienteHistorico.titulo}}
\r\n
\r\n
\r\n
\r\n 0 && clienteCadastroForm.value.clienteTipo == 0\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
AçõesStatusServiçoQuantidadeVlr Unit.Vlr TotalContrataçãoÚltimo FaturamentoPróx. Faturamento
\r\n \r\n edit\r\n \r\n delete\r\n {{clienteServico.clienteServicoStatus == 99 ? 'Cancelado': 'Ativo'}}{{clienteServico.produtoDescricao}}{{clienteServico.quantidade}}{{clienteServico.valorUnitario | currency}}{{clienteServico.valorTotal | currency}}{{clienteServico.dataContratacao | date:'dd/MM/yyyy'}}{{clienteServico.dataUltimaRenovacao | date:'dd/MM/yyyy'}}{{clienteServico.dataProximaRenovacao | date:'dd/MM/yyyy'}}
\r\n
\r\n
\r\n
\r\n\r\n 0 && clienteCadastroForm.value.clienteTipo == 0 && integracao\">\r\n
\r\n
\r\n \r\n Código da Empresa no SOC\r\n \r\n Utilizado para integrações com outros sistemas como SOC.\r\n \r\n \r\n Código da Unidade no SOC\r\n \r\n Para identificar se a empresa é filial ou Matriz. Se não houver mais de uma empresa, não\r\n altere.\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { ClienteFaturamentoService } from '../shared/cliente-faturamento.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { ClienteFaturamento } from '../shared/cliente-faturamento.model';\r\nimport { FaturaService } from '../../fatura/shared/fatura.service';\r\n\r\nexport interface DialogData {\r\n clienteFaturamentoId: number;\r\n clienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cliente-faturamento',\r\n templateUrl: 'cliente-faturamento.component.html',\r\n})\r\n\r\nexport class ClienteFaturamentoComponent {\r\n\r\n clienteFaturamentoForm: FormGroup;\r\n maximizado: boolean;\r\n grupoContas: any = [];\r\n caixas: any = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IClienteFaturamento: DialogData,\r\n private clienteFaturamentoService: ClienteFaturamentoService,\r\n private faturaService: FaturaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.clienteFaturamentoForm = this._formBuilder.group(new ClienteFaturamento());\r\n\r\n this.clienteFaturamentoForm.get('clienteFaturamentoId').setValue(this.IClienteFaturamento.clienteFaturamentoId);\r\n this.clienteFaturamentoForm.get('clienteId').setValue(this.IClienteFaturamento.clienteId);\r\n\r\n if (this.IClienteFaturamento.clienteFaturamentoId > 0) {\r\n\r\n this.buscarClienteFaturamento(this.IClienteFaturamento.clienteFaturamentoId);\r\n }\r\n\r\n this.getCaixas();\r\n\r\n this.getgrupoContas();\r\n\r\n this.restaurarDialog();\r\n\r\n this.onChanges();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarClienteFaturamento(clienteFaturamentoId: number) {\r\n\r\n this.clienteFaturamentoService.get(clienteFaturamentoId).subscribe(data => {\r\n\r\n this.InsereDados(data.body);\r\n\r\n })\r\n }\r\n\r\n InsereDados(data: any) {\r\n\r\n this.clienteFaturamentoForm.patchValue(data);\r\n }\r\n\r\n salvar(clienteFaturamentoForm): void {\r\n\r\n if (this.IClienteFaturamento.clienteFaturamentoId == 0) {\r\n\r\n this.clienteFaturamentoService.post(clienteFaturamentoForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: error.error\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n\r\n this.clienteFaturamentoService.put(clienteFaturamentoForm.value, clienteFaturamentoForm.value.clienteFaturamentoId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: error.error\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n getgrupoContas() {\r\n\r\n let faturaTipo = 0;\r\n\r\n this.faturaService.getgrupoContas(faturaTipo).subscribe(data => {\r\n\r\n this.grupoContas = data.body;\r\n\r\n });\r\n }\r\n\r\n getCaixas() {\r\n\r\n let faturaTipo = 0;\r\n\r\n this.faturaService.getCaixas(faturaTipo).subscribe(data => {\r\n\r\n this.caixas = data.body;\r\n\r\n });\r\n }\r\n}\r\n","\r\n
\r\n

Configuração de Faturamento Automático

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Dia de Fechamento do Faturamento\r\n \r\n \r\n \r\n Dias para Pagar\r\n \r\n \r\n
\r\n
\r\n \r\n Categoria de Receita\r\n \r\n \r\n {{grupoConta.descricao}}\r\n \r\n \r\n \r\n \r\n Caixa (Fluxo de Caixa)\r\n \r\n \r\n {{caixa.nome}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { ClienteHistoricoService } from '../shared/cliente-historico.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { ClienteHistorico } from '../shared/cliente-historico.model';\r\n\r\nexport interface DialogData {\r\n clienteHistoricoId: number;\r\n clienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cliente-historico',\r\n templateUrl: 'cliente-historico.component.html',\r\n})\r\n\r\nexport class ClienteHistoricoComponent {\r\n\r\n clienteHistoricoForm: FormGroup;\r\n maximizado: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IClienteHistorico: DialogData,\r\n private clienteHistoricoService: ClienteHistoricoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.clienteHistoricoForm = this._formBuilder.group(new ClienteHistorico());\r\n\r\n this.clienteHistoricoForm.get('clienteHistoricoId').setValue(this.IClienteHistorico.clienteHistoricoId);\r\n this.clienteHistoricoForm.get('clienteId').setValue(this.IClienteHistorico.clienteId);\r\n\r\n if (this.IClienteHistorico.clienteHistoricoId > 0) {\r\n\r\n this.buscarClienteHistorico(this.IClienteHistorico.clienteHistoricoId);\r\n }\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarClienteHistorico(clienteHistoricoId: number) {\r\n\r\n this.clienteHistoricoService.getClienteHistorico(clienteHistoricoId).subscribe(data => {\r\n\r\n this.InsereDados(data.body);\r\n\r\n })\r\n }\r\n\r\n InsereDados(data: any) {\r\n\r\n this.clienteHistoricoForm.patchValue(data);\r\n\r\n }\r\n\r\n salvar(clienteHistoricoForm): void {\r\n\r\n if (this.IClienteHistorico.clienteHistoricoId == 0) {\r\n\r\n this.clienteHistoricoService.postClienteHistorico(clienteHistoricoForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: error.error\r\n }\r\n });\r\n });\r\n }\r\n };\r\n}\r\n","\r\n
\r\n

Histórico

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n Data\r\n \r\n \r\n \r\n \r\n \r\n Usuário\r\n \r\n \r\n
\r\n
\r\n \r\n Título\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { ClienteMetodoPagamento } from '../shared/cliente-metodo-pagamento.model';\r\nimport { ClienteMetodoPagamentoService } from '../shared/cliente-metodo-pagamento.service';\r\n\r\nexport interface DialogData {\r\n clienteMetodoPagamentoId: number;\r\n clienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cliente-metodo-pagamento',\r\n templateUrl: 'cliente-metodo-pagamento.component.html',\r\n})\r\n\r\nexport class ClienteMetodoPagamentoComponent {\r\n\r\n clienteMetodoPagamentoForm: FormGroup;\r\n maximizado: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IClienteMetodoPagamento: DialogData,\r\n private clienteMetodoPagamentoService: ClienteMetodoPagamentoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.clienteMetodoPagamentoForm = this._formBuilder.group(new ClienteMetodoPagamento());\r\n\r\n this.clienteMetodoPagamentoForm.get('clienteMetodoPagamentoId').setValue(this.IClienteMetodoPagamento.clienteMetodoPagamentoId);\r\n this.clienteMetodoPagamentoForm.get('clienteId').setValue(this.IClienteMetodoPagamento.clienteId);\r\n\r\n if (this.IClienteMetodoPagamento.clienteMetodoPagamentoId > 0) {\r\n\r\n this.buscarClienteMetodoPagamento(this.IClienteMetodoPagamento.clienteMetodoPagamentoId);\r\n }\r\n\r\n this.restaurarDialog();\r\n\r\n this.onChanges();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n \r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarClienteMetodoPagamento(clienteMetodoPagamentoId: number) {\r\n\r\n this.clienteMetodoPagamentoService.get(clienteMetodoPagamentoId).subscribe(data => {\r\n\r\n this.clienteMetodoPagamentoForm.patchValue(data.body);\r\n\r\n })\r\n }\r\n\r\n salvar(){\r\n\r\n let clienteSevico = this.clienteMetodoPagamentoForm.value;\r\n\r\n if (this.IClienteMetodoPagamento.clienteMetodoPagamentoId == 0) {\r\n\r\n this.clienteMetodoPagamentoService.post(clienteSevico).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.clienteMetodoPagamentoService.put(clienteSevico, clienteSevico.clienteMetodoPagamentoId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

Método de Pagamento

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Nome no Cartão\r\n \r\n \r\n \r\n Número do Cartão\r\n \r\n \r\n \r\n CVV (Código de Segurança)\r\n \r\n \r\n
\r\n
\r\n \r\n Cartão\r\n \r\n Mastercard\r\n Visa\r\n Amex\r\n Elo\r\n Hipercard\r\n \r\n \r\n \r\n Vencimento Mês\r\n \r\n \r\n \r\n Vencimento Ano\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { ClienteServicoService } from '../shared/cliente-servico.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { ClienteServico } from '../shared/cliente-servico.model';\r\nimport { ClienteService } from '../shared/cliente.service';\r\nimport { ClienteMetodoPagamento } from '../shared/cliente-metodo-pagamento.model';\r\nimport { ClienteMetodoPagamentoService } from '../shared/cliente-metodo-pagamento.service';\r\nimport { ClienteMetodoPagamentoComponent } from '../cliente-metodo-pagamento/cliente-metodo-pagamento.component';\r\n\r\nexport interface DialogData {\r\n clienteServicoId: number;\r\n clienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cliente-servico',\r\n templateUrl: 'cliente-servico.component.html',\r\n})\r\n\r\nexport class ClienteServicoComponent {\r\n\r\n clienteServicoForm: FormGroup;\r\n clienteServicoMetodoPagamentoForm: FormGroup;\r\n maximizado: boolean;\r\n produtos: any = [];\r\n clienteServicoHistoricos: any = [];\r\n empresas: any = [];\r\n utilizaGetNetPlano: boolean = false;\r\n clienteMetodoPagamentos: any = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IClienteServico: DialogData,\r\n private clienteServicoService: ClienteServicoService,\r\n private clienteService: ClienteService,\r\n private clienteMetodoPagamentoService: ClienteMetodoPagamentoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.clienteServicoForm = this._formBuilder.group(new ClienteServico());\r\n this.clienteServicoForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.clienteServicoForm.get('clienteServicoId').setValue(this.IClienteServico.clienteServicoId);\r\n this.clienteServicoForm.get('clienteId').setValue(this.IClienteServico.clienteId);\r\n\r\n this.clienteServicoMetodoPagamentoForm = this._formBuilder.group(new ClienteMetodoPagamento());\r\n this.clienteServicoMetodoPagamentoForm.get('clienteId').setValue(this.IClienteServico.clienteId);\r\n\r\n if (this.IClienteServico.clienteServicoId > 0) {\r\n\r\n this.buscarClienteServico(this.IClienteServico.clienteServicoId);\r\n }\r\n\r\n this.buscarClienteMetodoPagamentos();\r\n\r\n this.buscarEmpresas();\r\n\r\n this.restaurarDialog();\r\n\r\n this.onChanges();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.clienteServicoForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.clienteServicoService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: 1//Serviço\r\n }) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.produtos = data.body\r\n );\r\n }\r\n\r\n onChangeValor() {\r\n\r\n let valorUnitario = this.clienteServicoForm.get('valorUnitario').value;\r\n let quantidade = this.clienteServicoForm.get('quantidade').value;\r\n let valorTotal = Math.round((quantidade * valorUnitario) * 100) / 100;\r\n this.clienteServicoForm.get('valorTotal').setValue(valorTotal.toFixed(2));\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarEmpresas() {\r\n\r\n this.clienteService.getEmpresas().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarClienteMetodoPagamentos() {\r\n\r\n this.clienteMetodoPagamentoService.getPorclienteId(this.IClienteServico.clienteId).subscribe(data => {\r\n\r\n this.clienteMetodoPagamentos = data.body;\r\n\r\n });\r\n }\r\n\r\n excluirClienteMetodoPagamento(clienteMetodoPagamentoId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse método de pagamento?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.clienteMetodoPagamentoService.delete(clienteMetodoPagamentoId).subscribe(data => {\r\n\r\n this.buscarClienteMetodoPagamentos();\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n modalClienteMetodoPagamento(clienteMetodoPagamentoId) {\r\n\r\n const dialogRef = this.dialog.open(ClienteMetodoPagamentoComponent, {\r\n data: {\r\n clienteMetodoPagamentoId: clienteMetodoPagamentoId,\r\n clienteId: this.IClienteServico.clienteId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarClienteMetodoPagamentos();\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n definirComoPadrao(clienteMetodoPagamentoId: number) {\r\n\r\n this.clienteServicoForm.get('clienteMetodoPagamentoId').setValue(clienteMetodoPagamentoId);\r\n\r\n this.salvar();\r\n }\r\n\r\n buscarClienteServico(clienteServicoId: number) {\r\n\r\n this.clienteServicoService.getClienteServico(clienteServicoId).subscribe(data => {\r\n\r\n this.InsereDados(data.body);\r\n\r\n })\r\n }\r\n\r\n InsereDados(data: any) {\r\n\r\n this.clienteServicoForm.patchValue(data);\r\n\r\n this.buscarProduto(data.produtoId);\r\n\r\n this.CarregaClienteServicoHistoricos();\r\n }\r\n\r\n buscarProduto(produtoId: number) {\r\n\r\n this.clienteServicoService.getProduto(produtoId).subscribe(data => {\r\n\r\n this.clienteServicoForm.get('produtoAutoComplete').setValue(data.body.descricao);\r\n\r\n })\r\n\r\n }\r\n\r\n salvar() {\r\n\r\n let clienteSevico = this.clienteServicoForm.value;\r\n\r\n if (this.IClienteServico.clienteServicoId == 0) {\r\n\r\n this.clienteServicoService.postClienteServico(clienteSevico).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarClienteServico(data.body.clienteServicoId);\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.clienteServicoService.putClienteServico(clienteSevico, clienteSevico.clienteServicoId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n\r\n });\r\n }\r\n }\r\n\r\n CarregaClienteServicoHistoricos() {\r\n\r\n if (this.clienteServicoForm.value.clienteServicoId > 0) {\r\n\r\n this.clienteServicoService.getClienteServicoHistoricos(this.clienteServicoForm.value.clienteServicoId).subscribe(data => {\r\n\r\n this.clienteServicoHistoricos = data.body;\r\n\r\n });\r\n }\r\n }\r\n\r\n DeterminaprodutoId(produto: any) {\r\n\r\n this.clienteServicoForm.get('produtoId').setValue(produto.produtoId);\r\n this.clienteServicoForm.get('valorUnitario').setValue(produto.vlrComercial);\r\n\r\n this.utilizaGetNetPlano = produto.utilizaGetNetPlano;\r\n\r\n if (this.utilizaGetNetPlano) {\r\n this.clienteServicoForm.get('quantidade').setValue(1);\r\n this.onChangeValor();\r\n this.clienteServicoForm.get('clienteServicoRecorrencia').setValue(produto.Recorrencia);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

Assinatura {{clienteServicoForm.value.clienteServicoId}}

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Digite o Nome do Serviço\r\n \r\n \r\n \r\n {{produto.descricao}} - R$ {{produto.vlrComercial | number:'1.2-2'}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Quantidade\r\n \r\n \r\n \r\n Valor Unitário\r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Data Próxima Renovação\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Tipo de Recorrência\r\n \r\n Não Recorrente\r\n Semanal\r\n Quinzenal\r\n Mensal\r\n Trimestral\r\n Semestral\r\n Anual\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{clienteMetodoPagamento.descricao}}\r\n \r\n \r\n
\r\n Nome no Cartão: {{clienteMetodoPagamento.nomeNoCartao}}\r\n
\r\n
\r\n Número do Cartão: {{clienteMetodoPagamento.numeroCartao.substring(0, 4)}}\r\n XXXX XXXX {{clienteMetodoPagamento.numeroCartao.substring(12, 16)}}\r\n
\r\n
\r\n Expira:\r\n {{clienteMetodoPagamento.expiraMes}}/{{clienteMetodoPagamento.expiraAno}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n 0\">\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
UsuárioDataHistórico
{{clienteServicoHistorico.Usuario}}{{clienteServicoHistorico.data | date:'dd/MM/yyyy'}}{{clienteServicoHistorico.descricao}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClienteContadorService {\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n }\r\n\r\n getClienteContadorByClienteId(clienteId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clienteContador/' + clienteId, { observe: 'response' })\r\n }\r\n\r\n postClienteContador(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/clienteContador', item, { observe: 'response' })\r\n };\r\n\r\n patchClienteContador(item: any): Observable> {\r\n return this.http.patch(\r\n environment.webApiSaguiControlUrl + '/api/clienteContador', item, { observe: 'response' })\r\n };\r\n\r\n}\r\n","export class ClienteFaturamento {\r\n\r\n clienteFaturamentoId: number = 0;\r\n\r\n diaFatura: number = 0;\r\n\r\n diaVencimento: number = 0;\r\n\r\n clienteId: number = 0;\r\n\r\n dataUltimaAtualizacao: Date = new Date();\r\n\r\n grupoContaId: number = 0;\r\n\r\n caixaId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ClienteFaturamentoService {\r\n\r\n get(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clientefaturamento/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/clientefaturamento/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/clientefaturamento/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/clientefaturamento/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class ClienteHistorico {\r\n\r\n clienteHistoricoId: number = 0;\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n descricao: string = '';\r\n\r\n titulo: string = '';\r\n\r\n usuario: string = '';\r\n\r\n clienteId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ClienteHistoricoService {\r\n\r\n getClienteHistorico(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clientehistorico/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postClienteHistorico(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/clientehistorico/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putClienteHistorico(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/clientehistorico/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteClienteHistorico(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/clientehistorico/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class ClienteMetodoPagamento {\r\n\r\n clienteMetodoPagamentoId: number = 0;\r\n\r\n clienteId: number = 0;\r\n\r\n metodoPagamento: number = 0;\r\n\r\n nomeNoCartao: string = '';\r\n\r\n cartaoMarca: string = '';\r\n\r\n expiraMes: number = 0;\r\n\r\n expiraAno: number = 0;\r\n\r\n numeroCartao: string = '';\r\n\r\n codigoSeguranca: string = '';\r\n\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ClienteMetodoPagamentoService {\r\n\r\n get(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clientemetodopagamento/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getPorclienteId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clientemetodopagamento/visualizarporcliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/clientemetodopagamento/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/clientemetodopagamento/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/clientemetodopagamento/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class ClienteServico {\r\n \r\n clienteServicoId: number = 0;\r\n\r\n clienteServicoRecorrencia: number = 0;\r\n\r\n clienteServicoStatus: number = 0;\r\n\r\n quantidade: number = 0;\r\n\r\n valorUnitario: number = 0;\r\n\r\n valorTotal: number = 0;\r\n\r\n dataContratacao: Date = new Date();\r\n\r\n dataUltimaRenovacao: Date = new Date();\r\n\r\n dataProximaRenovacao: Date = new Date();\r\n\r\n dataUltimaAtualizacao: Date = new Date();\r\n\r\n diaVencimento: number = 0;\r\n\r\n diasParaPagar: number = 0;\r\n\r\n empresaId: number = 0;\r\n\r\n clienteId: number = 0;\r\n\r\n produtoId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n clienteMetodoPagamentoId: number = 0;\r\n\r\n getNetSubscriptionId: string = '00000000-0000-0000-0000-000000000000';\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ClienteServicoService {\r\n\r\n getClienteServico(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clienteservico/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postClienteServico(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/clienteservico/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putClienteServico(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/clienteservico/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteClienteServico(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/clienteservico/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/clienteservico/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n getProduto(produtoId: any): Observable> {\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/clienteservico/produto/' + produtoId, { observe: 'response'})\r\n }\r\n\r\n getClienteServicoHistoricos(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clienteservicohistorico/visualizaporclienteservico/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class Cliente {\r\n\r\n clienteId: number = 0;\r\n\r\n codigo: number = 0;\r\n\r\n clienteTipo: number = 0;\r\n\r\n ativo: boolean = true;\r\n\r\n cnpj: string = '';\r\n\r\n cpf: string = '';\r\n\r\n dataNascimento: Date = new Date();\r\n\r\n rg: string = '';\r\n\r\n razaoSocial: string = '';\r\n\r\n nomeFantasia: string = '';\r\n\r\n inscEstadual: string = '';\r\n\r\n inscMunicipial: string = '';\r\n\r\n inscSuframa: string = '';\r\n\r\n municipioId: number = 0;\r\n\r\n ufId: number = 0;\r\n\r\n paisId: number = 0;\r\n\r\n logradouroEntrega: string = '';\r\n\r\n numeroEntrega: string = '';\r\n\r\n complementoEntrega: string = '';\r\n\r\n bairroEntrega: string = '';\r\n\r\n cepEntrega: string = '';\r\n\r\n telefoneEntrega: string = '';\r\n\r\n emailEntrega: string = '';\r\n\r\n codRegimeTributario: number = 0;\r\n\r\n textoNFSe: string = '';\r\n\r\n municipioEntregaId: number = 0;\r\n\r\n ufEntregaId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n indicacao: string = '';\r\n\r\n nomeEmpresa: string = '';\r\n\r\n nacionalidade: string = '';\r\n\r\n estadoCivil: string = '';\r\n\r\n profissao: string = '';\r\n\r\n retidoIssqn: boolean = false;\r\n\r\n retidoPis: boolean = false;\r\n\r\n retidoCofins: boolean = false;\r\n\r\n retidoCsll: boolean = false;\r\n\r\n retidoIrrf: boolean = false;\r\n\r\n retidoInss: boolean = false;\r\n\r\n numeroFuncionarios: number = 0;\r\n\r\n receitaAnual: number = 0;\r\n \r\n codigoEmpresaSoc: string = \"\"; \r\n\r\n codigoUnidadeSoc: string = \"\";\r\n\r\n contaContabilId: number = 0;\r\n\r\n parceiroId: number = 0;\r\n\r\n logradouro: string = '';\r\n\r\n numero: string = '';\r\n\r\n complemento: string = '';\r\n\r\n bairro: string = '';\r\n\r\n cep: string = '';\r\n\r\n telefone: string = '';\r\n\r\n email: string = '';\r\n\r\n isento: boolean = false;\r\n\r\n localEntregaAtivo: boolean = false;\r\n\r\n pessoaFisica: boolean = false;\r\n\r\n //Consultar Sintegra\r\n ufSigla: string = 'SP';\r\n\r\n getNetCustomerId: string = '00000000-0000-0000-0000-000000000000';\r\n clienteEmpresas: any[] = [];\r\n clienteImpostosEmpresas: ClienteImpostosEmpresas[] = [];\r\n\r\n\r\n\r\n}\r\n\r\nexport enum TipoNota {\r\n NFSE = 0,\r\n NFE = 1\r\n}\r\n\r\nexport enum TipoImposto {\r\n PIS = 'PIS',\r\n COFINS = 'COFINS',\r\n CSLL = 'CSLL',\r\n ISSQN = 'ISSQN',\r\n IRRF = 'IRRF',\r\n INSS = 'INSS',\r\n ICMS = 'ICMS',\r\n ICMS_ST = 'ICMS_ST',\r\n PIS_ST = 'PIS_ST',\r\n COFINS_ST = 'COFINS_ST',\r\n IPI = 'IPI'\r\n}\r\nexport const TipoImpostoFrontendToBackend = {\r\n 'PIS': 0,\r\n 'COFINS': 1,\r\n 'CSLL': 2,\r\n 'ISSQN': 3,\r\n 'IRRF': 4,\r\n 'INSS': 5,\r\n 'ICMS': 6,\r\n 'ICMS_ST': 7,\r\n 'PIS_ST': 8,\r\n 'COFINS_ST': 9,\r\n 'IPI': 10\r\n};\r\n\r\nexport const TipoImpostoBackendToFrontend = {\r\n 0: 'PIS',\r\n 1: 'COFINS',\r\n 2: 'CSLL',\r\n 3: 'ISSQN',\r\n 4: 'IRRF',\r\n 5: 'INSS',\r\n 6: 'ICMS',\r\n 7: 'ICMS_ST',\r\n 8: 'PIS_ST',\r\n 9: 'COFINS_ST',\r\n 10: 'IPI'\r\n};\r\nexport class ClienteImpostosEmpresas {\r\n ClienteImpostosEmpresasId: number;\r\n TipoNota: TipoNota;\r\n TipoImposto: TipoImposto;\r\n Retido: boolean = false;\r\n ClienteId: number = 0;\r\n EmpresaId: number = 0;\r\n SaguiClienteId: number = 0;\r\n}\r\n\r\nexport interface ClienteImpostoAgrupado {\r\n TipoImposto: TipoImposto;\r\n Retido: boolean;\r\n Empresas: number[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ClienteService {\r\n\r\n postVisualizaClientesPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/cliente/visualizaclienteporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresas(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/visualizatodasempresas', { observe: 'response' })\r\n }\r\n getEmpresasAllDados(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/empresas', { observe: 'response' })\r\n }\r\n\r\n getCliente(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClienteHistoricos(itemId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/ClienteHistorico/visualizaporcliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClienteServicos(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clienteservico/visualizaporcliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClienteFaturamentos(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clientefaturamento/visualizaporcliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n\r\n\r\n postCliente(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/cliente/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putCliente(item: any, itemId: any): Observable> {\r\n console.log(item, \"Service\");\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/cliente/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteCliente(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/cliente/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n deleteClienteUsuario(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/clienteusuario/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClienteUsuarioPorCliente(clienteId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/clienteusuario/visualizaporcliente/' + clienteId, { observe: 'response' })\r\n }\r\n\r\n getContatos(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/contatos/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getDadosBancarios(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/dadosbancarios/' + itemId, { observe: 'response' })\r\n }\r\n consultaParceiro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/cliente/consulta-parceiro', item, { observe: 'response' })\r\n }\r\n\r\n buscaSocCadastroUnidades(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/soc-cadastro-unidades/0', { observe: 'response' })\r\n }\r\n\r\n verficaIntegracaoSeHaIntegrcaoSoc(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/verifica-integracoes-soc', { observe: 'response' })\r\n }\r\n verificaIntegracaoPorNumeroEnum(idEnumIntegracaoTipo: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/cliente/verifica-integracoes/' + idEnumIntegracaoTipo, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { CompraService } from '../shared/compra.service';\r\nimport { CompraItemComponent } from '../compra-item/compra-item.component';\r\n\r\nimport { FaturaCadastroComponent } from '../../fatura/fatura-cadastro/fatura-cadastro.component';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Compra } from '../shared/compra.model';\r\nimport { Transportadora } from '../../transportadora/shared/transportadora.model';\r\nimport { NfeCadastroComponent } from '../../fiscal/nfe-cadastro/nfe-cadastro.component';\r\nimport { NfeInboundImportarComponent } from '../../fiscal/nfe-inbound-importar/nfe-inbound-importar.component';\r\nimport { AnexoComponent } from 'src/app/anexo/anexo/anexo.component';\r\nimport { LogComponent } from 'src/app/log/log/log.component';\r\n\r\nexport interface DialogData {\r\n compraId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'compra-cadastro',\r\n templateUrl: 'compra-cadastro.component.html',\r\n})\r\n\r\nexport class CompraCadastroComponent {\r\n\r\n compra: any = {};\r\n empresa: any = {};\r\n transportadora: Transportadora;\r\n fornecedor: any = {};\r\n localEntrega: any = {};\r\n localRetirada: any = {};\r\n empresas: any = [];\r\n compras: any = [];\r\n aprovadores: any = [];\r\n transportadoras: Transportadora[];\r\n fornecedores: any[];\r\n locaisRetirada: any[];\r\n locaisEntrega: any[];\r\n compraCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n exibirMovimentarEstoque: boolean = false;\r\n exibirFaturar: boolean = false;\r\n permiteEdicao: boolean = false;\r\n exibirNfeInbound: boolean = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public ICompra: DialogData,\r\n private compraService: CompraService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.compraCadastroForm = this._formBuilder.group(new Compra());\r\n\r\n this.compraCadastroForm.get('compraStatus').disable();\r\n\r\n if (this.ICompra.compraId > 0) {\r\n\r\n this.buscarCompra(this.ICompra.compraId);\r\n\r\n } else {\r\n this.compra = {};\r\n this.compra.dataCompra = new Date();\r\n this.compra.dataPrevista = new Date();\r\n this.compraCadastroForm.get('compraStatus').setValue(0);\r\n this.permiteEdicao = true;\r\n }\r\n\r\n this.buscarEmpresas();\r\n\r\n this.buscarFuncionarios();\r\n\r\n this.buscarTransportadoras();\r\n\r\n this.compraCadastroForm.addControl('fornecedorAutoComplete', new FormControl(''));\r\n\r\n this.compraCadastroForm.addControl('localRetiradaAutoComplete', new FormControl(''));\r\n\r\n this.compraCadastroForm.addControl('localEntregaAutoComplete', new FormControl(''));\r\n\r\n this.compraCadastroForm\r\n .get('fornecedorAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.compraService.getFornecedorPorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.fornecedores = data.body\r\n );\r\n\r\n this.compraCadastroForm\r\n .get('localRetiradaAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.compraService.getFornecedorPorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.locaisRetirada = data.body\r\n );\r\n\r\n this.compraCadastroForm\r\n .get('localEntregaAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.compraService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.locaisEntrega = data.body\r\n );\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n buscarEmpresas() {\r\n\r\n this.compraService.getEmpresa().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarFuncionarios() {\r\n\r\n this.compraService.getAprovadores().subscribe(data => {\r\n\r\n this.aprovadores = data.body;\r\n\r\n });\r\n }\r\n\r\n desvincularNFe(compraId: number): void {\r\n this.compraService.getDesvincularNFe(compraId).subscribe(data => {\r\n\r\n this.buscarCompra(compraId);\r\n\r\n });\r\n }\r\n\r\n buscarTransportadoras() {\r\n\r\n this.compraService.getTransportadoras().subscribe(data => {\r\n\r\n this.transportadoras = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n\r\n buscarCompra(compraId: number) {\r\n\r\n this.compraService.getCompra(compraId).subscribe(data => {\r\n\r\n this.InsereDadosCompra(data.body);\r\n\r\n })\r\n }\r\n\r\n\r\n InsereDadosCompra(data: any) {\r\n\r\n this.compraCadastroForm.patchValue(data);\r\n\r\n this.compra = data;\r\n this.compra.indPag = data.indPag.toString();\r\n this.compra.compraStatus = data.compraStatus.toString();\r\n this.fornecedor = this.compra.fornecedor;\r\n this.empresa = data.empresa;\r\n this.transportadora = data.transportadora;\r\n\r\n if (this.compra.compraId > 0 && this.compra.compraStatus < 5 && this.compra.compraStatus > 2) {\r\n this.exibirMovimentarEstoque = true;\r\n }\r\n\r\n if (this.compra.compraId > 0 && this.compra.compraStatus < 5 && this.compra.faturaId == 0 && this.compra.compraStatus > 2) {\r\n\r\n this.exibirFaturar = true;\r\n }\r\n\r\n if (this.compra.compraId > 0 && this.compra.compraStatus < 5 && this.compra.compraStatus > 2 && this.compra.nfeId == 0) {\r\n\r\n this.exibirNfeInbound = true;\r\n }\r\n\r\n if (this.compra.compraStatus > 0) {\r\n this.compraCadastroForm.disable();\r\n this.permiteEdicao = false;\r\n } else {\r\n this.permiteEdicao = true;\r\n this.compraCadastroForm.enable();\r\n }\r\n\r\n\r\n this.compraCadastroForm.get('fornecedorAutoComplete').setValue(this.fornecedor.nomeFantasia);\r\n\r\n const promiselocalEntrega = new Promise((resolve, reject) => {\r\n\r\n if (this.compra.idlocalEntrega) {\r\n this.compraService.getClientePorId(this.compra.idlocalEntrega).subscribe(data => {\r\n\r\n this.localEntrega = data.body;\r\n this.compraCadastroForm.get('localEntregaAutoComplete').setValue(this.localEntrega.nomeFantasia);\r\n\r\n resolve();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n resolve();\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n\r\n const promiselocalRetirada = new Promise((resolve, reject) => {\r\n\r\n if (this.compra.idlocalRetirada) {\r\n this.compraService.getFornecedorPorId(this.compra.idlocalRetirada).subscribe(data => {\r\n\r\n this.localRetirada = data.body;\r\n this.compraCadastroForm.get('localRetiradaAutoComplete').setValue(this.localRetirada.nomeFantasia);\r\n resolve();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n resolve();\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n\r\n Promise.all([promiselocalEntrega, promiselocalRetirada]).then(values => {\r\n\r\n this.compra.totalCompra = 0;\r\n this.compra.totalDescontos = 0;\r\n this.compra.totalGeral = 0;\r\n\r\n var arrayLength = this.compra.compraItens.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n\r\n this.compra.totalCompra = this.compra.totalCompra + this.compra.compraItens[i].vProd;\r\n this.compra.totalDescontos = this.compra.totalDescontos + this.compra.compraItens[i].vDesc;\r\n }\r\n\r\n this.compra.totalGeral = this.compra.totalCompra - this.compra.totalDescontos;\r\n\r\n let modalidadeFrete = \"\";\r\n\r\n switch (this.compra.modFrete) {\r\n case 0:\r\n modalidadeFrete = \"Contratação do frete por conta do remetente(CIF)\";\r\n break;\r\n case 1:\r\n modalidadeFrete = \"Contratação do frete por conta do destinatário(FOB)\";\r\n break;\r\n case 2:\r\n modalidadeFrete = \"Transporte próprio por conta do remetente\";\r\n break;\r\n case 3:\r\n modalidadeFrete = \"Transporte próprio por conta do destinatário\";\r\n break;\r\n case 9:\r\n modalidadeFrete = \"Sem ocorrência de transporte\";\r\n break;\r\n }\r\n\r\n this.compra.modalidadeFrete = modalidadeFrete;\r\n\r\n this.compras = [];\r\n\r\n this.compras.push(this.compra);\r\n\r\n if (this.compra.compraStatus == 5) {\r\n this.compraCadastroForm.disable();\r\n }\r\n });\r\n\r\n }\r\n\r\n DeterminafornecedorId(id: number) {\r\n this.compraCadastroForm.get('fornecedorId').setValue(id);\r\n }\r\n\r\n DeterminalocalEntregaId(id: number) {\r\n this.compraCadastroForm.get('idlocalEntrega').setValue(id);\r\n }\r\n\r\n DeterminalocalRetiradaId(id: number) {\r\n this.compraCadastroForm.get('idlocalRetirada').setValue(id);\r\n }\r\n\r\n CancelarCompra(cancelarId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente Cancelar essa compra?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.compraService.deleteCompra(cancelarId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Cancelado com Sucesso\");\r\n\r\n this.buscarCompra(cancelarId);\r\n\r\n });\r\n }\r\n });\r\n };\r\n\r\n salvar(compraForm): void {\r\n\r\n if (compraForm.value.compraId == 0) {\r\n\r\n this.compraService.postCompra(compraForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarCompra(data.body.compraId);\r\n\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.compraService.putCompra(compraForm.value, compraForm.value.compraId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarCompra(compraForm.value.compraId);\r\n\r\n\r\n });\r\n }\r\n\r\n };\r\n\r\n MovimentarEstoque (compra: Compra) {\r\n\r\n var estoques = [];\r\n\r\n const parametros: any = {};\r\n\r\n parametros.idOrigem = compra.compraId;\r\n parametros.tipoOrigem = 0;\r\n parametros.tipoDestino = 3;\r\n\r\n this.compraService.getVisualizaDocumento(parametros).subscribe(data => {\r\n\r\n estoques = data.body;\r\n\r\n if (estoques.length > 0) {\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Movimentar Estoque\",\r\n mensagem: \"Já existe uma entrada de estoque para essa compra. Deseja criar outra?\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.EnviarMovimentoEstoque(compra);\r\n }\r\n });\r\n }\r\n else {\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Movimentar Estoque\",\r\n mensagem: \"Deseja criar uma nova entrada de estoque para essa compra?\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.EnviarMovimentoEstoque(compra);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n EnviarMovimentoEstoque (compra: Compra) {\r\n\r\n this.compraService.postMovimentarEstoque(compra).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Entradas de Estoque Realizadas\"\r\n }\r\n });\r\n\r\n });\r\n };\r\n\r\n imprimir(): void {\r\n\r\n let titulo = \"Pedido de Compra\";\r\n\r\n this.htmlPrinterService.printDiv('printCompra', titulo);\r\n }\r\n\r\n Fatura(compra: Compra) {\r\n\r\n var faturas = [];\r\n\r\n const parametros: any = {};\r\n\r\n parametros.idOrigem = compra.compraId;\r\n parametros.tipoOrigem = 0;\r\n parametros.tipoDestino = 0;\r\n\r\n this.compraService.getVisualizaDocumento(parametros).subscribe(data => {\r\n\r\n faturas = data.body;\r\n\r\n if (faturas.length > 0) {\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Gerar Fatura\",\r\n mensagem: \"Já existe uma fatura para esta compra. Deseja criar outra?\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GeraFatura(compra);\r\n }\r\n });\r\n }\r\n else {\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Gerar Fatura\",\r\n mensagem: \"Deseja faturar essa compra?\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.GeraFatura(compra);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n GeraFatura(compra: Compra): void {\r\n\r\n this.compraService.postGeraFatura(compra).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Compra Faturada\"\r\n }\r\n });\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n this.VisualizaFatura(data.body.faturaId);\r\n\r\n });\r\n }\r\n\r\n PreencherTabela(fornecedor: any) {\r\n\r\n if (fornecedor != undefined) {\r\n this.compra.fornecedorId = fornecedor.fornecedorId;\r\n }\r\n }\r\n\r\n PreencherTabelalocalRetirada(localRetirada: any) {\r\n\r\n if (localRetirada != undefined) {\r\n this.compra.idlocalRetirada = localRetirada.fornecedorId;\r\n }\r\n }\r\n\r\n PreencherTabelalocalEntrega(localEntrega) {\r\n\r\n if (localEntrega != undefined) {\r\n this.compra.idlocalEntrega = localEntrega.clienteId;\r\n }\r\n }\r\n\r\n ModalItem(compraItemId: number): void {\r\n\r\n\r\n const dialogRef = this.dialog.open(CompraItemComponent, {\r\n data: {\r\n compraItemId: compraItemId,\r\n compra: this.compra\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarCompra(this.compra.compraId);\r\n });\r\n\r\n }\r\n\r\n DeleteCompraItem(compraItemId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse item?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.compraService.deleteCompraItem(compraItemId).subscribe(data => {\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n }\r\n });\r\n };\r\n\r\n VisualizaNFe() {\r\n\r\n const dialogRef = this.dialog.open(NfeCadastroComponent, {\r\n data: {\r\n nfeId: this.compra.nfeId,\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n }\r\n\r\n VisualizaFatura(faturaId: number) {\r\n\r\n const dialogRef = this.dialog.open(FaturaCadastroComponent, {\r\n data: {\r\n faturaId: faturaId,\r\n faturaTipo: 1\r\n },\r\n maxHeight: '100vh'\r\n });\r\n }\r\n\r\n solicitarAprovacao() {\r\n\r\n if (this.compra.aprovadorId == 0) {\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Você precisa selecionar um aprovador da Compra e Salvar\"\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Enviar para aprovação\",\r\n mensagem: \"Deseja enviar para aprovação? Após aprovada, você não poderá mais editar a Compra\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.compraService.postSolicitarAprovacao(this.compraCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Foi enviado um e-mail para o aprovador desta Compra\"\r\n }\r\n });\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n aprovar() {\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Aprovar\",\r\n mensagem: \"Deseja aprovar essa compra?\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.compraService.postAprovar(this.compra).subscribe(data => {\r\n\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Compra Aprovada\"\r\n }\r\n });\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n confirmarCompra() {\r\n\r\n this.compraService.postConfirmarCompra(this.compra).subscribe(data => {\r\n\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Compra Confirmada\"\r\n }\r\n });\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n }\r\n\r\n definirRecebido(){\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Definir como Recebido\",\r\n mensagem: \"Deseja definir como recebido? Essa opção deve ser usada quando a compra não possuir uma NF-e. Se possuir uma NF-e recomendamos utilizar a opção Receber NF-e\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.compraService.postDefinirComoRecebido(this.compra).subscribe(data => {\r\n\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Compra definida como Recebida\"\r\n }\r\n });\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n definirComoemCriacao(){\r\n\r\n const dialogRefEstoque = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Definir como Em Criação\",\r\n mensagem: \"Deseja desbloquear para edições? Essa opção retornará o Ordem de Compra para Em Criação e será necessária uma nova aprovação.\"\r\n }\r\n });\r\n\r\n dialogRefEstoque.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.compraService.postDefinirComoemCriacao(this.compra).subscribe(data => {\r\n\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Agora a Compra permitirá edições\"\r\n }\r\n });\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n abrirLogs(){\r\n\r\n const dialogRef = this.dialog.open(LogComponent, {\r\n data: {\r\n entidadeId: this.compra.compraId,\r\n logTipo: 2\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n \r\n }\r\n\r\n receberNfe() {\r\n\r\n const dialogRef = this.dialog.open(NfeInboundImportarComponent, {\r\n maxHeight: '100vh',\r\n maxWidth: '100vw',\r\n data: { \r\n compraId: this.compra.compraId,\r\n vendaId: 0\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarCompra(this.compra.compraId);\r\n\r\n });\r\n\r\n }\r\n\r\n abreModalAnexo() {\r\n\r\n const dialogRef = this.dialog.open(AnexoComponent, {\r\n data: {\r\n documentoIdReferenciado: this.compra.compraId,\r\n documentoTipo: 0,\r\n saguiClienteId: this.compra.saguiClienteId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n }\r\n\r\n //VisualizaFluxoDocumentos(Compra: any) {\r\n\r\n // documentoComponent.locals = {\r\n // tipoOrigem: 0,\r\n // idDocumento: Compra.compraId,\r\n // };\r\n\r\n // $mdDialog.show(documentoComponent).then(function () {\r\n\r\n // this.cancel();\r\n\r\n // });\r\n //}\r\n}\r\n","\r\n
\r\n

Compra {{compra.compraId}}

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Fornecedor\r\n \r\n \r\n \r\n CNPJ: {{parceiro.cnpj}} - {{parceiro.nomeFantasia}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Data da Compra\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Data Prevista para Entrega\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Status\r\n \r\n Em Criação\r\n Aguardando Aprovação\r\n Aprovado\r\n Aguardando Mercadoria\r\n Recebida\r\n Cancelada\r\n \r\n \r\n \r\n Indicador de Pagamento\r\n \r\n Pagamento à vista\r\n Pagamento a prazo\r\n Outros\r\n \r\n \r\n
\r\n
\r\n \r\n Solicitante\r\n \r\n \r\n
\r\n
\r\n \r\n Aprovador\r\n \r\n \r\n {{aprovador.nomeFantasia}}\r\n \r\n \r\n Para cadastrar aprovadores acesse RH > Funcionários > E selecione a\r\n função 'Aprovador de Compras'\r\n \r\n
1\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Local de Entrega (Cliente)\r\n \r\n \r\n \r\n CNPJ: {{localEntrega.cnpj}} - {{localEntrega.nomeFantasia}}\r\n \r\n \r\n Usado para revenda para clientes\r\n \r\n
\r\n
\r\n \r\n Local de Retirada\r\n \r\n \r\n \r\n CNPJ: {{localRetirada.cnpj}} - {{localRetirada.nomeFantasia}}\r\n \r\n \r\n Se diferente do cadastro do Fornecedor\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Dados Adicionais\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Transportadora\r\n \r\n \r\n {{transportadora.nomeFantasia}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Tipo de Entrega\r\n \r\n Transportadora\r\n Veículo Próprio\r\n Cliente Retira\r\n Correios\r\n \r\n \r\n
\r\n
\r\n \r\n Tipo de Frente\r\n \r\n Contratação do frete por conta do remetente (CIF)\r\n \r\n Contratação do frete por conta do destinatário (FOB)\r\n \r\n Transporte próprio por conta do remetente\r\n \r\n Transporte próprio por conta do destinatário\r\n \r\n Sem ocorrência de transporte\r\n \r\n \r\n \r\n Quantidade de Volumes Transportados\r\n \r\n \r\n \r\n Espécie dos Volumes Transportados\r\n \r\n \r\n
\r\n
\r\n \r\n Peso Líquido (KG)\r\n \r\n \r\n \r\n Peso Bruto (KG)\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n

Itens

\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    AçõesCódigoDescriçãoLoteNCMCFOPUnid.Qtde.Valor Un.Valor Total
    \r\n \r\n edit\r\n \r\n delete\r\n {{compraitem.codProd}}{{compraitem.descricao}}{{compraitem.numLote}}{{compraitem.ncm}}{{compraitem.cfop}}{{compraitem.unComercial}}{{compraitem.qtdComercial}}R$ {{compraitem.vlrComercial | number:'1.2-2'}}R$ {{compraitem.vProd | number:'1.2-2'}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n

    Pedido de Compra

    \r\n
    {{empresa.nomeFantasia}}
    \r\n
    \r\n
    \r\n {{empresa.logradouro}}, {{empresa.numero}} , {{empresa.bairro}}
    \r\n {{empresa.municipio?.descricao}} - {{empresa.municipio?.uf.siglaUF}}, CEP:\r\n {{empresa.cep}}
    \r\n Tel: {{empresa.telefone}}
    \r\n e-mail: {{empresa.emailCompra}}
    \r\n IE: {{empresa.inscEstadual}} - CNPJ: {{empresa.cnpj}}\r\n
    \r\n
    \r\n
    EMISSÃO
    \r\n
    \r\n
    {{compratemp.dataCompra | date:'dd/MM/yyyy'}}
    \r\n
    \r\n
    PREVISÃO DE ENTREGA
    \r\n
    \r\n
    {{compratemp.dataPrevista | date:'dd/MM/yyyy'}}
    \r\n
    \r\n
    PEDIDO
    \r\n
    \r\n
    {{compratemp.compraId}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    DESTINATÁRIO/REMETENTE
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    NOME / RAZÃO SOCIAL
    \r\n
    \r\n {{fornecedor.razaoSocial}}\r\n
    \r\n
    \r\n
    CNPJ / CPF
    \r\n
    \r\n {{fornecedor.cnpj != undefined ? fornecedor.cnpj : fornecedor.cpf}}\r\n
    \r\n
    \r\n
    ENDEREÇO
    \r\n
    \r\n {{fornecedor.logradouro}}  \r\n {{fornecedor.numero}}\r\n
    \r\n
    \r\n
    BAIRRO / DISTRITO
    \r\n
    \r\n {{fornecedor.bairro}}\r\n
    \r\n
    \r\n
    CEP
    \r\n
    \r\n {{fornecedor.cep}}\r\n
    \r\n
    \r\n
    MUNICÍPIO
    \r\n
    \r\n {{fornecedor.municipio?.descricao}}\r\n
    \r\n
    \r\n
    TELEFONE
    \r\n
    \r\n {{fornecedor.telefone}}\r\n
    \r\n
    \r\n
    UF
    \r\n
    \r\n {{fornecedor.municipio?.uf.siglaUF}}\r\n
    \r\n
    \r\n
    INSCRIÇÃO ESTADUAL
    \r\n
    \r\n {{fornecedor.inscEstadual}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    TRANSPORTE
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    NOME / RAZÃO SOCIAL
    \r\n
    \r\n {{transportadora.razaoSocial}}\r\n
    \r\n
    \r\n
    CNPJ / CPF
    \r\n
    \r\n {{transportadora.cnpj}}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    MODALIDADE DO FRETE
    \r\n
    \r\n {{compratemp.modalidadeFrete}}\r\n
    \r\n
    \r\n
    QUANTIDADE
    \r\n
    \r\n {{compratemp.volumesTransportados}}\r\n
    \r\n
    \r\n
    ESPÉCIE
    \r\n
    \r\n {{compratemp.especieVolumesTransportados}}\r\n
    \r\n
    \r\n
    PESO BRUTO
    \r\n
    \r\n {{compratemp.pesoBrutoTransportado}}\r\n
    \r\n
    \r\n
    PESO LÍQUIDO
    \r\n
    \r\n {{compratemp.pesoLiquidoTransportado}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    VALORES TOTAIS
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    TOTAL DA COMPRA
    \r\n
    \r\n R$ {{compratemp.totalCompra | number:'1.2-2'}}\r\n
    \r\n
    \r\n
    DESCONTOS
    \r\n
    \r\n R$ {{compratemp.totalDescontos | number:'1.2-2'}}\r\n
    \r\n
    \r\n
    TOTAL GERAL
    \r\n
    \r\n R$ {{compratemp.totalGeral| number:'1.2-2'}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    DADOS DOS PRODUTOS / SERVIÇOS
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    CÓDIGO
    \r\n
    \r\n
    DESCRIÇÃO DOS PRODUTOS / SERVIÇOS\r\n
    \r\n
    \r\n
    NCM
    \r\n
    \r\n
    LOTE
    \r\n
    \r\n
    UNID
    \r\n
    \r\n
    QUANT
    \r\n
    \r\n
    VLR.UNIT.
    \r\n
    \r\n
    VLR.TOTAL
    \r\n
    \r\n
    \r\n {{item.codProd}}\r\n
    \r\n
    \r\n
    \r\n {{item.descricao}}\r\n
    \r\n
    \r\n
    \r\n {{item.ncm}}\r\n
    \r\n
    \r\n
    \r\n {{item.numLote}}\r\n
    \r\n
    \r\n
    \r\n {{item.unComercial}}\r\n
    \r\n
    \r\n
    \r\n {{item.qtdComercial}}\r\n
    \r\n
    \r\n
    \r\n R$ {{item.vlrComercial | number:'1.2-2'}}\r\n
    \r\n
    \r\n
    \r\n R$ {{item.vProd | number:'1.2-2'}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    DADOS ADICIONAIS
    \r\n
    \r\n
    END. ENTREGA
    \r\n
    \r\n
    END. RETIRADA
    \r\n
    \r\n
    \r\n {{compratemp.dadosAdicionais}}\r\n
    \r\n
    \r\n
    \r\n {{localEntrega.logradouro}} {{localEntrega.numero}}
    \r\n {{localEntrega.bairro}}
    \r\n {{localEntrega.municipio?.descricao}},\r\n {{localEntrega.municipio?.uf.siglaUF}}
    \r\n {{localEntrega.cep}}
    \r\n
    \r\n
    \r\n
    \r\n {{localRetirada.logradouro}}{{localRetirada.numero}}
    \r\n {{localRetirada.bairro}}
    \r\n {{localRetirada.municipio?.descricao}},\r\n {{localRetirada.municipio?.uf.siglaUF}}
    \r\n {{localRetirada.cep}}
    \r\n
    \r\n
    \r\n
    Aprovação: _____________________________\r\n
    Solicitante: {{compratemp.solicitante}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","'use strict'\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CompraService } from '../shared/compra.service';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\n\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { CompraItem } from '../shared/compra-item.model';\r\nimport { Produto } from '../../produto/shared/produto.model';\r\nimport { Cfop } from '../../cfop/shared/cfop.model';\r\nimport { Estoque } from '../../estoque/shared/estoque.model';\r\n\r\n\r\nexport interface DialogData {\r\n compraItemId: number;\r\n compra: any;\r\n}\r\n\r\n@Component({\r\n selector: 'compra-item',\r\n templateUrl: 'compra-item.component.html',\r\n})\r\n\r\nexport class CompraItemComponent {\r\n\r\n compra: any = {};\r\n compraItemForm: FormGroup;\r\n maximizado: boolean;\r\n compraItemId: number;\r\n compraitem: any = {};\r\n cfops: Cfop[];\r\n produtos: Produto[];\r\n estoques: Estoque[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: DialogData,\r\n private compraService: CompraService,\r\n private cfopService: CfopService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.compra = this.dialogData.compra;\r\n\r\n this.compraItemId = this.dialogData.compraItemId;\r\n\r\n this.compraItemForm = this._formBuilder.group(new CompraItem());\r\n\r\n this.compraItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.compraItemForm.get('compraId').setValue(this.compra.compraId);\r\n\r\n this.compraItemForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.compraService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: this.compraItemForm.get('produtoTipo').value\r\n }) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.produtos = data.body\r\n );\r\n\r\n this.buscarCfop();\r\n\r\n this.buscarCompraItem();\r\n\r\n this.restaurarDialog();\r\n\r\n }\r\n\r\n buscarCompraItem() {\r\n if (this.compraItemId > 0) {\r\n\r\n this.compraService.getCompraItem(this.compraItemId).subscribe(data => {\r\n this.compraItemForm.patchValue(data.body);\r\n\r\n this.compraItemForm.get('produtoAutoComplete').setValue(data.body.descricao);\r\n this.SearchEstoquesByprodutoId(data.body.produtoId);\r\n\r\n });\r\n }\r\n }\r\n\r\n buscarCfop() {\r\n const parametros: any = {};\r\n\r\n parametros.empresaId = this.compra.empresaId;\r\n parametros.direcao = 0;\r\n\r\n this.cfopService.getCfops(parametros).subscribe(data => {\r\n this.cfops = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n salvar() {\r\n\r\n if (this.compraItemForm.value.compraItemId == 0) {\r\n\r\n this.compraItemForm.get('compraId').setValue(this.compra.compraId);\r\n\r\n this.compraService.postIncluiCompraItem(this.compraItemForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.compraService.putAtualizaCompraItem(this.compraItemForm.value, this.compraItemForm.value.compraItemId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n };\r\n\r\n\r\n DeterminaprodutoId(produto: Produto) {\r\n\r\n this.compraItemForm.get('produtoId').setValue(produto.produtoId);\r\n this.compraItemForm.get('codProd').setValue(produto.codProd);\r\n this.compraItemForm.get('descricao').setValue(produto.descricao);\r\n this.compraItemForm.get('ncm').setValue(produto.ncm);\r\n this.compraItemForm.get('ean').setValue(produto.ean);\r\n this.compraItemForm.get('eanTrib').setValue(produto.eanTrib);\r\n this.compraItemForm.get('unTributaria').setValue(produto.unidadeCompra);\r\n this.compraItemForm.get('vlrTributario').setValue(produto.valorCompra);\r\n this.compraItemForm.get('unComercial').setValue(produto.unidadeCompra);\r\n this.compraItemForm.get('vlrComercial').setValue(produto.valorCompra);\r\n this.compraItemForm.get('extipi').setValue(produto.extipi);\r\n this.compraItemForm.get('infAdProd').setValue(produto.infAdProd);\r\n\r\n this.SearchEstoquesByprodutoId(produto.produtoId);\r\n\r\n }\r\n\r\n SearchEstoquesByprodutoId(produtoId: number) {\r\n this.compraService.getEstoqueByProduto(produtoId).subscribe(data => {\r\n this.estoques = data.body;\r\n });\r\n }\r\n\r\n OnChangeqtdComercial() {\r\n\r\n let qtdComercial = this.compraItemForm.get('qtdComercial').value;\r\n let vlrComercial = this.compraItemForm.get('vlrComercial').value;\r\n let vProd = qtdComercial * vlrComercial;\r\n this.compraItemForm.get('vProd').setValue(vProd);\r\n this.compraItemForm.get('qtdTributaria').setValue(qtdComercial);\r\n }\r\n\r\n OnChangevlrComercial() {\r\n\r\n let qtdComercial = this.compraItemForm.get('qtdComercial').value;\r\n let vlrComercial = this.compraItemForm.get('vlrComercial').value;\r\n let vProd = qtdComercial * vlrComercial;\r\n this.compraItemForm.get('vProd').setValue(vProd);\r\n this.compraItemForm.get('vlrTributario').setValue(vlrComercial);\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n}\r\n","\r\n
    \r\n

    Item Compra

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Tipo de Produto\r\n \r\n Produto Acabado\r\n Serviço\r\n Uso e Consumo\r\n Ativo Imobilizado\r\n Matéria Prima\r\n \r\n \r\n
    \r\n
    \r\n \r\n Produto/Serviço\r\n \r\n \r\n \r\n {{produto.descricao}} - {{produto.valorCompra | currency}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop}} - {{cfop.descricao}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Estoque\r\n \r\n \r\n {{estoque.produto.descricao }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Quantidade Comercial\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Valor Total Bruto\r\n \r\n \r\n
    \r\n

    Dados do Produto

    \r\n
    \r\n
    \r\n \r\n Código do Produto\r\n \r\n \r\n \r\n Descrição\r\n \r\n \r\n
    \r\n
    \r\n \r\n NCM\r\n \r\n \r\n \r\n EAN\r\n \r\n \r\n \r\n EAN Tributário\r\n \r\n \r\n \r\n EX_TIPI\r\n \r\n \r\n
    \r\n
    \r\n \r\n Unidade Comercial\r\n \r\n \r\n \r\n Unidade Tributária\r\n \r\n \r\n \r\n Valor Tributário\r\n \r\n \r\n \r\n Quantidade Tributaria\r\n \r\n \r\n
    \r\n
    \r\n \r\n Informações Adicionais do Produto\r\n \r\n \r\n
    \r\n
    \r\n \r\n Valor Total Bruto\r\n \r\n \r\n \r\n Valor Total do Frete\r\n \r\n \r\n \r\n Valor Total do Seguro\r\n \r\n \r\n \r\n Valor do Desconto\r\n \r\n \r\n \r\n Outras despesas acessórias\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ","export class CompraItem {\r\n compraItemId: number = 0;\r\n nItem: number = 0;;\r\n cfop: number = 0;\r\n produtoId: number = 0;\r\n produtoTipo: number = 0;\r\n vProd: number = 0;\r\n vFrete:number = 0; \r\n vSeg:number = 0; \r\n vDesc:number = 0; \r\n vOutro:number = 0; \r\n indTot:number = 0; \r\n codProd:string = ''; \r\n descricao:string = ''; \r\n ncm:string = ''; \r\n ean:string = ''; \r\n eanTrib:string = ''; \r\n unTributaria:string = ''; \r\n qtdTributaria:number = 0; \r\n vlrTributario:number = 0; \r\n unComercial:string = ''; \r\n qtdComercial:number = 0; \r\n vlrComercial:number = 0; \r\n extipi:number = 0; \r\n infAdProd:string = ''; \r\n compraId:number = 0; \r\n estoqueId:number = 0; \r\n numLote:number = 0; \r\n estoqueLoteId: number = 0;\r\n saguiClienteId: number = 0;\r\n}","export class Compra {\r\n\r\n compraId: number = 0;\r\n\r\n indPag: number = 0;\r\n\r\n idlocalEntrega: number = 0;\r\n\r\n idlocalRetirada: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n compraStatus: string = '';\r\n\r\n empresaId: number = 0;\r\n\r\n fornecedorId: number = 0;\r\n\r\n fornecedor: string = '';\r\n\r\n faturaId: number = 0;\r\n\r\n nfeId: number = 0;\r\n\r\n solicitante: string = '';\r\n\r\n dadosAdicionais: string = '';\r\n\r\n dataCompra: Date = new Date();\r\n\r\n dataPrevista: Date = new Date();\r\n\r\n modFrete: number = 0;\r\n\r\n transportadoraId: number = 0;\r\n\r\n volumesTransportados: number = 0;\r\n\r\n especieVolumesTransportados: string = '';\r\n\r\n tipoEntrega: number = 0;\r\n\r\n pesoBrutoTransportado: number = 0;\r\n\r\n pesoLiquidoTransportado: number = 0;\r\n\r\n dataAprovacao: Date = new Date();\r\n\r\n aprovadorId: number = 0;\r\n\r\n usuarioAprovador: string = '';\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class CompraService {\r\n\r\n postVisualizaComprasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getTransportadoras(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/transportadoras', { observe: 'response' })\r\n }\r\n\r\n getCompra(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n\r\n getClientePorNome(nome: any): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n return this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/compra/visualizaclientepornome`,\r\n { observe: 'response', params }\r\n );\r\n }\r\n\r\n getFornecedorPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizafornecedor/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorNome(nome: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizafornecedorpornome/' + nome, { observe: 'response' })\r\n }\r\n\r\n postCompra(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putCompra(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/compra/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteCompra(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/compra/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getCompraItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compraitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiCompraItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compraitem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaCompraItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/compraitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteCompraItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/compraitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n\r\n const params = {\r\n idOrigem: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n tipoDestino: parametros.tipoDestino\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/compra/visualizadocumentopororigemdestino', { observe: 'response', params })\r\n }\r\n\r\n postMovimentarEstoque(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/movimentarestoques', item, { observe: 'response' })\r\n };\r\n\r\n postGeraFatura(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/gerafatura', item, { observe: 'response' })\r\n };\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/compra/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n getEstoqueByProduto(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compraitem/visualizaestoqueporproduto/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getDesvincularNFe(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/desvincularnfe/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getAprovadores(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizatodosaprovadores', { observe: 'response' })\r\n }\r\n\r\n postSolicitarAprovacao(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/solicitaraprovacao', item, { observe: 'response' })\r\n };\r\n\r\n postAprovar(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/aprovar', item, { observe: 'response' })\r\n };\r\n\r\n postDefinirComoRecebido(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/definircomorecebido', item, { observe: 'response' })\r\n };\r\n\r\n postDefinirComoemCriacao(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/definircomoemcriacao', item, { observe: 'response' })\r\n };\r\n\r\n postConfirmarCompra(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/confirmar', item, { observe: 'response' })\r\n };\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { observable, Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class IntegracaoService {\r\n\r\n getPorFiltro(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/integracao/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n get(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/integracao/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getTemIntegracaoAtivaBool(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/saguitechIntegracao/integracao-ativa', { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/integracao/inclui', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/integracao/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/integracao/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getEmpresas(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/integracao/empresas', { observe: 'response' })\r\n }\r\n\r\n getSaguitechIntegracoes(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/integracao/saguitechintegracoes', { observe: 'response' })\r\n }\r\n\r\n postSoc(socExportaDadosParametros){\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/integracao/socexportadados', socExportaDadosParametros, { observe: 'response' })\r\n\r\n }\r\n\r\n postSocExecutarAgora(integracaoId?){\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/integracao/socexecutaragora', integracaoId, { observe: 'response' })\r\n\r\n }\r\n\r\n verificaIntegracaoPorNumeroEnum(idEnumIntegracaoTipo: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/integracao/verifica-integracoes/' + idEnumIntegracaoTipo, { observe: 'response' })\r\n }\r\n\r\n verficaIntegracaoSeHaIntegrcaoSoc(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/integracao/verifica-integracoes-soc', { observe: 'response' })\r\n }\r\n\r\n dadosAcesso(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/Integracao/dados-autenticacao?' + itemId, { observe: 'response' })\r\n }\r\n\r\n geraChave(nome: string): Observable {\r\n return this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/integracao/gerar-chave`, { params: { nome }, responseType: 'text' as 'json' }\r\n );\r\n }\r\n geraCsrKey(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/Certificados/gera-certificado-csr', item, {observe: 'response'}\r\n );\r\n }\r\n\r\n geraCertificadoDinamicoItau(itemId: any): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/IntegracaoItauApi/retornaCertificadoDinamico/' +itemId, {observe: 'response'})\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { ContaCorrenteVendaParcela } from '../shared/conta-corrente-venda-parcela.model';\r\nimport { ContaCorrenteVendaParcelaService } from '../shared/conta-corrente-venda-parcela.service';\r\n\r\nexport interface DialogData {\r\n contaCorrenteVendaParcelaId: number;\r\n contaCorrenteVendaId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'conta-corrente-venda-parcela',\r\n templateUrl: 'conta-corrente-venda-parcela.component.html',\r\n})\r\n\r\nexport class ContaCorrenteVendaParcelaComponent {\r\n\r\n contaCorrenteVendaParcelaForm: FormGroup;\r\n maximizado: boolean;\r\n contaCorrenteVendaParcelaParcelas: any = [];\r\n cartao: any = {};\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IContaCorrenteVendaParcela: DialogData,\r\n private contaCorrenteVendaParcelaservice: ContaCorrenteVendaParcelaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contaCorrenteVendaParcelaForm = this._formBuilder.group(new ContaCorrenteVendaParcela());\r\n\r\n if (this.IContaCorrenteVendaParcela.contaCorrenteVendaParcelaId > 0) {\r\n\r\n this.buscarContaCorrenteVendaParcela(this.IContaCorrenteVendaParcela.contaCorrenteVendaParcelaId);\r\n\r\n } else {\r\n\r\n this.contaCorrenteVendaParcelaForm.get('.contaCorrenteVendaId').setValue(this.IContaCorrenteVendaParcela.contaCorrenteVendaId);\r\n\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarContaCorrenteVendaParcela(contaCorrenteVendaParcelaId: number) {\r\n\r\n this.contaCorrenteVendaParcelaservice.getPorId(contaCorrenteVendaParcelaId).subscribe(data => {\r\n\r\n this.contaCorrenteVendaParcelaForm.patchValue(data.body);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.contaCorrenteVendaParcelaForm.value.contaCorrenteVendaParcelaId == 0) {\r\n\r\n this.contaCorrenteVendaParcelaservice.post(this.contaCorrenteVendaParcelaForm.value).subscribe(data => {\r\n\r\n this.buscarContaCorrenteVendaParcela(data.body.contaCorrenteVendaParcelaId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.contaCorrenteVendaParcelaservice.put(this.contaCorrenteVendaParcelaForm.value, this.contaCorrenteVendaParcelaForm.value.contaCorrenteVendaParcelaId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarContaCorrenteVendaParcela(this.contaCorrenteVendaParcelaForm.value.contaCorrenteVendaParcelaId);\r\n\r\n });\r\n }\r\n };\r\n}\r\n","\r\n
    \r\n

    Parcela da Venda

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n 0 ? 'Sucesso': 'Processando'}}\">\r\n Status: {{contaCorrenteVendaParcelaForm.value.contaCorrenteFinanceiroId > 0 ? 'Pago': 'Previsto'}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Data do Vencimento\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Valor da Venda\r\n \r\n \r\n \r\n Valor da Taxa\r\n \r\n \r\n \r\n Valor Líquido\r\n \r\n \r\n \r\n Parcela\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    ","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { ContaCorrenteVenda } from '../shared/conta-corrente-venda.model';\r\nimport { ContaCorrenteVendaService } from '../shared/conta-corrente-venda.service';\r\nimport { ContaCorrenteVendaParcelaComponent } from '../conta-corrente-venda-parcela/conta-corrente-venda-parcela.component';\r\nimport { ContaCorrenteVendaParcelaService } from '../shared/conta-corrente-venda-parcela.service';\r\n\r\nexport interface DialogData {\r\n contaCorrenteVendaId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'conta-corrente-venda',\r\n templateUrl: 'conta-corrente-venda.component.html',\r\n})\r\n\r\nexport class ContaCorrenteVendaComponent {\r\n\r\n contaCorrenteVendaForm: FormGroup;\r\n maximizado: boolean;\r\n contaCorrenteVendaParcelas: any = [];\r\n cartao: any = {};\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IContaCorrenteVenda: DialogData,\r\n private contaCorrenteVendaService: ContaCorrenteVendaService,\r\n private contaCorrenteVendaParcelaservice: ContaCorrenteVendaParcelaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contaCorrenteVendaForm = this._formBuilder.group(new ContaCorrenteVenda());\r\n\r\n if (this.IContaCorrenteVenda.contaCorrenteVendaId > 0) {\r\n\r\n this.buscarContaCorrenteVenda(this.IContaCorrenteVenda.contaCorrenteVendaId);\r\n\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarContaCorrenteVenda(contaCorrenteVendaId: number) {\r\n\r\n this.contaCorrenteVendaService.getPorId(contaCorrenteVendaId).subscribe(data => {\r\n\r\n this.contaCorrenteVendaForm.patchValue(data.body);\r\n\r\n this.contaCorrenteVendaParcelas = data.body.contaCorrenteVendaParcelas;\r\n\r\n this.cartao = data.body.contaCorrenteTerminalCartao.cartao;\r\n\r\n this.contaCorrenteVendaParcelas.forEach(parcela => {\r\n parcela.numeroParcela = parcela.sequencia + \"/\" + data.body.numeroParcelas;\r\n });\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.contaCorrenteVendaForm.value.contaCorrenteVendaId == 0) {\r\n\r\n this.contaCorrenteVendaService.post(this.contaCorrenteVendaForm.value).subscribe(data => {\r\n\r\n this.buscarContaCorrenteVenda(data.body.contaCorrenteVendaId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.contaCorrenteVendaService.put(this.contaCorrenteVendaForm.value, this.contaCorrenteVendaForm.value.contaCorrenteVendaId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarContaCorrenteVenda(this.contaCorrenteVendaForm.value.contaCorrenteVendaId);\r\n\r\n });\r\n }\r\n };\r\n\r\n contaCorrenteVendaParcelaModal(contaCorrenteVendaParcelaId: number) {\r\n\r\n const dialogRef = this.dialog.open(ContaCorrenteVendaParcelaComponent, {\r\n data: {\r\n contaCorrenteVendaParcelaId: contaCorrenteVendaParcelaId,\r\n contaCorrenteVendaId: this.IContaCorrenteVenda.contaCorrenteVendaId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(resultado => {\r\n\r\n this.buscarContaCorrenteVenda(this.IContaCorrenteVenda.contaCorrenteVendaId);\r\n\r\n });\r\n }\r\n\r\n excluirContaCorrenteVendaParcela(cancelarId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir essa parcela?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.contaCorrenteVendaParcelaservice.delete(cancelarId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro Cancelado com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarContaCorrenteVenda(this.IContaCorrenteVenda.contaCorrenteVendaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n}\r\n","\r\n
    \r\n

    Venda de Cartão

    \r\n \r\n
    \r\n \r\n fullscreen_exit\r\n \r\n \r\n fullscreen\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Descrição\r\n Descrição\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Código de Autenticação\r\n \r\n \r\n \r\n Número do Comprovante de Venda\r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Data de Criação\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Data da Venda\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Data do Primeiro Vencimento\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Valor da Venda\r\n \r\n \r\n \r\n Valor da Taxa\r\n \r\n \r\n \r\n Valor Líquido\r\n \r\n \r\n \r\n Parcelas\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Parcelas\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    AçõesParcelasData de VencimentoValor da ParcelaValor da TaxaValor Líquido
    {{contaCorrenteVendaParcela.numeroParcela}}{{contaCorrenteVendaParcela.dataVencimento | date:'dd/MM/yyyy'}}{{contaCorrenteVendaParcela.valorVenda | currency}}{{contaCorrenteVendaParcela.valorTaxa | currency}}{{contaCorrenteVendaParcela.valorLiquido | currency}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContaCorrenteTerminalService {\r\n\r\n getPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrenteterminal/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getPorcontaCorrenteId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrenteterminal/visualizaporcontacorrente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getPorcaixaId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrenteterminal/visualizaporcaixa/' + itemId, { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacorrenteterminal/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contacorrenteterminal/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contacorrenteterminal/exclui/' + itemId, { observe: 'response' })\r\n }\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class ContaCorrenteVendaParcela {\r\n contaCorrenteVendaParcelaId: number = 0;\r\n contaCorrenteVendaId: number = 0;\r\n dataVencimento: string = '';\r\n valorVenda: number = 0;\r\n valorTaxa: number = 0;\r\n valorLiquido: number = 0;\r\n contaCorrenteFinanceiroId: number = 0;\r\n saguiClienteId: number = 0;\r\n sequencia: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContaCorrenteVendaParcelaService {\r\n\r\n postVisualizarPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/visualizatodasporfiltro', item, { observe: 'response' })\r\n }\r\n\r\n getPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getPorcontaCorrenteId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/visualizaporcontacorrente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getPorcontaCorrenteFinanceiroId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/visualizaporcontacorrentefinanceiro/' + itemId, { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevendaparcela/exclui/' + itemId, { observe: 'response' })\r\n }\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class ContaCorrenteVenda {\r\n contaCorrenteVendaId: number = 0;\r\n descricao: string = '';\r\n contaCorrenteVendaStatus: number = 0;\r\n dataCriacao: string = '';\r\n dataDaVenda: string = '';\r\n dataPrimeiroVencimento: string = '';\r\n contaParcelaTipoPagamento: number = 0;\r\n valorVenda: number = 0;\r\n valorTaxa: number = 0;\r\n valorLiquido: number = 0;\r\n numeroParcelas: number = 0;\r\n numeroDoComprovanteDeVenda: string = '';\r\n codigoAutenticacao: string = '';\r\n contaCorrenteTerminalCartaoId: number = 0;\r\n contaCorrenteVendaParcelas: any = [];\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContaCorrenteVendaService {\r\n\r\n postVisualizarPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevenda/visualizatodasporfiltro', item, { observe: 'response' })\r\n }\r\n\r\n getPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevenda/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getPorcontaCorrenteId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevenda/visualizaporcontacorrente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevenda/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevenda/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n delete(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contacorrentevenda/exclui/' + itemId, { observe: 'response' })\r\n }\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContaContabilService {\r\n\r\n ContaContabilFiltro(item: any): Observable> {\r\n\r\n let filtro: any = {};\r\n filtro.descricao = item; \r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/filtros/' +item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaContaContabilPorFiltro(item: any): Observable> {\r\n\r\n let filtro: any = {};\r\n filtro.descricao = item.descricao;\r\n filtro.empresaIds = item.empresaIds;\r\n \r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/visualizaporfiltro/', filtro, { observe: 'response' })\r\n }\r\n\r\n postVisualizaPlanoContabil(item: any, skipLoader = 'false'): Observable> {\r\n\r\n const headers = new HttpHeaders().set('X-Skip-Loader', skipLoader); \r\n \r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/visualizaporfiltro/', item, {headers, observe: 'response' } )\r\n }\r\n\r\n getContaContabil(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postContaContabil(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putContaContabil(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteContaContabil(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contacontabil/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contaContabil/empresas/', { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class OperacaoContabilService {\r\n\r\n getOperacoes(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/operacao/visualizatodas/', { observe: 'response' })\r\n }\r\n\r\n getOperacoesContabeis(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/visualizatodas/', { observe: 'response' })\r\n }\r\n\r\n getOperacaoContabil(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postContasContabeisPorFiltro(item: any): Observable> {\r\n\r\n let filtro: any = {};\r\n filtro.id = item.descricao;\r\n filtro.empresaIds = item.empresaIds;\r\n \r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/visualizacontacontabilpornomeeempresas/', filtro, { observe: 'response' })\r\n }\r\n\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/empresas/', { observe: 'response' })\r\n }\r\n\r\n postOperacaoContabil(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putOperacaoContabil(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteOperacaoContabil(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getOperacoesContabeisPaginadas(page: number, pageSize: number): Observable<{ totalItems: number, operacoes: any[] }> {\r\n const params = {\r\n page: page.toString(),\r\n pageSize: pageSize.toString()\r\n };\r\n return this.http.get<{ totalItems: number, operacoes: any[] }>(\r\n environment.webApiSaguiControlUrl + '/api/operacaocontabil/visualiza/paginacao', { params });\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { ContatoService } from '../shared/contato.service';\r\nimport { UfService } from '../../uf/shared/uf.service';\r\nimport { PaisService } from '../../pais/shared/pais.service';\r\nimport { MunicipioService } from '../../municipio/shared/municipio.service';\r\nimport { CepService } from '../../cep/shared/cep.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { Contato } from '../shared/contato.model';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\n\r\nexport interface DialogData {\r\n contatoId: number;\r\n idOrigem: number;\r\n contatoTipo: number;\r\n saguiClienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'contato-cadastro',\r\n templateUrl: 'contato-cadastro.component.html',\r\n})\r\n\r\nexport class ContatoCadastroComponent {\r\n\r\n contatoCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n\r\n ufs: any = [];\r\n paises: any = [];\r\n municipios: any = [];\r\n cepPesquisado: any = {};\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IContato: DialogData,\r\n private contatoService: ContatoService, \r\n private municipioService: MunicipioService,\r\n private ufService: UfService,\r\n private paisService: PaisService,\r\n private cepService: CepService,\r\n private utilsService: UtilsService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contatoCadastroForm = this._formBuilder.group(new Contato());\r\n this.contatoCadastroForm.get('email').setValidators(this.utilsService.emailValidator());\r\n\r\n if (this.IContato.contatoId > 0) {\r\n\r\n this.buscarContato(this.IContato.contatoId);\r\n\r\n } else {\r\n\r\n this.contatoCadastroForm.get('idOrigem').setValue(this.IContato.idOrigem);\r\n this.contatoCadastroForm.get('contatoTipo').setValue(this.IContato.contatoTipo);\r\n this.contatoCadastroForm.get('saguiClienteId').setValue(this.IContato.saguiClienteId);\r\n }\r\n\r\n\r\n this.buscarPaises();\r\n\r\n this.buscarUFs();\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.contatoCadastroForm\r\n .get('ufId')\r\n .valueChanges\r\n .subscribe(data => this.buscarMunicipioPorUf(data));\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarUFs() {\r\n\r\n this.ufService.getUFs().subscribe(data => {\r\n\r\n this.ufs = data.body;\r\n\r\n\r\n });\r\n }\r\n\r\n buscarPaises() {\r\n\r\n this.paisService.getPaises().subscribe(data => {\r\n\r\n this.paises = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarMunicipioPorUf(ufId: number) {\r\n\r\n if (ufId > 0) {\r\n\r\n this.municipioService.getMunicipioPorUf(ufId).subscribe(data => {\r\n\r\n let municipiosTemp = data.body;\r\n\r\n if (this.cepPesquisado.ibge > 0) {\r\n let municipioSelecionado = municipiosTemp.find(municipioTemp => municipioTemp.codIBGE == this.cepPesquisado.ibge);\r\n this.contatoCadastroForm.get('municipioId').setValue(municipioSelecionado.municipioId);\r\n }\r\n \r\n this.municipios = data.body; \r\n\r\n });\r\n }\r\n }\r\n\r\n buscarContato(contatoId: number) {\r\n\r\n this.contatoService.getContato(contatoId).subscribe(data => {\r\n\r\n this.inserirDadosContato(data.body);\r\n\r\n });\r\n }\r\n\r\n inserirDadosContato(data: any) {\r\n\r\n this.contatoCadastroForm.patchValue(data);\r\n\r\n }\r\n\r\n salvar(): void {\r\n\r\n let contatoForm = this.contatoCadastroForm;\r\n\r\n if (contatoForm.value.contatoId == 0) {\r\n\r\n this.contatoService.postContato(contatoForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.contatoService.putContato(contatoForm.value, contatoForm.value.contatoId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarContato(contatoForm.value.contatoId);\r\n\r\n });\r\n }\r\n };\r\n \r\n consultarCep(valor) {\r\n\r\n if (valor != undefined) {\r\n\r\n this.cepService.getDadosEndereco(valor).subscribe(data => {\r\n\r\n this.contatoCadastroForm.get('paisId').setValue(30);\r\n\r\n this.contatoCadastroForm.get('logradouro').setValue(data.body.logradouro);\r\n this.contatoCadastroForm.get('bairro').setValue(data.body.bairro);\r\n let uf = this.ufs.find(ufTemp => ufTemp.siglaUF == data.body.uf);\r\n this.contatoCadastroForm.get('ufId').setValue(uf.ufId);\r\n this.cepPesquisado = data.body;\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: \"Erro ao consultar CEP, preencha o endereço manualmente\"\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n definieUf(uf: any) {\r\n\r\n this.contatoCadastroForm.get('ufId').setValue(uf.ufId);\r\n\r\n }\r\n\r\n tratarCampos(){\r\n\r\n let cnpj = this.utilsService.removeCaracteresEspeciais(this.contatoCadastroForm.get('cnpj').value);\r\n cnpj = this.utilsService.removerEspacosComecoFim(cnpj);\r\n this.contatoCadastroForm.get('cnpj').setValue(cnpj);\r\n\r\n let cpf = this.utilsService.removeCaracteresEspeciais(this.contatoCadastroForm.get('cpf').value);\r\n cpf = this.utilsService.removerEspacosComecoFim(cpf);\r\n this.contatoCadastroForm.get('cpf').setValue(cpf);\r\n\r\n }\r\n}\r\n","\r\n
    \r\n

    Contato {{contatoCadastroForm.value.contatoId}}

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    0\">\r\n Ativo?\r\n
    \r\n
    \r\n
    \r\n \r\n Nome\r\n \r\n \r\n \r\n Sobrenome\r\n \r\n \r\n \r\n Data de Nascimento\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Cargo\r\n \r\n \r\n \r\n Departamento\r\n \r\n \r\n \r\n Responsável Por\r\n \r\n Exemplo: Vendas, Compras, Contas a Receber\r\n \r\n
    \r\n
    \r\n \r\n WhatApp\r\n \r\n \r\n \r\n \r\n Celular\r\n \r\n \r\n \r\n Telefone Fixo\r\n \r\n \r\n \r\n E-mail\r\n \r\n \r\n
    \r\n
    \r\n \r\n CEP\r\n \r\n \r\n Logradouro\r\n\r\n \r\n \r\n Número\r\n\r\n \r\n \r\n Complemento\r\n\r\n \r\n \r\n Bairro\r\n\r\n \r\n
    \r\n
    \r\n \r\n País\r\n \r\n \r\n {{pais.descPais}}\r\n \r\n \r\n \r\n \r\n UF\r\n \r\n \r\n {{uf.descUF}}\r\n \r\n \r\n \r\n \r\n Município\r\n \r\n \r\n {{municipio?.descricao}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    ","export class Contato {\r\n\r\n contatoId: number = 0;\r\n\r\n ativo: boolean = true;\r\n\r\n nome: string = '';\r\n\r\n sobreNome: string = '';\r\n\r\n dataNascimento: Date = new Date();\r\n\r\n cargo: string = '';\r\n\r\n departamento: string = '';\r\n\r\n responsavelPor: string = '';\r\n\r\n whatsApp: string = '';\r\n\r\n celular: string = '';\r\n\r\n telefone: string = '';\r\n\r\n logradouro: string = '';\r\n\r\n numero: string = '';\r\n\r\n complemento: string = '';\r\n\r\n bairro: string = '';\r\n\r\n cep: string = ''; \r\n\r\n email: string = '';\r\n\r\n paisId: number = 0;\r\n\r\n ufId: number = 0 ;\r\n\r\n municipioId: number = 0;\r\n\r\n idOrigem: number = 0;\r\n\r\n contatoTipo: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContatoService {\r\n\r\n getPorFiltro(parametros: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contato/visualizarporfiltro', { params: parametros, observe: 'response' })\r\n }\r\n\r\n getContato(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contato/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postContato(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contato/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putContato(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contato/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteContato(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contato/exclui/' + itemId, { observe: 'response' })\r\n } \r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n mensagem: string;\r\n titulo: string;\r\n}\r\n\r\n@Component({\r\n selector: 'confirm-dialog',\r\n templateUrl: 'confirm-dialog.component.html',\r\n styleUrls: ['confirm-dialog.component.css'],\r\n})\r\nexport class ConfirmDialogComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\r\n }\r\n\r\n ngOnInit(){\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('80%');\r\n }\r\n else {\r\n this.dialogRef.updateSize('30%');\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onYesClick(): void{\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","

    {{data.titulo}}

    \r\n
    \r\n

    {{data.mensagem}}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    ","import { ChangeDetectorRef, Component, ElementRef, Inject, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n valorTotal: number;\r\n descontosAtual: number;\r\n}\r\n\r\n@Component({\r\n selector: 'desconto-dialog',\r\n templateUrl: 'desconto-dialog.component.html',\r\n styleUrls: ['./desconto-dialog.component.css'],\r\n})\r\nexport class DescontoDialogComponent {\r\n\r\n valorTotalAnterior: number = this.data.valorTotal;\r\n valorTotalNovo: number = this.data.valorTotal;\r\n Desconto: FormGroup;\r\n maximizado: boolean = false;\r\n @ViewChild('descontoReaisInput', { static: true }) descontoReaisInput!: ElementRef;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private cdr: ChangeDetectorRef, private renderer: Renderer2,private el: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.Desconto = new FormGroup({\r\n DescontoEmPorcentagem: new FormControl('0', [Validators.required]),\r\n DescontoEmReais: new FormControl('0', [Validators.required]),\r\n });\r\n\r\n this.Desconto.get('DescontoEmPorcentagem')?.valueChanges.subscribe(value => this.changePorcentagem());\r\n this.Desconto.get('DescontoEmReais')?.valueChanges.subscribe(value => this.changeEmReal());\r\n\r\n this.data.descontosAtual? this.Desconto.get('DescontoEmReais').setValue(this.data.descontosAtual):'';\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onYesClick(): void {\r\n const result = {\r\n descontoEmPorcentagem: this.Desconto.get('DescontoEmPorcentagem')?.value,\r\n descontoEmReais: this.Desconto.get('DescontoEmReais')?.value,\r\n valorTotalNovo: this.valorTotalNovo\r\n };\r\n this.dialogRef.close(result);\r\n }\r\n\r\n changePorcentagem() {\r\n const descontoEmPorcentagem = this.Desconto.get('DescontoEmPorcentagem')?.value;\r\n if (descontoEmPorcentagem !== null && descontoEmPorcentagem !== undefined) {\r\n const descontoEmReais = (this.valorTotalAnterior * descontoEmPorcentagem) / 100;\r\n this.Desconto.get('DescontoEmReais')?.setValue(descontoEmReais.toFixed(2), { emitEvent: false });\r\n this.valorTotalNovo = this.valorTotalAnterior - descontoEmReais;\r\n }\r\n }\r\n\r\n changeEmReal() {\r\n const descontoEmReais = this.Desconto.get('DescontoEmReais')?.value;\r\n if (descontoEmReais !== null && descontoEmReais !== undefined) {\r\n const descontoEmPorcentagem = (descontoEmReais / this.valorTotalAnterior) * 100;\r\n this.Desconto.get('DescontoEmPorcentagem')?.setValue(descontoEmPorcentagem.toFixed(2), { emitEvent: false });\r\n this.valorTotalNovo = this.valorTotalAnterior - descontoEmReais;\r\n }\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n //setar dinamicamente esse css .resolver .mat-form-field-outline-start {width: 25.45px !important; }\r\n const elements = this.el.nativeElement.querySelectorAll('.resolver .mat-form-field-outline-start');\r\n elements.forEach((element: any) => {\r\n this.renderer.setStyle(element, 'width', '25.45px');\r\n this.renderer.setStyle(element, 'important', 'true'); // Adiciona !important\r\n });\r\n }\r\n}\r\n","\r\n
    \r\n

    Descontos Adicionais

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Desconto em Porcentagem\r\n \r\n \r\n \r\n %\r\n \r\n\r\n
    \r\n\r\n \r\n Desconto em Reais\r\n \r\n R$ \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n {{this.valorTotalNovo | currency:'BRL'}}\r\n

    Novo Valor Total Líquido

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Location } from '@angular/common';\r\n\r\nexport interface DialogData {\r\n erro: HttpErrorResponse;\r\n mensagem: string;\r\n titulo: string;\r\n}\r\n\r\n@Component({\r\n selector: 'info-dialog',\r\n templateUrl: 'info-dialog.component.html',\r\n})\r\nexport class InfoDialogComponent {\r\n\r\n constructor(\r\n private location: Location,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n this.data.titulo = this.data.titulo +\" ⚠️\"\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('80%');\r\n }\r\n else {\r\n this.dialogRef.updateSize('20%');\r\n }\r\n\r\n if (this.data.erro != null) {\r\n\r\n if (this.data.erro.status == 401) {\r\n\r\n this.data.mensagem = \"Sessão Expirada. Acesse novamente o sistema\";\r\n\r\n this.location.go(\"login\");\r\n }\r\n else {\r\n\r\n this.data.mensagem = \"Erro ao processar requisição\";\r\n\r\n if (this.data.erro.error != null) {\r\n if (this.data.erro.error.message != null) {\r\n this.data.mensagem = this.data.erro.error.message;\r\n } else {\r\n\r\n if (this.data.erro.error.errors != null) {\r\n const mensagens = Object.values(this.data.erro.error.errors).join('\\n');\r\n this.data.mensagem = mensagens.replace(/\\[(.*)\\]/g, '$1').replace(/\"/g, '');\r\n }\r\n else {\r\n this.data.mensagem = this.data.erro.error;\r\n }\r\n }\r\n\r\n if (this.data.erro.error.ExceptionMessage != undefined && this.data.erro.error.ExceptionMessage != null) {\r\n this.data.mensagem = this.data.erro.error.ExceptionMessage;\r\n }\r\n\r\n }\r\n else {\r\n\r\n if (this.data.erro.message != undefined) {\r\n\r\n this.data.mensagem = this.data.erro.message;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onOkClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

    {{data.titulo}}

    \r\n
    \r\n

    {{data.mensagem}}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n","import { Directive, Input, OnDestroy } from '@angular/core';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\n\r\n@Directive({\r\n selector: 'input[matAutocomplete]',\r\n})\r\nexport class AutocompleteScrollDirective implements OnDestroy {\r\n\r\n public constructor(\r\n private readonly matAutocompleteTrigger: MatAutocompleteTrigger,\r\n ) {\r\n window.addEventListener('scroll', this.scrollEvent, true);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n window.removeEventListener('scroll', this.scrollEvent, true);\r\n }\r\n\r\n private scrollEvent = (): void => {\r\n if (this.matAutocompleteTrigger == null) {\r\n return;\r\n }\r\n if (this.matAutocompleteTrigger.panelOpen) {\r\n this.matAutocompleteTrigger.updatePosition();\r\n }\r\n };\r\n}\r\n","import { Directive, ElementRef, OnInit, Renderer2, Optional } from '@angular/core';\r\nimport { AbstractControl, NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appRequiredField]'\r\n})\r\nexport class RequiredFieldDirective implements OnInit {\r\n private isTouched = false;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n @Optional() private control: NgControl,\r\n private renderer: Renderer2\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (!this.control) {\r\n console.error('NgControl not found for', this.el.nativeElement);\r\n return;\r\n }\r\n\r\n const control = this.control.control;\r\n if (control && control.validator) {\r\n this.control.statusChanges?.subscribe(() => this.updateErrorMessage());\r\n this.renderer.listen(this.el.nativeElement, 'focus', () => this.onFocus());\r\n this.renderer.listen(this.el.nativeElement, 'blur', () => this.onBlur());\r\n\r\n const formElement = this.el.nativeElement.closest('form');\r\n if (formElement) {\r\n this.renderer.listen(formElement, 'reset', () => this.onFormReset());\r\n }\r\n\r\n // Listen to value changes\r\n control.valueChanges?.subscribe(() => {\r\n this.isTouched = true; // Mark as touched when value changes\r\n control.markAsTouched(); // Mark control as touched\r\n control.markAsDirty(); \r\n this.updateErrorMessage();\r\n });\r\n\r\n this.updateErrorMessage();\r\n }\r\n }\r\n\r\n private onFocus() {\r\n this.isTouched = true;\r\n }\r\n\r\n private onBlur() {\r\n this.updateErrorMessage();\r\n }\r\n\r\n private onFormReset() {\r\n this.isTouched = false;\r\n this.updateErrorMessage();\r\n }\r\n\r\n private updateErrorMessage() {\r\n const control = this.control.control;\r\n\r\n if (!control) return;\r\n\r\n const matFormField = this.el.nativeElement.closest('mat-form-field');\r\n if (matFormField) {\r\n const formFieldControl = matFormField.querySelector('.mat-form-field-subscript-wrapper');\r\n\r\n if (formFieldControl) {\r\n // Remove all existing error elements\r\n const existingErrors = formFieldControl.querySelectorAll('mat-error');\r\n existingErrors.forEach(errorElement => {\r\n this.renderer.removeChild(formFieldControl, errorElement);\r\n });\r\n\r\n // Add the error message if the control is invalid and has been touched\r\n if (this.isTouched && control.invalid) {\r\n const errorElement = this.renderer.createElement('mat-error');\r\n let errorMessage = 'Campo inválido';\r\n\r\n if (control.errors?.['required']) {\r\n errorMessage = 'Campo Obrigatório';\r\n } else if (control.errors?.['email']) {\r\n errorMessage = 'Email inválido';\r\n } else if (control.errors?.['minlength']) {\r\n errorMessage = `Mínimo de ${control.errors['minlength'].requiredLength} caracteres`;\r\n } else if (control.errors?.['maxlength']) {\r\n errorMessage = `Máximo de ${control.errors['maxlength'].requiredLength} caracteres`;\r\n } else if (control.errors?.['invalidNumber']) {\r\n errorMessage = `Valor deve ser superior a 0`;\r\n } else {\r\n errorMessage = 'Campo inválido';\r\n }\r\n\r\n const text = this.renderer.createText(errorMessage);\r\n this.renderer.appendChild(errorElement, text);\r\n\r\n // Add Angular Material class manually if necessary\r\n this.renderer.addClass(errorElement, 'mat-error');\r\n this.renderer.setAttribute(errorElement, 'aria-atomic', 'true');\r\n this.renderer.setAttribute(errorElement, 'aria-live', 'polite');\r\n this.renderer.appendChild(formFieldControl, errorElement);\r\n }\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\n\r\n\r\n@Injectable()\r\nexport class exportExcelService {\r\n\r\n SalvarArquivo(divName, titulo) {\r\n\r\n var elt = document.getElementById(divName);\r\n var wb = XLSX.utils.table_to_book(elt, { cellDates: true, raw: true });\r\n XLSX.writeFile(wb, titulo + '.xlsx');\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ExportaCsvService {\r\n\r\n exporta(data: any, filename: string) {\r\n let link = document.createElement(\"a\");\r\n link.setAttribute(\"target\", \"_blank\");\r\n\r\n if (Blob !== undefined) {\r\n // Convertendo os dados em um arquivo Blob\r\n const blob = new Blob([data], { type: \"text/csv;charset=utf-8\" });\r\n const url = URL.createObjectURL(blob);\r\n\r\n link.setAttribute(\"href\", url);\r\n } else {\r\n // Caso Blob não seja suportado, criar um link de dados\r\n const csvContent = 'data:text/csv;charset=utf-8,' + encodeURIComponent(data);\r\n link.setAttribute(\"href\", csvContent);\r\n }\r\n\r\n // Configurando o nome do arquivo para download\r\n link.setAttribute(\"download\", filename);\r\n\r\n // Adicionando o link ao corpo do documento\r\n document.body.appendChild(link);\r\n\r\n // Simulando o clique no link para iniciar o download\r\n link.click();\r\n\r\n // Removendo o link do corpo do documento\r\n document.body.removeChild(link);\r\n}\r\n\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ExportaXmlService {\r\n\r\n exporta(data, filename) {\r\n\r\n let link = document.createElement(\"a\");\r\n\r\n link.setAttribute(\"target\", \"_blank\");\r\n\r\n if (Blob !== undefined) {\r\n\r\n var blob = new Blob([data], { type: \"text/xml\" });\r\n\r\n link.setAttribute(\"href\", URL.createObjectURL(blob));\r\n\r\n } else {\r\n\r\n link.setAttribute(\"href\", \"data:text/xml,\" + encodeURIComponent(data));\r\n }\r\n\r\n link.setAttribute(\"download\", filename);\r\n\r\n document.body.appendChild(link);\r\n\r\n link.click();\r\n\r\n document.body.removeChild(link);\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as JSZip from 'jszip';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Injectable()\r\nexport class ExportaZipService {\r\n\r\n exporta(data, filename) {\r\n\r\n let zip = new JSZip();\r\n zip.file(filename, data, { base64: true });\r\n\r\n zip.generateAsync({ type: \"blob\" })\r\n .then(function (content) {\r\n FileSaver.saveAs(content, filename);\r\n });\r\n\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class HtmlPrinterService {\r\n\r\n printDiv(divName: string, titulo: string, orientacaoPaisagem = false): void {\r\n let printContents = document.getElementById(divName).innerHTML;\r\n this.printHtmlString(printContents, titulo, orientacaoPaisagem);\r\n }\r\n\r\n imprimirConteudoTinyMCE(templateContent: string) {\r\n // Abre uma nova janela para impressão\r\n const janelaImpressao = window.open('', '', 'height=600,width=800');\r\n \r\n janelaImpressao!.document.write(templateContent); // Adiciona o conteúdo do TinyMCE\r\n // Aguarda o carregamento do conteúdo antes de imprimir\r\n janelaImpressao!.document.close();\r\n \r\n // Função para verificar quando todas as imagens foram carregadas\r\n const imagens = janelaImpressao!.document.images;\r\n let imagensCarregadas = 0;\r\n \r\n if (imagens.length === 0) {\r\n // Se não houver imagens, podemos chamar o print diretamente\r\n chamarPrint();\r\n } else {\r\n // Para cada imagem, adicionar um listener de carregamento\r\n for (let i = 0; i < imagens.length; i++) {\r\n imagens[i].onload = () => {\r\n imagensCarregadas++;\r\n // Quando todas as imagens tiverem sido carregadas, chamar o print\r\n if (imagensCarregadas === imagens.length) {\r\n chamarPrint();\r\n }\r\n };\r\n \r\n // Se houver erro no carregamento de alguma imagem, ainda chamamos o print\r\n imagens[i].onerror = () => {\r\n imagensCarregadas++;\r\n if (imagensCarregadas === imagens.length) {\r\n chamarPrint();\r\n }\r\n };\r\n }\r\n }\r\n \r\n // Função que chama a impressão\r\n function chamarPrint() {\r\n janelaImpressao!.focus();\r\n janelaImpressao.onload = () => {\r\n setTimeout(() => {\r\n janelaImpressao.print();\r\n janelaImpressao.onafterprint = () => janelaImpressao.close();\r\n }, 1000); \r\n };\r\n }\r\n }\r\n \r\n\r\n\r\n\r\n printHtmlString(printContents: string, titulo: string, orientacaoPaisagem = false) {\r\n var popupWin = window.open('', '_blank', 'width=' + screen.width + ',height=' + screen.height);\r\n\r\n let texto = '' + titulo + '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n //texto += '';\r\n //texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n texto += '';\r\n\r\n if (titulo == 'Diário') {\r\n texto += '';\r\n }\r\n\r\n if (orientacaoPaisagem) {\r\n\r\n texto += '';\r\n\r\n texto += '';\r\n\r\n } else {\r\n\r\n texto += '';\r\n\r\n texto += '';\r\n\r\n }\r\n\r\n texto += '' + printContents + '';\r\n\r\n popupWin.document.open();\r\n popupWin.document.write(texto);\r\n popupWin.document.close();\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { ErrorHandler, Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { InfoDialogComponent } from '../dialogs/info-dialog/info-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandlerService implements ErrorHandler {\r\n\r\n constructor(public dialog: MatDialog) {\r\n }\r\n\r\n handleError(error: Error | HttpErrorResponse) {\r\n\r\n let deveValidar = true;\r\n\r\n\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n\r\n let urls: any = [\r\n 'conta/contasporperiodo',\r\n 'empresa/visualizatodas',\r\n 'usuario/verificaacessoaomodulo',\r\n 'venda/vendasporperiodo',\r\n 'compra/comprasporperiodo',\r\n 'contaparcela/visualizaparcelasporfiltro',\r\n 'conta/contasporperiodo',\r\n 'caixamovimento/visualizasaldoporfiltro',\r\n 'estoque/visualizaminimo',\r\n 'caixa/visualizaporfiltro',\r\n 'contacontabil/visualizaporfiltro'];\r\n\r\n urls.forEach((url: string) => {\r\n\r\n if (error.url.indexOf(url) > 0) {\r\n deveValidar = false;\r\n }\r\n\r\n });\r\n\r\n if (deveValidar) {\r\n console.log(error);\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n console.log(error);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LoaderService } from '../loader/loader.service';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { throwError } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n\r\n constructor(private loaderService: LoaderService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n // Verificar se o cabeçalho personalizado está presente\r\n const skipLoader = request.headers.has('X-Skip-Loader');\r\n\r\n if (!skipLoader) {\r\n this.loaderService.show();\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (!skipLoader) {\r\n this.loaderService.hide();\r\n }\r\n }),\r\n );\r\n\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\nimport { Subject } from 'rxjs';\r\nimport { LoaderService } from './loader.service';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: 'loader.component.html',\r\n styleUrls: ['loader.component.css']\r\n})\r\nexport class LoaderComponent {\r\n color = 'warn';\r\n mode: ProgressSpinnerMode = 'indeterminate';\r\n value = 50;\r\n isLoading: Subject = this.loaderService.isLoading;\r\n constructor(private loaderService: LoaderService) { }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\n\r\nexport class LoaderService {\r\n\r\n isLoading = new Subject();\r\n \r\n show() {\r\n this.isLoading.next(true);\r\n }\r\n hide() {\r\n this.isLoading.next(false);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport class UtilsService {\r\n\r\n removeCaracteresEspeciais(texto: string) {\r\n\r\n if (texto != undefined && texto != null && texto != '') {\r\n return texto.replace(/[^\\w\\s]/gi, '');\r\n }\r\n \r\n }\r\n\r\n removerEspacosComecoFim(texto: string) {\r\n\r\n if (texto != undefined && texto != null && texto != '') {\r\n return texto.trim();\r\n }\r\n \r\n }\r\n\r\n cpfValido(strCPF: string) {\r\n if (strCPF != undefined) {\r\n // Verificar se o CPF está no formato correto com pontos e traços\r\n const cpfPattern = /^\\d{3}\\.\\d{3}\\.\\d{3}-\\d{2}$/;\r\n const cpfNumericPattern = /^\\d{11}$/;\r\n \r\n if (!cpfPattern.test(strCPF) && !cpfNumericPattern.test(strCPF)) {\r\n return false;\r\n }\r\n \r\n // Remover caracteres especiais\r\n strCPF = strCPF.replace(/[^\\d]/g, '');\r\n \r\n let Soma = 0;\r\n let Resto = 0;\r\n \r\n if (strCPF == \"00000000000\") return false;\r\n \r\n for (let i = 1; i <= 9; i++) Soma = Soma + parseInt(strCPF.substring(i - 1, i)) * (11 - i);\r\n Resto = (Soma * 10) % 11;\r\n \r\n if ((Resto == 10) || (Resto == 11)) Resto = 0;\r\n if (Resto != parseInt(strCPF.substring(9, 10))) return false;\r\n \r\n Soma = 0;\r\n for (let i = 1; i <= 10; i++) Soma = Soma + parseInt(strCPF.substring(i - 1, i)) * (12 - i);\r\n Resto = (Soma * 10) % 11;\r\n \r\n if ((Resto == 10) || (Resto == 11)) Resto = 0;\r\n if (Resto != parseInt(strCPF.substring(10, 11))) return false;\r\n return true;\r\n }\r\n }\r\n\r\n formatarCNPJ(cnpj: string | number): string {\r\n // Converter para string se for número\r\n let cnpjStr = cnpj.toString();\r\n \r\n // Remover caracteres não numéricos\r\n cnpjStr = cnpjStr.replace(/[^\\d]/g, '');\r\n \r\n // Verificar se o CNPJ tem 14 dígitos\r\n if (cnpjStr.length !== 14) {\r\n return cnpjStr;\r\n }\r\n \r\n // Formatar o CNPJ\r\n return cnpjStr.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$/, '$1.$2.$3/$4-$5');\r\n }\r\n\r\n\r\n // Função para validar Email\r\n validarEmail(email: string): boolean {\r\n const re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n return re.test(String(email).toLowerCase()) && !email.includes(',');\r\n}\r\n\r\n minArrayLengthValidator(minLength: number): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (control && control.value && Array.isArray(control.value)) {\r\n return control.value.length >= minLength ? null : { minArrayLength: true };\r\n }\r\n return { minArrayLength: true };\r\n };\r\n }\r\n\r\n\r\n // Função de validação de Email\r\n emailValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const valid = this.validarEmail(control.value);\r\n return valid ? null : { emailInvalid: true };\r\n };\r\n }\r\n \r\n\r\n // Função de validação de CPF\r\n cpfValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const valid = this.cpfValido(control.value);\r\n return valid ? null : { cpfInvalid: true };\r\n };\r\n }\r\n\r\n aboveZeroValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n \r\n //verifica se valor é menor ou igual a zero\r\n if(value <= 0){\r\n return {invalidNumber: true}\r\n }\r\n return null\r\n }\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { DadoBancarioService } from '../shared/dado-bancario.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { DadoBancario } from '../shared/dado-bancario.model';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\nimport { DadoBancarioChavePix } from '../shared/dado-bancario-chave-pix.model';\r\nimport { ConfirmDialogComponent } from 'src/app/core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nexport interface DialogData {\r\n dadoBancarioId: number;\r\n idOrigem: number;\r\n dadoBancarioTipoOrigem: number;\r\n saguiClienteId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'dado-bancario-cadastro',\r\n templateUrl: 'dado-bancario-cadastro.component.html',\r\n})\r\n\r\nexport class DadoBancarioCadastroComponent {\r\n\r\n dadoBancarioCadastroForm: FormGroup;\r\n dadoBancarioChavePixForm: FormGroup;\r\n maximizado: boolean;\r\n bancos: any = [];\r\n dadoBancarioChavesPix: any = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IDadoBancario: DialogData,\r\n private dadoBancarioService: DadoBancarioService,\r\n private utilsService: UtilsService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.dadoBancarioCadastroForm = this._formBuilder.group(new DadoBancario());\r\n this.dadoBancarioChavePixForm = this._formBuilder.group(new DadoBancarioChavePix());\r\n\r\n if (this.IDadoBancario.dadoBancarioId > 0) {\r\n\r\n this.buscarDadoBancario(this.IDadoBancario.dadoBancarioId);\r\n\r\n } else {\r\n\r\n this.dadoBancarioCadastroForm.get('idOrigem').setValue(this.IDadoBancario.idOrigem);\r\n this.dadoBancarioCadastroForm.get('dadoBancarioTipoOrigem').setValue(this.IDadoBancario.dadoBancarioTipoOrigem);\r\n this.dadoBancarioCadastroForm.get('saguiClienteId').setValue(this.IDadoBancario.saguiClienteId);\r\n }\r\n\r\n this.buscarBancos();\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarBancos() {\r\n\r\n this.dadoBancarioService.getBancos().subscribe(data => {\r\n\r\n this.bancos = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarDadoBancario(dadoBancarioId: number) {\r\n\r\n this.dadoBancarioService.getDadoBancario(dadoBancarioId).subscribe(data => {\r\n\r\n this.inserirDadosDadoBancario(data.body);\r\n\r\n });\r\n }\r\n\r\n inserirDadosDadoBancario(data: any) {\r\n\r\n this.dadoBancarioCadastroForm.patchValue(data);\r\n\r\n this.buscarDadoBancarioChavePix();\r\n\r\n }\r\n\r\n salvar(): void {\r\n\r\n this.tratarCampos();\r\n\r\n let dadoBancarioForm = this.dadoBancarioCadastroForm;\r\n\r\n if (dadoBancarioForm.value.dadoBancarioId == 0) {\r\n\r\n this.dadoBancarioService.postDadoBancario(dadoBancarioForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarDadoBancario(data.body.dadoBancarioId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.dadoBancarioService.putDadoBancario(dadoBancarioForm.value, dadoBancarioForm.value.dadoBancarioId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarDadoBancario(dadoBancarioForm.value.dadoBancarioId);\r\n\r\n });\r\n }\r\n };\r\n\r\n tratarCampos() {\r\n\r\n let cnpj = this.utilsService.removeCaracteresEspeciais(this.dadoBancarioCadastroForm.get('favorecidoCnpj').value);\r\n cnpj = this.utilsService.removerEspacosComecoFim(cnpj);\r\n this.dadoBancarioCadastroForm.get('favorecidoCnpj').setValue(cnpj);\r\n\r\n let cpf = this.utilsService.removeCaracteresEspeciais(this.dadoBancarioCadastroForm.get('favorecidoCpf').value);\r\n cpf = this.utilsService.removerEspacosComecoFim(cpf);\r\n this.dadoBancarioCadastroForm.get('favorecidoCpf').setValue(cpf);\r\n\r\n }\r\n\r\n incluirChavePix() {\r\n\r\n let dadoBancarioChavePix: DadoBancarioChavePix = this.dadoBancarioChavePixForm.value;\r\n\r\n dadoBancarioChavePix.dadoBancarioId = this.dadoBancarioCadastroForm.get('dadoBancarioId').value;\r\n\r\n this.dadoBancarioService.postDadoBancarioChavePix(dadoBancarioChavePix).subscribe(data => {\r\n\r\n this.buscarDadoBancarioChavePix();\r\n\r\n });\r\n }\r\n\r\n buscarDadoBancarioChavePix() {\r\n\r\n this.dadoBancarioService.getDadoBancarioChavePix(this.dadoBancarioCadastroForm.get('dadoBancarioId').value).subscribe(data => {\r\n\r\n this.dadoBancarioChavesPix = data.body;\r\n\r\n });\r\n }\r\n\r\n retornarTipoChavePix(chavePixTipo: number) {\r\n\r\n switch (chavePixTipo) {\r\n case 0:\r\n return 'Cpf';\r\n case 1:\r\n return 'Cnpj';\r\n case 2:\r\n return 'Celular';\r\n case 3:\r\n return 'E-mail';\r\n case 4:\r\n return 'Chave Aleatória';\r\n }\r\n }\r\n\r\n confirmarExclusaoChavePix(dadoBancarioChavePixId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse contato?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.dadoBancarioService.deleteDadoBancarioChavePix(dadoBancarioChavePixId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro excluído com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarDadoBancarioChavePix();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
    \r\n

    Dados Bancários

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Banco\r\n \r\n \r\n {{banco.numero}} - {{banco.descricao}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Tipo de Conta\r\n \r\n Conta Corrente\r\n Conta Poupança\r\n \r\n \r\n
    \r\n
    \r\n \r\n Agência\r\n \r\n \r\n \r\n Número da Conta Corrente\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Pessoa Física\r\n Pessoa Jurídica\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Cpf\r\n \r\n \r\n
    \r\n
    \r\n \r\n Cnpj\r\n \r\n \r\n
    \r\n
    \r\n \r\n Nome do Favorecido\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n 0\">\r\n
    \r\n
    \r\n
    \r\n \r\n Tipo de Pix\r\n \r\n Cpf\r\n Cnpj\r\n Celular\r\n Chave Aleatória\r\n \r\n Para vincular novos veículos\r\n \r\n \r\n Chave Pix\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    AçõesTipoChave Pix
    \r\n \r\n delete\r\n \r\n {{retornarTipoChavePix(dadoBancarioChavePix.chavePixTipo)}}{{dadoBancarioChavePix.chavePix}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","export class DadoBancarioChavePix {\r\n dadoBancarioChavePixId: number = 0;\r\n chavePixTipo: number = 0;\r\n chavePix: string = '';\r\n dadoBancarioId: number = 0;\r\n saguiClienteId: number = 0;\r\n}","export class DadoBancario {\r\n dadoBancarioId: number = 0;\r\n dadoBancarioTipoOrigem: number = 0;\r\n dadoBancarioTipo: number = 0;\r\n idOrigem: number = 0;\r\n bancoId: number = 0;\r\n agenciaNumero: string = '';\r\n contaCorrenteNumero: string = '';\r\n favorecidoNome: string = '';\r\n favorecidoPessoaFisica: boolean = false;\r\n favorecidoCpf: string = '';\r\n favorecidoCnpj: string = '';\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class DadoBancarioService {\r\n\r\n getDadoBancario(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/dadobancario/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postDadoBancario(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/dadobancario/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putDadoBancario(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/dadobancario/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteDadoBancario(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/dadobancario/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getDadoBancarioChavePix(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/dadobancario/chavepix/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postDadoBancarioChavePix(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/dadobancariochavepix/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putDadoBancarioChavePix(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/dadobancariochavepix/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteDadoBancarioChavePix(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/dadobancariochavepix/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getBancos(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/banco/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Location } from '@angular/common';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DocumentoService } from '../shared/documento.service';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { VendaCadastroComponent } from '../../venda/venda-cadastro/venda-cadastro.component';\r\nimport { CompraCadastroComponent } from '../../compra/compra-cadastro/compra-cadastro.component';\r\nimport { OrcamentoCadastroComponent } from '../../venda/orcamento-cadastro/orcamento-cadastro.component';\r\nimport { NfeCadastroComponent } from '../../fiscal/nfe-cadastro/nfe-cadastro.component';\r\nimport { ContratoCadastroComponent } from '../../juridico/contrato-cadastro/contrato-cadastro.component';\r\nimport { RemessaCadastroComponent } from '../../remessa/remessa-cadastro/remessa-cadastro.component';\r\nimport { FaturaCadastroComponent } from '../../fatura/fatura-cadastro/fatura-cadastro.component';\r\nimport { ContaCadastroComponent } from '../../financeiro/conta-cadastro/conta-cadastro.component';\r\nimport { CaixaMovimentoComponent } from '../../financeiro/caixa-movimento/caixa-movimento.component';\r\nimport { EstoqueMovimentoComponent } from '../../estoque/estoque-movimento/estoque-movimento.component';\r\n\r\nexport interface DialogData {\r\n idDocumento: number;\r\n tipoOrigem: number;\r\n}\r\n\r\n@Component({\r\n selector: 'documento',\r\n templateUrl: 'documento-cadastro.component.html',\r\n})\r\n\r\nexport class DocumentoCadastroComponent {\r\n\r\n nomeTipoDocumento: string = \"\";\r\n idDocumento: number;\r\n tipoOrigem: number;\r\n maximizado: boolean;\r\n documentos: any[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private documentoService: DocumentoService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public IDocumento: DialogData,\r\n private location: Location) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.idDocumento = this.IDocumento.idDocumento;\r\n this.tipoOrigem = this.IDocumento.tipoOrigem;\r\n\r\n this.maximizado = false;\r\n\r\n switch (this.tipoOrigem) {\r\n case 0:\r\n this.nomeTipoDocumento = \"Compra\";\r\n break;\r\n case 1:\r\n this.nomeTipoDocumento = \"Venda\";\r\n break;\r\n case 2:\r\n this.nomeTipoDocumento = \"Devolução\";\r\n break;\r\n case 3:\r\n this.nomeTipoDocumento = \"Produção\";\r\n break;\r\n case 4:\r\n this.nomeTipoDocumento = \"Orcamento\";\r\n break;\r\n case 5:\r\n this.nomeTipoDocumento = \"NFe\";\r\n break;\r\n case 6:\r\n this.nomeTipoDocumento = \"Contrato\";\r\n break;\r\n case 7:\r\n this.nomeTipoDocumento = \"Remessa\";\r\n break;\r\n case 8:\r\n this.nomeTipoDocumento = \"Fatura de Venda\";\r\n break;\r\n case 9:\r\n this.nomeTipoDocumento = \"Fatura de Compra\";\r\n break;\r\n case 10:\r\n this.nomeTipoDocumento = \"Conta a Receber\";\r\n break;\r\n case 11:\r\n this.nomeTipoDocumento = \"Conta a Pagar\";\r\n break;\r\n case 12:\r\n this.nomeTipoDocumento = \"Movimento de Caixa\";\r\n break;\r\n case 13:\r\n this.nomeTipoDocumento = \"Movimento de Estoque\";\r\n break;\r\n case 23:\r\n this.nomeTipoDocumento = \"Oportunidade\";\r\n break;\r\n case 24:\r\n this.nomeTipoDocumento = \"Ordem de Serviço\";\r\n break;\r\n }\r\n\r\n this.visualizaDocumento();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n navegar(documentoRelacionado) {\r\n var link = \"\";\r\n\r\n switch (documentoRelacionado.tipoDocumentoDestino) {\r\n case 0:\r\n this.compraModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 1:\r\n this.vendaModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 2:\r\n this.vendaModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 3:\r\n //Produção foi descontinuada\r\n break;\r\n case 4:\r\n this.orcamentoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 5:\r\n this.nfeModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 6:\r\n this.contratoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 7:\r\n this.remessaModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 8:\r\n this.faturaModal(documentoRelacionado.idDocumentoDestino, 0);\r\n break;\r\n case 9:\r\n this.faturaModal(documentoRelacionado.idDocumentoDestino, 1);\r\n break;\r\n case 10:\r\n this.contaModal(0, documentoRelacionado.idDocumentoDestino, 0);\r\n break;\r\n case 11:\r\n this.contaModal(1, documentoRelacionado.idDocumentoDestino, 1);\r\n break;\r\n case 12:\r\n this.caixaMovimentoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 13:\r\n this.estoqueMovimentoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n }\r\n\r\n return link;\r\n }\r\n\r\n\r\n vendaModal(id) {\r\n\r\n const dialogRef = this.dialog.open(VendaCadastroComponent, {\r\n data: {\r\n vendaId: id,\r\n vendaTipo: 0\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n compraModal(id) {\r\n\r\n const dialogRef = this.dialog.open(CompraCadastroComponent, {\r\n data: { compraId: id },\r\n maxHeight: '100vh'\r\n });\r\n\r\n };\r\n\r\n orcamentoModal(id) {\r\n\r\n const dialogRef = this.dialog.open(OrcamentoCadastroComponent, {\r\n data: {\r\n orcamentoId: id\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n nfeModal(id: number) {\r\n\r\n const dialogRef = this.dialog.open(NfeCadastroComponent, {\r\n data: {\r\n nfeId: id,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n contratoModal(id) {\r\n\r\n const dialogRef = this.dialog.open(ContratoCadastroComponent, {\r\n data: {\r\n contratoId: id,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n remessaModal(id) {\r\n\r\n const dialogRef = this.dialog.open(RemessaCadastroComponent, {\r\n data: { remessaId: id },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n faturaModal(id: number, faturaTipo: number) {\r\n\r\n const dialogRef = this.dialog.open(FaturaCadastroComponent, {\r\n data: {\r\n faturaId: id,\r\n faturaTipo: faturaTipo\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n contaModal(tpConta: number, contaId: number, tipoParceiro: number) {\r\n\r\n const dialogRef = this.dialog.open(ContaCadastroComponent, {\r\n data: {\r\n contaId: contaId,\r\n tpConta: tpConta,\r\n tipoParceiro: tipoParceiro\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n }\r\n\r\n caixaMovimentoModal(caixaMovimentoId) {\r\n\r\n const dialogRef = this.dialog.open(CaixaMovimentoComponent, {\r\n data: {\r\n caixaMovimentoId: caixaMovimentoId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n estoqueMovimentoModal(estoqueMovimentoId) {\r\n\r\n const dialogRef = this.dialog.open(EstoqueMovimentoComponent, {\r\n data: {\r\n estoqueMovimentoId: estoqueMovimentoId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n PreencheTipoDocumento(tipoDocumentoDestino) {\r\n var texto = \"\";\r\n\r\n switch (tipoDocumentoDestino) {\r\n case 0:\r\n texto = \"Compra\";\r\n break;\r\n case 1:\r\n texto = \"Venda\";\r\n break;\r\n case 2:\r\n texto = \"Devolução\";\r\n break;\r\n case 3:\r\n texto = \"Produção\";\r\n break;\r\n case 4:\r\n texto = \"Orçamento\";\r\n break;\r\n case 5:\r\n texto = \"NFe\";\r\n break;\r\n case 6:\r\n texto = \"Contrato\";\r\n break;\r\n case 7:\r\n texto = \"Remessa\";\r\n break;\r\n case 8:\r\n texto = \"Fatura de Venda\";\r\n break;\r\n case 9:\r\n texto = \"Fatura de Compra\";\r\n break;\r\n case 10:\r\n texto = \"Conta a Receber\";\r\n break;\r\n case 11:\r\n texto = \"Conta a Pagar\";\r\n break;\r\n case 12:\r\n texto = \"Caixa Movimento\";\r\n break;\r\n case 13:\r\n texto = \"Estoque Movimento\";\r\n break;\r\n case 23:\r\n texto = \"Oportunidade\";\r\n break;\r\n case 24:\r\n texto = \"Ordem de Serviço\";\r\n break;\r\n }\r\n return texto;\r\n }\r\n\r\n visualizaDocumento() {\r\n\r\n var parametros: any = {\r\n tipoOrigem: this.tipoOrigem,\r\n idOrigem: this.idDocumento\r\n };\r\n\r\n this.documentoService.getVisualizaDocumento(parametros).subscribe(data => {\r\n\r\n this.documentos = data.body;\r\n\r\n });\r\n }\r\n}\r\n","\r\n
    \r\n

    Documentos relacionados com {{nomeTipoDocumento}} - {{idDocumento}}

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    AçõesTipo DestinoId Documento DestinoObservações
    \r\n \r\n edit\r\n \r\n {{PreencheTipoDocumento(documentoRelacionado.tipoDocumentoDestino)}}{{documentoRelacionado.idDocumentoDestino}}{{documentoRelacionado.descricao}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DocumentoTemplateComponent } from './documento-template/documento-template.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: DocumentoTemplateComponent,\r\n canActivate: [MsalGuard]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class DocumentoTemplateRoutingModule { }\r\n","'use strict';\r\nimport { Component, HostListener, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { Location } from '@angular/common';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { DocumentoTemplateService } from '../shared/documento-template.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { DocumentoTemplate } from '../shared/documento-template.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\nimport { Placeholder } from '@angular/compiler/src/i18n/i18n_ast';\r\n\r\nexport interface DialogData {\r\n documentoTemplateId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'documento-template-cadastro',\r\n templateUrl: 'documento-template-cadastro.component.html',\r\n})\r\n\r\nexport class DocumentoTemplateCadastroComponent {\r\n\r\n DocumentoTemplate: any = {};\r\n documentoTemplates: any = [];\r\n documentoTemplateCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n pessoaFisica: boolean = false;\r\n isento: boolean = false;\r\n ufs: any = [];\r\n paises: any = [];\r\n municipios: any = [];\r\n cepPesquisado: any = {};\r\n saguiApp: string = '';\r\n lastSelection: Range | null = null;\r\n\r\n showTags: boolean = false;\r\n tags = [\r\n ];\r\n\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IDocumentoTemplate: DialogData,\r\n private documentoTemplateService: DocumentoTemplateService,\r\n private location: Location) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.saguiApp = environment.SaguiApp;\r\n\r\n this.maximizado = false;\r\n\r\n this.documentoTemplateCadastroForm = this._formBuilder.group(new DocumentoTemplate());\r\n\r\n if (this.IDocumentoTemplate.documentoTemplateId > 0) {\r\n\r\n this.buscarDocumentoTemplate(this.IDocumentoTemplate.documentoTemplateId);\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarDocumentoTemplate(documentoTemplateId: number) {\r\n this.documentoTemplateService.getDocumentoTemplate(documentoTemplateId).subscribe(data => {\r\n this.InsereDadosDocumentoTemplate(data.body);\r\n });\r\n }\r\n\r\n InsereDadosDocumentoTemplate(data: any) {\r\n\r\n this.documentoTemplateCadastroForm.patchValue(data);\r\n this.atualizarTags();\r\n }\r\n\r\n salvar(documentoTemplateForm): void {\r\n\r\n if (documentoTemplateForm.value.documentoTemplateId == 0) {\r\n\r\n this.documentoTemplateService.postDocumentoTemplate(documentoTemplateForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarDocumentoTemplate(data.body.documentoTemplateId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.documentoTemplateService.putDocumentoTemplate(documentoTemplateForm.value, documentoTemplateForm.value.documentoTemplateId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarDocumentoTemplate(documentoTemplateForm.value.documentoTemplateId);\r\n\r\n });\r\n }\r\n\r\n };\r\n\r\n editorConfig: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '0',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: 'Enter text here..',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n sanitize: true,\r\n toolbarPosition: 'top',\r\n };\r\n\r\n @HostListener('document:click', ['$event'])\r\n handleClick(event: MouseEvent) {\r\n const editorElement = document.getElementById('editor1');\r\n const clickedInsideEditor = editorElement && editorElement.contains(event.target as Node);\r\n\r\n if (clickedInsideEditor) {\r\n this.updateSelection();\r\n } else {\r\n this.lastSelection = null;\r\n }\r\n }\r\n\r\n\r\n\r\n updateSelection() {\r\n const selection = window.getSelection();\r\n if (selection && selection.rangeCount > 0) {\r\n this.lastSelection = selection.getRangeAt(0);\r\n }\r\n }\r\n openTagSelection() {\r\n const editorElement = document.getElementById('editor1').getElementsByClassName('angular-editor-textarea')[0] as HTMLElement;\r\n if (editorElement) {\r\n const selection = window.getSelection();\r\n if (selection) {\r\n const range = selection.getRangeAt(0);\r\n this.lastSelection = range.cloneRange();\r\n editorElement.focus();\r\n this.showTags = true;\r\n }\r\n }\r\n }\r\n\r\n closeTagSelection() {\r\n this.showTags = false;\r\n }\r\n\r\n insertTag(placeholder: string) {\r\n if (!this.lastSelection) return false;\r\n\r\n const editorElement = document.getElementById('editor1');\r\n if (editorElement && this.isSelectionInsideEditor(this.lastSelection, editorElement)) {\r\n const selection = window.getSelection();\r\n if (selection) {\r\n selection.removeAllRanges();\r\n selection.addRange(this.lastSelection);\r\n document.execCommand('insertText', false, placeholder);\r\n\r\n this.showTags = false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n isSelectionInsideEditor(range: Range, editorElement: HTMLElement): boolean {\r\n let currentNode = range.commonAncestorContainer;\r\n while (currentNode) {\r\n if (currentNode === editorElement) {\r\n return true;\r\n }\r\n currentNode = currentNode.parentNode;\r\n }\r\n return false;\r\n }\r\n\r\n openImageInsertDialog() {\r\n const imageUrl = prompt('Por favor, insira o URL da imagem:');\r\n if (imageUrl) {\r\n this.insertImageAtCursor(imageUrl);\r\n }\r\n }\r\n\r\ninsertImageAtCursor(imgUrl: string) {\r\n const imgTag = `\"Imagem\"`;\r\n if (!this.lastSelection) {\r\n return;\r\n }\r\n const editorElement = document.getElementById('editor1');\r\n if (editorElement && this.isSelectionInsideEditor(this.lastSelection, editorElement)) {\r\n const selection = window.getSelection();\r\n if (selection) {\r\n selection.removeAllRanges();\r\n selection.addRange(this.lastSelection);\r\n document.execCommand('insertHTML', false, imgTag);\r\n this.showTags = false;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n atualizarTags(): void {\r\n this.showTags = false;\r\n let documentoTipo = this.documentoTemplateCadastroForm.value.documentoTipo;\r\n switch (documentoTipo) {\r\n case 4: //Orçamento\r\n this.tags = [\r\n { name: 'Nome Fantasia da Empresa', placeholder: '{{Empresa.NomeFantasia}}' },\r\n { name: 'Logradouro da Empresa', placeholder: '{{Empresa.Logradouro}}' },\r\n { name: 'Número da Empresa', placeholder: '{{Empresa.Numero}}' },\r\n { name: 'Bairro da Empresa', placeholder: '{{Empresa.Bairro}}' },\r\n { name: 'Município da Empresa', placeholder: '{{Empresa.Municipio}}' },\r\n { name: 'UF da Empresa', placeholder: '{{Empresa.Uf}}' },\r\n { name: 'CEP da Empresa', placeholder: '{{Empresa.Cep}}' },\r\n { name: 'Telefone da Empresa', placeholder: '{{Empresa.Telefone}}' },\r\n { name: 'Email de Venda da Empresa', placeholder: '{{Empresa.EmailVenda}}' },\r\n { name: 'Inscrição Estadual da Empresa', placeholder: '{{Empresa.InscricaoEstadual}}' },\r\n { name: 'CNPJ da Empresa', placeholder: '{{Empresa.Cnpj}}' },\r\n { name: 'Logo da Empresa', placeholder: '{{Empresa.Logo}}' },\r\n { name: 'Razão Social do Cliente', placeholder: '{{Parceiro.RazaoSocial}}' },\r\n { name: 'CNPJ do Cliente', placeholder: '{{Parceiro.Cnpj}}' },\r\n { name: 'CPF do Cliente', placeholder: '{{Parceiro.Cpf}}' },\r\n { name: 'Logradouro do Cliente', placeholder: '{{Parceiro.Logradouro}}' },\r\n { name: 'Número do Cliente', placeholder: '{{Parceiro.Numero}}' },\r\n { name: 'Bairro do Cliente', placeholder: '{{Parceiro.Bairro}}' },\r\n { name: 'CEP do Cliente', placeholder: '{{Parceiro.Cep}}' },\r\n { name: 'Município do Cliente', placeholder: '{{Parceiro.Municipio}}' },\r\n { name: 'UF do Cliente', placeholder: '{{Parceiro.Uf}}' },\r\n { name: 'Telefone do Cliente', placeholder: '{{Parceiro.Telefone}}' },\r\n { name: 'Inscrição Estadual do Cliente', placeholder: '{{Parceiro.InscricaoEstadual}}' },\r\n { name: 'Email do Cliente', placeholder: '{{Parceiro.Email}}' },\r\n { name: 'Valor Total do Orçamento', placeholder: '{{orcamentotemp.ValorTotal}}' },\r\n { name: 'Valor de Desconto', placeholder: '{{orcamentotemp.ValorDesconto}}' },\r\n { name: 'Valor Bruto', placeholder: '{{orcamentotemp.ValorBruto}}' },\r\n { name: 'Nome do Vendedor', placeholder: '{{NomeVendedor}}' },\r\n { name: 'Cargo do Vendedor', placeholder: '{{CargoVendedor}}' },\r\n { name: 'Email do Vendedor', placeholder: '{{EmailVendedor}}' },\r\n { name: 'Dados Adicionais', placeholder: '{{orcamentotemp.DadosAdicionais}}' },\r\n { name: 'Data do Orçamento', placeholder: '{{orcamentotemp.DataOrcamento}}' },\r\n { name: 'Data de Validade', placeholder: '{{orcamentotemp.DataValidade}}' },\r\n { name: 'ID do Orçamento', placeholder: '{{orcamentotemp.OrcamentoId}}' },\r\n { name: 'Total de Descontos em Reais', placeholder: '{{orcamentotemp.SomaTotalDescontosEmReais}}' },\r\n { name: 'Total de Descontos em Porcentagem', placeholder: '{{orcamentotemp.SomaTotalDescontosEmPorcentagem}}' },\r\n { name: 'Texto Livre', placeholder: '{{orcamentotemp.TextoLivre}}' },\r\n { name: 'Observações', placeholder: '{{orcamentotemp.Observacoes}}' },\r\n { name: 'Itens Serv sem desc', placeholder: '{{orcamentoItensServicoSemDesconto}}'},\r\n { name: 'Itens Serv com desc', placeholder: '{{orcamentoItensServicoComDesconto}}'},\r\n ];\r\n break;\r\n case 8: //Fatura de Venda\r\n this.tags = [\r\n { name: 'Nome Fantasia da Empresa', placeholder: '{{Empresa.nomeFantasia}}' },\r\n { name: 'Logradouro da Empresa', placeholder: '{{Empresa.logradouro}}' },\r\n { name: 'Número da Empresa', placeholder: '{{Empresa.numero}}' },\r\n { name: 'Bairro da Empresa', placeholder: '{{Empresa.bairro}}' },\r\n { name: 'Município da Empresa', placeholder: '{{Empresa.Municipio.descricao}}' },\r\n { name: 'UF da Empresa', placeholder: '{{Empresa.uf.siglaUF}}' },\r\n { name: 'CEP da Empresa', placeholder: '{{Empresa.cep}}' },\r\n { name: 'Telefone da Empresa', placeholder: '{{Empresa.telefone}}' },\r\n { name: 'Email Fatura da Empresa', placeholder: '{{Empresa.EmailFatura}}' },\r\n { name: 'Inscrição Estadual da Empresa', placeholder: '{{Empresa.inscEstadual}}' },\r\n { name: 'CNPJ da Empresa', placeholder: '{{Empresa.cnpj}}' },\r\n { name: 'Logo da Empresa', placeholder: '{{Empresa.Logo}}' },\r\n { name: 'Razão Social do Parceiro', placeholder: '{{Parceiro.razaoSocial}}' },\r\n { name: 'CNPJ do Parceiro', placeholder: '{{Parceiro.cnpj}}' },\r\n { name: 'CPF do Parceiro', placeholder: '{{Parceiro.cpf}}' },\r\n { name: 'Logradouro do Parceiro', placeholder: '{{Parceiro.logradouro}}' },\r\n { name: 'Número do Parceiro', placeholder: '{{Parceiro.numero}}' },\r\n { name: 'Bairro do Parceiro', placeholder: '{{Parceiro.bairro}}' },\r\n { name: 'CEP do Parceiro', placeholder: '{{Parceiro.cep}}' },\r\n { name: 'Município do Parceiro', placeholder: '{{Parceiro.municipio.descricao}}' },\r\n { name: 'UF do Parceiro', placeholder: '{{Parceiro.municipio.Uf.siglaUF}}' },\r\n { name: 'Telefone do Parceiro', placeholder: '{{Parceiro.telefone}}' },\r\n { name: 'Inscrição Estadual do Parceiro', placeholder: '{{Parceiro.inscEstadual}}' },\r\n { name: 'Valor Bruto da Fatura', placeholder: '{{faturatemp.ValorBruto}}' },\r\n { name: 'Valor Total da Fatura', placeholder: '{{faturatemp.ValorTotal}}' },\r\n { name: 'Descrição da Fatura', placeholder: '{{faturatemp.Descricao}}' },\r\n { name: 'Data de Criação da Fatura', placeholder: '{{faturatemp.DataCriacao}}' },\r\n { name: 'ID da Fatura', placeholder: '{{faturatemp.FaturaId}}' },\r\n { name: 'Itens da Fatura', placeholder: '{{faturaItens}}' },\r\n { name: 'Parcelas da Fatura', placeholder: '{{faturaParcelas}}' }\r\n];\r\n break;\r\n case 16: // Recibo do Contas a Receber\r\n case 17: // Recibo do Contas a Pagar\r\n this.tags = [\r\n { name: 'CNPJ da Empresa', placeholder: '{{Empresa.Cnpj}}' },\r\n { name: 'CPF da Empresa', placeholder: '{{Empresa.Cpf}}' },\r\n { name: 'Razão Social da Empresa', placeholder: '{{Empresa.RazaoSocial}}' },\r\n { name: 'Nome Fantasia da Empresa', placeholder: '{{Empresa.NomeFantasia}}' },\r\n { name: 'Logradouro da Empresa', placeholder: '{{Empresa.Logradouro}}' },\r\n { name: 'Número da Empresa', placeholder: '{{Empresa.Numero}}' },\r\n { name: 'Bairro da Empresa', placeholder: '{{Empresa.Bairro}}' },\r\n { name: 'Município da Empresa', placeholder: '{{Empresa.Municipio}}' },\r\n { name: 'UF da Empresa', placeholder: '{{Empresa.Uf}}' },\r\n { name: 'CEP da Empresa', placeholder: '{{Empresa.Cep}}' },\r\n { name: 'Telefone da Empresa', placeholder: '{{Empresa.Telefone}}' },\r\n { name: 'Email Financeiro da Empresa', placeholder: '{{Empresa.EmailFinanceiro}}' },\r\n { name: 'Inscrição Estadual da Empresa', placeholder: '{{Empresa.inscEstadual}}' },\r\n { name: 'Logo da Empresa', placeholder: '{{Empresa.LogoByte}}' },\r\n { name: 'Razão Social do Parceiro', placeholder: '{{Parceiro.RazaoSocial}}' },\r\n { name: 'Nome Fantasia do Parceiro', placeholder: '{{Parceiro.NomeFantasia}}' },\r\n { name: 'CNPJ do Parceiro', placeholder: '{{Parceiro.Cnpj}}' },\r\n { name: 'CPF do Parceiro', placeholder: '{{Parceiro.Cpf}}' },\r\n { name: 'Logradouro do Parceiro', placeholder: '{{Parceiro.Logradouro}}' },\r\n { name: 'Número do Parceiro', placeholder: '{{Parceiro.Numero}}' },\r\n { name: 'Bairro do Parceiro', placeholder: '{{Parceiro.Bairro}}' },\r\n { name: 'Cep do Parceiro', placeholder: '{{Parceiro.Cep}}' },\r\n { name: 'Município do Parceiro', placeholder: '{{Parceiro.Municipio}}' },\r\n { name: 'UF do Parceiro', placeholder: '{{Parceiro.Uf}}' },\r\n { name: 'Telefone do Parceiro', placeholder: '{{Parceiro.Telefone}}' },\r\n { name: 'Inscrição Estadual do Parceiro', placeholder: '{{Parceiro.inscEstadual}}' },\r\n { name: 'Descrição da Conta Parcela', placeholder: '{{contaParcela.Descricao}}' },\r\n { name: 'Valor do Pagamento', placeholder: '{{contaParcela.ValorPagamento}}' },\r\n { name: 'ID da Conta Parcela', placeholder: '{{contaParcela.ContaParcelaId}}' },\r\n { name: 'Data de Pagamento', placeholder: '{{contaParcela.DataPagamento}}' },\r\n ];\r\n break;\r\n case 18: //Histórico Escolar\r\n this.tags = [\r\n { name: 'Logo da Empresa em Base64', placeholder: '{{empresa.LogoByte}}' },\r\n { name: 'Razão Social da Empresa', placeholder: '{{empresa.razaoSocial}}' },\r\n { name: 'Nome Fantasia da Empresa', placeholder: '{{empresa.nomeFantasia}}' },\r\n { name: 'CNPJ da Empresa', placeholder: '{{empresa.Cnpj}}' },\r\n { name: 'Logradouro da Empresa', placeholder: '{{empresa.logradouro}}' },\r\n { name: 'Número da Empresa', placeholder: '{{empresa.numero}}' },\r\n { name: 'CEP da Empresa', placeholder: '{{empresa.cep}}' },\r\n { name: 'Bairro da Empresa', placeholder: '{{empresa.bairro}}' },\r\n { name: 'Descrição do Município da Empresa', placeholder: '{{empresa.Municipio.descricao}}' },\r\n { name: 'Descrição da UF da Empresa', placeholder: '{{empresa.uf.descUF}}' },\r\n { name: 'Telefone da Empresa', placeholder: '{{empresa.telefone}}' },\r\n { name: 'Email da Empresa', placeholder: '{{empresa.email}}' },\r\n { name: 'Nome do Aluno', placeholder: '{{aluno.nome}}' },\r\n { name: 'RG do Aluno', placeholder: '{{aluno.rg}}' },\r\n { name: 'Registro do Aluno', placeholder: '{{aluno.RegistroAluno}}' },\r\n { name: 'Descrição do Município do Aluno', placeholder: '{{aluno.Municipio.descricao}}' },\r\n { name: 'Sigla da UF do Aluno', placeholder: '{{aluno.Municipio.Uf.siglaUF}}' },\r\n { name: 'Descrição do País do Aluno', placeholder: '{{aluno.Pais.descPais}}' },\r\n { name: 'Data de Nascimento do Aluno', placeholder: '{{aluno.dataNasc}}' },\r\n { name: 'Nota de Português', placeholder: '{{portugues[i].Nota}}' },\r\n { name: 'Nota de Inglês', placeholder: '{{ingles[i].Nota}}' },\r\n { name: 'Nota de Matemática', placeholder: '{{matematica[i].Nota}}' },\r\n { name: 'Nota de Ciências', placeholder: '{{ciencias[i].Nota}}' },\r\n { name: 'Nota de História', placeholder: '{{historia[i].Nota}}' },\r\n { name: 'Nota de Geografia', placeholder: '{{geografia[i].Nota}}' },\r\n { name: 'Nota de Arte', placeholder: '{{arte[i].Nota}}' },\r\n { name: 'Nota de Educação Física', placeholder: '{{educacaoFisica[i].Nota}}' },\r\n { name: 'Ano Concluinte', placeholder: '{{anoConcluinte}}' },\r\n { name: 'Dia Atual', placeholder: '{{diaAtual}}' },\r\n { name: 'Mês Atual', placeholder: '{{mesAtual}}' },\r\n { name: 'Ano Atual', placeholder: '{{anoAtual}}' },\r\n ];\r\n break;\r\n case 21: //Ficha de Funcionário\r\n this.tags = [\r\n { name: 'Foto do Funcionário', placeholder: '{{Funcionario.Foto}}' },\r\n { name: 'Cor', placeholder: '{{Funcionario.CaracteristicaCor}}' },\r\n { name: 'Cabelo', placeholder: '{{Funcionario.CaracteristicaCabelo}}' },\r\n { name: 'Barba', placeholder: '{{Funcionario.CaracteristicaBarba}}' },\r\n { name: 'Bigode', placeholder: '{{Funcionario.CaracteristicaBigode}}' },\r\n { name: 'Olhos', placeholder: '{{Funcionario.CaracteristicaOlhos}}' },\r\n { name: 'Altura em Centímetros', placeholder: '{{Funcionario.CaracteristicaAlturaemCentimetros}}' },\r\n { name: 'Peso em Quilos', placeholder: '{{Funcionario.CaracteristicaPesoEmQuilos}}' },\r\n { name: 'Sinais', placeholder: '{{Funcionario.CaracteristicaSinais}}' },\r\n { name: 'Nome Fantasia da Empresa', placeholder: '{{Empresa.NomeFantasia}}' },\r\n { name: 'Logradouro da Empresa', placeholder: '{{Empresa.Logradouro}}' },\r\n { name: 'Número da Empresa', placeholder: '{{Empresa.Numero}}' },\r\n { name: 'Bairro da Empresa', placeholder: '{{Empresa.Bairro}}' },\r\n { name: 'Município da Empresa', placeholder: '{{Empresa.Municipio}}' },\r\n { name: 'UF da Empresa', placeholder: '{{Empresa.Uf}}' },\r\n { name: 'CEP da Empresa', placeholder: '{{Empresa.Cep}}' },\r\n { name: 'CNPJ da Empresa', placeholder: '{{Empresa.Cnpj}}' },\r\n { name: 'Nome do Funcionário', placeholder: '{{Funcionario.RazaoSocial}}' },\r\n { name: 'Código do Funcionário', placeholder: '{{Funcionario.Codigo}}' },\r\n { name: 'Registro do Funcionário', placeholder: '{{Funcionario.Registro}}' },\r\n { name: 'Matrícula do Funcionário', placeholder: '{{Funcionario.Matricula}}' },\r\n { name: 'Filiação Mãe', placeholder: '{{Funcionario.FiliacaoMae}}' },\r\n { name: 'Filiação Pai', placeholder: '{{Funcionario.FiliacaoPai}}' },\r\n { name: 'Nacionalidade', placeholder: '{{Funcionario.Nacionalidade}}' },\r\n { name: 'Grau de Instrução', placeholder: '{{Funcionario.GrauInstrucao}}' },\r\n { name: 'Dependentes para Salário Família', placeholder: '{{Funcionario.DependentesSalarioFamilia}}' },\r\n { name: 'Dependentes para IR', placeholder: '{{Funcionario.DependentesIrrf}}' },\r\n ];\r\n break;\r\n case 22: //Ficha de Veículo\r\n this.tags = [\r\n { name: 'Descrição do Veículo', placeholder: '{{Veiculo.Descricao}}' },\r\n { name: 'Placa do Veículo', placeholder: '{{Veiculo.Placa}}' },\r\n { name: 'Marca do Veículo', placeholder: '{{Veiculo.Marca}}' },\r\n { name: 'Modelo do Veículo', placeholder: '{{Veiculo.Modelo}}' },\r\n { name: 'Tipo de Carroceria do Veículo', placeholder: '{{Veiculo.VeiculoTipoCarroceria}}' },\r\n { name: 'Tipo de Rodado do Veículo', placeholder: '{{Veiculo.VeiculoTipoRodado}}' },\r\n { name: 'Combustível do Veículo', placeholder: '{{Veiculo.Combustivel}}' },\r\n { name: 'Categoria do Veículo', placeholder: '{{Veiculo.Categoria}}' },\r\n { name: 'Data de Aquisição do Veículo', placeholder: '{{Veiculo.DataAquisicao}}' },\r\n { name: 'Ano de Fabricação do Veículo', placeholder: '{{Veiculo.AnoFabricacao}}' },\r\n { name: 'Ano do Modelo do Veículo', placeholder: '{{Veiculo.AnoModelo}}' },\r\n { name: 'Capacidade de Passageiros', placeholder: '{{Veiculo.CapacidadePassageiros}}' },\r\n { name: 'Cor do Veículo', placeholder: '{{Veiculo.Cor}}' },\r\n { name: 'Chassi do Veículo', placeholder: '{{Veiculo.Chassi}}' },\r\n { name: 'Tara do Veículo', placeholder: '{{Veiculo.Tara}}' },\r\n { name: 'Capacidade em KG', placeholder: '{{Veiculo.CapKG}}' },\r\n { name: 'Capacidade em M3', placeholder: '{{Veiculo.CapM3}}' },\r\n { name: 'Potência do Veículo', placeholder: '{{Veiculo.Potencia}}' },\r\n { name: 'Cilindradas do Veículo', placeholder: '{{Veiculo.Cilindradas}}' },\r\n { name: 'Número do CRLV', placeholder: '{{Veiculo.CrlvNumero}}' },\r\n { name: 'Município do Veículo', placeholder: '{{Veiculo.Municipio}}' },\r\n { name: 'Número ANTT', placeholder: '{{Veiculo.AnttNumero}}' },\r\n { name: 'Data de Cadastro na ANTT', placeholder: '{{Veiculo.AnttDataCadastro}}' },\r\n { name: 'Data de Validade na ANTT', placeholder: '{{Veiculo.AnttDataValidade}}' },\r\n { name: 'Nome do Proprietário', placeholder: '{{Veiculo.ProprietarioNome}}' },\r\n { name: 'CPF/CNPJ do Proprietário', placeholder: '{{Veiculo.ProprietarioCpfCnpj}}' },\r\n { name: 'Fotos do Veículo', placeholder: '{{Fotos}}' },\r\n ];\r\n break;\r\n\r\n default:\r\n this.tags = [\r\n ];\r\n }\r\n }\r\n\r\n}\r\n","\r\n
    \r\n

    Template de Impressão

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Tipo de Documento\r\n \r\n Orçamento\r\n Fatura de Venda\r\n Recibo do Contas a Receber\r\n Recibo do Contas a Pagar\r\n Histórico Escolar\r\n Ficha de Funcionário\r\n Ficha de Veículo\r\n Ordem de Serviço\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
      \r\n
    • {{ tag.name }}
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","'use strict';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\n\r\nimport { DocumentoTemplateService } from '../shared/documento-template.service';\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { exportExcelService } from '../../core/export-excel/export-excel.service';\r\n\r\nimport { DocumentoTemplateCadastroComponent } from '../documento-template-cadastro/documento-template-cadastro.component';\r\n\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { DocumentoTemplate } from '../shared/documento-template.model';\r\n\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\n@Component({\r\n selector: 'documento-template-all',\r\n templateUrl: 'documento-template.component.html',\r\n})\r\nexport class DocumentoTemplateComponent implements OnInit {\r\n\r\n documentoTemplates: any[];\r\n documentoTemplateForm: FormGroup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private documentoTemplateService: DocumentoTemplateService,\r\n private exportExcelService: exportExcelService,\r\n private htmlPrinterService: HtmlPrinterService,\r\n private _formBuilder: FormBuilder) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.documentoTemplateForm = this._formBuilder.group({\r\n ativo: true,\r\n razaoSocial: ['']\r\n });\r\n\r\n this.buscarDocumentoTemplates();\r\n\r\n }\r\n\r\n buscarDocumentoTemplates() {\r\n\r\n this.documentoTemplateService.getDocumentoTemplates().subscribe(data => {\r\n\r\n this.documentoTemplates = data.body;\r\n\r\n });\r\n };\r\n\r\n confirmarExclusao(cancelarId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse documentoTemplate?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.documentoTemplateService.deleteDocumentoTemplate(cancelarId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro excluído com Sucesso\");\r\n\r\n this.buscarDocumentoTemplates();\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n DocumentoTemplateModal(id) {\r\n\r\n const dialogRef = this.dialog.open(DocumentoTemplateCadastroComponent, {\r\n data: {\r\n documentoTemplateId: id,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarDocumentoTemplates();\r\n\r\n });\r\n };\r\n\r\n imprimirDiv(divName: string) {\r\n\r\n let titulo = \"Templates\";\r\n\r\n this.htmlPrinterService.printDiv(divName, titulo);\r\n }\r\n\r\n exportExcel(divName: string) {\r\n\r\n this.exportExcelService.SalvarArquivo(divName, 'DocumentoTemplate');\r\n\r\n };\r\n\r\n retornaTextodocumentoTipo(documentoTipo) {\r\n\r\n let texto = \"\";\r\n\r\n switch (documentoTipo) {\r\n case 4:\r\n texto = \"Orçamento\";\r\n break;\r\n case 8:\r\n texto = \"Fatura de Venda\";\r\n break;\r\n case 16:\r\n texto = \"Recibo do Contas a Receber\";\r\n break;\r\n case 17:\r\n texto = \"Recibo do Contas a Pagar\";\r\n break;\r\n case 18:\r\n texto = \"Histórico Escolar\";\r\n break;\r\n case 21:\r\n texto = \"Ficha de Funcionário\";\r\n break;\r\n case 22:\r\n texto = \"Ficha de Veículo\";\r\n break;\r\n case 24:\r\n texto = \"Ordem de Serviço\";\r\n break;\r\n }\r\n\r\n return texto;\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Templates de Documentos para Impressão

    \r\n
      \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Ações\r\n IDTipo de Documento
    \r\n edit\r\n delete\r\n {{documentoTemplate.documentoTemplateId}}{{retornaTextodocumentoTipo(documentoTemplate.documentoTipo)}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Templates

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    IDTipo de Documento
    {{documentoTemplate.documentoTemplateId}}{{retornaTextodocumentoTipo(documentoTemplate.documentoTipo)}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AppMaterialModule } from '../app-material/app-material.module';\r\n\r\nimport { DocumentoCadastroComponent } from './documento-cadastro/documento-cadastro.component';\r\n\r\nimport { DocumentoService } from './shared/documento.service';\r\nimport { DocumentoTemplateRoutingModule } from './documento-routing.module';\r\nimport { DocumentoTemplateComponent } from './documento-template/documento-template.component';\r\nimport { DocumentoTemplateCadastroComponent } from './documento-template-cadastro/documento-template-cadastro.component';\r\nimport { DocumentoTemplateService } from './shared/documento-template.service';\r\nimport { DocumentosRelacionadosComponent } from './documentos-relacionados/documentos-relacionados.component';\r\nimport { VendaService } from '../venda/shared/venda.service';\r\nimport { OrcamentoService } from '../venda/shared/orcamento.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppMaterialModule,\r\n DocumentoTemplateRoutingModule,\r\n ],\r\n exports: [\r\n DocumentosRelacionadosComponent,\r\n ],\r\n declarations: [\r\n DocumentoCadastroComponent,\r\n DocumentoTemplateComponent,\r\n DocumentoTemplateCadastroComponent,\r\n DocumentosRelacionadosComponent\r\n ],\r\n providers: [\r\n DocumentoService,\r\n DocumentoTemplateService,\r\n VendaService,\r\n OrcamentoService\r\n\r\n ]\r\n})\r\n\r\nexport class DocumentoModule { }\r\n","'use strict';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DocumentoService } from '../shared/documento.service';\r\nimport { VendaCadastroComponent } from '../../venda/venda-cadastro/venda-cadastro.component';\r\nimport { CompraCadastroComponent } from '../../compra/compra-cadastro/compra-cadastro.component';\r\nimport { OrcamentoCadastroComponent } from '../../venda/orcamento-cadastro/orcamento-cadastro.component';\r\nimport { NfeCadastroComponent } from '../../fiscal/nfe-cadastro/nfe-cadastro.component';\r\nimport { ContratoCadastroComponent } from '../../juridico/contrato-cadastro/contrato-cadastro.component';\r\nimport { RemessaCadastroComponent } from '../../remessa/remessa-cadastro/remessa-cadastro.component';\r\nimport { FaturaCadastroComponent } from '../../fatura/fatura-cadastro/fatura-cadastro.component';\r\nimport { ContaCadastroComponent } from '../../financeiro/conta-cadastro/conta-cadastro.component';\r\nimport { CaixaMovimentoComponent } from '../../financeiro/caixa-movimento/caixa-movimento.component';\r\nimport { EstoqueMovimentoComponent } from '../../estoque/estoque-movimento/estoque-movimento.component';\r\n\r\n@Component({\r\n selector: 'app-documentos-relacionados',\r\n templateUrl: './documentos-relacionados.component.html',\r\n styleUrls: ['./documentos-relacionados.component.css']\r\n})\r\nexport class DocumentosRelacionadosComponent implements OnInit {\r\n\r\n nomeTipoDocumento: string = \"\";\r\n @Input() tipoOrigem?: number;\r\n @Input() idDocumento?: number;\r\n documentos: any[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private documentoService: DocumentoService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n switch (this.tipoOrigem) {\r\n case 0:\r\n this.nomeTipoDocumento = \"Compra\";\r\n break;\r\n case 1:\r\n this.nomeTipoDocumento = \"Venda\";\r\n break;\r\n case 2:\r\n this.nomeTipoDocumento = \"Devolução\";\r\n break;\r\n case 3:\r\n this.nomeTipoDocumento = \"Produção\";\r\n break;\r\n case 4:\r\n this.nomeTipoDocumento = \"Orcamento\";\r\n break;\r\n case 5:\r\n this.nomeTipoDocumento = \"NFe\";\r\n break;\r\n case 6:\r\n this.nomeTipoDocumento = \"Contrato\";\r\n break;\r\n case 7:\r\n this.nomeTipoDocumento = \"Remessa\";\r\n break;\r\n case 8:\r\n this.nomeTipoDocumento = \"Fatura de Venda\";\r\n break;\r\n case 9:\r\n this.nomeTipoDocumento = \"Fatura de Compra\";\r\n break;\r\n case 10:\r\n this.nomeTipoDocumento = \"Conta a Receber\";\r\n break;\r\n case 11:\r\n this.nomeTipoDocumento = \"Conta a Pagar\";\r\n break;\r\n case 12:\r\n this.nomeTipoDocumento = \"Movimento de Caixa\";\r\n break;\r\n case 13:\r\n this.nomeTipoDocumento = \"Movimento de Estoque\";\r\n break;\r\n case 23:\r\n this.nomeTipoDocumento = \"Oportunidade\";\r\n break;\r\n case 24:\r\n this.nomeTipoDocumento = \"Ordem de Serviço\";\r\n break;\r\n }\r\n\r\n this.visualizaDocumento();\r\n\r\n }\r\n\r\n recarregarDocumentos() {\r\n this.visualizaDocumento();\r\n }\r\n\r\n\r\n navegar(documentoRelacionado) {\r\n var link = \"\";\r\n switch (documentoRelacionado.tipoDocumentoDestino) {\r\n case 0:\r\n this.compraModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 1:\r\n this.vendaModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 2:\r\n this.vendaModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 3:\r\n //Produção foi descontinuada\r\n break;\r\n case 4:\r\n this.orcamentoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 5:\r\n this.nfeModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 6:\r\n this.contratoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 7:\r\n this.remessaModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 8:\r\n this.faturaModal(documentoRelacionado.idDocumentoDestino, 0);\r\n break;\r\n case 9:\r\n this.faturaModal(documentoRelacionado.idDocumentoDestino, 1);\r\n break;\r\n case 10:\r\n this.contaModal(0, documentoRelacionado.idDocumentoDestino, 0);\r\n break;\r\n case 11:\r\n this.contaModal(1, documentoRelacionado.idDocumentoDestino, 1);\r\n break;\r\n case 12:\r\n this.caixaMovimentoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n case 13:\r\n this.estoqueMovimentoModal(documentoRelacionado.idDocumentoDestino);\r\n break;\r\n }\r\n\r\n return link;\r\n }\r\n\r\n\r\n vendaModal(id) {\r\n\r\n const dialogRef = this.dialog.open(VendaCadastroComponent, {\r\n data: {\r\n vendaId: id,\r\n vendaTipo: 0\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n compraModal(id) {\r\n\r\n const dialogRef = this.dialog.open(CompraCadastroComponent, {\r\n data: { compraId: id },\r\n maxHeight: '100vh'\r\n });\r\n\r\n };\r\n\r\n orcamentoModal(id) {\r\n\r\n const dialogRef = this.dialog.open(OrcamentoCadastroComponent, {\r\n data: {\r\n orcamentoId: id\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n nfeModal(id: number) {\r\n\r\n const dialogRef = this.dialog.open(NfeCadastroComponent, {\r\n data: {\r\n nfeId: id,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n contratoModal(id) {\r\n\r\n const dialogRef = this.dialog.open(ContratoCadastroComponent, {\r\n data: {\r\n contratoId: id,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n remessaModal(id) {\r\n\r\n const dialogRef = this.dialog.open(RemessaCadastroComponent, {\r\n data: { remessaId: id },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n faturaModal(id: number, faturaTipo: number) {\r\n\r\n const dialogRef = this.dialog.open(FaturaCadastroComponent, {\r\n data: {\r\n faturaId: id,\r\n faturaTipo: faturaTipo\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n contaModal(tpConta: number, contaId: number, tipoParceiro: number) {\r\n\r\n const dialogRef = this.dialog.open(ContaCadastroComponent, {\r\n data: {\r\n contaId: contaId,\r\n tpConta: tpConta,\r\n tipoParceiro: tipoParceiro\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n }\r\n\r\n caixaMovimentoModal(caixaMovimentoId) {\r\n\r\n const dialogRef = this.dialog.open(CaixaMovimentoComponent, {\r\n data: {\r\n caixaMovimentoId: caixaMovimentoId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n estoqueMovimentoModal(estoqueMovimentoId) {\r\n\r\n const dialogRef = this.dialog.open(EstoqueMovimentoComponent, {\r\n data: {\r\n estoqueMovimentoId: estoqueMovimentoId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n };\r\n\r\n PreencheTipoDocumento(tipoDocumentoDestino) {\r\n var texto = \"\";\r\n\r\n switch (tipoDocumentoDestino) {\r\n case 0:\r\n texto = \"Compra\";\r\n break;\r\n case 1:\r\n texto = \"Venda\";\r\n break;\r\n case 2:\r\n texto = \"Devolução\";\r\n break;\r\n case 3:\r\n texto = \"Produção\";\r\n break;\r\n case 4:\r\n texto = \"Orçamento\";\r\n break;\r\n case 5:\r\n texto = \"NFe\";\r\n break;\r\n case 6:\r\n texto = \"Contrato\";\r\n break;\r\n case 7:\r\n texto = \"Remessa\";\r\n break;\r\n case 8:\r\n texto = \"Fatura de Venda\";\r\n break;\r\n case 9:\r\n texto = \"Fatura de Compra\";\r\n break;\r\n case 10:\r\n texto = \"Conta a Receber\";\r\n break;\r\n case 11:\r\n texto = \"Conta a Pagar\";\r\n break;\r\n case 12:\r\n texto = \"Caixa Movimento\";\r\n break;\r\n case 13:\r\n texto = \"Estoque Movimento\";\r\n break;\r\n case 23:\r\n texto = \"Oportunidade\";\r\n break;\r\n case 24:\r\n texto = \"Ordem de Serviço\";\r\n break;\r\n }\r\n return texto;\r\n }\r\n\r\n visualizaDocumento() {\r\n\r\n var parametros: any = {\r\n tipoOrigem: this.tipoOrigem,\r\n idOrigem: this.idDocumento\r\n };\r\n\r\n this.documentoService.getVisualizaDocumento(parametros).subscribe(data => {\r\n\r\n this.documentos = data.body;\r\n\r\n });\r\n }\r\n}\r\n","\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    AçõesTipo DestinoId Documento DestinoObservações
    \r\n \r\n edit\r\n \r\n {{PreencheTipoDocumento(documentoRelacionado.tipoDocumentoDestino)}}{{documentoRelacionado.idDocumentoDestino}}{{documentoRelacionado.descricao}}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n","export class DocumentoTemplate {\r\n documentoTemplateId: number = 0;\r\n documentoTipo: number = 0;\r\n html: string = ''\r\n saguiClienteId: number = 0\r\n descricao: string = '';\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class DocumentoTemplateService {\r\n\r\n getDocumentoTemplates(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/documentotemplate/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n getDocumentoTemplate(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/documentotemplate/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postDocumentoTemplate(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/documentotemplate/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putDocumentoTemplate(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/documentotemplate/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteDocumentoTemplate(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/documentotemplate/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class DocumentoService {\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n \r\n const params = {\r\n id: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/documento/visualizapororigemtipoorigem', { observe: 'response', params })\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Location } from '@angular/common'; \r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { EmbalagemService } from '../shared/embalagem.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Embalagem } from '../shared/embalagem.model';\r\n\r\nexport interface DialogData {\r\n embalagemId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'embalagem-cadastro',\r\n templateUrl: 'embalagem-cadastro.component.html',\r\n})\r\n\r\nexport class EmbalagemCadastroComponent {\r\n\r\n empresas: any = [];\r\n embalagems: any = [];\r\n embalagemItens: any = [];\r\n embalagemCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IEmbalagem: DialogData,\r\n private embalagemService: EmbalagemService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.embalagemCadastroForm = this._formBuilder.group(new Embalagem());\r\n\r\n if (this.IEmbalagem.embalagemId > 0) {\r\n\r\n this.buscarEmbalagem(this.IEmbalagem.embalagemId);\r\n\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n\r\n buscarEmbalagem(embalagemId: number) {\r\n\r\n this.embalagemService.getEmbalagem(embalagemId).subscribe(data => {\r\n\r\n this.InsereDadosEmbalagem(data.body);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n\r\n InsereDadosEmbalagem(data: any) {\r\n\r\n this.embalagemCadastroForm.patchValue(data);\r\n\r\n this.embalagemItens = data.embalagemItens;\r\n }\r\n\r\n cancelarEmbalagem(cancelarId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente Cancelar essa embalagem?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.embalagemService.deleteEmbalagem(cancelarId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Cancelado com Sucesso\");\r\n\r\n this.buscarEmbalagem(cancelarId);\r\n\r\n });\r\n }\r\n });\r\n };\r\n\r\n salvar(embalagemForm): void {\r\n\r\n\r\n if (embalagemForm.value.embalagemId == undefined) {\r\n\r\n this.embalagemService.postEmbalagem(embalagemForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarEmbalagem(data.body.embalagemId);\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n }\r\n else {\r\n this.embalagemService.putEmbalagem(embalagemForm.value, embalagemForm.value.embalagemId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarEmbalagem(embalagemForm.value.embalagemId);\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n\r\n };\r\n}\r\n","\r\n
    \r\n

    Embalagem {{embalagemCadastroForm.value.embalagemId}}

    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Data da Embalagem\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Itens

    \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      Cod.ProdutoQuantidade
      {{embalagemitem.codProd}}{{embalagemitem.descricao}}{{embalagemitem.quantidade}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","export class Embalagem {\r\n\r\n embalagemId: number = 0;\r\n\r\n embalagemStatus: number = 0;\r\n\r\n produtoId: number = 0;\r\n\r\n peso: number = 0;\r\n\r\n embalagemNumero: string = '';\r\n\r\n remessaId: number = 0;\r\n\r\n dataEmbalagem: Date = new Date(); \r\n\r\n usuarioCriador: string = '';\r\n\r\n empresaId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class EmbalagemService {\r\n\r\n postVisualizaEmbalagemsPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/embalagem/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmbalagem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/embalagem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postEmbalagem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/embalagem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putEmbalagem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/embalagem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteEmbalagem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/embalagem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/embalagem/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { EstoqueMovimentoService } from '../shared/estoque-movimento.service';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { EstoqueMovimento } from '../shared/estoque-movimento.model';\r\n\r\nexport interface DialogData {\r\n estoqueId: number;\r\n estoqueMovimentoId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'estoque-movimento',\r\n templateUrl: 'estoque-movimento.component.html',\r\n})\r\n\r\nexport class EstoqueMovimentoComponent {\r\n\r\n estoqueMovimentoForm: FormGroup;\r\n maximizado: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IEstoqueMovimento: DialogData,\r\n private estoqueMovimentoService: EstoqueMovimentoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.estoqueMovimentoForm = this._formBuilder.group(new EstoqueMovimento());\r\n\r\n if (this.IEstoqueMovimento.estoqueMovimentoId > 0) {\r\n\r\n this.buscarEstoqueMovimento(this.IEstoqueMovimento.estoqueMovimentoId);\r\n\r\n } else {\r\n\r\n this.estoqueMovimentoForm.get('estoqueId').setValue(this.IEstoqueMovimento.estoqueId);\r\n\r\n } \r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n\r\n buscarEstoqueMovimento(estoqueMovimentoId: number) {\r\n\r\n this.estoqueMovimentoService.getEstoqueMovimento(estoqueMovimentoId).subscribe(data => {\r\n\r\n this.estoqueMovimentoForm.patchValue(data.body);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.estoqueMovimentoForm.value.estoqueMovimentoId == 0) {\r\n\r\n this.estoqueMovimentoService.postEstoqueMovimento(this.estoqueMovimentoForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.estoqueMovimentoService.putEstoqueMovimento(this.estoqueMovimentoForm.value, this.estoqueMovimentoForm.value.estoqueMovimentoId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n };\r\n}\r\n","\r\n
      \r\n

      Estoque Movimento

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Direção\r\n \r\n Entrada\r\n Saída\r\n \r\n \r\n
      \r\n
      \r\n \r\n Descrição\r\n \r\n \r\n \r\n Quantidade\r\n \r\n \r\n
      \r\n
      \r\n \r\n Documento\r\n \r\n Exemplo: Número da NF-e que criou a movimentação\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ","export class EstoqueMovimento {\r\n\r\n estoqueMovimentoId: number = 0;\r\n\r\n //0 - entrada do estoque, 1 - saída\r\n direcao: number = 0;\r\n\r\n descricao: string = '';\r\n\r\n quantidade: number = 0;\r\n\r\n valor: number = 0;\r\n\r\n data: Date = new Date();\r\n\r\n numLote: number = 0;\r\n\r\n estoqueId: number = 0;\r\n\r\n //Referência para Notas Fiscais\r\n documento: string = '';\r\n\r\n saldo: number = 0;\r\n\r\n estoqueLoteId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class EstoqueMovimentoService {\r\n\r\n getEstoqueMovimentos(parametros: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/estoquemovimento/visualizatodas/',parametros, { observe: 'response'})\r\n }\r\n\r\n getEstoqueMovimento(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/estoquemovimento/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postEstoqueMovimento(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/estoquemovimento/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putEstoqueMovimento(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/estoquemovimento/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteEstoqueMovimento(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/estoquemovimento/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n\r\nexport interface DialogData {\r\n faturaItensCodigoServicoDto: any\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirmacao-divergencia-cservico-dialog',\r\n templateUrl: './confirmacao-divergencia-cservico-dialog.component.html',\r\n styleUrls: ['./confirmacao-divergencia-cservico-dialog.component.css']\r\n})\r\nexport class ConfirmacaoDivergenciaCservicoDialogComponent implements OnInit {\r\n maximizado: boolean;\r\n faturaItensCodigoServicoDto: any;\r\n displayedColumns: string[] = ['itens', 'codigoServico'];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n this.faturaItensCodigoServicoDto = this.data.faturaItensCodigoServicoDto;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onYesClick(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('100%', '100vh');\r\n } else {\r\n this.dialogRef.updateSize('80%', '100vh');\r\n }\r\n\r\n this.maximizado = false;\r\n }\r\n\r\n}\r\n","\r\n\r\n
      \r\n

      Itens com códigos de serviço diferentes

      \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n \r\n \r\n

      \r\n Existem itens com códigos de serviço diferentes. Eles serão agrupados e criadas\r\n {{ faturaItensCodigoServicoDto.length }} notas fiscais/contas a receber, uma para cada grupo de itens.\r\n

      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n Serviço/Produto\r\n \r\n
      \r\n  {{faturaItem.codProd}} - {{faturaItem.descricao}}\r\n
      \r\n
      \r\n
      \r\n\r\n \r\n \r\n Código de Serviço da Nota\r\n {{ item.codigoServico }} \r\n \r\n\r\n \r\n \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n mensagem: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-descontar-retencao-dialog',\r\n templateUrl: './descontar-retencao-dialog.component.html',\r\n styleUrls: ['./descontar-retencao-dialog.component.css']\r\n})\r\nexport class DescontarRetencaoDialogComponent implements OnInit {\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n\r\n }\r\n\r\n\r\n onSimDescontarRetencaoClick(): void {\r\n this.dialogRef.close(1);\r\n }\r\n\r\n onNaoDescontarRetencaoClick(): void {\r\n this.dialogRef.close(2);\r\n }\r\n\r\n\r\n onCancelarOperacaoClick(): void {\r\n this.dialogRef.close(3);\r\n }\r\n\r\n}\r\n","

      Confirmação de Retenção

      \r\n
      \r\n

      {{data.mensagem}}

      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Location } from '@angular/common';\r\nimport { FaturaService } from '../shared/fatura.service';\r\nimport { InfoDialogComponent } from 'src/app/core/dialogs/info-dialog/info-dialog.component';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { throwError } from 'rxjs';\r\n\r\n\r\nexport interface DialogData {\r\n erro: HttpErrorResponse;\r\n mensagem: string;\r\n titulo: string;\r\n faturaFormTemp: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-enviar-email-dialog',\r\n templateUrl: './enviar-email-dialog.component.html',\r\n styleUrls: ['./enviar-email-dialog.component.css']\r\n})\r\n\r\n\r\nexport class EnviarEmailDialogComponent implements OnInit {\r\n\r\n emailFile: any;\r\n fileName: string = \"\";\r\n\r\n constructor(\r\n private location: Location,\r\n public dialogReff: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private faturaService: FaturaService,\r\n public dialog: MatDialog,) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogReff.updateSize('80%');\r\n }\r\n else {\r\n this.dialogReff.updateSize('20%');\r\n }\r\n\r\n if (this.data.erro != null) {\r\n\r\n if (this.data.erro.status == 401) {\r\n\r\n this.data.mensagem = \"Sessão Expirada. Acesse novamente o sistema\";\r\n\r\n this.location.go(\"login\");\r\n }\r\n else {\r\n\r\n this.data.mensagem = \"Erro ao processar requisição\";\r\n\r\n if (this.data.erro.error != null) {\r\n if (this.data.erro.error.message != null) {\r\n this.data.mensagem = this.data.erro.error.message;\r\n } else {\r\n\r\n if (this.data.erro.error.errors != null) {\r\n const mensagens = Object.values(this.data.erro.error.errors).join('\\n');\r\n this.data.mensagem = mensagens.replace(/\\[(.*)\\]/g, '$1').replace(/\"/g, '');\r\n }\r\n else {\r\n this.data.mensagem = this.data.erro.error;\r\n }\r\n }\r\n\r\n if (this.data.erro.error.ExceptionMessage != undefined && this.data.erro.error.ExceptionMessage != null) {\r\n this.data.mensagem = this.data.erro.error.ExceptionMessage;\r\n }\r\n\r\n }\r\n else {\r\n\r\n if (this.data.erro.message != undefined) {\r\n\r\n this.data.mensagem = this.data.erro.message;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onFileSelected(event: any) {\r\n const file = event.target.files[0];\r\n this.emailFile = file;\r\n this.fileName = file.name;\r\n console.log(file)\r\n }\r\n\r\n onOkClick(): void {\r\n this.dialogReff.close();\r\n }\r\n\r\n EnviarEmail() {\r\n this.faturaService.postFaturaPorEmail(this.data.faturaFormTemp, this?.emailFile).pipe(\r\n tap(() => {\r\n const dialogReff = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Fatura agendada para ser enviada por e-mail\"\r\n }\r\n });\r\n }),\r\n catchError(() => {\r\n const dialogReff = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Ocorreu um erro ao enviar a fatura por e-mail.\"\r\n }\r\n });\r\n return throwError('Erro ao enviar a fatura por e-mail.');\r\n })\r\n ).subscribe();\r\n\r\n this.dialogReff.close();\r\n }\r\n\r\n}\r\n","

      {{data.titulo}}

      \r\n
      \r\n

      \r\n Para adicionar um arquivo como anexo, clique em 'Importar arquivo' e, em seguida, clique em 'Enviar'.

      \r\n Se não desejar adicionar nenhum arquivo, simplesmente clique em 'Enviar'.\r\n


      \r\n
      \r\n
      \r\n \r\n \"{{fileName}}\"\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n","import { forEach } from 'jszip';\r\nimport { TipoDocumento } from './../../Components/documentos-relacionados/shared/documentos-relacionados.model';\r\n'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport {\r\n MatDialog,\r\n MatDialogRef,\r\n MAT_DIALOG_DATA,\r\n} from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder, FormArray } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { catchError, debounceTime, switchMap } from 'rxjs/operators';\r\n\r\nimport { FaturaService } from '../shared/fatura.service';\r\nimport { FaturaItemComponent } from '../fatura-item/fatura-item.component';\r\n\r\nimport { DocumentoCadastroComponent } from '../../documento/documento-cadastro/documento-cadastro.component';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Fatura } from '../shared/fatura.model';\r\nimport { ContaCadastroComponent } from '../../financeiro/conta-cadastro/conta-cadastro.component';\r\nimport { FaturaParcela } from '../shared/fatura-parcela.model';\r\nimport { NfseCadastroComponent } from 'src/app/fiscal/nfse-cadastro/nfse-cadastro.component';\r\nimport { EnviarEmailDialogComponent } from '../enviar-email-dialog/enviar-email-dialog.component';\r\nimport { NfeCadastroComponent } from 'src/app/fiscal/nfe-cadastro/nfe-cadastro.component';\r\nimport { of } from 'rxjs';\r\nimport { ConfirmacaoDivergenciaCservicoDialogComponent } from '../confirmacao-divergencia-cservico-dialog/confirmacao-divergencia-cservico-dialog.component';\r\nimport { DescontarRetencaoDialogComponent } from '../descontar-retencao-dialog/descontar-retencao-dialog.component';\r\nimport {MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS} from '@angular/material-moment-adapter';\r\nimport { Moment } from 'moment';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, NativeDateAdapter} from '@angular/material/core';\r\nimport {MatDatepicker} from '@angular/material/datepicker';\r\n\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\nexport interface DialogData {\r\n faturaId: number;\r\n faturaTipo: number;\r\n faturaTipoDocumento: number;\r\n}\r\n\r\n@Component({\r\n selector: 'fatura-cadastro',\r\n templateUrl: 'fatura-cadastro.component.html',\r\n styleUrls: ['fatura-cadastro.component.css'],\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n\r\n {provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},\r\n ],\r\n\r\n})\r\nexport class FaturaCadastroComponent {\r\n fatura: any = {};\r\n empresa: any = {};\r\n parceiro: any = {};\r\n empresas: any = [];\r\n faturaEmpresas: any = [];\r\n grupoContas: any = [];\r\n centroCustos: any = [];\r\n caixas: any = [];\r\n faturas: any = [];\r\n parceiros: any[];\r\n faturaParcelas: any[];\r\n faturaCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n tpFatura: number = 0;\r\n textoFatura: string = 'Venda';\r\n textoConta: string = 'contareceber';\r\n textoContaView: string = 'Conta a Receber';\r\n permiteAlteracao: boolean = false;\r\n permiteFaturamento: boolean = false;\r\n itemAdicionado: boolean = false;\r\n filteredProdutos: any[];\r\n parcelas: any[];\r\n formParcelas: FormGroup;\r\n faturaNfsesAndContaDto = {\r\n faturaId: 0,\r\n nfseIds: [],\r\n contaParcelaIds: [],\r\n contaIds: []\r\n };\r\n\r\n itemsGroupedDto: any;\r\n integracaoSOC: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IFatura: DialogData,\r\n private faturaService: FaturaService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.maximizado = false;\r\n\r\n this.faturaCadastroForm = this._formBuilder.group(new Fatura());\r\n\r\n if (this.IFatura.faturaTipo == 0) {\r\n //this.textoTpFatura = 'faturavenda';\r\n this.textoFatura = 'Venda';\r\n this.textoConta = 'contareceber';\r\n this.textoContaView = 'Conta a Receber';\r\n } else {\r\n this.tpFatura = 1;\r\n //this.textoTpFatura = 'faturacompra';\r\n this.textoFatura = 'Compra';\r\n this.textoConta = 'contapagar';\r\n this.textoContaView = 'Conta a Pagar';\r\n }\r\n\r\n if (this.IFatura.faturaId > 0) {\r\n this.buscarFatura(this.IFatura.faturaId);\r\n } else {\r\n this.fatura = {};\r\n\r\n this.fatura.faturaTipo = this.IFatura.faturaTipo;\r\n\r\n this.fatura.faturaId = 0;\r\n\r\n this.faturaCadastroForm\r\n .get('faturaTipo')\r\n .setValue(this.fatura.faturaTipo);\r\n\r\n }\r\n\r\n\r\n this.buscarEmpresas(this.tpFatura);\r\n\r\n this.buscarIntegracaoSOC();\r\n\r\n this.faturaCadastroForm.addControl(\r\n 'parceiroAutoComplete',\r\n new FormControl('')\r\n );\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n this.faturaCadastroForm.get('valorLiquido').disable();\r\n\r\n if (this.IFatura.faturaTipoDocumento == 0) {\r\n this.faturaCadastroForm.value.documentoFiscal = 3;\r\n }\r\n }\r\n\r\n onChanges(): void {\r\n this.faturaCadastroForm\r\n .get('parceiroAutoComplete')\r\n .valueChanges.pipe(\r\n debounceTime(300),\r\n switchMap((value) =>\r\n value?.length >= 3\r\n ? this.faturaService.getParceiroPorNome(value, this.tpFatura)\r\n : []\r\n )\r\n )\r\n .subscribe((data) => (this.parceiros = data.body));\r\n\r\n this.faturaCadastroForm.get('empresaId').valueChanges.subscribe((value) => {\r\n if (value) {\r\n this.getgrupoContas(this.tpFatura, value);\r\n this.getCaixas(this.tpFatura, value);\r\n this.getCentroCustos(this.tpFatura, value);\r\n }\r\n });\r\n\r\n this.faturaCadastroForm.get('valorLiquido').disable();\r\n }\r\n\r\n buscarEmpresas(faturaTipo: number) {\r\n this.faturaService.getEmpresas(faturaTipo).subscribe((data) => {\r\n this.empresas = data.body;\r\n });\r\n }\r\n\r\n selecionaCadastroFinanceiroEmpresa(empresa) {\r\n this.faturaCadastroForm.get('caixaId').setValue(empresa.caixaIdentificador);\r\n this.faturaCadastroForm.get('grupoContaId').setValue(empresa.grupoContaIdentificador);\r\n this.faturaCadastroForm.get('centroCustoId').setValue(empresa.centroCustoIdentificador);\r\n this.faturaEmpresas.push(empresa);\r\n }\r\n\r\n getgrupoContas(faturaTipo: number, empresaId: number) {\r\n this.faturaService.getgrupoContas(faturaTipo, empresaId).subscribe((data) => {\r\n this.grupoContas = data.body;\r\n });\r\n }\r\n\r\n getCaixas(faturaTipo: number, empresaId: number) {\r\n this.faturaService.getCaixas(faturaTipo, empresaId).subscribe((data) => {\r\n this.caixas = data.body;\r\n });\r\n }\r\n\r\n getCentroCustos(faturaTipo: number, empresaId: number) {\r\n this.faturaService.getCentroCustos(faturaTipo, empresaId).subscribe((data) => {\r\n this.centroCustos = data.body;\r\n });\r\n }\r\n\r\n chosenYearHandler(normalizedYear: Moment) {\r\n let ctrlValue = this.faturaCadastroForm.get('mesAnoReferencia').value;\r\n if (!(ctrlValue instanceof Date)) {\r\n ctrlValue = new Date(ctrlValue);\r\n }\r\n ctrlValue.setFullYear(normalizedYear.year());\r\n this.faturaCadastroForm.get('mesAnoReferencia').setValue(ctrlValue);\r\n }\r\n \r\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker) {\r\n let ctrlValue = this.faturaCadastroForm.get('mesAnoReferencia').value;\r\n if (!(ctrlValue instanceof Date)) {\r\n ctrlValue = new Date(ctrlValue);\r\n }\r\n ctrlValue.setMonth(normalizedMonth.month());\r\n this.faturaCadastroForm.get('mesAnoReferencia').setValue(ctrlValue);\r\n datepicker.close();\r\n }\r\n\r\n buscarIntegracaoSOC() {\r\n this.faturaService.getIntegracoesSOC().subscribe(data => {\r\n if (data.body) {\r\n this.integracaoSOC = true;\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('100%', '100vh');\r\n } else {\r\n this.dialogRef.updateSize('80%', '100vh');\r\n }\r\n\r\n this.maximizado = false;\r\n }\r\n\r\n buscarFatura(faturaId: number) {\r\n this.faturaService.getFatura(faturaId).subscribe(\r\n (data) => {\r\n this.InsereDadosFatura(data.body);\r\n },\r\n (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n );\r\n }\r\n\r\n cancelarFatura(cancelarId) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: 'Confirmação',\r\n mensagem:\r\n 'Deseja realmente Cancelar essa fatura? \\n' +\r\n 'Esse processo também irá cancelar a Conta e Boletos vinculados se houver. \\n' +\r\n 'Não serão cancelados boletos ou parcelas vencidas',\r\n },\r\n maxWidth: '200px',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.faturaService.deleteFatura(cancelarId).subscribe(\r\n (data) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Sucesso',\r\n mensagem: 'Registro Cancelado com Sucesso',\r\n },\r\n });\r\n\r\n this.buscarFatura(cancelarId);\r\n },\r\n (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n imprimir(): void {\r\n if(this.faturaCadastroForm.value.valorLiquido == null){\r\n this.faturaCadastroForm.value.valorLiquido == 0\r\n }\r\n if(this.faturaCadastroForm.value.valorTotal == null){\r\n this.faturaCadastroForm.value.valorTotal == 0\r\n }\r\n this.faturaService\r\n .postImprimir(this.faturaCadastroForm.value)\r\n .subscribe((data) => {\r\n\r\n let titulo = 'Fatura';\r\n\r\n this.htmlPrinterService.imprimirConteudoTinyMCE(data.body.htmlString);\r\n });\r\n\r\n \r\n }\r\n\r\n \r\n\r\n PreencherTabela(cliente: any) {\r\n if (cliente != undefined) {\r\n this.fatura.clienteId = cliente.clienteId;\r\n }\r\n }\r\n\r\n modalItem(faturaItemId: number): void {\r\n const dialogRef = this.dialog.open(FaturaItemComponent, {\r\n data: {\r\n faturaItemId: faturaItemId,\r\n fatura: this.faturaCadastroForm.value,\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarFatura(this.fatura.faturaId);\r\n });\r\n\r\n }\r\n\r\n excluiItem(faturaItemId) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse item?\"\r\n\r\n }\r\n\r\n });\r\n if (this.fatura.faturaItens.length == 0) {\r\n this.itemAdicionado = false;\r\n }\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.faturaService.deleteFaturaItem(faturaItemId).subscribe(data => {\r\n this.buscarFatura(this.fatura.faturaId);\r\n\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n DeleteFaturaParcela(faturaParcelaId) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: 'Confirmação',\r\n mensagem: 'Deseja realmente excluir essa parcela?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.faturaService.deleteFaturaParcela(faturaParcelaId).subscribe(\r\n (data) => {\r\n this.buscarFatura(this.fatura.faturaId);\r\n },\r\n (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n CalculaValorSemRetencoes() {\r\n this.faturaCadastroForm.get('valorSemRetencoes').value;\r\n\r\n if (this.faturaCadastroForm.get('valorLiquido').value > 0) {\r\n var valorSemRetencoes = this.faturaCadastroForm.get('valorLiquido').value;\r\n\r\n if (this.faturaCadastroForm.get('issRetido').value) {\r\n valorSemRetencoes =\r\n valorSemRetencoes - this.faturaCadastroForm.get('valorIss').value;\r\n }\r\n\r\n if (this.faturaCadastroForm.get('pisRetido').value) {\r\n valorSemRetencoes =\r\n valorSemRetencoes - this.faturaCadastroForm.get('valorPis').value;\r\n }\r\n\r\n if (this.faturaCadastroForm.get('cofinsRetido').value) {\r\n valorSemRetencoes =\r\n valorSemRetencoes - this.faturaCadastroForm.get('valorCofins').value;\r\n }\r\n\r\n if (this.faturaCadastroForm.get('csllRetido').value) {\r\n valorSemRetencoes =\r\n valorSemRetencoes - this.faturaCadastroForm.get('valorCsll').value;\r\n }\r\n\r\n if (this.faturaCadastroForm.get('irRetido').value) {\r\n valorSemRetencoes =\r\n valorSemRetencoes - this.faturaCadastroForm.get('valorIr').value;\r\n }\r\n\r\n if (this.faturaCadastroForm.get('inssRetido').value) {\r\n valorSemRetencoes =\r\n valorSemRetencoes - this.faturaCadastroForm.get('valorInss').value;\r\n }\r\n\r\n this.faturaCadastroForm\r\n .get('valorSemRetencoes')\r\n .setValue(valorSemRetencoes);\r\n }\r\n }\r\n\r\n VisualizaFluxoDocumentos(): void {\r\n const dialogRef = this.dialog.open(DocumentoCadastroComponent, {\r\n data: {\r\n tipoOrigem: 8,\r\n idDocumento: this.fatura.faturaId,\r\n },\r\n maxHeight: '100vh',\r\n });\r\n }\r\n\r\n verificarFaturaTipo(faturaTipo: number) {\r\n if (faturaTipo == 0) {\r\n this.textoFatura = 'Venda';\r\n this.textoConta = 'contareceber';\r\n this.textoContaView = 'Conta a Receber';\r\n } else {\r\n this.tpFatura = 1;\r\n this.textoFatura = 'Compra';\r\n this.textoConta = 'contapagar';\r\n this.textoContaView = 'Conta a Pagar';\r\n }\r\n }\r\n\r\n verificaFaturaStatus(faturaStatus: number) {\r\n return this.faturaService.verificaFaturaStatus(faturaStatus);\r\n }\r\n\r\n GerarParcelas(Fatura) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: 'Gerar Novas Parcela',\r\n mensagem:\r\n 'Esse procedimento irá excluir as parcelas atuais e irá criar novas. Deseja continuar?',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.salvarParcelas(Fatura);\r\n }\r\n });\r\n }\r\n\r\n salvarParcelas(_fatura: any) {\r\n this.faturaService.postGerarParcelas(_fatura).subscribe((data) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Sucesso',\r\n mensagem: 'Parcelas geradas com sucesso',\r\n },\r\n });\r\n\r\n this.buscarFatura(_fatura.faturaId);\r\n });\r\n }\r\n\r\n async gerarNfseConta() {\r\n this.verififyifHaveGrupoContaIdAndCaixaIdInFatura();\r\n \r\n try {\r\n const data = await this.faturaService\r\n .postVerificaCServicoDiferentes(this.faturaCadastroForm.value)\r\n .toPromise();\r\n this.itemsGroupedDto = data.body;\r\n } catch (error) {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n\r\n let valorDivergencia = 0;\r\n let valorTotalDosServicosNfses = 0;\r\n let quantidadeNotas = 0;\r\n\r\n if (this.itemsGroupedDto.length > 0) {\r\n\r\n try {\r\n const buscaDivergencia = await this.faturaService\r\n .postBuscaValorRetencaoNfses(this.itemsGroupedDto)\r\n .toPromise();\r\n buscaDivergencia.body.forEach((item) => {\r\n valorDivergencia += item.valorServicos - item.valorLiquidoNfse;\r\n valorTotalDosServicosNfses += item.valorServicos;\r\n });\r\n\r\n quantidadeNotas = buscaDivergencia.body.length;\r\n } catch (error) {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n const mensagem = `Esta(s) nota(s) fiscal(is) conterá(ão) o valor de R$ ${valorDivergencia.toFixed(2)} em retenções. Deseja descontar o valor dessas retenções no boleto e na conta a receber gerados?`\r\n\r\n if (valorDivergencia > 0) {\r\n const confDialog = this.dialog.open(DescontarRetencaoDialogComponent, {\r\n data: {\r\n mensagem: mensagem,\r\n },\r\n });\r\n\r\n confDialog.afterClosed().subscribe((result) => {\r\n\r\n this.definirProximosPassosRetencao(result)\r\n\r\n\r\n });\r\n }else{\r\n this.definirProximosPassosRetencao(2);\r\n }\r\n }\r\n\r\n definirProximosPassosRetencao(result: number) {\r\n const documentoFiscal = this.faturaCadastroForm.value.documentoFiscal;\r\n const atualizaValoresRetencao = result == 1;\r\n\r\n if ((result == 1 || result == 2) && documentoFiscal == 2) {\r\n this.addNfse(true, atualizaValoresRetencao);\r\n }\r\n\r\n if ((result == 1 || result == 2) && documentoFiscal == 1) {\r\n if (this.itemsGroupedDto.length > 1) {\r\n const dialogConfirmaDivergencia = this.dialog.open(\r\n ConfirmacaoDivergenciaCservicoDialogComponent,\r\n {\r\n data: {\r\n faturaItensCodigoServicoDto: this.itemsGroupedDto,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '20vw',\r\n }\r\n );\r\n\r\n dialogConfirmaDivergencia.afterClosed().subscribe((dialogResult) => {\r\n if (dialogResult) {\r\n\r\n this.addNfse(true, atualizaValoresRetencao);\r\n }\r\n });\r\n } else {\r\n this.addNfse(true, atualizaValoresRetencao);\r\n }\r\n }\r\n }\r\n\r\n gerarNfeConta() {\r\n this.verififyifHaveGrupoContaIdAndCaixaIdInFatura();\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Gerar Conta\",\r\n mensagem: \"Esse procedimento irá gerar uma NF-e e \" +\r\n \"criar a Conta a Receber.\" +\r\n \"Deseja continuar?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(async result => {\r\n\r\n if (result) {\r\n this.gerarConta();\r\n this.gerarNFe(this.fatura.faturaId)\r\n }\r\n });\r\n }\r\n\r\n async deconstaValoreRetencoes() {\r\n let valorDivergencia = 0;\r\n let valorTotalDosServicosNfses = 0;\r\n let quantidadeNotas = 0;\r\n\r\n if (this.itemsGroupedDto.length > 0) {\r\n try {\r\n const buscaDivergencia = await this.faturaService\r\n .postBuscaValorRetencaoNfses(this.itemsGroupedDto)\r\n .toPromise();\r\n buscaDivergencia.body.forEach((item) => {\r\n valorDivergencia += item.valorServicos - item.valorLiquidoNfse;\r\n valorTotalDosServicosNfses += item.valorServicos;\r\n });\r\n\r\n quantidadeNotas = buscaDivergencia.body.length;\r\n } catch (error) {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n }\r\n\r\n const mensagem = `Foi identificada uma retenção no valor total de R$ ${valorDivergencia.toFixed(2)}. Deseja aplicar esse valor como desconto nas contas a receber geradas?`;\r\n\r\n if (valorDivergencia > 0) {\r\n const confDialog = this.dialog.open(DescontarRetencaoDialogComponent, {\r\n data: {\r\n mensagem: mensagem,\r\n },\r\n });\r\n\r\n const result = await confDialog.afterClosed().toPromise();\r\n return result;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n async gerarConta(geraSomenteNfse: boolean = false) {\r\n this.verififyifHaveGrupoContaIdAndCaixaIdInFatura();\r\n if (geraSomenteNfse && this.faturaCadastroForm.value.documentoFiscal == 1 ) {\r\n const resultado = await this.verificaDivergenciasCodigoServicosItens();\r\n\r\n if (!resultado) {\r\n return;\r\n }\r\n }\r\n\r\n this.faturaService\r\n .postGerarConta(this.faturaCadastroForm.value, false)\r\n .subscribe(\r\n (data) => {\r\n this.faturaNfsesAndContaDto.contaParcelaIds = data.body.contaParcelaIds;\r\n\r\n if (this.faturaNfsesAndContaDto?.contaParcelaIds?.length > 1) {\r\n this.openContAReceberNextTab();\r\n } else {\r\n this.abreModalConta(\r\n this.faturaCadastroForm.value.faturaTipo,\r\n data.body.contaIds[0],\r\n this.faturaCadastroForm.value.faturaTipo\r\n );\r\n }\r\n\r\n\r\n this.buscarFatura(this.fatura.faturaId);\r\n },\r\n (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n );\r\n }\r\n\r\n\r\n async gerarContaEBoleto(atualizaValoresRetencao: boolean, geraSomenteNfse: boolean = false) {\r\n this.verififyifHaveGrupoContaIdAndCaixaIdInFatura();\r\n if (geraSomenteNfse) {\r\n const resultado = await this.verificaDivergenciasCodigoServicosItens();\r\n\r\n if (!resultado) {\r\n return;\r\n }\r\n }\r\n\r\n this.faturaService\r\n .postGerarContaBoleto(this.faturaCadastroForm.value, atualizaValoresRetencao)\r\n .subscribe(\r\n (data) => {\r\n this.faturaNfsesAndContaDto.contaParcelaIds = data.body.contaParcelaIds;\r\n\r\n if (this.faturaNfsesAndContaDto?.contaParcelaIds?.length >= 1) {\r\n this.openContAReceberNextTab();\r\n } \r\n\r\n\r\n this.buscarFatura(this.fatura.faturaId);\r\n \r\n },\r\n (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n }\r\n );\r\n }\r\n\r\n verificaDivergenciasCodigoServicosItens(): Promise {\r\n return new Promise((resolve) => {\r\n if (this.faturaCadastroForm.value.documentoFiscal == 2 || this.faturaCadastroForm.value.faturaTipo == 1) {\r\n resolve(true);\r\n } else {\r\n this.faturaService.postVerificaCServicoDiferentes(this.faturaCadastroForm.value)\r\n .toPromise()\r\n .then((data) => {\r\n this.itemsGroupedDto = data.body;\r\n\r\n if(this.itemsGroupedDto.length < 2) {\r\n resolve(true);\r\n return;\r\n }\r\n\r\n const dialogConfirmaDivergencia = this.dialog.open(\r\n ConfirmacaoDivergenciaCservicoDialogComponent,\r\n {\r\n data: {\r\n faturaItensCodigoServicoDto: this.itemsGroupedDto,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '20vw',\r\n }\r\n );\r\n\r\n dialogConfirmaDivergencia.afterClosed().subscribe((dialogResult) => {\r\n if (!dialogResult) {\r\n resolve(false);\r\n } else {\r\n resolve(true);\r\n }\r\n });\r\n })\r\n .catch((error) => {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: 'Erro',\r\n erro: error,\r\n },\r\n });\r\n resolve(false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n async addNfse(gerarGerarConta: boolean, atualizaValoresRetencao: boolean, geraSomenteNfse: boolean = false) {\r\n this.verififyifHaveGrupoContaIdAndCaixaIdInFatura();\r\n if (geraSomenteNfse) {\r\n const resultado = await this.verificaDivergenciasCodigoServicosItens();\r\n\r\n if (!resultado) {\r\n return;\r\n }\r\n }\r\n\r\n this.faturaService\r\n .postGerarNfse(this.faturaCadastroForm.value)\r\n .pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n erro: error,\r\n mensagem: 'Erro ao gerar a NFSe',\r\n titulo: 'Erro'\r\n }\r\n });\r\n\r\n return of(null);\r\n })\r\n )\r\n .subscribe(async (data) => {\r\n if (data) {\r\n this.faturaNfsesAndContaDto.nfseIds = data.body.nfseIds;\r\n if (this.faturaNfsesAndContaDto.nfseIds.length >= 1) {\r\n if (gerarGerarConta) {\r\n \r\n this.gerarContaEBoleto(atualizaValoresRetencao);\r\n }\r\n\r\n this.verifyIfOpenNewWindowOrVisualizeNfse(data.body.nfseIds);\r\n \r\n } \r\n }\r\n });\r\n }\r\n\r\n verifyIfOpenNewWindowOrVisualizeNfse(nfseIds: number[]) {\r\n\r\n if (nfseIds.length > 1) {\r\n this.openNfseNextTab();\r\n } else {\r\n this.visualizarNfse(nfseIds[0]);\r\n }\r\n }\r\n\r\n private delay(ms: number): Promise {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n getNfsesAndContasByFaturaId(faturaId: number) {\r\n this.faturaService.getNfsesAndContasByFaturaId(faturaId).subscribe((data) => {\r\n this.faturaNfsesAndContaDto = data.body;\r\n });\r\n }\r\n\r\n gerarNFe(faturaId): void {\r\n\r\n this.faturaService.postGerarNfe(faturaId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"NF-e Gerada com Sucesso\"\r\n }\r\n });\r\n\r\n this.VisualizaNFe(data.body.nfeId);\r\n\r\n });\r\n }\r\n\r\n openNfseNextTab() {\r\n let nfseIds = this.faturaNfsesAndContaDto.nfseIds.join(',');\r\n let url = `#/fiscal/nfse?nfseIds=${nfseIds}`;\r\n window.open(url, '_blank');\r\n\r\n }\r\n\r\n openContAReceberNextTab() {\r\n let contaParcelaIds = this.faturaNfsesAndContaDto.contaParcelaIds;\r\n let url = `#/financeiro/contareceber?contaParcelaIds=${contaParcelaIds}`;\r\n window.open(url, '_blank');\r\n\r\n }\r\n\r\n VisualizaNFe(nfeId: number) {\r\n\r\n const dialogRef = this.dialog.open(NfeCadastroComponent, {\r\n data: {\r\n nfeId: nfeId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw',\r\n panelClass: ['custom-dialog', 'nf-z-index'],\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarFatura(this.IFatura.faturaId);\r\n });\r\n\r\n }\r\n\r\n DeterminaParceiro(parceiro: any) {\r\n if (this.tpFatura == 0) {\r\n this.faturaCadastroForm.get('parceiroId').setValue(parceiro.clienteId);\r\n } else {\r\n this.faturaCadastroForm.get('parceiroId').setValue(parceiro.fornecedorId);\r\n }\r\n }\r\n\r\n AdicionarNovaParcelaVazia() {\r\n var parcela: any = {};\r\n\r\n parcela.dataVencimento = new Date();\r\n parcela.valorParcela = 0;\r\n parcela.faturaId = this.fatura.faturaId;\r\n\r\n this.faturaParcelas.push(parcela);\r\n }\r\n\r\n trackByIndex(index: number, obj: any): any {\r\n return index;\r\n }\r\n\r\n EnviaEmail(faturaFormTemp: any) {\r\n const dialogRef = this.dialog.open(EnviarEmailDialogComponent, {\r\n data: {\r\n titulo: 'Enviar Email',\r\n faturaFormTemp: faturaFormTemp.value,\r\n },\r\n });\r\n }\r\n\r\n atualizarValorBruto() {\r\n let valorBruto = this.faturaCadastroForm.get('valorBruto').value;\r\n let valorDesconto = this.faturaCadastroForm.get('valorDesconto').value;\r\n\r\n let valorLiquido = valorBruto - valorDesconto;\r\n\r\n this.faturaCadastroForm.get('valorLiquido').setValue(valorLiquido);\r\n }\r\n\r\n visualizarNfse(id: number) {\r\n const ufId = this.empresa.municipio.uf.ufId;\r\n const municipioId = this.empresa.municipio.municipioId;\r\n\r\n\r\n const dialogRef = this.dialog.open(NfseCadastroComponent, {\r\n data: {\r\n nfseId: id,\r\n ufId: ufId,\r\n municipioId: municipioId,\r\n },\r\n panelClass: 'custom-visualizar-nfse-dialog',\r\n maxHeight: '100vh',\r\n });\r\n }\r\n\r\n abreModalConta(tpConta: number, contaId: number, tipoParceiro: number) {\r\n const dialogRef = this.dialog.open(ContaCadastroComponent, {\r\n data: {\r\n contaId: contaId,\r\n tpConta: tpConta,\r\n tipoParceiro: tipoParceiro,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw',\r\n panelClass: 'custom-visualizar-contaReceber-dialog',\r\n\r\n });\r\n }\r\n\r\n //Adicionando novas funcionalidade para o componente fatura\r\n\r\n //Função para buscar produtos por nome e empresas\r\n getProdutoPorNomeEEmpresasService(params: any) {\r\n if (params.empresasIds.length > 1) {\r\n params.empresasIds.splice(1, params.empresasIds.length - 1);\r\n }\r\n\r\n return this.faturaService.getProdutoPorNomeEEmpresas(params);\r\n }\r\n\r\n //Função para adicionar item na fatura\r\n onItensChange(itens: any[]): void {\r\n\r\n // Acessa o valor do array de faturaItens\r\n const faturaItens = itens\r\n // Atualiza as propriedades dos itens no array\r\n itens.forEach((item, index) => {\r\n const itemFormatado = {\r\n faturaParcelaId: item.faturaItemId || 0,\r\n descricao: item.descricao,\r\n qtdTributaria: item.quantidade || item.qtdTributaria,\r\n qtdComercial: item.quantidade || item.qtdComercial,\r\n codProd: item.codProd,\r\n faturaId: this.fatura.faturaId,\r\n valorDesconto: item.descontoUnitario,\r\n produto: item.produto || item.item,\r\n produtoId: item.produtoId,\r\n valorBruto: item.valorTotalBruto,\r\n valorTotal: item.valorTotalLiquido,\r\n vlrComercial: item.valorTotalLiquido,\r\n vlrTributario: item.valorTotalLiquido,\r\n valorUnitario: item.valorUnitario\r\n };\r\n\r\n // Atualiza o item no array existente\r\n if (faturaItens[index]) {\r\n Object.assign(faturaItens[index], itemFormatado);\r\n } else {\r\n faturaItens.push(itemFormatado);\r\n }\r\n });\r\n\r\n // Atualiza o valor do form control\r\n this.faturaCadastroForm.get('faturaItens').setValue(faturaItens, { emitEvent: false });\r\n\r\n }\r\n\r\n //Função para adicionar valor total bruto\r\n onValorTotalBrutoChange(valorTotalBruto: number) {\r\n this.faturaCadastroForm.get('valorBruto').setValue(valorTotalBruto);\r\n }\r\n\r\n //Função para adicionar descontos globalmente\r\n onDescontosAplicadosAosItensChange(descontosAplicadosAosItens: number) {\r\n this.faturaCadastroForm.get('descontosAplicadosAosItens').setValue(descontosAplicadosAosItens);\r\n this.faturaCadastroForm.get('somaDeTodosOsDescontos').setValue(descontosAplicadosAosItens + this.faturaCadastroForm.get('descontosAplicadosGlobalmente').value);\r\n }\r\n\r\n //Função para valor total liquido\r\n onValorTotalLiquidoChange(valorTotalLiquidoItens: number) {\r\n const valorTotalLiquido = valorTotalLiquidoItens - this.faturaCadastroForm.get('descontosAplicadosGlobalmente').value;\r\n this.faturaCadastroForm.get('valorLiquido').setValue(valorTotalLiquido);\r\n this.faturaCadastroForm.get('valorTotal').setValue(valorTotalLiquido);\r\n }\r\n\r\n //Função para adicionar parcelas\r\n onParcelasFinaisChange(parcelas: any[]) {\r\n const parcelasFinais = parcelas?.map((parcela: any) => ({\r\n faturaParcelaId: parcela.parcelaId,\r\n dataVencimento: parcela.dataVencimentoParcela,\r\n valorLiquido: parcela.valorLiquido,\r\n tipoPagamento: parcela.tipoPagamento\r\n }));\r\n\r\n this.faturaCadastroForm.get('faturaParcelas').setValue(parcelasFinais);\r\n this.validarSomaParcelasIgualValorLiquido();\r\n }\r\n\r\n validarSomaParcelasIgualValorLiquido(): boolean {\r\n const parcelas = this.faturaCadastroForm.get('faturaParcelas').value;\r\n const valorLiquidoTotal = this.faturaCadastroForm.get('valorLiquido').value;\r\n \r\n if (!parcelas || !valorLiquidoTotal) {\r\n return false;\r\n }\r\n\r\n const somaParcelas = parcelas.reduce((sum, parcela) => sum + (parcela.valorLiquido || 0), 0);\r\n return Math.abs(somaParcelas - valorLiquidoTotal) < 0.01;\r\n }\r\n\r\n validarQuantidadesItens(): boolean {\r\n if (!this.fatura?.faturaItens || this.fatura.faturaItens.length === 0) {\r\n return true;\r\n }\r\n return !this.fatura.faturaItens.some(item => item.qtdComercial <= 0);\r\n }\r\n\r\n salvar(faturaCadastroForm: FormGroup): void {\r\n let faturaForm = this.faturaCadastroForm;\r\n\r\n var fatura = this.fatura;\r\n\r\n fatura.cliente = null;\r\n fatura.empresa = null;\r\n\r\n if (this.tpFatura == 0) {\r\n fatura.faturaTipo = 0;\r\n } else {\r\n fatura.tpFatura = 1;\r\n }\r\n\r\n\r\n if (faturaForm.value.faturaId == 0 || faturaForm.value.faturaId == null) {\r\n if (faturaForm.value.faturaItens.length == 0) {\r\n this._snackBar.open('É necessário adicionar ao menos um item na fatura.', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n return;\r\n }\r\n\r\n //estabelece o número de parcelas\r\n faturaForm.value.NumeroParcelas = faturaForm.value.faturaParcelas.length;\r\n\r\n //seta os valores dos itens da fatura\r\n faturaForm.value.faturaItens.forEach(item => {\r\n item.qtdComercial = item.quantidade;\r\n item.qtdTributaria = item.quantidade;\r\n item.valorUnitarioComercial = item.valorUnitario;\r\n item.valorUnitarioTributavel = item.valorUnitario;\r\n item.ValorUnitario = item.valorUnitario;\r\n item.valorBruto = item.valorUnitario * item.quantidade;\r\n item.valorServicos = item.valorBruto;\r\n item.valorDesconto = item.descontoUnitario * item.quantidade;\r\n item.valorTotal = item.valorUnitario * item.quantidade;\r\n item.valorTotalLiquido = item.valorTotal - item.valorDesconto;\r\n item.grupoContaId = faturaForm.value.grupoContaId;\r\n });\r\n\r\n\r\n //verificar se as parcelas estão preenchidas\r\n if (faturaForm.value.faturaParcelas.length == 0) {\r\n this._snackBar.open('É necessário adicionar ao menos uma parcela na fatura.', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n return;\r\n }\r\n\r\n //pegar os valores das parcelas\r\n this.parcelas = faturaForm.value.faturaParcelas;\r\n\r\n //pegar o tipo de pagamento das parcelas e salva no tipo de pagamento da fatura\r\n faturaForm.value.tipoPagamento = this.parcelas[0].tipoPagamento;\r\n\r\n //seta os valores das parcelas\r\n this.parcelas.forEach(parcela => {\r\n parcela.faturaParcelaId = 0;\r\n parcela.parcelaId = 0;\r\n parcela.dataVencimento = parcela.dataVencimento;\r\n parcela.valorParcela = parcela.valorLiquido;\r\n parcela.valorBruto = parcela.valorLiquido;\r\n\r\n });\r\n\r\n faturaForm.value.valorLiquido = faturaForm.value.valorTotal;\r\n faturaForm.value.faturaParcelas = this.parcelas;\r\n faturaForm.value.faturaTipoDocumento = this.IFatura.faturaTipoDocumento;\r\n\r\n this.faturaService.NovaFatura(faturaForm.value).subscribe((data) => {\r\n this._snackBar.open('Fatura criado com sucesso!', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'sucess']\r\n });\r\n\r\n this.buscarFatura(data.body.faturaId);\r\n });\r\n } else {\r\n let faturaTemp = faturaForm.value;\r\n\r\n faturaTemp.faturaParcelas = faturaForm.value.faturaParcelas;\r\n\r\n //adicionar os valores das parcelas\r\n faturaTemp.faturaParcelas.forEach(parcela => {\r\n parcela.dataVencimento = parcela.dataVencimento;\r\n parcela.valorParcela = parcela.valorLiquido;\r\n parcela.valorBruto = parcela.valorLiquido;\r\n });\r\n\r\n this.faturaService\r\n .putFatura(faturaTemp, faturaTemp.faturaId)\r\n .subscribe((data) => {\r\n this._snackBar.open('Registro Salvo com Sucesso');\r\n\r\n this.buscarFatura(faturaForm.value.faturaId);\r\n });\r\n }\r\n }\r\n\r\n InsereDadosFatura(data: any) {\r\n this.faturaCadastroForm.patchValue(data.fatura);\r\n let nomeAutoCompleteParceiro = data.parceiro.nomeFantasia !== \"\" ? data.parceiro.nomeFantasia : data.parceiro.razaoSocial;\r\n this.faturaCadastroForm\r\n .get('parceiroAutoComplete')\r\n .setValue(nomeAutoCompleteParceiro);\r\n\r\n this.fatura = data.fatura;\r\n\r\n this.empresa = data.empresa;\r\n this.parceiro = data.parceiro;\r\n\r\n // Seta os valores dos itens da fatura\r\n data.fatura.faturaItens.forEach(item => {\r\n item.quantidade = item.qtdComercial;\r\n item.descontoUnitario = item.valorDesconto / item.quantidade;\r\n item.valorTotalLiquido = item.valorTotal;\r\n item.valorTotalBruto = item.valorBruto;\r\n });\r\n\r\n let parcelas = data.fatura.faturaParcelas;\r\n\r\n this.faturaParcelas = parcelas.map(parcela => ({\r\n dataVencimento: new Date(parcela.dataVencimento),\r\n faturaParcelaId: parcela.faturaParcelaId,\r\n valorLiquido: parcela.valorParcela,\r\n tipoPagamento: this.fatura.tipoPagamento\r\n }));\r\n\r\n this.faturaCadastroForm.get('faturaParcelas').setValue(this.faturaParcelas);\r\n\r\n this.verificarFaturaTipo(this.fatura.faturaTipo);\r\n this.getgrupoContas(this.tpFatura, this.empresa.empresaId);\r\n\r\n this.faturas = [this.fatura];\r\n\r\n if (this.fatura.faturaStatus == 4 || this.fatura.faturaStatus == 99 || this.fatura.faturaStatus == 1) {\r\n this.faturaCadastroForm.disable();\r\n this.permiteAlteracao = false;\r\n }\r\n\r\n if (this.fatura.faturaId > 0 && this.fatura.contaId == 0) {\r\n this.permiteFaturamento = true;\r\n } else {\r\n this.permiteFaturamento = false;\r\n }\r\n\r\n this.faturaCadastroForm.value.valorLiquido = 0;\r\n\r\n for (let i = 0; i < this.faturas[0].faturaItens.length; i++) {\r\n this.faturaCadastroForm.value.valorLiquido +=\r\n this.faturas[0].faturaItens[i].valorLiquido;\r\n }\r\n\r\n this.itemAdicionado = this.fatura.faturaItens.length > 0;\r\n\r\n this.faturaEmpresas.push(this.empresa);\r\n this.getNfsesAndContasByFaturaId(this.fatura.faturaId);\r\n }\r\n\r\n verififyifHaveGrupoContaIdAndCaixaIdInFatura() {\r\n\r\n if (this.faturaCadastroForm.value.grupoContaId == 0 || this.faturaCadastroForm.value.caixaId == 0) {\r\n this._snackBar.open('Por favor, selecione a Categoria de Contas a Receber e o Caixa para continuar.', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n\r\n throw new Error('É necessário selecionar Categoria do Contas a Receber e Caixa.');\r\n }\r\n }\r\n}\r\n","\r\n
      \r\n

      Fatura - {{fatura.faturaId}} - {{verificaFaturaStatus(fatura.faturaStatus)}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n * Parcelas: A soma das parcelas não está batendo com o valor total\r\n
      \r\n
      \r\n * Itens: A quantidade de itens deve ser maior que zero.\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Dados Gerais da Fatura

      \r\n
      \r\n
      \r\n \r\n Descrição\r\n \r\n \r\n
      \r\n
      \r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n \r\n Parceiro\r\n \r\n \r\n \r\n CNPJ/CPF: {{parceiro.cnpj == null || parceiro.cnpj == undefined || parceiro.cnpj == '' ?\r\n parceiro.cpf : parceiro.cnpj}} - {{parceiro.razaoSocial}}\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Documento Fiscal:\r\n \r\n Nfse\r\n Recibo\r\n \r\n \r\n \r\n Mês de Referência\r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Status Integração com o SOC\r\n \r\n Desligada\r\n Ligada\r\n Processada\r\n \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Itens da Fatura

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Dados Financeiros

      \r\n
      \r\n \r\n Categoria de {{textoContaView}}\r\n \r\n \r\n {{grupoConta.descricao}}\r\n \r\n \r\n \r\n \r\n Caixa (Fluxo de Caixa)\r\n \r\n \r\n {{caixa.nome}}\r\n \r\n \r\n \r\n \r\n Centro de Custo\r\n \r\n \r\n {{centroCusto.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n\r\n
      \r\n","'use strict'\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FaturaService } from '../shared/fatura.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { FaturaItem } from '../shared/fatura-item.model';\r\nimport { Produto } from '../../produto/shared/produto.model';\r\nimport { Estoque } from '../../estoque/shared/estoque.model';\r\n\r\n\r\nexport interface DialogData {\r\n faturaItemId: number;\r\n fatura: any;\r\n}\r\n\r\n@Component({\r\n selector: 'fatura-item',\r\n templateUrl: 'fatura-item.component.html',\r\n})\r\n\r\nexport class FaturaItemComponent {\r\n\r\n fatura: any = {};\r\n listaServicos: any = [];\r\n faturaItemForm: FormGroup;\r\n maximizado: boolean;\r\n faturaItemId: number;\r\n faturaitem: any = {};\r\n produtos: Produto[];\r\n estoques: Estoque[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IFaturaItem: DialogData,\r\n private faturaService: FaturaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.fatura = this.IFaturaItem.fatura;\r\n\r\n this.faturaItemId = this.IFaturaItem.faturaItemId;\r\n\r\n this.faturaItemForm = this._formBuilder.group(new FaturaItem());\r\n\r\n //this.faturaItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.faturaItemForm.get('faturaId').setValue(this.fatura.faturaId);\r\n\r\n this.faturaItemForm.get('unComercial').setValue('UN');\r\n\r\n this.faturaItemForm.get('qtdComercial').setValue(1);\r\n\r\n //this.faturaItemForm.get('orig').setValue(0);\r\n\r\n this.onChanges();\r\n\r\n //this.buscaCfop();\r\n\r\n //this.getListaServico();\r\n\r\n this.buscarFaturaItem();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.faturaItemForm\r\n .get('valorBruto')\r\n .valueChanges\r\n .subscribe(data => this.calcularValorBruto(data, 0));\r\n \r\n this.faturaItemForm\r\n .get('valorDesconto')\r\n .valueChanges\r\n .subscribe(data => this.calcularValorBruto(0, data));\r\n }\r\n\r\n calcularValorBruto(valorBruto: number, valorDesconto: number) {\r\n\r\n if (valorDesconto == 0)\r\n valorDesconto = this.faturaItemForm.get('valorDesconto').value;\r\n\r\n if (valorBruto == 0)\r\n valorBruto = this.faturaItemForm.get('valorBruto').value;\r\n \r\n let valorTotal = valorBruto - valorDesconto;\r\n\r\n this.faturaItemForm.get('valorTotal').setValue(valorTotal);\r\n\r\n }\r\n\r\n calculavalorLiquido(): void {\r\n\r\n let valorLiquidoNfse = this.faturaItemForm.get('valorServicos').value\r\n - this.faturaItemForm.get('valorPis').value\r\n - this.faturaItemForm.get('valorCofins').value\r\n - this.faturaItemForm.get('valorInss').value\r\n - this.faturaItemForm.get('valorIr').value\r\n - this.faturaItemForm.get('valorCsll').value\r\n - this.faturaItemForm.get('outrasRetencoes').value\r\n - this.faturaItemForm.get('valorIssRetido').value\r\n - this.faturaItemForm.get('descontoIncondicionado').value\r\n - this.faturaItemForm.get('descontoCondicionado').value;\r\n\r\n let valorLiquidoNfseTemp = valorLiquidoNfse.toFixed(2);\r\n\r\n this.faturaItemForm.get('valorLiquidoNfse').setValue(valorLiquidoNfseTemp);\r\n }\r\n\r\n calculaImpostos(): void {\r\n\r\n if (this.fatura.faturaTipo == 1) {\r\n let valorBruto = this.faturaItemForm.get('valorBruto').value;\r\n this.faturaItemForm.get('valorBruto').setValue(valorBruto);\r\n\r\n this.faturaService.postCalculaImposto(this.faturaItemForm.value).subscribe(data => {\r\n\r\n this.faturaItemForm.get('aliquotaIssqn').setValue(data.body.aliquotaIssqn);\r\n this.faturaItemForm.get('valorPis').setValue(data.body.valorPis);\r\n this.faturaItemForm.get('valorCofins').setValue(data.body.valorCofins);\r\n this.faturaItemForm.get('valorIr').setValue(data.body.valorIr);\r\n this.faturaItemForm.get('valorInss').setValue(data.body.valorInss);\r\n this.faturaItemForm.get('valorCsll').setValue(data.body.valorCsll);\r\n this.faturaItemForm.get('baseCalculo').setValue(data.body.baseCalculo);\r\n this.faturaItemForm.get('valorLiquidoNfse').setValue(data.body.valorLiquidoNfse);\r\n this.faturaItemForm.get('valorIss').setValue(data.body.valorIss);\r\n this.faturaItemForm.get('valorIssRetido').setValue(data.body.valorIssRetido);\r\n this.faturaItemForm.get('issRetido').setValue(data.body.issRetido);\r\n\r\n });\r\n }\r\n }\r\n\r\n buscarFaturaItem() {\r\n\r\n if (this.faturaItemId > 0) {\r\n\r\n this.faturaService.getFaturaItem(this.faturaItemId).subscribe(data => {\r\n this.faturaItemForm.patchValue(data.body);\r\n this.faturaItemForm.get('produtoAutoComplete').setValue(data.body.descricao);\r\n\r\n });\r\n }\r\n }\r\n\r\n getListaServico() {\r\n\r\n this.faturaService.getListaServicos().subscribe(data => {\r\n\r\n this.listaServicos = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n salvar() {\r\n\r\n if (this.faturaItemId == 0) {\r\n\r\n this.faturaItemForm.value.faturaId = this.fatura.faturaId;\r\n\r\n this.faturaService.postIncluiFaturaItem(this.faturaItemForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.faturaService.putAtualizaFaturaItem(this.faturaItemForm.value, this.faturaItemForm.value.faturaItemId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n };\r\n\r\n onChangeValorComercial() {\r\n\r\n let vlrComercial = this.faturaItemForm.get('vlrComercial').value;\r\n let qtdComercial = this.faturaItemForm.get('qtdComercial').value;\r\n let valorBruto = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.faturaItemForm.get('valorBruto').setValue(valorBruto.toFixed(2));\r\n this.faturaItemForm.get('qtdTributaria').setValue(qtdComercial);\r\n this.faturaItemForm.get('qtdComercial').setValue(qtdComercial);\r\n this.faturaItemForm.get('vlrTributario').setValue(vlrComercial);\r\n this.faturaItemForm.get('vlrComercial').setValue(vlrComercial);\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n}\r\n","\r\n
      \r\n

      Fatura Item

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Descrição\r\n \r\n \r\n
      \r\n
      \r\n \r\n Unidade de Medida\r\n \r\n \r\n \r\n Quantidade\r\n \r\n \r\n \r\n Valor Unitário\r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n \r\n Valor Desconto\r\n \r\n \r\n \r\n Com Desconto\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ","import { Produto } from \"src/app/produto/shared/produto.model\";\r\n\r\nexport class FaturaItem {\r\n\r\n faturaItemId: number = 0;\r\n\r\n cfop: number = 0;\r\n\r\n produtoId: number = 0;\r\n\r\n vFrete: number = 0;\r\n\r\n vSeg: number = 0;\r\n\r\n vOutro: number = 0;\r\n\r\n indTot: number = 0;\r\n\r\n codProd: string = '';\r\n\r\n descricao: string = '';\r\n\r\n ncm: string = '';\r\n\r\n ean: string = '';\r\n\r\n eanTrib: string = '';\r\n\r\n unTributaria: string = '';\r\n\r\n qtdTributaria: number = 0;\r\n\r\n vlrTributario: number = 0;\r\n\r\n valorUnitario: number = 0;\r\n\r\n unComercial: string = '';\r\n\r\n qtdComercial: number = 0;\r\n\r\n vlrComercial: number = 0;\r\n\r\n extipi: number = 0;\r\n\r\n infAdProd: string = '';\r\n\r\n xPed: string = '';\r\n\r\n nItemPed: number = 0;\r\n\r\n orig: number = 0;\r\n\r\n faturaId: number = 0;\r\n\r\n valorServicos: number = 0;\r\n\r\n valorDeducoes: number = 0;\r\n\r\n issRetido: number = 0;\r\n\r\n baseCalculo: number = 0;\r\n\r\n valorPis: number = 0;\r\n\r\n valorCofins: number = 0;\r\n\r\n valorInss: number = 0;\r\n\r\n valorIr: number = 0;\r\n\r\n valorCsll: number = 0;\r\n\r\n valorIss: number = 0;\r\n\r\n outrasRetencoes: number = 0;\r\n\r\n aliquotaIssqn: number = 0;\r\n\r\n valorLiquidoNfse: number = 0;\r\n\r\n valorIssRetido: number = 0;\r\n\r\n descontoCondicionado: number = 0;\r\n\r\n descontoIncondicionado: number = 0;\r\n\r\n listaServico: string = '';\r\n\r\n saguiClienteId: number = 0;\r\n\r\n valorTotal: number = 0;\r\n \r\n valorDesconto: number = 0;\r\n \r\n valorBruto: number = 0;\r\n\r\n produto: Produto = new Produto();\r\n}\r\n","import { FaturaItem } from \"./fatura-item.model\";\r\nimport { FaturaParcela } from \"./fatura-parcela.model\";\r\n\r\nexport class Fatura {\r\n\r\n faturaId: number = 0;\r\n\r\n faturaTipo: number = 0;\r\n\r\n faturaStatus: number = 0;\r\n\r\n faturaTipoDocumento: number = 0;\r\n\r\n descricao: string = '';\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n valorTotal: number = 0;\r\n\r\n valorDesconto: number = 0;\r\n\r\n valorBruto: number = 0;\r\n\r\n valorLiquido: number = 0;\r\n\r\n dataPrimeiroPagamento: Date = new Date();\r\n\r\n dataUltimoPagamento: Date = new Date();\r\n\r\n diaVencimento: number = 1;\r\n\r\n numeroParcelas: number = 1;\r\n\r\n valorMulta: number = 0;\r\n\r\n tipoMulta: number = 0;\r\n\r\n valorJuros: number = 0;\r\n\r\n tipoJuros: number = 0;\r\n\r\n parceiroId: number = 0; //Se tipoConta for 0 então é cliente, se tpConta for 1 então é fornecedor\r\n\r\n tipoPagamento: number = 0;\r\n\r\n contaId: number = 0;\r\n\r\n contratoId: number = 0;\r\n\r\n grupoContaId: number = 0;\r\n\r\n caixaId: number = 0;\r\n\r\n empresaId: number = null;\r\n\r\n nfeId: number = 0;\r\n\r\n valorSemRetencoes: number = 0;\r\n\r\n valorCofins: number = 0;\r\n\r\n valorCsll: number = 0;\r\n\r\n valorInss: number = 0;\r\n\r\n valorIr: number = 0;\r\n\r\n valorIss: number = 0;\r\n\r\n valorPis: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n centroCustoId: number = 0;\r\n\r\n nfseId: number = 0;\r\n\r\n faturaItens: FaturaItem[] = [];\r\n\r\n faturaParcelas: FaturaParcela[] = [];\r\n\r\n valorTotalBruto: number = this.valorBruto;\r\n\r\n descontosAplicadosAosItens: number = 0;\r\n\r\n somaDeTodosOsDescontos: number = this.valorDesconto;\r\n\r\n descontosAplicadosGlobalmente: number = 0;\r\n\r\n documentoFiscal: number = 1;\r\n\r\n mesAnoReferencia: Date = new Date();\r\n\r\n statusIntegracaoSOC: number = 0;\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class FaturaService {\r\n\r\n postVisualizaFaturasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n postGerarNfe(faturaId: number): Observable> {\r\n return this.http.post>(\r\n environment.webApiSaguiControlUrl + '/api/fatura/gerarnfe/' + faturaId, null, { observe: 'response' })\r\n }\r\n\r\n getIntegracoesSOC(): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/verifica-integracoes-soc/', {observe: 'response'})\r\n}\r\n\r\n\r\n getEmpresas(tpFatura: any): Observable> {\r\n\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizatodasempresas/' + tpFatura, { observe: 'response' })\r\n }\r\n\r\n getgrupoContas(tpFatura: any, empresaId:any = 0): Observable> {\r\n\r\n const params = {\r\n empresaId: empresaId,\r\n tpFatura: tpFatura\r\n }\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizatodosgrupoContas/', { observe: 'response', params })\r\n }\r\n\r\n getCaixas(tpFatura: any, empresaId: any = 0): Observable> {\r\n\r\n const params = {\r\n empresaId: empresaId,\r\n tpFatura: tpFatura\r\n }\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizatodoscaixas/', { observe: 'response', params })\r\n }\r\n\r\n postFaturas(faturas: any[]): Observable> {\r\n\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/incluifaturas/', faturas, { observe: 'response' })}\r\n\r\n\r\n getCentroCustos(tpFatura: any, empresaId:any=0): Observable> {\r\n\r\n const params = {\r\n empresaId: empresaId,\r\n tpFatura: tpFatura\r\n }\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/centrocusto/', { observe: 'response', params })\r\n }\r\n\r\n getFatura(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getParceiroPorNome(nome: any, faturaTipo: number): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n if (faturaTipo == 0) {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizaclientepornome',\r\n { observe: 'response', params }\r\n );\r\n } else {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizafornecedorpornome',\r\n { observe: 'response', params }\r\n );\r\n }\r\n }\r\n\r\n getFornecedorPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizafornecedor/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorNome(nome: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/visualizafornecedorpornome/' + nome, { observe: 'response' })\r\n }\r\n\r\n postFatura(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putFatura(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/fatura/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteFatura(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/fatura/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFaturaItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/faturaitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiFaturaItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/faturaitem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaFaturaItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/faturaitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteFaturaItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/faturaitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n deleteFaturaParcela(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/faturaparcela/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n\r\n const params = {\r\n idOrigem: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n tipoDestino: parametros.tipoDestino\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/fatura/visualizadocumentopororigemdestino', { observe: 'response', params })\r\n }\r\n\r\n postGerarParcelas(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/faturaparcela/gerarparcelas', item, { observe: 'response' })\r\n };\r\n\r\n postGerarConta(item: any, atualizaValoresRetencao:boolean): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/gerarconta/' + atualizaValoresRetencao, item, { observe: 'response' })\r\n };\r\n\r\n postGerarContaBoleto(item: any, atualizaValoresRetencao: boolean): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/faturageraboletos/'+ atualizaValoresRetencao, item, { observe: 'response' })\r\n };\r\n\r\n postGerarNfse(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/gerarnfse', item, { observe: 'response' })\r\n };\r\n\r\n getNfsesAndContasByFaturaId(faturaId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/fatura/get-nfses-and-contas-by/' + faturaId, { observe: 'response' })\r\n }\r\n\r\n postVerificaCServicoDiferentes(fatura): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/verifica-cservico-diferentes', fatura, { observe: 'response' })\r\n }\r\n\r\n postBuscaValorRetencaoNfses(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/busca-valor-retencao-nfses', item, { observe: 'response' })\r\n };\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/fatura/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n postCalculaImposto(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/faturaitem/calculaimposto', item, { observe: 'response' })\r\n };\r\n\r\n getListaServicos(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n postFaturaPorEmail(fatura: any, emailFile?: File): Observable> {\r\n const formData = new FormData();\r\n if (emailFile) {\r\n formData.append('emailFile', emailFile);\r\n }\r\n\r\n return this.http.post(\r\n `${environment.webApiSaguiControlUrl}/api/fatura/email/${fatura.faturaId}`,\r\n formData,\r\n { observe: 'response' }\r\n );\r\n }\r\n\r\n postImprimir(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/fatura/imprimir', item, { observe: 'response' })\r\n };\r\n\r\n verificaFaturaStatus(faturaStatus: number) {\r\n\r\n switch (faturaStatus) {\r\n\r\n case 0:\r\n return 'Aberta';\r\n case 1:\r\n return 'Faturada';\r\n case 99:\r\n return \"Cancelada\";\r\n default:\r\n return 'Aberta';\r\n }\r\n }\r\n\r\n corStatus(faturaStatus: number) {\r\n\r\n switch (faturaStatus) {\r\n\r\n case 0:\r\n return 'Processando';\r\n case 1:\r\n return 'Sucesso';\r\n case 99:\r\n return \"Erro\";\r\n default:\r\n return 'Processando';\r\n }\r\n }\r\n\r\n //Atualização de endpoints para o novo serviço de fatura\r\n getProdutoPorNomeEEmpresas(parametros: any): Observable> {\r\n const params = {\r\n id: parametros.id,\r\n empresasIds: parametros.empresasIds\r\n }\r\n\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/Fatura/buscaprodutopornomeeempresas', params, { observe: 'response' })\r\n }\r\n\r\n //cria nova fatura\r\n NovaFatura(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/Fatura/v2/fatura', item, { observe: 'response' })\r\n }\r\n\r\n getLogEmailFatura(params: any): Observable> {\r\n\r\n const url = `${environment.webApiSaguiControlUrl}/api/log/v2/Log/${params.faturaId}`;\r\n return this.http.get(url, { observe: 'response', params });\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { CaixaMovimentoService } from '../shared/caixa-movimento.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { CaixaMovimento } from '../shared/caixa-movimento.model';\r\nimport { grupoContaService } from 'src/app/financeiro/shared/grupo-conta.service';\r\n\r\nexport interface DialogData {\r\n caixaMovimentoId: number;\r\n caixaId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'caixa-movimento',\r\n templateUrl: 'caixa-movimento.component.html',\r\n})\r\n\r\nexport class CaixaMovimentoComponent {\r\n\r\n caixaMovimentoForm: FormGroup;\r\n maximizado: boolean;\r\n caixaMovimento: any = {};\r\n grupoContas: any = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public ICaixaMovimento: DialogData,\r\n private caixaMovimentoService: CaixaMovimentoService,\r\n private grupoContaService: grupoContaService,) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.caixaMovimentoForm = this._formBuilder.group(new CaixaMovimento());\r\n\r\n this.caixaMovimentoForm.get('caixaId').setValue(this.ICaixaMovimento.caixaId);\r\n\r\n if (this.ICaixaMovimento.caixaMovimentoId > 0) {\r\n\r\n this.buscaCaixaMovimento(this.ICaixaMovimento.caixaMovimentoId);\r\n\r\n }\r\n\r\n this.buscarGrupoContas();\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarGrupoContas() {\r\n\r\n this.grupoContaService.getgrupoContasPagarReceber().subscribe(data => {\r\n\r\n this.grupoContas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscaCaixaMovimento(caixaMovimentoId: number) {\r\n\r\n this.caixaMovimentoService.getCaixaMovimento(caixaMovimentoId).subscribe(data => {\r\n\r\n this.caixaMovimentoForm.patchValue(data.body.caixaMovimento);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.ICaixaMovimento.caixaMovimentoId == 0) {\r\n\r\n this.caixaMovimentoService.postCaixaMovimento(this.caixaMovimentoForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.caixaMovimentoService.putCaixaMovimento(this.caixaMovimentoForm.value, this.caixaMovimentoForm.value.caixaMovimentoId,).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
      \r\n

      Movimento de Caixa

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Direção\r\n \r\n Entrada\r\n Saída\r\n \r\n \r\n \r\n Categoria\r\n \r\n \r\n {{grupoConta.tpGrupoConta == 0 ? 'Receitas': 'Despesas'}} - {{grupoConta.descricao}} \r\n \r\n \r\n
      \r\n
      \r\n \r\n Descrição\r\n \r\n \r\n
      \r\n
      \r\n \r\n Tipo\r\n \r\n Dinheiro\r\n Débito\r\n Crédito\r\n Boleto\r\n PIX\r\n Transferência\r\n Cheque\r\n Vale Refeição\r\n Banco\r\n Transferência entre Caixas\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor\r\n \r\n \r\n
      \r\n
      \r\n \r\n Data da Lançamento\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { ContaService } from '../shared/conta.service';\r\nimport { grupoContaService } from '../shared/grupo-conta.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { Conta } from '../shared/conta.model';\r\nimport { ContaContabilService } from '../../contabil/shared/conta-contabil.service';\r\nimport { ContaParcelaComponent } from '../conta-parcela/conta-parcela.component';\r\nimport { ContaParcelaRecorrenteComponent } from '../conta-parcela-recorrente/conta-parcela-recorrente.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\nimport { ContaParcelaService } from '../shared/conta-parcela.service';\r\n\r\nexport interface DialogData {\r\n contaId: number;\r\n tpConta: number;\r\n tipoParceiro: number;\r\n}\r\n\r\n@Component({\r\n selector: 'conta-cadastro',\r\n templateUrl: 'conta-cadastro.component.html',\r\n})\r\n\r\nexport class ContaCadastroComponent {\r\n\r\n empresas: any = [];\r\n caixas: any = [];\r\n grupoContas: any = [];\r\n centroCustos: any = [];\r\n contaCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n permiteEdicao: boolean = true;\r\n textoAdiantamento: string = '';\r\n textoTpConta: string = '';\r\n textoTpContaView: string = '';\r\n textoParceiro: string = '';\r\n tipoOperacao: string = '';\r\n contaParcela: any = {};\r\n contaParcelas: any = [];\r\n contaItens: any = [];\r\n contasContabeis: any = [];\r\n parceiros: any = [];\r\n initialInputValue: any;\r\n isParceiroValido: boolean = true;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IConta: DialogData,\r\n private contaService: ContaService,\r\n private grupoContaService: grupoContaService,\r\n private contaContabilService: ContaContabilService,\r\n private contaParcelaService: ContaParcelaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contaCadastroForm = this._formBuilder.group(new Conta());\r\n this.contaCadastroForm.addControl('contaContabilDebitoAutoComplete', new FormControl(''));\r\n this.contaCadastroForm.addControl('contaContabilCreditoAutoComplete', new FormControl(''));\r\n this.contaCadastroForm.addControl('parceiroAutoComplete', new FormControl(''));\r\n\r\n this.contaCadastroForm.get('parceiroAutoComplete').setValidators([Validators.required]);\r\n this.contaCadastroForm.get('parceiroId').setValidators(Validators.min(1));\r\n\r\n if (this.IConta.contaId > 0) {\r\n\r\n this.buscarConta(this.IConta.contaId);\r\n\r\n } else {\r\n this.contaCadastroForm.get('tpConta').setValue(this.IConta.tpConta);\r\n this.tipoOperacao = \"Incluir\";\r\n this.contaParcela = {};\r\n this.contaParcela.MovimentaCaixa = true;\r\n }\r\n\r\n switch (this.IConta.tpConta) {\r\n case 0:\r\n this.textoTpConta = 'contareceber';\r\n this.textoTpContaView = 'Conta a Receber';\r\n this.textoParceiro = 'cliente';\r\n break;\r\n case 1:\r\n this.textoTpConta = 'contapagar';\r\n this.textoTpContaView = 'Conta a Pagar';\r\n this.textoParceiro = 'fornecedor';\r\n break;\r\n case 2:\r\n this.textoTpConta = 'adiantamento';\r\n this.textoTpContaView = 'Adiantamento';\r\n this.textoParceiro = 'funcionario';\r\n\r\n switch (this.IConta.tipoParceiro) {\r\n case 0:\r\n this.textoAdiantamento = \"para Cliente\";\r\n break;\r\n case 1:\r\n this.textoAdiantamento = \"para Fornecedor\";\r\n break;\r\n case 2:\r\n this.textoAdiantamento = \"para Funcionário\";\r\n break;\r\n }\r\n break;\r\n }\r\n\r\n this.getEmpresas();\r\n\r\n this.buscarCentroCustos();\r\n\r\n this.buscarGrupoContas();\r\n\r\n this.buscarCaixas();\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.contaCadastroForm\r\n .get('contaContabilDebitoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.contaContabilService.postVisualizaContaContabilPorFiltro(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.contasContabeis = data.body\r\n );\r\n\r\n this.contaCadastroForm\r\n .get('contaContabilCreditoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.contaContabilService.postVisualizaContaContabilPorFiltro(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.contasContabeis = data.body\r\n );\r\n\r\n this.contaCadastroForm\r\n .get('parceiroAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 && value?.length <= 10 ?\r\n this.contaService.getParceiroPorNome(value, this.IConta.tipoParceiro) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.parceiros = data.body\r\n );\r\n\r\n }\r\n\r\n onInputChange(value: string) {\r\n if(value !== this.initialInputValue){\r\n this.isParceiroValido = false\r\n }\r\n };\r\n\r\n getEmpresas() {\r\n\r\n this.contaService.getEmpresas(this.IConta.tpConta).subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarGrupoContas() {\r\n\r\n this.grupoContaService.getgrupoContas(this.IConta.tpConta).subscribe(data => {\r\n\r\n this.grupoContas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarCaixas() {\r\n\r\n this.contaService.getCaixas(this.IConta.tpConta).subscribe(data => {\r\n\r\n this.caixas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarCentroCustos() {\r\n\r\n this.contaService.getCentroCustos(this.IConta.tpConta).subscribe(data => {\r\n\r\n this.centroCustos = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarConta(contaId: number) {\r\n\r\n this.tipoOperacao = \"Atualizar\";\r\n\r\n this.contaService.getConta(contaId).subscribe(data => {\r\n\r\n this.contaCadastroForm.patchValue(data.body.conta);\r\n\r\n this.contaCadastroForm.get('parceiroAutoComplete').setValue(data.body.conta.nomeParceiro);\r\n\r\n this.contaParcelas = data.body.contaParcelas;\r\n\r\n this.contaItens = data.body.contaItens;\r\n\r\n this.carregarContaContabil();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n carregarContaContabil() {\r\n\r\n if (this.contaCadastroForm.value.contaContabilDebitoId > 0) {\r\n\r\n this.contaContabilService.getContaContabil(this.contaCadastroForm.value.contaContabilDebitoId).subscribe(data => {\r\n this.contaCadastroForm.get('contaContabilDebitoAutoComplete').setValue(data.body.descricao);\r\n });\r\n }\r\n\r\n if (this.contaCadastroForm.value.contaContabilCreditoId > 0) {\r\n\r\n this.contaContabilService.getContaContabil(this.contaCadastroForm.value.contaContabilCreditoId).subscribe(data => {\r\n this.contaCadastroForm.get('contaContabilCreditoAutoComplete').setValue(data.body.descricao);\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n salvar(): void {\r\n\r\n this.contaCadastroForm.get('tipoAdiantamento').setValue(this.IConta.tipoParceiro);\r\n\r\n if (this.tipoOperacao == \"Incluir\") {\r\n\r\n this.contaCadastroForm.get('dataCriacao').setValue(new Date());\r\n\r\n this.contaService.postConta(this.contaCadastroForm.value).subscribe(data => {\r\n\r\n this.buscarConta(data.body.contaId);\r\n\r\n this.abreModalContaParcela(0, data.body.contaId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.contaService.putConta(this.contaCadastroForm.value.contaId, this.contaCadastroForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarConta(this.contaCadastroForm.value.contaId);\r\n\r\n });\r\n }\r\n\r\n };\r\n\r\n deletarContaParcela(parcela) {\r\n\r\n let msg = \"Deseja cancelar esta(s) parcela(s)?\"\r\n\r\n if(parcela.statusPagamento == 1){\r\n msg += \" Isso também excluirá os registros correspondentes no fluxo de caixa.\"\r\n }\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msg\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n let parcelas = [];\r\n parcelas.push(parcela);\r\n\r\n this.contaParcelaService.postCancelarContaParcelas(parcelas).subscribe(data => {\r\n\r\n this.buscarConta(this.contaCadastroForm.get('contaId').value);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n }\r\n });\r\n\r\n };\r\n\r\n determinagrupoConta(grupoConta) {\r\n\r\n if (grupoConta.grupoContaId > 0) {\r\n\r\n switch (this.IConta.tpConta) {\r\n case 0:\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(grupoConta.contaContabilId)\r\n break;\r\n case 1:\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(grupoConta.contaContabilId)\r\n break;\r\n case 2:\r\n switch (this.IConta.tipoParceiro) {\r\n case 0:\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(grupoConta.contaContabilId)\r\n break;\r\n case 1:\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(grupoConta.contaContabilId)\r\n break;\r\n case 2:\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(grupoConta.contaContabilId)\r\n break;\r\n }\r\n break;\r\n }\r\n\r\n this.carregarContaContabil();\r\n }\r\n\r\n }\r\n\r\n determinaCaixa(caixa: any) {\r\n\r\n if (caixa.caixaId > 0) {\r\n\r\n switch (this.IConta.tpConta) {\r\n case 0:\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(caixa.contaContabilId);\r\n break;\r\n case 1:\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(caixa.contaContabilId);\r\n break;\r\n case 2:\r\n switch (this.IConta.tipoParceiro) {\r\n case 0:\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(caixa.contaContabilId);\r\n break;\r\n case 1:\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(caixa.contaContabilId);\r\n break;\r\n case 2:\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(caixa.contaContabilId);\r\n break;\r\n }\r\n break;\r\n }\r\n this.carregarContaContabil();\r\n }\r\n\r\n }\r\n\r\n atualizaDebito(contaDebitoTemp) {\r\n\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(contaDebitoTemp.contaContabilId);\r\n\r\n };\r\n\r\n atualizaCredito(contaCreditoTemp) {\r\n\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(contaCreditoTemp.contaContabilId);\r\n\r\n };\r\n\r\n abreModalContaParcela(contaParcelaId: number, contaId: number) {\r\n\r\n const dialogRef = this.dialog.open(ContaParcelaComponent, {\r\n data: {\r\n contaId: contaId,\r\n contaParcelaId: contaParcelaId,\r\n tpConta: this.IConta.tpConta,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarConta(this.contaCadastroForm.get('contaId').value);\r\n });\r\n }\r\n\r\n determinaParceiro(parceiro: any) {\r\n\r\n this.contaCadastroForm.get('nomeParceiro').setValue(parceiro.razaoSocial);\r\n this.contaCadastroForm.get('parceiroAutoComplete').setValue(parceiro.razaoSocial);\r\n this.initialInputValue = this.contaCadastroForm.get('parceiroAutoComplete').value;\r\n this.isParceiroValido = true\r\n\r\n switch (this.IConta.tpConta) {\r\n case 0:\r\n this.contaCadastroForm.get('parceiroId').setValue(parceiro.clienteId);\r\n\r\n if (parceiro.contaContabilId > 0) {\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(parceiro.contaContabilId);\r\n }\r\n\r\n break;\r\n case 1:\r\n this.contaCadastroForm.get('parceiroId').setValue(parceiro.fornecedorId);\r\n\r\n if (parceiro.contaContabilId > 0) {\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(parceiro.contaContabilId);\r\n }\r\n break;\r\n case 2:\r\n switch (this.IConta.tipoParceiro) {\r\n case 0:\r\n this.contaCadastroForm.get('parceiroId').setValue(parceiro.clienteId);\r\n break;\r\n case 1:\r\n this.contaCadastroForm.get('parceiroId').setValue(parceiro.fornecedorId);\r\n break;\r\n case 2:\r\n this.contaCadastroForm.get('parceiroId').setValue(parceiro.funcionarioId);\r\n break;\r\n }\r\n break;\r\n }\r\n\r\n this.carregarContaContabil();\r\n\r\n }\r\n\r\n incluirParcelaRecorrente() {\r\n\r\n const dialogRef = this.dialog.open(ContaParcelaRecorrenteComponent, {\r\n data: {\r\n contaId: this.contaCadastroForm.get('contaId').value,\r\n descricaoConta: this.contaCadastroForm.get('descricaoConta').value\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarConta(this.contaCadastroForm.get('contaId').value);\r\n });\r\n\r\n }\r\n\r\n getTextoTipoPagametno(tipoPagamento: number) {\r\n\r\n return this.contaService.getTextoTipoPagametno(tipoPagamento);\r\n }\r\n\r\n determinaContaContabilDebito(conta) {\r\n\r\n if (conta != undefined) {\r\n this.contaCadastroForm.get('contaContabilDebitoId').setValue(conta.contaContabilId);\r\n }\r\n\r\n };\r\n\r\n determinaContaContabilCredito(conta) {\r\n\r\n if (conta != undefined) {\r\n this.contaCadastroForm.get('contaContabilCreditoId').setValue(conta.contaContabilId);\r\n }\r\n\r\n };\r\n\r\n}\r\n","\r\n
      \r\n

      {{tipoOperacao}} {{textoTpContaView}} {{textoAdiantamento}} {{contaCadastroForm.value.contaId}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n \r\n Descrição da Conta\r\n \r\n \r\n
      \r\n
      \r\n \r\n Categoria\r\n \r\n \r\n {{grupoConta.descricao}}\r\n \r\n \r\n \r\n \r\n Caixa (Fluxo de Caixa)\r\n \r\n \r\n {{caixa.nome}}\r\n \r\n \r\n \r\n \r\n Centro de Custo\r\n \r\n \r\n {{centroCusto.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Parceiro\r\n \r\n \r\n \r\n CNPJ/CPF: {{parceiro.cpf != null ? parceiro.cpf : '' }}{{parceiro.cnpj != null ? parceiro.cnpj : ''}} - {{parceiro.razaoSocial}} {{parceiro.nomeFantasia}}\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n \r\n Itens\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      DescriçãoUnid.Qtde.Valor Un.Valor BrutoDescontoValor Após desconto
      {{contaItem.descricao}}{{contaItem.unidade}}{{contaItem.quantidade}}{{contaItem.valorUnitario | currency}}{{contaItem.valorTotal | currency}}{{contaItem.valorDesconto| currency}}{{contaItem.valorBruto | currency}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Conta de Débito\r\n \r\n \r\n \r\n {{contaContabil.numero}} - {{contaContabil.descricao}}\r\n \r\n \r\n \r\n \r\n Conta de Crédito\r\n \r\n \r\n \r\n {{contaContabil.numero}} - {{contaContabil.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n Parcelas\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n

      Saldo Atual: {{contaCadastroForm.value.saldo | currency}}

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      AçõesIdDescriçãoStatusTipoData de VencimentoPrevistoPagoSaldo
      \r\n \r\n edit\r\n \r\n \r\n delete\r\n \r\n {{contaParcela.contaParcelaId}}{{contaParcela.descricao}}{{contaParcela.statusPagamento == 0 ? \"Ativo\" : contaParcela.statusPagamento == 1 ? \"Quitado\" :\r\n \"Cancelada\" }}{{contaParcela.statusPagamento == 0 ? \"\" : getTextoTipoPagametno(contaParcela.tipoPagamento) }}\r\n {{contaParcela.dataVencimento | date:'dd/MM/yyyy'}}{{contaParcela.valorParcela | currency}}{{contaParcela.valorPagamento | currency}}{{contaParcela.saldo | currency}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { Location } from '@angular/common';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { ContaParcelaService } from '../shared/conta-parcela.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { ContaParcela } from '../shared/conta-parcela.model';\r\nimport { ContaService } from '../shared/conta.service';\r\nimport { OperacaoContabilService } from '../../contabil/shared/operacao-contabil.service';\r\nimport { Anexo } from 'src/app/anexo/shared/anexo.model';\r\nimport { AnexoService } from 'src/app/anexo/shared/anexo.service';\r\nimport { ContaCorrenteTerminalService } from 'src/app/conta-corrente/shared/conta-corrente-terminal.service';\r\nimport * as moment from 'moment';\r\n\r\nexport interface DialogData {\r\n contaParcelaId: number\r\n}\r\n\r\n@Component({\r\n selector: 'conta-parcela-baixa',\r\n templateUrl: 'conta-parcela-baixa.component.html',\r\n styleUrls: ['conta-parcela-baixa.css'],\r\n})\r\n\r\nexport class ContaParcelaBaixaComponent {\r\n\r\n @ViewChild('arquivoInput', { static: true }) arquivoInput;\r\n\r\n contaParcelaBaixaForm: FormGroup;\r\n maximizado: boolean;\r\n valorPagamentoComJuros: number = 0;\r\n adiantamentos: any = [];\r\n operacoesContabeis: any = [];\r\n caixas: any = [];\r\n arquivo: any = {\r\n contaCorrenteId: 0,\r\n nomeArquivo: '',\r\n corpoArquivo: ''\r\n };\r\n anexo: Anexo = new Anexo();\r\n contaCorrenteTerminais: any = [];\r\n contaCorrenteTerminalCartoes: any = [];\r\n selectContaCorrenteTerminal: any = {};\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IContaParcelaBaixa: DialogData,\r\n private contaParcelaService: ContaParcelaService,\r\n private contaService: ContaService,\r\n private operacaoContabilService: OperacaoContabilService,\r\n private contaCorrenteTerminalService: ContaCorrenteTerminalService,\r\n private anexoService: AnexoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contaParcelaBaixaForm = this._formBuilder.group(new ContaParcela);\r\n this.contaParcelaBaixaForm.addControl('comjuros', new FormControl(false));\r\n this.contaParcelaBaixaForm.addControl('liquidar', new FormControl(true));\r\n this.contaParcelaBaixaForm.addControl('comdesconto', new FormControl(false));\r\n\r\n if (this.IContaParcelaBaixa.contaParcelaId > 0) {\r\n\r\n this.contaParcelaService.getContaParcela(this.IContaParcelaBaixa.contaParcelaId).subscribe(data => {\r\n\r\n let contaParcela = data.body;\r\n\r\n contaParcela.dataPagamento = new Date();\r\n\r\n let dataVencimento = new Date(contaParcela.dataVencimento);\r\n\r\n let valorParcelaComDesconto = contaParcela.valorParcela - contaParcela.valorDescontoPago;\r\n\r\n if (dataVencimento < contaParcela.dataPagamento && contaParcela.tipoConta==0) {\r\n\r\n this.contaParcelaService.getContaCorrente(this.IContaParcelaBaixa.contaParcelaId).subscribe(data2 => {\r\n\r\n let contaCorrente = data2.body;\r\n let valorMulta = (valorParcelaComDesconto * contaCorrente.percMultaAtraso) / 100;\r\n\r\n let dataAtual = new Date();\r\n let diasEmAtraso = moment(dataAtual).diff(moment(dataVencimento), 'days');\r\n\r\n let valorMora = 0;\r\n\r\n if (contaCorrente.valorMultaAoDia > 0) {\r\n\r\n valorMora = contaCorrente.valorMultaAoDia * diasEmAtraso;\r\n }\r\n else {\r\n let aliquotaMultaDia = contaCorrente.percMultaAoMes / 31;\r\n \r\n let aliquotaAplicada = aliquotaMultaDia * diasEmAtraso;\r\n \r\n valorMora = (valorParcelaComDesconto * aliquotaAplicada)/100;\r\n }\r\n\r\n contaParcela.valorMultaPago = valorMulta;\r\n contaParcela.valorJurosPago = valorMora;\r\n\r\n contaParcela.valorPagamento = valorParcelaComDesconto + valorMulta + valorMora;\r\n\r\n this.contaParcelaBaixaForm.patchValue(contaParcela, { emitEvent: false });\r\n\r\n \r\n this.onChanges();\r\n\r\n this.valorPagamentoComJuros = contaParcela.valorPagamento;\r\n this.contaParcelaBaixaForm.get('statusPagamento').setValue(1);\r\n this.contaParcelaBaixaForm.get('comjuros').setValue(true);\r\n this.contaParcelaBaixaForm.get('valorPagamento').setValue(contaParcela.valorPagamento);\r\n this.contaParcelaBaixaForm.get('valorAteVenc').setValue(contaParcela.valorParcela);\r\n this.contaParcelaBaixaForm.get('caixaId').setValue(contaParcela.caixaId);\r\n\r\n this.buscarCaixas();\r\n\r\n\r\n })\r\n\r\n \r\n }\r\n else {\r\n contaParcela.valorPagamento = contaParcela.valorParcela;\r\n this.contaParcelaBaixaForm.patchValue(contaParcela);\r\n\r\n \r\n this.onChanges();\r\n\r\n this.valorPagamentoComJuros = contaParcela.valorPagamento;\r\n this.contaParcelaBaixaForm.get('statusPagamento').setValue(1);\r\n this.contaParcelaBaixaForm.get('valorPagamento').setValue(contaParcela.valorParcela);\r\n this.contaParcelaBaixaForm.get('valorAteVenc').setValue(contaParcela.valorParcela);\r\n this.contaParcelaBaixaForm.get('caixaId').setValue(contaParcela.caixaId);\r\n\r\n this.buscarCaixas();\r\n }\r\n\r\n \r\n\r\n\r\n });\r\n };\r\n\r\n this.restaurarDialog();\r\n\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.contaParcelaBaixaForm\r\n .get('comjuros')\r\n .valueChanges\r\n .subscribe(data => {\r\n if (data === true) {\r\n this.contaParcelaBaixaForm.get('valorPagamento').setValue(this.valorPagamentoComJuros.toFixed(2));\r\n } else {\r\n this.contaParcelaBaixaForm.get('valorPagamento').setValue(this.contaParcelaBaixaForm.value.valorParcela.toFixed(2));\r\n }\r\n });\r\n\r\n this.contaParcelaBaixaForm\r\n .get('valorJurosPago')\r\n .valueChanges\r\n .subscribe(data => {\r\n \r\n this.calcularValorPagamento(this.contaParcelaBaixaForm.get('valorParcela').value);\r\n });\r\n\r\n this.contaParcelaBaixaForm\r\n .get('valorDescontoPago')\r\n .valueChanges\r\n .subscribe(data => {\r\n \r\n this.calcularValorPagamento(this.contaParcelaBaixaForm.get('valorParcela').value);\r\n });\r\n\r\n\r\n this.contaParcelaBaixaForm\r\n .get('valorMultaPago')\r\n .valueChanges\r\n .subscribe(data => {\r\n \r\n this.calcularValorPagamento(this.contaParcelaBaixaForm.get('valorParcela').value);\r\n });\r\n\r\n\r\n this.contaParcelaBaixaForm\r\n .get('tipoPagamento')\r\n .valueChanges\r\n .subscribe(data => {\r\n\r\n switch (data) {\r\n\r\n case 8:\r\n\r\n this.contaParcelaBaixaForm.get('contaParcelaTipo').setValue(2);\r\n\r\n this.contaService.getAdiantamentoPorContaId(this.contaParcelaBaixaForm.value.contaId).subscribe(data => {\r\n\r\n this.adiantamentos = data.body;\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n this.operacaoContabilService.getOperacoesContabeis().subscribe(data => {\r\n\r\n this.operacoesContabeis = data.body;\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n break;\r\n\r\n case 1:\r\n case 2:\r\n this.contaParcelaBaixaForm.get('contaParcelaTipo').setValue(this.contaParcelaBaixaForm.value.tipoConta);\r\n\r\n break;\r\n\r\n default:\r\n this.contaParcelaBaixaForm.get('contaParcelaTipo').setValue(this.contaParcelaBaixaForm.value.tipoConta);\r\n\r\n break;\r\n\r\n }\r\n });\r\n\r\n this.contaParcelaBaixaForm\r\n .get('caixaId')\r\n .valueChanges\r\n .subscribe(data => {\r\n\r\n this.buscarContaCorrenteTerminais(data);\r\n\r\n });\r\n\r\n\r\n \r\n\r\n }\r\n\r\n //calcular valor do pagamento\r\n calcularValorPagamento(valor:number) {\r\n\r\n let valorParcela = valor;\r\n\r\n let valorMulta = this.contaParcelaBaixaForm.get('valorMultaPago').value;\r\n\r\n let valorJuros = this.contaParcelaBaixaForm.get('valorJurosPago').value;\r\n\r\n let valorDesconto = this.contaParcelaBaixaForm.get('valorDescontoPago').value;\r\n\r\n let valorPagamento = (valorParcela-valorDesconto) + valorMulta + valorJuros;\r\n\r\n this.contaParcelaBaixaForm.get('valorPagamento').setValue(valorPagamento);\r\n\r\n }\r\n\r\n buscarCaixas() {\r\n\r\n this.contaService.getCaixas(this.contaParcelaBaixaForm.value.tipoConta).subscribe(data => {\r\n\r\n this.caixas = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog(statusPagamento: number) {\r\n this.dialogRef.close(statusPagamento);\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.contaParcelaBaixaForm.value.tipoPagamento == 2 && this.contaParcelaBaixaForm.value.tipoConta == 0) {\r\n\r\n if (this.contaParcelaBaixaForm.value.numeroParcelas < 1) {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Para pagamento no cartão de crédito é obrigatório selecionar um número de parcelas maior que zero\"\r\n }\r\n });\r\n\r\n return;\r\n\r\n }\r\n\r\n if (this.contaParcelaBaixaForm.value.codigoAutenticacao.length == 0) {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Para pagamento no cartão de crédito é obrigatório preencher o código de autenticação do comprovante de pagamento\"\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n\r\n }\r\n\r\n if (this.contaParcelaBaixaForm.value.liquidar == false) {\r\n\r\n if (this.contaParcelaBaixaForm.value.valorQueFicaraAtivo == 0) {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"É necessário preencher o valor que ficará ativo se não for liquidar integralmente\"\r\n }\r\n });\r\n\r\n return;\r\n \r\n }\r\n \r\n }\r\n\r\n this.contaParcelaService.putContaParcela(this.contaParcelaBaixaForm.value.contaParcelaId, this.contaParcelaBaixaForm.value).subscribe(data => {\r\n\r\n this.uploadArquivo();\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Baixa realizada\"\r\n }\r\n });\r\n\r\n this.fecharDialog(this.contaParcelaBaixaForm.value.statusPagamento);\r\n\r\n });\r\n\r\n }\r\n\r\n uploadArquivo() {\r\n\r\n\r\n if (this.anexo.nomeArquivo.length > 0) {\r\n\r\n let formData = new FormData();\r\n formData.append('fileUpload', this.arquivoInput.nativeElement.files[0]);\r\n formData.append('descricao', this.anexo.descricao);\r\n formData.append('documentoIdReferenciado', this.anexo.documentoIdReferenciado.toString());\r\n formData.append('documentoTipo', this.anexo.documentoTipo.toString());\r\n formData.append('nomeArquivo', this.anexo.nomeArquivo);\r\n formData.append('saguiClienteId', this.anexo.saguiClienteId.toString());\r\n\r\n this.anexoService.postAnexo(formData).subscribe(data => {\r\n\r\n\r\n });\r\n }\r\n }\r\n\r\n fileChanged(e: any) {\r\n\r\n this.anexo.descricao = \"Comprovante de Pagamento\";\r\n this.anexo.nomeArquivo = e.target.files[0].name;\r\n this.anexo.documentoTipo = 10;\r\n this.anexo.documentoIdReferenciado = this.contaParcelaBaixaForm.value.contaParcelaId;\r\n this.anexo.saguiClienteId = this.contaParcelaBaixaForm.value.saguiClienteId;\r\n this.anexo.corpoArquivo = e.target.files[0];\r\n\r\n let fileReader = new FileReader();\r\n\r\n fileReader.onload = (e) => {\r\n this.anexo.corpoArquivo = fileReader.result;\r\n }\r\n\r\n fileReader.readAsDataURL(e.target.files[0]);\r\n\r\n }\r\n\r\n buscarContaCorrenteTerminais(caixaId: number) {\r\n\r\n this.contaCorrenteTerminalService.getPorcaixaId(caixaId).subscribe(data => {\r\n\r\n this.contaCorrenteTerminais = data.body;\r\n\r\n if (this.contaCorrenteTerminais.length > 0) {\r\n\r\n this.selectContaCorrenteTerminal = this.contaCorrenteTerminais[0];\r\n\r\n this.defineContaCorrenteTerminal(this.contaCorrenteTerminais[0]);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n defineContaCorrenteTerminal(contaCorrenteTerminal) {\r\n\r\n this.contaParcelaBaixaForm.get('contaCorrenteTerminalId').setValue(contaCorrenteTerminal.contaCorrenteTerminalId);\r\n\r\n this.contaCorrenteTerminalCartoes = contaCorrenteTerminal.contaCorrenteTerminalCartoes;\r\n\r\n if (this.contaCorrenteTerminalCartoes != null && this.contaCorrenteTerminalCartoes.length > 0) {\r\n this.contaParcelaBaixaForm.get('contaCorrenteTerminalCartaoId').setValue(this.contaCorrenteTerminalCartoes[0].contaCorrenteTerminalCartaoId);\r\n }\r\n\r\n }\r\n\r\n atualizarValorAPagar(valorQueFicaraAtivo: number){\r\n\r\n let valorParcela = this.contaParcelaBaixaForm.get('valorParcela').value;\r\n\r\n let valorPagamentoAposCalculo = valorParcela - valorQueFicaraAtivo;\r\n\r\n this.calcularValorPagamento(valorPagamentoAposCalculo);\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      Baixar Parcela

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ⚠️
      \r\n
      \r\n

      Para baixar a Conta Parcela manualmente, a forma de pagamento não pode ser boleto. Após alterar o tipo de pagamento, o botão \"Salvar\" será exibido.

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Caixa (Fluxo de Caixa)\r\n \r\n \r\n {{caixa.nome}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor Atual\r\n \r\n \r\n \r\n Até o Vencimento\r\n \r\n \r\n \r\n Data de Vencimento\r\n \r\n \r\n \r\n \r\n \r\n Data de Pagamento\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Liquidar a Parcela Integralmente\r\n Receber valor parcial e manter em aberto o valor restante\r\n \r\n \r\n
      \r\n \r\n Valor da Dívida que ficará Ativa (R$)\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Aplicar Descontos\r\n
      \r\n
      \r\n
      \r\n \r\n Valor do Desconto\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n Aplicar Juros e Multa\r\n
      \r\n
      \r\n
      \r\n \r\n Valor do Juros\r\n \r\n \r\n \r\n Valor da Multa\r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Valor Pago\r\n \r\n Incluindo Juros e Multa\r\n \r\n \r\n Tipo De Pagamento\r\n \r\n Dinheiro\r\n Cartão de Débito\r\n Cartão de Crédito\r\n Boleto\r\n PIX\r\n Transferência\r\n Cheque\r\n Vale Refeição\r\n Banco\r\n Prestação de Contas\r\n \r\n \r\n
      \r\n
      \r\n \r\n Terminal\r\n \r\n \r\n {{contaCorrenteTerminal.descricao}}\r\n \r\n \r\n Maquininha de Cartão ou Ecommerce\r\n \r\n \r\n Cartões\r\n \r\n \r\n {{cartao.cartao.descricao}}\r\n \r\n \r\n \r\n \r\n \r\n Código de Autenticação\r\n \r\n \r\n \r\n Comprovante de Venda\r\n \r\n CV - Nº do Comprovante de Venda\r\n \r\n \r\n Número de Parcelas\r\n \r\n 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n 6\r\n 7\r\n 8\r\n 9\r\n 10\r\n 11\r\n 12\r\n \r\n \r\n
      \r\n
      \r\n \r\n Selecione o Adiantamento (*)\r\n \r\n \r\n {{adiantamento.descricaoConta}} - Saldo: {{adiantamento.saldo | currency}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Selecione a Operação (*)\r\n \r\n \r\n {{operacaoContabil.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Observação do Pagamento\r\n \r\n \r\n
      \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ContaParcelaService } from '../shared/conta-parcela.service';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nexport interface DialogData {\r\n contaId: number;\r\n descricaoConta: string;\r\n}\r\n\r\n@Component({\r\n selector: 'conta-parcela-recorrente',\r\n templateUrl: 'conta-parcela-recorrente.component.html',\r\n})\r\n\r\nexport class ContaParcelaRecorrenteComponent {\r\n\r\n contaParcelaRecorrenteForm: FormGroup;\r\n maximizado: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IContaParcela: DialogData,\r\n private contaParcelaService: ContaParcelaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contaParcelaRecorrenteForm = this._formBuilder.group({\r\n valorParcela: 0,\r\n quantidade: 1,\r\n dataPrimeiroVencimento: new Date(),\r\n contaId: 0,\r\n descricao: ['']\r\n });\r\n\r\n this.contaParcelaRecorrenteForm.get('contaId').setValue(this.IContaParcela.contaId);\r\n this.contaParcelaRecorrenteForm.get('descricao').setValue(this.IContaParcela.descricaoConta);\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n salvar(): void {\r\n\r\n this.contaParcelaService.postContaParcelaRecorrente(this.contaParcelaRecorrenteForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Parcelas gerados com Sucesso\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.fecharDialog();\r\n });\r\n\r\n });\r\n }\r\n}\r\n","\r\n
      \r\n

      Adicionar Parcelas Recorrentes

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n Parcelas Recorrentes\r\n \r\n \r\n
      \r\n \r\n Valor Parcela\r\n \r\n \r\n \r\n Descrição\r\n \r\n \r\n \r\n Quantidade de Parcelas\r\n \r\n \r\n \r\n Data do Primeiro Pagamento\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { ContaParcelaService } from '../shared/conta-parcela.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { ContaParcela } from '../shared/conta-parcela.model';\r\nimport { ContaCadastroComponent } from '../conta-cadastro/conta-cadastro.component';\r\nimport { ContaService } from '../shared/conta.service';\r\nimport { AnexoComponent } from 'src/app/anexo/anexo/anexo.component';\r\nimport { OperacaoContabilService } from 'src/app/contabil/shared/operacao-contabil.service';\r\nimport { LogComponent } from 'src/app/log/log/log.component';\r\nimport { CaixaMovimentoComponent } from '../caixa-movimento/caixa-movimento.component';\r\nimport { ContaCorrenteVendaComponent } from 'src/app/conta-corrente/conta-corrente-venda/conta-corrente-venda.component';\r\nimport { ContaParcelaBaixaComponent } from '../conta-parcela-baixa/conta-parcela-baixa.component';\r\n\r\nexport interface DialogData {\r\n contaParcelaId: number;\r\n tpConta: number;\r\n contaId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'conta-parcela',\r\n templateUrl: 'conta-parcela.component.html',\r\n})\r\n\r\nexport class ContaParcelaComponent {\r\n\r\n contaParcelaForm: FormGroup;\r\n maximizado: boolean;\r\n permiteEdicao: boolean = false;\r\n tipoOperacao: string = '';\r\n contaParcela: any = {};\r\n boleto: any = {};\r\n operacoesContabeis: any = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IContaParcela: DialogData,\r\n private contaParcelaService: ContaParcelaService,\r\n private contaService: ContaService,\r\n private operacaoContabilService: OperacaoContabilService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.contaParcelaForm = this._formBuilder.group(new ContaParcela());\r\n\r\n this.contaParcelaForm.get('contaId').setValue(this.IContaParcela.contaId);\r\n\r\n if (this.IContaParcela.contaParcelaId > 0) {\r\n\r\n this.buscarContaParcela(this.IContaParcela.contaParcelaId);\r\n\r\n } else {\r\n this.tipoOperacao = \"Incluir\";\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n\r\n\r\n onChanges(): void {\r\n\r\n this.contaParcelaForm\r\n .get('tipoPagamento')\r\n .valueChanges\r\n .subscribe(data => {\r\n if (data === 8) {\r\n this.contaParcelaForm.get('contaParcelaTipo').setValue(2);\r\n this.operacaoContabilService.getOperacoesContabeis().subscribe(data => {\r\n\r\n this.operacoesContabeis = data.body;\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n } else {\r\n this.contaParcelaForm.get('contaParcelaTipo').setValue(this.IContaParcela.tpConta);\r\n }\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarContaParcela(contaParcelaId: number) {\r\n\r\n this.tipoOperacao = \"Atualizar\";\r\n\r\n this.contaParcelaService.getContaParcela(contaParcelaId).subscribe(data => {\r\n\r\n this.contaParcelaForm.patchValue(data.body);\r\n\r\n\r\n\r\n if (data.body.boletoId > 0) {\r\n\r\n let parcelas = [];\r\n\r\n let _parcela = data.body;\r\n\r\n let _conta = {\r\n contaId: _parcela.contaId,\r\n tpConta: this.IContaParcela.tpConta,\r\n };\r\n\r\n _parcela.conta = _conta;\r\n\r\n parcelas.push(data.body);\r\n\r\n let boletoIds: any = [];\r\n\r\n parcelas.forEach(parcela => {\r\n boletoIds.push(parcela.boletoId);\r\n })\r\n\r\n this.contaService.postVisualizaBoletoPorContaParcela(boletoIds).subscribe(boletoResult => {\r\n\r\n this.boleto = boletoResult.body[0];\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.tipoOperacao == \"Incluir\") {\r\n\r\n this.contaParcelaForm.get('dataCriacao').setValue(new Date());\r\n\r\n this.contaParcelaService.postContaParcela(this.contaParcelaForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.contaParcelaService.putContaParcela(this.contaParcelaForm.value.contaParcelaId, this.contaParcelaForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n corrigirParcela() {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Corrigir\",\r\n mensagem: \"Essa opção apenas irá corrigir a parcela e não irá movimentar o fluxo de caixa. Caso deseje movimentar o fluxo de caixa clique no botão Salvar ao invés do botão Corrigir Parcela. Deseja continuar?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.contaParcelaService.putContaParcelaCorrigir(this.contaParcelaForm.value.contaParcelaId, this.contaParcelaForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro Corrigido com Sucesso\"\r\n }\r\n });\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n };\r\n\r\n abreModalConta(contaId) {\r\n\r\n const dialogRef = this.dialog.open(ContaCadastroComponent, {\r\n data: {\r\n contaId: contaId,\r\n tpConta: this.IContaParcela.tpConta,\r\n tipoParceiro: 0\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n this.fecharDialog();\r\n\r\n };\r\n\r\n abreModalAnexo() {\r\n\r\n const dialogRef = this.dialog.open(AnexoComponent, {\r\n data: {\r\n documentoIdReferenciado: this.contaParcelaForm.value.contaParcelaId,\r\n documentoTipo: 10,\r\n saguiClienteId: this.contaParcelaForm.value.saguiClienteId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n }\r\n\r\n abrirLogs() {\r\n\r\n const dialogRef = this.dialog.open(LogComponent, {\r\n data: {\r\n entidadeId: this.contaParcelaForm.value.contaParcelaId,\r\n logTipo: 0\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n }\r\n\r\n definirComoPago() {\r\n\r\n if (this.contaParcelaForm.value.statusPagamento == 1)\r\n\r\n if (this.contaParcelaForm.value.valorPagamento == 0) {\r\n\r\n this.contaParcelaForm.get('valorPagamento').setValue(this.contaParcelaForm.value.valorParcela);\r\n\r\n }\r\n\r\n if (\r\n this.contaParcelaForm.get('dataPagamento').value == undefined ||\r\n this.contaParcelaForm.get('dataPagamento').value == null) {\r\n\r\n let dataAtual = new Date();\r\n this.contaParcelaForm.get('dataPagamento').setValue(dataAtual);\r\n\r\n }\r\n }\r\n\r\n caixaMovimentoModal() {\r\n\r\n const dialogRef = this.dialog.open(CaixaMovimentoComponent, {\r\n data: {\r\n caixaMovimentoId: this.contaParcelaForm.value.caixaMovimentoId,\r\n caixaId: this.contaParcelaForm.value.caixaId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n };\r\n\r\n contaCorrenteVendaModal(contaCorrenteVendaId: number){\r\n\r\n const dialogRef = this.dialog.open(ContaCorrenteVendaComponent, {\r\n data: {\r\n contaCorrenteVendaId: contaCorrenteVendaId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n }\r\n\r\n retornaStatusPagamento(statusPagamento: number) {\r\n\r\n switch (statusPagamento) {\r\n case 0:\r\n this.permiteEdicao=true;\r\n return 'Ativo';\r\n\r\n case 1:\r\n this.permiteEdicao=false;\r\n return 'Quitado';\r\n case 2:\r\n this.permiteEdicao=false;\r\n return 'Cancelado';\r\n }\r\n }\r\n\r\n baixarParcela(contaParcelaId: number) {\r\n\r\n const dialogRef = this.dialog.open(ContaParcelaBaixaComponent, {\r\n data: {\r\n contaParcelaId: contaParcelaId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarContaParcela(contaParcelaId);\r\n\r\n });\r\n\r\n };\r\n\r\n cancelarParcela(cancelarContaParcelas) {\r\n\r\n let parcelas = [];\r\n\r\n parcelas.push(cancelarContaParcelas);\r\n\r\n this.cancelarParcelas(parcelas);\r\n };\r\n\r\n cancelarParcelas(cancelarContaParcelas) {\r\n\r\n let msg = \"Deseja cancelar esta(s) parcela(s)?\"\r\n\r\n if(cancelarContaParcelas.some(x => x.statusPagamento == 1)){\r\n msg += \" Isso também excluirá os registros correspondentes no fluxo de caixa.\"\r\n }\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msg\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.contaParcelaService.postCancelarContaParcelas(cancelarContaParcelas).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro Cancelado com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarContaParcela(this.IContaParcela.contaParcelaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n}\r\n","\r\n
      \r\n

      {{tipoOperacao}} Parcela

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n Informação da Parcela\r\n \r\n \r\n
      \r\n
      \r\n Status Pagamento: {{retornaStatusPagamento(contaParcelaForm.value.statusPagamento)}}\r\n
      \r\n \r\n \r\n Descrição Parcela\r\n \r\n \r\n
      \r\n \r\n
      \r\n \r\n Valor Parcela\r\n \r\n \r\n \r\n Data de Vencimento\r\n \r\n \r\n \r\n \r\n \r\n Data de Emissão\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Tipo de Documento Fiscal\r\n \r\n Nfs-e\r\n Recibo\r\n Nf-e\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n Informações do Pagamento\r\n \r\n \r\n
      \r\n \r\n Data do Pagamento\r\n \r\n \r\n \r\n \r\n \r\n Valor do Pagamento\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor do Juros\r\n \r\n \r\n \r\n Valor da Multa\r\n \r\n \r\n \r\n Valor do Desconto\r\n \r\n \r\n
      \r\n
      \r\n \r\n Observações\r\n \r\n \r\n \r\n Tipo De Pagamento\r\n \r\n Dinheiro\r\n Débito\r\n Crédito\r\n Boleto\r\n PIX\r\n Transferência\r\n Cheque\r\n Vale Refeição\r\n Banco\r\n Prestação de Contas\r\n \r\n \r\n \r\n Selecione a Operação (*)\r\n \r\n \r\n {{operacaoContabil.descricao}}\r\n \r\n \r\n \r\n \r\n Número de Parcelas\r\n \r\n \r\n \r\n Código de Autenticação\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n 0\">\r\n \r\n Informações do Boleto\r\n \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","export class CaixaMovimento {\r\n\r\n caixaMovimentoId: number = 0;\r\n\r\n descricao: string = '';\r\n\r\n caixaMovimentoStatus: number = 0;\r\n\r\n direcao: number = 0;\r\n\r\n valor: number = 0;\r\n\r\n saldo: number = 0;\r\n\r\n tipoPagamento: number = 0;\r\n\r\n contaContabilId: number = 0;\r\n\r\n sequenciaId: number = 0;\r\n\r\n data: Date = new Date();\r\n\r\n grupoContaId: number = 0;\r\n\r\n caixaId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class CaixaMovimentoService {\r\n\r\n getCaixaMovimento(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getCaixaMovimentos(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/visualizatodasporfiltro', item, { observe: 'response' })\r\n }\r\n\r\n postCaixaMovimento(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putCaixaMovimento(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteCaixaMovimento(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postCaixaMovimentoTransferencia(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/transferir', item, { observe: 'response' })\r\n };\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class ContaParcela {\r\n\r\n contaParcelaId: number = 0;\r\n\r\n tipoConta: number = 0;\r\n\r\n contaParcelaTipo: number = 0;\r\n\r\n contaContabilDebitoId: number = 0;\r\n\r\n contaContabilCreditoId: number = 0;\r\n\r\n descricao: string = '';\r\n\r\n valorParcela: number = 0;\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n dataVencimento: Date = new Date();\r\n\r\n valorAteVenc: number = 0;\r\n\r\n tipoMulta: number = 0; //0 - %, 1 - R$\r\n\r\n valorMultaPosVenc: number = 0;\r\n\r\n valorMultaCalculada: number = 0;\r\n\r\n tipoJuros: number = 0; //0 - %, 1 - R$\r\n\r\n valorMoraDia: number = 0;\r\n\r\n valorMoraCalculada: number = 0;\r\n\r\n statusPagamento: number = 0; //0- A pagar, 1- Pago, 2- Cancelado, 3- Estornado, 4 - Retido\r\n\r\n dataPagamento: Date = new Date();\r\n\r\n valorPagamento: number = 0;\r\n\r\n observacaoPagamento: string = '';\r\n\r\n valorQueFicaraAtivo: number = 0;\r\n\r\n tipoPagamento: number = 0;\r\n\r\n contaCorrenteId: number = 0;\r\n\r\n caixaMovimentoId: number = 0;\r\n\r\n boletoId: number = 0;\r\n\r\n nossoNumero: number = 0;\r\n\r\n valorBruto: number = 0;\r\n\r\n valorLiquido: number = 0;\r\n\r\n saldo: number = 0;\r\n\r\n nfseId: number = 0;\r\n\r\n nfeId: number = 0;\r\n\r\n nfseNumero: number = 0;\r\n\r\n nfeNumero: number = 0;\r\n\r\n adiantamentoContaId: number = 0;\r\n\r\n operacaoContabilId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n contaId: number = 0;\r\n\r\n selected: boolean = false;\r\n\r\n caixaId: number = 0;\r\n \r\n numeroParcelas: number = 1;\r\n \r\n numeroDoComprovanteDeVenda: string = '';\r\n \r\n codigoAutenticacao : string = '';\r\n \r\n contaCorrenteVendaId : number = 0\r\n \r\n contaCorrenteTerminalCartaoId: number = 0;\r\n\r\n contaCorrenteTerminalId: number = 0;\r\n\r\n valorJurosPago: number = 0;\r\n\r\n valorMultaPago: number = 0;\r\n\r\n valorDescontoPago: number = 0;\r\n\r\n documentoFiscal: number = 1;\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContaParcelaService {\r\n\r\n postVisualizaParcelasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/visualizaparcelasporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n getContaCorrente(contaParcelaId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/visualizacontacorrente/' + contaParcelaId, { observe: 'response' })\r\n }\r\n\r\n postReciboPorEmail(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/enviareciboporemail', item, { observe: 'response' })\r\n };\r\n\r\n postGeraNfse(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/geranfse', item, { observe: 'response' })\r\n };\r\n\r\n postCancelarContaParcelas(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/exclui', item, { observe: 'response' })\r\n };\r\n\r\n getContaParcela(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postContaParcela(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/inclui', item, { observe: 'response' })\r\n };\r\n\r\n postContaParcelaRecorrente(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/incluirrecorrencia', item, { observe: 'response' })\r\n };\r\n\r\n postImprimirRecibo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/imprimirrecibo', item, { observe: 'response' })\r\n };\r\n\r\n putContaParcela(itemId: any, item: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n putContaParcelaCorrigir(itemId: any, item: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/corrigir/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n postContaParcelaPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/visualizaparcelasporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { ContaParcela } from \"./conta-parcela.model\";\r\n\r\nexport class Conta {\r\n\r\n contaId: number = 0;\r\n\r\n tpConta: number = 0;\r\n\r\n tipoAdiantamento: number = 0;\r\n\r\n //Se tpConta for 0 então é cliente\r\n //se tpConta for 1 então é fornecedor\r\n //se tpConta for 2 pode ser Cliente, Fornecedor ou Funcionário dependentedo do tipoAdiantamento\r\n parceiroId: number = 0;\r\n\r\n descricaoConta: string = '';\r\n\r\n nomeParceiro: string = '';\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n grupoContaId: number = 0;\r\n\r\n empresaId: number = 0;\r\n\r\n saldo: number = 0;\r\n\r\n valor: number = 0;\r\n\r\n nfeId: number = 0;\r\n\r\n gerarNFSeAutomaticamente: boolean = false;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n caixaId: number = 0;\r\n\r\n contaContabilDebitoId: number = 0;\r\n\r\n contaContabilCreditoId: number = 0;\r\n\r\n centroCustoId: number = 0;\r\n\r\n contaParcelas: ContaParcela[] = [];\r\n\r\n comportamentoNfse: number = 0;\r\n\r\n documentoFiscal: number = 0;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContaService {\r\n\r\n postEnviaBoletoPorEmail(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/enviaboletoporemail', item, { observe: 'response' })\r\n };\r\n\r\n postIncluiBoletoPelaContaParcela(item: any): Observable> {\r\n console.log(item);\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/incluiboletopelacontaparcela', item, { observe: 'response' })\r\n };\r\n\r\n postVisualizaBoletoPorContaParcela(item: any): Observable> {\r\n console.log(item);\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualizaboletoporcontaparcela', item, { observe: 'response' })\r\n };\r\n\r\n getEmpresas(itemId: any): Observable> {\r\n\r\n const params = {\r\n tpConta: itemId,\r\n };\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/visualizatodasempresas/', { observe: 'response', params })\r\n }\r\n\r\n getCaixas(itemId: any): Observable> {\r\n\r\n const params = {\r\n tpConta: itemId,\r\n };\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualizatodascaixas/', { observe: 'response', params })\r\n }\r\n\r\n getCentroCustos(itemId: any): Observable> {\r\n\r\n const params = {\r\n tpConta: itemId,\r\n };\r\n \r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/conta/centrocusto/', { observe: 'response', params })\r\n }\r\n\r\n getConta(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postConta(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/inclui', item, { observe: 'response' })\r\n };\r\n\r\n putConta(itemId: any, item: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/conta/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n getIntegracoesSOC(): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/conta/verifica-integracoes-soc/', {observe: 'response'})\r\n}\r\n\r\n postVisualizaCliente(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualizacliente', item, { observe: 'response' })\r\n };\r\n\r\n postVisualizaFornecedor(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualizafornecedor', item, { observe: 'response' })\r\n };\r\n\r\n postVisualizaFuncionario(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualizafuncionario', item, { observe: 'response' })\r\n };\r\n\r\n getParceiroPorNome(nome: any, tpConta: number): Observable> {\r\n let url = '';\r\n const params = new HttpParams().set('id', nome);\r\n\r\n switch (tpConta) {\r\n case 0:\r\n url = 'visualizaclientepornome';\r\n break;\r\n case 1:\r\n url = 'visualizafornecedorpornome';\r\n break;\r\n case 2:\r\n url = 'visualizafuncionariopornome';\r\n break;\r\n }\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/conta/' + url, { observe: 'response', params }\r\n );\r\n\r\n }\r\n\r\n getAdiantamentoPorContaId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/conta/visualizaadiantamentoporcontaid/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postFiltraPosicaoConta(item: any): Observable> {\r\n console.log(item);\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/contasporcliente', item, { observe: 'response' })\r\n };\r\n\r\n postContaPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/contasporperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postCaixaMovimentoPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/visualizasaldoporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n getTextoTipoPagametno(tipoPagamento: number) {\r\n\r\n let textotipoPagamento = \"\";\r\n\r\n switch (tipoPagamento) {\r\n case 0:\r\n textotipoPagamento = \"Dinheiro\";\r\n break;\r\n case 1:\r\n textotipoPagamento = \"Débito\";\r\n break;\r\n case 2:\r\n textotipoPagamento = \"Crédito\";\r\n break;\r\n case 3:\r\n textotipoPagamento = \"Boleto\";\r\n break;\r\n case 4:\r\n textotipoPagamento = \"Transferência\";\r\n break;\r\n case 5:\r\n textotipoPagamento = \"Cheque\";\r\n break;\r\n case 6:\r\n textotipoPagamento = \"Vale Refeição\";\r\n break;\r\n case 7:\r\n textotipoPagamento = \"Banco\";\r\n break;\r\n case 8:\r\n textotipoPagamento = \"Prestação de contas\";\r\n break;\r\n }\r\n\r\n return textotipoPagamento;\r\n\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class grupoContaService {\r\n\r\n getgrupoContas(itemId: any): Observable> {\r\n\r\n const params = {\r\n tpConta: itemId,\r\n };\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/visualizatodas/', { observe: 'response', params })\r\n }\r\n\r\n getPlanoConta(tpConta: any, empresas: any[]): Observable> {\r\n\r\n const params = {\r\n tipoConta: tpConta,\r\n empresaIds: empresas\r\n };\r\n\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/planoconta/', { observe: 'response', params })\r\n }\r\n\r\n postContasContabeisPorFiltro(item: any): Observable> {\r\n\r\n let filtro: any = {};\r\n filtro.id = item.descricao;\r\n filtro.empresaIds = item.empresaIds;\r\n filtro.tpConta = item.tpConta;\r\n \r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/visualizacontacontabilpornomeeempresas/', filtro, { observe: 'response' })\r\n }\r\n\r\n getgrupoContasPagarReceber(): Observable> {\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/visualizatodassemtipo/', { observe: 'response' })\r\n }\r\n\r\n getgrupoConta(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getgrupoContaPai(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/visualizapai/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getgrupoContasPorFiltro(params): Observable> {\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/filtro', { observe: 'response', params })\r\n }\r\n\r\n postVisualizaGrupoConta(item: any, skipLoader = 'false'): Observable> {\r\n\r\n const headers = new HttpHeaders().set('X-Skip-Loader', skipLoader); \r\n \r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/visualizaporfiltro/', item, {headers, observe: 'response' } )\r\n }\r\n\r\n GrupoContas(tipoConta: any, grupoContaPaiId: number): Observable> {\r\n\r\n const params = {\r\n tipoConta: tipoConta,\r\n grupoContaPaiId: grupoContaPaiId\r\n }\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/getgrupocontas', { observe: 'response', params })\r\n }\r\n\r\n postgrupoConta(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putgrupoConta(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deletegrupoConta(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/grupoConta/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { NfeService } from '../shared/nfe.service';\r\nimport { NfeItemComponent } from '../nfe-item/nfe-item.component';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Nfe } from '../shared/nfe.model';\r\nimport { Transportadora } from '../../transportadora/shared/transportadora.model';\r\nimport { Cfop } from 'src/app/cfop/shared/cfop.model';\r\nimport { CfopService } from 'src/app/cfop/shared/cfop.service';\r\nimport { NfeStatusComponent } from '../nfe-status/nfe-status.component';\r\nimport { Produto } from 'src/app/produto/shared/produto.model';\r\nimport { NfeItem } from '../shared/nfe-item.model';\r\nimport { NfeDanfeComponent } from '../nfe-danfe/nfe-danfe.component';\r\nimport { NfeEventoComponent } from '../nfe-evento/nfe-evento.component';\r\nimport { Router } from '@angular/router';\r\nimport { NfePedidoCompraComponent } from '../nfe-pedido-compra/nfe-pedido-compra.component';\r\nimport { _MatTabGroupBase } from '@angular/material/tabs';\r\nimport { ExportaXmlService } from 'src/app/core/exporta-xml/exporta-xml.service';\r\nimport { NfePedidoVendaComponent } from '../nfe-pedido-venda/nfe-pedido-venda.component';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n discriminacao: string;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-cadastro',\r\n templateUrl: 'nfe-cadastro.component.html',\r\n styleUrls: ['nfe-cadastro.component.css']\r\n})\r\n\r\nexport class NfeCadastroComponent {\r\n\r\n nfeInbound: boolean = false;\r\n nfe: Nfe = new Nfe();\r\n nfeItens: NfeItem[];\r\n empresa: any = {};\r\n transportadora: Transportadora;\r\n cliente: any = {};\r\n localEntrega: any = {};\r\n empresas: any = [];\r\n nfes: any = [];\r\n transportadoras: Transportadora[];\r\n clientes: any[];\r\n locaisEntrega: any[];\r\n nfeCadastroForm: FormGroup;\r\n nfeItemForm: FormGroup;\r\n cfops: Cfop[];\r\n maximizado: boolean;\r\n possuiReferencia: boolean = false;\r\n permiteExportarXml: boolean = false;\r\n permiteExibirEventos: boolean = false;\r\n autorizada: boolean = false;\r\n cancelar: boolean = false;\r\n permiteImprimir: boolean = false;\r\n processar: boolean = false;\r\n permiteSalvar: boolean = false;\r\n panelOpenState = false;\r\n produtos: Produto[] = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public INfe: DialogData,\r\n private nfeService: NfeService,\r\n private cfopService: CfopService,\r\n private exportaXmlService: ExportaXmlService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (this.router.url.indexOf('/inbound') > -1) {\r\n this.nfeInbound = true;\r\n }\r\n\r\n this.maximizado = false;\r\n\r\n this.nfeCadastroForm = this._formBuilder.group(new Nfe());\r\n\r\n this.nfeItemForm = this._formBuilder.group(new NfeItem());\r\n\r\n this.nfeCadastroForm.addControl('clienteAutoComplete', new FormControl(''));\r\n\r\n this.nfeCadastroForm.addControl('localEntregaAutoComplete', new FormControl(''));\r\n\r\n this.nfeCadastroForm.addControl('fornecedorRazaoSocial', new FormControl(''));\r\n\r\n this.nfeItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.nfeItemForm.addControl('produtoTipo', new FormControl(0));\r\n\r\n this.getEmpresas();\r\n\r\n this.getTransportadoras();\r\n\r\n if (this.INfe.nfeId > 0) {\r\n\r\n this.buscaNfe(this.INfe.nfeId);\r\n\r\n } else {\r\n this.permiteSalvar = true;\r\n this.nfe.nfeId = 0;\r\n this.nfe.dhEmi = new Date();\r\n this.nfe.dhSaiEnt = new Date();\r\n this.nfeCadastroForm.get('tpNF').setValue(1);\r\n this.nfeCadastroForm.get('indPag').setValue(2);\r\n this.nfeCadastroForm.get('idDest').setValue(1);\r\n this.nfeCadastroForm.get('tpImp').setValue(1);\r\n this.nfeCadastroForm.get('finNFe').setValue(1);\r\n this.nfeCadastroForm.get('indFinal').setValue(0);\r\n this.nfeCadastroForm.get('indPres').setValue(0);\r\n this.nfeCadastroForm.get('modFrete').setValue(0);\r\n this.nfeCadastroForm.get('mod').setValue(55);\r\n this.nfeCadastroForm.get('especie').setValue('PACOTES');\r\n this.nfeCadastroForm.get('tpEmis').setValue(1);\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.nfeCadastroForm\r\n .get('clienteAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.nfeService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.clientes = data.body\r\n );\r\n\r\n this.nfeCadastroForm\r\n .get('localEntregaAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.nfeService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data => this.locaisEntrega = data.body);\r\n\r\n this.nfeItemForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.nfeService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: this.nfeItemForm.get('produtoTipo').value \r\n }) : []\r\n )\r\n )\r\n .subscribe(data => this.produtos = data.body);\r\n\r\n this.nfeCadastroForm\r\n .get('empresaId')\r\n .valueChanges\r\n .subscribe(data => this.defineEmpresa(data));\r\n\r\n }\r\n\r\n defineEmpresa(empresaId: number) {\r\n\r\n this.empresas.forEach(_empresa => {\r\n\r\n if (_empresa.empresaId == empresaId) {\r\n this.nfeCadastroForm.get('cMunFG').setValue(_empresa.municipio.codIBGE);;\r\n }\r\n\r\n });\r\n\r\n if (empresaId > 0) {\r\n\r\n let filtro = {\r\n empresaId: empresaId,\r\n direcao: this.nfeCadastroForm.get('tpNF').value,\r\n };\r\n\r\n this.cfopService.getCfops(filtro).subscribe(data => {\r\n this.cfops = data.body;\r\n\r\n if (this.cfops.length > 1 && this.nfeCadastroForm.get('nfeId').value == 0) {\r\n this.defineCfop(this.cfops[0]);\r\n }\r\n\r\n });\r\n\r\n this.nfeService.getNfeConfigPorEmpresa(empresaId).subscribe(data => {\r\n\r\n this.nfeCadastroForm.get('infAdFisco').setValue(data.body.infAdFisco);\r\n this.nfeCadastroForm.get('infCpl').setValue(data.body.infCpl);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: \"Erro ao carregar Informações Adicionais. Verifique as configurações de NF-e\"\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n defineCfop(cfopCompleto: any) {\r\n this.nfeCadastroForm.get('cfop').setValue(cfopCompleto.codCfop);\r\n let naturezaOperacao = cfopCompleto.descricao.substring(0, 60);\r\n this.nfeCadastroForm.get('natOp').setValue(naturezaOperacao);\r\n }\r\n\r\n definenaturezaOperacao(codCfop: any)\r\n {\r\n this.cfops.forEach(cfop => {\r\n\r\n if(cfop.codCfop == codCfop){\r\n let naturezaOperacao = cfop.descricao.substring(0, 60);\r\n this.nfeCadastroForm.get('natOp').setValue(naturezaOperacao);\r\n this.nfeItemForm.get('cfop').setValue(cfop.codCfop);\r\n }\r\n\r\n });\r\n }\r\n\r\n getEmpresas() {\r\n\r\n this.nfeService.getEmpresa().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n getTransportadoras() {\r\n\r\n this.nfeService.getTransportadoras().subscribe(data => {\r\n\r\n this.transportadoras = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n\r\n buscaNfe(nfeId: number) {\r\n\r\n this.nfeService.getNfe(nfeId).subscribe(data => {\r\n \r\n this.InsereDadosNfe(data.body);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n\r\n InsereDadosNfe(data: any) {\r\n\r\n this.permiteExportarXml = false;\r\n this.permiteExibirEventos = false;\r\n this.autorizada = false;\r\n this.cancelar = false;\r\n this.permiteImprimir = false;\r\n this.processar = false;\r\n this.permiteSalvar = false;\r\n\r\n this.nfeCadastroForm.patchValue(data.nfe);\r\n\r\n\r\n this.nfeItemForm.get('nfeId').setValue(data.nfe.nfeId);\r\n\r\n if (data.cliente.nomeFantasia != null) {\r\n this.nfeCadastroForm.get('clienteAutoComplete').setValue(data.cliente.nomeFantasia);\r\n }\r\n\r\n if (data.localEntrega.nomeFantasia != null) {\r\n this.localEntrega = data.localEntrega;\r\n this.nfeCadastroForm.get('localEntregaAutoComplete').setValue(this.localEntrega.nomeFantasia);\r\n }\r\n\r\n this.nfe = data.nfe;\r\n this.nfeItens = data.nfe.nfeItens;\r\n this.empresa = data.empresa;\r\n this.transportadora = data.transportadora;\r\n this.nfes = [];\r\n this.nfes.push(this.nfe);\r\n\r\n if(data.fornecedor != null)\r\n {\r\n this.nfeCadastroForm.get('fornecedorRazaoSocial').setValue(data.fornecedor.razaoSocial)\r\n }\r\n\r\n if (data.nfe.refNFe != null && data.nfe.refNFe != '') {\r\n this.possuiReferencia = true;\r\n };\r\n\r\n if (data.nfe.statusProcessamento == 100) {\r\n this.permiteExportarXml = true;\r\n };\r\n\r\n if (data.nfe.statusProcessamento == 100 || data.nfe.statusProcessamento == 135 || data.nfe.nProt != null) {\r\n this.permiteExibirEventos = true;\r\n }\r\n\r\n if (data.nfe.statusProcessamento == 100 && data.nfe.inbound == false) {\r\n this.autorizada = true;\r\n };\r\n\r\n if (data.nfe.statusProcessamento != 101 && \r\n data.nfe.statusProcessamento != 102 && \r\n data.nfe.inbound == false && \r\n data.nfe.statusProcessamento != 301 && \r\n data.nfe.statusProcessamento != 302 && \r\n data.nfe.statusProcessamento != 303) {\r\n this.cancelar = true;\r\n };\r\n\r\n if (data.nfe.statusProcessamento != 101 && data.nfe.statusProcessamento != 102 && data.nfe.inbound == false && data.nfe.statusProcessamento != 301 && data.nfe.statusProcessamento != 302 && data.nfe.statusProcessamento != 303) {\r\n this.permiteImprimir = true;\r\n };\r\n\r\n if (data.nfe.statusProcessamento != 100 && data.nfe.statusProcessamento != 101 && data.nfe.statusProcessamento != 102 && data.nfe.statusProcessamento != 135 && data.nfe.inbound == false && data.nfe.statusProcessamento != 301 && data.nfe.statusProcessamento != 302 && data.nfe.statusProcessamento != 303 && data.nfe.inbound == false) {\r\n this.processar = true;\r\n };\r\n\r\n if (data.nfe.statusProcessamento != 100 && data.nfe.statusProcessamento != 101 && data.nfe.statusProcessamento != 102 && data.nfe.statusProcessamento != 135 && data.nfe.inbound == false && data.nfe.statusProcessamento != 301 && data.nfe.statusProcessamento != 302 && data.nfe.statusProcessamento != 303 && data.nfe.inbound == false) {\r\n this.permiteSalvar = true;\r\n }\r\n\r\n if (data.nfe.inbound == true && data.nfe.possuiPedidoCompra == false && data.nfe.finNFe != 4) {\r\n this.buscaPedidoCompra();\r\n }\r\n\r\n if (data.nfe.inbound == true && data.nfe.possuiPedidoCompra == false && data.nfe.finNFe == 4) {\r\n this.buscaDevolucaoVenda();\r\n }\r\n\r\n }\r\n\r\n atualizaStatus(statusProcessamento: number) {\r\n\r\n switch (statusProcessamento) {\r\n case 301:\r\n case 302:\r\n case 303:\r\n return \" - Status: Denegada\";\r\n case 135:\r\n return \" - Status: Autorizada - Evento Vinculado\";\r\n\r\n case 100:\r\n return \" - Status: Autorizada\";\r\n\r\n case 101:\r\n return \" - Status: Cancelada\";\r\n case 102:\r\n return \" - Status: Inutilizada\";\r\n case 0:\r\n return \" - Status: Em processamento\";\r\n default:\r\n return \" - Status: Erro, verifique o status\";\r\n }\r\n }\r\n\r\n buscaPedidoCompra() {\r\n\r\n const dialogRef = this.dialog.open(NfePedidoCompraComponent, {\r\n data: {\r\n nfeId: this.nfeCadastroForm.value.nfeId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.buscaNfe(this.nfe.nfeId);\r\n });\r\n\r\n }\r\n\r\n buscaDevolucaoVenda() {\r\n\r\n const dialogRef = this.dialog.open(NfePedidoVendaComponent, {\r\n data: {\r\n nfeId: this.nfeCadastroForm.value.nfeId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscaNfe(this.nfe.nfeId);\r\n });\r\n\r\n }\r\n\r\n determinaCliente(cliente: any) {\r\n\r\n if (cliente.inscEstadual == null || cliente.inscEstadual == \"\" || cliente.inscEstadual == \"ISENTO\") {\r\n this.nfeCadastroForm.get('indFinal').setValue(1);\r\n }\r\n this.nfeCadastroForm.get('clienteId').setValue(cliente.clienteId);\r\n }\r\n\r\n DeterminalocalEntregaId(id: number) {\r\n this.nfeCadastroForm.get('idlocalEntrega').setValue(id);\r\n }\r\n\r\n determinaprodutoId(produto: Produto) {\r\n\r\n this.nfeItemForm.get('produtoId').setValue(produto.produtoId);\r\n this.nfeItemForm.get('codProd').setValue(produto.codProd);\r\n this.nfeItemForm.get('descricao').setValue(produto.descricao);\r\n this.nfeItemForm.get('ncm').setValue(produto.ncm);\r\n this.nfeItemForm.get('ean').setValue(produto.ean);\r\n this.nfeItemForm.get('eanTrib').setValue(produto.eanTrib);\r\n this.nfeItemForm.get('unTributaria').setValue(produto.unTributaria);\r\n this.nfeItemForm.get('vlrTributario').setValue(produto.vlrTributario);\r\n this.nfeItemForm.get('unComercial').setValue(produto.unComercial);\r\n this.nfeItemForm.get('vlrComercial').setValue(produto.vlrComercial);\r\n this.nfeItemForm.get('extipi').setValue(produto.extipi);\r\n this.nfeItemForm.get('infAdProd').setValue(produto.infAdProd);\r\n this.nfeItemForm.get('pesoLiquido').setValue(produto.pesoLiquido);\r\n this.nfeItemForm.get('pesoBruto').setValue(produto.pesoBruto);\r\n this.nfeItemForm.get('cest').setValue(produto.cest);\r\n this.nfeItemForm.get('indTot').setValue(1);\r\n }\r\n\r\n cancelarNfe() {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente enviar essa NF-e para cancelamento?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.nfeService.postCancelar(this.nfeCadastroForm.value).subscribe(data => {\r\n\r\n let status = data.body;\r\n\r\n let texto = \"Erro no processo de cancelamento. Verifique o status\";\r\n\r\n if (status == 101) {\r\n texto = \"NF-e cancelada com sucesso.\";\r\n }\r\n\r\n if (status == 102) {\r\n texto = \"NF-e inutilizada com sucesso.\";\r\n }\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Informação\",\r\n mensagem: texto\r\n }\r\n });\r\n\r\n this.buscaNfe(this.nfeCadastroForm.value.nfeId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n processa(): void {\r\n\r\n this.nfeService.postProcessaNfe(this.nfeCadastroForm.value).subscribe(data => {\r\n\r\n let texto = \"NF-e rejeitada. Verifique o status\";\r\n\r\n if (data.body == 100) {\r\n texto = \"NF-e Autorizada com Sucesso\";\r\n }\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Informação\",\r\n mensagem: texto\r\n }\r\n });\r\n\r\n this.buscaNfe(this.nfeCadastroForm.get('nfeId').value);\r\n\r\n });\r\n\r\n }\r\n\r\n imprime() {\r\n\r\n const dialogRef = this.dialog.open(NfeDanfeComponent, {\r\n data: {\r\n nfeId: this.nfeCadastroForm.value.nfeId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n\r\n }\r\n\r\n modalNfeStatus() {\r\n\r\n const dialogRef = this.dialog.open(NfeStatusComponent, {\r\n data: {\r\n nfeId: this.nfeCadastroForm.value.nfeId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n }\r\n\r\n exportaXml() {\r\n\r\n if (this.nfeCadastroForm.value.statusProcessamento == 100) {\r\n\r\n this.nfeService.postExportarXml(this.nfeCadastroForm.value).subscribe(data => {\r\n\r\n this.exportaXmlService.exporta(data.body.xmlProcNfe, data.body.fileName);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error.error\r\n }\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.nfeCadastroForm.value.nfeId == 0) {\r\n\r\n this.nfeService.postNfe(this.nfeCadastroForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscaNfe(data.body.nfeId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.nfeService.putNfe(this.nfeCadastroForm.value, this.nfeCadastroForm.value.nfeId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscaNfe(this.nfeCadastroForm.value.nfeId);\r\n\r\n });\r\n }\r\n\r\n };\r\n\r\n imprimir(): void {\r\n\r\n let titulo = \"SaguiControl - Pedido de Nfe\";\r\n\r\n this.htmlPrinterService.printDiv('printNfe', titulo);\r\n }\r\n\r\n PreencherTabela(cliente: any) {\r\n\r\n if (cliente != undefined) {\r\n this.nfe.clienteId = cliente.clienteId;\r\n }\r\n }\r\n\r\n PreencherTabelalocalRetirada(localRetirada: any) {\r\n\r\n if (localRetirada != undefined) {\r\n this.nfe.idlocalRetirada = localRetirada.clienteId;\r\n }\r\n }\r\n\r\n PreencherTabelalocalEntrega(localEntrega) {\r\n\r\n if (localEntrega != undefined) {\r\n this.nfe.idlocalEntrega = localEntrega.clienteId;\r\n }\r\n }\r\n\r\n modalNfeItem(nfeItemId: number, nfeManual: boolean): void {\r\n\r\n const dialogRef = this.dialog.open(NfeItemComponent, {\r\n data: {\r\n nfeItemId: nfeItemId,\r\n nfe: this.nfeCadastroForm.value,\r\n nfeManual: nfeManual\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscaNfe(this.nfe.nfeId);\r\n });\r\n\r\n }\r\n\r\n deleteNfeItem(nfeItemId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse item?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.nfeService.deleteNfeItem(nfeItemId).subscribe(data => {\r\n\r\n this.buscaNfe(this.nfe.nfeId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n onChangeValorComercial() {\r\n\r\n let vlrComercial = this.nfeItemForm.get('vlrComercial').value;\r\n let qtdComercial = this.nfeItemForm.get('qtdComercial').value;\r\n let vProd = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.nfeItemForm.get('vProd').setValue(vProd.toFixed(2));\r\n this.nfeItemForm.get('qtdTributaria').setValue(qtdComercial);\r\n this.nfeItemForm.get('qtdComercial').setValue(qtdComercial);\r\n this.nfeItemForm.get('vlrTributario').setValue(vlrComercial);\r\n this.nfeItemForm.get('vlrComercial').setValue(vlrComercial);\r\n }\r\n\r\n salvarNfeItem(_nfeItem) {\r\n\r\n this.nfeService.postIncluiNfeItem(_nfeItem).subscribe(data => {\r\n\r\n this.buscaNfe(this.nfeCadastroForm.value.nfeId);\r\n\r\n });\r\n\r\n }\r\n\r\n calculaImposto() {\r\n\r\n if (this.nfeItemForm.value.cfop != 5206) {\r\n\r\n this.nfeService.postCalculaImposto(this.nfeItemForm.value).subscribe(data => {\r\n\r\n if (data.body != null) {\r\n //CST\r\n this.nfeItemForm.get('cstIcms').setValue(data.body.cstIcms.toString());\r\n this.nfeItemForm.get('cstIpi').setValue(data.body.cstIpi.toString());\r\n this.nfeItemForm.get('cstPis').setValue(data.body.cstPis.toString());\r\n this.nfeItemForm.get('cstCofins').setValue(data.body.cstCofins.toString());\r\n\r\n //ICMS\r\n this.nfeItemForm.get('icmsvBC').setValue(data.body.icmsvBC.toString());\r\n this.nfeItemForm.get('icmspIcms').setValue(data.body.icmspIcms.toString());\r\n this.nfeItemForm.get('icmsvIcms').setValue(data.body.icmsvIcms.toString());\r\n this.nfeItemForm.get('icmsSTmodBCST').setValue(data.body.icmsSTmodBCST.toString());\r\n this.nfeItemForm.get('icmsSTpMVAST').setValue(data.body.icmsSTpMVAST.toString());\r\n this.nfeItemForm.get('icmspRedBC').setValue(data.body.icmspRedBC.toString());\r\n\r\n this.nfeItemForm.get('icmsSTvBCST').setValue(data.body.icmsSTvBCST.toString());\r\n this.nfeItemForm.get('icmsSTpIcmsST').setValue(data.body.icmsSTpIcmsST.toString());\r\n\r\n this.nfeItemForm.get('icmsSTvIcmsST').setValue(data.body.icmsSTvIcmsST.toString());\r\n this.nfeItemForm.get('icmspCredSN').setValue(data.body.icmspCredSN.toString());\r\n this.nfeItemForm.get('icmsvCredIcmsSN').setValue(data.body.icmsvCredIcmsSN.toString());\r\n this.nfeItemForm.get('icmspRedBC').setValue(data.body.icmspRedBC.toString());\r\n\r\n //ICMS Simples\r\n this.nfeItemForm.get('icmspCredSN').setValue(data.body.icmspCredSN.toString());\r\n this.nfeItemForm.get('icmsvCredIcmsSN').setValue(data.body.icmsvCredIcmsSN.toString());\r\n\r\n //IPI\r\n this.nfeItemForm.get('ipicEnq').setValue(data.body.ipicEnq.toString());\r\n this.nfeItemForm.get('ipivBC').setValue(data.body.ipivBC.toString());\r\n\r\n //infAdProd\r\n this.nfeItemForm.get('infAdProd').setValue(data.body.infAdProd.toString());\r\n\r\n //PIS\r\n this.nfeItemForm.get('pisvBC').setValue(data.body.pisvBC.toString());\r\n this.nfeItemForm.get('pispPis').setValue(data.body.pispPis.toString());\r\n this.nfeItemForm.get('pisvPis').setValue(data.body.pisvPis.toString());\r\n\r\n //cofins\r\n this.nfeItemForm.get('cofinsvBC').setValue(data.body.cofinsvBC.toString());\r\n this.nfeItemForm.get('cofinspCofins').setValue(data.body.cofinspCofins.toString());\r\n this.nfeItemForm.get('cofinsvCofins').setValue(data.body.cofinsvCofins.toString());\r\n\r\n }\r\n\r\n let nfeItemTemp = this.nfeItemForm.value;\r\n\r\n nfeItemTemp.nfeItemImpostos = [\r\n {\r\n impostoId: 1,\r\n pRedBC: nfeItemTemp.icmspRedBC,\r\n vBC: nfeItemTemp.icmsvBC,\r\n vlrAliquota: nfeItemTemp.icmspIcms,\r\n vlrImposto: nfeItemTemp.icmsvIcms,\r\n orig: nfeItemTemp.icmSorig,\r\n pCredSN: nfeItemTemp.icmspCredSN,\r\n vCredICMSSN: nfeItemTemp.icmsvCredIcmsSN\r\n },\r\n {\r\n impostoId: 2,\r\n modBC: nfeItemTemp.icmsSTmodBCST,\r\n pRedBC: nfeItemTemp.icmsSTpRedBCST,\r\n pMVA: nfeItemTemp.icmsSTpMVAST,\r\n vBC: nfeItemTemp.icmsSTvBCST,\r\n vlrAliquota: nfeItemTemp.icmsSTpIcmsST,\r\n vlrImposto: nfeItemTemp.icmsSTvIcmsST,\r\n vBCSTRet: nfeItemTemp.vBCSTRet,\r\n pST: nfeItemTemp.pST,\r\n vICMSSubstituto: nfeItemTemp.vICMSSubstituto,\r\n vICMSSTRet: nfeItemTemp.vICMSSTRet,\r\n },\r\n {\r\n impostoId: 3,\r\n clEnq: nfeItemTemp.ipiclEnq,\r\n cEnq: nfeItemTemp.ipicEnq,\r\n cNPJProd: nfeItemTemp.ipiCNPJProd,\r\n cSelo: nfeItemTemp.IPIcSelo,\r\n vBC: nfeItemTemp.ipivBC,\r\n vlrAliquota: nfeItemTemp.ipipIpi,\r\n qUnid: nfeItemTemp.ipiqUnid,\r\n vUnid: nfeItemTemp.ipivUnid,\r\n vlrImposto: nfeItemTemp.ipivIpi\r\n },\r\n {\r\n impostoId: 4,\r\n vBC: nfeItemTemp.pisvBC,\r\n vlrAliquota: nfeItemTemp.pispPis,\r\n qUnid: nfeItemTemp.pisqUnid,\r\n vUnid: nfeItemTemp.pisvUnid,\r\n vlrImposto: nfeItemTemp.pisvPis\r\n },\r\n {\r\n impostoId: 5,\r\n vBC: nfeItemTemp.pisSTvBC,\r\n vlrAliquota: nfeItemTemp.pisSTpPis,\r\n vUnid: nfeItemTemp.PISSTvAliqProd,\r\n qUnid: nfeItemTemp.PISSTqBCProd,\r\n vlrImposto: nfeItemTemp.pisSTvPis\r\n },\r\n {\r\n impostoId: 6,\r\n vBC: nfeItemTemp.cofinsvBC,\r\n vlrAliquota: nfeItemTemp.cofinspCofins,\r\n qUnid: nfeItemTemp.cofinsqUnid,\r\n vUnid: nfeItemTemp.cofinsvUnid,\r\n vlrImposto: nfeItemTemp.cofinsvCofins\r\n },\r\n {\r\n impostoId: 7,\r\n vBC: nfeItemTemp.cofinsSTvBC,\r\n vlrAliquota: nfeItemTemp.cofinsSTpPIS,\r\n vUnid: nfeItemTemp.cofinsSTvAliqProd,\r\n qUnid: nfeItemTemp.cofinsSTqBCProd,\r\n vlrImposto: nfeItemTemp.cofinsSTvPIS\r\n }\r\n ];\r\n\r\n this.salvarNfeItem(nfeItemTemp);\r\n\r\n });\r\n };\r\n }\r\n\r\n exibeEventos(){\r\n \r\n const dialogRef = this.dialog.open(NfeEventoComponent, {\r\n data: {\r\n nfeId: this.nfeCadastroForm.value.nfeId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscaNfe(this.nfe.nfeId);\r\n });\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      NF-e {{nfe.nfeId}} {{atualizaStatus(nfeCadastroForm.value.statusProcessamento)}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n\r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n \r\n Fornecedor\r\n \r\n \r\n \r\n Destinatário\r\n \r\n \r\n \r\n CNPJ: {{parceiro.cnpj}} - {{parceiro.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop + ' - ' + cfop.descricao}}\r\n \r\n \r\n \r\n \r\n Natureza da Operação\r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Local de Entrega\r\n \r\n \r\n \r\n CNPJ: {{localEntrega.cnpj}} - {{localEntrega.nomeFantasia}}\r\n \r\n \r\n Se diferente do destinatário\r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Informações Adicionais de Interesse do Contribuinte\r\n \r\n \r\n
      \r\n
      \r\n \r\n Informações Adicionais de Interesse do Fisco\r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Transportadora\r\n \r\n \r\n {{transportadora.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Modalidade do Frete\r\n \r\n Contratação do frete por conta do remetente (CIF)\r\n Contratação do frete por conta do destinatário (FOB)\r\n Transporte próprio por conta do remetente\r\n Transporte próprio por conta do destinatário\r\n Sem ocorrência de transporte\r\n \r\n \r\n
      \r\n
      \r\n \r\n Quantidade de Volumes Transportados\r\n \r\n \r\n \r\n Espécie dos Volumes Transportados\r\n \r\n \r\n
      \r\n
      \r\n \r\n Peso Líquido (KG)\r\n \r\n \r\n \r\n Peso Bruto (KG)\r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n Chave de Acesso: {{nfeCadastroForm.value.chaveAcesso}}\r\n
      \r\n
      \r\n
      \r\n \r\n Forma de Emissão\r\n \r\n 1 - Emissão normal\r\n 2 - Contingência FS-IA\r\n 3 - Contingência SCAN\r\n 4 - Contingência DPEC\r\n 5 - Contingência FS-DA\r\n 6 - Contingência SVC-AN\r\n 7 - Contingência SVC-RS\r\n \r\n \r\n \r\n Finalidade de Emissão\r\n \r\n 1 - NF-e normal\r\n 2 - NF-e complementar\r\n 3 - NF-e de ajuste\r\n 4 - Devolução de mercadoria\r\n \r\n \r\n \r\n Forma de Emissão\r\n \r\n Não se aplica\r\n Operação presencial\r\n Operação não presencial, pela Internet\r\n Operação não presencial, Teleatendimento\r\n NFC-e em operação com entrega a domicílio\r\n Operação não presencial, outros\r\n \r\n \r\n \r\n Consumidor\r\n \r\n Normal\r\n Consumidor final\r\n \r\n \r\n \r\n Modalidade Nota Fiscal\r\n \r\n 55 - NF-e\r\n 65 - NFC-e\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n\r\n Cod. Município Fato Gerador\r\n \r\n \r\n
      \r\n
      \r\n \r\n Número da NF-e\r\n \r\n \r\n \r\n Série da NF-e\r\n \r\n \r\n \r\n Data da Emissão\r\n \r\n \r\n \r\n \r\n \r\n Data de Saída ou Entrada\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Tipo de Documento\r\n \r\n Entrada\r\n Saída\r\n \r\n \r\n \r\n Indicador de Pagamento\r\n \r\n Pagamento à vista\r\n Pagamento a prazo\r\n Outros\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n Possui Nota Fiscal Referenciada?\r\n
      \r\n\r\n \r\n Chave de Acesso NF-e Referenciada\r\n \r\n \r\n
      \r\n
      \r\n \r\n Inbound - Avisos\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      0\">\r\n
      \r\n \r\n \r\n Itens da NF-e\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Tipo de Produto\r\n \r\n Produto Acabado\r\n Uso e Consumo\r\n Ativo Imobilizado\r\n \r\n \r\n \r\n Digite o Nome do Produto\r\n \r\n \r\n \r\n {{produto.descricao}} - {{produto.vlrComercial | currency}}\r\n \r\n \r\n \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop + ' - ' + cfop.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Quantidade Comercial\"\r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n Essa é uma versão resumida do formulário. Para abrir o formulário completo com mais\r\n opções clique no botão abaixo\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      AçõesCódigoDescriçãoNCMCFOPUnid.Qtde.Valor Un.Valor Total
      \r\n \r\n edit\r\n \r\n \r\n delete\r\n \r\n {{nfeitem.codProd}}{{nfeitem.descricao}}{{nfeitem.ncm}}{{nfeitem.cfop}}{{nfeitem.unComercial}}{{nfeitem.qtdComercial}}{{nfeitem.vlrComercial | currency}}{{nfeitem.vProd | currency}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { NfeService } from '../shared/nfe.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { NfeEvento } from '../shared/nfe-evento.model';\r\nimport { NfeEventoService } from '../shared/nfe-evento.service';\r\nimport { Nfe } from '../shared/nfe.model';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n nfeEventoId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-carta-correcao',\r\n templateUrl: 'nfe-carta-correcao.component.html',\r\n})\r\n\r\nexport class NfeCartaCorrecaoComponent {\r\n\r\n nfeCartaCorrecaoForm: FormGroup;\r\n maximizado: boolean;\r\n nfeEventos: any = [];\r\n nfe: Nfe = new Nfe();\r\n empresa: any = {};\r\n cliente: any = {};\r\n permiteSalvar: boolean = true;\r\n permiteImprimir: boolean = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public INfeEvento: DialogData,\r\n private nfeEventoService: NfeEventoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.nfeCartaCorrecaoForm = this._formBuilder.group(new NfeEvento());\r\n\r\n this.nfeCartaCorrecaoForm.get('nfeId').setValue(this.INfeEvento.nfeId);\r\n\r\n if (this.INfeEvento.nfeEventoId > 0) {\r\n\r\n this.buscaNfeEvento(this.INfeEvento.nfeEventoId);\r\n\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n\r\n buscaNfeEvento(nfeEventoId: number) {\r\n\r\n this.nfeEventoService.getNfeEvento(nfeEventoId).subscribe(data => {\r\n\r\n this.permiteSalvar = false;\r\n\r\n if (data.body.evento.tpEvento == '110110') {\r\n this.permiteImprimir = true;\r\n }\r\n\r\n this.nfeCartaCorrecaoForm.patchValue(data.body.evento);\r\n\r\n this.nfe = data.body.nfe;\r\n this.empresa = data.body.empresa;\r\n this.cliente = data.body.cliente;\r\n\r\n this.nfeEventos = [];\r\n this.nfeEventos.push(data.body.evento);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n salvar(): void {\r\n\r\n this.nfeEventoService.postCartaCorreca(this.nfeCartaCorrecaoForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Carta de Correção associada com a NF-e\"\r\n }\r\n });\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n\r\n imprimirEvento() {\r\n\r\n this.htmlPrinterService.printDiv('printVenda', 'Carta de Correção');\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      Carta de Correção

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Texto da Carta de Correção\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n

      Carta de Correção

      \r\n
      \r\n ESTE RELATÓRIO NÃO TEM VALOR FISCAL E É UMA SIMPLES\r\n
      \r\n
      \r\n REPRESENTAÇÃO DA CARTA DE CORREÇÃO ELETRÔNICA INDICADA ABAIXO\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      NOTA FISCAL ELETRÔNICA
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      SÉRIE
      \r\n
      \r\n {{nfeEvento.nfe.serie}}\r\n
      \r\n
      \r\n
      NÚMERO DA NF-E
      \r\n
      \r\n {{nfeEvento.nfe.nNF}}\r\n
      \r\n
      \r\n
      CHAVE DE ACESSO
      \r\n
      \r\n {{nfeEvento.nfe.chaveAcesso}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      CARTA DE CORREÇÃO
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      EVENTO
      \r\n
      \r\n {{nfeEvento.tpEvento}}\r\n
      \r\n
      \r\n
      PROTOCOLO
      \r\n
      \r\n {{nfeEvento.nProt}}\r\n
      \r\n
      \r\n
      SEQUÊNCIA
      \r\n
      \r\n {{nfeEvento.nSeqEvento}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      EMITENTE
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      NOME / RAZÃO SOCIAL
      \r\n
      \r\n {{empresa.razaoSocial}}\r\n
      \r\n
      \r\n
      CNPJ / CPF
      \r\n
      \r\n {{empresa.cnpj}}\r\n
      \r\n
      \r\n
      ENDEREÇO
      \r\n
      \r\n {{empresa.logradouro}}  \r\n {{empresa.numero}}\r\n
      \r\n
      \r\n
      BAIRRO / DISTRITO
      \r\n
      \r\n {{empresa.bairro}}\r\n
      \r\n
      \r\n
      CEP
      \r\n
      \r\n {{empresa.cep}}\r\n
      \r\n
      \r\n
      MUNICÍPIO
      \r\n
      \r\n {{empresa.municipio?.descricao}}\r\n
      \r\n
      \r\n
      TELEFONE
      \r\n
      \r\n {{empresa.telefone}}\r\n
      \r\n
      \r\n
      UF
      \r\n
      \r\n {{empresa.municipio?.uf.siglaUF}}\r\n
      \r\n
      \r\n
      INSCRIÇÃO ESTADUAL
      \r\n
      \r\n {{empresa.inscEstadual}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      DESTINATÁRIO/REMETENTE
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      NOME / RAZÃO SOCIAL
      \r\n
      \r\n {{cliente.razaoSocial}}\r\n
      \r\n
      \r\n
      CNPJ / CPF
      \r\n
      \r\n {{cliente.cnpj != undefined ? cliente.cnpj : cliente.cpf}}\r\n
      \r\n
      \r\n
      ENDEREÇO
      \r\n
      \r\n {{cliente.logradouro}}  \r\n {{cliente.numero}}\r\n
      \r\n
      \r\n
      BAIRRO / DISTRITO
      \r\n
      \r\n {{cliente.bairro}}\r\n
      \r\n
      \r\n
      CEP
      \r\n
      \r\n {{cliente.cep}}\r\n
      \r\n
      \r\n
      MUNICÍPIO
      \r\n
      \r\n {{cliente.municipio?.descricao}}\r\n
      \r\n
      \r\n
      TELEFONE
      \r\n
      \r\n {{cliente.telefone}}\r\n
      \r\n
      \r\n
      UF
      \r\n
      \r\n {{cliente.municipio?.uf.siglaUF}}\r\n
      \r\n
      \r\n
      INSCRIÇÃO ESTADUAL
      \r\n
      \r\n {{cliente.inscEstadual}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      CORREÇÃO
      \r\n
      \r\n
      \r\n {{nfeEvento.xCorrecao}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      CONDIÇÕES DE USO
      \r\n
      \r\n
      \r\n
      \r\n A Carta de Correção é disciplinada pelo § 1º-A do\r\n art. 7º do Convênio S/N, de 15 de dezembro de 1970\r\n e pode ser utilizada para regularização de erro\r\n ocorrido na emissão de documento fiscal, desde que\r\n o erro não esteja relacionado com: I - as variáveis\r\n que determinam o valor do imposto tais como: base\r\n de cálculo, alíquota, diferença de preço, quantidade,\r\n valor da operação ou da prestação; II - a correção de\r\n dados cadastrais que implique mudança do\r\n remetente ou do destinatário; III - a data de emissão\r\n ou de saída.\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { NfeService } from '../shared/nfe.service';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { InfoDialogComponent } from 'src/app/core/dialogs/info-dialog/info-dialog.component';\r\nimport { NfeDanfe } from '../shared/nfe-danfe.model';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-danfe',\r\n templateUrl: 'nfe-danfe.component.html',\r\n styleUrls:['nfe-danfe.component.css']\r\n})\r\n\r\nexport class NfeDanfeComponent {\r\n\r\n maximizado: boolean;\r\n vSeg: number = 0;\r\n vBC: number = 0;\r\n vICMS: number = 0;\r\n vBCST: number = 0;\r\n vST: number = 0;\r\n vProd: number = 0;\r\n vFrete: number = 0;\r\n vDesc: number = 0;\r\n vOutro: number = 0;\r\n vIPI: number = 0;\r\n vNF: number = 0;\r\n vII: number = 0;\r\n vICMSDeson: number = 0;\r\n vServ: number = 0;\r\n nfe: any = {}\r\n empresa: any = {};\r\n cliente: any = {};\r\n transportadora: any = {};\r\n chaveAcessoQuatro: string = '';\r\n empresaMunicipio: string = '';\r\n empresaUf: string = '';\r\n clienteMunicipio: string = '';\r\n clienteUf: string = '';\r\n transportadoraMunicipio: string = '';\r\n transportadoraUf: string = '';\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public INfe: DialogData,\r\n private nfeService: NfeService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = true;\r\n\r\n this.buscaNfe(this.INfe.nfeId);\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n\r\n buscaNfe(nfeId: number) {\r\n\r\n this.nfeService.getNfe(nfeId).subscribe(data => {\r\n\r\n this.InsereDadosNfe(data.body);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n\r\n InsereDadosNfe(data: any) {\r\n\r\n this.nfe = data.nfe;\r\n this.empresa = data.empresa;\r\n this.empresaMunicipio = data.empresa.municipio?.descricao;\r\n this.empresaUf = data.empresa.municipio?.uf.siglaUF;\r\n this.cliente = data.cliente;\r\n this.clienteMunicipio = data.cliente.municipio?.descricao;\r\n this.clienteUf = data.cliente.municipio?.uf.siglaUF;\r\n this.transportadora = data.transportadora;\r\n if (this.transportadora.transportadoraId > 0) {\r\n this.transportadoraMunicipio = data.transportadora.municipio?.descricao;\r\n this.transportadoraUf = data.transportadora.municipio?.uf.siglaUF;\r\n }\r\n this.chaveAcessoQuatro = this.chunk(this.nfe.chaveAcesso, 4);\r\n\r\n this.nfe.nfeItens.forEach(item => {\r\n\r\n this.vSeg += item.vSeg;\r\n this.vProd += item.vProd;\r\n this.vFrete += item.vFrete;\r\n this.vDesc += item.vDesc;\r\n this.vOutro += item.vOutro;\r\n\r\n item.nfeItemImpostos.forEach(imposto => {\r\n\r\n if (imposto.impostoId == 1) {\r\n if (item.cstIcms == \"00\" || item.cstIcms == \"10\" || item.cstIcms == \"20\" || item.cstIcms == \"51\" ||\r\n item.cstIcms == \"70\" || item.cstIcms == \"90\" || item.cstIcms == \"900\") {\r\n this.vBC += imposto.vBC;\r\n this.vICMS += imposto.vlrImposto;\r\n }\r\n }\r\n\r\n if (imposto.impostoId == 2) {\r\n if (\r\n item.cstIcms == \"10\" ||\r\n item.cstIcms == \"30\" ||\r\n item.cstIcms == \"60\" ||\r\n item.cstIcms == \"70\" ||\r\n item.cstIcms == \"90\" ||\r\n item.cstIcms == \"201\" ||\r\n item.cstIcms == \"202\" ||\r\n item.cstIcms == \"900\")\r\n {\r\n this.vBCST += imposto.vBC;\r\n this.vST += imposto.vlrImposto;\r\n }\r\n }\r\n\r\n if (imposto.impostoId == 3) {\r\n this.vIPI += imposto.vlrImposto;\r\n }\r\n });\r\n });\r\n\r\n this.vNF = this.vNF - this.vDesc - this.vICMSDeson + this.vST + this.vFrete + this.vSeg + this.vOutro + this.vII +\r\n this.vIPI + this.vServ + this.vProd;\r\n }\r\n\r\n verificarObsHom(tpAmb: number) {\r\n let mensagem = \"\";\r\n\r\n if (tpAmb == 2) {\r\n mensagem = \"SEM VALOR FISCAL\";\r\n }\r\n\r\n return mensagem;\r\n\r\n };\r\n\r\n validaicmsvBC(item) {\r\n\r\n let vBC = 0;\r\n\r\n if (\r\n item.cstIcms == \"00\" || \r\n item.cstIcms == \"10\" || \r\n item.cstIcms == \"20\" || \r\n item.cstIcms == \"51\" || \r\n item.cstIcms == \"70\" || \r\n item.cstIcms == \"90\" || \r\n item.cstIcms == \"900\") {\r\n\r\n item.nfeItemImpostos.forEach(imposto => {\r\n if (imposto.impostoId == 1) {\r\n vBC = imposto.vBC;\r\n }\r\n });\r\n }\r\n\r\n return vBC;\r\n };\r\n\r\n validaOrigemMercadoria(item) {\r\n\r\n let origemMercadoria = 0;\r\n\r\n item.nfeItemImpostos.forEach(imposto => {\r\n if (imposto.impostoId == 1) {\r\n origemMercadoria = imposto.orig;\r\n }\r\n });\r\n\r\n return origemMercadoria;\r\n };\r\n\r\n validaicmsvIcms(item) {\r\n\r\n let vICMS = 0;\r\n\r\n if (item.cstIcms == \"00\" || item.cstIcms == \"10\" || item.cstIcms == \"20\" || item.cstIcms == \"51\" || item.cstIcms == \"70\" || item.cstIcms == \"90\" || item.cstIcms == \"900\") {\r\n\r\n item.nfeItemImpostos.forEach(imposto => {\r\n if (imposto.impostoId == 1) {\r\n vICMS = imposto.vlrImposto;\r\n }\r\n });\r\n }\r\n\r\n return vICMS;\r\n };\r\n\r\n validaicmspIcms(item) {\r\n\r\n let pICMS = 0;\r\n\r\n if (item.cstIcms == \"00\" || item.cstIcms == \"10\" || item.cstIcms == \"20\" || item.cstIcms == \"51\" || item.cstIcms == \"70\" || item.cstIcms == \"90\" || item.cstIcms == \"900\") {\r\n\r\n item.nfeItemImpostos.forEach(imposto => {\r\n if (imposto.impostoId == 1) {\r\n pICMS = imposto.vlrAliquota;\r\n }\r\n });\r\n }\r\n\r\n return pICMS;\r\n };\r\n\r\n validaipivIpi(impostos) {\r\n\r\n let vIPI = \"\";\r\n\r\n impostos.forEach(imposto => {\r\n if (imposto.impostoId == 3) {\r\n vIPI = imposto.vlrImposto;\r\n }\r\n });\r\n\r\n return vIPI;\r\n };\r\n\r\n validaipipIpi(impostos) {\r\n\r\n let pIPI = \"\";\r\n\r\n impostos.forEach(imposto => {\r\n if (imposto.impostoId == 3) {\r\n pIPI = imposto.vlrAliquota;\r\n }\r\n });\r\n\r\n return pIPI;\r\n };\r\n\r\n\r\n verificarFreteConta(modFrete) {\r\n\r\n let frete = \"\";\r\n\r\n switch (modFrete) {\r\n case 0:\r\n frete = '0 - EMITENTE';\r\n break;\r\n case 1:\r\n frete = '1 – DEST/REM';\r\n break;\r\n case 2:\r\n frete = '2 – TERCEIROS';\r\n break;\r\n case 9:\r\n frete = '9 – SEM FRETE';\r\n break;\r\n }\r\n\r\n return frete;\r\n };\r\n\r\n chunk(str: string, n: number) {\r\n let ret = \"\";\r\n let i = 0;\r\n let len = 0;\r\n\r\n for (i = 0, len = str.length; i < len; i += n) {\r\n ret = ret + \" \" + (str.substr(i, n))\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n imprime(): void {\r\n\r\n let titulo = \"DANFE\";\r\n\r\n this.htmlPrinterService.printDiv('printDanfe', titulo);\r\n }\r\n\r\n enviarPorEmail(){\r\n\r\n let printContents = document.getElementById('printDanfe').innerHTML;\r\n\r\n let texto = '';\r\n texto += '';\r\n texto += '';\r\n texto += '' + printContents + '';\r\n\r\n let nfeDanfe: NfeDanfe = {\r\n html: texto,\r\n nfeId: this.nfe.nfeId\r\n };\r\n\r\n this.nfeService.postEnviarPorEmail(nfeDanfe).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"DANFE e XML enviados com Sucesso\"\r\n }\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      Imprimir DANFE

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n
      0\">\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      RECEBEMOS DE {{empresa.razaoSocial}} OS PRODUTOS CONSTANTES DA\r\n NOTA FISCAL INDICADA AO LADO
      \r\n
      \r\n
      NF-e
      \r\n
      Nr: {{nfe.nNF}}
      \r\n
      Série: {{nfe.serie}}
      \r\n
      \r\n
      DATA DE RECEBIMENTO
      \r\n
      \r\n
      IDENTIFICAÇÃO E ASSINATURA
      \r\n
      \r\n
      \r\n
      \r\n
      Sem Valor Fiscal
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      {{empresa.razaoSocial}}

      \r\n
      \r\n
      \r\n {{empresa.logradouro}}, {{empresa.numero}}
      \r\n {{empresa.bairro}}
      \r\n {{empresaMunicipio}} {{empresaUf}}
      \r\n {{empresa.cep}}
      \r\n Tel: {{empresa.telefone}}\r\n
      \r\n
      \r\n
      \r\n DANFE\r\n
      \r\n
      \r\n DOCUMENTO AUXILIAR DA NOTA FISCAL ELETRÔNICA\r\n
      \r\n
      \r\n
      \r\n 0 - ENTRADA
      \r\n 1 - SAÍDA\r\n
      \r\n
      \r\n {{nfe.tpNF}}\r\n
      \r\n
      \r\n
      \r\n Nr: {{nfe.nNF}}
      \r\n Série: {{nfe.serie}}
      \r\n Folha: 1/1
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n CHAVE DE ACESSO DA NF-e\r\n
      \r\n
      \r\n {{chaveAcessoQuatro}}\r\n
      \r\n
      \r\n
      \r\n Consulta de autenticidade no portal nacional da NF-e www.nfe.fazenda.gov.br/portal ou\r\n no site da Sefaz autorizadora\r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      NATUREZA DA OPERAÇÃO
      \r\n
      {{nfe.natOp}}
      \r\n
      \r\n
      PROTOCOLO DE AUTORIZAÇÃO DE USO
      \r\n
      {{nfe.nProt}}
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      INSCRIÇÃO ESTADUAL
      \r\n
      {{empresa.inscEstadual}}
      \r\n
      \r\n
      INSCR.ESTADUAL SUBSTITUTO
      \r\n
      \r\n
      \r\n
      CNPJ
      \r\n
      {{empresa.cnpj}}
      \r\n
      \r\n
      \r\n
      \r\n
      DESTINATÁRIO/REMETENTE
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      NOME / RAZÃO SOCIAL
      \r\n
      \r\n {{cliente.razaoSocial}}\r\n
      \r\n
      \r\n
      CNPJ / CPF
      \r\n
      \r\n {{cliente.cnpj == null || cliente.cnpj == undefined || cliente.cnpj == '' ? cliente.cpf :\r\n cliente.cnpj }}\r\n
      \r\n
      \r\n
      DATA DE EMISSÃO
      \r\n
      \r\n {{nfe.dhEmi | date:'dd/MM/yyyy'}}\r\n
      \r\n
      \r\n
      ENDEREÇO
      \r\n
      \r\n {{cliente.logradouro}},\r\n {{cliente.numero}}\r\n
      \r\n
      \r\n
      BAIRRO / DISTRITO
      \r\n
      \r\n {{cliente.bairro}}\r\n
      \r\n
      \r\n
      CEP
      \r\n
      \r\n {{cliente.cep}}\r\n
      \r\n
      \r\n
      DATA ENTRADA / SAÍDA
      \r\n
      \r\n {{nfe.dhSaiEnt | date:'dd/MM/yyyy'}}\r\n
      \r\n
      \r\n
      MUNICÍPIO
      \r\n
      \r\n {{clienteMunicipio}}\r\n
      \r\n
      \r\n
      TELEFONE
      \r\n
      \r\n {{cliente.telefone}}\r\n
      \r\n
      \r\n
      UF
      \r\n
      \r\n {{clienteUf}}\r\n
      \r\n
      \r\n
      INSCRIÇÃO ESTADUAL
      \r\n
      \r\n {{cliente.inscEstadual}}\r\n
      \r\n
      \r\n
      HORA ENTRADA / SAÍDA
      \r\n
      \r\n {{nfe.dhSaiEnt | date:'hh:mm:ss'}}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      CÁLCULO DO IMPOSTO
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      BASE DE CÁLCULO ICMS
      \r\n
      \r\n {{vBC | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      VALOR DO ICMS
      \r\n
      \r\n {{vICMS | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      BASE DE CÁLCULO ICMS ST
      \r\n
      \r\n {{vBCST | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      VALOR DO ICMS ST
      \r\n
      \r\n {{vST | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      VALOR TOTAL DOS PRODUTOS
      \r\n
      \r\n {{vProd | number: '1.2-2'}}\r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      VALOR DO FRETE
      \r\n
      \r\n {{vFrete | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      VALOR DO SEGURO
      \r\n
      \r\n {{vSeg | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      DESCONTO
      \r\n
      \r\n {{vDesc | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      OUTRAS DESPESAS ACESSÓRIAS
      \r\n
      \r\n {{vOutro | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      VALOR DO IPI
      \r\n
      \r\n {{vIPI | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      VALOR TOTAL DA NOTA
      \r\n
      \r\n {{vNF | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      TRANSPORTADOR / VOLUMES TRANSPORTADOS
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      NOME / RAZÃO SOCIAL
      \r\n
      \r\n {{transportadora.razaoSocial}}\r\n
      \r\n
      \r\n
      FRETE POR CONTA
      \r\n
      \r\n {{verificarFreteConta(nfe.modFrete)}}\r\n
      \r\n
      \r\n
      CÓDIGO ANTT
      \r\n
      \r\n
      \r\n
      \r\n
      PLACA DO VEÍCULO
      \r\n
      \r\n
      UF
      \r\n
      \r\n
      CNPJ / CPF
      \r\n
      \r\n {{transportadora.cnpj == null || transportadora.cnpj == undefined || transportadora.cnpj == '' ?\r\n transportadora.cpf : transportadora.cnpj }}\r\n
      \r\n
      \r\n
      ENDEREÇO
      \r\n
      \r\n {{transportadora.logradouro}}  \r\n {{transportadora.numero}}\r\n
      \r\n
      \r\n
      MUNICÍPIO
      \r\n
      \r\n {{transportadoraMunicipio}}\r\n
      \r\n
      \r\n
      UF
      \r\n
      \r\n {{transportadoraUf}}\r\n
      \r\n
      \r\n
      INSCRIÇÃO ESTADUAL
      \r\n
      \r\n {{transportadora.inscricaoEstadual}}\r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      QUANTIDADE
      \r\n
      \r\n {{nfe.qVol}}\r\n
      \r\n
      \r\n
      ESPÉCIE
      \r\n
      \r\n {{nfe.especie}}\r\n
      \r\n
      \r\n
      MARCA
      \r\n
      \r\n {{nfe.marca}}\r\n
      \r\n
      \r\n
      NÚMERO
      \r\n
      \r\n
      \r\n
      \r\n
      PESO BRUTO
      \r\n
      \r\n {{nfe.pesoB | number: '1.3-3'}}\r\n
      \r\n
      \r\n
      PESO LÍQUIDO
      \r\n
      \r\n {{nfe.pesoL | number: '1.3-3'}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      DADOS DOS PRODUTOS / SERVIÇOS
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      CÓDIGO
      \r\n
      \r\n
      DESCRIÇÃO DOS PRODUTOS / SERVIÇOS
      \r\n
      \r\n
      NCM/SH
      \r\n
      \r\n
      CST
      \r\n
      \r\n
      CFOP
      \r\n
      \r\n
      UNID
      \r\n
      \r\n
      QUANT
      \r\n
      \r\n
      VLR.UNIT.
      \r\n
      \r\n
      VLR.TOTAL
      \r\n
      \r\n
      BC.ICMS
      \r\n
      \r\n
      VL.ICMS
      \r\n
      \r\n
      VLR I.P.I
      \r\n
      \r\n
      \r\n Aliq\r\n icms\r\n
      \r\n
      \r\n
      \r\n Aliq\r\n ipi\r\n
      \r\n
      \r\n
      \r\n {{item.codProd}}\r\n
      \r\n
      \r\n
      \r\n {{item.descricao}}\r\n
      \r\n
      \r\n
      \r\n {{item.ncm}}\r\n
      \r\n
      \r\n
      \r\n {{validaOrigemMercadoria(item)}}{{item.cstIcms}}\r\n
      \r\n
      \r\n
      \r\n {{item.cfop}}\r\n
      \r\n
      \r\n
      \r\n {{item.unComercial}}\r\n
      \r\n
      \r\n
      \r\n {{item.qtdComercial | number: '1.4-4'}}\r\n
      \r\n
      \r\n
      \r\n {{item.vlrComercial | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n {{item.vProd | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n {{validaicmsvBC(item) | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n {{validaicmsvIcms(item) | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n {{validaipivIpi(item.nfeItemImpostos) | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n {{validaicmspIcms(item) | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n {{validaipipIpi(item.nfeItemImpostos) | number: '1.2-2'}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      DADOS ADICIONAIS
      \r\n
      \r\n
      RESERVADO AO FISCO
      \r\n
      \r\n
      \r\n {{verificarObsHom(nfe.tpAmb)}}\r\n {{nfe.infCpl}}\r\n
      \r\n {{nfe.infAdFisco}}\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { NfeEvento } from '../shared/nfe-evento.model';\r\nimport { NfeEventoService } from '../shared/nfe-evento.service';\r\nimport { NfeCartaCorrecaoComponent } from '../nfe-carta-correcao/nfe-carta-correcao.component';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-evento',\r\n templateUrl: 'nfe-evento.component.html',\r\n})\r\n\r\nexport class NfeEventoComponent {\r\n\r\n nfeEventoForm: FormGroup;\r\n\r\n maximizado: boolean;\r\n nfeEventos: NfeEvento[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public INfe: DialogData,\r\n private nfeEventoService: NfeEventoService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.onChanges();\r\n\r\n this.restaurarDialog();\r\n\r\n this.buscaEventos();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscaEventos() {\r\n\r\n this.nfeEventoService.getNfeEventos(this.INfe.nfeId).subscribe(data => {\r\n\r\n this.nfeEventos = data.body;\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n modalCartaCorrecao(nfeEventoId: number){\r\n\r\n const dialogRef = this.dialog.open(NfeCartaCorrecaoComponent, {\r\n data: {\r\n nfeId: this.INfe.nfeId,\r\n nfeEventoId: nfeEventoId\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscaEventos();\r\n });\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      Eventos da NF-e

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      AçõesEventoDescrição
      \r\n \r\n edit\r\n \r\n {{nfeEvento.tpEvento == '110111' ? 'Cancelamento' : 'Carta de Correção'}}{{nfeEvento.tpEvento == '110111' ? nfeEvento.xJust : nfeEvento.xCorrecao }}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { NfeService } from '../shared/nfe.service';\r\n\r\nexport interface DialogData {\r\n compraId: number;\r\n vendaId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-inbound-importar',\r\n templateUrl: 'nfe-inbound-importar.component.html',\r\n})\r\n\r\nexport class NfeInboundImportarComponent {\r\n\r\n arquivo: any = {};\r\n maximizado: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public INfeInbound: DialogData,\r\n private nfeService: NfeService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n importar(): void {\r\n\r\n if (this.INfeInbound.compraId > 0) {\r\n this.arquivo.compraId = this.INfeInbound.compraId;\r\n }\r\n\r\n if (this.INfeInbound.vendaId > 0) {\r\n this.arquivo.vendaId = this.INfeInbound.vendaId;\r\n }\r\n\r\n if (this.arquivo.nomeArquivo == \"\") {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"É necessário selecionar um arquivo\"\r\n }\r\n });\r\n\r\n return;\r\n\r\n }\r\n\r\n this.nfeService.postInboundXml(this.arquivo).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"XML da NF-e importado com sucesso\"\r\n }\r\n });\r\n\r\n this.fecharDialog();\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n fileChanged(e) {\r\n\r\n this.arquivo.nomeArquivo = e.target.files[0].name;\r\n\r\n let fileReader = new FileReader();\r\n\r\n fileReader.onload = (e) => {\r\n this.arquivo.corpoArquivo = fileReader.result;\r\n }\r\n\r\n fileReader.readAsText(e.target.files[0]);\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      NF-e Inbound

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Importe o arquivo XML da NF-e.\r\n
      \r\n
      \r\n
      \r\n
      \r\n","'use strict'\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NfeService } from '../shared/nfe.service';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\n\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { NfeItem } from '../shared/nfe-item.model';\r\nimport { Produto } from '../../produto/shared/produto.model';\r\nimport { Cfop } from '../../cfop/shared/cfop.model';\r\nimport { Nfe } from '../shared/nfe.model';\r\n\r\nexport interface DialogData {\r\n nfeItemId: number;\r\n nfe: any;\r\n nfeManual: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-item',\r\n templateUrl: 'nfe-item.component.html',\r\n styleUrls: ['nfe-item.component.css']\r\n})\r\n\r\nexport class NfeItemComponent {\r\n\r\n nfe: Nfe = new Nfe();\r\n listaServicos: any = [];\r\n nfeItemForm: FormGroup;\r\n maximizado: boolean;\r\n nfeItemId: number;\r\n nfeitem: any = {};\r\n cfops: Cfop[];\r\n produtos: Produto[];\r\n\r\n showIcmsTrib: boolean = false;\r\n showIcmsSTRet: boolean = false;\r\n showIcmsST: boolean = false;\r\n showPercentualReducaoBC: boolean = false;\r\n showPercentualCreditoSN: boolean = false;\r\n showValorCreditoIcmsSN: boolean = false;\r\n\r\n showIpiTributado: boolean = false;\r\n showIpiAliquota: boolean = false;\r\n showIpiPauta: boolean = false;\r\n\r\n showPisAliquota: boolean = false;\r\n showPisPauta: boolean = false;\r\n showValorPis: boolean = false;\r\n showPisST: boolean = false;\r\n showTipoCalculoPis: boolean = false;\r\n showTipoCalculoPisST: boolean = false;\r\n showPisSTPauta: boolean = false;\r\n showPisSTAliquota: boolean = false;\r\n showValorPisST: boolean = false;\r\n\r\n showCofinsAliquota: boolean = false;\r\n showCofinsPauta: boolean = false;\r\n showValorCofins: boolean = false;\r\n showValorCofinsST: boolean = false;\r\n showTipoCalculoCofins: boolean = false;\r\n showTipoCalculoCofinsST: boolean = false;\r\n showCofinsST: boolean = false;\r\n showCofinsSTAliquota: boolean = false;\r\n showCofinsSTPauta: boolean = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public INfeItem: DialogData,\r\n private nfeService: NfeService,\r\n private cfopService: CfopService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.nfe = this.INfeItem.nfe;\r\n\r\n this.nfeItemId = this.INfeItem.nfeItemId;\r\n\r\n this.nfeItemForm = this._formBuilder.group(new NfeItem());\r\n\r\n this.nfeItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.nfeItemForm.get('nfeId').setValue(this.nfe.nfeId);\r\n\r\n this.buscaCfop();\r\n\r\n this.onChanges();\r\n\r\n this.buscarNfeItem();\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.nfeItemForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.nfeService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: this.nfeItemForm.get('produtoTipo').value\r\n }) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.produtos = data.body\r\n );\r\n\r\n this.nfeItemForm\r\n .get('icmsDifal')\r\n .valueChanges\r\n .subscribe(data => this.trataIcmsDifal(data));\r\n\r\n this.nfeItemForm\r\n .get('cstIcms')\r\n .valueChanges\r\n .subscribe(data => this.defineIcmsCst(data));\r\n\r\n this.nfeItemForm\r\n .get('cstIpi')\r\n .valueChanges\r\n .subscribe(data => this.defineIpiCst(data));\r\n\r\n this.nfeItemForm\r\n .get('tipoCalculoIPI')\r\n .valueChanges\r\n .subscribe(data => this.defineIpiTipoCalculo(data));\r\n\r\n this.nfeItemForm\r\n .get('cstPis')\r\n .valueChanges\r\n .subscribe(data => this.definePisCst(data));\r\n\r\n this.nfeItemForm\r\n .get('tipoCalculoPis')\r\n .valueChanges\r\n .subscribe(data => this.definePisTipoCalculo(data));\r\n\r\n this.nfeItemForm\r\n .get('tipoCalculoPisST')\r\n .valueChanges\r\n .subscribe(data => this.definePisStTipoCalculo(data));\r\n\r\n this.nfeItemForm\r\n .get('cstCofins')\r\n .valueChanges\r\n .subscribe(data => this.definecofinsCst(data));\r\n\r\n this.nfeItemForm\r\n .get('tipoCalculoCofins')\r\n .valueChanges\r\n .subscribe(data => this.definecofinsTipoCalculo(data));\r\n\r\n this.nfeItemForm\r\n .get('tipoCalculoCofinsST')\r\n .valueChanges\r\n .subscribe(data => this.definecofinsStTipoCalculo(data));\r\n\r\n this.nfeItemForm\r\n .get('vProd')\r\n .valueChanges\r\n .subscribe(data => this.calculaImpostos());\r\n }\r\n\r\n calculaImpostos(): void {\r\n\r\n let ncm = this.nfeItemForm.value.ncm;\r\n\r\n if (this.nfeItemForm.value.cfop != 5206 && \r\n !this.INfeItem.nfeManual && \r\n this.nfeItemForm.value.ncm != undefined &&\r\n this.nfeItemForm.value.ncm != null &&\r\n this.nfeItemForm.value.ncm != '') {\r\n\r\n this.nfeService.postCalculaImposto(this.nfeItemForm.value).subscribe(data => {\r\n\r\n if (data.body != null) {\r\n //CST\r\n this.nfeItemForm.get('cstIcms').setValue(data.body.cstIcms.toString());\r\n this.nfeItemForm.get('cstIpi').setValue(data.body.cstIpi.toString());\r\n this.nfeItemForm.get('cstPis').setValue(data.body.cstPis.toString());\r\n this.nfeItemForm.get('cstCofins').setValue(data.body.cstCofins.toString());\r\n\r\n //ICMS\r\n this.nfeItemForm.get('icmsvBC').setValue(data.body.icmsvBC.toString());\r\n this.nfeItemForm.get('icmspIcms').setValue(data.body.icmspIcms.toString());\r\n this.nfeItemForm.get('icmsvIcms').setValue(data.body.icmsvIcms.toString());\r\n this.nfeItemForm.get('icmsSTmodBCST').setValue(data.body.icmsSTmodBCST.toString());\r\n this.nfeItemForm.get('icmsSTpMVAST').setValue(data.body.icmsSTpMVAST.toString());\r\n\r\n this.nfeItemForm.get('icmsSTvBCST').setValue(data.body.icmsSTvBCST.toString());\r\n this.nfeItemForm.get('icmsSTpIcmsST').setValue(data.body.icmsSTpIcmsST.toString());\r\n\r\n this.nfeItemForm.get('icmsSTvIcmsST').setValue(data.body.icmsSTvIcmsST.toString());\r\n this.nfeItemForm.get('icmspCredSN').setValue(data.body.icmspCredSN.toString());\r\n this.nfeItemForm.get('icmsvCredIcmsSN').setValue(data.body.icmsvCredIcmsSN.toString());\r\n this.nfeItemForm.get('icmspRedBC').setValue(data.body.icmspRedBC.toString());\r\n\r\n //IPI\r\n this.nfeItemForm.get('ipicEnq').setValue(data.body.ipicEnq.toString());\r\n this.nfeItemForm.get('ipivBC').setValue(data.body.ipivBC.toString());\r\n\r\n //infAdProd\r\n this.nfeItemForm.get('infAdProd').setValue(data.body.infAdProd.toString());\r\n\r\n //PIS\r\n this.nfeItemForm.get('pisvBC').setValue(data.body.pisvBC.toString());\r\n this.nfeItemForm.get('pispPis').setValue(data.body.pispPis.toString());\r\n this.nfeItemForm.get('pisvPis').setValue(data.body.pisvPis.toString());\r\n\r\n\r\n //cofins\r\n this.nfeItemForm.get('cofinsvBC').setValue(data.body.cofinsvBC.toString());\r\n this.nfeItemForm.get('cofinspCofins').setValue(data.body.cofinspCofins.toString());\r\n this.nfeItemForm.get('cofinsvCofins').setValue(data.body.cofinsvCofins.toString());\r\n\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n buscarNfeItem() {\r\n\r\n if (this.nfeItemId > 0) {\r\n\r\n this.nfeService.getNfeItem(this.nfeItemId).subscribe(data => {\r\n\r\n this.nfeItemForm.patchValue(data.body);\r\n\r\n this.nfeItemForm.get('produtoAutoComplete').setValue(data.body.descricao);\r\n\r\n data.body.nfeItemImpostos.forEach(imposto => {\r\n\r\n if (imposto.impostoId == 1) {\r\n this.nfeItemForm.get('icmsvBC').setValue(imposto.vBC);\r\n this.nfeItemForm.get('icmspIcms').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('icmsvIcms').setValue(imposto.vlrImposto);\r\n this.nfeItemForm.get('icmspCredSN').setValue(imposto.pCredSN);\r\n this.nfeItemForm.get('icmsvCredIcmsSN').setValue(imposto.vCredICMSSN);\r\n this.nfeItemForm.get('icmSorig').setValue(imposto.orig);\r\n this.nfeItemForm.get('icmsmodBC').setValue(imposto.modBC);\r\n this.nfeItemForm.get('icmspRedBC').setValue(imposto.pRedBC);\r\n }\r\n\r\n if (imposto.impostoId == 2) {\r\n this.nfeItemForm.get('icmsSTmodBCST').setValue(imposto.modBC);\r\n this.nfeItemForm.get('icmsSTpMVAST').setValue(imposto.pMVA);\r\n this.nfeItemForm.get('icmsSTvBCST').setValue(imposto.vBC);\r\n this.nfeItemForm.get('icmsSTpIcmsST').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('icmsSTvIcmsST').setValue(imposto.vlrImposto);\r\n this.nfeItemForm.get('vBCSTRet').setValue(imposto.vBCSTRet);\r\n this.nfeItemForm.get('pST').setValue(imposto.pST);\r\n this.nfeItemForm.get('vICMSSubstituto').setValue(imposto.vICMSSubstituto);\r\n this.nfeItemForm.get('vICMSSTRet').setValue(imposto.vICMSSTRet);\r\n this.nfeItemForm.get('icmsSTpRedBCST').setValue(imposto.pRedBC);\r\n }\r\n\r\n if (imposto.impostoId == 3) {\r\n this.nfeItemForm.get('ipicEnq').setValue(imposto.cEnq);\r\n this.nfeItemForm.get('ipiclEnq').setValue(imposto.clEnq);\r\n this.nfeItemForm.get('ipiCNPJProd').setValue(imposto.cNPJProd);\r\n this.nfeItemForm.get('ipicSelo').setValue(imposto.cSelo);\r\n this.nfeItemForm.get('ipivBC').setValue(imposto.vBC);\r\n this.nfeItemForm.get('ipipIpi').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('ipiqUnid').setValue(imposto.qUnid);\r\n this.nfeItemForm.get('ipivUnid').setValue(imposto.vUnid);\r\n this.nfeItemForm.get('ipivIpi').setValue(imposto.vlrImposto);\r\n }\r\n\r\n if (imposto.impostoId == 4) {\r\n this.nfeItemForm.get('pisvBC').setValue(imposto.vBC);\r\n this.nfeItemForm.get('pispPis').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('pisqUnid').setValue(imposto.qUnid);\r\n this.nfeItemForm.get('pisvUnid').setValue(imposto.vUnid);\r\n this.nfeItemForm.get('pisvPis').setValue(imposto.vlrImposto);\r\n\r\n if(imposto.vlrAliquota > 0)\r\n {\r\n this.nfeItemForm.get('tipoCalculoPis').setValue(1);\r\n }else{\r\n this.nfeItemForm.get('tipoCalculoPis').setValue(2);\r\n\r\n }\r\n }\r\n\r\n if (imposto.impostoId == 5) {\r\n this.nfeItemForm.get('pisSTvBC').setValue(imposto.vBC);\r\n this.nfeItemForm.get('pisSTpPis').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('pisSTvAliqProd').setValue(imposto.vUnid);\r\n this.nfeItemForm.get('pisSTqBCProd').setValue(imposto.qUnid);\r\n this.nfeItemForm.get('pisSTvPis').setValue(imposto.vlrImposto);\r\n\r\n if(imposto.vlrAliquota > 0)\r\n {\r\n this.nfeItemForm.get('tipoCalculoPisST').setValue(1);\r\n }else{\r\n this.nfeItemForm.get('tipoCalculoPisST').setValue(2);\r\n\r\n }\r\n }\r\n\r\n if (imposto.impostoId == 6) {\r\n this.nfeItemForm.get('cofinsvBC').setValue(imposto.vBC);\r\n this.nfeItemForm.get('cofinspCofins').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('cofinsqUnid').setValue(imposto.qUnid);\r\n this.nfeItemForm.get('cofinsvUnid').setValue(imposto.vUnid);\r\n this.nfeItemForm.get('cofinsvCofins').setValue(imposto.vlrImposto);\r\n\r\n if(imposto.vlrAliquota > 0)\r\n {\r\n this.nfeItemForm.get('tipoCalculoCofins').setValue(1);\r\n }else{\r\n this.nfeItemForm.get('tipoCalculoCofins').setValue(2);\r\n\r\n }\r\n }\r\n\r\n if (imposto.impostoId == 7) {\r\n this.nfeItemForm.get('cofinsSTvBC').setValue(imposto.vBC);\r\n this.nfeItemForm.get('cofinsSTpPIS').setValue(imposto.vlrAliquota);\r\n this.nfeItemForm.get('cofinsSTvAliqProd').setValue(imposto.vUnid);\r\n this.nfeItemForm.get('cofinsSTqBCProd').setValue(imposto.qUnid);\r\n this.nfeItemForm.get('cofinsSTvPIS').setValue(imposto.vlrImposto);\r\n\r\n if(imposto.vlrAliquota > 0)\r\n {\r\n this.nfeItemForm.get('tipoCalculoCofinsST').setValue(1);\r\n }else{\r\n this.nfeItemForm.get('tipoCalculoCofinsST').setValue(2);\r\n\r\n }\r\n }\r\n });\r\n\r\n });\r\n } else {\r\n this.nfeItemForm.get('indTot').setValue(1);\r\n this.nfeItemForm.get('ipicEnq').setValue(999);\r\n this.nfeItemForm.get('cstIcms').setValue(201);\r\n this.nfeItemForm.get('cstIpi').setValue(99);\r\n this.nfeItemForm.get('cstPis').setValue(99);\r\n this.nfeItemForm.get('cstCofins').setValue(99);\r\n this.nfeItemForm.get('icmSorig').setValue(0);\r\n this.nfeItemForm.get('icmSorig').setValue(4);\r\n }\r\n }\r\n\r\n buscaCfop() {\r\n\r\n const parametros: any = {};\r\n\r\n parametros.empresaId = this.nfe.empresaId;\r\n\r\n if (this.nfe.tpNF == 1) {\r\n parametros.direcao = 1;\r\n }\r\n else {\r\n parametros.direcao = 2;\r\n }\r\n\r\n this.cfopService.getCfops(parametros).subscribe(data => {\r\n this.cfops = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n salvar(NFeItem) {\r\n\r\n NFeItem.nfeItemImpostos = [\r\n {\r\n impostoId: 1,\r\n pRedBC: NFeItem.icmspRedBC,\r\n vBC: NFeItem.icmsvBC,\r\n vlrAliquota: NFeItem.icmspIcms,\r\n vlrImposto: NFeItem.icmsvIcms,\r\n orig: NFeItem.icmSorig,\r\n pCredSN: NFeItem.icmspCredSN,\r\n vCredICMSSN: NFeItem.icmsvCredIcmsSN\r\n },\r\n {\r\n impostoId: 2,\r\n modBC: NFeItem.icmsSTmodBCST,\r\n pRedBC: NFeItem.icmsSTpRedBCST,\r\n pMVA: NFeItem.icmsSTpMVAST,\r\n vBC: NFeItem.icmsSTvBCST,\r\n vlrAliquota: NFeItem.icmsSTpIcmsST,\r\n vlrImposto: NFeItem.icmsSTvIcmsST,\r\n vBCSTRet: NFeItem.vBCSTRet,\r\n pST: NFeItem.pST,\r\n vICMSSubstituto: NFeItem.vICMSSubstituto,\r\n vICMSSTRet: NFeItem.vICMSSTRet,\r\n },\r\n {\r\n impostoId: 3,\r\n clEnq: NFeItem.ipiclEnq,\r\n cEnq: NFeItem.ipicEnq,\r\n cNPJProd: NFeItem.ipiCNPJProd,\r\n cSelo: NFeItem.IPIcSelo,\r\n vBC: NFeItem.ipivBC,\r\n vlrAliquota: NFeItem.ipipIpi,\r\n qUnid: NFeItem.ipiqUnid,\r\n vUnid: NFeItem.ipivUnid,\r\n vlrImposto: NFeItem.ipivIpi\r\n },\r\n {\r\n impostoId: 4,\r\n vBC: NFeItem.pisvBC,\r\n vlrAliquota: NFeItem.pispPis,\r\n qUnid: NFeItem.pisqUnid,\r\n vUnid: NFeItem.pisvUnid,\r\n vlrImposto: NFeItem.pisvPis\r\n },\r\n {\r\n impostoId: 5,\r\n vBC: NFeItem.pisSTvBC,\r\n vlrAliquota: NFeItem.pisSTpPis,\r\n vUnid: NFeItem.PISSTvAliqProd,\r\n qUnid: NFeItem.PISSTqBCProd,\r\n vlrImposto: NFeItem.pisSTvPis\r\n },\r\n {\r\n impostoId: 6,\r\n vBC: NFeItem.cofinsvBC,\r\n vlrAliquota: NFeItem.cofinspCofins,\r\n qUnid: NFeItem.cofinsqUnid,\r\n vUnid: NFeItem.cofinsvUnid,\r\n vlrImposto: NFeItem.cofinsvCofins\r\n },\r\n {\r\n impostoId: 7,\r\n vBC: NFeItem.cofinsSTvBC,\r\n vlrAliquota: NFeItem.cofinsSTpPIS,\r\n vUnid: NFeItem.cofinsSTvAliqProd,\r\n qUnid: NFeItem.cofinsSTqBCProd,\r\n vlrImposto: NFeItem.cofinsSTvPIS\r\n }\r\n ];\r\n\r\n\r\n if (this.nfeItemId == 0) {\r\n\r\n NFeItem.nfeId = this.nfe.nfeId;\r\n\r\n this.nfeService.postIncluiNfeItem(NFeItem).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.nfeService.putAtualizaNfeItem(NFeItem, NFeItem.nfeItemId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n };\r\n\r\n\r\n determinaprodutoId(produto: Produto) {\r\n\r\n this.nfeItemForm.get('produtoId').setValue(produto.produtoId);\r\n this.nfeItemForm.get('codProd').setValue(produto.codProd);\r\n this.nfeItemForm.get('descricao').setValue(produto.descricao);\r\n this.nfeItemForm.get('ncm').setValue(produto.ncm);\r\n this.nfeItemForm.get('ean').setValue(produto.ean);\r\n this.nfeItemForm.get('eanTrib').setValue(produto.eanTrib);\r\n this.nfeItemForm.get('unTributaria').setValue(produto.unTributaria);\r\n this.nfeItemForm.get('vlrTributario').setValue(produto.vlrTributario);\r\n this.nfeItemForm.get('unComercial').setValue(produto.unComercial);\r\n this.nfeItemForm.get('vlrComercial').setValue(produto.vlrComercial);\r\n this.nfeItemForm.get('extipi').setValue(produto.extipi);\r\n this.nfeItemForm.get('infAdProd').setValue(produto.infAdProd);\r\n this.nfeItemForm.get('pesoLiquido').setValue(produto.pesoLiquido);\r\n this.nfeItemForm.get('pesoBruto').setValue(produto.pesoBruto);\r\n this.nfeItemForm.get('cest').setValue(produto.cest);\r\n\r\n }\r\n\r\n onChangeValorComercial() {\r\n\r\n let vlrComercial = this.nfeItemForm.get('vlrComercial').value;\r\n let qtdComercial = this.nfeItemForm.get('qtdComercial').value;\r\n let vProd = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.nfeItemForm.get('vProd').setValue(vProd.toFixed(2));\r\n this.nfeItemForm.get('qtdTributaria').setValue(qtdComercial);\r\n this.nfeItemForm.get('qtdComercial').setValue(qtdComercial);\r\n this.nfeItemForm.get('vlrTributario').setValue(vlrComercial);\r\n this.nfeItemForm.get('vlrComercial').setValue(vlrComercial);\r\n\r\n this.calculaImpostos();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n\r\n TrataValorICMS() {\r\n\r\n let icmsvIcms = (this.nfeItemForm.get('icmsvBC').value * this.nfeItemForm.get('icmspIcms').value) / 100;\r\n\r\n this.nfeItemForm.get('icmsvIcms').setValue(icmsvIcms);\r\n }\r\n\r\n TrataValorICMSST() {\r\n\r\n let icmsSTvIcmsST = (this.nfeItemForm.get('icmsSTvBCST').value * this.nfeItemForm.get('icmsSTpIcmsST').value) / 100;\r\n\r\n this.nfeItemForm.get('icmsSTvIcmsST').setValue(icmsSTvIcmsST);\r\n }\r\n\r\n trataIcmsDifal(utilizaicmsDifal: boolean) {\r\n\r\n if (utilizaicmsDifal == true) {\r\n\r\n let valorBaseCalculo = this.nfeItemForm.get('vProd').value +\r\n this.nfeItemForm.get('vFrete').value +\r\n this.nfeItemForm.get('vSeg').value +\r\n this.nfeItemForm.get('vOutro').value +\r\n this.nfeItemForm.get('ipivIpi').value -\r\n this.nfeItemForm.get('vDesc').value;\r\n\r\n let diferencialAliquota = (this.nfeItemForm.get('icmsSTpIcmsST').value - this.nfeItemForm.get('icmspIcms').value) / 100;\r\n\r\n this.nfeItemForm.get('icmsvBC').setValue(valorBaseCalculo);\r\n this.nfeItemForm.get('icmsSTvBCST').setValue(valorBaseCalculo);\r\n this.nfeItemForm.get('icmsSTvIcmsST').setValue(valorBaseCalculo * diferencialAliquota);\r\n };\r\n\r\n };\r\n\r\n defineIcmsCst(cstIcms: string) {\r\n\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n this.showIcmsSTRet = false;\r\n this.showIcmsTrib = false;\r\n this.showPercentualReducaoBC = false;\r\n\r\n switch (cstIcms) {\r\n case '00':\r\n this.ExibeICMS();\r\n break;\r\n case '10':\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n break;\r\n case '20':\r\n this.ExibeICMS();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case '30':\r\n this.ExibeICMSST();\r\n break;\r\n case '40':\r\n case '41':\r\n case '50':\r\n break;\r\n case '51':\r\n this.ExibeICMS();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case '60':\r\n this.showIcmsSTRet = true;\r\n break;\r\n case '70':\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case '90':\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case 'ICMSPart':\r\n //Partilha de ICMS entre UF\r\n break;\r\n case 'ICMSST':\r\n //ICMS ST devido para a UF de destino, nas operações interestaduais de produtos que tiveram retenção antecipada de ICMS por ST na UF do remetente. Repasse via Substituto Tributário.\r\n break;\r\n case '101':\r\n //Tributada pelo Simples Nacional com permissão de crédito\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.showIcmsST = false;\r\n break;\r\n case '102':\r\n //Tributada pelo Simples Nacional sem permissão de crédito.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '103':\r\n //Isenção do ICMS no Simples Nacional para faixa de receita bruta.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '201':\r\n //Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por Substituição Tributária.\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.showIcmsST = true;\r\n break;\r\n case '202':\r\n //Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por Substituição Tributária.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = true;\r\n break;\r\n case '203':\r\n //Isenção do ICMS nos Simples Nacional para faixa de receita bruta e com cobrança do ICMS por Substituição Tributária.\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.showIcmsST = true;\r\n break;\r\n case '300':\r\n //Imune.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '400':\r\n //Não tributada pelo Simples Nacional.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '500':\r\n //ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '900':\r\n //Outros\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n };\r\n };\r\n\r\n ExibeICMS() {\r\n this.showIcmsTrib = true;\r\n\r\n if (this.nfeItemForm.get('icmsvBC').value == 0) {\r\n this.nfeItemForm.get('icmsvBC').setValue(this.nfeItemForm.get('vProd').value);\r\n }\r\n }\r\n\r\n ExibeICMSST() {\r\n this.showIcmsST = true;\r\n\r\n if (this.nfeItemForm.get('icmsSTvBCST').value == 0) {\r\n this.nfeItemForm.get('icmsSTvBCST').setValue(this.nfeItemForm.get('vProd').value);\r\n }\r\n }\r\n\r\n\r\n defineIpiCst(cstIpi) {\r\n\r\n switch (cstIpi) {\r\n case '49':\r\n case '00':\r\n case '50':\r\n case '99':\r\n this.showIpiTributado = true;\r\n this.defineIpiTipoCalculo(0);\r\n break;\r\n case '01':\r\n case '02':\r\n case '03':\r\n case '04':\r\n case '05':\r\n case '51':\r\n case '52':\r\n case '53':\r\n case '54':\r\n case '55':\r\n this.showIpiTributado = false;\r\n break;\r\n };\r\n };\r\n\r\n defineIpiTipoCalculo(tipoCaculo: number) {\r\n\r\n switch (tipoCaculo) {\r\n case 0:\r\n this.showIpiAliquota = true;\r\n this.showIpiPauta = false;\r\n break;\r\n case 1:\r\n this.showIpiAliquota = false;\r\n this.showIpiPauta = true;\r\n break;\r\n };\r\n };\r\n\r\n definePisCst(cstPis: string) {\r\n\r\n switch (cstPis) {\r\n case '01':\r\n case '02':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisAliquota = true;\r\n this.showPisPauta = false;\r\n this.showPisST = false;\r\n this.showValorPis = true;\r\n this.showValorPisST = false;\r\n break;\r\n case '03':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = true;\r\n this.showPisST = false;\r\n this.showValorPis = true;\r\n this.showValorPisST = false;\r\n break;\r\n case '04':\r\n case '06':\r\n case '07':\r\n case '08':\r\n case '09':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = false;\r\n this.showPisST = false;\r\n this.showValorPis = false;\r\n this.showValorPisST = false;\r\n break;\r\n case '05':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = true;\r\n this.showPisST = true;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = false;\r\n this.showValorPis = false;\r\n this.showValorPisST = true;\r\n break;\r\n case '49':\r\n case '50':\r\n case '51':\r\n case '52':\r\n case '53':\r\n case '54':\r\n case '55':\r\n case '56':\r\n case '60':\r\n case '61':\r\n case '62':\r\n case '63':\r\n case '64':\r\n case '65':\r\n case '66':\r\n case '67':\r\n case '70':\r\n case '71':\r\n case '72':\r\n case '73':\r\n case '74':\r\n case '75':\r\n case '98':\r\n case '99':\r\n this.showTipoCalculoPis = true;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisST = false;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = false;\r\n this.showValorPis = true;\r\n this.showValorPisST = false;\r\n break;\r\n };\r\n\r\n }\r\n\r\n definePisTipoCalculo(pisTipoCalculo: number) {\r\n\r\n switch (pisTipoCalculo) {\r\n case 1:\r\n this.showPisAliquota = true;\r\n this.showPisPauta = false;\r\n break;\r\n case 2:\r\n this.showPisAliquota = false;\r\n this.showPisPauta = true;\r\n break;\r\n };\r\n\r\n }\r\n\r\n definePisStTipoCalculo(pisStTipoCalculo: number) {\r\n\r\n switch (pisStTipoCalculo) {\r\n case 1:\r\n this.showPisSTAliquota = true;\r\n this.showPisSTPauta = false;\r\n break;\r\n case 2:\r\n this.showPisSTAliquota = false;\r\n this.showPisSTPauta = true;\r\n break;\r\n };\r\n }\r\n\r\n definecofinsCst(cstCofins: string) {\r\n\r\n switch (cstCofins) {\r\n case '01':\r\n case '02':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsAliquota = true;\r\n this.showCofinsPauta = false;\r\n this.showCofinsST = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n case '03':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = true;\r\n this.showCofinsST = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n case '04':\r\n case '06':\r\n case '07':\r\n case '08':\r\n case '09':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = false;\r\n this.showCofinsST = false;\r\n this.showValorCofins = false;\r\n this.showValorCofinsST = false;\r\n break;\r\n case '05':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = true;\r\n this.showCofinsST = true;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = false;\r\n this.showValorCofins = false;\r\n this.showValorCofinsST = true;\r\n break;\r\n case '49':\r\n case '50':\r\n case '51':\r\n case '52':\r\n case '53':\r\n case '54':\r\n case '55':\r\n case '56':\r\n case '60':\r\n case '61':\r\n case '62':\r\n case '63':\r\n case '64':\r\n case '65':\r\n case '66':\r\n case '67':\r\n case '70':\r\n case '71':\r\n case '72':\r\n case '73':\r\n case '74':\r\n case '75':\r\n case '98':\r\n case '99':\r\n this.showTipoCalculoCofins = true;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsST = false;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n };\r\n };\r\n\r\n definecofinsTipoCalculo(cofinsTipoCalculo: number) {\r\n\r\n switch (cofinsTipoCalculo) {\r\n case 1:\r\n this.showCofinsAliquota = true;\r\n this.showCofinsPauta = false;\r\n break;\r\n case 2:\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = true;\r\n break;\r\n };\r\n\r\n }\r\n\r\n definecofinsStTipoCalculo(cofinsStTipoCalculo: number) {\r\n\r\n switch (cofinsStTipoCalculo) {\r\n case 1:\r\n this.showCofinsSTAliquota = true;\r\n this.showCofinsSTPauta = false;\r\n break;\r\n case 2:\r\n this.showCofinsSTAliquota = false;\r\n this.showCofinsSTPauta = true;\r\n break;\r\n };\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      Item da NFe

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n Tipo de Produto\r\n \r\n Produto Acabado\r\n Uso e Consumo\r\n Ativo Imobilizado\r\n \r\n \r\n \r\n Digite o Nome do Produto\r\n \r\n \r\n \r\n {{produto.descricao}} - R$ {{produto.vlrComercial | number:'1.2-2'}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop + ' - ' + cfop.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Quantidade Comercial\"\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Código do Produto\r\n \r\n \r\n \r\n Descrição\r\n \r\n \r\n
      \r\n
      \r\n \r\n NCM\r\n \r\n \r\n \r\n EAN\r\n \r\n \r\n \r\n EAN Tributário\r\n \r\n \r\n \r\n EX_TIPI\r\n \r\n \r\n \r\n CEST\r\n \r\n \r\n
      \r\n
      \r\n \r\n Unidade Comercial\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Quantidade Comercial\"\r\n \r\n \r\n
      \r\n
      \r\n \r\n Unidade Tributária\r\n \r\n \r\n \r\n Valor Tributário \r\n \r\n \r\n \r\n Quantidade Tributaria\r\n \r\n \r\n
      \r\n
      \r\n \r\n Peso Bruto (KG)\r\n \r\n \r\n \r\n Peso Líquido (KG)\r\n \r\n \r\n
      \r\n\r\n\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n

      ICMS

      \r\n
      \r\n
      \r\n \r\n Situação Tributária\r\n \r\n 00 - Tributada integralmente\r\n \r\n 10 - Tributada e com cobrança do ICMS por substituição tributária\r\n \r\n \r\n 20 - Com redução de base de cálculo\r\n \r\n \r\n 30 - Isenta ou não tributada e com cobrança do ICMS por substituição\r\n tributária\r\n \r\n \r\n 40 - Isenta\r\n \r\n \r\n 41 - Não tributada\r\n \r\n \r\n 50 - Suspensão\r\n \r\n \r\n 51 - Diferimento\r\n \r\n \r\n 60 - ICMS cobrado anteriormente por substituição tributária\r\n \r\n \r\n 70 - Com redução de base de cálculo e cobrança do ICMS por substituição\r\n tributária\r\n \r\n \r\n 90 - Outros\r\n \r\n 101 - Tributada pelo Simples Nacional com\r\n permissão de crédito\r\n 102 - Tributada pelo Simples Nacional sem\r\n permissão de crédito\r\n 103 - Isenção do ICMS no Simples Nacional para\r\n faixa de\r\n receita bruta\r\n 201 - Tributada pelo Simples Nacional com\r\n permissão de\r\n crédito e com cobrança do ICMS por Substituição Tributária\r\n 202 - Tributada pelo Simples Nacional sem\r\n permissão de\r\n crédito e com cobrança do ICMS por Substituição Tributária\r\n 203 - Isenção do ICMS nos Simples Nacional para\r\n faixa de\r\n receita bruta e com cobrança do ICMS por Substituição Tributária\r\n \r\n 300 - Imune\r\n 400 - Não tributada pelo Simples Nacional\r\n \r\n 500 - ICMS cobrado anteriormente por\r\n substituição\r\n tributária (substituído) ou por antecipação\r\n 900 - Outros\r\n \r\n \r\n \r\n  \r\n
      \r\n \r\n \r\n ICMS DIFAL\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Origem da mercadoria\r\n \r\n 0 - Nacional\r\n 1 - Estrangeira - Importação direta\r\n 2 - Estrangeira - Adquirida no mercado interno\r\n \r\n 3 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação\r\n superior a 40% e inferior ou igual a 70%\r\n 4 - Nacional, cuja produção tenha sido feita em\r\n conformidade com os processos produtivos básicos de que tratam as\r\n legislações citadas nos Ajustes\r\n 5 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação\r\n inferior ou igual a 40%\r\n 6 - Estrangeira - Importação direta, sem similar\r\n nacional,\r\n constante em lista da CAMEX e gás natural\r\n 7 - Estrangeira - Adquirida no mercado interno, sem\r\n similar nacional, constante lista CAMEX e gás natural\r\n 8 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação\r\n superior a 70%\r\n \r\n \r\n
      \r\n
      \r\n \r\n Modalidade de determinação da BC do ICMS\r\n \r\n Margem Valor Agregado (%)\r\n Pauta (Valor)\r\n Preço Tabelado Máx. (valor)\r\n Valor da operação\r\n \r\n \r\n \r\n Valor da BC do ICMS\r\n \r\n \r\n \r\n Alíquota do imposto do ICMS\r\n \r\n \r\n \r\n Valor do ICMS\r\n \r\n \r\n \r\n Percentual da Redução de BC do ICMS\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor da BC do ICMS ST retido\r\n \r\n \r\n \r\n Alíquota suportada pelo Consumidor Final\r\n \r\n \r\n \r\n Valor do ICMS próprio do Substituto\r\n \r\n \r\n \r\n Valor do ICMS ST retido\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      ICMS ST

      \r\n
      \r\n
      \r\n \r\n Modalidade de determinação da BC do ICMS ST\r\n \r\n \r\n 0 - Preço tabelado ou máximo sugerido\r\n \r\n 1 - Lista Negativa\r\n 2 - Lista Positiva\r\n 3 - Lista Neutra\r\n 4 - Margem Valor Agregado\r\n 5 - Pauta\r\n \r\n \r\n \r\n Percentual da Redução de BC do ICMS ST\r\n \r\n \r\n \r\n Percentual da MVA Adicionado do ICMS ST\r\n \r\n \r\n \r\n Valor da BC do ICMS ST\r\n \r\n \r\n \r\n Alíquota do imposto do ICMS ST\r\n \r\n \r\n \r\n Valor do ICMS ST\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Alíquota aplicável de cálculo do crédito\r\n \r\n \r\n \r\n Valor crédito do ICMS que pode ser aproveitado\r\n \r\n \r\n \r\n
      \r\n
      \r\n

      IPI

      \r\n
      \r\n
      \r\n \r\n Código da situação tributária\r\n \r\n 00 - Entrada com recuperação de crédito\r\n \r\n 01 - Entrada tributada com alíquota zero\r\n \r\n 02 - Entrada isenta\r\n 03 - Entrada não tributada\r\n 04 - Entrada imune\r\n 05 - Entrada com suspensão\r\n 49 - Outras entradas\r\n 50 - Saída tributada\r\n 51 - Saída tributada com alíquota zero\r\n \r\n 52 - Saída isenta\r\n 53 - Saída não tributada\r\n 54 - Saída imune\r\n 55 - Saída com suspensão\r\n 99 - Outras saídas\r\n \r\n \r\n
      \r\n
      \r\n \r\n Classe de enquadramento\r\n \r\n Classe de enquadramento do IPI para Cigarros e\r\n Bebidas\r\n \r\n \r\n Código de Enquadramento\r\n \r\n Código de Enquadramento Legal do IPI\r\n \r\n \r\n CNPJ do produtor\r\n \r\n \r\n
      \r\n
      \r\n \r\n Código do selo de controle IPI\r\n \r\n \r\n \r\n Quantidade de selo de controle\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em Quantidade (pauta)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor da Base de Cálculo\r\n \r\n \r\n \r\n Alíquota do IPI\r\n \r\n \r\n
      \r\n
      \r\n \r\n Quantidade total na unidade padrão\r\n \r\n \r\n \r\n Valor por Unidade Tributável\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor do IPI \r\n \r\n \r\n
      \r\n
      \r\n

      PIS

      \r\n
      \r\n
      \r\n \r\n Situação Tributária\r\n \r\n 01 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação alíquota normal (cumulativo/não cumulativo))\r\n 02 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação (alíquota diferenciada))\r\n 03 - Operação Tributável (base de cálculo =\r\n quantidade\r\n vendida x alíquota por unidade de produto)\r\n 04 - Operação Tributável (tributação monofásica\r\n (alíquota\r\n zero))\r\n 05 - Operação Tributável (Substituição\r\n Tributária)\r\n \r\n 06 - Operação Tributável (alíquota zero)\r\n \r\n 07 - Operação Isenta da Contribuição\r\n 08 - Operação Sem Incidência da Contribuição\r\n \r\n 09 - Operação com Suspensão da Contribuição\r\n \r\n 49 - Outras Operações de Saída\r\n 50 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 51 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Não Tributada no Mercado Interno\r\n 52 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 53 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 54 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas no Mercado Interno e de Exportação\r\n 55 - Operação com Direito a Crédito - Vinculada a\r\n Receitas NãoTributadas no Mercado Interno e de Exportação\r\n 56 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação\r\n \r\n 60 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 61 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Não-Tributada no Mercado Interno\r\n 62 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 63 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 64 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas no Mercado Interno e de Exportação\r\n 65 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Não-Tributadas no Mercado Interno e de Exportação\r\n \r\n 66 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de\r\n Exportação\r\n 67 - Crédito Presumido - Outras Operações\r\n \r\n 70 - Operação de Aquisição sem Direito a Crédito\r\n \r\n 71 - Operação de Aquisição com Isenção\r\n \r\n 72 - Operação de Aquisição com Suspensão\r\n \r\n 73 - Operação de Aquisição a Alíquota Zero\r\n \r\n 74 - Operação de Aquisição; sem Incidência da\r\n Contribuição\r\n 75 - Operação de Aquisição por Substituição\r\n Tributária\r\n \r\n 98 - Outras Operações de Entrada\r\n 99 - Outras Operações\r\n \r\n \r\n
      \r\n
      \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor da Base de Cálculo do PIS\r\n \r\n \r\n \r\n Alíquota do PIS (em percentual)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Alíquota do PIS (em reais)\r\n \r\n \r\n \r\n Quantidade Vendida\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor do PIS\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      PIS ST

      \r\n
      \r\n
      \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor da Base de Cálculo do PIS\r\n \r\n \r\n \r\n Alíquota do PIS (em percentual)\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n Alíquota do PIS (em reais)\r\n \r\n
      \r\n
      \r\n Quantidade Vendida\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Valor do PIS\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      COFINS

      \r\n
      \r\n
      \r\n \r\n Situação Tributária\r\n \r\n 01 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação alíquota normal (cumulativo/não cumulativo))\r\n 02 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação (alíquota diferenciada))\r\n 03 - Operação Tributável (base de cálculo =\r\n quantidade\r\n vendida x alíquota por unidade de produto)\r\n 04 - Operação Tributável (tributação monofásica\r\n (alíquota\r\n zero))\r\n 05 - Operação Tributável (Substituição\r\n Tributária)\r\n \r\n 06 - Operação Tributável (alíquota zero)\r\n \r\n 07 - Operação Isenta da Contribuição\r\n 08 - Operação Sem Incidência da Contribuição\r\n \r\n 09 - Operação com Suspensão da Contribuição\r\n \r\n 49 - Outras Operações de Saída\r\n 50 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 51 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Não Tributada no Mercado Interno\r\n 52 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 53 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 54 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas no Mercado Interno e de Exportação\r\n 55 - Operação com Direito a Crédito - Vinculada a\r\n Receitas NãoTributadas no Mercado Interno e de Exportação\r\n 56 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação\r\n \r\n 60 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 61 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Não-Tributada no Mercado Interno\r\n 62 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 63 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 64 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas no Mercado Interno e de Exportação\r\n 65 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Não-Tributadas no Mercado Interno e de Exportação\r\n \r\n 66 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de\r\n Exportação\r\n 67 - Crédito Presumido - Outras Operações\r\n \r\n 70 - Operação de Aquisição sem Direito a Crédito\r\n \r\n 71 - Operação de Aquisição com Isenção\r\n \r\n 72 - Operação de Aquisição com Suspensão\r\n \r\n 73 - Operação de Aquisição a Alíquota Zero\r\n \r\n 74 - Operação de Aquisição; sem Incidência da\r\n Contribuição\r\n 75 - Operação de Aquisição por Substituição\r\n Tributária\r\n \r\n 98 - Outras Operações de Entrada\r\n 99 - Outras Operações\r\n \r\n \r\n
      \r\n
      \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor da Base de Cálculo do cofins\r\n \r\n \r\n \r\n Alíquota do cofins (em percentual)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Alíquota do cofins (em reais)\r\n \r\n \r\n \r\n Quantidade Vendida\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor do cofins\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      COFINS ST

      \r\n
      \r\n
      \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor da Base de Cálculo do cofins\r\n \r\n \r\n \r\n Alíquota do cofins (em percentual)\r\n \r\n \r\n
      \r\n
      \r\n \r\n Alíquota do cofins (em reais)\r\n \r\n \r\n \r\n Quantidade Vendida\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor do Cofins\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Informações Adicionais\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor Total\r\n \r\n \r\n \r\n Valor do Produto compõe Total da Nota\r\n \r\n Não\r\n Sim\r\n \r\n \r\n \r\n Valor do Frete\r\n \r\n \r\n \r\n Valor do Seguro\r\n \r\n \r\n \r\n Valor do Desconto\r\n \r\n \r\n \r\n Outras despesas acessórias\r\n \r\n \r\n
      \r\n
      \r\n \r\n Número do Pedido de Compra\r\n \r\n \r\n \r\n Item do Pedido de Compra\r\n \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { NfeService } from '../shared/nfe.service';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-pedido-compra',\r\n templateUrl: 'nfe-pedido-compra.component.html',\r\n})\r\n\r\nexport class NfePedidoCompraComponent {\r\n\r\n nfePedidoCompraForm: FormGroup;\r\n maximizado: boolean;\r\n filtro: any = {};\r\n buscouCompras: boolean = false;\r\n compras: any = [];\r\n dataDisable: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: DialogData,\r\n private nfeService: NfeService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.dataDisable = true;\r\n\r\n this.filtro.dataAtual = new Date();\r\n\r\n this.filtro.dataFinal = new Date();\r\n\r\n var dataInicial = new Date().setDate(this.filtro.dataFinal.getDate() - 30);\r\n\r\n this.nfePedidoCompraForm = this._formBuilder.group({\r\n vencimento: [''],\r\n dataInicial: new Date(dataInicial),\r\n dataFinal: new Date(),\r\n compraStatus: 3,\r\n \r\n });\r\n\r\n this.nfePedidoCompraForm\r\n .get('vencimento')\r\n .valueChanges\r\n .subscribe(\r\n (data) => {\r\n\r\n if (data == 'hoje') {\r\n this.dataDisable = true;\r\n this.nfePedidoCompraForm.get('dataInicial').setValue(new Date());\r\n this.nfePedidoCompraForm.get('dataFinal').setValue(new Date());\r\n }\r\n if (data == 'essemes') {\r\n this.dataDisable = true;\r\n var date = new Date();\r\n this.nfePedidoCompraForm.get('dataInicial').setValue(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.nfePedidoCompraForm.get('dataFinal').setValue(new Date(date.getFullYear(), date.getMonth() + 1, 0));\r\n }\r\n if (data == 'escolher') {\r\n this.dataDisable = false;\r\n var date = new Date();\r\n this.nfePedidoCompraForm.get('dataInicial').setValue(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.nfePedidoCompraForm.get('dataFinal').setValue(new Date(date.getFullYear(), date.getMonth() + 1, 0));\r\n }\r\n\r\n });\r\n\r\n this.nfePedidoCompraForm.get('vencimento').setValue('essemes');\r\n\r\n this.onChanges();\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n\r\n buscaCompras() {\r\n\r\n this.nfeService.postVisualizaComprasPorFiltro(this.nfePedidoCompraForm.value).subscribe(data => {\r\n\r\n this.compras = data.body;\r\n\r\n this.buscouCompras = true;\r\n\r\n });\r\n };\r\n\r\n vincularCompras() {\r\n\r\n let nfePedidoCompra: any = {};\r\n\r\n nfePedidoCompra.nfeId = this.dialogData.nfeId;\r\n nfePedidoCompra.IDsDocumento = \"\"; \r\n\r\n for (let i = 0; i < this.compras.length; i++) {\r\n if (this.compras[i].selected) {\r\n nfePedidoCompra.IDsDocumento = nfePedidoCompra.IDsDocumento + this.compras[i].compraId + \",\";\r\n }\r\n }\r\n\r\n this.nfeService.postNfeVincularPedidoCompra(nfePedidoCompra).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Pedidos de Compras Vinculados com NF-e Inbound\"\r\n }\r\n });\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n\r\n }\r\n\r\n statusCompra(status: number) {\r\n\r\n switch (status) {\r\n case 0:\r\n return \"Em Criação\";\r\n case 1:\r\n return \"Aguardando Aprovação\";\r\n case 2:\r\n return \"Aprovado\";\r\n case 3:\r\n return \"Aguardando Mercadoria\";\r\n case 4:\r\n return \"Recebida\";\r\n }\r\n}\r\n\r\n}\r\n","\r\n
      \r\n

      Relacionar Compra com NF-e Inbound

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Hoje\r\n Esse mês\r\n Escolher o período\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Data Inicial\r\n \r\n \r\n \r\n \r\n \r\n Data Final\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      Vincular?IDStatusFaturaNF-eData da CompraData PrevistaFornecedor
      \r\n \r\n {{compra.compraId}}{{statusCompra(compra.compraStatus)}}{{compra.faturaId > 0 ? compra.faturaId : 'Não Faturada' }}{{compra.nfeId > 0 ? compra.nfeId : 'Não Recebida' }}{{compra.dataCompra | date:'dd/MM/yyyy'}}{{compra.dataPrevista | date:'dd/MM/yyyy'}}{{compra.razaoSocial}}
      \r\n
      \r\n
      \r\n
      \r\n","\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { NfeService } from '../shared/nfe.service';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-pedido-venda',\r\n templateUrl: 'nfe-pedido-venda.component.html',\r\n})\r\n\r\nexport class NfePedidoVendaComponent {\r\n\r\n nfePedidoVendaForm: FormGroup;\r\n maximizado: boolean;\r\n filtro: any = {};\r\n buscouVendas: boolean = false;\r\n vendas: any = [];\r\n dataDisable: boolean;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: DialogData,\r\n private nfeService: NfeService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.dataDisable = true;\r\n\r\n this.filtro.dataAtual = new Date();\r\n\r\n this.filtro.dataFinal = new Date();\r\n\r\n var dataInicial = new Date().setDate(this.filtro.dataFinal.getDate() - 30);\r\n\r\n this.nfePedidoVendaForm = this._formBuilder.group({\r\n vencimento: [''],\r\n dataInicial: new Date(dataInicial),\r\n dataFinal: new Date(),\r\n devolucao: true\r\n });\r\n\r\n this.nfePedidoVendaForm\r\n .get('vencimento')\r\n .valueChanges\r\n .subscribe(\r\n (data) => {\r\n\r\n if (data == 'hoje') {\r\n this.dataDisable = true;\r\n this.nfePedidoVendaForm.get('dataInicial').setValue(new Date());\r\n this.nfePedidoVendaForm.get('dataFinal').setValue(new Date());\r\n }\r\n if (data == 'essemes') {\r\n this.dataDisable = true;\r\n var date = new Date();\r\n this.nfePedidoVendaForm.get('dataInicial').setValue(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.nfePedidoVendaForm.get('dataFinal').setValue(new Date(date.getFullYear(), date.getMonth() + 1, 0));\r\n }\r\n if (data == 'escolher') {\r\n this.dataDisable = false;\r\n var date = new Date();\r\n this.nfePedidoVendaForm.get('dataInicial').setValue(new Date(date.getFullYear(), date.getMonth(), 1));\r\n this.nfePedidoVendaForm.get('dataFinal').setValue(new Date(date.getFullYear(), date.getMonth() + 1, 0));\r\n }\r\n\r\n });\r\n\r\n this.nfePedidoVendaForm.get('vencimento').setValue('essemes');\r\n\r\n this.onChanges();\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n\r\n buscaVendas() {\r\n\r\n this.nfeService.postVisualizaVendasPorFiltro(this.nfePedidoVendaForm.value).subscribe(data => {\r\n\r\n this.vendas = data.body;\r\n\r\n this.buscouVendas = true;\r\n\r\n });\r\n };\r\n\r\n vincularVendas() {\r\n\r\n let nfePedidoVenda: any = {};\r\n\r\n nfePedidoVenda.nfeId = this.dialogData.nfeId;\r\n nfePedidoVenda.IDsDocumento = \"\"; \r\n\r\n for (let i = 0; i < this.vendas.length; i++) {\r\n if (this.vendas[i].selected) {\r\n nfePedidoVenda.IDsDocumento = nfePedidoVenda.IDsDocumento + this.vendas[i].vendaId + \",\";\r\n }\r\n }\r\n\r\n this.nfeService.postNfeVincularPedidoVenda(nfePedidoVenda).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Pedidos de Vendas Vinculados com NF-e Inbound\"\r\n }\r\n });\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n\r\n }\r\n\r\n statusVenda(status: number) {\r\n\r\n switch (status) {\r\n\r\n case 0:\r\n return 'Em Criação';\r\n case 1:\r\n return 'Aguardando Compra';\r\n case 2:\r\n return 'Aguardando Produção';\r\n case 3:\r\n return \"Concluída\";\r\n case 4:\r\n return \"Com Devolução\";\r\n case 99:\r\n return \"Cancelada\";\r\n default:\r\n return 'Em criação';\r\n }\r\n}\r\n\r\n}\r\n","\r\n
      \r\n

      Relacionar Venda com NF-e Inbound

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Hoje\r\n Esse mês\r\n Escolher o período\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Data Inicial\r\n \r\n \r\n \r\n \r\n Data Final\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      Vincular?IDStatusFaturaNF-eData da VendaData PrevistaFornecedor
      \r\n \r\n {{venda.vendaId}}{{statusVenda(venda.vendaStatus)}}{{venda.faturaId > 0 ? venda.faturaId : 'Não Faturada' }}{{venda.nfeId > 0 ? venda.nfeId : 'Não Recebida' }}{{venda.dataVenda | date:'dd/MM/yyyy'}}{{venda.dataPrevista | date:'dd/MM/yyyy'}}{{venda.razaoSocial}}
      \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { NfeStatusService } from '../shared/nfe-status.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nexport interface DialogData {\r\n nfeId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfe-status',\r\n templateUrl: 'nfe-status.component.html',\r\n})\r\n\r\nexport class NfeStatusComponent {\r\n\r\n maximizado: boolean;\r\n nfeStatus: any[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public INfeStatus: DialogData,\r\n private nfeStatusService: NfeStatusService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n if (this.INfeStatus.nfeId > 0) {\r\n\r\n this.nfeStatusService.getNfeStatus(this.INfeStatus.nfeId).subscribe(data => {\r\n\r\n this.nfeStatus = data.body;\r\n\r\n })\r\n\r\n }\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n modalStatusDetalhe(mensagem: string){\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Detalhe\",\r\n mensagem: mensagem\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n","\r\n
      \r\n

      NF-e Status

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      DataStatusDescriçãoDetalheProtocolo
      {{status.dataStatus | date:'dd/MM/yyyy'}}{{status.codStatus}}{{status.descricaoStatus}}\r\n \r\n {{status.nProt}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","import { forEach } from 'jszip';\r\n'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { NfseService } from '../shared/nfse.service';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { ExportaXmlService } from '../../core/exporta-xml/exporta-xml.service';\r\nimport { UfService } from '../../uf/shared/uf.service';\r\n\r\nimport { NfseStatusComponent } from '../nfse-status/nfse-status.component';\r\n\r\nimport { Nfse } from '../shared/nfse.model';\r\nimport { MunicipioService } from 'src/app/municipio/shared/municipio.service';\r\nimport { Empresa } from 'src/app/empresa/shared/empresa.model';\r\n\r\n\r\n\r\nexport interface DialogData {\r\n nfseId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfse-cadastro',\r\n templateUrl: 'nfse-cadastro.component.html',\r\n})\r\n\r\nexport class NfseCadastroComponent {\r\n\r\n empresas: any = [];\r\n listaServicos: any = [];\r\n statusNfse: string = '';\r\n nfseCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n autorizada: boolean = false;\r\n processar: boolean = false;\r\n cancelar: boolean = false;\r\n clientes: any[];\r\n ufs: any = [];\r\n municipios: any = [];\r\n isDisabled: boolean = false;\r\n impostosNfseRetencao: any;\r\n cnae: string;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n private exportaXmlService: ExportaXmlService,\r\n @Inject(MAT_DIALOG_DATA) public INfse: DialogData,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private nfseService: NfseService,\r\n private cfopService: CfopService,\r\n private ufService: UfService,\r\n private municipioService: MunicipioService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.nfseCadastroForm = this._formBuilder.group(new Nfse());\r\n this.nfseCadastroForm.addControl('clienteAutoComplete', new FormControl(''));\r\n this.nfseCadastroForm.get('clienteAutoComplete')?.setValidators(Validators.required);\r\n this.nfseCadastroForm.get('discriminacao')?.setValidators(Validators.required);\r\n this.nfseCadastroForm.get('valorServicos')?.setValidators([Validators.required, Validators.min(0.01)]);\r\n this.nfseCadastroForm.get('listaServico')?.setValidators(Validators.required);\r\n this.nfseCadastroForm.get('cnae')?.setValidators(Validators.required);\r\n\r\n this.nfseCadastroForm.updateValueAndValidity();\r\n \r\n if (this.INfse.nfseId > 0) {\r\n this.buscaNfse(this.INfse.nfseId);\r\n } else {\r\n this.nfseCadastroForm.get('tipoRps').setValue(1);\r\n }\r\n\r\n this.buscarEmpresas();\r\n this.buscarUFs();\r\n\r\n const ufId = this.data?.ufId ?? 0;\r\n const municipioId = this.data?.municipioId ?? 0;\r\n\r\n if (ufId !== 0 && municipioId !== 0) {\r\n this.nfseCadastroForm.get('localPrestacaoUfId').setValue(ufId);\r\n this.nfseCadastroForm.get('localPrestacaoMunicipioId').setValue(municipioId);\r\n }\r\n this.onChanges();\r\n this.restaurarDialog();\r\n\r\n let valorIssAnterior = 0; // Valor anterior do ISS para manter controle\r\n\r\n // Monitora alterações no campo valorIss\r\n this.nfseCadastroForm.get('valorIss')?.valueChanges.subscribe((novoValorIss) => {\r\n const issRetido = this.nfseCadastroForm.get('issRetido')?.value;\r\n const valorLiquidoNfse = this.nfseCadastroForm.get('valorLiquidoNfse')?.value || 0;\r\n\r\n if (issRetido == 1) {\r\n // Se ISS está retido, subtrai o valor anterior e adiciona o novo valor\r\n const valorLiquidoAtualizado = valorLiquidoNfse + valorIssAnterior - novoValorIss;\r\n\r\n this.nfseCadastroForm.patchValue({\r\n valorLiquidoNfse: valorLiquidoAtualizado,\r\n valorIssRetido: novoValorIss // Atualiza valorIssRetido com o novo valor do valorIss\r\n });\r\n\r\n valorIssAnterior = novoValorIss; // Atualiza o valor anterior\r\n }\r\n });\r\n\r\n // Monitora alterações no campo issRetido\r\n this.nfseCadastroForm.get('issRetido')?.valueChanges.subscribe((issRetido) => {\r\n const valorIssAtual = this.nfseCadastroForm.get('valorIss')?.value || 0;\r\n const valorLiquidoNfse = this.nfseCadastroForm.get('valorLiquidoNfse')?.value || 0;\r\n\r\n if (issRetido === 2) {\r\n // Se ISS não está retido, adiciona o valor de valorIss ao valorLiquidoNfse\r\n const valorLiquidoAtualizado = valorLiquidoNfse + valorIssAtual;\r\n\r\n this.nfseCadastroForm.patchValue({\r\n valorIssRetido: 0, // Zera valorIssRetido\r\n valorLiquidoNfse: valorLiquidoAtualizado\r\n });\r\n\r\n valorIssAnterior = 0; // Zera o valor anterior para evitar duplicações\r\n }\r\n\r\n if (issRetido === 1) {\r\n // Se ISS está retido, subtrai o valor de valorIss do valorLiquidoNfse\r\n const valorLiquidoAtualizado = valorLiquidoNfse - valorIssAtual;\r\n\r\n this.nfseCadastroForm.patchValue({\r\n valorIssRetido: valorIssAtual, // Atualiza valorIssRetido com o valor de valorIss\r\n valorLiquidoNfse: valorLiquidoAtualizado\r\n });\r\n\r\n valorIssAnterior = valorIssAtual; // Atualiza o valor anterior para manter controle\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarUFs() {\r\n this.ufService.getUFs().subscribe(data => {\r\n this.ufs = data.body;\r\n });\r\n }\r\n\r\n buscarMunicipioPorUf(ufId: number) {\r\n this.municipioService.getMunicipioPorUf(ufId).subscribe(data => {\r\n this.municipios = data.body;\r\n });\r\n }\r\n\r\n buscarEmpresas() {\r\n this.nfseService.getEmpresa().subscribe(data => {\r\n this.empresas = data.body;\r\n });\r\n }\r\n\r\n buscaListaServico(empresaId) {\r\n this.nfseService.getListaServicoCadastrados(empresaId).subscribe(data => {\r\n this.listaServicos = data.body;\r\n });\r\n }\r\n\r\n onChanges(): void {\r\n this.nfseCadastroForm\r\n .get('clienteAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.nfseService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.clientes = data.body\r\n );\r\n\r\n this.nfseCadastroForm\r\n .get('localPrestacaoUfId')\r\n .valueChanges\r\n .subscribe(data => this.buscarMunicipioPorUf(data));\r\n }\r\n\r\n buscaNfse(nfseId: number) {\r\n this.getImpostosRetencaoNfse(nfseId);\r\n this.nfseService.getNfse(nfseId).subscribe(data => {\r\n this.insereDadosNfse(data.body);\r\n this.buscaListaServico(data.body.empresaId);\r\n }, (error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n getImpostosRetencaoNfse(nfseId: number){\r\n this.nfseService.getImpostosRetencaoNfse(nfseId).subscribe(data => {\r\n this.impostosNfseRetencao = data.body;\r\n });\r\n }\r\n\r\n empresaSelecionada(empresa: any) {\r\n if (\r\n this.nfseCadastroForm.get('localPrestacaoUfId').value == undefined ||\r\n this.nfseCadastroForm.get('localPrestacaoUfId').value == null ||\r\n this.nfseCadastroForm.get('localPrestacaoUfId').value == 0\r\n ) {\r\n this.nfseCadastroForm.get('localPrestacaoUfId').setValue(empresa.municipio.ufId);\r\n }\r\n if (\r\n this.nfseCadastroForm.get('localPrestacaoMunicipioId').value == undefined ||\r\n this.nfseCadastroForm.get('localPrestacaoMunicipioId').value == null ||\r\n this.nfseCadastroForm.get('localPrestacaoMunicipioId').value == 0\r\n ) {\r\n this.nfseCadastroForm.get('localPrestacaoMunicipioId').setValue(empresa.municipio.municipioId);\r\n this.nfseCadastroForm.get('codigoMunicipioIbge').setValue(empresa.municipio.municipioId);\r\n }\r\n\r\n\r\n let ufId;\r\n let municipioId;\r\n let municipio;\r\n\r\n const intervalId = setInterval(() => {\r\n if (this.municipios && this.municipios.length > 0) {\r\n clearInterval(intervalId);\r\n\r\n ufId = this.data?.ufId ? 0 : empresa.municipio.ufId;\r\n municipioId = this.data?.municipioId ? 0 : empresa.municipio.municipioId;\r\n municipio = this.municipios.filter(municipio => municipio.municipioId == municipioId)[0];\r\n\r\n if (ufId !== 0 && municipioId !== 0) {\r\n this.nfseCadastroForm.get('localPrestacaoUfId').setValue(ufId);\r\n this.nfseCadastroForm.get('localPrestacaoMunicipioId').setValue(municipioId);\r\n this.nfseCadastroForm.get('codigoMunicipioIbge').setValue(municipio.codigoIBGE);\r\n }\r\n\r\n this.buscaListaServico(empresa.empresaId);\r\n }\r\n }, 100);\r\n }\r\n\r\n insereDadosNfse(data: any) {\r\n this.nfseCadastroForm.patchValue(data);\r\n this.nfseCadastroForm.get('clienteAutoComplete').setValue(data.cliente.nomeFantasia);\r\n\r\n if (this.nfseCadastroForm.value.statusProcessamento == \"100\") {\r\n this.autorizada = true;\r\n };\r\n\r\n if (this.nfseCadastroForm.value.statusProcessamento != \"95\" && this.nfseCadastroForm.value.statusProcessamento != \"135\" && this.nfseCadastroForm.value.nProt != null) {\r\n this.cancelar = true;\r\n };\r\n\r\n const statusInvalidos = [\"100\", \"101\", \"102\", \"135\", \"105\", \"2\"];\r\n\r\n if (!statusInvalidos.includes(this.nfseCadastroForm.value.statusProcessamento)) {\r\n this.processar = true;\r\n }\r\n\r\n\r\n this.atualizaStatus(this.nfseCadastroForm.value);\r\n }\r\n\r\n salvar(): void {\r\n\r\n if (this.nfseCadastroForm.value.nfseId == 0) {\r\n\r\n this.nfseService.postNfse(this.nfseCadastroForm.value).subscribe(data => {\r\n\r\n this.INfse.nfseId = data.body.nfseId;\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscaNfse(this.INfse.nfseId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: error.error\r\n }\r\n });\r\n });\r\n\r\n }\r\n else {\r\n\r\n this.nfseService.putNfse(this.nfseCadastroForm.value, this.nfseCadastroForm.value.nfseId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscaNfse(this.nfseCadastroForm.value.nfseId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: error.error\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n async verificaValorContaParcelaFaturaAposCalculoImpostoNfse(nfse, contaParcelaFaturaNfse): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n let msgBoletos = 'Não existe boleto para esta conta parcela, deseja criar um boleto?';\r\n let msgBoletosEContaParcelInexistentes = 'O sistema identificou que não existe conta a receber e boleto para essa NFS-e, deseja criar?';\r\n let msgContaFatura = 'O valor da NFSe é diferente do valor da conta parcela/boleto. Deseja Atualizar os valores antes de continuar?';\r\n\r\n let valoresContasParcelas = 0;\r\n\r\n valoresContasParcelas += contaParcelaFaturaNfse?.reduce((acc, contaParcela) => {\r\n return acc + contaParcela.valorParcela;\r\n }, 0);\r\n\r\n const boletoExists = contaParcelaFaturaNfse?.every((contaParcela) => contaParcela.boletoId > 0);\r\n const valoresIguais = nfse.valorLiquidoNfse == valoresContasParcelas;\r\n const contaParcelaExists = contaParcelaFaturaNfse != null && contaParcelaFaturaNfse != undefined && contaParcelaFaturaNfse.length > 0;\r\n\r\n if (!contaParcelaExists) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msgBoletosEContaParcelInexistentes\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.geraBoleto(nfse.nfseId, resolve, reject, true);\r\n } else {\r\n resolve(); // Aqui resolve a Promise se o usuário não quiser criar boleto\r\n }\r\n });\r\n } else if (!boletoExists && contaParcelaExists) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msgBoletos\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (!valoresIguais) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msgContaFatura\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.atualizaValoresContaParcelaFatura(contaParcelaFaturaNfse, nfse, resolve, reject).then(() => {\r\n this.geraBoleto(nfse.nfseId, resolve, reject);\r\n resolve();\r\n });\r\n } else {\r\n this.geraBoleto(nfse.nfseId, resolve, reject);\r\n resolve();\r\n }\r\n });\r\n } else {\r\n this.geraBoleto(nfse.nfseId, resolve, reject);\r\n resolve();\r\n }\r\n } else {\r\n if (!valoresIguais) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msgContaFatura\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.atualizaValoresContaParcelaFatura(contaParcelaFaturaNfse, nfse, resolve, reject);\r\n resolve();\r\n } else {\r\n resolve();\r\n }\r\n });\r\n } else {\r\n resolve();\r\n }\r\n }\r\n });\r\n } else if (boletoExists && contaParcelaExists && !valoresIguais) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: msgContaFatura\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.atualizaValoresContaParcelaFatura(contaParcelaFaturaNfse, nfse, resolve, reject);\r\n resolve();\r\n } else {\r\n resolve();\r\n }\r\n });\r\n } else {\r\n resolve(); // Se tudo estiver correto, resolve diretamente\r\n }\r\n });\r\n }\r\n\r\n\r\n private geraBoleto(nfseId: number, resolve: () => void, reject: () => void, abreEmNovaGuia: boolean = false): void {\r\n this.nfseService.postGerarBoletoByNfseId(nfseId).subscribe(data => {\r\n let mensagem = 'Boleto gerado com sucesso!';\r\n if (abreEmNovaGuia){\r\n mensagem = 'Conta e Boleto gerados com sucesso!';\r\n }\r\n this._snackBar.open(mensagem, 'Fechar', {\r\n duration: 7000,\r\n panelClass: ['mat-toolbar', 'success']\r\n })\r\n\r\n if (abreEmNovaGuia) {\r\n let url = `#/financeiro/contareceber?contaParcelaIds=${data.body}`;\r\n window.open(url, '_blank');\r\n }\r\n\r\n resolve();\r\n }, (error: HttpErrorResponse) => {\r\n this._snackBar.open('Erro ao gerar o boleto!', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'error']\r\n });\r\n reject();\r\n });\r\n }\r\n\r\n private atualizaValoresContaParcelaFatura(contaParcelaFaturaNfse, nfse, resolve: () => void, reject: () => void): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n this.nfseService.atualizaContaParcelaToValoresNfse(nfse.nfseId).subscribe(data => {\r\n resolve();\r\n }, (error: HttpErrorResponse) => {\r\n this._snackBar.open('Erro ao atualizar os valores!', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'error']\r\n });\r\n reject();\r\n }\r\n );\r\n });\r\n }\r\n\r\n async enviarSefaz() {\r\n\r\n this.isDisabled = true;\r\n\r\n this.salvar();\r\n\r\n const contaParcelas = await this.nfseService.getContaParcelFaturaByNfseId(this.nfseCadastroForm.value.nfseId).toPromise();\r\n await this.verificaValorContaParcelaFaturaAposCalculoImpostoNfse(\r\n this.nfseCadastroForm.value,\r\n contaParcelas.body\r\n );\r\n\r\n var data30DiasAtras = new Date(new Date().setDate(new Date().getDate() - 30));\r\n let dataEmissao = new Date(this.nfseCadastroForm.value.dtEmissao);\r\n\r\n if (dataEmissao < data30DiasAtras) {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Não é possível emitir NFS-e com competência superior a 30 dias atrás\"\r\n }\r\n });\r\n return;\r\n }\r\n\r\n this.nfseService.postProcessaNfse(this.nfseCadastroForm.value, this.nfseCadastroForm.value.nfseId).subscribe(\r\n data => {\r\n if (data.body == 100) {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"NFS-e Autorizada\"\r\n }\r\n });\r\n\r\n this.buscaNfse(this.nfseCadastroForm.value.nfseId);\r\n\r\n } else if(data.body == 2 || data.body == \"A02\" || data.body == \"E4\" || data.body == \"CE95\") {\r\n\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Processando...\",\r\n mensagem: `O sistema da prefeitura está processando sua Nota Fiscal. Isso pode levar alguns minutos devido à lentidão momentânea. O status será atualizado em breve. Por favor, verifique o status da nota na tela de consulta.`, }\r\n }).afterClosed().subscribe(() => {\r\n this.isDisabled = true;\r\n this.modalNfseStatus();\r\n });\r\n\r\n } else {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro \" + data.body,\r\n mensagem: \"Erro ao autorizar o NFS-e. Verifique o Log.\"\r\n }\r\n });\r\n this.isDisabled = false;\r\n }\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Erro ao autorizar o NFS-e. Verifique o Log.\"\r\n }\r\n });\r\n this.isDisabled = false;\r\n }\r\n );\r\n }\r\n\r\n verificarRetornoTardio(){\r\n\r\n this.nfseService.getRetornoTardio(this.nfseCadastroForm.value.nfseId).subscribe(data => {\r\n if(data.body){\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Nota Fiscal retornou com status de Retorno Tardio. Verifique o Log.\"\r\n }\r\n });\r\n }\r\n this.ngOnInit();\r\n });\r\n }\r\n\r\n modalNfseStatus(): void {\r\n\r\n const dialogRef = this.dialog.open(NfseStatusComponent, {\r\n data: {\r\n nfseId: this.nfseCadastroForm.value.nfseId\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n }\r\n\r\n corstatusProcessamento(statusProcessamento) {\r\n let cor = \"Erro\";\r\n if (statusProcessamento == 100 || statusProcessamento == 101 || statusProcessamento == 102 || statusProcessamento == 135 || statusProcessamento == 95) {\r\n cor = \"Sucesso\";\r\n };\r\n if (statusProcessamento == 0 || statusProcessamento == 105) {\r\n cor = \"Processando\";\r\n };\r\n\r\n if (statusProcessamento == undefined) {\r\n cor = \"Processando\";\r\n };\r\n\r\n return cor;\r\n }\r\n\r\n cancelarNfse() {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente cancelar esse NFS-e?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.nfseService.postCancelar(this.nfseCadastroForm.value.nfseId).subscribe(data => {\r\n\r\n if (data.body == 101 || data.body == 102) {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"NFS-e cancelada com sucesso.\"\r\n }\r\n });\r\n }\r\n else {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Erro ao cancelar o NFS-e. Verifique o Log.\"\r\n }\r\n });\r\n }\r\n\r\n this.buscaNfse(this.nfseCadastroForm.value.nfseId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error.error\r\n }\r\n });\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n atualizaStatus(nfseTemp) {\r\n\r\n switch (nfseTemp.statusProcessamento) {\r\n case \"100\":\r\n this.statusNfse = \" - Status: Autorizada\";\r\n break;\r\n case null:\r\n case \"\":\r\n case \"0\":\r\n case \"105\":\r\n case \"2\":\r\n this.statusNfse = \" - Status: Em processamento\";\r\n break;\r\n case \"135\":\r\n this.statusNfse = \" - Status: Cancelada\";\r\n break;\r\n default:\r\n this.statusNfse = \" - Status: Erro, verifique o status\";\r\n }\r\n }\r\n\r\n calculaImpostos() {\r\n if (this.nfseCadastroForm.value.valorServicos > 0 && this.nfseCadastroForm.value.listaServico != undefined && this.nfseCadastroForm.value.listaServico != null && this.nfseCadastroForm.value.listaServico != '')\r\n \r\n this.nfseCadastroForm.get('discriminacao')?.clearValidators();\r\n this.nfseCadastroForm.updateValueAndValidity();\r\n\r\n this.nfseService.postCalculaImposto(this.nfseCadastroForm.value).subscribe(data => {\r\n \r\n this.nfseCadastroForm.get('discriminacao')?.setValidators(Validators.required);\r\n \r\n this.insereDadosNfse(data.body);\r\n \r\n }, (error: HttpErrorResponse) => {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: this.getErrorMessage(error)\r\n }\r\n });\r\n });\r\n }\r\n\r\n geraLinkImpressao() {\r\n this.nfseService.postGeraLinkImpressao(this.nfseCadastroForm.value).subscribe(response => {\r\n const contentType = response.headers.get('Content-Type');\r\n\r\n if (contentType === 'application/pdf') {\r\n //É um arquivo PDF, faz o download\r\n const blob = new Blob([response.body], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = `nfse_${this.nfseCadastroForm.value.numeroNfse}.pdf`;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n } else {\r\n\r\n const arrayBuffer = response.body as ArrayBuffer;\r\n const text = new TextDecoder().decode(arrayBuffer);\r\n console.log('Conteúdo recebido:', text);\r\n\r\n if(text.startsWith('<')) {\r\n this.htmlPrinterService.imprimirConteudoTinyMCE(text);\r\n\r\n } else {\r\n \r\n\r\n if (text.startsWith('http')) {\r\n window.open(text, '_blank');\r\n } else {\r\n window.open(`http://${text}`, '_blank');\r\n }\r\n }\r\n }\r\n\r\n }, (error: HttpErrorResponse) => {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: error.error\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n calculavalorLiquido() {\r\n\r\n this.nfseCadastroForm.value.valorLiquidoNfse = this.nfseCadastroForm.value.valorServicos - this.nfseCadastroForm.value.valorPis - this.nfseCadastroForm.value.valorCofins - this.nfseCadastroForm.value.valorInss - this.nfseCadastroForm.value.valorIr - this.nfseCadastroForm.value.valorCsll - this.nfseCadastroForm.value.outrasRetencoes - this.nfseCadastroForm.value.valorIssRetido - this.nfseCadastroForm.value.descontoIncondicionado - this.nfseCadastroForm.value.descontoCondicionado;\r\n\r\n this.nfseCadastroForm.value.valorLiquidoNfse = Number((this.nfseCadastroForm.value.valorLiquidoNfse).toFixed(2));\r\n\r\n }\r\n\r\n determinaCliente(cliente: any) {\r\n\r\n this.nfseCadastroForm.get('clienteId').setValue(cliente.clienteId);\r\n }\r\n\r\n buscaCnaePorServico(listaServico: string): void {\r\n if (listaServico) {\r\n this.nfseService.getCnaeByListaServico(listaServico).subscribe(\r\n (response) => {\r\n this.cnae = response.body; \r\n this.nfseCadastroForm.get('cnae')?.setValue(this.cnae);\r\n }\r\n );\r\n }\r\n }\r\n\r\n private getErrorMessage(error: HttpErrorResponse): string {\r\n if (error.error && typeof error.error === 'string') {\r\n return error.error; // Mensagem já é uma string\r\n }\r\n if (typeof error.error.errors === 'object') {\r\n // `errors` é um objeto, converte em string legível\r\n return Object.values(error.error.errors).join('\\n');\r\n }\r\n return \"Ocorreu um erro inesperado. Tente novamente.\";\r\n }\r\n}\r\n","\r\n
      \r\n

      NFS-e - {{nfseCadastroForm.value.numeroNfse}} {{statusNfse}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n * Existem campos obrigatórios que ainda não foram preenchidos.\r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Cliente\r\n \r\n \r\n Cliente é um campo obrigatório.\r\n \r\n \r\n \r\n CNPJ: {{parceiro.cnpj}} - {{parceiro.nomeFantasia}}\r\n \r\n \r\n \r\n \r\n
      \r\n
      0\">\r\n
      \r\n \r\n Número do RPS\r\n \r\n \r\n \r\n Série do RPS\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Competência\r\n \r\n \r\n \r\n \r\n \r\n Tipo RPS\r\n \r\n RPS\r\n Nota Fiscal Conjugada (Mista)\r\n Cupom\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Local da Prestação

      \r\n
      \r\n \r\n UF\r\n \r\n \r\n {{uf.descUF}}\r\n \r\n \r\n \r\n \r\n Município\r\n \r\n \r\n {{municipio?.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Dados do Serviço

      \r\n
      \r\n
      \r\n \r\n Descrição do Serviço Prestado\r\n \r\n \r\n Descrição é um campo obrigatório.\r\n \r\n \r\n
      \r\n \r\n Código do Serviço/Atividade\r\n \r\n \r\n {{ listaServico.codigo }} - {{ listaServico.descricao }}\r\n \r\n \r\n \r\n Código do serviço é um campo obrigatório.\r\n \r\n \r\n
      \r\n
      \r\n \r\n Alíquota (%)\r\n \r\n \r\n \r\n Código do Serviço no Município\r\n \r\n \r\n \r\n Valor do serviço prestado (R$)\r\n \r\n \r\n Valor do serviço é um campo obrigatório.\r\n \r\n \r\n Valor do serviço é um campo obrigatório.\r\n \r\n \r\n \r\n Cnae\r\n \r\n \r\n CNAE é um campo obrigatório.\r\n \r\n \r\n
      \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Código do Serviço no Município\r\n \r\n \r\n
      \r\n
      \r\n \r\n Valor das Deduções (R$)\r\n \r\n \r\n \r\n Outras Retenções (R$)\r\n \r\n \r\n \r\n Descontos Incondicionados (R$)\r\n \r\n \r\n \r\n Descontos Condicionados (R$)\r\n \r\n \r\n
      \r\n
      \r\n \r\n PIS (R$)\r\n \r\n 0\">\r\n {{ impostosNfseRetencao.pisRetido ? 'PIS está retido' : 'PIS não está retido' }}\r\n \r\n \r\n\r\n \r\n COFINS (R$)\r\n \r\n 0\">\r\n {{ impostosNfseRetencao.cofinsRetido ? 'COFINS está retido' : 'COFINS não está retido' }}\r\n \r\n \r\n\r\n \r\n IR (R$)\r\n \r\n 0\">\r\n {{ impostosNfseRetencao.irpjRetido ? 'IR está retido' : 'IR não está retido' }}\r\n \r\n \r\n\r\n \r\n INSS (R$)\r\n \r\n 0\">\r\n {{ impostosNfseRetencao.inssRetido ? 'INSS está retido' : 'INSS não está retido' }}\r\n \r\n \r\n\r\n \r\n CSLL (R$)\r\n \r\n 0\">\r\n {{ impostosNfseRetencao.csllRetido ? 'CSLL está retido' : 'CSLL não está retido' }}\r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n Base de Cálculo (R$)\r\n \r\n \r\n \r\n Valor Líquido da Nota (R$)\r\n \r\n \r\n
      \r\n
      \r\n \r\n ISS Retido\r\n \r\n Sim\r\n Não\r\n \r\n \r\n \r\n Valor do ISS (R$)\r\n \r\n 0\">\r\n {{ nfseCadastroForm.value.issRetido == 1 ? 'ISS está retido' : 'ISS não está retido' }}\r\n \r\n \r\n \r\n Valor do ISS Retido (R$): {{ nfseCadastroForm.value.valorIssRetido }}\r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Código A.R.T.\r\n \r\n \r\n \r\n Código da Obra\r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      99\">\r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { NfseStatusService } from '../shared/nfse-status.service';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nexport interface DialogData {\r\n nfseId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'nfse-status',\r\n templateUrl: 'nfse-status.component.html',\r\n})\r\n\r\nexport class NfseStatusComponent {\r\n\r\n maximizado: boolean;\r\n nfsesStatus: any[];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public INfseStatus: DialogData,\r\n private nfseStatusService: NfseStatusService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n if (this.INfseStatus.nfseId > 0) {\r\n\r\n this.nfseStatusService.getNfseStatus(this.INfseStatus.nfseId).subscribe(data => {\r\n\r\n this.nfsesStatus = data.body;\r\n\r\n },(error: HttpErrorResponse) => {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n this.restaurarDialog();\r\n })\r\n\r\n }\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n modalStatusDetalhe(mensagem: string){\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Detalhe\",\r\n mensagem: mensagem\r\n }\r\n\r\n });\r\n\r\n }\r\n}\r\n","\r\n
      \r\n

      NFS-e Status

      \r\n \r\n
      \r\n \r\n \r\n \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      DataStatusDescriçãoDetalheProtocolo
      {{status.dataCriacao | date:'dd/MM/yyyy HH:mm:ss'}}{{status.codStatus}}{{status.descricao}}\r\n \r\n {{status.nProt}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n","export class NfeEvento {\r\n\r\n nfeEventoId: number = 0;\r\n\r\n tpEvento : string = '';\r\n\r\n idEvento : string = '';\r\n\r\n nSeqEvento : string = '';\r\n\r\n verEvento : string = '';\r\n\r\n versao : string = '';\r\n\r\n descEvento : string = '';\r\n\r\n nProt : string = '';\r\n\r\n xJust : string = '';\r\n\r\n ufEmitente : string = '';\r\n\r\n cnpjEmitente : string = '';\r\n\r\n tpAmb : number = 0;\r\n\r\n chNFe : string = '';\r\n\r\n xCorrecao : string = '';\r\n\r\n nfeId : number = 0;\r\n\r\n numLoteEvento : number = 0;\r\n\r\n saguiClienteId : number = 0;\r\n\r\n }\r\n ","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class NfeEventoService {\r\n\r\n postCartaCorreca(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/cartacorrecao/', item, { observe: 'response' })\r\n };\r\n\r\n getNfeEventos(itemId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfeevento/visualizapornfeid/' + itemId, { observe: 'response' })\r\n };\r\n\r\n getNfeEvento(itemId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfeevento/visualiza/' + itemId, { observe: 'response' })\r\n }; \r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class NfeItem {\r\n\r\n nfeItemId: number = 0;\r\n\r\n produtoId: number = 0;\r\n\r\n produtoTipo: number = 0;\r\n\r\n nItem: number = 0;\r\n\r\n cfop: number = 0;\r\n\r\n vProd: number = 0;\r\n\r\n vFrete: number = 0;\r\n\r\n vSeg: number = 0;\r\n\r\n vDesc: number = 0;\r\n\r\n vOutro: number = 0;\r\n\r\n indTot: number = 0;\r\n\r\n codProd: string = '';\r\n\r\n descricao: string = '';\r\n\r\n ncm: string = '';\r\n\r\n ean: string = '';\r\n\r\n eanTrib: string = '';\r\n\r\n unTributaria: string = '';\r\n\r\n qtdTributaria: number = 0;\r\n\r\n vlrTributario: number = 0;\r\n\r\n unComercial: string = '';\r\n\r\n qtdComercial: number = 0;\r\n\r\n vlrComercial: number = 0;\r\n\r\n extipi: number = 0;\r\n\r\n infAdProd: string = '';\r\n\r\n cstIcms: string = '';\r\n\r\n cstIpi: string = '';\r\n\r\n cstCofins: string = '';\r\n\r\n cstPis: string = '';\r\n\r\n xPed: string = '';\r\n\r\n nItemPed: number = 0;\r\n\r\n icmsDifal: boolean = false;\r\n\r\n cest: string = '';\r\n\r\n nfeId: number = 0;\r\n icmsmodBC: number = 0;\r\n icmspRedBC: number = 0;\r\n icmsvBC: number = 0;\r\n icmspIcms: number = 0;\r\n icmsvIcms: number = 0;\r\n icmSorig: number = 0;\r\n icmspCredSN: number = 0;\r\n icmsvCredIcmsSN: number = 0;\r\n icmsSTmodBCST: number = 0;\r\n icmsSTpRedBCST: number = 0;\r\n icmsSTpMVAST: number = 0;\r\n icmsSTvBCST: number = 0;\r\n icmsSTpIcmsST: number = 0;\r\n icmsSTvIcmsST: number = 0;\r\n vBCSTRet: number = 0;\r\n pST: number = 0;\r\n vICMSSubstituto: number = 0;\r\n vICMSSTRet: number = 0;\r\n ipiclEnq: string = '';\r\n ipicEnq: string = '';\r\n ipiCNPJProd: string = '';\r\n ipicSelo: number = 0;\r\n ipiqSelo: number = 0;\r\n ipivBC: number = 0;\r\n ipipIpi: number = 0;\r\n ipiqUnid: number = 0;\r\n ipivUnid: number = 0;\r\n ipivIpi: number = 0;\r\n pisvBC: number = 0;\r\n pispPis: number = 0;\r\n pisqBCProd: number = 0;\r\n pisqUnid: number = 0;\r\n pisvUnid: number = 0;\r\n pisvPis: number = 0;\r\n pisvAliqProd: number = 0;\r\n pisSTvBC: number = 0;\r\n pisSTpPis: number = 0;\r\n pisSTvAliqProd: number = 0;\r\n pisSTqBCProd: number = 0;\r\n pisSTvPis: number = 0;\r\n cofinsvBC: number = 0;\r\n cofinspCofins: number = 0;\r\n cofinsqUnid: number = 0;\r\n cofinsvUnid: number = 0;\r\n cofinsvCofins: number = 0;\r\n cofinsSTvBC: number = 0;\r\n cofinsSTpPIS: number = 0;\r\n cofinsSTvAliqProd: number = 0;\r\n cofinsSTqBCProd: number = 0;\r\n cofinsSTvPIS: number = 0;\r\n cofinsvAliqProd: number = 0;\r\n cofinsqBCProd: number = 0;\r\n tipoCalculoIPI: number = 0;\r\n tipoCalculoPis: number = 1;\r\n tipoCalculoPisST: number = 1;\r\n tipoCalculoCofinsST: number = 1;\r\n tipoCalculoCofins: number = 1;\r\n\r\n pesoLiquido: number = 0;\r\n\r\n pesoBruto: number = 0;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class NfeStatusService {\r\n\r\n getNfeStatus(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfestatus/visualizapornfe/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { NfeItem } from \"./nfe-item.model\";\r\n\r\nexport class Nfe {\r\n\r\n nfeId: number = 0;\r\n\r\n inbound: boolean = false;\r\n\r\n fornecedorId: number = 0;\r\n\r\n faturaId: number = 0;\r\n\r\n avisosInbound: string = '';\r\n\r\n chaveAcesso: string = '';\r\n\r\n statusProcessamento: number = 0;\r\n\r\n cNF: number = 0;\r\n\r\n cfop: number = 0;\r\n\r\n natOp: string = '';\r\n\r\n indPag: number = 0;\r\n\r\n mod: number = 0;\r\n\r\n serie: number = 0;\r\n\r\n nNF: number = 0;\r\n\r\n dhEmi: Date = new Date();\r\n\r\n dhSaiEnt: Date = new Date();\r\n\r\n tpNF: number = 1;\r\n\r\n idDest: number = 0;\r\n\r\n cMunFG: number = 0;\r\n\r\n tpImp: number = 0;\r\n\r\n tpEmis: number = 0;\r\n\r\n cDV: number = 0;\r\n\r\n tpAmb: number = 0;\r\n\r\n finNFe: number = 1;\r\n\r\n indFinal: number = 0;\r\n\r\n indPres: number = 0;\r\n\r\n procEmi: number = 0;\r\n\r\n verProc: string = '';\r\n\r\n dhCont: Date = new Date();\r\n\r\n xJust: string = '';\r\n\r\n nProt: string = '';\r\n\r\n modFrete: number = 0;\r\n\r\n transportadoraId: number = 0;\r\n\r\n qVol: number = 0;\r\n\r\n pesoL: number = 0;\r\n\r\n pesoB: number = 0;\r\n\r\n esp: number = 0;\r\n\r\n especie: string = '';\r\n\r\n idlocalEntrega: number = 0;\r\n\r\n idlocalRetirada: number = 0;\r\n\r\n empresaId: number = 0;\r\n\r\n razaoSocialCliente: string = '';\r\n\r\n refNFe: string = '';\r\n\r\n clienteId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n possuiPedidoCompra: boolean = false;\r\n\r\n ufSaidaPais: string = '';\r\n\r\n xLocExporta: string = '';\r\n\r\n xLocDespacho: string = '';\r\n\r\n infCpl: string = '';\r\n\r\n infAdFisco: string = '';\r\n\r\n nfeItens: NfeItem[] = [];\r\n\r\n possuiReferencia: boolean = false;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class NfeService {\r\n\r\n \r\n\r\n postVisualizaNfesPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfe/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getListaServico(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n\r\n getClientePorNome(nome: any): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl +'/api/nfe/visualizaclientepornome',\r\n { observe: 'response', params }\r\n );\r\n }\r\n\r\n getNfe(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfe/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getNfeConfig(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfeconfig/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getNfeConfigPorEmpresa(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfeconfig/visualizaporempresa/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postNfe(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putNfe(item: any, itemId: number): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/nfe/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n postProcessaNfe(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/processa/', item, { observe: 'response' })\r\n };\r\n\r\n postExportarXml(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/exporta/', item, { observe: 'response' })\r\n };\r\n\r\n postCalculaImposto(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfeitem/calculaimposto/', item, { observe: 'response' })\r\n };\r\n\r\n postCancelar(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/cancela/', item, { observe: 'response' })\r\n };\r\n\r\n getNfeItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfeitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiNfeItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfeitem/inclui', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaNfeItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/nfeitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteNfeItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/nfeitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getEstoqueByProduto(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfeitem/visualizaestoqueporproduto/' + itemId, { observe: 'response' })\r\n }\r\n\r\n // getProdutoPorNome(parametros: any): Observable> {\r\n\r\n // const params = {\r\n // id: parametros.id,\r\n // }\r\n\r\n // return this.http.get(environment.webApiSaguiControlUrl + '/api/nfe/produtovisualizapornome', { observe: 'response', params })\r\n // }\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/nfe/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n getTransportadoras(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfe/transportadoras', { observe: 'response' })\r\n }\r\n\r\n postInboundXml(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfeinbound/processaxml/', item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaNfeInboundsPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfeinbound/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaComprasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaVendasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n postNfeVincularPedidoCompra(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfeinbound/vinculapedidocomrpa/', item, { observe: 'response' })\r\n }\r\n\r\n postNfeVincularPedidoVenda(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfeinbound/vinculapedidovenda/', item, { observe: 'response' })\r\n }\r\n\r\n postEnviarPorEmail(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfe/enviarporemail', item, { observe: 'response' })\r\n };\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class NfseStatusService {\r\n\r\n getNfseStatus(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfsestatus/visualizatodas/' + itemId, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class Nfse {\r\n\r\n nfseId: number = 0;\r\n\r\n //1 - Produção, 2 - Homologação\r\n tpAmb: number = 0;\r\n\r\n statusProcessamento: string = '';\r\n\r\n numeroRps: number = 0;\r\n\r\n serieRps: string = '';\r\n\r\n tipoRps: number = 0;// 1-Rps 2-Nota fiscal conjugada (Mista) 3-Cupom\r\n\r\n dtEmissao: Date = new Date();\r\n\r\n naturezaOperacao: number = 0;//1-Tributacao no municipio 2-Tributacao fora do municipio 3-Isencao 4-Imune 5-Exigibilidade suspensa por decisao judicial 6-Exigibilidade suspensa por procedimento administrativo.\r\n\r\n regimeEspecialTributacao: number = 0;// 1-Microempresa municipal 2-Estimativa 3-Sociedade de profissionais 4-Cooperativa 5-Microeempresario individual(MEI) 6-Microeempresario e empresa de pequeno porte(ME EPP).\r\n\r\n optanteSimplesNacional: number = 0;// 1-Sim 2-Nao\r\n\r\n incentivadorCultural: number = 0;\r\n\r\n status: number = 0;//1-Normal 2-Cancelado\r\n\r\n valorServicos: number = 0;\r\n\r\n valorDeducoes: number = 0;\r\n\r\n issRetido: number = 0; // 1-Sim 2-Nao\r\n\r\n baseCalculo: number = 0;\r\n\r\n valorPis: number = 0;\r\n\r\n valorCofins: number = 0;\r\n\r\n valorInss: number = 0;\r\n\r\n valorIr: number = 0;\r\n\r\n valorCsll: number = 0;\r\n\r\n valorIss: number = 0;\r\n\r\n outrasRetencoes: number = 0;\r\n\r\n aliquotaIssqn: number = 0;\r\n\r\n aliquotaPis: number = 0;\r\n\r\n aliquotaCofins: number = 0;\r\n\r\n aliquotaInss: number = 0;\r\n\r\n aliquotaIr: number = 0;\r\n\r\n aliquotaCsll: number = 0;\r\n\r\n valorLiquidoNfse: number = 0;\r\n\r\n valorIssRetido: number = 0;\r\n\r\n descontoCondicionado: number = 0;\r\n\r\n descontoIncondicionado: number = 0;\r\n\r\n listaServico: string = '';\r\n\r\n codigoTributacao: string = '';\r\n\r\n discriminacao: string = '';\r\n\r\n codArt: string = '';\r\n\r\n codObra: string = '';\r\n\r\n //Código do Serviço no município - São Paulo\r\n cServico: string = '';\r\n\r\n codigoMunicipioIbge: number = 0;\r\n\r\n localPrestacaoMunicipioId : number = 0;\r\n\r\n localPrestacaoUfId: number = 0;\r\n\r\n dataEmissaoNfse: Date = new Date();\r\n\r\n numeroNfse: number = 0;\r\n\r\n codigoVerificacao: string = '';\r\n\r\n cnae: string = '';\r\n\r\n empresaId: number = 0;\r\n\r\n clienteId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n LinkImpressao: string = '';\r\n faturaId: number = 0;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\nimport { Nfse } from './nfse.model';\r\n\r\n@Injectable()\r\nexport class NfseService {\r\n\r\n postVisualizaNfsesPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfse/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getListaServico(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n getListaServicoCadastrados(empresaId): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodascadastradas/' + empresaId, { observe: 'response' })\r\n }\r\n\r\n getRetornoTardio(nfseId): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/processa-retorno-tardio/'+ nfseId, null, { observe: 'response' })\r\n }\r\n\r\n getClientePorNome(nome: any): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl +'/api/nfse/visualizaclientepornome',\r\n { observe: 'response', params }\r\n );\r\n }\r\n\r\n getNfse(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfse/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postNfse(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n postGerarBoletoByNfseId(nfseId: number): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/gerarboleto-by-nfseid/' + nfseId, {}, { observe: 'response' })\r\n }\r\n\r\n putNfse(item: any, itemId: number): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/nfse/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n postProcessaNfse(item: any, itemId: number): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/processa/', item, { observe: 'response' })\r\n };\r\n\r\n postCalculaImposto(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/calculaimposto/', item, { observe: 'response' })\r\n };\r\n\r\n postGeraLinkImpressao(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/imprime/',\r\n item,\r\n { responseType: 'arraybuffer', observe: 'response' } // Recebe arraybuffer, que pode ser tratado como texto ou Blob\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n postCancelar(itemId: number): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/cancela/' + itemId, {}, { observe: 'response' })\r\n };\r\n\r\n postGerarNfseLoteRps(nfses: Nfse[]): Observable> {\r\n console.log(nfses, \"teste\");\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/nfse/processa-lote/', nfses, { observe: 'response' })\r\n }\r\n\r\n getContaParcelFaturaByNfseId(nfseId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfse/contaparcelas-fatura-by-nfseid/' + nfseId, { observe: 'response' })\r\n }\r\n\r\n salvaContaParcelaEFatura(item: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/nfse/salva-contaparcela-fatura/', item, { observe: 'response' })\r\n }\r\n\r\n atualizaContaParcelaToValoresNfse(nfseId: number): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/nfse/atualiza-contaparcela-to-valoresnfse/' + nfseId, {}, { observe: 'response' })\r\n }\r\n\r\n getImpostosRetencaoNfse(nfseId: number) {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/nfse/get-info-nfse-retencao/' + nfseId, { observe: 'response' })\r\n }\r\n\r\n getCnaeByListaServico(listaServico: string): Observable> {\r\n return this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/nfse/cnae/${listaServico}`,\r\n { observe: 'response' }\r\n );\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class HeaderService {\r\n\r\n getBuscaImagemAzure(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/usuario/buscaimagemazure', { observe: 'response' })\r\n }\r\n\r\n getUsuarioModuloFuncionalidades(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/usuario/visualizamodulosefuncionalidades', { observe: 'response' })\r\n }\r\n\r\n getLogo(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/saguiCliente/buscalogo', { observe: 'response' })\r\n }\r\n \r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AppMaterialModule } from '../app-material/app-material.module';\r\nimport { ChartsModule } from 'ng2-charts';\r\n\r\n\r\nimport { HomeComponent } from './home/home.component';\r\n\r\nimport { HomeService } from './shared/home.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppMaterialModule,\r\n ChartsModule\r\n ],\r\n declarations: [\r\n HomeComponent\r\n ],\r\n providers: [\r\n HomeService\r\n ]\r\n})\r\n\r\nexport class HomeModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HomeService } from '../shared/home.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ChartDataSets, ChartOptions, ChartType } from 'chart.js';\r\nimport { Label } from 'ng2-charts';\r\nimport { Total } from '../shared/total.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: 'home.component.html',\r\n styleUrls: ['home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n exibeVenda = false;\r\n exibeCompra = false;\r\n exibeEstoque = false;\r\n exibeFinanceiro = false;\r\n filtro: any = {};\r\n filtroMesAnterior: any = {};\r\n total: Total = new Total();\r\n totalMesAnterior: Total = new Total();\r\n homeForm: FormGroup;\r\n porcentagemVendas: number = 0;\r\n porcentagemVendasFaturamento: number = 0;\r\n porcentagemCompras: number = 0;\r\n porcentagemComprasFaturamento: number = 0;\r\n parcelasPagar: any = [];\r\n parcelasReceber: any = [];\r\n empresas: any = [];\r\n estoques: any = [];\r\n caixas: any = [];\r\n caixaMovimentos: any = [];\r\n filtroReceber: any = {};\r\n filtroPagar: any = {};\r\n\r\n faturamentoMesChartData: ChartDataSets[] = [];\r\n faturamentoMesChartLabels: Label[] = ['Recebido', 'Pago', 'Líquido'];\r\n faturamentoMesChartOptions: ChartOptions = {\r\n responsive: true\r\n };\r\n faturamentoMesChartLegend: boolean = false;\r\n faturamentoMesChartType: ChartType = 'horizontalBar';\r\n\r\n despesasReceitasChartData: ChartDataSets[] = [];\r\n despesasReceitasChartLabels: Label[] = ['Despesas', 'Receitas'];\r\n despesasReceitasChartOptions: ChartOptions = {\r\n responsive: true\r\n };\r\n despesasReceitasChartLegend: boolean = true;\r\n despesasReceitasChartType: ChartType = 'pie';\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private homeService: HomeService,\r\n private _formBuilder: FormBuilder,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n\r\n let urlApp = window.location.hostname;\r\n\r\n \r\n if (urlApp.indexOf('saguiedu') > 0) {\r\n this.router.navigate(['/pedagogico/matriculometro']);\r\n }\r\n\r\n\r\n\r\n this.homeForm = this._formBuilder.group({\r\n empresaId: 0,\r\n });\r\n\r\n this.filtro.empresaId = 0;\r\n\r\n this.onChanges();\r\n\r\n this.carregarEmpresas();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.homeForm\r\n .get('empresaId')\r\n .valueChanges\r\n .subscribe(data => {\r\n if (data > 0) {\r\n\r\n this.filtro.empresaId = data;\r\n this.filtroMesAnterior.empresaId = data;\r\n\r\n this.carregarPermissoes()\r\n };\r\n });\r\n };\r\n\r\n carregarEmpresas() {\r\n\r\n this.homeService.getEmpresa().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n this.homeForm.get('empresaId').setValue(this.empresas[0].empresaId);\r\n\r\n });\r\n\r\n }\r\n\r\n carregarVendas() {\r\n\r\n this.homeService.getVerificarAcessoModulo(1).subscribe(data => {\r\n\r\n this.exibeVenda = true;\r\n\r\n this.homeService.postVendasPorPeriodo(this.filtro).subscribe(data => {\r\n\r\n let vendas = data.body;\r\n\r\n vendas.forEach(venda => {\r\n this.total.vendas = this.total.vendas + venda.total;\r\n this.total.vendasFaturamento = this.total.vendasFaturamento + venda.faturamento;\r\n });\r\n\r\n this.homeService.postVendasPorPeriodo(this.filtroMesAnterior).subscribe(data => {\r\n\r\n let vendasMesAnterior = data.body;\r\n\r\n vendasMesAnterior.forEach(vendaMesAnterior => {\r\n this.totalMesAnterior.vendas = this.totalMesAnterior.vendas + vendaMesAnterior.total;\r\n this.totalMesAnterior.vendasFaturamento = this.totalMesAnterior.vendasFaturamento + vendaMesAnterior.faturamento;\r\n });\r\n\r\n if (this.totalMesAnterior.vendas > 0) {\r\n this.porcentagemVendas = ((this.total.vendas * 100) / this.totalMesAnterior.vendas) - 100;\r\n } else {\r\n this.porcentagemVendas = 0;\r\n }\r\n if (this.totalMesAnterior.vendasFaturamento > 0) {\r\n this.porcentagemVendasFaturamento = ((this.total.vendasFaturamento * 100) / this.totalMesAnterior.vendasFaturamento) - 100;\r\n } else {\r\n this.porcentagemVendasFaturamento = 0;\r\n }\r\n\r\n });\r\n })\r\n });\r\n }\r\n\r\n carregarCompras() {\r\n\r\n this.homeService.getVerificarAcessoModulo(2).subscribe(data => {\r\n\r\n this.exibeCompra = true;\r\n\r\n this.homeService.postComprasPorPeriodo(this.filtro).subscribe(data => {\r\n\r\n let compras = data.body;\r\n\r\n compras.forEach(compra => {\r\n this.total.compras = this.total.compras + compra.total;\r\n this.total.comprasFaturamento = this.total.comprasFaturamento + compra.faturamento;\r\n });\r\n\r\n this.homeService.postComprasPorPeriodo(this.filtroMesAnterior).subscribe(data => {\r\n\r\n let comprasMesAnterior = data.body;\r\n\r\n comprasMesAnterior.forEach(compraMesAnterior => {\r\n this.totalMesAnterior.compras = this.totalMesAnterior.compras + compraMesAnterior.total;\r\n this.totalMesAnterior.comprasFaturamento = this.totalMesAnterior.comprasFaturamento + compraMesAnterior.faturamento;\r\n });\r\n\r\n if (this.totalMesAnterior.compras > 0) {\r\n this.porcentagemCompras = ((this.total.compras * 100) / this.totalMesAnterior.compras) - 100;\r\n } else {\r\n this.porcentagemCompras = 0;\r\n }\r\n if (this.totalMesAnterior.comprasFaturamento > 0) {\r\n this.porcentagemComprasFaturamento = ((this.total.comprasFaturamento * 100) / this.totalMesAnterior.comprasFaturamento) - 100;\r\n } else {\r\n this.porcentagemComprasFaturamento = 0;\r\n }\r\n\r\n });\r\n });\r\n\r\n });\r\n }\r\n\r\n carregarEstoques() {\r\n\r\n this.homeService.getVerificarAcessoModulo(3).subscribe(data => {\r\n\r\n this.exibeEstoque = true;\r\n\r\n this.homeService.getEstoqueMinimo().subscribe(data => {\r\n\r\n this.estoques = data.body;\r\n\r\n });\r\n\r\n });\r\n }\r\n\r\n carregarPermissoes() {\r\n\r\n let date = new Date();\r\n this.filtro.dataInicial = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.filtro.dataFinal = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n\r\n this.filtroMesAnterior.dataInicial = new Date(date.getFullYear(), date.getMonth() - 1, 1);\r\n this.filtroMesAnterior.dataFinal = new Date(date.getFullYear(), date.getMonth(), 0);\r\n\r\n this.total.vendas = 0;\r\n this.total.vendasFaturamento = 0;\r\n this.total.compras = 0;\r\n this.total.comprasFaturamento = 0;\r\n this.total.receberPrevisto = 0;\r\n this.total.recebido = 0;\r\n this.total.aReceber = 0;\r\n this.total.pagarPrevisto = 0;\r\n this.total.pago = 0;\r\n this.total.margemRealizada = 0;\r\n this.total.margemPrevista = 0;\r\n this.totalMesAnterior.vendas = 0;\r\n this.totalMesAnterior.vendasFaturamento = 0;\r\n this.totalMesAnterior.compras = 0;\r\n this.totalMesAnterior.comprasFaturamento = 0;\r\n\r\n this.carregarVendas();\r\n\r\n this.carregarCompras();\r\n\r\n this.carregarEstoques();\r\n\r\n this.carregarFinanceiro();\r\n\r\n }\r\n\r\n buscarContaParcelasReceber(filtro) {\r\n\r\n filtro.tpConta = 0;\r\n\r\n this.homeService.postContaParcelaPorPeriodo(filtro).subscribe(data => {\r\n\r\n this.parcelasReceber = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarContaParcelasPagar(filtro) {\r\n\r\n filtro.tpConta = 1;\r\n\r\n this.homeService.postContaParcelaPorPeriodo(filtro).subscribe(data => {\r\n\r\n this.parcelasPagar = data.body;\r\n\r\n });\r\n }\r\n\r\n carregarFinanceiro() {\r\n\r\n this.homeService.getVerificarAcessoModulo(4).subscribe(data => {\r\n\r\n this.exibeFinanceiro = true;\r\n\r\n //Contas a Receber\r\n this.filtroReceber.aReceber = true;\r\n this.filtroReceber.dataInicial = new Date();\r\n this.filtroReceber.dataFinal = new Date();\r\n this.filtroReceber.empresaId = this.homeForm.value.empresaId;\r\n this.buscarContaParcelasReceber(this.filtroReceber);\r\n\r\n //Contas a Pagar\r\n this.filtroPagar.aReceber = true;\r\n this.filtroPagar.dataInicial = new Date();\r\n this.filtroPagar.dataFinal = new Date();\r\n this.filtroPagar.empresaId = this.homeForm.value.empresaId;\r\n this.buscarContaParcelasPagar(this.filtroPagar);\r\n\r\n //Caixas\r\n this.homeService.getCaixas(this.filtro).subscribe(data => {\r\n this.caixas = data.body;\r\n });\r\n\r\n this.homeService.postContaPorPeriodo(this.filtro).subscribe(data => {\r\n\r\n let parcelasAtual = data.body;\r\n\r\n parcelasAtual.forEach(parcela => {\r\n\r\n this.total.aReceber += parcela.aReceber;\r\n this.total.receberPrevisto += this.total.receberPrevisto + parcela.receberPrevisto;\r\n\r\n this.total.pagarPrevisto += parcela.pagarPrevisto;\r\n\r\n });\r\n\r\n if (this.total.receberPrevisto == 0) {\r\n this.total.margemPrevista = (this.total.receberPrevisto - this.total.pagarPrevisto) * 100;\r\n\r\n } else {\r\n\r\n this.total.margemPrevista = ((this.total.receberPrevisto - this.total.pagarPrevisto) * 100) / this.total.receberPrevisto;\r\n }\r\n\r\n this.homeService.postCaixaMovimentoPorFiltro(this.filtro).subscribe(data => {\r\n\r\n this.caixaMovimentos = data.body;\r\n\r\n this.caixaMovimentos.forEach((parcela: { recebido: number; pago: number; }) => {\r\n\r\n this.total.recebido = this.total.recebido + parcela.recebido;\r\n this.total.pago = this.total.pago + parcela.pago;\r\n\r\n });\r\n\r\n if (this.total.recebido == 0) {\r\n this.total.margemRealizada = (this.total.recebido - this.total.pago) * 100;\r\n\r\n } else {\r\n\r\n this.total.margemRealizada = ((this.total.recebido - this.total.pago) * 100) / this.total.recebido;\r\n }\r\n\r\n this.faturamentoMesChartData = [{\r\n backgroundColor: ['rgb(0, 204, 170)', 'rgb(221, 51, 51)', '#edb32e'],\r\n borderColor: 'rgba(255, 99, 132,0)',\r\n data: [this.total.recebido, this.total.pago, this.total.recebido - this.total.pago]\r\n }];\r\n\r\n let receita: number;\r\n let despesa: number;\r\n if (this.total.recebido != 0) {\r\n receita = 100 - (this.total.pago * 100 / this.total.recebido);\r\n receita = receita >= 0 ? receita : 0;\r\n despesa = (this.total.pago * 100 / this.total.recebido);\r\n } else {\r\n\r\n receita = 0;\r\n despesa = 100;\r\n }\r\n\r\n let despesaDados: number = +despesa.toFixed(2);\r\n let receitaDados: number = +receita.toFixed(2);\r\n\r\n this.despesasReceitasChartData = [{\r\n label: 'Faturamento Total',\r\n backgroundColor: ['rgb(221, 51, 51)', 'rgb(0, 204, 170)'],\r\n borderColor: 'rgba(255, 99, 132,0)',\r\n data: [despesaDados, receitaDados]\r\n //data: [despesa.toFixed(2), receita.toFixed(2)]\r\n }];\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\n","
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Empresa\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      Mês Atual

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n = 0.75 ? 'whitegreen-darkgreen-background report-card' : total.recebido/total.receberPrevisto >= 0.5 ? 'orange-yellow-background report-card' : 'red-orange-background report-card'}}\">\r\n \r\n {{total.recebido | currency}}\r\n \r\n

      Total Recebido

      \r\n Previsão do mês: {{total.receberPrevisto | currency}}\r\n
      \r\n \r\n = total.pago ? 'whitegreen-darkgreen-background report-card' : 'red-orange-background report-card'}}\">\r\n \r\n {{total.pago | currency}} \r\n \r\n

      Total Pago

      \r\n Previsão do mês: {{total.pagarPrevisto | currency}}\r\n
      \r\n \r\n = 10 ? 'whitegreen-darkgreen-background report-card' : total.margemRealizada >= 1 ? 'orange-yellow-background report-card' : 'red-orange-background report-card'}}\">\r\n \r\n {{total.margemRealizada | number: '1.2-2'}} %\r\n \r\n

      Margem de Lucro Líquida

      \r\n Previsão do mês: {{total.margemPrevista | number: '1.2-2'}} %\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n

      Contas a Pagar nesse mês

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{total.pagarPrevisto | currency}}\r\n \r\n

      Total a Pagar Previsto

      \r\n
      \r\n \r\n \r\n \r\n {{total.pago | currency}}\r\n \r\n

      Total Pago

      \r\n
      \r\n \r\n
      \r\n
      \r\n

      Contas a Pagar Hoje

      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      DescriçãoValor
      {{parcelaPagar.descricao}}{{parcelaPagar.valorParcela | currency}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n

      Contas a Receber nesse mês

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{total.receberPrevisto | currency}}\r\n \r\n

      Total a Receber Previsto

      \r\n
      \r\n
      \r\n = 0.75 ? 'whitegreen-darkgreen-background report-card' : total.recebido/total.receberPrevisto >= 0.5 ? 'orange-yellow-background report-card' : 'red-orange-background report-card'}}\">\r\n \r\n {{total.recebido | currency}}\r\n \r\n

      Total Recebido

      \r\n
      \r\n \r\n

      \r\n = 0.75 ? 'whitegreen-darkgreen-background report-card' : total.recebido/total.receberPrevisto >= 0.5 ? 'orange-yellow-background report-card' : 'red-orange-background report-card'}}\">\r\n \r\n {{total.aReceber | currency}}\r\n \r\n

      A Receber ({{((total.aReceber * 100) / (total.recebido + total.aReceber)).toFixed(2)}}% em\r\n aberto)

      \r\n
      \r\n \r\n
      \r\n
      \r\n

      Contas a Receber Hoje

      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      DescriçãoValor
      {{parcelaReceber.descricao}}{{parcelaReceber.valorParcela | currency}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n

      Vendas nesse mês

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{total.vendas}}\r\n \r\n

      Total de Vendas

      \r\n 0 ? 'green' : 'red'}}\">\r\n 0 ? 'fa fa-sort-asc': 'fa fa-sort-desc'}}\">\r\n {{porcentagemVendas | number: '1.2-2'}}% Comparado com o mês anterior\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{total.vendasFaturamento | currency}}\r\n \r\n

      Faturamento

      \r\n 0 ? 'green' : 'red'}}\">\r\n 0 ? 'fa fa-sort-asc': 'fa fa-sort-desc'}}\">\r\n {{porcentagemVendasFaturamento | number: '1.2-2'}}%\r\n Comparado com o mês anterior\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n

      Compras nesse mês

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{total.compras}}\r\n \r\n

      Total de Compras

      \r\n \r\n 0 ? 'green' : 'red'}}\">\r\n 0 ? 'fa fa-sort-asc': 'fa fa-sort-desc'}}\">\r\n {{porcentagemCompras | number: '1.2-2'}}%\r\n Comparado com o mês anterior\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{total.comprasFaturamento | currency}}\r\n \r\n

      Faturamento

      \r\n \r\n 0 ? 'green' : 'red'}}\">\r\n 0 ? 'fa fa-sort-asc': 'fa fa-sort-desc'}}\">\r\n {{porcentagemComprasFaturamento | number: '1.2-2'}}%\r\n Comparado com o mês anterior\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n

      Fluxo de Caixa Atual

      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      CaixaSaldo
      {{caixa.nome}}{{caixa.saldo | currency}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n

      Estoques próximos ao mínimo

      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      EstoqueMínimoQuantidade Atual
      {{estoque.produto.descricao}}{{estoque.minimo}}{{estoque.quantidade}}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      ","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class HomeService {\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/empresa/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n getVerificarAcessoModulo(moduloId: number): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/usuario/verificaacessoaomodulo/' + moduloId, { observe: 'response' })\r\n }\r\n\r\n postVendasPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/vendasporperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postComprasPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/compra/comprasporperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postContaParcelaPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contaparcela/visualizaparcelasporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n postContaPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/conta/contasporperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postCaixaMovimentoPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/caixamovimento/visualizasaldoporfiltro/', item, { observe: 'response' })\r\n } \r\n\r\n getEstoqueMinimo(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/estoque/visualizaminimo', { observe: 'response' })\r\n }\r\n\r\n getCaixas(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/caixa/visualizaporfiltro', item, { observe: 'response' })\r\n }\r\n\r\n importarContasContabeis(dados: any[]): Observable> {\r\n const url = environment.webApiSaguiControlUrl + '/api/ContaContabil/importar';\r\n return this.http.post(url, dados, { observe: 'response' });\r\n }\r\n\r\n importarCategorias(dados: any[]): Observable> {\r\n const url = environment.webApiSaguiControlUrl + '/api/GrupoConta/importar';\r\n return this.http.post(url, dados, { observe: 'response' });\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class Total {\r\n vendas: number = 0;\r\n vendasFaturamento: number = 0;\r\n compras: number = 0;\r\n comprasFaturamento: number = 0;\r\n receberPrevisto: number = 0;\r\n recebido: number = 0;\r\n aReceber: number = 0;\r\n pagarPrevisto: number = 0;\r\n pago: number = 0;\r\n margemRealizada: number = 0;\r\n margemPrevista: number = 0;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AdicionaContratoDocumentoDto } from '../shared/adiciona-contrato-documento-dto.model';\r\nimport { ContratoService } from '../shared/contrato.service';\r\n\r\n\r\nexport interface DialogData {\r\n contratoId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-adiciona-relacao-contrato-dialog',\r\n templateUrl: './adiciona-relacao-contrato-dialog.component.html',\r\n styleUrls: ['./adiciona-relacao-contrato-dialog.component.css']\r\n})\r\nexport class AdicionaRelacaoContratoDialogComponent implements OnInit {\r\n maximizado: boolean;\r\n adicionaContratoDocumentoDtoForm: FormGroup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _formBuilder: FormBuilder,\r\n private contratoSerivce: ContratoService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public IRelacao: DialogData) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.maximizado = false;\r\n this.adicionaContratoDocumentoDtoForm = this._formBuilder.group(new AdicionaContratoDocumentoDto());\r\n this.adicionaContratoDocumentoDtoForm.value.contratoId.setValue(this.IRelacao.contratoId);\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n}\r\n\r\nmaximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n}\r\n\r\nrestaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n}\r\nsalvar(){\r\n this.adicionaContratoDocumentoDtoForm.value.contratoId = this.IRelacao.contratoId;\r\n this.contratoSerivce.adicionaRelacaoContrato(this.adicionaContratoDocumentoDtoForm.value).subscribe(\r\n () => {\r\n this._snackBar.open('Relação adicionada com sucesso!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n this.dialogRef.close();\r\n },\r\n (error) => {\r\n this._snackBar.open('Erro ao adicionar relação!', 'Fechar', {\r\n duration: 2000,\r\n });\r\n }\r\n );\r\n}\r\n\r\n}\r\n","\r\n
      \r\n

      Adicionar relação com Item

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n \r\n Identificação (ID)\r\n \r\n \r\n \r\n Tipo Relação\r\n \r\n Venda\r\n Orçamento\r\n Contrato Anterior\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n","'use strict';\r\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Inject, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from \"rxjs/operators\";\r\nimport { ContratoService } from '../shared/contrato.service';\r\nimport {ContratoFaturaComponent} from '../contrato-fatura/contrato-fatura.component'\r\nimport { DocumentoCadastroComponent } from '../../documento/documento-cadastro/documento-cadastro.component';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { Contrato, TipoFaturamento, MetodoPagamento } from '../shared/contrato.model';\r\nimport { ContratoSignatarioComponent } from '../contrato-signatario/contrato-signatario.component';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AdicionaRelacaoContratoDialogComponent } from '../adiciona-relacao-contrato-dialog/adiciona-relacao-contrato-dialog.component';\r\nimport { DocumentosRelacionadosComponent } from 'src/app/documento/documentos-relacionados/documentos-relacionados.component';\r\nimport { MatTabGroup } from '@angular/material/tabs';\r\nimport { DescontoDialogComponent, DialogData as DescontoDialogData } from '../../core/dialogs/desconto-dialog/desconto-dialog/desconto-dialog.component'\r\nimport { of } from 'rxjs';\r\nimport { EditorHtmlTemplateComponent } from 'src/app/Components/editor-html-template/editor-html-template/editor-html-template.component';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\nimport { ContratoTipoFaturamentoDialogComponent } from '../contrato-tipofaturamento-dialog/contrato-tipofaturamento-dialog.component';\r\nimport { FaturaService } from 'src/app/fatura/shared/fatura.service';\r\nexport interface DialogData {\r\n contratoId: number;\r\n matricula: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'contrato-cadastro',\r\n templateUrl: 'contrato-cadastro.component.html',\r\n})\r\n\r\nexport class ContratoCadastroComponent {\r\n @ViewChild(EditorHtmlTemplateComponent) editorHtmlTemplate: EditorHtmlTemplateComponent;\r\n\r\n\r\n contrato: any = {};\r\n empresa: any = {};\r\n cliente: any = {};\r\n empresas: any = [];\r\n metodosAssinaturaPermitidos: any = [];\r\n templates: any = [];\r\n templateIdTemp: any = 0;\r\n contratos: any = [];\r\n parceiros: any[];\r\n contratoCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n lastSelection: Range | null = null;\r\n dataVencimentoParcela: FormGroup;\r\n valorFoiAlterado: boolean = false;\r\n previousValueForm:any;\r\n tipoFaturamentoOptions = Object.keys(TipoFaturamento)\r\n .filter(key => isNaN(Number(key))) // Filtra apenas as chaves que não são números\r\n .map(key => ({ nome: key, valor: TipoFaturamento[key] }));\r\n formaPagamentoOptions = Object.keys(MetodoPagamento)\r\n .filter(key => isNaN(Number(key))) // Filtra apenas as chaves que não são números\r\n .map(key => ({ nome: key, valor: MetodoPagamento[key] }));\r\n private ignoreNextChange = false;\r\n\r\n\r\n\r\n\r\n\r\n filteredProdutos: any[];\r\n isDataLoaded = false;\r\n contratoTags:any;\r\n\r\n showTags: boolean = false;\r\n @ViewChild('tabGroup') tabGroup: MatTabGroup;\r\n\r\n \r\n\r\n private errorElement: HTMLElement | null = null;\r\n mensagemErro: any;\r\n // Propriedade para controlar a aba ativa\r\n activeTabIndex: number = 0;\r\n\r\n\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IContrato: DialogData,\r\n private utilsService: UtilsService,\r\n private faturaService: FaturaService,\r\n private contratoService: ContratoService, private renderer: Renderer2, private el: ElementRef,private cdr: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n \r\n this.maximizado = false;\r\n\r\n\r\n this.contratoCadastroForm = this._formBuilder.group(new Contrato());\r\n\r\n this.contratoCadastroForm.addControl('parceiroAutoComplete', new FormControl(''));\r\n this.contratoCadastroForm.get('parceiroAutoComplete').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('status').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('contratoEmpresas').setValidators([Validators.required, this.utilsService.minArrayLengthValidator(1)]);\r\n this.contratoCadastroForm.get('contratoItens').setValidators([Validators.required, this.utilsService.minArrayLengthValidator(1)]);\r\n this.contratoCadastroForm.get('parceiroId').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('contratoMetodoAssinatura').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('dataInicio').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('dataFim').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('tipoFaturamento').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('metodoPagamento').setValidators([Validators.required]);\r\n this.contratoCadastroForm.get('diaVencimento').setValidators([Validators.required, Validators.min(1), Validators.max(30)]);\r\n\r\n this.contratoCadastroForm.get('status').updateValueAndValidity();\r\n this.contratoCadastroForm.get('contratoEmpresas').updateValueAndValidity();\r\n this.contratoCadastroForm.get('contratoItens').updateValueAndValidity();\r\n this.contratoCadastroForm.get('parceiroId').updateValueAndValidity();\r\n this.contratoCadastroForm.get('contratoMetodoAssinatura').updateValueAndValidity();\r\n this.contratoCadastroForm.get('dataInicio').updateValueAndValidity();\r\n this.contratoCadastroForm.get('dataFim').updateValueAndValidity();\r\n this.contratoCadastroForm.get('tipoFaturamento').updateValueAndValidity();\r\n this.contratoCadastroForm.get('metodoPagamento').updateValueAndValidity();\r\n this.contratoCadastroForm.get('diaVencimento').updateValueAndValidity();\r\n\r\n\r\n \r\n if(this.contratoCadastroForm.get('contratoMetodoAssinatura').value !== 2){\r\n\r\n this.contratoCadastroForm.get('contratoSignatarios').setValidators([Validators.required, this.utilsService.minArrayLengthValidator(1)]);\r\n this.contratoCadastroForm.get('contratoHtmlTexto').setValidators([Validators.required]);\r\n\r\n this.contratoCadastroForm.get('contratoSignatarios').updateValueAndValidity();\r\n this.contratoCadastroForm.get('contratoHtmlTexto').updateValueAndValidity();\r\n\r\n }\r\n \r\n if (this.IContrato.contratoId > 0) {\r\n\r\n this.buscarContrato(this.IContrato.contratoId);\r\n\r\n } else {\r\n this.contrato = {};\r\n this.contrato.contratoId = 0;\r\n this.isDataLoaded = true;\r\n }\r\n\r\n \r\n\r\n this.buscarEmpresas();\r\n\r\n\r\n\r\n this.getMetodosAssinatura();\r\n\r\n this.onChanges();\r\n\r\n this.dialogRef.disableClose = true;\r\n\r\n // Subscrição ao evento backdropClick\r\n this.dialogRef.backdropClick().subscribe(() => {\r\n this.verificarAlteracoesContrato(true);\r\n });\r\n\r\n //antes de fechar essa dialog, verificar se houve alterações no contratoCadastroForm e se houve, perguntar se deseja salvar. Se a resposta for sim, mas o contrato possuir erros, mantes a dialog aberta\r\n\r\n \r\n }\r\n\r\n getTipoFaturamentoTexto(): string {\r\n const tipoFaturamento = this.contratoCadastroForm.get('tipoFaturamento').value;\r\n return tipoFaturamento !== null ? TipoFaturamento[tipoFaturamento] : '';\r\n }\r\n\r\n goToTab(index: number) {\r\n if (this.tabGroup) {\r\n this.tabGroup.selectedIndex = index;\r\n }}\r\n\r\n ngAfterViewInit(){\r\n\r\n\r\n this.errorElement = this.el.nativeElement.querySelector('.mat-toolbar');\r\n\r\n \r\n }\r\n\r\n\r\n // Método para definir a aba ativa\r\n setActiveTabIndex(event: any) {\r\n this.activeTabIndex = event.index;\r\n if (this.activeTabIndex === 4) {\r\n // Força a detecção de mudanças\r\n this.cdr.detectChanges();\r\n \r\n }\r\n }\r\n\r\n\r\n determinaValidadores(event:any){\r\n\r\n\r\n if(event.value !== 2){\r\n\r\n this.contratoCadastroForm.get('contratoSignatarios').setValidators([Validators.required, this.utilsService.minArrayLengthValidator(1)]);\r\n this.contratoCadastroForm.get('contratoHtmlTexto').setValidators([Validators.required]);\r\n\r\n this.contratoCadastroForm.get('contratoSignatarios').updateValueAndValidity();\r\n this.contratoCadastroForm.get('contratoHtmlTexto').updateValueAndValidity();\r\n\r\n }else{\r\n\r\n this.contratoCadastroForm.get('contratoSignatarios').clearValidators();\r\n this.contratoCadastroForm.get('contratoHtmlTexto').clearValidators();\r\n\r\n this.contratoCadastroForm.get('contratoSignatarios').updateValueAndValidity();\r\n this.contratoCadastroForm.get('contratoHtmlTexto').updateValueAndValidity();\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n onItensChange(itens: any[]) {\r\n //inserir o array de itens no contratoCadastroForm em contratoItens\r\n this.contratoCadastroForm.get('contratoItens').setValue(itens);\r\n }\r\n\r\n onValorTotalBrutoChange(valorTotalBruto: number) {\r\n this.contratoCadastroForm.get('valorTotalBruto').setValue(valorTotalBruto);\r\n }\r\n\r\n onDescontosAplicadosAosItensChange(descontosAplicadosAosItens: number) {\r\n this.contratoCadastroForm.get('descontosAplicadosAosItens').setValue(descontosAplicadosAosItens);\r\n this.contratoCadastroForm.get('somaDeTodosOsDescontos').setValue(descontosAplicadosAosItens + this.contratoCadastroForm.get('descontosAplicadosGlobalmente').value);\r\n }\r\n\r\n onValorTotalLiquidoChange(valorTotalLiquidoItens: number) {\r\n const valorTotalLiquido = valorTotalLiquidoItens - this.contratoCadastroForm.get('descontosAplicadosGlobalmente').value;\r\n this.contratoCadastroForm.get('valorTotalLiquido').setValue(valorTotalLiquido);\r\n }\r\n\r\n\r\n onHtmlFinalChange(html: any) {\r\n this.contratoCadastroForm.get('contratoHtmlTexto').setValue(html);\r\n this.contrato.contratoHtmlTexto = html;\r\n }\r\n\r\n ondocumentosRelacionadosChange(documentosRelacionados: any[]) {\r\n\r\n this.contratoCadastroForm.get('documentos').setValue(documentosRelacionados);\r\n }\r\n\r\n onSignatariosChange(signatarios: any[]) {\r\n \r\n this.contratoCadastroForm.get('contratoSignatarios').setValue(signatarios);\r\n }\r\n\r\n onChanges(): void {\r\n this.contratoCadastroForm.get('templateId').valueChanges\r\n .subscribe(data => {\r\n this.atualizaSignatarios(data);\r\n });\r\n\r\n this.contratoCadastroForm\r\n .get('parceiroAutoComplete').valueChanges\r\n .pipe(\r\n startWith(''),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(value => {\r\n if (value?.length >= 3) {\r\n // Retorna o resultado da API se o comprimento for 3 ou mais caracteres\r\n return this.contratoService.getClientePorNome({id: value, empresasIds: (this.contratoCadastroForm.get('contratoEmpresas').value).map((empresa: any) => empresa.empresaId)}).pipe(\r\n map(response => response.body || [])\r\n );\r\n } else {\r\n // Retorna um array vazio se o comprimento for menor que 3 caracteres\r\n return of([]);\r\n }\r\n })\r\n ).subscribe(data => {\r\n // Atualiza a lista de clientes filtrados\r\n this.parceiros = data;\r\n\r\n });\r\n\r\n\r\n this.contratoCadastroForm.get('tipoFaturamento').valueChanges.subscribe((newValue) => {\r\n if (this.ignoreNextChange) {\r\n this.ignoreNextChange = false;\r\n return;\r\n }\r\n \r\n const oldValue = this.contratoCadastroForm.value.tipoFaturamento;\r\n if (newValue !== oldValue && this.IContrato.contratoId > 0 && this.contratoCadastroForm.value.contratoItens?.length > 0) {\r\n const dialogRef =this.dialog.open(ContratoTipoFaturamentoDialogComponent, {\r\n width: '550px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === 'atualizar') {\r\n this.updateContratoItens(oldValue, newValue);\r\n }\r\n if(result === 'cancelar'){\r\n this.ignoreNextChange = true;\r\n this.contratoCadastroForm.get('tipoFaturamento').setValue(oldValue);\r\n }\r\n if(result ==='apagar'){\r\n this.contrato.contratoItens = [];\r\n this.contratoCadastroForm.get('contratoItens').setValue(this.contrato.contratoItens);\r\n }\r\n });\r\n }\r\n });\r\n\r\n //se contratoEmpresas mudar, chamar this.getContratoTemplates()\r\n this.contratoCadastroForm.get('contratoEmpresas').valueChanges.subscribe((newValue) => {\r\n this.getContratoTemplates();\r\n });\r\n\r\n \r\n\r\n }\r\n\r\n updateContratoItens(oldValue: TipoFaturamento, newValue: TipoFaturamento): void {\r\n const contratoItens = this.contrato.contratoItens;\r\n const conversionRates = {\r\n [TipoFaturamento.Mensal]: 1,\r\n [TipoFaturamento.Anual]: 12,\r\n [TipoFaturamento.Semestral]: 6,\r\n [TipoFaturamento.Trimestral]: 3,\r\n [TipoFaturamento.Quadrimestral]: 4,\r\n [TipoFaturamento.Quinzenal]: 0.5,\r\n [TipoFaturamento.Semanal]: 1 / 4,\r\n [TipoFaturamento.Diario]: 1 / 30\r\n };\r\n\r\n const oldRate = conversionRates[oldValue];\r\n const newRate = conversionRates[newValue];\r\n\r\n const updatedItens = contratoItens.map(item => {\r\n return {\r\n ...item,\r\n valorUnitario: item.valorUnitario * (newRate / oldRate),\r\n descontoUnitario: item.descontoUnitario * (newRate / oldRate),\r\n valorOutrasDespesas: item.valorOutrasDespesas ? item.valorOutrasDespesas * (newRate / oldRate):0,\r\n valorTotalBruto: item.valorTotalBruto * (newRate / oldRate),\r\n valorTotalLiquido: item.valorTotalLiquido * (newRate / oldRate)\r\n };\r\n });\r\n\r\n this.contrato.contratoItens = updatedItens;\r\n this.contratoCadastroForm.get('contratoItens').setValue(updatedItens);\r\n }\r\n\r\n displayFn(cliente): string {\r\n return cliente ? cliente.nomeFantasia : '';\r\n }\r\n\r\n \r\n\r\n buscarEmpresas() {\r\n\r\n this.contratoService.getEmpresa().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n listaEmpresa() {\r\n\r\n if (this.contratoCadastroForm.value && this.contratoCadastroForm.value.contratoEmpresas) {\r\n let selectedEmpresas = this.empresas.filter(empresa =>\r\n this.contratoCadastroForm.value.contratoEmpresas.some(pe => pe.empresaId === empresa.empresaId)\r\n );\r\n\r\n if(selectedEmpresas.length == 0){\r\n selectedEmpresas.push(this.empresas.find(empresa => empresa.empresaId === this.contratoCadastroForm.value.empresaId));\r\n }\r\n this.contratoCadastroForm.get('contratoEmpresas').setValue(selectedEmpresas);\r\n\r\n }\r\n }\r\n\r\n\r\n getMetodosAssinatura() {\r\n\r\n this.contratoService.getMetodosAssinatura().subscribe(data => {\r\n\r\n this.metodosAssinaturaPermitidos = data.body;\r\n\r\n });\r\n }\r\n\r\n getContratoTemplates() {\r\n\r\n //listar todas as empresasIds contidas em contratoCadastroForm(contratoEmpresas)\r\n let empresasIds = (this.contratoCadastroForm.get('contratoEmpresas').value).map((empresa: any) => empresa.empresaId);\r\n\r\n this.contratoService.getContratoTemplatesPorEmpresa(empresasIds).subscribe(data => {\r\n\r\n this.templates = data.body;\r\n\r\n // Aqui o form já tem template id. Chamar atualizaSignatarios para já puxar os padrões do template\r\n this.atualizaSignatarios(this.contratoCadastroForm.get('templateId').value);\r\n if(this.contratoCadastroForm.value.contratoId == 0){\r\n let template = this.templates.find(x => x.contratoTemplatePadrao == true);\r\n this.contratoCadastroForm.get('contratoHtmlTexto').setValue(template.html);\r\n this.contratoCadastroForm.get('templateId').setValue(template.templateId);\r\n }\r\n if(this.IContrato.matricula){\r\n this.IContrato.matricula = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n verificarAlteracoesContrato(fecharModalDepois): Promise {\r\n return new Promise((resolve) => {\r\n if (!this.isFormEqual(this.previousValueForm, this.contratoCadastroForm)) {\r\n const dialogRef2 = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"🔎 Confirmação de Alterações\",\r\n mensagem: \"Você realizou alterações, porém não salvou. Deseja salvar as alterações realizadas nesse contrato?\"\r\n }\r\n });\r\n \r\n dialogRef2.afterClosed().subscribe(async(result) => {\r\n if (result) {\r\n if (!this.contratoCadastroForm.invalid) {\r\n await this.salvar(this.contratoCadastroForm);\r\n \r\n if(fecharModalDepois){\r\n this.dialogRef.close();\r\n }\r\n resolve(true);\r\n } else {\r\n this._snackBar.open('😖 Operação não permitida! \\n\\n Esse contrato possui erros que precisam ser corrigidos antes de salvar.', '✖', {\r\n duration: 15000, panelClass: ['mat-toolbar', 'warn']\r\n });\r\n resolve(false);\r\n }\r\n } else {\r\n this.dialogRef.close();\r\n \r\n resolve(true);\r\n }\r\n });\r\n } else {\r\n if(fecharModalDepois){\r\n this.dialogRef.close();\r\n }\r\n resolve(true);\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n isFormEqual(initialState: any, currentState: any): boolean {\r\n\r\n for (const key of Object.keys(initialState.value)) {\r\n\r\n if(!(JSON.stringify(initialState.value[key]) === JSON.stringify(currentState.value[key]))){\r\n return false;\r\n }\r\n\r\n }\r\n\r\n return true;\r\n }\r\n\r\n fecharDialog() {\r\n this.verificarAlteracoesContrato(true);\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('70%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n adicionaRelacaoContratoDialog() {\r\n const dialogRef = this.dialog.open(AdicionaRelacaoContratoDialogComponent, {\r\n data: {\r\n contratoId: this.contrato.contratoId,\r\n },\r\n height: '60%',\r\n width: '60%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n buscarContrato(contratoId: number) {\r\n\r\n this.contratoService.getContrato(contratoId).subscribe(data => {\r\n\r\n this.InsereDadosContrato(data.body);\r\n })\r\n\r\n }\r\n\r\n openDescontoDialog(): void {\r\n const dialogRef = this.dialog.open(DescontoDialogComponent, {\r\n width: '400px',\r\n data: { valorTotal: this.contratoCadastroForm.get('valorTotalBruto').value - this.contratoCadastroForm.get('descontosAplicadosAosItens').value,\r\n descontosAtual: this.contratoCadastroForm.get('descontosAplicadosGlobalmente').value \r\n \r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n const { descontoEmPorcentagem, descontoEmReais, valorTotalNovo } = result;\r\n this.contratoCadastroForm.get('descontosAplicadosGlobalmente').setValue(descontoEmReais);\r\n this.contratoCadastroForm.get('valorTotalLiquido').setValue(valorTotalNovo);\r\n this.contratoCadastroForm.get('somaDeTodosOsDescontos').setValue(descontoEmReais + this.contratoCadastroForm.get('descontosAplicadosAosItens').value);\r\n }\r\n \r\n });\r\n }\r\n\r\n\r\n InsereDadosContrato(data: any) {\r\n\r\n this.contratoCadastroForm.patchValue(data);\r\n \r\n //chamar this.contratoService.getClientePorNome passando data.nomeParceiro e uma lista de todas os objetos empresas contidas em contratoCadastroForm(contratoEmpresas). Ele vai retornar uma lista de clientes que tem o nome igual ao valor passado, inserir no this.contratoCadastroForm.get('parceiroAutoComplete') o cliente que retornar da lista que tenha o mesmo clienteId de data.parceiroId\r\n this.contratoService.getClientePorNome({id: data.nomeParceiro, empresasIds: (this.contratoCadastroForm.get('contratoEmpresas').value).map((empresa: any) => empresa.empresaId)}).subscribe(data => {\r\n this.contratoCadastroForm.get('parceiroAutoComplete').setValue(data.body[0]);\r\n });\r\n \r\n\r\n this.contrato = data;\r\n this.empresa = data.empresa;\r\n\r\n this.contratos = [];\r\n this.contratos.push(this.contrato);\r\n\r\n if (this.contrato.status == 99) {\r\n this.contratoCadastroForm.disable();\r\n }\r\n\r\n \r\n\r\n setTimeout(() => {\r\n this.listaEmpresa();\r\n this.previousValueForm = this._formBuilder.group(new Contrato());\r\n\r\n this.previousValueForm.patchValue(this.contratoCadastroForm.value);\r\n this.isDataLoaded = true;\r\n }, 500);\r\n\r\n \r\n\r\n \r\n\r\n\r\n }\r\n\r\n DeterminaParceiro(parceiro: any) {\r\n this.contratoCadastroForm.get('parceiroId').setValue(parceiro.clienteId);\r\n this.contratoCadastroForm.get('nomeParceiro').setValue(parceiro.razaoSocial);\r\n }\r\n\r\n\r\n\r\n CancelarContrato(cancelarId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente Cancelar essa contrato?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.contratoService.deleteContrato(cancelarId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Cancelado com Sucesso\");\r\n\r\n this.buscarContrato(cancelarId);\r\n\r\n });\r\n }\r\n });\r\n };\r\n\r\n async salvar(contratoForm): Promise {\r\n var _contrato = this.contrato;\r\n \r\n _contrato.cliente = null;\r\n _contrato.empresa = null;\r\n \r\n let empresasIds = contratoForm.value?.contratoEmpresas?.map(empresa => empresa.empresaId);\r\n \r\n let contratoEmpresas = empresasIds?.map(empresaId => {\r\n return {\r\n ContratoEmpresaId: this.contrato.contratoEmpresas?.find(empresa => empresa.empresaId == empresaId)?.contratoEmpresaId,\r\n ContratoId: this.contrato.contratoId,\r\n EmpresaId: empresaId,\r\n SaguiClienteId: contratoForm.value?.saguiClienteId\r\n }\r\n });\r\n \r\n contratoForm.contratoEmpresas = contratoEmpresas;\r\n \r\n if (_contrato.contratoId == 0) {\r\n await this.contratoService.postContrato(contratoForm.value).toPromise().then(data => {\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n this.buscarContrato(data.body.contratoId);\r\n });\r\n } else {\r\n await this.contratoService.putContrato(contratoForm.value, contratoForm.value.contratoId).toPromise().then(data => {\r\n this._snackBar.open('📝 Contrato Salvo com Sucesso! ', '✖', {\r\n duration: 7000, panelClass: ['mat-toolbar', 'succes']\r\n });\r\n this.InsereDadosContrato(data.body);\r\n });\r\n }\r\n }\r\n\r\n imprimir(): void {\r\n // Atualizando o texto html do contrato do form para ficar igual ao do editor html\r\n this.contratoCadastroForm.get('contratoHtmlTexto').setValue(this.editorHtmlTemplate.editorContent);\r\n this.contratoService.putContrato(this.contratoCadastroForm.value, this.contratoCadastroForm.value.contratoId).subscribe(data => {\r\n this.htmlPrinterService.imprimirConteudoTinyMCE(data.body.contratoHtmlTexto);\r\n });\r\n\r\n \r\n }\r\n\r\n GerarVenda(Contrato: any): void {\r\n\r\n if (this.contrato.contratoItens.length > 0) {\r\n\r\n this.contratoService.postGeraVenda(Contrato.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Venda Gerada\"\r\n }\r\n });\r\n\r\n this.buscarContrato(this.contrato.contratoId);\r\n\r\n });\r\n }\r\n else {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Informação\",\r\n mensagem: \"Para gerar um pedido de venda, você deve adicionar itens ao seu contrato\"\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n AssinarOnline(Contrato: any): void {\r\n\r\n this.contratoService.postAssinarOnline(Contrato.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Contrato enviado para Assinatura Online\"\r\n }\r\n });\r\n\r\n this.buscarContrato(this.contrato.contratoId);\r\n\r\n });\r\n }\r\n\r\n\r\n PreencherTabela(cliente: any) {\r\n\r\n if (cliente != undefined) {\r\n this.contrato.clienteId = cliente.clienteId;\r\n }\r\n }\r\n\r\n\r\n newSelection(event: any) {\r\n const selectedValue = event.value;\r\n let template = this.templates.find(x => x.templateId == selectedValue);\r\n this.contratoCadastroForm.get('contratoHtmlTexto').setValue(template.html);\r\n this.contratoCadastroForm.get('templateId').setValue(selectedValue);\r\n this.contrato.contratoHtmlTexto = template.html;\r\n }\r\n\r\n faturarContrato(contratoId){\r\n\r\n if(this.contrato.contratoItens?.length > 0){\r\n\r\n const fecharModalDepois = false;\r\n \r\n this.verificarAlteracoesContrato(fecharModalDepois).then((result) => {\r\n if (result) {\r\n const dialogRef = this.dialog.open(ContratoFaturaComponent, {\r\n data: {\r\n contrato: this.contrato,\r\n //contrato: this.contratoCadastroForm.value,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result){\r\n this.dialogRef.close();\r\n }\r\n });\r\n } \r\n \r\n \r\n });\r\n \r\n \r\n \r\n }else{\r\n \r\n \r\n this._snackBar.open('😖 Operação não permitida! \\n\\n Esse contrato não possui itens cadastrados! \\nAdicione um item antes de gerar as faturas', '✖', {\r\n duration: 15000, panelClass: ['mat-toolbar', 'warn']\r\n });\r\n \r\n this.mudarParaAba(2);\r\n \r\n }\r\n }\r\n\r\n\r\n\r\n trackByIndex(index: number, obj: any): any {\r\n return index;\r\n}\r\n\r\n criaContratoAPartirDeUmContratoExistente(contratoId) {\r\n\r\n let mensagem = \"Deseja realmente gerar um novo contrato a partir deste? \";\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: mensagem\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n const fecharModalDepois = false;\r\n \r\n this.verificarAlteracoesContrato(fecharModalDepois).then((result) => {\r\n if (result) {\r\n this.contratoService.postCriaContratoAPartirDeUmExistente(contratoId).subscribe(data => {\r\n\r\n let contratoId: number = Number(data);\r\n this.visualizarContrato(contratoId);\r\n \r\n }, (error: HttpErrorResponse) => {\r\n \r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n } \r\n \r\n \r\n });\r\n \r\n \r\n\r\n \r\n }\r\n });\r\n }\r\n\r\n visualizarContrato(contratoId: number) {\r\n const dialogRef = this.dialog.open(ContratoCadastroComponent, {\r\n data: {\r\n contratoId: contratoId,\r\n },\r\n maxHeight: '99vh',\r\n maxWidth: '200vw',\r\n width: '90%',\r\n minWidth: '90%',\r\n minHeight: '99vh'\r\n });\r\n\r\n }\r\n\r\n \r\n\r\n TextoAcao(tipoAcao: number): string {\r\n\r\n return this.contratoService.textoAcao(tipoAcao);\r\n\r\n }\r\n\r\n Download(contratoForm) {\r\n\r\n this.contratoService.PostContratoDownload(contratoForm.value).subscribe(data => {\r\n\r\n window.location.assign(data.body.url);\r\n\r\n });\r\n }\r\n\r\n mudarParaAba(index: number) {\r\n this.tabGroup.selectedIndex = index;\r\n }\r\n\r\n \r\n getProdutoPorNomeEEmpresasService(params: any) {\r\n return this.contratoService.getProdutoPorNomeEEmpresas(params);\r\n }\r\n\r\n getTemplateTagsService(empresas: any) {\r\n\r\n //pegar apenas os ids de empresas\r\n let empresasIds = empresas.map((empresa: any) => empresa.empresaId);\r\n\r\n const params ={\r\n empresasIds: empresasIds,\r\n tipoTemplate: 6\r\n }\r\n return this.contratoService.PostContratoTemplatesTags(params);\r\n }\r\n\r\n postTrocarTagsHtmlService(params: any) {\r\n return this.contratoService.postTrocarTagsContratoHtml(params);\r\n }\r\n\r\n // Função que extrai os objetos 'empresa' de cada 'contratoEmpresas'\r\n geContratotEmpresas(): any[] {\r\n const contratoEmpresasArray = this.contratoCadastroForm.get('contratoEmpresas').value;\r\n return contratoEmpresasArray.map(ce => ce.empresa);\r\n }\r\n\r\n postDocumentoByIdEEmpresas(params: any) {\r\n return this.contratoService.postDocumentoByIdEEmpresas(params);\r\n }\r\n\r\n atualizaSignatarios(data) {\r\n // alterando signatarios\r\n //Recuperando signatarios do template utilizado antes da atualizacao\r\n const oldtemplateId = this.contratoCadastroForm.value.templateId;\r\n\r\n // recupera signatarios padrão anteriores, se não existirem é porque não havia template e atribui lista vazia\r\n let templateSignatariosOld;\r\n if(oldtemplateId){\r\n const templateTempOld = this.templates.find (y => y.templateId == oldtemplateId);\r\n templateSignatariosOld = templateTempOld?.contratoTemplateSignatarios ? templateTempOld?.contratoTemplateSignatarios : [];\r\n }\r\n\r\n // buscando signatarios do template selecionado\r\n const selectedValue = data;\r\n const templateTempCurr = this.templates.find(x => x.templateId == selectedValue);\r\n const templateSignatariosNovo = templateTempCurr?.contratoTemplateSignatarios;\r\n\r\n // vetor para guardar lista de signatarios atualizada\r\n const signatariosAtualizados = []\r\n\r\n if (Array.isArray(templateSignatariosNovo)) {\r\n // signatarios atuais do contrato (inclui do template antigo e os inseridos manualmente)\r\n const signatariosCurr = this.contratoCadastroForm.value.contratoSignatarios;\r\n\r\n //Insere na nova lista apenas os signatarios inseridos manualmente\r\n signatariosCurr.forEach(signatario => {\r\n\r\n if (!templateSignatariosOld.some(item => item.email === signatario.email))\r\n signatariosAtualizados.push(signatario);\r\n });\r\n\r\n // insere em seguida os signatarios do novo template\r\n templateSignatariosNovo.forEach(signatarioNovo => {\r\n signatariosAtualizados.push(signatarioNovo);\r\n });\r\n\r\n // atualiza form\r\n this.contratoCadastroForm.get('contratoSignatarios').setValue(signatariosAtualizados);\r\n }\r\n }\r\n \r\n\r\n}\r\n","\r\n
      \r\n

      Contrato {{contrato.contratoId}} {{contrato.status == 99 ? 'Cancelado' : ''}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
      \r\n\r\n\r\n
      \r\n
      \r\n
      \r\n\r\n\r\n \r\n \r\n
      \r\n
      \r\n \r\n Status\r\n \r\n Em Criação\r\n Pendente de Assinatura\r\n Assinado\r\n Concluído\r\n Cancelado\r\n \r\n \r\n\r\n
      \r\n
      \r\n \r\n Contratada(s)\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n \r\n Contratante\r\n \r\n \r\n \r\n CNPJ/CPF: {{parceiro.cnpj != null ? parceiro.cnpj : parceiro.cpf}} - {{parceiro.nomeFantasia !=\r\n null ? parceiro.nomeFantasia : parceiro.razaoSocial}}\r\n \r\n \r\n\r\n \r\n
      \r\n
      \r\n\r\n
      \r\n \r\n Data da Início da Vigência\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n Data da Fim da Vigência\r\n \r\n \r\n \r\n \r\n\r\n
      \r\n\r\n
      \r\n \r\n Dados Adicionais\r\n \r\n\r\n \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n\r\n
      \r\n

      Resumo Financeiro

      \r\n
      \r\n\r\n \r\n \r\n {{this.contratoCadastroForm.get('valorTotalBruto').value |\r\n currency}}\r\n \r\n
      \r\n

      Valor Bruto

      \r\n Valor sem descontos aplicados\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {{this.contratoCadastroForm.get('somaDeTodosOsDescontos').value | currency}}\r\n
      \r\n add\r\n
      \r\n
      \r\n

      Descontos Totais

      \r\n Desconto dos Itens {{this.contratoCadastroForm.get('descontosAplicadosAosItens').value | currency:'BRL' }} +\r\n Desconto Globais {{this.contratoCadastroForm.get('descontosAplicadosGlobalmente').value | currency:'BRL' }}\r\n \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n \r\n \r\n {{this.contratoCadastroForm.get('valorTotalLiquido').value |\r\n currency}}\r\n \r\n
      \r\n

      Valor Líquido

      \r\n Valor com todos os descontos aplicados\r\n
      \r\n
      \r\n\r\n
      \r\n\r\n
      \r\n\r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Tipo de Faturamento\r\n \r\n \r\n {{ option.nome }}\r\n \r\n \r\n \r\n \r\n Dia de Vencimento\r\n \r\n \r\n \r\n Método de Pagamento\r\n \r\n \r\n {{ option.nome }}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      Itens do Contrato:

      ⚠️ Atenção! O valor de cada item deve refletir o total referente ao período selecionado em \"Tipo de Faturamento\". Período atual selecionado: {{getTipoFaturamentoTexto() | uppercase}}
      \r\n \r\n
      \r\n
      \r\n\r\n
      \r\n \r\n\r\n\r\n\r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n\r\n
      \r\n
      \r\n

      Como o contrato será assinado?

      \r\n \r\n \r\n Método de Assinatura\r\n \r\n \r\n {{metodoAssinaturaPermitido.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n\r\n\r\n \r\n
      \r\n
      \r\n \r\n Template\r\n \r\n \r\n {{ template.descricao }}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n\r\n \r\n\r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n","import { Component, Inject, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators, AbstractControl, FormControl, ValidatorFn, ValidationErrors } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ContratoService } from '../shared/contrato.service';\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatStepper, MatStepperModule } from '@angular/material/stepper';\r\nimport { STEPPER_GLOBAL_OPTIONS, StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FaturaService } from '../../fatura/shared/fatura.service';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TableComponent } from 'src/app/Components/table/table/table.component';\r\nimport * as moment from 'moment';\r\nimport { Fatura } from 'src/app/fatura/shared/fatura.model';\r\nimport { DocumentoRelacionado, TipoDocumento } from 'src/app/Components/documentos-relacionados/shared/documentos-relacionados.model';\r\nimport { Contrato, TipoFaturamento, MetodoPagamento } from '../shared/contrato.model';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\nimport { Router } from '@angular/router';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CalculaParcelasComponent } from 'src/app/Components/parcelas/calcula-parcelas/calcula-parcelas.component';\r\nimport { ItemParcela } from 'src/app/Components/parcelas/shared/item-parcela.model';\r\n\r\n\r\n\r\nexport interface DialogData {\r\n contrato: Contrato;\r\n}\r\n\r\n@Component({\r\n selector: 'contrato-fatura',\r\n templateUrl: 'contrato-fatura.component.html',\r\n providers: [\r\n {\r\n provide: STEPPER_GLOBAL_OPTIONS,\r\n useValue: { displayDefaultIndicatorType: false },\r\n\r\n },\r\n [DatePipe]\r\n ],\r\n styleUrls: ['contrato-fatura.component.css']\r\n\r\n})\r\n\r\nexport class ContratoFaturaComponent {\r\n contrato: any = {};\r\n empresa: any = {};\r\n empresas: any = [];\r\n configuracoesFatura: FormGroup;\r\n maximizado: boolean;\r\n lastSelection: Range | null = null;\r\n dataSource = new MatTableDataSource([]);\r\n itensSelecionados: any = [];\r\n integracaoSOC: boolean = false;\r\n parcelasFiltradas: any[] = [];\r\n totalParcelas: any;\r\n faturaParcelas: any;\r\n contratoParcelasItensSelecionados: any[] = [];\r\n parcelasContrato: any;\r\n valorTotalLiquidoqueSeraFaturadoPorCiclo: any; \r\n quantidadeParcelasContrato: any;\r\n somaTodasParcelasLiquidasDoContrato: any;\r\n intervaloEmDiasEntreAsParcelas: any;\r\n parcelasValidas: boolean = false;\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n\r\n columns = [\r\n { def: 'descricao', header: 'Item' },\r\n { def: 'quantidade', header: 'Quantidade.' },\r\n { def: 'valorTotalLiquido', header: 'Valor Total' }\r\n ];\r\n\r\n @ViewChild(TableComponent) tableComponent: TableComponent;\r\n grupoContas: any;\r\n centroCustos: any;\r\n caixas: any;\r\n faturas = [];\r\n fatura: Fatura = new Fatura();\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IContrato: DialogData,\r\n private utilsService: UtilsService,\r\n private datePipe: DatePipe,\r\n private contratoService: ContratoService, private faturaService: FaturaService, private router: Router) {\r\n\r\n this.contrato = this.IContrato.contrato;\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n\r\n\r\n this.dataSource.data = this.contrato.contratoItens.map(item => {\r\n return {\r\n ...item,\r\n valorTotalLiquido: item.valorTotalLiquido.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })\r\n };\r\n })\r\n\r\n\r\n\r\n this.buscarIntegracaoSOC();\r\n this.maximizado = false;\r\n const dataInicio = new Date(this.contrato.dataInicio);\r\n const dataFim = new Date(this.contrato.dataFim);\r\n\r\n this.configuracoesFatura = this._formBuilder.group({\r\n formArray: this._formBuilder.array([\r\n this._formBuilder.group({\r\n empresaId: ['', Validators.required]\r\n }),\r\n this._formBuilder.group({\r\n itens: this._formBuilder.array([],this.utilsService.minArrayLengthValidator(1)),\r\n }),\r\n this._formBuilder.group({\r\n quaisParcelasFaturar: ['', Validators.required],\r\n dataInicio: [new Date(dataInicio.getFullYear(), dataInicio.getMonth(), 1)],\r\n dataFim: [new Date(dataFim.getFullYear(), dataFim.getMonth() + 1, 0)],\r\n }),\r\n this._formBuilder.group({\r\n parcelas: this._formBuilder.array([],[this.utilsService.minArrayLengthValidator(1)]),\r\n }),\r\n this._formBuilder.group({ comoFaturar: ['', Validators.required] }),\r\n this._formBuilder.group({\r\n grupoContaId: [0],\r\n centroCustoId: [0],\r\n caixaId: [0]}),\r\n this._formBuilder.group({ statusIntegracaoSOC: [\"0\"] })\r\n ])\r\n });\r\n\r\n this.buscarEmpresas();\r\n\r\n\r\n\r\n this.configuracoesFatura.get('formArray').get([2]).get('quaisParcelasFaturar').valueChanges.subscribe(value => {\r\n const dtInicio = this.configuracoesFatura.get('formArray').get([2]).get('dataInicio');\r\n const dtFim = this.configuracoesFatura.get('formArray').get([2]).get('dataFim');\r\n if (value === 'algumas') {\r\n dtInicio.setValidators([Validators.required]);\r\n dtFim.setValidators([Validators.required]);\r\n } else {\r\n dtInicio.clearValidators();\r\n dtFim.clearValidators();\r\n }\r\n dtInicio.updateValueAndValidity();\r\n dtFim.updateValueAndValidity();\r\n });\r\n\r\n this.configuracoesFatura.get('formArray').get([0]).get('empresaId').valueChanges.subscribe(value => {\r\n\r\n this.buscarCentroCustos(value);\r\n\r\n this.buscarGrupoContas(value);\r\n\r\n this.buscarCaixas(value);\r\n\r\n })\r\n\r\n this.configuracoesFatura.get('formArray').get([2]).get('quaisParcelasFaturar').valueChanges.subscribe(value => {\r\n this.definirParcelas();\r\n });\r\n this.configuracoesFatura.get('formArray').get([2]).get('dataInicio').valueChanges.subscribe(value => {\r\n this.definirParcelas();\r\n });\r\n this.configuracoesFatura.get('formArray').get([2]).get('dataFim').valueChanges.subscribe(value => {\r\n this.definirParcelas();\r\n });\r\n\r\n \r\n\r\n }\r\n\r\n\r\n \r\n\r\n getTipoFaturamentoTexto(): string {\r\n const tipoFaturamento = this.contrato.tipoFaturamento;\r\n return tipoFaturamento !== null ? TipoFaturamento[tipoFaturamento] : '';\r\n }\r\n\r\n\r\n // Método que será usado pelo validador customizado\r\n verificaValorParcelas(): boolean {\r\n \r\n //somar o valor de todas as parcelas no formulario\r\n const formArray = this.configuracoesFatura.get('formArray') as FormArray;\r\n const formGroup = formArray.at(3) as FormGroup;\r\n const parcelasArray = formGroup.get('parcelas') as FormArray;\r\n const parcelas = parcelasArray.value;\r\n let soma = 0;\r\n parcelas.forEach(parcela => {\r\n soma += Number(parcela.valorLiquido.toFixed(2));\r\n });\r\n\r\n soma = Number(soma.toFixed(2));\r\n \r\n if(soma === this.somaTodasParcelasLiquidasDoContrato){\r\n this.parcelasValidas = true;\r\n return true;\r\n }\r\n\r\n this.parcelasValidas = false;\r\n //se o step atual for o 3, exibir um snackbar de erro\r\n if(this.stepper.selectedIndex === 3){\r\n\r\n this._snackBar.open('⚠️ A soma total do Contrato no período é de R$ '+this.somaTodasParcelasLiquidasDoContrato.toFixed(2)+'. Entretanto, a soma das parcelas está totalizando R$ '+soma.toFixed(2)+'\\n\\n Sugerimos que corrija o valor das parcelas antes de continuar.', '✖', {\r\n duration: 7000, panelClass: ['mat-toolbar', 'warn']\r\n\r\n });\r\n\r\n }\r\n\r\n return false; \r\n }\r\n\r\n\r\n\r\n onSelectionChange(event: any) {\r\n\r\n this.itensSelecionados = event;\r\n\r\n\r\n // Acessa o formArray do contratoForm\r\n const formArray = this.configuracoesFatura.get('formArray') as FormArray;\r\n\r\n // Acessa o FormGroup na posição 1 do formArray\r\n const formGroup = formArray.at(1) as FormGroup;\r\n\r\n // Acessa o contratoItens FormArray dentro do FormGroup\r\n const itensArray = formGroup.get('itens') as FormArray;\r\n\r\n // Limpa o FormArray existente\r\n itensArray.clear();\r\n\r\n //para cada item selecionado de this.itensSelecionados, buscar o item pelo contratoItemId em this.contrato.contratoItens e salvar no array itensArray\r\n this.itensSelecionados.forEach(item => {\r\n const itemEncontrado = this.contrato.contratoItens.find(i => i.contratoItemId === item.contratoItemId);\r\n itensArray.push(new FormControl(itemEncontrado));\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n salvarFaturas(){\r\n this.faturaService.postFaturas(this.faturas).subscribe(data => {\r\n this._snackBar.open('📑 Fatura(s) criadas com Sucesso! ', '✖', {\r\n duration: 5000, panelClass: ['mat-toolbar', 'succes']\r\n });\r\n\r\n //redirecionar para a tela de faturas\r\n this.router.navigate(['/faturavenda/visualizatodas']);\r\n\r\n\r\n this.dialogRef.close(true);\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n IniciarProcesso(){\r\n\r\n this.fatura.faturaTipo = 0;\r\n this.fatura.faturaTipoDocumento = this.contrato.contratoItens[0].produto.produtoTipo == 0 ? 0 : 1;\r\n this.fatura.empresaId = this.configuracoesFatura.get('formArray').get([0]).get('empresaId').value;\r\n this.fatura.parceiroId = this.contrato.parceiroId;\r\n this.fatura.faturaStatus = 0;\r\n this.fatura.dataCriacao = new Date();\r\n this.fatura.caixaId = this.contrato.caixaId;\r\n this.fatura.contratoId = this.contrato.contratoId\r\n this.fatura.diaVencimento = this.contrato.diaVencimento;\r\n\r\n\r\n\r\n}\r\n\r\nAdicionarItens(){\r\n //somar a quantidade de todos os itens\r\n const quantidadeTotal = this.contrato.contratoItens.reduce((sum, item) => sum + item.quantidade, 0);\r\n const descontoGlobalPorUnidadeDeItem = Number((this.contrato.descontosAplicadosGlobalmente/quantidadeTotal).toFixed(2))\r\n\r\n //soma o valorTotalLiquido de todos os itens do contrato\r\n this.valorTotalLiquidoqueSeraFaturadoPorCiclo = Number((this.configuracoesFatura.get('formArray').get([1]).get('itens').value.reduce((sum, item) => Number(sum.toFixed(2)) + Number(item.valorTotalLiquido.toFixed(2)), 0)).toFixed(2));\r\n\r\n\r\n this.fatura.faturaItens = this.configuracoesFatura.get('formArray').get([1]).get('itens').value.map(item => {\r\n\r\n let novoValorTotal = item.valorTotalLiquido - (descontoGlobalPorUnidadeDeItem*item.quantidade);\r\n let novoDescontoUnitario = item.descontoUnitario + descontoGlobalPorUnidadeDeItem;\r\n\r\n //subtrair novoValorTotal de item.valorBruto e calcular a porcentagem de desconto\r\n let porcentagemDesconto = Number(((item.valorTotalBruto-novoValorTotal) / item.valorTotalBruto).toFixed(2));\r\n\r\n return {\r\n\r\n produtoId: item.produtoId,\r\n codProd: item.codProd,\r\n qtdTributaria: item.quantidade,\r\n qtdComercial: item.quantidade,\r\n vlrTributario: item.valorUnitario,\r\n vlrComercial: item.valorUnitario,\r\n valorUnitario: item.valorUnitario,\r\n valorTotal: novoValorTotal,\r\n valorBruto: item.valorTotalBruto,\r\n valorDesconto: novoDescontoUnitario,\r\n produto: item.produto,\r\n descricao: item.descricao,\r\n extipi: item.produto.extipi,\r\n InfAdProd: item.produto.InfAdProd,\r\n porcentagemQueRepresentaDoTotal: item.valorTotalLiquido/this.valorTotalLiquidoqueSeraFaturadoPorCiclo,\r\n porcentagemDescontoTotal: porcentagemDesconto\r\n\r\n\r\n };\r\n })\r\n\r\n //atualiza o valor do itens com o desconto global\r\n this.valorTotalLiquidoqueSeraFaturadoPorCiclo = this.fatura.faturaItens.reduce((sum, item) => sum + item.valorTotal, 0);\r\n\r\n //formatar para duas casas decimais\r\n this.valorTotalLiquidoqueSeraFaturadoPorCiclo = Number(this.valorTotalLiquidoqueSeraFaturadoPorCiclo.toFixed(2)); \r\n\r\n}\r\n\r\n\r\n// Exemplo de método para ir para um step específico\r\ngoToStep(stepIndex: number): void {\r\n this.stepper.selectedIndex = stepIndex;\r\n}\r\n\r\ndefinirParcelas(){\r\n\r\n let dataInicio = this.contrato.dataInicio;\r\n let dataFim = this.contrato.dataFim;\r\n\r\n if(this.configuracoesFatura.get('formArray').get([2]).get('quaisParcelasFaturar').value === 'algumas'){\r\n\r\n dataInicio = this.configuracoesFatura.get('formArray').get([2]).get('dataInicio').value;\r\n dataFim = this.configuracoesFatura.get('formArray').get([2]).get('dataFim').value;\r\n \r\n }\r\n\r\n //definir quantidade de parcelas ou faturas que serão criadas\r\n this.parcelasContrato = this.definirTotalParcelas(dataInicio, dataFim);\r\n\r\n \r\n if(!(this.quantidadeParcelasContrato > 0)){\r\n this._snackBar.open('😖 Ops, não existem parcelas possíveis no período selecionado para esse contrato! Insira um período de data válido para continuar, ajuste a data de início e término do contrato ou o ciclo de faturamento', '✖', {\r\n duration: 5000, panelClass: ['mat-toolbar', 'warn']\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\ndefinirFinanceiro(){\r\n this.fatura.caixaId = this.configuracoesFatura.get('formArray').get([5]).get('caixaId').value;\r\n this.fatura.grupoContaId = this.configuracoesFatura.get('formArray').get([5]).get('grupoContaId').value;\r\n this.fatura.centroCustoId = this.configuracoesFatura.get('formArray').get([5]).get('centroCustoId').value;\r\n}\r\n\r\n\r\ndefinirTotalParcelas(dataInicio, dataFim):any{\r\n\r\n let parcelas =[];\r\n let intervalo = 1;\r\n let unidade:moment.unitOfTime.DurationConstructor = 'months';\r\n \r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Mensal, obter o resultado em Meses da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Mensal){\r\n \r\n intervalo = 1;\r\n unidade = 'months';\r\n this.intervaloEmDiasEntreAsParcelas = 30;\r\n this.quantidadeParcelasContrato = (moment(dataFim).diff(moment(dataInicio), 'months') / intervalo)+1;\r\n \r\n }\r\n \r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Anual, obter o resultado em Anos da diferença entre o ano de this.contrato.dataFim e o ano de this.contrato.dataInicio\r\n if (this.contrato.tipoFaturamento === TipoFaturamento.Anual) {\r\n \r\n const inicio = new Date(dataInicio);\r\n const fim = new Date(dataFim);\r\n\r\n intervalo = 1;\r\n unidade = 'years';\r\n this.intervaloEmDiasEntreAsParcelas = 364;\r\n this.quantidadeParcelasContrato = fim.getFullYear() - inicio.getFullYear() >0 ? fim.getFullYear() - inicio.getFullYear() : 1;\r\n \r\n }\r\n\r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Semanal, obter o resultado em Semanas da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Semanal){\r\n\r\n intervalo = 1;\r\n unidade = 'weeks';\r\n this.intervaloEmDiasEntreAsParcelas = 6;\r\n this.quantidadeParcelasContrato = moment(dataFim).diff(moment(dataInicio), 'weeks') / intervalo;\r\n\r\n }\r\n \r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Diario, obter o resultado em Dias da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Diario){\r\n\r\n intervalo = 1;\r\n unidade = 'days';\r\n this.intervaloEmDiasEntreAsParcelas = 1;\r\n this.quantidadeParcelasContrato = (moment(dataFim).diff(moment(dataInicio), 'days') / intervalo)+1;\r\n\r\n }\r\n \r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Trimestral, obter o resultado em Bimestres da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Trimestral){\r\n\r\n intervalo = 3;\r\n unidade = 'months';\r\n this.intervaloEmDiasEntreAsParcelas = 90;\r\n this.quantidadeParcelasContrato = moment(dataFim).diff(moment(dataInicio), 'months') / intervalo;\r\n\r\n }\r\n \r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Quadrimestral, obter o resultado em Quadrimestres da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Quadrimestral){\r\n\r\n intervalo = 4;\r\n unidade = 'months';\r\n this.intervaloEmDiasEntreAsParcelas = 122;\r\n this.quantidadeParcelasContrato = moment(dataFim).diff(moment(dataInicio), 'months') / intervalo;\r\n\r\n }\r\n\r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Quinzenal, obter o resultado em Quinzenas da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Quinzenal){\r\n\r\n intervalo = 14;\r\n unidade = 'days';\r\n this.intervaloEmDiasEntreAsParcelas = 14;\r\n this.quantidadeParcelasContrato = moment(dataFim).diff(moment(dataInicio), 'days') / intervalo;\r\n\r\n }\r\n \r\n //se this.contrato.tipoFaturamento === TipoFaturamento.Semestral, obter o resultado em Semestres da diferença entre a this.contrato.dataFim e this.contrato.dataInicio\r\n if(this.contrato.tipoFaturamento === TipoFaturamento.Semestral){\r\n\r\n intervalo = 6;\r\n unidade = 'months';\r\n this.intervaloEmDiasEntreAsParcelas = 183;\r\n this.quantidadeParcelasContrato = moment(dataFim).diff(moment(dataInicio), 'months') / intervalo;\r\n\r\n };\r\n\r\n //Arredondr o valor, pois não existe meia parcela\r\n this.quantidadeParcelasContrato = Math.round(this.quantidadeParcelasContrato);\r\n\r\n parcelas = this.gerarParcelas(intervalo, unidade, dataFim, dataInicio, this.quantidadeParcelasContrato);\r\n\r\n this.somaTodasParcelasLiquidasDoContrato = Number((Math.round(this.quantidadeParcelasContrato)*this.valorTotalLiquidoqueSeraFaturadoPorCiclo).toFixed(2));\r\n return parcelas;\r\n}\r\n\r\ngerarParcelas(intervalo: number, unidade: moment.unitOfTime.DurationConstructor, dataFim, dataInicio, totalParcelas): any {\r\n\r\n let itens = [];\r\n\r\n for (let i = 0; i < totalParcelas; i++) {\r\n \r\n let parcela = new ItemParcela();\r\n\r\n let dataAtual = moment(dataInicio).add(i * intervalo, unidade).toDate();\r\n let dataVencimento = moment(dataAtual).set('date', this.contrato.diaVencimento).toDate();\r\n\r\n //subtração entre dataAtual e DataVencimento\r\n let diferenca = Math.abs(moment(dataVencimento).diff(moment(dataAtual), 'days'));\r\n\r\n //caso seja uma quinzena ou diario\r\n if(intervalo<30 && (unidade === 'days') && diferenca>intervalo-1 ){\r\n\r\n dataVencimento = dataAtual;\r\n\r\n }\r\n \r\n parcela = {\r\n dataVencimento: dataVencimento,\r\n valorLiquido: this.valorTotalLiquidoqueSeraFaturadoPorCiclo,\r\n tipoPagamento: this.contrato.metodoPagamento,\r\n saguiClienteId: this.contrato.saguiClienteId,\r\n parcelaId: i\r\n };\r\n\r\n itens.push(parcela);\r\n\r\n }\r\n\r\n return itens;\r\n}\r\n\r\n\r\n\r\ndefinirListaFaturas(){\r\n\r\n this.faturas = [];\r\n this.fatura.faturaParcelas = [];\r\n\r\n const parcelas = this.configuracoesFatura.get('formArray').get([3]).get('parcelas').value;\r\n const quantidadeParcelas = parcelas.length;\r\n\r\n\r\n \r\n //somar todos os valores de vlrComercial, vlrTributario, valorUnitario, valorTotal, valorBruto e valorDesconto de todos os itens em this.fatura.faturaItens e atualizar os valores de this.fatura.valorTotal, this.fatura.valorBruto, this.fatura.valorLiquido, this.fatura.valorDesconto\r\n // let itensSomaValorTotal = this.fatura.faturaItens.reduce((sum, item) => sum + item.valorTotal, 0);\r\n let itensSomaValorBruto = this.fatura.faturaItens.reduce((sum, item) => sum + item.valorBruto, 0);\r\n // let itensSomaValorDesconto = this.fatura.faturaItens.reduce((sum, item) => sum + item.valorTotal, 0);\r\n \r\n //recalcula descontosGlobais\r\n // let descontosGlobais = this.recalcularDescontosGlobais();\r\n\r\n if(this.configuracoesFatura.get('formArray').get([4]).get('comoFaturar').value == 'separado'){\r\n\r\n //this.parcelas.totalParcelas é a quantidade de faturas que serão criadas com 1 parcela cada\r\n for (let i = 0; i < quantidadeParcelas; i++) {\r\n\r\n let novaFatura = { ...this.fatura };\r\n\r\n novaFatura.faturaParcelas = [{\r\n dataVencimento: parcelas[i].dataVencimentoParcela,\r\n valorParcela: parcelas[i].valorLiquido,\r\n valorBruto: parcelas[i].valorLiquido,\r\n saguiClienteId: this.contrato.saguiClienteId,\r\n faturaParcelaId: 0,\r\n valorDesconto: 0, \r\n valorLiquido: parcelas[i].valorLiquido, \r\n textoAdicional: '',\r\n faturaId: 0 \r\n }];\r\n\r\n novaFatura.numeroParcelas = 1;\r\n novaFatura.valorBruto = parcelas[i].valorLiquido;\r\n novaFatura.valorTotal = parcelas[i].valorLiquido,\r\n novaFatura.valorLiquido = parcelas[i].valorLiquido,\r\n novaFatura.valorDesconto = 0;\r\n novaFatura.descricao = 'ContratoId: ' + this.contrato.contratoId + ' - Fatura referente a parcela de venc. em: ' + this.datePipe.transform(parcelas[i].dataVencimentoParcela, 'dd/MM/yyyy');\r\n\r\n novaFatura = this.ajustarValorItensFatura(novaFatura);\r\n\r\n this.faturas.push(novaFatura);\r\n\r\n\r\n }\r\n }else{\r\n\r\n let novaFatura = { ...this.fatura };\r\n\r\n novaFatura.numeroParcelas = 1;\r\n novaFatura.valorBruto = itensSomaValorBruto*this.quantidadeParcelasContrato;\r\n novaFatura.valorTotal = this.somaTodasParcelasLiquidasDoContrato;\r\n novaFatura.valorLiquido = this.somaTodasParcelasLiquidasDoContrato;\r\n novaFatura.valorDesconto = novaFatura.valorBruto - this.somaTodasParcelasLiquidasDoContrato;\r\n novaFatura.descricao = 'Fatura do ContratoId: ' + this.contrato.contratoId;\r\n \r\n for (let i = 0; i < quantidadeParcelas; i++) {\r\n\r\n novaFatura.faturaParcelas.push({\r\n dataVencimento: parcelas[i].dataVencimentoParcela,\r\n valorParcela: parcelas[i].valorLiquido,\r\n valorBruto: parcelas[i].valorLiquido,\r\n saguiClienteId: this.contrato.saguiClienteId,\r\n faturaParcelaId: 0,\r\n valorDesconto: 0, \r\n valorLiquido: parcelas[i].valorLiquido, \r\n textoAdicional: '',\r\n faturaId: 0 \r\n });\r\n \r\n\r\n }\r\n\r\n this.ajustarValorItensFatura(novaFatura);\r\n\r\n this.faturas.push(novaFatura);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n ajustarValorItensFatura(fatura: any): any {\r\n // Somar o valor de todas as fatura.faturaParcelas\r\n const valorTotalLiquidoParcelas = fatura.faturaParcelas.reduce((sum, parcela) => sum + parcela.valorLiquido, 0);\r\n\r\n fatura.faturaItens = fatura.faturaItens.map(item => {\r\n let novoValorTotal = valorTotalLiquidoParcelas * item.porcentagemQueRepresentaDoTotal;\r\n // Calcular o valor bruto através de item.porcentagemDescontoTotal aplicado ao novo valor total\r\n let novoValorBruto = novoValorTotal / (1 - item.porcentagemDescontoTotal);\r\n\r\n // Arredondar os valores para evitar dízimas\r\n let novoValorUnitario = Number((novoValorBruto / item.qtdComercial).toFixed(2));\r\n let novoDescontoUnitario = Number(((novoValorBruto - novoValorTotal) / item.qtdComercial).toFixed(2));\r\n\r\n // Ajustar os valores para garantir que a soma seja igual ao novoValorTotal\r\n let valorTotalCalculado = (novoValorUnitario - novoDescontoUnitario) * item.qtdComercial;\r\n let diferenca = novoValorTotal - valorTotalCalculado;\r\n\r\n // Ajustar o valor unitário para compensar a diferença\r\n novoValorUnitario += diferenca / item.qtdComercial;\r\n\r\n return {\r\n ...item,\r\n valorTotal: novoValorTotal,\r\n valorBruto: novoValorBruto,\r\n valorDesconto: novoDescontoUnitario,\r\n valorUnitario: Number(novoValorUnitario.toFixed(2)),\r\n vlrTributario: Number(novoValorUnitario.toFixed(2)),\r\n vlrComercial: Number(novoValorUnitario.toFixed(2)),\r\n };\r\n\r\n \r\n });\r\n\r\n // Calcular a soma de todos os itens de faturaItens.valorTotal\r\n const somaValorTotalItens = fatura.faturaItens.reduce((sum, item) => sum + item.valorTotal, 0);\r\n\r\n // Ajustar o valor do último item para compensar a diferença\r\n const diferencaFinal = valorTotalLiquidoParcelas - somaValorTotalItens;\r\n if (diferencaFinal !== 0) {\r\n const ultimoItem = fatura.faturaItens[fatura.faturaItens.length - 1];\r\n ultimoItem.valorTotal += diferencaFinal;\r\n ultimoItem.valorBruto = ultimoItem.valorTotal / (1 - ultimoItem.porcentagemDescontoTotal);\r\n ultimoItem.valorUnitario = Number((ultimoItem.valorBruto / ultimoItem.qtdComercial).toFixed(2));\r\n ultimoItem.valorDesconto = Number(((ultimoItem.valorBruto - ultimoItem.valorTotal) / ultimoItem.qtdComercial).toFixed(2));\r\n ultimoItem.vlrTributario = ultimoItem.valorUnitario;\r\n ultimoItem.vlrComercial = ultimoItem.valorUnitario;\r\n }\r\n\r\n return fatura;\r\n}\r\n\r\n onParcelasFinaisChange(parcelas: any[]) {\r\n\r\n\r\n //salvar as parcelas no formulario this.configuracoesFatura.get('contratoParcelas').get('formArray').get([3]).get('parcelas')\r\n const formArray = this.configuracoesFatura.get('formArray') as FormArray;\r\n const formGroup = formArray.at(3) as FormGroup;\r\n const parcelasArray = formGroup.get('parcelas') as FormArray;\r\n parcelasArray.clear();\r\n parcelas.forEach(parcela => {\r\n parcelasArray.push(new FormControl(parcela));\r\n });\r\n\r\n this.verificaValorParcelas();\r\n\r\n \r\n}\r\n\r\n buscarIntegracaoSOC() {\r\n this.faturaService.getIntegracoesSOC().subscribe(data => {\r\n if (data.body) {\r\n this.integracaoSOC = true;\r\n }\r\n });\r\n }\r\n\r\n buscarGrupoContas(empresaId:any) {\r\n\r\n this.faturaService.getgrupoContas(0, empresaId).subscribe(data => {\r\n\r\n this.grupoContas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarCaixas(empresaId:any) {\r\n\r\n this.faturaService.getCaixas(0, empresaId).subscribe(data => {\r\n\r\n this.caixas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarCentroCustos(empresaId:any) {\r\n\r\n this.faturaService.getCentroCustos(0, empresaId).subscribe(data => {\r\n\r\n this.centroCustos = data.body;\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n buscarEmpresas() {\r\n this.contratoService.getEmpresa().subscribe(data => {\r\n this.empresas = data.body;\r\n if (this.contrato.Empresas > 0) {\r\n this.configuracoesFatura.get('formArray').get([0]).get('empresaId').setValue(this.contrato.ContratoEmpresa[0].empresaId);\r\n } else {\r\n this.configuracoesFatura.get('formArray').get([0]).get('empresaId').setValue(this.contrato.empresaId);\r\n }\r\n });\r\n }\r\n\r\n verificaErro(){\r\n if(!(this.faturaParcelas?.length > 0)){\r\n return true;\r\n }\r\n\r\n return false;\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n } else {\r\n this.dialogRef.updateSize('70%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n getSelectedRows() {\r\n this.itensSelecionados = this.tableComponent.selection.selected;\r\n return this.itensSelecionados;\r\n }\r\n\r\n isItemSelected(): boolean {\r\n if (this.tableComponent && this.tableComponent.selection) {\r\n return this.getSelectedRows().length > 0;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /** Returns a FormArray with the name 'formArray'. */\r\n get formArray(): AbstractControl | null { return this.configuracoesFatura.get('formArray'); }\r\n\r\n onStepChange(event: StepperSelectionEvent): void {\r\n const currentIndex = event.previouslySelectedIndex;\r\n const nextIndex = event.selectedIndex;\r\n\r\n // Função para rodar quando sair de um step\r\n this.onStepExit(currentIndex, nextIndex);\r\n }\r\n\r\n\r\n centroCusto() {\r\n const url = this.router.serializeUrl(this.router.createUrlTree(['/financeiro/centrocusto']));\r\n window.open(url, '_blank');\r\n }\r\n\r\n categoriasFinanceiras() {\r\n const url = this.router.serializeUrl(this.router.createUrlTree(['/financeiro/categoriacontareceber']));\r\n window.open(url, '_blank');\r\n }\r\n\r\n caixaFinanceiro() {\r\n const url = this.router.serializeUrl(this.router.createUrlTree(['/financeiro/fluxocaixa']));\r\n window.open(url, '_blank');\r\n }\r\n\r\n onStepExit(currentIndex: number, nextIndex: number): void {\r\n\r\n if(currentIndex === 0){\r\n this.IniciarProcesso();\r\n }\r\n\r\n if(currentIndex === 1){\r\n this.AdicionarItens();\r\n }\r\n\r\n if(currentIndex === 2){\r\n //esta no valueChanges do formulario do step 1\r\n }\r\n\r\n if(currentIndex === 4){\r\n this.definirFinanceiro();\r\n }\r\n\r\n\r\n if (nextIndex === 6 && this.integracaoSOC) {\r\n this.definirListaFaturas();\r\n }else{\r\n if (nextIndex === 5){\r\n this.definirListaFaturas();\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n
      \r\n

      Faturar Contrato {{contrato.contratoId}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n \r\n \r\n Em qual empresa você deseja Faturar?\r\n
      \r\n
      \r\n \r\n Empresa\r\n \r\n \r\n {{empresa.nomeFantasia}} - CNPJ {{empresa.cnpj}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n \r\n Para quais itens você deseja gerar essa(s) Fatura(s)?\r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n 0 && contrato.contratoItens.length>configuracoesFatura.get('formArray').get([1]).get('itens')?.value?.length && configuracoesFatura.get('formArray').get([1]).get('itens')?.value?.length>0\">⚠️ Atenção! Esse contrato possui Descontos Globais aplicados (R$ {{contrato.descontosAplicadosGlobalmente}}). Ao escolher gerar a fatura apenas para alguns itens, esse desconto será dividido por igual pela quantidade de itens e aplicado ao novo valor da parcela\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n De qual período você deseja gerar a Fatura?\r\n
      \r\n
      \r\n \r\n \r\n
      Gerar a(s) Fatura(s) de toda a vigência do Contrato
      \r\n
      Gerar apenas a(s) Fatura(s) com vencimento\r\n em um determinado período
      \r\n
      \r\n \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Data da Início\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Data da Fim\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n\r\n Valores e Data de Vencimento\r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n Como será o faturamento desse contrato?\r\n\r\n
      \r\n \r\n Ciclo de Faturamento desse Contrato: {{getTipoFaturamentoTexto() | uppercase}}\r\n \r\n \r\n
      \r\n \r\n Para cada ciclo de faturamento gerar sua própria Fatura, Nota Fiscal e Boleto.\r\n info\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Gerar uma única Fatura e Nota Fiscal para o contrato inteiro, mas cada ciclo de faturamento terá seu próprio Boleto.\r\n info\r\n \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n Informações Financeiras\r\n
      \r\n
      \r\n

      Insira as informações necessárias para faturamento

      \r\n
      \r\n
      \r\n \r\n Centro de Custo\r\n \r\n \r\n {{centroCusto.descricao}}\r\n \r\n \r\n ❌ Não existem Centro de Custos cadastrados para a empresa de faturamento selecionada. Clique aqui para visualizar todos os centros de custos disponíveis. \r\n \r\n \r\n \r\n \r\n Categoria\r\n \r\n \r\n {{grupoConta.descricao}}\r\n \r\n \r\n ❌ Não existem Categorias cadastradas para a empresa de faturamento selecionada. Clique aqui para visualizar todos as categorias disponíveis. \r\n \r\n \r\n \r\n \r\n Caixa (Fluxo de Caixa)\r\n \r\n \r\n {{caixa.nome}}\r\n \r\n \r\n ❌ Não existem Caixas cadastrados para a empresa de faturamento selecionada. Clique aqui para visualizar todos os templates disponíveis. \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n \r\n Integração com o SOC\r\n
      \r\n
      \r\n \r\n Status Integração com o SOC\r\n \r\n Desligada\r\n Ligada\r\n Processada\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n \r\n Confirmar\r\n O sistema criará as Faturas abaixo, com suas respectivas Parcelas. Deseja confirmar essa operação?\r\n
      \r\n \r\n \r\n
      \r\n \r\n
      \r\n Fatura #{{ i + 1 }} - Valor Total Líquido: {{ fatura.valorLiquido | currency }}\r\n
      \r\n \r\n \r\n \r\n \r\n local_atm\r\n
      Parcela #{{ y + 1 }}
      \r\n
      Data de Vencimento: {{ parcela.dataVencimento | date }}
      \r\n
      Valor da Parcela: {{ parcela.valorParcela | currency }}
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n
      \r\n \r\n\r\n
      \r\n ","'use strict'\r\nimport { Component, EventEmitter, Inject, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ContratoService } from '../shared/contrato.service';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ContratoSignatario } from '../shared/contrato-signatario.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { debounceTime, distinctUntilChanged, startWith } from 'rxjs/operators';\r\nimport { UtilsService } from 'src/app/core/utils/utils.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-cadastro-signatario',\r\n templateUrl: 'cadastro-signatario.component.html',\r\n styleUrls: ['cadastro-signatario.component.css']\r\n})\r\n\r\nexport class CadastroSignatarioComponent {\r\n\r\n @Input() metodoAssinatura: any;\r\n @Input() contratoSignatariosAnterior:any[]=[];\r\n @Input() panelOpenState: boolean = true;\r\n\r\n @Output() contratoSignatariosNovos = new EventEmitter();\r\n\r\n signatarioForm: FormGroup;\r\n acaoTexto: any = '';\r\n contratosSignatariosFormatado: any[] = [];\r\n signatariosContrato = new MatTableDataSource([]);\r\n contratoSignatarios: any[] = [];\r\n\r\n\r\n optionsAcao = [\r\n { value: 1, viewValue: 'Assinar' },\r\n { value: 2, viewValue: 'Aprovar' },\r\n { value: 3, viewValue: 'Reconhecer' },\r\n { value: 4, viewValue: 'Assinar como parte' },\r\n { value: 5, viewValue: 'Assinar como testemunha' },\r\n { value: 6, viewValue: 'Assinar como interveniente' },\r\n { value: 7, viewValue: 'Acusar recebimento' },\r\n { value: 8, viewValue: 'Assinar como Emissor, Endossante e Avalista' }\r\n ];\r\n\r\n columnsSignatario = [];\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n private contratoService: ContratoService, \r\n private _formBuilder: FormBuilder,\r\n private utilsService: UtilsService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.signatarioForm.get('estrangeiro').setValue(false);\r\n\r\n //se o email for diferente de vazio, inserir o validator de e-mail\r\n this.signatarioForm.get('email').valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged()\r\n ).subscribe(data => {\r\n if(data?.length > 0){\r\n this.signatarioForm.get('email').setValidators(this.utilsService.emailValidator());\r\n }\r\n });\r\n \r\n \r\n this.signatarioForm.get('acao')?.valueChanges.pipe(\r\n startWith(this.signatarioForm.get('acao')?.value)\r\n ).subscribe(value => {\r\n const selectedOption = this.optionsAcao.find(option => option.value === value);\r\n this.acaoTexto = selectedOption ? selectedOption.viewValue : null;\r\n });\r\n\r\n this.signatarioForm.get('acao').setValue(1);\r\n \r\n this.signatarioForm.get('estrangeiro').valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged()\r\n ).subscribe(data => {\r\n if(data!==true){\r\n this.signatarioForm.get('cpf').setValidators([Validators.required, this.utilsService.cpfValidator()]);\r\n \r\n \r\n \r\n \r\n }else{\r\n this.signatarioForm.get('cpf').clearValidators();\r\n \r\n }\r\n \r\n this.signatarioForm.get('cpf').updateValueAndValidity();\r\n });\r\n \r\n \r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.initializeColumns();\r\n\r\n this.signatarioForm= this._formBuilder.group(new ContratoSignatario());\r\n\r\n this.signatarioForm.get('nome').setValidators(Validators.required);\r\n this.signatarioForm.get('acao').setValidators(Validators.required);\r\n this.signatarioForm.get('email').setValidators([Validators.required]);\r\n this.signatarioForm.get('cpf').setValidators([Validators.required, this.utilsService.cpfValidator()]);\r\n\r\n this.signatarioForm.get('email').setValidators(this.utilsService.emailValidator())\r\n this.signatarioForm?.get('acao').updateValueAndValidity();\r\n this.signatarioForm?.get('nome').updateValueAndValidity();\r\n this.signatarioForm?.get('email').updateValueAndValidity();\r\n this.signatarioForm.get('cpf').updateValueAndValidity();\r\n \r\n\r\n \r\n\r\n }\r\n\r\n\r\n initializeColumns() {\r\n this.columnsSignatario = [\r\n { def: 'acao', header: 'Tipo' },\r\n { def: 'nome', header: 'Nome' },\r\n { def: 'email', header: 'email' },\r\n { def: 'acaoTable', header: 'Ações' },\r\n ];\r\n \r\n if (this.metodoAssinatura) {\r\n this.columnsSignatario.unshift({ def: 'assinado', header: 'Assinou' });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n \r\n //Insere o validator de obrigatorio no email apenas se o Método de Assinatura for por email\r\n \r\n if (changes.metodoAssinatura && changes.metodoAssinatura.currentValue!==changes.metodoAssinatura.previousValue) {\r\n if( changes.metodoAssinatura.currentValue !== 2){\r\n this.signatarioForm?.get('email').setValidators(Validators.required);\r\n this.signatarioForm?.get('assinado').disable();\r\n \r\n }else{\r\n this.signatarioForm?.get('email').clearValidators();\r\n this.signatarioForm?.get('assinado').enable();\r\n }\r\n \r\n this.signatarioForm?.get('email').updateValueAndValidity();\r\n this.signatarioForm?.get('assinado').updateValueAndValidity();\r\n }\r\n if(changes.contratoSignatariosAnterior && changes.contratoSignatariosAnterior.currentValue!==changes.contratoSignatariosAnterior.previousValue){\r\n this.contratosSignatariosFormatado = []; \r\n \r\n\r\n //adicionar a propriedade id em todos os itens do array contratoSignatariosAnterior\r\n this.contratoSignatariosAnterior?.forEach((element,index) => {\r\n element.id = element.contratoSignatarioId;\r\n });\r\n\r\n this.contratoSignatarios = this.contratoSignatariosAnterior;\r\n\r\n if(this.contratoSignatariosAnterior?.length>0){\r\n this.contratoSignatariosAnterior.forEach(element => {\r\n this.contratosSignatariosFormatado.push({\r\n nome: element.nome, \r\n email: element.email,\r\n id: element.contratoSignatarioId,\r\n acao: this.optionsAcao[element.acao-1].viewValue,\r\n assinado: element.assinado ? 'Sim' : 'Não'\r\n });\r\n }); \r\n }\r\n this.signatariosContrato.data = this.contratosSignatariosFormatado;\r\n \r\n }\r\n }\r\n\r\n addSignatario() {\r\n\r\n let signatario = this.signatarioForm.value;\r\n signatario.id = this.contratoSignatarios.length || 0;\r\n\r\n signatario.cpf = this.utilsService.removeCaracteresEspeciais(signatario.cpf);\r\n\r\n this.contratoSignatarios.push(this.signatarioForm.value);\r\n this.contratosSignatariosFormatado.push({\r\n nome: this.signatarioForm.get('nome').value, \r\n email: this.signatarioForm.get('email').value,\r\n id: signatario.id,\r\n //retorna o texto do campo Ação do formilário SignatarioForm ao invés do valor\r\n acao: this.acaoTexto,\r\n assinado: this.signatarioForm.get('assinado').value ? 'Sim' : 'Não'\r\n });\r\n \r\n // Atribuição dos valores ao MatTableDataSource\r\n this.signatariosContrato.data = this.contratosSignatariosFormatado;\r\n\r\n //enviar os novos signatários para o componente pai\r\n this.contratoSignatariosNovos.emit(this.contratoSignatarios);\r\n\r\n this.panelOpenState = false;\r\n \r\n //limpar todos os campos do formulario signarioForm após a inserção sem remover as funções onChanges\r\n this.signatarioForm.reset(new ContratoSignatario());\r\n \r\n \r\n \r\n }\r\n\r\n onExcluirSignatario(idToRemove: any): void {\r\n \r\n // Encontrar o índice do item a ser removido\r\n const index = this.contratoSignatarios.findIndex(item => item.id === idToRemove);\r\n \r\n // Remover o item se encontrado\r\n if (index !== -1) {\r\n this.contratoSignatarios.splice(index,1);\r\n this.contratosSignatariosFormatado.splice(index,1);\r\n \r\n \r\n }\r\n \r\n // Atualizar os dados da tabela\r\n this.signatariosContrato.data = this.contratosSignatariosFormatado;\r\n\r\n //enviar os novos signatários para o componente pai\r\n this.contratoSignatariosNovos.emit(this.contratoSignatarios);\r\n \r\n }\r\n\r\n \r\n}\r\n","
      \r\n\r\n \r\n \r\n \r\n Adicionar novos signatários\r\n \r\n \r\n \r\n \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n Signatário Estrangeiro\r\n
      \r\n \r\n Nome Completo\r\n \r\n \r\n \r\n Cpf\r\n \r\n \r\n \r\n \r\n Rg\r\n \r\n
      \r\n
      \r\n \r\n \r\n Email\r\n \r\n\r\n \r\n \r\n Assinar como:\r\n \r\n {{ option.viewValue }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n \r\n \r\n Assinou o Contrato\r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      0\">\r\n \r\n \r\n
      ","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\nexport interface DialogData {\r\n contratoId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-adiciona-relacao-contrato-dialog',\r\n templateUrl: './contrato-tipofaturamento-dialog.component.html'\r\n})\r\nexport class ContratoTipoFaturamentoDialogComponent implements OnInit {\r\n maximizado: boolean;\r\n contratoTipoFaturamento: FormGroup;\r\n\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _formBuilder: FormBuilder,\r\n public dialogRef: MatDialogRef,\r\n private fb: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IRelacao: DialogData) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.maximizado = false;\r\n this.contratoTipoFaturamento = this.fb.group({\r\n proximoPasso: new FormControl('', Validators.required)\r\n });\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close('cancelar');\r\n}\r\n\r\nmaximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n}\r\n\r\nrestaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n}\r\nsalvar(){\r\n this.dialogRef.close(this.contratoTipoFaturamento.get('proximoPasso').value);\r\n}\r\n\r\n}\r\n","\r\n\r\n
      \r\n

      ⚠️ Alteração no Faturamento Detectada!

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n\r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n

      Foram detectadas alterações no tipo de faturamento do contrato. Entretanto, os itens desse contrato já foram cadastrados. Como você gostaria de prosseguir?

      \r\n
      \r\n\r\n
      \r\n \r\n \r\n Não fazer nada\r\n Atualizar os valores dos itens do contrato automaticamente (sugerimos conferência após atualização)\r\n Apagar todos os itens do contrato\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n","export class AdicionaContratoDocumentoDto {\r\n\r\n contratoId: number = 0;\r\n\r\n itemDestinoId: number = 0;\r\n\r\n tipoDocumentoDestino: number = 0;\r\n}\r\n","export class ContratoSignatario {\r\n\r\n contratoSignatarioId: number = 0;\r\n\r\n email: string = '';\r\n\r\n acao: number = 0;\r\n\r\n nome: string = '';\r\n\r\n dataNascimento: Date = new Date();\r\n\r\n cpf: string = '';\r\n\r\n rg: string = '';\r\n\r\n assinado: boolean = false;\r\n\r\n estrangeiro: boolean = false;\r\n\r\n certificadoIcpBr: boolean = false;\r\n\r\n assinarPresencialmente: boolean = false;\r\n\r\n necessarioDocumentoComFoto: boolean = false;\r\n\r\n necessarioDocumentoComSelfie: boolean = false;\r\n\r\n signatariod4SignId: string = '';\r\n\r\n contratoId: number = 0;\r\n}\r\n\r\n\r\n","import { Cliente } from \"src/app/cliente/shared/cliente.model\";\r\nimport { ContratoParcela } from \"./contrato-parcela.model\";\r\nimport { ContratoItem } from \"./contrato-item.model\";\r\nimport { ContratoSignatario } from \"./contrato-signatario.model\";\r\n\r\nexport class Contrato {\r\n\r\n contratoId: number = 0;\r\n\r\n data: Date = new Date();\r\n\r\n contratoHtmlTexto: string = '';\r\n\r\n contratoHtmlByte: string = '';\r\n\r\n tipoContrato: number = 0;\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n d4SignId: string = '';\r\n\r\n status: number = 0;\r\n\r\n contratoMetodoAssinatura: number = 2;\r\n\r\n dataInicio: Date = new Date();\r\n\r\n dataFim: Date = new Date(new Date().getFullYear()+1, new Date().getMonth(), new Date().getDay());\r\n\r\n dadosAdicionais: string = '';\r\n\r\n empresaId: number = 0;\r\n\r\n parceiroId: number = 0;\r\n\r\n nomeParceiro: string = '';\r\n\r\n valorContrato: string = '';\r\n\r\n saguiClienteId: number = 0;\r\n\r\n templateId: number = 0;\r\n\r\n vendaId: number = 0;\r\n\r\n valorTotalBruto: number=0;\r\n\r\n descontosAplicadosAosItens: number=0;\r\n \r\n descontosAplicadosGlobalmente: number=0;\r\n \r\n valorTotalLiquido: number=0;\r\n\r\n somaDeTodosOsDescontos: number=0;\r\n\r\n clienteId: number = 0;\r\n\r\n contratoEmpresas: any[] = []; \r\n\r\n contratoParcelas: ContratoParcela[]=[];\r\n\r\n contratoItens: ContratoItem[] = [];\r\n\r\n contratoSignatarios: ContratoSignatario[] = [];\r\n\r\n documentos: any[] = [];\r\n\r\n tipoFaturamento: TipoFaturamento = TipoFaturamento.Mensal;\r\n\r\n metodoPagamento: MetodoPagamento = MetodoPagamento.Boleto;\r\n\r\n diaVencimento: number = 1;\r\n \r\n}\r\n\r\n\r\nexport enum ContratoStatus\r\n{\r\n EmCriacao = 0,\r\n PendenteAssinatura = 1,\r\n Assinado = 2,\r\n Concluido = 3,\r\n Cancelado = 99\r\n}\r\n\r\n\r\nexport enum TipoFaturamento\r\n{\r\n Mensal,\r\n Anual,\r\n Semestral,\r\n Trimestral,\r\n Quadrimestral,\r\n Quinzenal,\r\n Semanal,\r\n Diario\r\n}\r\n\r\nexport enum MetodoPagamento\r\n{\r\n Dinheiro = 0,\r\n Debito = 1,\r\n Credito = 2,\r\n Boleto = 3,\r\n Transferencia = 4,\r\n Cheque = 5,\r\n ValeRefeicao = 6,\r\n Banco = 7,\r\n PrestacaoConta = 8,\r\n Devolucao = 9,\r\n TransferenciaEntreCaixas = 10,\r\n Pix = 11\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ContratoService {\r\n\r\n postVisualizaContratosPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getTransportadoras(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/transportadoras', { observe: 'response' })\r\n }\r\n\r\n getContrato(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getParceiroePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getParceiroPorNome(parametros: any): Observable> {\r\n \r\n const params = {\r\n id: parametros.id,\r\n \r\n }\r\n\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizaclientepornome/', { observe: 'response', params })\r\n }\r\n\r\n getClientePorNome(parametros: any): Observable> {\r\n \r\n const params = {\r\n id: parametros.id,\r\n empresasIds: parametros.empresasIds\r\n }\r\n\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/buscaclientepornomeeempresas/', params, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizafornecedor/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorNome(nome: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizafornecedorpornome/' + nome, { observe: 'response' })\r\n }\r\n\r\n postContrato(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putContrato(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contrato/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteContrato(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contrato/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getContratoItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contratoitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiContratoItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contratoitem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaContratoItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contratoitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteContratoItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/contratoitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getSignatario(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contratosignatario/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiSignatario(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contratosignatario/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaSignatario(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/contratosignatario/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n\r\n const params = {\r\n idOrigem: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n tipoDestino: parametros.tipoDestino\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/contrato/visualizadocumentopororigemdestino', { observe: 'response', params })\r\n }\r\n\r\n getContratoTemplatesPorEmpresa(empresasIds:any): Observable> {\r\n const params ={\r\n empresasIds: empresasIds\r\n }\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizatemplates/', { observe: 'response', params })\r\n }\r\n\r\n\r\n\r\n PostContratoTemplatesTags(parametros: any): Observable> {\r\n const params = {\r\n empresasIds: parametros.empresasIds,\r\n tipoTemplate: parametros.tipoTemplate\r\n };\r\n \r\n if (window.location.href.includes('saguiedu')) {\r\n return this.http.get(environment.webApiSaguiEduUrl + '/api/template/retornatags/', {\r\n observe: 'response',\r\n params\r\n });\r\n } else {\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/contrato/retornatags/', {\r\n observe: 'response',\r\n params\r\n });\r\n }\r\n }\r\n\r\n\r\n postTrocarTagsContratoHtml(item: any): Observable> {\r\n const headers = new HttpHeaders().set('X-Skip-Loader', 'true');\r\n \r\n if (window.location.href.includes('saguiedu')) {\r\n return this.http.post(environment.webApiSaguiEduUrl + '/api/template/processatemplate/', item, {\r\n headers,\r\n observe: 'response',\r\n responseType: 'text'\r\n });\r\n } else {\r\n return this.http.post(environment.webApiSaguiControlUrl + '/api/contrato/processatemplate/', item, {\r\n headers,\r\n observe: 'response',\r\n responseType: 'text'\r\n });\r\n }\r\n }\r\n\r\n\r\n getMetodosAssinatura(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/visualizametodosassinatura', { observe: 'response' })\r\n }\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/contrato/visualizaprodutopornome', { observe: 'response', params })\r\n }\r\n\r\n getProdutoPorNomeEEmpresas(parametros: any): Observable> {\r\n \r\n const params = {\r\n id: parametros.id,\r\n empresasIds: parametros.empresasIds\r\n }\r\n\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/buscaprodutopornomeeempresas/', params, { observe: 'response' })\r\n }\r\n\r\n postDocumentoByIdEEmpresas(parametros: any): Observable> {\r\n\r\n const params = {\r\n empresasIds: parametros.empresasIds,\r\n idBuscado: parametros.idBuscado, \r\n documentoTipo: parametros.tipoDocumentoDestino,\r\n clienteId: parametros.clienteId\r\n }\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/contrato/buscadocumentoporideempresas/', { observe: 'response', params })}\r\n\r\n\r\n\r\n postGeraVenda(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/incluivenda/', item, { observe: 'response' })\r\n };\r\n\r\n\r\n postAssinarOnline(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/assinaronline/', item, { observe: 'response' })\r\n };\r\n\r\n PostContratoDownload(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/download/', item, { observe: 'response' })\r\n }\r\n\r\n textoAcao(tipoAcao: number): string {\r\n\r\n var textoStatus = \"\";\r\n\r\n switch (tipoAcao) {\r\n case 1:\r\n textoStatus = \" Assinar\";\r\n break;\r\n case 2:\r\n textoStatus = \"Aprovar\";\r\n break;\r\n case 3:\r\n textoStatus = \"Reconhecer\";\r\n break;\r\n case 4:\r\n textoStatus = \"Assinar como parte\";\r\n break;\r\n case 5:\r\n textoStatus = \"Assinar como testemunha\";\r\n break;\r\n case 6:\r\n textoStatus = \"Assinar como interveniente\";\r\n break;\r\n case 7:\r\n textoStatus = \"Acusar recebimento\";\r\n break;\r\n case 8:\r\n textoStatus = \"Assinar como Emissor, Endossante e Avalista\";\r\n break;\r\n default:\r\n textoStatus = \"\";\r\n break;\r\n }\r\n\r\n return textoStatus;\r\n }\r\n\r\n postCriaContratoAPartirDeUmExistente(contratoId: number): Observable> {\r\n return this.http\r\n .post( environment.webApiSaguiControlUrl + '/api/contrato/novo-contrato/' + contratoId,\r\n { observe: 'response' }) as Observable>;\r\n }\r\n\r\n adicionaRelacaoContrato(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/contrato/adiciona-relacao-documento-contrato/', item, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { LogService } from '../shared/log.service';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { Log } from '../shared/log.model';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nexport interface DialogData {\r\n entidadeId: number;\r\n logTipo: number;\r\n}\r\n\r\n@Component({\r\n selector: 'log',\r\n templateUrl: 'log.component.html',\r\n})\r\n\r\nexport class LogComponent {\r\n\r\n maximizado: boolean;\r\n logs: any[];\r\n textoDocumentoTipo: string = '';\r\n log: Log = new Log();\r\n logForm: FormGroup;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private logService: LogService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public ILog: DialogData,\r\n private _formBuilder: FormBuilder) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.logForm = this._formBuilder.group(new Log());\r\n\r\n this.maximizado = false;\r\n\r\n this.visualizaLog();\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n visualizaLog() {\r\n\r\n this.logService.getLogs(this.ILog.entidadeId, this.ILog.logTipo).subscribe(data => {\r\n\r\n this.logs = data.body;\r\n\r\n });\r\n }\r\n\r\n retornaTipoLog(logTipo: number) {\r\n switch (logTipo) {\r\n case 0:\r\n return 'Conta Parcela';\r\n case 1:\r\n return 'Boleto';\r\n case 2:\r\n return 'Compra';\r\n case 3:\r\n return 'CT-e';\r\n case 4:\r\n return 'Encomenda';\r\n }\r\n }\r\n\r\n modalStatusDetalhe(mensagem: string){\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Detalhe\",\r\n mensagem: mensagem\r\n }\r\n \r\n });\r\n \r\n }\r\n}\r\n","\r\n
      \r\n

      Logs

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      DataUsuárioDetalheTipo
      {{log.data | date:'dd/MM/yyyy HH:mm:ss'}}{{log.usuario}}\r\n \r\n {{retornaTipoLog(log.logTipo)}}
      \r\n
      \r\n
      \r\n
      \r\n
      ","export class Log {\r\n\r\n logId: number = 0;\r\n\r\n usuario: string = '';\r\n\r\n textoLog: string = '';\r\n\r\n logTipo: number = 0;\r\n\r\n data: Date = new Date();\r\n\r\n entidadeId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class LogService {\r\n\r\n getLogs(itemId: number, tipoLog: number): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/log/' + itemId + '?logTipo=' + tipoLog, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationResult, EventMessage, EventType } from '@azure/msal-browser';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'login',\r\n templateUrl: 'login.component.html',\r\n styleUrls: ['login.component.css'],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n appLogo: string = '';\r\n appImagemFundo: string = '';\r\n appSagui: string = 'Sagui';\r\n\r\n constructor(\r\n private msalService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let urlApp = window.location.hostname;\r\n\r\n if (urlApp.indexOf('saguilog') > 0) {\r\n this.appLogo = './assets/images/saguilog-logo-login.png';\r\n this.appImagemFundo = './assets/images/saguilog-polygon.jpg';\r\n this.appSagui = 'SaguiLog';\r\n }\r\n else {\r\n \r\n if (urlApp.indexOf('saguiedu') > 0) {\r\n this.appLogo = './assets/images/saguiedu-logo-login.png';\r\n this.appImagemFundo = './assets/images/saguiedu-polygon.jpg';\r\n this.appSagui = 'SaguiEdu';\r\n }\r\n\r\n else {\r\n this.appLogo = './assets/images/saguicontrol-logo-login.png';\r\n this.appImagemFundo = './assets/images/saguicontrol-polygon.jpg';\r\n this.appSagui = 'SaguiControl';\r\n\r\n }\r\n }\r\n\r\n let autenticado = this.msalService.instance.getAllAccounts().length > 0;\r\n\r\n if(autenticado){\r\n\r\n if(this.appSagui == 'SaguiEdu')\r\n {\r\n this.router.navigate(['/pedagogico/matriculometro']);\r\n } else{\r\n this.router.navigate(['/home']);\r\n }\r\n }\r\n\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS),\r\n )\r\n .subscribe((result: EventMessage) => {\r\n\r\n const payload = result.payload as AuthenticationResult;\r\n\r\n if (payload?.account) {\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n this.router.navigate(['/home']);\r\n }\r\n });\r\n\r\n }\r\n\r\n RealizarLogin() {\r\n\r\n let loginRequest = {\r\n scopes: [\"user.read\"]\r\n };\r\n\r\n this.msalService.loginRedirect(loginRequest);\r\n\r\n this.msalService.handleRedirectObservable()\r\n .subscribe({\r\n next: (result) => {\r\n \r\n const account = result.account;\r\n\r\n if(!account){\r\n this.msalService.loginRedirect(loginRequest);\r\n }\r\n else{\r\n this.router.navigate(['/home']);\r\n }\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n });\r\n\r\n }\r\n \r\n}\r\n","
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class MunicipioService {\r\n\r\n getMunicipio(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/municipio/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getMunicipioPorUf(ufId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/municipio/buscaporuf/' + ufId, { observe: 'response' })\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { title } from 'process';\r\n\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.css']\r\n})\r\nexport class NotificationComponent {\r\n showNotifications = false;\r\n notifications = [ ];\r\n\r\n get unreadNotificationsCount() {\r\n const count = this.notifications.filter(notification => !notification.lida).length;\r\n return count > 9 ? '+9' : count;\r\n }\r\n\r\n toggleNotifications() {\r\n this.showNotifications = !this.showNotifications;\r\n }\r\n\r\n marcarComoLida(notification) {\r\n notification.lida = true;\r\n // Atualiza a contagem de notificações não lidas\r\n this.notifications = [...this.notifications]; // Força a atualização da view\r\n }\r\n\r\n marcarTodasComoLida() {\r\n this.notifications.forEach(notification => notification.lida = true);\r\n }\r\n}","
      \r\n notifications\r\n
      0\">{{ unreadNotificationsCount }}
      \r\n
      \r\n
      \r\n Notificações\r\n
      \r\n
      \r\n
      \r\n
      \r\n Nenhuma notificação\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n {{ notification.icon }}\r\n \r\n
      \r\n
      \r\n

      {{ notification.title }}

      \r\n
      \r\n Marcar como Lida\r\n
      \r\n {{ notification.date | date:'short' }}\r\n

      {{ notification.message }}

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      ","import { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { OrdemServico } from '../models/ordem-servico';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrdemServicoService {\r\n private apiUrl: string = '/api/ordemservico';\r\n private baseUrl: string = environment.webApiSaguiControlUrl + this.apiUrl;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n visualizaTodasNaoCompletasCanceladas(): Observable> {\r\n return this.http.get(`${this.baseUrl}`, { observe: 'response' })\r\n }\r\n\r\n postByVendaId(vendaId: number): Observable> {\r\n return this.http.post(`${this.baseUrl}/${vendaId}`, { observe: 'response' })\r\n }\r\n\r\n patchOrdemServico(ordemServico: OrdemServico): Observable> {\r\n return this.http.patch(`${this.baseUrl}`, ordemServico, { observe: 'response' })\r\n }\r\n\r\n checkIfOrdemServicoExistsByVendaId(vendaId: number): Observable> {\r\n return this.http.get(`${this.baseUrl}/venda/${vendaId}`, { observe: 'response' })\r\n }\r\n\r\n getOrdemServicoById(ordemServicoId: number): Observable> {\r\n return this.http.get(`${this.baseUrl}/${ordemServicoId}`, { observe: 'response' })\r\n }\r\n\r\n buscarOrdemServicoByFiltro(filtro: any): Observable> {\r\n return this.http.post(`${this.baseUrl}/filtro`, filtro, { observe: 'response' })\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class PaisService {\r\n\r\n getPaises(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/pais/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ParceiroService {\r\n\r\n postVisualizaPorFiltro(item: any): Observable> {\r\n \r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/parceiro/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class Produto {\r\n\r\n produtoId: number = 0;\r\n\r\n ativo: boolean = true;\r\n\r\n produtoTipo: number = 0;\r\n\r\n codProd: string = '';\r\n\r\n descricao: string = '';\r\n\r\n ncm: string = '';\r\n\r\n ean: string = '';\r\n\r\n eanTrib: string = '';\r\n\r\n unTributaria: string = '';\r\n\r\n vlrTributario: number = 0;\r\n\r\n unComercial: string = '';\r\n\r\n vlrComercial: number = 0;\r\n\r\n orig: number = 0;\r\n\r\n unidadeCompra: string = '';\r\n\r\n valorCompra: number = 0;\r\n\r\n indServico: boolean = true;\r\n\r\n cListServ: string = '';\r\n\r\n servicoDescricao: string = '';\r\n\r\n cServico: string = '';\r\n\r\n servicoDiscriminacaoPadrao: string = '';\r\n\r\n servicoListaId: number = 0;\r\n\r\n contaReceberGrupoContaId: number = 0;\r\n\r\n contaPagarGrupoContaId: number = 0;\r\n\r\n contaReceberCaixaId: number = 0;\r\n\r\n contaPagarCaixaId: number = 0;\r\n\r\n extipi: number = 0;\r\n\r\n codBarras: string = '';\r\n\r\n infAdProd: string = '';\r\n\r\n numeroPatrimonio: string = '';\r\n\r\n cest: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n produtoGrupoId: number = 0;\r\n\r\n embalagemId: number = 0;\r\n\r\n embalagemCapacidade: number = 0;\r\n\r\n servicoLista: any = {};\r\n\r\n empresaId: number = 0;\r\n\r\n recorrencia: number = 0;\r\n\r\n utilizaGetNetPlano: boolean = false;\r\n\r\n getNetPlanId: string = '00000000-0000-0000-0000-000000000000';\r\n\r\n caixaId: number = 0;\r\n\r\n grupoContaId: number = 0;\r\n\r\n pesoLiquido: number = 0;\r\n\r\n pesoBruto: number = 0;\r\n codSoc: string = '';\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormBuilder, FormGroup, RequiredValidator, Validators } from '@angular/forms';\r\nimport { ServicoService } from '../shared/servico.service';\r\nimport { UnidadeMedidaService } from 'src/app/unidade-medida/shared/unidade-medida.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { UnidadeMedida } from 'src/app/unidade-medida/shared/unidade-medida.model';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\nimport { exportExcelService } from '../../core/export-excel/export-excel.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Produto } from 'src/app/produto/shared/produto.model';\r\n\r\n@Component({\r\n selector: 'app-cad-servico',\r\n templateUrl: './produtoeservico-cadastro.component.html',\r\n styleUrls: ['./produtoeservico-cadastro.component.css'],\r\n})\r\nexport class CadServicoComponent implements OnInit {\r\n servicoId: number;\r\n servico: any;\r\n servicos: any = [];\r\n grupoContas: any = [];\r\n produtoGrupos: any = [];\r\n recorrencia: number;\r\n listaServicos: any = [];\r\n empresas: any = [];\r\n filteredEmpresas: any[] = [];\r\n caixas: any = [];\r\n editGeral: FormGroup;\r\n editFinanceiro: FormGroup;\r\n editNfs: FormGroup;\r\n editGetnet: FormGroup;\r\n editSoc: FormGroup;\r\n filtroform: FormGroup;\r\n integracao: boolean;\r\n title: string;\r\n pacoteServico: boolean;\r\n duplicar: boolean = false;\r\n maximizado: boolean;\r\n unidadesMedida: UnidadeMedida[] = [];\r\n comercialFilteredOptions: Observable;\r\n tributariaFilteredOptions: Observable;\r\n compraFilteredOptions: Observable;\r\n dataSource = new MatTableDataSource([]);\r\n dataSourcePacoteServicos = new MatTableDataSource([]);\r\n\r\n constructor(private dialogRef: MatDialogRef,public dialog: MatDialog, private exportExcelService: exportExcelService,private htmlPrinterService: HtmlPrinterService, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, private servicoService: ServicoService, private unidadeMedidaService: UnidadeMedidaService, private _snackBar: MatSnackBar){\r\n this.integracao = data.integracao;\r\n this.title = data.title;\r\n this.servicoId = data.servicoId;\r\n this.pacoteServico = data.pacoteServico;\r\n this.duplicar = data.duplicar;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buscaEmpresas();\r\n this.buscarUnidadesMedida();\r\n this.editGeral = this.fb.group({\r\n pacoteServico: this.pacoteServico,\r\n produtoEmpresa: [[], Validators.required],\r\n duplicar: [false], \r\n produtoId: [0],\r\n produtoTipo: [1],\r\n codProd: ['', Validators.required],\r\n descricao: ['', Validators.required],\r\n ncm: [''],\r\n ean: [''],\r\n eanTrib: [''],\r\n unTributaria: [''],\r\n vlrTributario: [0],\r\n unComercial: [''],\r\n vlrComercial: [0],\r\n orig: [0],\r\n unidadeCompra: [''],\r\n valorCompra: [0],\r\n indServico: [true],\r\n cListServ: [''],\r\n servicoDescricao: [''],\r\n cServico: [''],\r\n servicoDiscriminacaoPadrao: [''],\r\n contaReceberGrupoContaId: [0],\r\n contaPagarGrupoContaId: [0],\r\n contaReceberCaixaId: [0],\r\n contaPagarCaixaId: [0],\r\n extipi: [0],\r\n codBarras: [''],\r\n infAdProd: [''],\r\n numeroPatrimonio: [''],\r\n cest: [0],\r\n saguiClienteId: [0],\r\n produtoGrupoId: [0],\r\n embalagemId: [0],\r\n embalagemCapacidade: [0],\r\n recorrencia: [0],\r\n utilizaGetNetPlano: [false],\r\n grupoContaId: [0],\r\n pesoLiquido: [0],\r\n pesoBruto: [0],\r\n comportamentoPacote: [0]\r\n });\r\n \r\n this.editFinanceiro = this.fb.group({\r\n grupoContaId: [0], \r\n unidadeCompra: [''], \r\n valorCompra:[0], \r\n unComercial: [''], \r\n vlrComercial: [0], \r\n contasareceber: [1]\r\n });\r\n this.editNfs = this.fb.group({ \r\n servicoListaId: [0], \r\n servicoDiscriminacaoPadrao: [''], \r\n caixaId: [0],\r\n contasareceber: [1]\r\n });\r\n this.editGetnet = this.fb.group({\r\n utilizaGetNetPlano: [false], \r\n getNetPlanId: ['00000000-0000-0000-0000-000000000000'],\r\n });\r\n this.editSoc = this.fb.group({ codSoc: [''], tipoSoc: [0]});\r\n\r\n //Apenas se existir um ID do serviço\r\n if (this.servicoId) {\r\n this.recuperaServico(this.servicoId);\r\n }\r\n this.buscarGrupodeServicos(this.editGeral.get('produtoEmpresa').value);\r\n this.buscargrupoContas();\r\n this.buscarListaServico();\r\n this.buscaCaixas();\r\n this.verificaIntegracaoSoc();\r\n }\r\n\r\n onChanges(): void {\r\n this.editNfs.get('servicoListaId').valueChanges.subscribe(data => this.PreencheServico(data));\r\n }\r\n\r\n salvarServico(): void {\r\n if (this.formulariosSaoValidos()) {\r\n const servico = this.criarObjetoServico();\r\n this.servicoId ? this.atualizarServico(servico) : this.criarServico(servico);\r\n } else {\r\n this._snackBar.open('Erro ao criar o serviço! Entre em contato com o suporte.', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n }\r\n }\r\n\r\n formulariosSaoValidos(): boolean {\r\n return (\r\n this.editGeral.valid &&\r\n this.editFinanceiro.valid &&\r\n this.editNfs.valid &&\r\n this.editGetnet.valid &&\r\n this.editSoc.valid\r\n );\r\n }\r\n\r\n criarObjetoServico(): any {\r\n return {\r\n ...this.editGeral.value,\r\n ...this.editFinanceiro.value,\r\n ...this.editNfs.value,\r\n ...this.editGetnet.value,\r\n ...this.editSoc.value\r\n };\r\n }\r\n\r\n atualizarServico(servico: any): void {\r\n if(servico.duplicar === false){\r\n this.servicoService.atualizaServico(servico, this.servicoId).subscribe(\r\n response => this.onSucesso(response, 'atualizado'),\r\n error => this.onErro(error, 'atualizar')\r\n );\r\n }else{\r\n this.servicoService.criaServico(servico).subscribe(\r\n response => this.onSucesso(response, 'criado'),\r\n error => this.onErro(error, 'criar')\r\n );\r\n }\r\n }\r\n\r\n criarServico(servico: any): void {\r\n this.servicoService.criaServico(servico).subscribe(\r\n response => this.onSucesso(response, 'criado'),\r\n error => this.onErro(error, 'criar')\r\n );\r\n }\r\n\r\n onSucesso(response: any, acao: string): void {\r\n this._snackBar.open(`Serviço ${acao} com sucesso!`, 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', acao === 'criado' || 'atualizado' ? 'sucess' : 'warn']\r\n });\r\n this.dialogRef.close(response);\r\n this.buscarServicos(); \r\n }\r\n\r\n onErro(error: any, acao: string): void {\r\n let errorMessage = 'Erro ao ' + acao + ' o serviço.';\r\n \r\n if (error.error && error.error.title) {\r\n errorMessage += ' ' + error;\r\n }\r\n \r\n if (error.error && error.error.errors) {\r\n errorMessage += ' Detalhes do erro:';\r\n for (const key in error.error.errors) {\r\n if (error.error.errors.hasOwnProperty(key)) {\r\n errorMessage += ` ${key}: ${error.error.errors[key]}`;\r\n }\r\n }\r\n }\r\n \r\n errorMessage += ' Erro: ' + error.error;\r\n \r\n this._snackBar.open(errorMessage, 'Fechar', {\r\n duration: 500000000000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n console.error(`Erro ao ${acao} serviço:`, error);\r\n this.buscarServicos();\r\n }\r\n \r\n \r\n\r\n // Recupera os dados do serviço\r\n recuperaServico(servicoId): void {\r\n this.servicoService.recuperaServico(servicoId).subscribe(data => {\r\n this.servico = data.body; \r\n if(this.servico.grupoContaId > 0 || this.servico.grupoContaId !== null){\r\n this.servico.contasareceber = 0;\r\n } else {\r\n this.servico.contasareceber = 1;\r\n }\r\n if(this.duplicar == true){\r\n this.editGeral.patchValue({descricao: this.servico.descricao+'Copia', codProd:this.servico.codProd+'Copia'})\r\n } else {\r\n this.editGeral.patchValue({descricao: this.servico.descricao})\r\n }\r\n this.listaEmpresa();\r\n this.editGeral.patchValue({\r\n duplicar: this.duplicar,\r\n produtoEmpresa: this.filteredEmpresas,\r\n produtoGrupoId: this.servico.produtoGrupoId, \r\n comportamentoPacote: this.servico.comportamentoPacote,\r\n codProd: this.servico.codProd, \r\n recorrencia: this.servico.recorrencia, \r\n pacoteServico: this.servico.pacoteServico,\r\n unTributaria: this.editFinanceiro.value.unComercial,\r\n vlrTributario: this.editFinanceiro.value.vlrComercial,\r\n saguiClienteId: this.servico.saguiClienteId \r\n });\r\n this.editFinanceiro.patchValue({ grupoContaId: this.servico.grupoContaId, unidadeCompra: this.servico.unidadeCompra, valorCompra: this.servico.valorCompra, vlrComercial: this.servico.vlrComercial, unComercial: this.servico.unComercial, contasareceber: this.servico.contasareceber});\r\n this.editNfs.patchValue({ servicoListaId: this.servico.servicoListaId, servicoDiscriminacaoPadrao: this.servico.servicoDiscriminacaoPadrao, contasareceber: this.servico.contasareceber});\r\n this.editGetnet.patchValue({ utilizaGetNetPlano: this.servico.utilizaGetNetPlano, getNetPlanId: this.servico.getNetPlanId, empresaId: this.servico.empresaId});\r\n this.editSoc.patchValue({ codSoc: this.servico.codSoc, tipoSoc: this.servico.tipoSoc});\r\n });\r\n }\r\n //busca os grupos de serviços\r\n buscarGrupodeServicos(item: any) {\r\n this.servicoService.getServicoGrupos(item).subscribe(data => {\r\n this.produtoGrupos = data.body;\r\n });\r\n };\r\n // busca os grupos de contas do tipo Contas a receber (0)\r\n buscargrupoContas() {\r\n this.servicoService.getgrupoContas(0).subscribe(data => {\r\n this.grupoContas = data.body;\r\n });\r\n }\r\n //busca unidades\r\n buscarUnidadesMedida() {\r\n this.unidadeMedidaService.get().subscribe(data => {\r\n this.unidadesMedida = data.body;\r\n });\r\n };\r\n //lista os serviços em Nfs\r\n buscarListaServico() {\r\n this.servicoService.getListaServicos().subscribe(data => {\r\n this.listaServicos = data.body;\r\n });\r\n }\r\n //recupera listas de empresas\r\n buscaEmpresas() {\r\n this.servicoService.getEmpresas().subscribe(data=>{\r\n this.empresas = data.body;\r\n })\r\n }\r\n listaEmpresa(){\r\n this.filteredEmpresas = this.empresas.filter(empresa =>\r\n this.servico.produtoEmpresa.some(pe => pe.empresaId === empresa.empresaId)\r\n );\r\n }\r\n //Recupera as caixas\r\n buscaCaixas() {\r\n this.servicoService.getCaixas().subscribe(data => {\r\n this.caixas = data.body;\r\n });\r\n }\r\n //Formato do serviço 00 - descricao\r\n PreencheServico(servico: any) {\r\n if (servico != null) {\r\n this.editNfs.get('servicoListaId').setValue(servico.servicoListaId);\r\n this.editNfs.get('cListServ').setValue(servico.codigo);\r\n this.editNfs.get('servicoDescricao').setValue(servico.descricao);\r\n }\r\n }\r\n\r\n //Fechar Dialogo\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n //Maximiza Dialogo\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n //Restaura Dialogo\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n //Faz filtro das unidades\r\n private _filter(value: string) {\r\n const filterValue = value;\r\n return this.unidadesMedida.filter(option => option.unidade.includes(filterValue));\r\n }\r\n \r\n //verifica se existe integracao\r\n /* verificaIntegracaoSoc(): void {\r\n const ids = [0, 2, 3, 5, 6];\r\n const promessas = ids.map(id => this.servicoService.buscaIntegracaoSoc(id).toPromise());\r\n \r\n Promise.all(promessas).then(results => {\r\n this.integracao = results.some(resultado => resultado.body);\r\n console.log(this.integracao);\r\n }).catch(error => {\r\n console.error('Erro ao buscar integração do SOC:', error);\r\n });\r\n }*/\r\n\r\n\r\n verificaIntegracaoSoc() {\r\n this.servicoService.getIntegracoesSOC().subscribe(data => {\r\n if (data.body) {\r\n this.integracao = true;\r\n }\r\n });\r\n }\r\n\r\n //busca servicos e separa Serviços de Pacotes de Serviços\r\n buscarServicos(): void {\r\n const filtros = this.filtroform.value;\r\n \r\n this.servicoService.buscaServicos(filtros).subscribe(\r\n (data) => { \r\n this.servicos = data.body;\r\n this.dataSource.data = this.servicos.filter(item => !item.pacoteServico); \r\n this.dataSourcePacoteServicos.data = this.servicos.filter(item => item.pacoteServico == 1);\r\n \r\n this.filtroform.reset();\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.dialog.open(InfoDialogComponent, {\r\n data: { titulo: 'Erro', erro: error.message }\r\n });\r\n }\r\n );\r\n }\r\n}\r\n","\r\n
      \r\n

      {{ data.title }}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n
      \r\n\r\n \r\n \r\n
      \r\n
      \r\n \r\n Empresa\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n \r\n Grupo de Serviços\r\n \r\n \r\n {{produtoGrupo.descricao}}\r\n \r\n \r\n \r\n \r\n Tipo de Recorrência\r\n \r\n Não Recorrente\r\n Mensal\r\n Trimestral\r\n Semestral\r\n Anual\r\n \r\n \r\n \r\n Comportamento\r\n \r\n Dinâmico\r\n \r\n \r\n
      \r\n
      \r\n \r\n Código do Serviço\r\n \r\n \r\n \r\n Nome\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n \r\n Selecionar Manualmente\r\n \r\n \r\n Importar dos serviços do pacote\r\n \r\n \r\n
      \r\n
      \r\n \r\n Categoria a Receber\r\n \r\n \r\n {{ grupoConta.descricao }}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      Tabela de preço padrão

      \r\n
      \r\n

      Compra

      \r\n
      \r\n \r\n Unidade de Compra\r\n \r\n \r\n \r\n {{unidadeMedida.unidade}} - {{unidadeMedida.descricao}}\r\n \r\n \r\n Ex: unidade (un), usuário (us), hora (h), licença, pacote (pcte)\r\n \r\n \r\n Valor para Compra\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n

      Venda

      \r\n
      \r\n \r\n Unidade de venda\r\n \r\n \r\n \r\n {{unidadeMedida.unidade}} - {{unidadeMedida.descricao}}\r\n \r\n \r\n Ex: unidade (un), usuário (us), hora (h), licença, pacote (pcte)\r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Selecionar Manualmente\r\n Importar dos serviços do pacote\r\n \r\n
      \r\n
      \r\n \r\n Código do Serviço/Atividade\r\n \r\n \r\n {{listaServico.codigo + ' - ' + listaServico.descricao}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Discriminação Padrão\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Ativar Pagamento Recorrente (GetNet) \r\n \r\n
      \r\n Um plano da GetNet permite criar assinaturas com faturamento automático. Para utilizar essa funcionalidade a Saguitech precisa configurar o seu ambiente previamente. Se possuir interesse entre em contato com o suporte. Para conhecer sobre o produto da GetNet clique aqui\r\n
      \r\n
      \r\n
      \r\n \r\n Fluxo de Caixa\r\n \r\n \r\n {{caixa.nome}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n A GetNet é atualizada a cada vez que uma tentativa de salvar o Plano ocorre. Se desejar forçar a sincronização simplesmente clique no botão salvar.\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n
      \r\n \r\n Código SOC\r\n \r\n \r\n \r\n Tipo de Serviço SOC\r\n \r\n Exame\r\n Serviço\r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ServicoService } from '../../produtoeservico/shared/servico.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-cad-grupo',\r\n templateUrl: './cad-grupo.component.html',\r\n styleUrls: ['./cad-grupo.component.css'],\r\n})\r\nexport class CadGrupoComponent implements OnInit {\r\n servicoGrupoCadastroForm: FormGroup;\r\n produtoGrupoId: number;\r\n duplicar: boolean;\r\n maximizado: boolean;\r\n empresas: any;\r\n filteredEmpresas: any;\r\n constructor(\r\n private servicoService: ServicoService,\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) {}\r\n ngOnInit(): void {\r\n this.buscaEmpresas();\r\n this.maximizado = false;\r\n this.servicoGrupoCadastroForm = this._formBuilder.group({\r\n produtoGrupoEmpresa: ['', Validators.required],\r\n descricao: ['', Validators.required]\r\n });\r\n if (this.data.produtoGrupoId) {\r\n this.produtoGrupoId = this.data.produtoGrupoId; \r\n this.buscarServicoGrupo(this.produtoGrupoId);\r\n }\r\n this.onChanges();\r\n this.restaurarDialog();\r\n }\r\n onChanges(): void {\r\n \r\n }\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n } else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n salvarGrupoServico(): void {\r\n if (this.servicoGrupoCadastroForm.valid) {\r\n const servico = this.criarObjetoServico();\r\n if (this.produtoGrupoId) {\r\n this.atualizarGrupoServico(servico);\r\n } else {\r\n this.criarNovoGrupoServico(servico);\r\n }\r\n } else {\r\n this._snackBar.open('Por favor, preencha todos os campos obrigatórios.', 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n }\r\n }\r\n criarObjetoServico(): any {\r\n return {\r\n produtoGrupoId: this.produtoGrupoId, \r\n produtoGrupoEmpresa: this.servicoGrupoCadastroForm.get('produtoGrupoEmpresa').value,\r\n descricao: this.servicoGrupoCadastroForm.get('descricao').value,\r\n };\r\n }\r\n atualizarGrupoServico(servico: any): void {\r\n this.servicoService.atualizaGrupoServico(servico, this.produtoGrupoId).subscribe(\r\n response => this.onSucesso(response, 'atualizado'),\r\n error => this.onErro(error, 'atualizar')\r\n );\r\n }\r\n criarNovoGrupoServico(servico: any): void {\r\n this.servicoService.criaGrupoServico(servico).subscribe(\r\n response => this.onSucesso(response, 'criado'),\r\n error => this.onErro(error, 'criar')\r\n );\r\n }\r\n onSucesso(response: any, acao: string): void {\r\n this._snackBar.open(`Grupo de serviço ${acao} com sucesso!`, 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'sucess']\r\n });\r\n this.dialogRef.close(response);\r\n }\r\n\r\n onErro(error: any, acao: string): void {\r\n let errorMessage = `Erro ao ${acao} o grupo de serviço.`;\r\n\r\n if (error.error && error.error.title) {\r\n errorMessage += ` ${error.error.title}`;\r\n }\r\n\r\n if (error.error && error.error.errors) {\r\n errorMessage += ' Detalhes do erro:';\r\n for (const key in error.error.errors) {\r\n if (error.error.errors.hasOwnProperty(key)) {\r\n errorMessage += ` ${key}: ${error.error.errors[key]}`;\r\n }\r\n }\r\n }\r\n this._snackBar.open(errorMessage, 'Fechar', {\r\n duration: 5000,\r\n panelClass: ['mat-toolbar', 'warn']\r\n });\r\n console.error(`Erro ao ${acao} grupo de serviço:`, error);\r\n }\r\n buscarServicoGrupo(servicoGrupoId: number) {\r\n this.servicoService.recuperaGrupoServico(servicoGrupoId).subscribe(\r\n data => {\r\n console.log('Dados recebidos:', data.body);\r\n if (data && data.body) {\r\n this.servicoGrupoCadastroForm.patchValue(data.body);\r\n } else {\r\n console.error('Formato inesperado dos dados recebidos:', data);\r\n }\r\n },\r\n error => {\r\n console.error('Erro ao buscar grupo de serviço:', error);\r\n }\r\n );\r\n }\r\n buscaEmpresas() {\r\n this.servicoService.getEmpresas().subscribe(\r\n data => {\r\n this.empresas = data.body;\r\n },\r\n error => {\r\n console.error('Erro ao recuperar empresas:', error);\r\n }\r\n );\r\n }\r\n}","\r\n
      \r\n

      {{ servicoGrupoCadastroForm.value.descricao }} Grupo de Serviços

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Empresa/Filial\r\n \r\n \r\n {{ empresa.nomeFantasia }}\r\n \r\n \r\n \r\n \r\n Descrição\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      ","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class ServicoService {\r\n\r\n buscaServicos(filtros: any): Observable> {\r\n let params = new HttpParams();\r\n\r\n // Adiciona os filtros aos parâmetros da requisição\r\n Object.keys(filtros).forEach(key => {\r\n if (filtros[key] !== null && filtros[key] !== '') {\r\n params = params.append(key, filtros[key]);\r\n }\r\n });\r\n\r\n // Realiza a requisição GET com os parâmetros\r\n return this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/servicos/buscaServicos`,\r\n { params, observe: 'response' }\r\n );\r\n }\r\n criaServico(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/servicos/servico/', item, { observe: 'response' })\r\n };\r\n\r\n atualizaServico(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/servicos/atualiza/servico/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n recuperaServico(itemId: any): Observable> {\r\n return new Observable((observer) => {\r\n setTimeout(() => {\r\n this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/servicos/recuperaservico/${itemId}`,\r\n { observe: 'response' }\r\n ).subscribe(\r\n response => {\r\n observer.next(response);\r\n observer.complete();\r\n },\r\n error => observer.error(error)\r\n );\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n removeServico(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/Servicos/removeServico/' + itemId, { observe: 'response' })\r\n }\r\n\r\n buscaGrupoServico(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicos/grupos/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getEmpresas(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicos/empresas', { observe: 'response' })\r\n }\r\n\r\n getgrupoContas(tpFatura: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicos/visualizatodosgruposconta/' + tpFatura, { observe: 'response' })\r\n }\r\n\r\n getServicoGrupos(filtros: any): Observable> {\r\n let params = new HttpParams();\r\n\r\n // Adiciona os filtros aos parâmetros da requisição\r\n Object.keys(filtros).forEach(key => {\r\n if (filtros[key] !== null && filtros[key] !== '') {\r\n params = params.append(key, filtros[key]);\r\n }\r\n });\r\n\r\n // Realiza a requisição GET com os parâmetros\r\n return this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/servicos/grupos`,\r\n { params, observe: 'response' }\r\n );\r\n }\r\n\r\n\r\n getListaServicos(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n getCaixas(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicos/visualizatodoscaixas', { observe: 'response' })\r\n }\r\n\r\n buscaIntegracaoSoc(itemId: any): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servico/verifica-integracoes/' +itemId, {observe: 'response'})\r\n }\r\n\r\n getIntegracoesSOC(): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servico/verifica-integracoes-soc/', {observe: 'response'})\r\n }\r\n\r\n buscaGrupoServicos(): Observable>{\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicos/grupos-servico', {observe: 'response'})\r\n }\r\n\r\n recuperaGrupoServico(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicos/grupo-servico/' + itemId, { observe: 'response' })\r\n }\r\n\r\n criaGrupoServico(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/servicos/grupo-servico/', item, { observe: 'response' })\r\n };\r\n atualizaGrupoServico(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/servicos/grupo-servico/' + itemId, item, { observe: 'response' })\r\n };\r\n removeGrupo(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/Servicos/grupo-servico/' + itemId, { observe: 'response' })\r\n }\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, startWith, switchMap } from \"rxjs/operators\";\r\n\r\nimport { RemessaService } from '../shared/remessa.service';\r\n\r\nimport { EmbalagemCadastroComponent } from '../../embalagem/embalagem-cadastro/embalagem-cadastro.component';\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Remessa } from '../shared/remessa.model';\r\nimport { Transportadora } from '../../transportadora/shared/transportadora.model';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n remessaId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'remessa-cadastro',\r\n templateUrl: 'remessa-cadastro.component.html',\r\n})\r\n\r\nexport class RemessaCadastroComponent {\r\n\r\n remessa: any = {};\r\n empresa: any = {};\r\n cliente: any = {};\r\n transportadora: any = {};\r\n localEntrega: any = {};\r\n empresas: any = [];\r\n remessas: any = [];\r\n clientes: any = [];\r\n transportadoras: Transportadora[];\r\n fornecedores: any[];\r\n locaisEntrega: any[];\r\n remessaCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n atualizandoRemessa: boolean = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IRemessa: DialogData,\r\n private remessaService: RemessaService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.buscarEmpresas();\r\n \r\n this.buscarTransportadoras();\r\n\r\n this.remessaCadastroForm = this._formBuilder.group(new Remessa());\r\n\r\n this.remessaCadastroForm.addControl('localRetiradaAutoComplete', new FormControl(''));\r\n\r\n this.remessaCadastroForm.addControl('localEntregaAutoComplete', new FormControl(''));\r\n\r\n this.remessaCadastroForm.addControl('clienteAutoComplete', new FormControl(''));\r\n\r\n if (this.IRemessa.remessaId > 0) {\r\n\r\n this.buscarRemessa(this.IRemessa.remessaId);\r\n\r\n } else {\r\n this.remessa = {};\r\n this.remessa.dataRemessa = new Date();\r\n this.remessa.dataPrevista = new Date();\r\n this.onChanges();\r\n }\r\n\r\n this.restaurarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n this.remessaCadastroForm\r\n .get('clienteAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 && !this.atualizandoRemessa ?\r\n this.remessaService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.clientes = data.body\r\n );\r\n\r\n this.remessaCadastroForm\r\n .get('localEntregaAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 && !this.atualizandoRemessa ?\r\n this.remessaService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.locaisEntrega = data.body\r\n );\r\n }\r\n\r\n buscarEmpresas() {\r\n\r\n this.remessaService.getEmpresa().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n buscarTransportadoras() {\r\n\r\n this.remessaService.getTransportadoras().subscribe(data => {\r\n\r\n this.transportadoras = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarRemessa(remessaId: number) {\r\n\r\n this.atualizandoRemessa = true;\r\n\r\n this.remessaService.getRemessa(remessaId).subscribe(data => {\r\n\r\n this.InsereDadosRemessa(data.body);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n this.atualizandoRemessa = false;\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n InsereDadosRemessa(data: any) {\r\n\r\n this.remessaCadastroForm.patchValue(data);\r\n\r\n this.cliente = data.cliente;\r\n this.empresa = data.empresa;\r\n this.remessa = data;\r\n\r\n this.remessaCadastroForm.get('clienteAutoComplete').setValue(this.cliente.nomeFantasia);\r\n\r\n const promiselocalEntrega = new Promise((resolve, reject) => {\r\n\r\n if (this.remessa.idlocalEntrega > 0) {\r\n\r\n this.remessaService.getClientePorId(this.remessa.idlocalEntrega).subscribe(data => {\r\n\r\n this.localEntrega = data.body;\r\n this.remessaCadastroForm.get('localEntregaAutoComplete').setValue(this.localEntrega.nomeFantasia); \r\n \r\n resolve();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n resolve();\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n\r\n Promise.all([promiselocalEntrega]).then(values => {\r\n\r\n let modalidadeFrete = \"\";\r\n\r\n switch (this.remessa.modFrete) {\r\n case 0:\r\n modalidadeFrete = \"Contratação do frete por conta do remetente(CIF)\";\r\n break;\r\n case 1:\r\n modalidadeFrete = \"Contratação do frete por conta do destinatário(FOB)\";\r\n break;\r\n case 2:\r\n modalidadeFrete = \"Transporte próprio por conta do remetente\";\r\n break;\r\n case 3:\r\n modalidadeFrete = \"Transporte próprio por conta do destinatário\";\r\n break;\r\n case 9:\r\n modalidadeFrete = \"Sem ocorrência de transporte\";\r\n break;\r\n }\r\n\r\n this.remessa.modalidadeFrete = modalidadeFrete;\r\n\r\n this.remessas.push(this.remessa);\r\n\r\n\r\n }).finally(() => {\r\n this.atualizandoRemessa = false;\r\n this.onChanges();\r\n });\r\n\r\n }\r\n\r\n DeterminafornecedorId(id: number) {\r\n this.remessaCadastroForm.get('fornecedorId').setValue(id);\r\n }\r\n\r\n DeterminalocalEntregaId(id: number) {\r\n this.remessaCadastroForm.get('idlocalEntrega').setValue(id);\r\n }\r\n\r\n DeterminalocalRetiradaId(id: number) {\r\n this.remessaCadastroForm.get('idlocalRetirada').setValue(id);\r\n }\r\n\r\n cancelarRemessa(cancelarId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente Cancelar essa remessa?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.remessaService.deleteRemessa(cancelarId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Cancelado com Sucesso\");\r\n\r\n this.buscarRemessa(cancelarId);\r\n\r\n });\r\n }\r\n });\r\n };\r\n\r\n salvar(): void {\r\n\r\n if (this.remessaCadastroForm.value.remessaId == 0) {\r\n\r\n this.remessaService.postRemessa(this.remessaCadastroForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarRemessa(data.body.remessaId);\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n\r\n }\r\n else {\r\n this.remessaService.putRemessa(this.remessaCadastroForm.value, this.remessaCadastroForm.value.remessaId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarRemessa(this.remessaCadastroForm.value.remessaId);\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n\r\n };\r\n\r\n processaPicking () {\r\n\r\n this.remessaService.postProcessaPicking(this.remessaCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Picking realizado com Sucesso. Saídas de estoques realizadas\"\r\n }\r\n });\r\n\r\n this.buscarRemessa(this.remessaCadastroForm.value.remessaId);\r\n\r\n });\r\n };\r\n\r\n processaPacking () {\r\n\r\n this.remessaService.postProcessaPacking(this.remessaCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Packing realizado com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarRemessa(this.remessaCadastroForm.value.remessaId);\r\n\r\n });\r\n };\r\n\r\n processaEntrega() {\r\n\r\n this.remessaService.postProcessaEntregue(this.remessaCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Entrega Realizada\"\r\n }\r\n });\r\n\r\n this.buscarRemessa(this.remessaCadastroForm.value.remessaId);\r\n\r\n });\r\n };\r\n\r\n determinaCliente(cliente: any) {\r\n\r\n this.remessaCadastroForm.get('clienteId').setValue(cliente.clienteId);\r\n \r\n }\r\n\r\n embalagemModal(id: number) {\r\n\r\n const dialogRef = this.dialog.open(EmbalagemCadastroComponent, {\r\n data: {\r\n embalagemId: id,\r\n },\r\n maxHeight: '100vh'\r\n });\r\n };\r\n\r\n imprimir(): void {\r\n\r\n let titulo = \"Remessa\";\r\n\r\n this.htmlPrinterService.printDiv('printRemessa', titulo);\r\n }\r\n}\r\n","\r\n
      \r\n

      Remessa {{remessa.remessaId}}

      \r\n \r\n
      \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n Emitente\r\n \r\n \r\n {{empresa.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Cliente\r\n \r\n \r\n \r\n CNPJ: {{parceiro.cnpj}} - {{parceiro.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Data da Remessa\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Data da Venda\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Previsão Carregamento\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Previsão Entrega\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Status\r\n \r\n Aguardando Picking\r\n Aguardando Packing\r\n Aguardando Carregamento\r\n Em Trânsito\r\n Concluída\r\n Cancelada\r\n \r\n \r\n
      \r\n
      \r\n \r\n Peso Líquido (KG)\r\n \r\n \r\n \r\n Peso Bruto (KG)\r\n \r\n \r\n
      \r\n \r\n Quantidade de Volumes\r\n \r\n \r\n \r\n Espécie dos Volumes\r\n \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n Local de Entrega (Cliente)\r\n \r\n \r\n \r\n CNPJ: {{localEntrega.cnpj}} - {{localEntrega.nomeFantasia}}\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n Picking\r\n \r\n \r\n
      \r\n
      \r\n Packing\r\n \r\n \r\n
      \r\n
      \r\n
      0\">\r\n
      \r\n
      \r\n
      \r\n

      Embalagens

      \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
        IdCod.EmbalagemPesoCod.ProdutoQuantidade
        {{embalagem.embalagemId}}{{embalagem.produto.codProd}}{{embalagem.produto.descricao}}{{embalagem.peso}}
        {{embalagemitem.codProd}}{{embalagemitem.descricao}}{{embalagemitem.quantidade}}
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n Dados Adicionais\r\n \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n Transportadora\r\n \r\n \r\n {{transportadora.nomeFantasia}}\r\n \r\n \r\n \r\n
        \r\n
        \r\n \r\n Tipo de Entrega\r\n \r\n Transportadora\r\n Veículo Próprio\r\n Cliente Retira\r\n Correios\r\n \r\n \r\n
        \r\n
        \r\n \r\n Tipo de Frente\r\n \r\n Contratação do frete por conta do remetente\r\n (CIF)\r\n Contratação do frete por conta do destinatário\r\n (FOB)\r\n Transporte próprio por conta do\r\n remetente\r\n Transporte próprio por conta do\r\n destinatário\r\n Sem ocorrência de transporte\r\n \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        0\">\r\n
        \r\n
        \r\n
        \r\n

        Itens

        \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          CódigoDescriçãoNCMLoteUnid.Qtde.Embalagem
          {{remessaitem.codProd}}{{remessaitem.descricao}}{{remessaitem.ncm}}{{remessaitem.numeroLote}}{{remessaitem.unidade}}{{remessaitem.quantidade}}{{remessaitem.embalagemProdutoDescricao}}
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n \r\n \r\n
          \r\n

          Ordem de Remessa

          \r\n
          {{empresa.nomeFantasia}}
          \r\n
          \r\n
          \r\n {{empresa.logradouro}}, {{empresa.numero}} , {{empresa.bairro}}
          \r\n {{empresa.municipio?.descricao}} - {{empresa.municipio?.uf.siglaUF}}, CEP:\r\n {{empresa.cep}}
          \r\n Tel: {{empresa.telefone}}
          \r\n e-mail: {{empresa.emailRemessa}}
          \r\n IE: {{empresa.inscEstadual}} - CNPJ: {{empresa.cnpj}}\r\n
          \r\n
          \r\n
          EMISSÃO
          \r\n
          \r\n
          {{remessatemp.dataCriacao | date:'dd/MM/yyyy'}}
          \r\n
          \r\n
          REMESSA
          \r\n
          \r\n
          {{remessatemp.remessaId}}
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          DESTINATÁRIO/REMETENTE
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          NOME / RAZÃO SOCIAL
          \r\n
          \r\n {{cliente.razaoSocial}}\r\n
          \r\n
          \r\n
          CNPJ / CPF
          \r\n
          \r\n {{cliente.cnpj != undefined ? cliente.cnpj : cliente.cpf}}\r\n
          \r\n
          \r\n
          ENDEREÇO
          \r\n
          \r\n {{cliente.logradouro}}  \r\n {{cliente.numero}}\r\n
          \r\n
          \r\n
          BAIRRO / DISTRITO
          \r\n
          \r\n {{cliente.bairro}}\r\n
          \r\n
          \r\n
          CEP
          \r\n
          \r\n {{cliente.cep}}\r\n
          \r\n
          \r\n
          MUNICÍPIO
          \r\n
          \r\n {{cliente.municipio?.descricao}}\r\n
          \r\n
          \r\n
          TELEFONE
          \r\n
          \r\n {{cliente.telefone}}\r\n
          \r\n
          \r\n
          UF
          \r\n
          \r\n {{cliente.municipio?.uf.siglaUF}}\r\n
          \r\n
          \r\n
          INSCRIÇÃO ESTADUAL
          \r\n
          \r\n {{cliente.inscEstadual}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          TRANSPORTE
          \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          NOME / RAZÃO SOCIAL
          \r\n
          \r\n {{transportadora.razaoSocial}}\r\n
          \r\n
          \r\n
          CNPJ / CPF
          \r\n
          \r\n {{transportadora.cnpj}}\r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          MODALIDADE DO FRETE
          \r\n
          \r\n {{remessatemp.modalidadeFrete}}\r\n
          \r\n
          \r\n
          QUANTIDADE
          \r\n
          \r\n {{remessatemp.volumesTransportados}}\r\n
          \r\n
          \r\n
          ESPÉCIE
          \r\n
          \r\n {{remessatemp.especieVolumesTransportados}}\r\n
          \r\n
          \r\n
          PESO BRUTO
          \r\n
          \r\n {{remessatemp.pesoBrutoTransportado}}\r\n
          \r\n
          \r\n
          PESO LÍQUIDO
          \r\n
          \r\n {{remessatemp.pesoLiquidoTransportado}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          DADOS DOS PRODUTOS / SERVIÇOS
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          CÓDIGO
          \r\n
          \r\n
          DESCRIÇÃO DOS PRODUTOS / SERVIÇOS\r\n
          \r\n
          \r\n
          NCM
          \r\n
          \r\n
          LOTE
          \r\n
          \r\n
          UNID
          \r\n
          \r\n
          QUANT
          \r\n
          \r\n
          \r\n {{item.codProd}}\r\n
          \r\n
          \r\n
          \r\n {{item.descricao}}\r\n
          \r\n
          \r\n
          \r\n {{item.ncm}}\r\n
          \r\n
          \r\n
          \r\n {{item.numeroLote}}\r\n
          \r\n
          \r\n
          \r\n {{item.unidade}}\r\n
          \r\n
          \r\n
          \r\n {{item.quantidade}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          DADOS ADICIONAIS
          \r\n
          \r\n
          ENTREGUE POR
          \r\n
          \r\n
          RETIRADO POR
          \r\n
          \r\n
          \r\n {{remessatemp.dadosAdicionais}}\r\n
          \r\n
          \r\n\r\n \r\n\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n","export class Remessa {\r\n remessaId: number = 0;\r\n remessaStatus: number = 0;\r\n nfeId: number = 0;\r\n dataVenda: Date = new Date();\r\n dataCriacao: Date = new Date();\r\n dataPrevisaoCarregamento: Date = new Date();\r\n dataPrevisaoEntrega: Date = new Date();\r\n dadosAdicionais: string = '';\r\n idlocalEntrega: number = 0;\r\n idlocalRetirada: number = 0;\r\n modFrete: number = 0;\r\n transportadoraId: number = 0;\r\n quantidadevolumesTransportados: number = 0;\r\n especieVolumesTransportados: string = '';\r\n tipoEntrega: number = 0;\r\n pesoBruto: number = 0;\r\n pesoLiquido: number = 0;\r\n empresaId: number = 0;\r\n clienteId: number = 0;\r\n dataPicking: Date = new Date();\r\n usuarioPicking: string = '';\r\n dataPacking: Date = new Date();\r\n usuarioPacking: string = '';\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class RemessaService {\r\n\r\n postVisualizaRemessasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/remessa/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessa/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getTransportadoras(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessa/transportadoras', { observe: 'response' })\r\n }\r\n\r\n getRemessa(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessa/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessa/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n\r\n getClientePorNome(nome: any): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl +'/api/remessa/visualizaclientepornome',\r\n { observe: 'response', params }\r\n );\r\n }\r\n\r\n getFornecedorPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessa/visualizafornecedor/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorNome(nome: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessa/visualizafornecedorpornome/' + nome, { observe: 'response' })\r\n }\r\n\r\n postRemessa(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/remessa/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putRemessa(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/remessa/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteRemessa(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/remessa/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getRemessaItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessaitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiRemessaItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/remessaitem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaRemessaItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/remessaitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteRemessaItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/remessaitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n\r\n const params = {\r\n idOrigem: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n tipoDestino: parametros.tipoDestino\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/remessa/visualizadocumentopororigemdestino', { observe: 'response', params })\r\n }\r\n\r\n postProcessaPicking(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/remessa/processapicking', item, { observe: 'response' })\r\n };\r\n\r\n postProcessaPacking(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/remessa/processapacking', item, { observe: 'response' })\r\n };\r\n\r\n postProcessaEntregue(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/remessa/processaentregue', item, { observe: 'response' })\r\n };\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/remessa/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n getEstoqueByProduto(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/remessaitem/visualizaestoqueporproduto/' + itemId, { observe: 'response' })\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class UfService {\r\n\r\n getUFs(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/uf/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class UnidadeMedidaService {\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n get(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/unidademedida/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CadastroEtapaDialogComponent } from 'src/app/ordem-servico/etapa-dialog/cadastro-etapa-dialog/cadastro-etapa-dialog.component';\r\nimport { OrcamentoService } from '../shared/orcamento.service';\r\nimport { VendaService } from '../shared/venda.service';\r\n\r\n\r\nexport interface DialogData {\r\n orcamentoId?: number;\r\n vendaId?: number;\r\n orcamento?: any;\r\n venda?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-desconto-adicional',\r\n templateUrl: './desconto-adicional.component.html',\r\n styleUrls: ['./desconto-adicional.component.css']\r\n})\r\nexport class DescontoAdicionalComponent implements OnInit {\r\n maximizado: boolean = false;\r\n orcamentoOrVenda: any = this.IData.orcamento == null || this.IData.orcamento == undefined ? this.IData.venda : this.IData.orcamento;\r\n valorBruto: number = this.orcamentoOrVenda.valorTotal - this.orcamentoOrVenda.descontosItensEmReais;\r\n\r\n\r\n DescontoOrcamentoDto: FormGroup;\r\n\r\n\r\n\r\n constructor(public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n private _formBuilder: FormBuilder,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public IData: DialogData,\r\n private orcamentoService: OrcamentoService,\r\n private vendaService: VendaService) { }\r\n\r\n ngOnInit(): void {\r\n this.DescontoOrcamentoDto = this._formBuilder.group({\r\n OrcamentoId: [this.IData.orcamentoId],\r\n VendaId: [this.IData.vendaId],\r\n DescontoEmPorcentagem: 0,\r\n DescontoValorEmReal: 0\r\n });\r\n\r\n if (this.IData.orcamentoId > 0) {\r\n this.orcamentoService.getOrcamento(this.IData.orcamentoId).subscribe(\r\n (response) => {\r\n this.orcamentoOrVenda = response.body;\r\n this.DescontoOrcamentoDto.get('OrcamentoId').setValue(this.IData.orcamentoId);\r\n this.DescontoOrcamentoDto.get('DescontoEmPorcentagem').setValue(this.orcamentoOrVenda.descontosAdicionaisEmPorcentagem);\r\n this.DescontoOrcamentoDto.get('DescontoValorEmReal').setValue(this.orcamentoOrVenda.descontosAdicionaisEmReais);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n if (this.IData.vendaId > 0) {\r\n this.vendaService.getVenda(this.IData.vendaId).subscribe(\r\n (response) => {\r\n this.orcamentoOrVenda = response.body;\r\n this.DescontoOrcamentoDto.get('VendaId').setValue(this.IData.vendaId);\r\n this.DescontoOrcamentoDto.get('DescontoEmPorcentagem').setValue(this.orcamentoOrVenda.descontosAdicionaisEmPorcentagem);\r\n this.DescontoOrcamentoDto.get('DescontoValorEmReal').setValue(this.orcamentoOrVenda.descontosAdicionaisEmReais);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n salvarDescontosAdicionais() {\r\n if(this.DescontoOrcamentoDto.value.OrcamentoId > 0){\r\n this.orcamentoService.putDescontosAdicionais(this.DescontoOrcamentoDto.value).subscribe(\r\n (response) => {\r\n this._snackBar.open('Descontos e Adicionais atualizados com sucesso!', 'Fechar', {\r\n duration: 5000,\r\n });\r\n this.dialogRef.close();\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }else{\r\n this.vendaService.putDescontosAdicionais(this.DescontoOrcamentoDto.value).subscribe(\r\n (response) => {\r\n this._snackBar.open('Descontos e Adicionais atualizados com sucesso!', 'Fechar', {\r\n duration: 5000,\r\n });\r\n this.dialogRef.close();\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n changePorcentagem() {\r\n this.onEmptied();\r\n\r\n if (this.DescontoOrcamentoDto.value.DescontoEmPorcentagem <= 100 && this.DescontoOrcamentoDto.value.DescontoEmPorcentagem >= 0) {\r\n\r\n this.DescontoOrcamentoDto.value.DescontoValorEmReal = this.valorBruto * (this.DescontoOrcamentoDto.value.DescontoEmPorcentagem / 100);\r\n\r\n }\r\n\r\n }\r\n\r\n changeEmReal() {\r\n this.onEmptied();\r\n if (this.DescontoOrcamentoDto.value.DescontoValorEmReal <= this.orcamentoOrVenda.valorBruto\r\n && this.DescontoOrcamentoDto.value.DescontoValorEmReal >= 0) {\r\n this.DescontoOrcamentoDto.value.DescontoEmPorcentagem\r\n = (this.DescontoOrcamentoDto.value.DescontoValorEmReal / this.valorBruto) * 100;\r\n\r\n }\r\n\r\n }\r\n\r\n onEmptied() {\r\n if ((this.DescontoOrcamentoDto.value.DescontoValorEmReal == 0 || this.DescontoOrcamentoDto.value.DescontoValorEmReal == null)\r\n && (this.DescontoOrcamentoDto.value.DescontoEmPorcentagem == 0 || this.DescontoOrcamentoDto.value.DescontoEmPorcentagem == null)) {\r\n this.DescontoOrcamentoDto.value.DescontoEmPorcentagem = 0;\r\n this.DescontoOrcamentoDto.value.DescontoValorEmReal = 0;\r\n this.valorBruto = this.orcamentoOrVenda.valorTotal;\r\n }\r\n\r\n }\r\n\r\n limitarValor() {\r\n let descontoEmPorcentagem = this.DescontoOrcamentoDto.get('DescontoEmPorcentagem');\r\n let descontoEmReais = this.DescontoOrcamentoDto.get('DescontoValorEmReal');\r\n let valorBruto = this.valorBruto;\r\n this.limitarTresCasasDecimais();\r\n if (descontoEmPorcentagem.value < 0) {\r\n this.DescontoOrcamentoDto.value.DescontoEmPorcentagem = 0;\r\n this.DescontoOrcamentoDto.value.DescontoValorEmReal = 0;\r\n this.changePorcentagem();\r\n } else if (descontoEmPorcentagem.value > 100) {\r\n this.DescontoOrcamentoDto.get('DescontoEmPorcentagem').setValue(100);\r\n this.DescontoOrcamentoDto.get('DescontoValorEmReal').setValue(valorBruto);\r\n this.changePorcentagem();\r\n }\r\n else if (descontoEmReais.value < 0) {\r\n this.DescontoOrcamentoDto.value.DescontoEmPorcentagem = 0;\r\n this.DescontoOrcamentoDto.value.DescontoValorEmReal = 0;\r\n this.changeEmReal();\r\n } else if (descontoEmReais.value > valorBruto) {\r\n\r\n this.DescontoOrcamentoDto.value.DescontoEmPorcentagem = 100;\r\n this.DescontoOrcamentoDto.get('DescontoValorEmReal').setValue(valorBruto);\r\n this.changeEmReal();\r\n }\r\n\r\n }\r\n\r\n limitarTresCasasDecimais(){\r\n let descontoEmPorcentagem = this.DescontoOrcamentoDto.get('DescontoEmPorcentagem');\r\n let descontoEmReais = this.DescontoOrcamentoDto.get('DescontoValorEmReal');\r\n descontoEmPorcentagem.setValue(parseFloat(descontoEmPorcentagem.value.toFixed(3)));\r\n descontoEmReais.setValue(parseFloat(descontoEmReais.value.toFixed(3)));\r\n }\r\n\r\n}\r\n","\r\n
          \r\n

          Descontos Adicionais

          \r\n \r\n
          \r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n\r\n
          \r\n
          \r\n \r\n Desconto em Porcentagem\r\n \r\n \r\n \r\n Desconto em Reais\r\n \r\n \r\n
          \r\n
          \r\n\r\n\r\n \r\n Descontos\r\n \r\n \r\n
          \r\n
          \r\n

          \r\n Novo valor c/ desconto: {{valorBruto - DescontoOrcamentoDto.value.DescontoValorEmReal | currency:'BRL'}}\r\n

          \r\n
          \r\n
          \r\n
          \r\n
          \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { Location } from '@angular/common';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { OrcamentoService } from '../shared/orcamento.service';\r\n\r\nimport { OrcamentoItemComponent } from '../orcamento-item/orcamento-item.component';\r\n\r\nimport { DocumentoCadastroComponent } from '../../documento/documento-cadastro/documento-cadastro.component';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Orcamento } from '../shared/orcamento.model';\r\nimport { OrcamentoParcela } from '../shared/orcamento-parcela.model';\r\nimport { ClienteCadastroComponent } from 'src/app/cliente/cliente-cadastro/cliente-cadastro.component';\r\nimport { forEach } from 'jszip';\r\nimport { DescontoAdicionalComponent } from '../desconto-adicional/desconto-adicional.component';\r\nimport { OrcamentoParcelaDataVencimento } from '../shared/OrcamentoParcelaDataVencimento.model';\r\n\r\nexport interface DialogData {\r\n orcamentoId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'orcamento-cadastro',\r\n templateUrl: 'orcamento-cadastro.component.html',\r\n})\r\n\r\nexport class OrcamentoCadastroComponent {\r\n\r\n empresas: any = [];\r\n vendedores: any = [];\r\n orcamentos: any = [];\r\n parceiros: any[];\r\n orcamentoCadastroForm: FormGroup;\r\n maximizado: boolean;\r\n tipoOrcamento: number = 0;\r\n orcamentoParcelasServico: OrcamentoParcela[];\r\n orcamentoParcelasProduto: OrcamentoParcela[];\r\n orcamentoItens: any = [];\r\n temProdutoAcabado = false;\r\n temServico = false;\r\n temUsoConsumo = false;\r\n temAtivoImobilizado = false;\r\n temMateriaPrima = false;\r\n temEmbalagem = false;\r\n orcamento: any;\r\n dataVencimentoParcela: FormGroup;\r\n currentDate = new Date();\r\n parceirosEncontrados: boolean = true;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IOrcamento: DialogData,\r\n private orcamentoService: OrcamentoService,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n const brTime = this.currentDate.toLocaleString(\"en-US\", { timeZone: \"America/Sao_Paulo\" });\r\n this.currentDate = new Date(brTime);\r\n\r\n this.maximizado = false;\r\n\r\n this.dataVencimentoParcela = new FormGroup({\r\n dataVencimentoParcela: new FormControl(new Date())\r\n });\r\n\r\n this.orcamentoCadastroForm = this._formBuilder.group({\r\n orcamentoId: [0],\r\n tipoOrcamento: [0],\r\n dataCriacao: [new Date()],\r\n status: [0],\r\n dataOrcamento: [new Date()],\r\n dataValidade: [new Date()],\r\n comunicacaoInterna: [''],\r\n empresaId: [0],\r\n parceiroId: [0],\r\n nomeParceiro: [''],\r\n valorTotalProduto: [0],\r\n valorTotalServico: [0],\r\n valorDesconto: [0],\r\n valorBruto: [0],\r\n valorLiquido: [0],\r\n valorAposRetencoes: [0],\r\n vendedorId: [0],\r\n saguiClienteId: [0],\r\n orcamentoItens: [[]],\r\n orcamentoParcelas: [[]],\r\n numeroParcelasProduto: [1],\r\n diaVencimentoProduto: [1],\r\n numeroParcelasServico: [1],\r\n diaVencimentoServico: [1],\r\n valorTotal: [0],\r\n valorImpostosRetidos: [0],\r\n valorTotalProdutos: [0],\r\n valorDescontoProdutos: [0],\r\n valorBrutoProdutos: [0],\r\n valorImpostosRetidosProdutos: [0],\r\n valorAposRetencoesProdutos: [0],\r\n valorTotalServicos: [0],\r\n valorDescontoServicos: [0],\r\n valorBrutoServicos: [0],\r\n valorImpostosRetidosServicos: [0],\r\n valorAposRetencoesServicos: [0],\r\n observacoes: [''],\r\n descontosItensEmReais: [0.00],\r\n descontosAdicionaisEmReais: [0.00],\r\n somaTotalDescontosEmReais: [0.00],\r\n descontosItensEmPorcentagem: [0.00],\r\n descontosAdicionaisEmPorcentagem: [0.00],\r\n somaTotalDescontosEmPorcentagem: [0.00],\r\n natureza: [0],\r\n valorIcms: [0], // added\r\n valorIcmsSt: [0], // added\r\n valorIpi: [0], // added\r\n valorPis: [0], // added\r\n valorPisSt: [0], // added\r\n valorCofins: [0], // added\r\n valorCofinsSt: [0], // added\r\n valorInss: [0], // added\r\n valorIr: [0], // added\r\n valorCsll: [0], // added\r\n valorIss: [0], // added\r\n issRetido: [false], // added\r\n pisRetido: [false], // added\r\n cofinsRetido: [false], // added\r\n csllRetido: [false], // added\r\n irRetido: [false], // added\r\n inssRetido: [false], // added\r\n modNFe: [0], // added\r\n // ... outros campos do seu modelo\r\n });\r\n\r\n this.orcamentoCadastroForm.addControl('parceiroAutoComplete', new FormControl(''));\r\n\r\n if (this.IOrcamento.orcamentoId > 0) {\r\n this.buscarOrcamento(this.IOrcamento.orcamentoId);\r\n }\r\n\r\n this.getEmpresas();\r\n\r\n this.getFuncionarios();\r\n\r\n this.onChanges();\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n this.orcamentoCadastroForm\r\n .get('parceiroAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(450),\r\n switchMap(value => value?.length >= 3 ?\r\n this.orcamentoService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.putDataInParceiros(data)\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n putDataInParceiros(data) {\r\n\r\n this.parceiros = data.body;\r\n this.parceirosEncontrados = true;\r\n if (this?.parceiros?.length == 0) {\r\n this.parceirosEncontrados = false;\r\n }\r\n }\r\n\r\n\r\n determinaParceiro(parceiro: any) {\r\n\r\n if (parceiro.clienteId > 0) {\r\n this.orcamentoCadastroForm.get('parceiroId').setValue(parceiro.clienteId);\r\n this.determinaCliente(parceiro);\r\n } else {\r\n this.orcamentoCadastroForm.get('parceiroId').setValue(parceiro.fornecedorId);\r\n }\r\n\r\n }\r\n\r\n getEmpresas() {\r\n\r\n this.orcamentoService.getEmpresa().subscribe(data => {\r\n\r\n this.empresas = data.body;\r\n\r\n });\r\n }\r\n\r\n getFuncionarios() {\r\n\r\n this.orcamentoService.getVendedores().subscribe(data => {\r\n\r\n this.vendedores = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n openDialogDescontoAdicional() {\r\n\r\n const dialogRef = this.dialog.open(DescontoAdicionalComponent, {\r\n data: {\r\n orcamentoId: this.orcamentoCadastroForm.value.orcamentoId,\r\n vendaId: 0,\r\n orcamento: this.orcamento\r\n },\r\n height: '55vh',\r\n width: '45vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.ngOnInit();\r\n });\r\n\r\n }\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscarOrcamento(orcamentoId: number) {\r\n\r\n this.orcamentoService.getOrcamento(orcamentoId).subscribe(data => {\r\n\r\n this.InsereDadosOrcamento(data.body);\r\n\r\n });\r\n }\r\n\r\n InsereDadosOrcamento(data: any) {\r\n this.orcamento = data;\r\n this.orcamentoCadastroForm.patchValue(data);\r\n if (this.orcamento.modNfe !== undefined) {\r\n this.orcamentoCadastroForm.patchValue({ modNFe: this.orcamento.modNfe });\r\n }\r\n\r\n this.orcamentoItens = data.orcamentoItens;\r\n if (data.orcamentoParcelas.length > 0) {\r\n this.dataVencimentoParcela.get('dataVencimentoParcela').setValue(new Date(data.orcamentoParcelas[0].dataVencimento));\r\n } else {\r\n this.dataVencimentoParcela.value.dataVencimentoParcela = new Date();\r\n }\r\n\r\n this.orcamentoParcelasProduto = [];\r\n this.orcamentoParcelasServico = [];\r\n\r\n let parcelas = data.orcamentoParcelas;\r\n let arrayLength = parcelas.length;\r\n\r\n for (var i = 0; i < arrayLength; i++) {\r\n\r\n let parcela: OrcamentoParcela = new OrcamentoParcela();\r\n\r\n parcela.dataVencimento = new Date(parcelas[i].dataVencimento);\r\n parcela.orcamentoParcelaId = parcelas[i].orcamentoParcelaId;\r\n parcela.valorParcela = parcelas[i].valorParcela;\r\n parcela.orcamentoId = parcelas[i].orcamentoId;\r\n parcela.produtoTipo = parcelas[i].produtoTipo;\r\n\r\n if (parcelas[i].produtoTipo == 0) {\r\n this.orcamentoParcelasProduto.push(parcela);\r\n }\r\n\r\n if (parcelas[i].produtoTipo == 1) {\r\n this.orcamentoParcelasServico.push(parcela);\r\n }\r\n }\r\n\r\n let parceiro: any = {};\r\n\r\n if (data.tipoOrcamento == 0) {\r\n\r\n this.orcamentoService.getClientePorId(data.parceiroId).subscribe(dataCliente => {\r\n parceiro = dataCliente.body;\r\n this.orcamentoCadastroForm.get('parceiroAutoComplete').setValue(parceiro.nomeFantasia);\r\n\r\n });\r\n\r\n }\r\n else {\r\n\r\n this.orcamentoService.getFornecedorPorId(data.parceiroId).subscribe(dataFornecedor => {\r\n parceiro = dataFornecedor.body;\r\n this.orcamentoCadastroForm.get('parceiroAutoComplete').setValue(parceiro.nomeFantasia);\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n cancelarOrcamento(cancelarId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente Cancelar essa orcamento?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.orcamentoService.deleteOrcamento(cancelarId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro Cancelado com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarOrcamento(cancelarId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n determinaCliente(cliente: any) {\r\n this.orcamentoCadastroForm.value.clienteId = cliente.clienteId;\r\n this.orcamentoCadastroForm.value.issRetido = cliente.retidoIssqn;\r\n this.orcamentoCadastroForm.value.pisRetido = cliente.retidoPis;\r\n this.orcamentoCadastroForm.value.cofinsRetido = cliente.retidoCofins;\r\n this.orcamentoCadastroForm.value.csllRetido = cliente.retidoCsll;\r\n this.orcamentoCadastroForm.value.irRetido = cliente.retidoIrrf;\r\n this.orcamentoCadastroForm.value.inssRetido = cliente.retidoInss;\r\n }\r\n\r\n salvar(orcamentoForm): void {\r\n if (orcamentoForm.value.orcamentoId == 0) {\r\n orcamentoForm.value.modNFe = 99;\r\n\r\n this.orcamentoService.postOrcamento(orcamentoForm.value).subscribe(data => {\r\n\r\n this.orcamentoCadastroForm.get('orcamentoId').setValue(data.body.orcamentoId);\r\n\r\n this.ModalItem(0);\r\n\r\n this.buscarOrcamento(data.body.orcamentoId);\r\n\r\n });\r\n\r\n }\r\n else {\r\n\r\n let orcamentoTemp = orcamentoForm.value;\r\n\r\n orcamentoTemp.orcamentoParcelas = [];\r\n\r\n this.orcamentoParcelasProduto.forEach(item => {\r\n orcamentoTemp.orcamentoParcelas.push(item);\r\n })\r\n\r\n this.orcamentoParcelasServico.forEach(item => {\r\n orcamentoTemp.orcamentoParcelas.push(item);\r\n });\r\n\r\n this.orcamentoService.putOrcamento(orcamentoTemp, orcamentoTemp.orcamentoId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarOrcamento(orcamentoForm.value.orcamentoId);\r\n\r\n\r\n });\r\n }\r\n\r\n };\r\n\r\n salvarParcelas(parcelas: any) {\r\n this.orcamentoParcelasProduto.map(item => {\r\n item.orcamentoParcelaId = 0;\r\n return item;\r\n });\r\n\r\n this.orcamentoParcelasServico.map(item => {\r\n item.orcamentoParcelaId = 0;\r\n return item;\r\n });\r\n\r\n this.orcamentoService.postOrcamentoParcela(parcelas).subscribe(data => {\r\n data.body.orcamentoParcelas.map(item => {\r\n if (item.produtoTipo == 0) {\r\n this.orcamentoParcelasProduto.push(item);\r\n }\r\n\r\n if (item.produtoTipo == 1) {\r\n this.orcamentoParcelasServico.push(item);\r\n }\r\n });\r\n });\r\n }\r\n\r\n imprimir(): void {\r\n\r\n let valorTotal: number = 0;\r\n\r\n for (let i = 0; i < this.orcamentoItens.length; i++) {\r\n valorTotal += this.orcamentoItens[i].valorBruto;\r\n }\r\n\r\n this.orcamentoCadastroForm.value.valorBruto = valorTotal;\r\n this.orcamentoService.postImprimir(this.orcamentoCadastroForm.value).subscribe(data => {\r\n\r\n let titulo = \"Orçamento\";\r\n\r\n this.htmlPrinterService.imprimirConteudoTinyMCE(data.body.htmlString);\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n ModalItem(orcamentoItemId): void {\r\n\r\n const dialogRef = this.dialog.open(OrcamentoItemComponent, {\r\n data: {\r\n orcamentoItemId: orcamentoItemId,\r\n Orcamento: this.orcamentoCadastroForm.value,\r\n },\r\n maxHeight: '100vh'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n });\r\n\r\n }\r\n\r\n geraVenda() {\r\n\r\n this.orcamentoService.postGerarVenda(this.orcamentoCadastroForm.value).subscribe(data => {\r\n\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n this.visualizaFluxoDocumentos();\r\n\r\n });\r\n };\r\n\r\n definirStatus(status: number) {\r\n\r\n this.orcamentoCadastroForm.get('status').setValue(status);\r\n\r\n this.orcamentoService.putAtualizaStatus(this.orcamentoCadastroForm.value, this.orcamentoCadastroForm.value.orcamentoId).subscribe(data => {\r\n\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n\r\n });\r\n };\r\n\r\n visualizaFluxoDocumentos() {\r\n\r\n const dialogRef = this.dialog.open(DocumentoCadastroComponent, {\r\n data: {\r\n tipoOrigem: 4,\r\n idDocumento: this.orcamentoCadastroForm.get('orcamentoId').value,\r\n },\r\n maxHeight: '100vh'\r\n });\r\n }\r\n\r\n DeleteOrcamentoItem(orcamentoItemId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse item?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n this.orcamentoService.deleteOrcamentoItem(orcamentoItemId).subscribe(data => {\r\n\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n definirComoenviadoAoCliente() {\r\n\r\n this.orcamentoService.postDefinirComoenviadoAoCliente(this.orcamentoCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRefEstoque = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Orçamento Confirmado\"\r\n }\r\n });\r\n\r\n this.buscarOrcamento(this.orcamentoCadastroForm.value.orcamentoId);\r\n\r\n });\r\n\r\n }\r\n\r\n retornarTipoItem(produtoTipo: number) {\r\n switch (produtoTipo) {\r\n case 0:\r\n this.temProdutoAcabado = true;\r\n return 'Produto Acabado';\r\n case 1:\r\n this.temServico = true;\r\n return 'Serviço';\r\n case 2:\r\n this.temUsoConsumo = false;\r\n return 'Uso e Consumo';\r\n case 3:\r\n this.temAtivoImobilizado = false;\r\n return 'Ativo Imobilizado';\r\n case 4:\r\n this.temMateriaPrima = false;\r\n return 'Matéria Prima';\r\n case 5:\r\n this.temEmbalagem = false;\r\n return 'Embalagem';\r\n }\r\n }\r\n\r\n gerarParcelas(tipoProduto: number) {\r\n\r\n const orcamentoParcelaDataVencimento = new OrcamentoParcelaDataVencimento();\r\n\r\n orcamentoParcelaDataVencimento.orcamento = this.orcamentoCadastroForm.value;\r\n orcamentoParcelaDataVencimento.dataVencimento = this.dataVencimentoParcela.value.dataVencimentoParcela;\r\n\r\n if ((tipoProduto == 1 && (\r\n this.orcamentoCadastroForm.value.numeroParcelasServico == 0 ||\r\n this.orcamentoCadastroForm.value.diaVencimentoServico == 0)) ||\r\n (tipoProduto == 0 && (\r\n this.orcamentoCadastroForm.value.numeroParcelasProduto == 0 ||\r\n this.orcamentoCadastroForm.value.diaVencimentoProduto == 0))) {\r\n this.mostrarDialogoDeErro(\"Erro\", \"O número de parcelas e o dia devem ser maiores que zero\");\r\n return;\r\n }\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Gerar Novas Parcelas\",\r\n mensagem: \"Esse procedimento irá excluir as parcelas atuais e criar novas. Deseja continuar?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (tipoProduto == 0) {\r\n this.gerarParcelasProduto(orcamentoParcelaDataVencimento);\r\n } else if (tipoProduto == 1) {\r\n this.gerarParcelasServico(orcamentoParcelaDataVencimento);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n gerarParcelasProduto(orcamentoParcelaDataVencimento) {\r\n this.orcamentoService.postGerarorcamentoParcelasProduto(orcamentoParcelaDataVencimento).subscribe(\r\n () => {\r\n this.mostrarDialogoDeSucesso(\"Sucesso\", \"Parcelas geradas com sucesso\");\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.mostrarDialogoDeErro(\"Erro\", \"Ocorreu um erro ao gerar as parcelas de produtos: \" + error.message);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n gerarParcelasServico(orcamentoParcelaDataVencimento) {\r\n this.orcamentoService.postGerarorcamentoParcelasServico(orcamentoParcelaDataVencimento).subscribe(\r\n () => {\r\n this.mostrarDialogoDeSucesso(\"Sucesso\", \"Parcelas geradas com sucesso\");\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.mostrarDialogoDeErro(\"Erro\", \"Ocorreu um erro ao gerar as parcelas: \" + error.message);\r\n }\r\n );\r\n }\r\n\r\n mostrarDialogoDeErro(titulo: string, mensagem: string, erro?: HttpErrorResponse) {\r\n let mensagemErro: string = 'Erro desconhecido';\r\n if (erro && erro.error) {\r\n mensagemErro = erro.error.message;\r\n }\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: titulo,\r\n mensagem: mensagem,\r\n erro: mensagemErro\r\n }\r\n });\r\n }\r\n\r\n mostrarDialogoDeSucesso(titulo: string, mensagem: string) {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: titulo,\r\n mensagem: mensagem\r\n }\r\n });\r\n }\r\n\r\n adicionarNovaParcelaVazia(produtoTipo: number, valorParcela: number) {\r\n const parcela: OrcamentoParcela = new OrcamentoParcela();\r\n parcela.dataVencimento = new Date();\r\n parcela.valorParcela = valorParcela;\r\n parcela.orcamentoId = this.orcamentoCadastroForm.get('orcamentoId').value;\r\n parcela.produtoTipo = produtoTipo;\r\n\r\n switch (produtoTipo) {\r\n case 0:\r\n this.orcamentoParcelasProduto.push(parcela);\r\n break;\r\n case 1:\r\n this.orcamentoParcelasServico.push(parcela);\r\n break;\r\n }\r\n }\r\n\r\n DeleteOrcamentoParcela(orcamentoParcelaId, produtoTipo) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir essa parcela?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (orcamentoParcelaId.toString().indexOf(\"temp_\") >= 0) {\r\n if (produtoTipo == 0) {\r\n this.removerParcelaDoProduto(orcamentoParcelaId);\r\n } else if (produtoTipo == 1) {\r\n this.removerParcelaDoServico(orcamentoParcelaId);\r\n }\r\n } else {\r\n this.orcamentoService.deleteOrcamentoParcela(orcamentoParcelaId).subscribe(\r\n () => {\r\n this.buscarOrcamento(this.orcamentoCadastroForm.get('orcamentoId').value);\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.mostrarDialogoDeErro(\"Erro\", \"Ocorreu um erro ao excluir a parcela: \" + error.message);\r\n }\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n removerParcelaDoProduto(orcamentoParcelaId) {\r\n const parcToRemove = this.orcamentoParcelasProduto.find(x => x.orcamentoParcelaId == orcamentoParcelaId);\r\n if (parcToRemove) {\r\n const index = this.orcamentoParcelasProduto.indexOf(parcToRemove);\r\n if (index > -1) {\r\n this.orcamentoParcelasProduto.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n removerParcelaDoServico(orcamentoParcelaId) {\r\n const parcToRemove = this.orcamentoParcelasServico.find(x => x.orcamentoParcelaId == orcamentoParcelaId);\r\n if (parcToRemove) {\r\n const index = this.orcamentoParcelasServico.indexOf(parcToRemove);\r\n if (index > -1) {\r\n this.orcamentoParcelasServico.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n trackByIndex(index: number, obj: any): any {\r\n return index;\r\n }\r\n\r\n clienteModal(clienteId: number, clienteNome: string) {\r\n\r\n const dialogRef = this.dialog.open(ClienteCadastroComponent, {\r\n data: {\r\n clienteId: clienteId,\r\n clienteNome: clienteNome\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.orcamentoCadastroForm.get('parceiroAutoComplete').setValue(result.nomeFantasia);\r\n this.orcamentoCadastroForm.get('parceiroId').setValue(result.clienteId);\r\n\r\n this.parceirosEncontrados = true;\r\n });\r\n };\r\n\r\n descricaoStatus(status: number): string {\r\n\r\n return this.orcamentoService.retornarStatus(status);\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n","\r\n
          \r\n

          \r\n Orcamento {{orcamentoCadastroForm.value.orcamentoId}} - {{descricaoStatus(orcamentoCadastroForm.value.status)}}\r\n

          \r\n \r\n
          \r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
          \r\n\r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n
          \r\n
          \r\n \r\n Emitente\r\n \r\n \r\n {{ empresa.nomeFantasia }}\r\n \r\n \r\n \r\n \r\n Vendedor\r\n \r\n \r\n {{vendedor.nomeFantasia}}\r\n \r\n \r\n Para cadastrar vendedores acesse RH > Funcionários > E\r\n selecione o Tipo de Função 'Vendedor'\r\n \r\n
          \r\n
          \r\n \r\n Parceiro\r\n \r\n \r\n \r\n CNPJ: {{ parceiro.cnpj }} - {{ parceiro.nomeFantasia }}\r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n

          Nenhum cliente com o nome \"{{orcamentoCadastroForm.value.parceiroAutoComplete}}\" foi encontrado.

          \r\n \r\n Criar um novo cliente com esse nome\r\n \r\n
          \r\n
          \r\n\r\n
          \r\n \r\n Data do Orcamento\r\n \r\n \r\n \r\n \r\n \r\n Validade do Orçamento\r\n \r\n \r\n \r\n \r\n \r\n Status\r\n \r\n Em Criação\r\n Enviado ao Cliente\r\n Venda Efetivada\r\n Substituído\r\n Recusado\r\n Cancelado\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n Nova Venda\r\n Renovação\r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Comunicação Interna\r\n \r\n \r\n \r\n Observações\r\n \r\n Somente aparecerá na impressão\r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          TipoValor TotalDescontoValor Após Desconto
          Produtos{{orcamentoCadastroForm.get('valorTotalProdutos').value | currency}}{{orcamentoCadastroForm.get('valorDescontoProdutos').value | currency}}{{orcamentoCadastroForm.get('valorBrutoProdutos').value | currency}}
          Serviços{{orcamentoCadastroForm.get('valorTotalServicos').value | currency}}{{orcamentoCadastroForm.get('valorDescontoServicos').value | currency}}{{orcamentoCadastroForm.get('valorBrutoServicos').value | currency}}
          Total{{orcamentoCadastroForm.get('valorTotal').value | currency}}{{orcamentoCadastroForm.get('valorDesconto').value | currency}}{{orcamentoCadastroForm.get('valorBruto').value | currency}}
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n Parcelas - Serviços\r\n \r\n \r\n
          \r\n
          \r\n \r\n Número de Parcelas\r\n \r\n \r\n \r\n \r\n Vencimento 1ª Parcela\r\n \r\n \r\n \r\n \r\n \r\n
          \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          Data VencimentoValor ParcelaAções
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n delete\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n Parcelas - Produtos\r\n \r\n \r\n
          \r\n
          \r\n \r\n Número de Parcelas\r\n \r\n \r\n
          \r\n \r\n Vencimento 1ª Parcela\r\n \r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          Data VencimentoValor ParcelaAções
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n delete\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n 0\">\r\n
          \r\n
          \r\n \r\n Modalidade Nota Fiscal\r\n \r\n 0 - Não se Aplica\r\n 55 - NF-e\r\n 65 - NFC-e\r\n 99 - NFS-e\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          ImpostoValor%Retido na Fonte
          ISS{{orcamento?.valorIss | currency}}{{(orcamento?.valorIss * 100 / orcamento?.valorBruto).toFixed(2)}} %\r\n \r\n
          ICMS{{orcamento?.valorIcms | currency}}{{(orcamento?.valorIcms * 100 / orcamento?.valorBruto).toFixed(2)}} %
          ICMS ST{{orcamento?.valorIcmsSt | currency}}{{(orcamento?.valorIcmsSt * 100 / orcamento?.valorBruto).toFixed(2)}} %
          IPI{{orcamento?.valorIpi | currency}}{{(orcamento?.valorIpi * 100 / orcamento?.valorBruto).toFixed(2)}} %
          PIS{{orcamento?.valorPis | currency}}{{(orcamento?.valorPis * 100 / orcamento?.valorBruto).toFixed(2)}} %\r\n \r\n
          PIS ST{{orcamento?.valorPisSt | currency}}{{(orcamento?.valorPisSt * 100 / orcamento?.valorBruto).toFixed(2)}} %
          cofins{{orcamento?.valorCofins | currency}}{{(orcamento?.valorCofins * 100 / orcamento?.valorBruto).toFixed(2)}} %\r\n \r\n
          cofins ST{{orcamento?.valorCofinsSt | currency}}{{(orcamento?.valorCofinsSt * 100 / orcamento?.valorBruto).toFixed(2)}} %
          CSLL{{orcamento?.valorCsll | currency}}{{(orcamento?.valorCsll * 100 / orcamento?.valorBruto).toFixed(2)}} %\r\n \r\n
          IRPJ{{orcamento?.valorIr | currency}}{{(orcamento?.valorIr * 100 / orcamento?.valorBruto).toFixed(2)}} %\r\n \r\n
          INSS{{orcamento?.valorInss | currency}}{{(orcamento?.valorInss * 100 / orcamento?.valorBruto).toFixed(2)}} %\r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          0\">\r\n
          \r\n \r\n \r\n Descontos em Reais: {{this.orcamentoCadastroForm.value.somaTotalDescontosEmReais | currency}}\r\n \r\n add\r\n \r\n \r\n \r\n \r\n Desconto itens R${{this.orcamentoCadastroForm.value.descontosItensEmReais}} +\r\n Desconto Adicionais R${{this.orcamentoCadastroForm.value.descontosAdicionaisEmReais}}\r\n \r\n \r\n \r\n \r\n \r\n Total s/ descontos: {{this.orcamentoCadastroForm.value.valorTotal |\r\n currency}}\r\n \r\n \r\n\r\n\r\n
          \r\n
          \r\n \r\n \r\n Desconto em Porcentagem: {{this.orcamentoCadastroForm.value.somaTotalDescontosEmPorcentagem}}%\r\n \r\n \r\n \r\n \r\n Desconto itens R${{this.orcamentoCadastroForm.value.descontosItensEmReais}} +\r\n Desconto Adicionais R${{this.orcamentoCadastroForm.value.descontosAdicionaisEmReais}}\r\n \r\n \r\n \r\n \r\n \r\n Total com Descontos: {{this.orcamentoCadastroForm.value.valorBruto |\r\n currency}}\r\n \r\n \r\n\r\n\r\n
          \r\n\r\n
          \r\n
          \r\n
          \r\n \r\n \r\n Itens\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          AçõesTipoCódigoDescriçãoNCMUnid.Valor Un.Qtde.TotalDescontoCom Desconto
          \r\n \r\n edit\r\n \r\n delete\r\n {{retornarTipoItem(orcamentoitem.produtoTipo)}}{{orcamentoitem.produto.codProd}}{{orcamentoitem.produto.descricao}}{{orcamentoitem.produto.ncm}}{{orcamentoitem.unidade}}{{orcamentoitem.valorUnitario | currency}}{{orcamentoitem.quantidade}}{{orcamentoitem.valorTotal | currency}}{{orcamentoitem.valorDesconto | currency}}{{orcamentoitem.valorBruto | currency}}
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n","'use strict'\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { OrcamentoService } from '../shared/orcamento.service';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\n\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nimport { OrcamentoItem } from '../shared/orcamento-item.model';\r\nimport { Produto } from '../../produto/shared/produto.model';\r\nimport { Cfop } from '../../cfop/shared/cfop.model';\r\n\r\nexport interface DialogData {\r\n orcamentoItemId: number;\r\n Orcamento: any;\r\n}\r\n\r\n@Component({\r\n selector: 'orcamento-item',\r\n templateUrl: 'orcamento-item.component.html',\r\n})\r\n\r\nexport class OrcamentoItemComponent {\r\n\r\n Orcamento: any = {};\r\n orcamentoItemForm: FormGroup;\r\n maximizado: boolean;\r\n orcamentoItemId: number;\r\n orcamentoitem: any = {};\r\n cfops: Cfop[];\r\n produtos: Produto[] = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public dialogData: DialogData,\r\n private orcamentoService: OrcamentoService,\r\n private cfopService: CfopService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.Orcamento = this.dialogData.Orcamento;\r\n\r\n this.orcamentoItemId = this.dialogData.orcamentoItemId;\r\n\r\n this.orcamentoItemForm = this._formBuilder.group(new OrcamentoItem());\r\n\r\n this.orcamentoItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.orcamentoItemForm.get('orcamentoId').setValue(this.Orcamento.orcamentoId);\r\n\r\n this.onChanges();\r\n\r\n this.buscarOrcamentoItem();\r\n\r\n this.restaurarDialog();\r\n\r\n this.orcamentoItemForm.get('produtoTipo').setValue(1);\r\n }\r\n\r\n onChanges(): void {\r\n\r\n let produtoTipo = 0;\r\n\r\n this.orcamentoItemForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.orcamentoService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: this.orcamentoItemForm.get('produtoTipo').value\r\n }) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.produtos = data.body\r\n );\r\n }\r\n\r\n buscarOrcamentoItem() {\r\n if (this.orcamentoItemId > 0) {\r\n\r\n this.orcamentoService.getOrcamentoItem(this.orcamentoItemId).subscribe(data => {\r\n\r\n this.orcamentoItemForm.patchValue(data.body);\r\n\r\n this.orcamentoItemForm.get('produtoAutoComplete').setValue(data.body.descricao);\r\n\r\n });\r\n }\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n salvar(OrcamentoItemForm) {\r\n\r\n if (this.orcamentoItemId == 0) {\r\n\r\n OrcamentoItemForm.orcamentoId = this.Orcamento.orcamentoId;\r\n\r\n this.orcamentoService.postIncluiOrcamentoItem(OrcamentoItemForm.value).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.orcamentoService.putAtualizaOrcamentoItem(OrcamentoItemForm.value, OrcamentoItemForm.value.orcamentoItemId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n };\r\n\r\n\r\n DeterminaprodutoId(produto: Produto) {\r\n\r\n this.orcamentoItemForm.get('produtoId').setValue(produto.produtoId);\r\n this.orcamentoItemForm.get('codProd').setValue(produto.codProd);\r\n this.orcamentoItemForm.get('descricao').setValue(produto.descricao);\r\n this.orcamentoItemForm.get('unidade').setValue(produto.unTributaria);\r\n this.orcamentoItemForm.get('valorUnitario').setValue(produto.vlrTributario);\r\n this.orcamentoItemForm.get('informacoesAdicionais').setValue(produto.infAdProd);\r\n this.orcamentoItemForm.get('ncm').setValue(produto.ncm);\r\n this.orcamentoItemForm.get('grupoContaId').setValue(produto.grupoContaId);\r\n }\r\n\r\n OnChangeqtdComercial(qtdComercial: any) {\r\n\r\n let vlrComercial = this.orcamentoItemForm.get('valorUnitario').value;\r\n let valorTotal = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.orcamentoItemForm.get('valorTotal').setValue(valorTotal.toFixed(2));\r\n this.orcamentoItemForm.get('quantidade').setValue(qtdComercial);\r\n }\r\n\r\n OnChangevlrComercial(vlrComercial: any) {\r\n\r\n let qtdComercial = this.orcamentoItemForm.get('quantidade').value;\r\n let valorTotal = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.orcamentoItemForm.get('valorTotal').setValue(valorTotal.toFixed(2));\r\n this.orcamentoItemForm.get('valorUnitario').setValue(vlrComercial);\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n}\r\n","\r\n
          \r\n

          Item do Orcamento

          \r\n \r\n
          \r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n\r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n Tipo de Produto\r\n \r\n Produto Acabado\r\n Serviço\r\n Uso e Consumo\r\n Ativo Imobilizado\r\n \r\n \r\n
          \r\n
          \r\n \r\n Produto/Serviço\r\n \r\n \r\n \r\n {{produto.descricao}} - R$ {{produto.vlrComercial | number:'1.2-2'}}\r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n Quantidade Comercial\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n
          \r\n
          \r\n \r\n Código do Produto\r\n \r\n \r\n \r\n Descrição\r\n \r\n \r\n
          \r\n
          \r\n \r\n Unidade Comercial\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Quantidade Comercial\r\n \r\n \r\n
          \r\n
          \r\n \r\n Informações Adicionais do Produto\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor Total\r\n \r\n \r\n \r\n Valor Frete\r\n \r\n \r\n \r\n Valor do Seguro\r\n \r\n \r\n \r\n Valor do Desconto\r\n \r\n \r\n \r\n Outras despesas acessórias\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n","export class OrcamentoParcelaDataVencimento {\r\n orcamento: any;\r\n dataVencimento: any;\r\n}\r\n","export class VendaParcelaDataVencimentoDto {\r\n venda: any;\r\n dataVencimento: any;\r\n}\r\n","\r\nexport class OrcamentoItem {\r\n orcamentoItemId: number = 0;\r\n orcamentoId: number = 0;\r\n produtoId: number = 0;\r\n descricao: string = '';\r\n codProd: string = '';\r\n \r\n unidade: string = '';\r\n informacoesAdicionais: string = '';\r\n produtoTipo: number = 0;\r\n ncm: string = '';\r\n saguiClienteId: number = 0;\r\n grupoContaId: number = 0;\r\n \r\n valorUnitario: number = 0;\r\n quantidade: number = 0;\r\n\r\n valorTotal: number = 0;\r\n valorDesconto: number = 0;\r\n valorBruto: number = 0;\r\n\r\n valorIcms: number = 0;\r\n valorIpi: number = 0;\r\n\r\n valorFrete: number = 0;\r\n valorSeguro: number = 0;\r\n\r\n valorOutrasDespesas: number = 0;\r\n}","export class OrcamentoParcela {\r\n orcamentoParcelaId: number = 0;\r\n dataVencimento: Date = new Date();\r\n valorParcela: number = 0;\r\n valorDesconto: number = 0;\r\n valorBruto: number = 0;\r\n valorLiquido: number = 0;\r\n tipoPagamento: number = 0;\r\n textoAdicional: string = '';\r\n orcamentoId: number = 0;\r\n produtoTipo: number = 0;\r\n saguiClienteId: number = 0;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class OrcamentoService {\r\n\r\n postVisualizaOrcamentosPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getVendedores(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizatodosvendedores', { observe: 'response' })\r\n }\r\n\r\n getTransportadoras(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/transportadoras', { observe: 'response' })\r\n }\r\n\r\n getOrcamento(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n\r\n getClientePorNome(nome: any): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl +'/api/orcamento/visualizaclientepornome',\r\n { observe: 'response', params }\r\n );\r\n }\r\n\r\n getFornecedorPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/visualizafornecedor/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorNome(nome: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/visualizafornecedorpornome/' + nome, { observe: 'response' })\r\n }\r\n\r\n postOrcamento(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putOrcamento(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaStatus(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/atualizastatus/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteOrcamento(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getOrcamentoItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiOrcamentoItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoitem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaOrcamentoItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteOrcamentoItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n\r\n const params = {\r\n idOrigem: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n tipoDestino: parametros.tipoDestino\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/orcamento/visualizadocumentopororigemdestino', { observe: 'response', params })\r\n }\r\n\r\n postGerarVenda(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/gerarvenda', item, { observe: 'response' })\r\n };\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/orcamento/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n getEstoqueByProduto(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoitem/visualizaestoqueporproduto/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postCalculaImposto(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoitem/calculaimposto', item, { observe: 'response' })\r\n };\r\n\r\n getListaServicos(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n getListaServico(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizaporid/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postDefinirComoenviadoAoCliente(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/definircomoenviadoaocliente', item, { observe: 'response' })\r\n };\r\n\r\n postVisualizaOrcamentoParcelaPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n getOrcamentoParcela(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postOrcamentoParcela(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n postGerarorcamentoParcelasProduto(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/gerarparcelasproduto/', item, { observe: 'response' })\r\n };\r\n\r\n postGerarorcamentoParcelasServico(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/gerarparcelasservico/', item, { observe: 'response' })\r\n };\r\n\r\n putOrcamentoParcela(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteOrcamentoParcela(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/orcamentoparcela/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postImprimir(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/imprimir/', item, { observe: 'response' })\r\n };\r\n putDescontosAdicionais(DescontoDto: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/orcamento/descontos-adicionais/', DescontoDto, { observe: 'response' })\r\n }\r\n\r\n retornarStatus(status: number): string {\r\n let textoStatus = \"\";\r\n\r\n switch (status) {\r\n case 0:\r\n textoStatus = \"Em Criação\";\r\n break;\r\n case 1:\r\n textoStatus = \"Enviado ao Cliente\";\r\n break;\r\n case 2:\r\n textoStatus = \"Venda Efetivada\";\r\n break;\r\n case 3:\r\n textoStatus = \"Substituído\";\r\n break;\r\n case 4:\r\n textoStatus = \"Recusado\";\r\n break;\r\n case 99:\r\n textoStatus = \"Cancelado\";\r\n break;\r\n default:\r\n textoStatus = \"\";\r\n break;\r\n }\r\n\r\n return textoStatus;\r\n}\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class VendaConfigService {\r\n\r\n gets(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/visualizatodas/', { observe: 'response' })\r\n }\r\n\r\n get(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n getByEmpresaId(empresaId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/visualizaporidempresa/' + empresaId, { observe: 'response' })\r\n }\r\n\r\n post(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n put(item: any, itemId: number): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n getCfopPorEmpresa(empresaId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/visualizacfopporempresa/' + empresaId, { observe: 'response' })\r\n }\r\n\r\n getgrupoContas(tpFatura: any, empresaId: any): Observable> {\r\n\r\n const params = {\r\n tpFatura: tpFatura,\r\n empresaId: empresaId,\r\n }\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/visualizatodosgruposconta/', { observe: 'response', params })\r\n }\r\n\r\n getCaixas(empresaId:any): Observable> {\r\n\r\n const params = {\r\n empresaId: empresaId,\r\n }\r\n\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaconfig/visualizatodoscaixas', { observe: 'response', params })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","export class VendaItem {\r\n\r\n vendaItemId: number = 0;\r\n\r\n nItem: number = 0;\r\n\r\n cfop: number = 0;\r\n\r\n produtoId: number = 0;\r\n\r\n produtoTipo: number = 0;\r\n\r\n vFrete: number = 0;\r\n\r\n vSeg: number = 0;\r\n\r\n vOutro: number = 0;\r\n\r\n indTot: number = 0;\r\n\r\n codProd: string = '';\r\n\r\n descricao: string = '';\r\n\r\n ncm: string = '';\r\n\r\n ean: string = '';\r\n\r\n eanTrib: string = '';\r\n\r\n unTributaria: string = '';\r\n\r\n qtdTributaria: number = 0;\r\n\r\n vlrTributario: number = 0;\r\n\r\n unComercial: string = '';\r\n\r\n qtdComercial: number = 0;\r\n\r\n vlrComercial: number = 0;\r\n\r\n extipi: number = 0;\r\n\r\n infAdProd: string = '';\r\n\r\n xPed: string = '';\r\n\r\n nItemPed: number = 0;\r\n\r\n orig: number = 0;\r\n\r\n vendaId: number = 0;\r\n\r\n estoqueId: number = 0;\r\n\r\n estoqueMovimentoId: number = 0;\r\n\r\n numLote: number = 0;\r\n\r\n estoqueLoteId: number = 0;\r\n\r\n valorServicos: number = 0;\r\n\r\n valorDeducoes: number = 0;\r\n\r\n issRetido: number = 0;\r\n\r\n baseCalculo: number = 0;\r\n\r\n valorPis: number = 0;\r\n\r\n valorCofins: number = 0;\r\n\r\n valorInss: number = 0;\r\n\r\n valorIr: number = 0;\r\n\r\n valorCsll: number = 0;\r\n\r\n valorIss: number = 0;\r\n\r\n outrasRetencoes: number = 0;\r\n\r\n aliquotaIssqn: number = 0;\r\n\r\n valorLiquidoNfse: number = 0;\r\n\r\n valorIssRetido: number = 0;\r\n\r\n descontoCondicionado: number = 0;\r\n\r\n descontoIncondicionado: number = 0;\r\n\r\n listaServico: string = '';\r\n\r\n cest: string = '';\r\n\r\n saguiClienteId: number = 0;\r\n\r\n icmsmodBC: number = 0;\r\n\r\n icmspRedBC: number = 0;\r\n\r\n icmsvBC: number = 0;\r\n\r\n icmspIcms: number = 0;\r\n\r\n icmsvIcms: number = 0;\r\n\r\n icmSorig: number = 0;\r\n\r\n icmspCredSN: number = 0;\r\n\r\n icmsvCredIcmsSN: number = 0;\r\n\r\n icmsSTmodBCST: number = 0;\r\n\r\n icmsSTpRedBCST: number = 0;\r\n\r\n icmsSTpMVAST: number = 0;\r\n\r\n icmsSTvBCST: number = 0;\r\n\r\n icmsSTpIcmsST: number = 0;\r\n\r\n icmsSTvIcmsST: number = 0;\r\n\r\n vBcSTRet: number = 0;\r\n\r\n pST: number = 0;\r\n\r\n vICMSSubstituto: number = 0;\r\n\r\n vICMSSTRet: number = 0;\r\n\r\n ipiclEnq: string = '';\r\n\r\n ipicEnq: string = '';\r\n\r\n ipiCNPJProd: string = '';\r\n\r\n ipicSelo: number = 0;\r\n\r\n ipiqSelo: number = 0;\r\n\r\n ipivBC: number = 0;\r\n\r\n ipipIpi: number = 0;\r\n\r\n ipiqUnid: number = 0;\r\n\r\n ipivUnid: number = 0;\r\n\r\n ipivIpi: number = 0;\r\n\r\n pisvBC: number = 0;\r\n\r\n pispPis: number = 0;\r\n\r\n pisqBCProd: number = 0;\r\n\r\n pisqUnid: number = 0;\r\n\r\n pisvUnid: number = 0;\r\n\r\n pisvPis: number = 0;\r\n\r\n pisvAliqProd: number = 0;\r\n\r\n pisSTvBC: number = 0;\r\n\r\n pisSTpPis: number = 0;\r\n\r\n pisSTvAliqProd: number = 0;\r\n\r\n pisSTqBCProd: number = 0;\r\n\r\n pisSTvPis: number = 0;\r\n\r\n cofinsvBC: number = 0;\r\n\r\n cofinspCofins: number = 0;\r\n\r\n cofinsqUnid: number = 0;\r\n\r\n cofinsvUnid: number = 0;\r\n\r\n cofinsvCofins: number = 0;\r\n\r\n cofinsSTvBC: number = 0;\r\n\r\n cofinsSTpCofins: number = 0;\r\n\r\n cofinsSTvAliqProd: number = 0;\r\n\r\n cofinsSTqBCProd: number = 0;\r\n\r\n cofinsSTvCofins: number = 0;\r\n\r\n cofinsSTqUnid: number = 0;\r\n\r\n cofinsSTvUnid: number = 0;\r\n\r\n cofinsvAliqProd: number = 0;\r\n\r\n cofinsqBCProd: number = 0;\r\n\r\n tipoCalculoIPI: number = 0;\r\n\r\n tipoCalculoPIS: number = 0;\r\n\r\n tipoCalculoPISST: number = 0;\r\n\r\n tipoCalculocofinsST: number = 0;\r\n\r\n tipoCalculocofins: number = 0;\r\n\r\n cstIcms: string = '';\r\n\r\n cstIpi: string = '';\r\n\r\n cstCofins: string = '';\r\n\r\n cstPis: string = '';\r\n\r\n icmsDifal: boolean = false;\r\n\r\n pesoLiquido: number = 0;\r\n\r\n pesoBruto: number = 0;\r\n\r\n grupoContaId: number = 0;\r\n\r\n valorIcms: number = 0;\r\n \r\n valorIpi: number = 0;\r\n\r\n valorTotal: number = 0;\r\n\r\n valorDesconto: number = 0;\r\n \r\n valorBruto: number = 0;\r\n}","export class VendaParcela {\r\n vendaParcelaId: number = 0;\r\n dataVencimento: Date = new Date();\r\n valorParcela: number = 0;\r\n valorBruto: number = 0;\r\n textoAdicional: string = '';\r\n vendaId: number = 0;\r\n tipoPagamento: number = 0;\r\n saguiClienteId: number = 0;\r\n}","import { DocumentoRelacionado } from \"src/app/Components/documentos-relacionados/shared/documentos-relacionados.model\";\r\n\r\nexport class Venda {\r\n vendaId: number = 0;\r\n\r\n vendaStatus: number = 0;\r\n\r\n faturaId: number = 0;\r\n\r\n remessaId: number = 0;\r\n\r\n indPag: number = 0;\r\n\r\n dataVenda: Date = new Date();\r\n\r\n dataCriacao: Date = new Date();\r\n\r\n comunicacaoInterna: string = '';\r\n\r\n dataPrevista: Date = new Date();\r\n\r\n idlocalEntrega: number = 0;\r\n\r\n idlocalRetirada: number = 0;\r\n\r\n empresaId: number = 0;\r\n\r\n saguiClienteId: number = 0;\r\n\r\n razaoSocialCliente: string = '';\r\n\r\n modFrete: number = 0;\r\n\r\n transportadoraId: number = 0;\r\n\r\n qVol: number = 0;\r\n\r\n especie: string = '';\r\n\r\n tipoEntrega: number = 0;\r\n\r\n pesoBruto: number = 0;\r\n\r\n pesoLiquido: number = 0;\r\n\r\n indFinal: number = 0;\r\n\r\n indPres: number = 0;\r\n\r\n modNFe: number = 0;\r\n\r\n pagoDinheiro: number = 0;\r\n\r\n pagoDinheiroTroco: number = 0;\r\n\r\n pagoCartaoDebito: number = 0;\r\n\r\n pagoCartaoCredito: number = 0;\r\n\r\n pagoBoleto: number = 0;\r\n\r\n pagoTransferencia: number = 0;\r\n\r\n pagoCheque: number = 0;\r\n\r\n pagoValeRefeicao: number = 0;\r\n\r\n clienteId: number = 0;\r\n\r\n tipoPagamento: number = 0;\r\n\r\n vendaTipo: number = 0;\r\n\r\n nfeId: number = 0;\r\n\r\n valorPis: number = 0;\r\n\r\n valorPisSt: number = 0;\r\n\r\n valorCofins: number = 0;\r\n\r\n valorCofinsSt: number = 0;\r\n\r\n valorInss: number = 0;\r\n\r\n valorIr: number = 0;\r\n\r\n valorCsll: number = 0;\r\n\r\n valorIss: number = 0;\r\n\r\n valorLiquido: number = 0;\r\n\r\n valorBruto: number = 0;\r\n\r\n valorAposRetencoes: number = 0;\r\n\r\n valorIcms: number = 0;\r\n\r\n valorIcmsSt: number = 0;\r\n\r\n valorIpi: number = 0;\r\n\r\n issRetido: boolean = false;\r\n\r\n pisRetido: boolean = false;\r\n\r\n cofinsRetido: boolean = false;\r\n\r\n csllRetido: boolean = false;\r\n\r\n irRetido: boolean = false;\r\n\r\n inssRetido: boolean = false;\r\n vendedorId: number = 0;\r\n cartaoCreditocontaCorrenteTerminalCartaoId: number = 0;\r\n cartaoCreditocodigoAutenticacao: string = '';\r\n cartaoCreditonumeroDoComprovanteDeVenda: string = '';\r\n cartaoCreditonumeroParcelas: number = 0;\r\n cartaoDebitocontaCorrenteTerminalCartaoId: number = 0;\r\n cartaoDebitocodigoAutenticacao: string = '';\r\n cartaoDebitonumeroDoComprovanteDeVenda: string = '';\r\n numeroParcelas: number = 1;\r\n diaVencimento: number = 1;\r\n valorTotal: number = 0;\r\n valorDesconto: number = 0;\r\n descontosItensEmReais: number = 0;\r\n descontosAdicionaisEmReais: number = 0;\r\n somaTotalDescontosEmReais: number = 0;\r\n descontosItensEmPorcentagem: number = 0;\r\n descontosAdicionaisEmPorcentagem: number = 0;\r\n somaTotalDescontosEmPorcentagem: number = 0;\r\n naturezaVenda: NaturezaVenda = 0;\r\n vendaEmpresas: any[] = [];\r\n vendaItens: any[] = [];\r\n vendaParcelas: any[] = [];\r\n documentos: DocumentoRelacionado[] = [];\r\n}\r\n//enum for naturezaVenda\r\nexport enum NaturezaVenda {\r\n novaVenda = 0,\r\n renovacao = 1,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class VendaService {\r\n\r\n postVisualizaVendasPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizatodas/', item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaVendasPorPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/vendasporperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaVendasPorProdutoPeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/vendasporprodutoperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postVisualizaVendasPorClientePeriodo(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/vendasporclienteperiodo/', item, { observe: 'response' })\r\n }\r\n\r\n postFaturarPorFiltro(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/faturarporfiltro/', item, { observe: 'response' })\r\n }\r\n\r\n getEmpresa(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizatodasempresas', { observe: 'response' })\r\n }\r\n\r\n getVendedores(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizatodosvendedores', { observe: 'response' })\r\n }\r\n\r\n getTransportadoras(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/transportadoras', { observe: 'response' })\r\n }\r\n\r\n getVenda(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizacliente/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getClientePorNome(nome: any): Observable> {\r\n const params = new HttpParams().set('id', nome);\r\n return this.http.get(\r\n `${environment.webApiSaguiControlUrl}/api/venda/visualizaclientepornome`,\r\n { observe: 'response', params }\r\n );\r\n }\r\n \r\n\r\n getFornecedorPorId(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizafornecedor/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getFornecedorPorNome(nome: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizafornecedorpornome/' + nome, { observe: 'response' })\r\n }\r\n\r\n getCodigoBarras(codBarras: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizacodigobarrasdoproduto/' + codBarras, { observe: 'response' })\r\n }\r\n\r\n postVenda(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n postPdv(item: any): Observable>{\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/incluipdv/', item, { observe: 'response' })\r\n };\r\n\r\n putVenda(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/venda/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteVenda(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/venda/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getVendaItem(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaitem/visualiza/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postIncluiVendaItem(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/vendaitem/inclui/', item, { observe: 'response' })\r\n };\r\n\r\n putAtualizaVendaItem(item: any, itemId: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/vendaitem/atualiza/' + itemId, item, { observe: 'response' })\r\n };\r\n\r\n deleteVendaItem(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/vendaitem/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n deleteVendaParcela(itemId: any): Observable> {\r\n return this.http.delete(\r\n environment.webApiSaguiControlUrl + '/api/vendaparcela/exclui/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getVisualizaDocumento(parametros: any): Observable> {\r\n\r\n const params = {\r\n idOrigem: parametros.idOrigem,\r\n tipoOrigem: parametros.tipoOrigem,\r\n tipoDestino: parametros.tipoDestino\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/venda/visualizadocumentopororigemdestino', { observe: 'response', params })\r\n }\r\n\r\n postGeraFatura(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerarfatura', item, { observe: 'response' })\r\n };\r\n\r\n postGerarContrato(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerarcontrato', item, { observe: 'response' })\r\n };\r\n\r\n postGeraNFe(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerarnfe', item, { observe: 'response' })\r\n };\r\n\r\n postGeraNFeDevolucao(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerarnfedevolucao', item, { observe: 'response' })\r\n };\r\n\r\n postGeraRemessa(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerarremessa', item, { observe: 'response' })\r\n };\r\n\r\n postMovimentaEstoque(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/movimentarestoques', item, { observe: 'response' })\r\n };\r\n\r\n postGeraDevolucao(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerardevolucao', item, { observe: 'response' })\r\n };\r\n\r\n postGeraDevolucaoEstoque(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/venda/gerardevolucaoestoque', item, { observe: 'response' })\r\n };\r\n\r\n getProdutoPorNome(parametros: any): Observable> {\r\n\r\n const params = {\r\n id: parametros.id,\r\n tipoProduto: parametros.tipoProduto,\r\n }\r\n\r\n return this.http.get(environment.webApiSaguiControlUrl + '/api/venda/autocompleteproduto', { observe: 'response', params })\r\n }\r\n\r\n getEstoqueByProduto(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/vendaitem/visualizaestoqueporproduto/' + itemId, { observe: 'response' })\r\n }\r\n\r\n postCalculaImposto(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/vendaitem/calculaimposto', item, { observe: 'response' })\r\n };\r\n\r\n getListaServicos(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodas', { observe: 'response' })\r\n }\r\n\r\n getListaServicoCadastrados(empresaId): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizatodascadastradas/' + empresaId, { observe: 'response' })\r\n }\r\n\r\n getListaServico(itemId: any): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/servicolista/visualizaporid/' + itemId, { observe: 'response' })\r\n }\r\n\r\n getContaCorrenteTerminais(): Observable> {\r\n return this.http.get(\r\n environment.webApiSaguiControlUrl + '/api/venda/visualizatodosterminais/', { observe: 'response' })\r\n }\r\n\r\n postGerarParcelas(item: any): Observable> {\r\n return this.http.post(\r\n environment.webApiSaguiControlUrl + '/api/vendaparcela/gerarparcelas', item, { observe: 'response' })\r\n };\r\n\r\n putDescontosAdicionais(DescontoDto: any): Observable> {\r\n return this.http.put(\r\n environment.webApiSaguiControlUrl + '/api/venda/descontos-adicionais/', DescontoDto, { observe: 'response' })\r\n }\r\n\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { VendaService } from '../shared/venda.service';\r\nimport { VendaItemComponent } from '../venda-item/venda-item.component';\r\nimport { MunicipioService } from '../../municipio/shared/municipio.service';\r\n\r\nimport { RemessaCadastroComponent } from '../../remessa/remessa-cadastro/remessa-cadastro.component';\r\nimport { DocumentoCadastroComponent } from '../../documento/documento-cadastro/documento-cadastro.component';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\nimport { ConfirmDialogComponent } from '../../core/dialogs/confirm-dialog/confirm-dialog.component';\r\nimport { FaturaCadastroComponent } from '../../fatura/fatura-cadastro/fatura-cadastro.component';\r\n\r\nimport { HtmlPrinterService } from '../../core/html-printer/html-printer.service';\r\n\r\nimport { Venda } from '../shared/venda.model';\r\nimport { Transportadora } from '../../transportadora/shared/transportadora.model';\r\nimport { VendaDevolucaoComponent } from '../venda-devolucao/venda-devolucao.component';\r\nimport { NfeCadastroComponent } from '../../fiscal/nfe-cadastro/nfe-cadastro.component';\r\nimport { NfeInboundImportarComponent } from '../../fiscal/nfe-inbound-importar/nfe-inbound-importar.component';\r\nimport { DocumentoService } from 'src/app/documento/shared/documento.service';\r\nimport { ClienteCadastroComponent } from 'src/app/cliente/cliente-cadastro/cliente-cadastro.component';\r\nimport { VendaParcela } from '../shared/venda-parcela.model';\r\nimport { ContratoCadastroComponent } from 'src/app/juridico/contrato-cadastro/contrato-cadastro.component';\r\nimport { VendaItem } from '../shared/venda-item.model';\r\nimport { Produto } from 'src/app/produto/shared/produto.model';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\nimport { OrdemServicoService } from 'src/app/ordem-servico/shared/ordem-servico.service';\r\nimport { VendaParcelaDataVencimentoDto } from '../shared/VendaParcelaDataVencimentoDto.model';\r\nimport { VendaConfigService } from '../shared/venda-config.service';\r\nimport { DescontoAdicionalComponent } from '../desconto-adicional/desconto-adicional.component';\r\n\r\nexport interface DialogData {\r\n vendaId: number;\r\n vendaTipo: number;\r\n}\r\n\r\n@Component({\r\n selector: 'venda-cadastro',\r\n templateUrl: 'venda-cadastro.component.html',\r\n})\r\n\r\nexport class VendaCadastroComponent {\r\n\r\n venda: any = {};\r\n empresa: any = {};\r\n transportadora: Transportadora;\r\n cliente: any = {};\r\n localEntrega: any = {};\r\n localRetirada: any = {};\r\n empresas: any = [];\r\n vendedores: any = [];\r\n vendas: any = [];\r\n transportadoras: Transportadora[];\r\n clientes: any[];\r\n locaisRetirada: any[];\r\n locaisEntrega: any[];\r\n vendaCadastroForm: FormGroup;\r\n vendaItemForm: FormGroup;\r\n maximizado: boolean;\r\n vendaParcelas: any = [];\r\n produtos: any = [];\r\n cfops: any = [];\r\n listaServicos: any = [];\r\n panelOpenState = true;\r\n IsExistente: boolean = false;\r\n dataVencimentoParcela: FormGroup;\r\n currentDate = new Date();\r\n parceirosEncontrados: boolean = true;\r\n vendaConfig: any;\r\n servicoLista: any;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n private htmlPrinterService: HtmlPrinterService,\r\n @Inject(MAT_DIALOG_DATA) public IVenda: DialogData,\r\n private vendaService: VendaService,\r\n private municipioService: MunicipioService,\r\n private documentoService: DocumentoService,\r\n private cfopService: CfopService,\r\n private OrdemServicoService: OrdemServicoService,\r\n private vendaConfigService: VendaConfigService) {\r\n }\r\n\r\n ngOnInit() {\r\n const brTime = this.currentDate.toLocaleString(\"en-US\", {timeZone: \"America/Sao_Paulo\"});\r\n this.currentDate = new Date(brTime);\r\n this.maximizado = false;\r\n\r\n this.dataVencimentoParcela = new FormGroup({\r\n dataVencimentoParcela: new FormControl(new Date())\r\n });\r\n\r\n this.vendaCadastroForm = this._formBuilder.group(new Venda());\r\n this.vendaItemForm = this._formBuilder.group(new VendaItem());\r\n\r\n this.vendaItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.vendaItemForm.get('vendaId').setValue(this.venda.vendaId);\r\n\r\n this.vendaItemForm.get('orig').setValue(0);\r\n\r\n if (this.IVenda.vendaTipo == 1) {\r\n this.vendaItemForm.get('produtoTipo').setValue(1);\r\n }\r\n\r\n if (this.IVenda.vendaId > 0) {\r\n\r\n this.vendaItemForm.get('vendaId').setValue(this.IVenda.vendaId);\r\n\r\n this.buscarVenda(this.IVenda.vendaId);\r\n\r\n } else {\r\n this.venda = {};\r\n this.venda.vendaId = 0;\r\n this.venda.dataVenda = new Date();\r\n this.venda.dataPrevista = new Date();\r\n this.venda.vendaTipo = this.IVenda.vendaTipo;\r\n\r\n if (this.venda.vendaTipo == 0) {\r\n this.vendaCadastroForm.get('modNFe').setValue(55);//NF-e\r\n }\r\n else {\r\n this.vendaCadastroForm.get('modNFe').setValue(99);//Serviço\r\n }\r\n this.vendaCadastroForm.get('vendaTipo').setValue(this.venda.vendaTipo);\r\n this.vendaCadastroForm.get('indPag').setValue(2);\r\n this.vendaCadastroForm.get('indFinal').setValue(0);\r\n this.vendaCadastroForm.get('indPres').setValue(0);\r\n this.vendaCadastroForm.get('modFrete').setValue(0);\r\n }\r\n\r\n this.buscarEmpresas();\r\n\r\n this.buscarFuncionarios();\r\n\r\n this.buscarTransportadoras();\r\n\r\n this.vendaCadastroForm.addControl('clienteAutoComplete', new FormControl(''));\r\n\r\n this.vendaCadastroForm.addControl('localRetiradaAutoComplete', new FormControl(''));\r\n\r\n this.vendaCadastroForm.addControl('localEntregaAutoComplete', new FormControl(''));\r\n this.onChanges();\r\n\r\n this.maximizarDialog();\r\n\r\n }\r\n\r\n trackByIndex(index: number, obj: any): any {\r\n return index;\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.vendaItemForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.vendaService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: this.vendaItemForm.get('produtoTipo').value\r\n }) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.produtos = data.body\r\n );\r\n\r\n this.vendaCadastroForm\r\n .get('clienteAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.vendaService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.putDataInParceiros(data)\r\n );\r\n\r\n this.vendaCadastroForm\r\n .get('localRetiradaAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.vendaService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.locaisRetirada = data.body\r\n );\r\n\r\n this.vendaCadastroForm\r\n .get('localEntregaAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.vendaService.getClientePorNome(value) : []\r\n )\r\n )\r\n .subscribe(data => this.locaisEntrega = data.body);\r\n\r\n this.vendaCadastroForm\r\n .get('issRetido')\r\n .valueChanges\r\n .subscribe(data => this.calculaValorSemRetencoes());\r\n\r\n this.vendaCadastroForm\r\n .get('pisRetido')\r\n .valueChanges\r\n .subscribe(data => this.calculaValorSemRetencoes());\r\n\r\n this.vendaCadastroForm\r\n .get('cofinsRetido')\r\n .valueChanges\r\n .subscribe(data => this.calculaValorSemRetencoes());\r\n\r\n this.vendaCadastroForm\r\n .get('csllRetido')\r\n .valueChanges\r\n .subscribe(data => this.calculaValorSemRetencoes());\r\n\r\n this.vendaCadastroForm\r\n .get('irRetido')\r\n .valueChanges\r\n .subscribe(data => this.calculaValorSemRetencoes());\r\n\r\n this.vendaCadastroForm\r\n .get('inssRetido')\r\n .valueChanges\r\n .subscribe(data => this.calculaValorSemRetencoes());\r\n\r\n this.vendaCadastroForm\r\n .get('empresaId')\r\n .valueChanges\r\n .subscribe(data => this.buscaCfop(data));\r\n }\r\n\r\n getVendaConfigByEmpresaId(venda){\r\n\r\n this.vendaConfigService.getByEmpresaId(venda.empresaId).subscribe(data => {\r\n this.vendaConfig = data?.body\r\n });\r\n }\r\n\r\n buscarEmpresas() {\r\n\r\n this.vendaService.getEmpresa().subscribe(data => {\r\n this.empresas = data.body;\r\n\r\n if (this.empresas?.length > 0 && this.vendaCadastroForm?.value?.empresaId == 0){\r\n this.vendaCadastroForm.get('empresaId').setValue(this.empresas[0].empresaId);\r\n\r\n this.buscaListaServico(this.empresas[0].empresaId);\r\n }\r\n\r\n });\r\n }\r\n\r\n putDataInParceiros(data){\r\n\r\n this.clientes = data.body;\r\n this.parceirosEncontrados = true;\r\n if(this?.clientes?.length == 0){\r\n this.parceirosEncontrados = false;\r\n }\r\n}\r\n\r\n buscarFuncionarios() {\r\n\r\n this.vendaService.getVendedores().subscribe(data => {\r\n\r\n this.vendedores = data.body;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n buscarTransportadoras() {\r\n\r\n this.vendaService.getTransportadoras().subscribe(data => {\r\n\r\n this.transportadoras = data.body;\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n let innerWidth = window.innerWidth;\r\n\r\n if (innerWidth < 1024) {\r\n this.dialogRef.updateSize('90%', '100vh');\r\n }\r\n else {\r\n this.dialogRef.updateSize('60%', '100vh');\r\n }\r\n this.maximizado = false;\r\n }\r\n\r\n buscaListaServico(empresaId) {\r\n this.vendaService.getListaServicoCadastrados(empresaId).subscribe(data => {\r\n this.listaServicos = data.body;\r\n });\r\n }\r\n\r\n buscarVenda(vendaId: number) {\r\n\r\n this.vendaService.getVenda(vendaId).subscribe(data => {\r\n\r\n this.InsereDadosVenda(data.body);\r\n this.getVendaConfigByEmpresaId(data.body);\r\n\r\n if (data.body.vendaTipo == 1) {\r\n this.buscaListaServico(data.body.empresaId);\r\n }\r\n\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n\r\n\r\n this.OrdemServicoService.checkIfOrdemServicoExistsByVendaId(vendaId).subscribe(data => {\r\n this.IsExistente = data.body;\r\n })\r\n }\r\n\r\n\r\n InsereDadosVenda(data: any) {\r\n\r\n\r\n this.vendaCadastroForm.patchValue(data);\r\n\r\n this.vendaCadastroForm.get('clienteAutoComplete').setValue(data.cliente.nomeFantasia);\r\n if(data?.vendaParcelas?.length > 0){\r\n this.dataVencimentoParcela.get('dataVencimentoParcela').setValue(new Date(data.vendaParcelas[0].dataVencimento));\r\n\r\n }\r\n\r\n if (data.cliente.logradouroEntrega != undefined && data.cliente.logradouroEntrega != null) {\r\n this.localEntrega.logradouro = data.cliente.logradouroEntrega;\r\n this.localEntrega.numero = data.cliente.numeroEntrega;\r\n this.localEntrega.bairro = data.cliente.bairroEntrega;\r\n this.localEntrega.cep = data.cliente.cepEntrega;\r\n\r\n if (data.cliente.municipioEntregaId > 0) {\r\n\r\n this.municipioService.getMunicipio(data.cliente.municipioEntregaId).subscribe(dataMunicipio => {\r\n\r\n this.localEntrega.municipio = dataMunicipio.body;\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n }\r\n\r\n }\r\n this.venda.idlocalEntrega = data.idLocalEntrega;\r\n\r\n\r\n\r\n const promiselocalEntrega = new Promise((resolve, reject) => {\r\n\r\n if (this.venda.idlocalEntrega) {\r\n this.vendaService.getClientePorId(this.venda.idlocalEntrega).subscribe(data => {\r\n\r\n this.localEntrega = data.body;\r\n this.vendaCadastroForm.get('localEntregaAutoComplete').setValue(this.localEntrega.nomeFantasia);\r\n\r\n resolve();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n resolve();\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n\r\n const promiselocalRetirada = new Promise((resolve, reject) => {\r\n\r\n if (this.venda.idlocalRetirada) {\r\n this.vendaService.getClientePorId(this.venda.idlocalRetirada).subscribe(data => {\r\n\r\n this.localRetirada = data.body;\r\n this.vendaCadastroForm.get('localRetiradaAutoComplete').setValue(this.localRetirada.nomeFantasia);\r\n resolve();\r\n\r\n }, (error: HttpErrorResponse) => {\r\n resolve();\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n\r\n Promise.all([promiselocalEntrega, promiselocalRetirada]).then(values => {\r\n\r\n this.venda = data;\r\n this.venda.dataVenda = new Date(data.dataVenda);\r\n this.venda.dataPrevista = new Date(data.dataPrevista);\r\n this.venda.indPag = data.indPag.toString();\r\n this.cliente = this.venda.cliente;\r\n this.empresa = data.empresa;\r\n this.transportadora = data.transportadora;\r\n\r\n this.venda.totalVenda = 0;\r\n this.venda.totalDescontos = 0;\r\n this.venda.totalGeral = 0;\r\n\r\n var arrayLength = this.venda.vendaItens.length;\r\n\r\n for (var i = 0; i < arrayLength; i++) {\r\n\r\n this.venda.totalVenda = this.venda.totalVenda + this.venda.vendaItens[i].valorTotal;\r\n this.venda.totalDescontos = this.venda.totalDescontos + this.venda.vendaItens[i].valorDesconto;\r\n }\r\n\r\n this.venda.totalGeral = this.venda.totalVenda - this.venda.totalDescontos;\r\n\r\n let modalidadeFrete = \"\";\r\n\r\n switch (this.venda.modFrete) {\r\n case 0:\r\n modalidadeFrete = \"Contratação do frete por conta do remetente(CIF)\";\r\n break;\r\n case 1:\r\n modalidadeFrete = \"Contratação do frete por conta do destinatário(FOB)\";\r\n break;\r\n case 2:\r\n modalidadeFrete = \"Transporte próprio por conta do remetente\";\r\n break;\r\n case 3:\r\n modalidadeFrete = \"Transporte próprio por conta do destinatário\";\r\n break;\r\n case 9:\r\n modalidadeFrete = \"Sem ocorrência de transporte\";\r\n break;\r\n }\r\n\r\n this.venda.modalidadeFrete = modalidadeFrete;\r\n this.vendas = [];\r\n this.vendas.push(this.venda);\r\n\r\n let parcelas = this.venda.vendaParcelas;\r\n\r\n let parcelasLength = parcelas.length;\r\n\r\n this.vendaParcelas = [];\r\n\r\n for (var i = 0; i < parcelasLength; i++) {\r\n\r\n let parcela: VendaParcela = new VendaParcela();\r\n\r\n parcela.dataVencimento = new Date(parcelas[i].dataVencimento);\r\n parcela.vendaParcelaId = parcelas[i].vendaParcelaId;\r\n parcela.valorParcela = parcelas[i].valorParcela;\r\n parcela.vendaId = this.vendaCadastroForm.get('vendaId').value;\r\n\r\n this.vendaParcelas.push(parcela);\r\n\r\n }\r\n\r\n if (this.venda.vendaStatus == 4) {\r\n this.vendaCadastroForm.disable();\r\n }\r\n\r\n if (this.venda.vendaTipo > 2) {\r\n\r\n this.vendaCadastroForm.disable();\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n determinaCliente(cliente: any) {\r\n this.vendaCadastroForm.get('clienteId').setValue(cliente.clienteId);\r\n this.vendaCadastroForm.get('issRetido').setValue(cliente.retidoIssqn);\r\n this.vendaCadastroForm.get('pisRetido').setValue(cliente.retidoPis);\r\n this.vendaCadastroForm.get('cofinsRetido').setValue(cliente.retidoCofins);\r\n this.vendaCadastroForm.get('csllRetido').setValue(cliente.retidoCsll);\r\n this.vendaCadastroForm.get('irRetido').setValue(cliente.retidoIrrf);\r\n this.vendaCadastroForm.get('inssRetido').setValue(cliente.retidoInss);\r\n }\r\n\r\n DeterminalocalEntregaId(id: number) {\r\n this.vendaCadastroForm.get('idlocalEntrega').setValue(id);\r\n }\r\n\r\n DeterminalocalRetiradaId(id: number) {\r\n this.vendaCadastroForm.get('idlocalRetirada').setValue(id);\r\n }\r\n criarOrdemServico(vendaId: number) {\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente criar uma Ordem de Serviço?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.OrdemServicoService.postByVendaId(vendaId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Ordem de Serviço criada com sucesso\"\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.ngOnInit();}\r\n );\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n })\r\n\r\n }\r\n });\r\n\r\n }\r\n cancelarVenda(cancelarId) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente cancelar essa venda?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.vendaService.deleteVenda(cancelarId).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Registro Cancelado com Sucesso\"\r\n }\r\n });\r\n\r\n this.buscarVenda(cancelarId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n salvar(): void {\r\n\r\n if (this.vendaCadastroForm.value.clienteId == 0) {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n mensagem: \"Você deve selecionar o cliente\"\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!this.validarItensVenda()) {\r\n this._snackBar.open('Todos os itens devem ter quantidade maior que zero', 'Fechar', {\r\n duration: 5000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'bottom'\r\n });\r\n return;\r\n }\r\n\r\n if (this.vendaCadastroForm.value.vendaId == 0) {\r\n\r\n this.vendaService.postVenda(this.vendaCadastroForm.value).subscribe(data => {\r\n\r\n this.buscarVenda(data.body.vendaId);\r\n\r\n });\r\n\r\n } else {\r\n\r\n let vendaTemp = this.vendaCadastroForm.value;\r\n\r\n vendaTemp.vendaParcelas = this.vendaParcelas;\r\n\r\n this.vendaService.putVenda(vendaTemp, vendaTemp.vendaId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.buscarVenda(this.vendaCadastroForm.value.vendaId);\r\n\r\n\r\n });\r\n }\r\n\r\n };\r\n\r\n validarItensVenda(): boolean {\r\n const itens = this.venda?.vendaItens;\r\n \r\n if (!itens || itens.length === 0) {\r\n return false;\r\n }\r\n \r\n return itens.every(item => item && item.qtdComercial && item.qtdComercial > 0);\r\n }\r\n\r\n geraNFe(venda): void {\r\n\r\n this.vendaService.postGeraNFe(venda.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"NF-e Gerada com Sucesso\"\r\n }\r\n });\r\n\r\n this.VisualizaNFe(data.body.nfeId);\r\n\r\n });\r\n }\r\n\r\n geraRemessa(venda): void {\r\n\r\n this.vendaService.postGeraRemessa(venda.value).subscribe(data => {\r\n\r\n this.exibeRemessa(data.body.remessaId);\r\n\r\n });\r\n }\r\n\r\n geraDevolucao(vendaForm): void {\r\n\r\n let vendaTemp = vendaForm.value;\r\n\r\n const dialogRef = this.dialog.open(VendaDevolucaoComponent, {\r\n width: '300px',\r\n data: {\r\n empresaId: vendaTemp.empresaId,\r\n vendaTipo: this.IVenda.vendaTipo,\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n vendaTemp.cfop = result;\r\n vendaTemp.vendaItens = this.venda.vendaItens;\r\n\r\n this.vendaService.postGeraDevolucao(vendaTemp).subscribe(data => {\r\n\r\n this.exibeDevolucao(data.body.vendaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n GeraDevolucaoEstoque(venda): void {\r\n\r\n this.vendaService.postGeraDevolucaoEstoque(venda.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Entrada de Estoque realizada\"\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n exibeDevolucao(vendaId): void {\r\n\r\n const dialogRef = this.dialog.open(VendaCadastroComponent, {\r\n data: {\r\n vendaId: vendaId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarVenda(this.venda.vendaId);\r\n });\r\n\r\n }\r\n\r\n exibeRemessa(remessaId): void {\r\n\r\n const dialogRef = this.dialog.open(RemessaCadastroComponent, {\r\n data: {\r\n remessaId: remessaId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarVenda(this.venda.vendaId);\r\n });\r\n\r\n }\r\n\r\n imprimir(): void {\r\n let titulo = \"SaguiControl - Pedido de Venda\";\r\n\r\n this.htmlPrinterService.printDiv('printVenda', titulo);\r\n }\r\n\r\n openInfoDialog(titulo: string, mensagem: string): void {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: titulo,\r\n mensagem: mensagem\r\n }\r\n });\r\n\r\n }\r\n\r\n faturar(): void {\r\n\r\n let mensagem = \"Deseja realmente faturar essa Venda?\";\r\n\r\n if (this.vendaCadastroForm.value.vendaTipo == 0 && this.vendaCadastroForm.value.nfeId == 0) {\r\n mensagem += \" Recomendamos gerar a NF-e antes de Faturar\";\r\n }\r\n\r\n if(this.vendaCadastroForm.value.vendaItens.length == 0){\r\n return this.openInfoDialog(\"Erro\", \"Não é possível Faturar uma venda sem itens\");\r\n }\r\n\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: mensagem\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n this.vendaService.postGeraFatura(this.vendaCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Venda Faturada\"\r\n }\r\n });\r\n\r\n this.VisualizaFatura(data.body.faturaId);\r\n\r\n this.buscarVenda(this.venda.vendaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n PreencherTabela(cliente: any) {\r\n\r\n if (cliente != undefined) {\r\n this.venda.clienteId = cliente.clienteId;\r\n }\r\n }\r\n\r\n PreencherTabelalocalRetirada(localRetirada: any) {\r\n\r\n if (localRetirada != undefined) {\r\n this.venda.idlocalRetirada = localRetirada.clienteId;\r\n }\r\n }\r\n\r\n PreencherTabelalocalEntrega(localEntrega) {\r\n\r\n if (localEntrega != undefined) {\r\n this.venda.idlocalEntrega = localEntrega.clienteId;\r\n }\r\n }\r\n\r\n modalItem(vendaItemId: number): void {\r\n\r\n const dialogRef = this.dialog.open(VendaItemComponent, {\r\n data: {\r\n vendaItemId: vendaItemId,\r\n venda: this.vendaCadastroForm.value,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarVenda(this.venda.vendaId);\r\n });\r\n\r\n }\r\n\r\n deleteVendaItem(vendaItemId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir esse item?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.vendaService.deleteVendaItem(vendaItemId).subscribe(data => {\r\n\r\n this.buscarVenda(this.venda.vendaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n DeleteVendaParcela(vendaParcelaId: number) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Deseja realmente excluir essa parcela?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.vendaService.deleteVendaParcela(vendaParcelaId).subscribe(data => {\r\n\r\n this.buscarVenda(this.venda.vendaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n };\r\n\r\n VisualizaNFe(nfeId: number) {\r\n\r\n const dialogRef = this.dialog.open(NfeCadastroComponent, {\r\n data: {\r\n nfeId: nfeId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.buscarVenda(this.venda.vendaId);\r\n });\r\n\r\n }\r\n\r\n VisualizaFatura(faturaId: number) {\r\n\r\n const dialogRef = this.dialog.open(FaturaCadastroComponent, {\r\n data: {\r\n faturaId: faturaId,\r\n faturaTipo: 0\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n }\r\n\r\n calculaValorSemRetencoes() {\r\n\r\n if (this.vendaCadastroForm.get('valorBruto').value > 0) {\r\n var valorSemRetencoes = this.vendaCadastroForm.get('valorBruto').value;\r\n\r\n if (this.vendaCadastroForm.get('issRetido').value) {\r\n valorSemRetencoes = valorSemRetencoes - this.vendaCadastroForm.get('valorIss').value;\r\n }\r\n\r\n if (this.vendaCadastroForm.get('pisRetido').value) {\r\n valorSemRetencoes = valorSemRetencoes - this.vendaCadastroForm.get('valorPis').value;\r\n }\r\n\r\n if (this.vendaCadastroForm.get('cofinsRetido').value) {\r\n valorSemRetencoes = valorSemRetencoes - this.vendaCadastroForm.get('valorCofins').value;\r\n }\r\n\r\n if (this.vendaCadastroForm.get('csllRetido').value) {\r\n valorSemRetencoes = valorSemRetencoes - this.vendaCadastroForm.get('valorCsll').value;\r\n }\r\n\r\n if (this.vendaCadastroForm.get('irRetido').value) {\r\n valorSemRetencoes = valorSemRetencoes - this.vendaCadastroForm.get('valorIr').value;\r\n }\r\n\r\n if (this.vendaCadastroForm.get('inssRetido').value) {\r\n valorSemRetencoes = valorSemRetencoes - this.vendaCadastroForm.get('valorInss').value;\r\n }\r\n\r\n this.vendaCadastroForm.get('valorAposRetencoes').setValue(valorSemRetencoes);\r\n }\r\n }\r\n\r\n visualizaFluxoDocumentos(): void {\r\n\r\n const dialogRef = this.dialog.open(DocumentoCadastroComponent, {\r\n data: {\r\n tipoOrigem: 1,\r\n idDocumento: this.venda.vendaId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n }\r\n\r\n VerificaVendaTipo(vendaTipo: number) {\r\n\r\n switch (vendaTipo) {\r\n\r\n case 0:\r\n return 'Venda Produto';\r\n case 1:\r\n return 'Pedido de Venda';\r\n case 2:\r\n return 'Devolução Produto';\r\n case 3:\r\n return \"Devolução Serviço\";\r\n default:\r\n return 'Venda Produto';\r\n }\r\n }\r\n\r\n VerificavendaStatus(vendaStatus: number) {\r\n\r\n switch (vendaStatus) {\r\n\r\n case 0:\r\n return 'Em Criação';\r\n case 1:\r\n return 'Aguardando Compra';\r\n case 2:\r\n return 'Aguardando Produção';\r\n case 3:\r\n return \"Concluída\";\r\n case 4:\r\n return \"Com Devolução\";\r\n case 99:\r\n return \"Cancelada\";\r\n default:\r\n return 'Em criação';\r\n }\r\n }\r\n\r\n GeraNFeDevolucao(venda) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n width: '300px',\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Essa opção é apenas quando o seu cliente não tiver gerado uma NF-e de Devolução. Deseja realmente gerar uma NF-e de Entrada de Devolução?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.vendaService.postGeraNFeDevolucao(venda.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"NF-e Gerada com Sucesso\"\r\n }\r\n });\r\n\r\n this.VisualizaNFe(data.body.nfeId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n ReceberNFeDevolucaoCliente(venda) {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n width: '300px',\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: \"Essa opção é apenas quando o seu cliente emitir uma NF-e de Devolução. Você será redirecionado para a funcionalidade NF-e inbound. Deseja continuar?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n const dialogRef = this.dialog.open(NfeInboundImportarComponent, {\r\n maxHeight: '100vh',\r\n maxWidth: '100vw',\r\n data: {\r\n compraId: 0,\r\n vendaId: venda.value.vendaId\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.buscarVenda(this.venda.vendaId);\r\n\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n movimentaEstoque() {\r\n\r\n let parametros = {\r\n idOrigem: this.venda.vendaId,\r\n tipoOrigem: 1\r\n }\r\n\r\n this.documentoService.getVisualizaDocumento(parametros).subscribe(data => {\r\n\r\n let estoqueExistente = data.body;\r\n\r\n if (estoqueExistente.length > 0) {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Movimentar Estoque\",\r\n mensagem: \"Já existe uma saída de estoque para essa venda\"\r\n }\r\n });\r\n\r\n } else {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Movimentar Estoque\",\r\n mensagem: \"Deseja criar uma nova saída de estoque para essa venda?\"\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n this.enviarMovimentacaoEstoque();\r\n }\r\n\r\n });\r\n }\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n })\r\n });\r\n }\r\n\r\n enviarMovimentacaoEstoque() {\r\n\r\n this.vendaService.postMovimentaEstoque(this.vendaCadastroForm.value).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Saídas de Estoque realizadas!\"\r\n }\r\n })\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n })\r\n });\r\n }\r\n\r\n clienteModal(clienteId: number, clienteNome: string) {\r\n\r\n const dialogRef = this.dialog.open(ClienteCadastroComponent, {\r\n data: {\r\n clienteId: clienteId,\r\n clienteNome: clienteNome\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.vendaCadastroForm.get('parceiroAutoComplete').setValue(result.nomeFantasia);\r\n this.vendaCadastroForm.get('parceiroId').setValue(result.clienteId);\r\n\r\n this.parceirosEncontrados = true;\r\n });\r\n };\r\n\r\n gerarParcelas(venda) {\r\n\r\n const vendaParcelaDataVencimentoDto = new VendaParcelaDataVencimentoDto();\r\n\r\n vendaParcelaDataVencimentoDto.venda = venda;\r\n vendaParcelaDataVencimentoDto.dataVencimento = this.dataVencimentoParcela.get('dataVencimentoParcela').value;\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Gerar Novas Parcela\",\r\n mensagem: \"Esse procedimento irá excluir as parcelas atuais e irá criar novas. Deseja continuar?\"\r\n }\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n\r\n this.vendaService.postGerarParcelas(vendaParcelaDataVencimentoDto).subscribe(data => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Sucesso\",\r\n mensagem: \"Parcelas geradas com sucesso\"\r\n }\r\n });\r\n\r\n this.buscarVenda(this.venda.vendaId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n adicionarNovaParcelaVazia() {\r\n\r\n let parcela: VendaParcela = new VendaParcela();\r\n\r\n parcela.dataVencimento = new Date();\r\n parcela.valorParcela = 0;\r\n parcela.vendaId = this.vendaCadastroForm.get('vendaId').value;\r\n\r\n this.vendaParcelas.push(parcela);\r\n\r\n }\r\n\r\n gerarContrato() {\r\n\r\n let mensagem = \"Deseja realmente gerar um novo contrato para esta venda? \" +\r\n \"Se você já gerou um contrato anteriormente para essa Venda, um novo contrato será gerado.\";\r\n\r\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n data: {\r\n titulo: \"Confirmação\",\r\n mensagem: mensagem\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n\r\n this.vendaService.postGerarContrato(this.vendaCadastroForm.value).subscribe(data => {\r\n\r\n this.visualizarContrato(data.body.contratoId);\r\n\r\n }, (error: HttpErrorResponse) => {\r\n\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n visualizarContrato(contratoId: number) {\r\n\r\n const dialogRef = this.dialog.open(ContratoCadastroComponent, {\r\n data: {\r\n contratoId: contratoId,\r\n },\r\n maxHeight: '100vh',\r\n maxWidth: '100vw'\r\n });\r\n\r\n }\r\n\r\n async determinaProdutoId(produto: any) {\r\n\r\n try {\r\n const response = await this.vendaService.getListaServico(produto.servicoListaId).toPromise();\r\n this.servicoLista = response.body;\r\n } catch (error) {\r\n const dialogRef = this.dialog.open(InfoDialogComponent, {\r\n data: {\r\n titulo: \"Erro\",\r\n erro: error\r\n }\r\n });\r\n }\r\n\r\n if(this.servicoLista != null && this.servicoLista != undefined){\r\n this.vendaItemForm.get('listaServico').setValue(this.servicoLista.codigo);\r\n }\r\n\r\n this.vendaItemForm.get('produtoId').setValue(produto.produtoId);\r\n this.vendaItemForm.get('codProd').setValue(produto.codProd);\r\n this.vendaItemForm.get('descricao').setValue(produto.descricao);\r\n this.vendaItemForm.get('ncm').setValue(produto.ncm);\r\n this.vendaItemForm.get('ean').setValue(produto.ean);\r\n this.vendaItemForm.get('eanTrib').setValue(produto.eanTrib);\r\n this.vendaItemForm.get('unTributaria').setValue(produto.unTributaria);\r\n this.vendaItemForm.get('vlrTributario').setValue(produto.vlrTributario);\r\n this.vendaItemForm.get('unComercial').setValue(produto.unComercial);\r\n this.vendaItemForm.get('vlrComercial').setValue(produto.vlrComercial);\r\n this.vendaItemForm.get('extipi').setValue(produto.extipi);\r\n this.vendaItemForm.get('infAdProd').setValue(produto.infAdProd);\r\n this.vendaItemForm.get('pesoLiquido').setValue(produto.pesoLiquido);\r\n this.vendaItemForm.get('pesoBruto').setValue(produto.pesoBruto);\r\n this.vendaItemForm.get('cest').setValue(produto.cest);\r\n this.vendaItemForm.get('indTot').setValue(1);\r\n }\r\n\r\n buscaCfop(empresaId: number) {\r\n\r\n if (this.vendaCadastroForm.value.vendaTipo == 0 || this.vendaCadastroForm.value.vendaTipo == 2) {\r\n\r\n const parametros: any = {};\r\n\r\n parametros.empresaId = empresaId;\r\n\r\n if (this.vendaCadastroForm.value.vendaTipo == 0) {\r\n parametros.direcao = 1;\r\n }\r\n else {\r\n parametros.direcao = 2;\r\n }\r\n\r\n this.cfopService.getCfops(parametros).subscribe(data => {\r\n this.cfops = data.body;\r\n\r\n if (this.cfops.length > 0 && this.vendaItemForm.get('cfop').value == 0)\r\n this.vendaItemForm.get('cfop').setValue(this.cfops[0].codCfop);\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n onChangeValorComercial() {\r\n\r\n let vlrComercial = this.vendaItemForm.get('vlrComercial').value;\r\n let qtdComercial = this.vendaItemForm.get('qtdComercial').value;\r\n let valorTotal = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.vendaItemForm.get('valorTotal').setValue(valorTotal.toFixed(2));\r\n this.vendaItemForm.get('qtdTributaria').setValue(qtdComercial);\r\n this.vendaItemForm.get('vlrTributario').setValue(vlrComercial);\r\n\r\n }\r\n\r\n openDialogDescontoAdicional(){\r\n\r\n let venda = this.vendaCadastroForm.value;\r\n\r\n const dialogRef = this.dialog.open(DescontoAdicionalComponent, {\r\n data: {\r\n orcamentoId: 0,\r\n vendaId: venda.vendaId,\r\n venda: venda,\r\n\r\n },\r\n height: '55vh',\r\n width: '45vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe( () => {\r\n this.ngOnInit();\r\n });\r\n\r\n}\r\n\r\n adicionarItem() {\r\n\r\n if (this.vendaCadastroForm.value.vendaId == 0) {\r\n\r\n this.vendaService.postVenda(this.vendaCadastroForm.value).subscribe(data => {\r\n\r\n this.vendaCadastroForm.get('vendaId').setValue(data.body.vendaId);\r\n\r\n this.vendaItemForm.get('vendaId').setValue(data.body.vendaId);\r\n\r\n this.calculaImposto();\r\n\r\n });\r\n\r\n } else {\r\n\r\n this.calculaImposto();\r\n\r\n }\r\n }\r\n\r\n calculaImposto(): void {\r\n\r\n let valorTotal = this.vendaItemForm.get('valorTotal').value;\r\n this.vendaItemForm.get('valorBruto').setValue(valorTotal);\r\n this.vendaItemForm.get('valorServicos').setValue(valorTotal);\r\n this.vendaItemForm.get('vendaId').setValue(this.vendaCadastroForm.get('vendaId').value);\r\n this.vendaService.postCalculaImposto(this.vendaItemForm.value).subscribe(data => {\r\n\r\n if (this.venda.vendaTipo == 1) {\r\n this.vendaItemForm.get('aliquotaIssqn').setValue(data.body.aliquotaIssqn);\r\n this.vendaItemForm.get('valorPis').setValue(data.body.valorPis);\r\n this.vendaItemForm.get('valorCofins').setValue(data.body.valorCofins);\r\n this.vendaItemForm.get('valorIr').setValue(data.body.valorIr);\r\n this.vendaItemForm.get('valorInss').setValue(data.body.valorInss);\r\n this.vendaItemForm.get('valorCsll').setValue(data.body.valorCsll);\r\n this.vendaItemForm.get('baseCalculo').setValue(data.body.baseCalculo);\r\n this.vendaItemForm.get('valorLiquidoNfse').setValue(data.body.valorLiquidoNfse);\r\n this.vendaItemForm.get('valorIss').setValue(data.body.valorIss);\r\n this.vendaItemForm.get('valorIssRetido').setValue(data.body.valorIssRetido);\r\n this.vendaItemForm.get('issRetido').setValue(data.body.issRetido);\r\n }\r\n else {\r\n this.vendaItemForm.get('cofinsSTpCofins').setValue(data.body.cofinsSTpCofins);\r\n this.vendaItemForm.get('cofinsSTqUnid').setValue(data.body.cofinsSTqUnid);\r\n this.vendaItemForm.get('cofinsSTvBC').setValue(data.body.cofinsSTvBC);\r\n this.vendaItemForm.get('cofinsSTvCofins').setValue(data.body.cofinsSTvCofins);\r\n this.vendaItemForm.get('cofinsSTvUnid').setValue(data.body.cofinsSTvUnid);\r\n this.vendaItemForm.get('cofinspCofins').setValue(data.body.cofinspCofins);\r\n this.vendaItemForm.get('cofinsqUnid').setValue(data.body.cofinsqUnid);\r\n this.vendaItemForm.get('cofinsvBC').setValue(data.body.cofinsvBC);\r\n this.vendaItemForm.get('cofinsvCofins').setValue(data.body.cofinsvCofins);\r\n this.vendaItemForm.get('cofinsvUnid').setValue(data.body.cofinsvUnid);\r\n this.vendaItemForm.get('icmsSTmodBCST').setValue(data.body.icmsSTmodBCST);\r\n this.vendaItemForm.get('icmsSTpIcmsST').setValue(data.body.icmsSTpIcmsST);\r\n this.vendaItemForm.get('icmsSTpMVAST').setValue(data.body.icmsSTpMVAST);\r\n this.vendaItemForm.get('icmsSTpRedBCST').setValue(data.body.icmsSTpRedBCST);\r\n this.vendaItemForm.get('icmsSTvBCST').setValue(data.body.icmsSTvBCST);\r\n this.vendaItemForm.get('icmsSTvIcmsST').setValue(data.body.icmsSTvIcmsST);\r\n this.vendaItemForm.get('icmspCredSN').setValue(data.body.icmspCredSN);\r\n this.vendaItemForm.get('icmspIcms').setValue(data.body.icmspIcms);\r\n //this.vendaItemForm.get('icmspIcmsInter').setValue(data.body.icmspIcmsInter);\r\n this.vendaItemForm.get('icmspRedBC').setValue(data.body.icmspRedBC);\r\n this.vendaItemForm.get('icmsvBC').setValue(data.body.icmsvBC);\r\n this.vendaItemForm.get('icmsvCredIcmsSN').setValue(data.body.icmsvCredIcmsSN);\r\n this.vendaItemForm.get('icmsvIcms').setValue(data.body.icmsvIcms);\r\n this.vendaItemForm.get('ipiCNPJProd').setValue(data.body.ipiCNPJProd);\r\n this.vendaItemForm.get('ipicEnq').setValue(data.body.ipicEnq);\r\n this.vendaItemForm.get('ipiclEnq').setValue(data.body.ipiclEnq);\r\n //this.vendaItemForm.get('ipicodSelo').setValue(data.body.ipicodSelo);\r\n this.vendaItemForm.get('ipipIpi').setValue(data.body.ipipIpi);\r\n this.vendaItemForm.get('ipiqUnid').setValue(data.body.ipiqUnid);\r\n this.vendaItemForm.get('ipivBC').setValue(data.body.ipivBC);\r\n this.vendaItemForm.get('ipivIpi').setValue(data.body.ipivIpi);\r\n this.vendaItemForm.get('ipivUnid').setValue(data.body.ipivUnid);\r\n this.vendaItemForm.get('icmsDifal').setValue(data.body.icmsDifal);\r\n this.vendaItemForm.get('pisSTpPis').setValue(data.body.pisSTpPis);\r\n //this.vendaItemForm.get('pisSTqUnid').setValue(data.body.pisSTqUnid);\r\n this.vendaItemForm.get('pisSTvBC').setValue(data.body.pisSTvBC);\r\n this.vendaItemForm.get('pisSTvPis').setValue(data.body.pisSTvPis);\r\n //this.vendaItemForm.get('pisSTvUnid').setValue(data.body.pisSTvUnid);\r\n this.vendaItemForm.get('pispPis').setValue(data.body.pispPis);\r\n this.vendaItemForm.get('pisqUnid').setValue(data.body.pisqUnid);\r\n this.vendaItemForm.get('pisvBC').setValue(data.body.pisvBC);\r\n this.vendaItemForm.get('pisvPis').setValue(data.body.pisvPis);\r\n this.vendaItemForm.get('pisvUnid').setValue(data.body.pisvUnid);\r\n this.vendaItemForm.get('cstCofins').setValue(data.body.cstCofins);\r\n this.vendaItemForm.get('cstIcms').setValue(data.body.cstIcms);\r\n this.vendaItemForm.get('cstIpi').setValue(data.body.cstIpi);\r\n this.vendaItemForm.get('cstPis').setValue(data.body.cstPis);\r\n this.vendaItemForm.get('infAdProd').setValue(data.body.infAdProd);\r\n }\r\n\r\n this.vendaService.postIncluiVendaItem(this.vendaItemForm.value).subscribe(data => {\r\n\r\n this.vendaItemForm.get('produtoAutoComplete').setValue('');\r\n this.vendaItemForm.get('vlrComercial').setValue(0);\r\n this.vendaItemForm.get('qtdComercial').setValue(0);\r\n this.vendaItemForm.get('valorTotal').setValue(0);\r\n\r\n this.buscarVenda(this.vendaCadastroForm.value.vendaId);\r\n\r\n });\r\n\r\n });\r\n }\r\n \r\n validarSomaParcelasIgualValorLiquido(): boolean {\r\n const parcelas = this.vendaParcelas;\r\n const valorLiquidoTotal = this.venda.totalGeral;\r\n \r\n if (!parcelas || !valorLiquidoTotal) {\r\n return false;\r\n }\r\n\r\n const somaParcelas = parcelas.reduce((sum, parcela) => sum + (parcela.valorParcela || 0), 0);\r\n \r\n return Math.abs(somaParcelas - valorLiquidoTotal) < 0.01;\r\n }\r\n}\r\n","\r\n
          \r\n

          {{VerificaVendaTipo(venda.vendaTipo)}} - {{venda.vendaId}}

          \r\n \r\n
          \r\n \r\n \r\n \r\n\r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n
          \r\n
          \r\n * Parcelas: A soma das parcelas não está batendo com o valor total\r\n
          \r\n
          \r\n * Itens: Todos os itens devem ter quantidade maior que zero\r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          \r\n\r\n
          \r\n \r\n \r\n
          \r\n
          \r\n \r\n Emitente\r\n \r\n \r\n {{ empresa.nomeFantasia }}\r\n \r\n \r\n \r\n\r\n \r\n Vendedor\r\n \r\n \r\n {{vendedor.nomeFantasia}}\r\n \r\n \r\n Para cadastrar vendedores acesse RH > Funcionários > E\r\n selecione o Tipo de Função 'Vendedor'\r\n \r\n\r\n
          \r\n
          \r\n \r\n Cliente\r\n \r\n \r\n \r\n CNPJ: {{parceiro.cnpj}} - {{parceiro.nomeFantasia}}\r\n \r\n \r\n \r\n
          \r\n \r\n Data da Venda\r\n \r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n Data Entrega\r\n \r\n \r\n \r\n Data prevista para entrega\r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n

          Nenhum cliente com o nome \"{{vendaCadastroForm.value.clienteAutoComplete}}\" foi encontrado.

          \r\n \r\n Criar um novo cliente com esse nome\r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n Nova Venda\r\n Renovação\r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Local de Entrega\r\n \r\n \r\n \r\n CNPJ: {{localEntrega.cnpj}} - {{localEntrega.nomeFantasia}}\r\n \r\n \r\n Local de Entrega (se diferente do destinatário)\r\n \r\n
          \r\n
          \r\n \r\n Comunicação Interna\r\n \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n Indicador de Pagamento\r\n \r\n Pagamento a vista\r\n Pagamento a prazo\r\n Outros\r\n \r\n \r\n \r\n Tipo de Pagamento\r\n \r\n Dinheiro\r\n Débito\r\n Crédito\r\n Boleto\r\n PIX\r\n Transferência\r\n Cheque\r\n Vale Refeição\r\n Banco\r\n \r\n \r\n \r\n Consumidor Final\r\n \r\n Normal\r\n Consumidor final\r\n \r\n \r\n \r\n Forma de Emissão\r\n \r\n Não se aplica\r\n Operação presencial\r\n Operação não presencial, pela Internet\r\n \r\n Operação não presencial, Teleatendimento\r\n \r\n NFC-e em operação com entrega a domicílio\r\n \r\n Operação não presencial, outros\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n Parcelas\r\n \r\n \r\n
          \r\n \r\n Número de Parcelas\r\n \r\n \r\n \r\n \r\n Vencimento 1ª Parcela\r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          Data VencimentoValor ParcelaAções
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? false : true\" color=\"warn\" matTooltip=\"Deletar\">\r\n delete\r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Transportadora\r\n \r\n \r\n {{transportadora.nomeFantasia}}\r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Entrega\r\n \r\n Transportadora\r\n Veículo Próprio\r\n Cliente Retira\r\n Correios\r\n \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Frete\r\n \r\n Contratação do frete por conta do remetente (CIF)\r\n \r\n Contratação do frete por conta do destinatário (FOB)\r\n \r\n Transporte próprio por conta do remetente\r\n Transporte próprio por conta do destinatário\r\n \r\n Sem ocorrência de transporte\r\n \r\n \r\n
          \r\n
          \r\n \r\n Quantidade de Volumes Transportados\r\n \r\n \r\n \r\n Espécie dos Volumes Transportados\r\n \r\n \r\n
          \r\n
          \r\n \r\n Peso Líquido (KG)\r\n \r\n \r\n \r\n Peso Bruto (KG)\r\n \r\n \r\n
          \r\n
          \r\n 0\">\r\n
          \r\n
          \r\n \r\n Modalidade Nota Fiscal\r\n \r\n 0 - Não se Aplica\r\n 55 - NF-e\r\n 65 - NFC-e\r\n 99 - NFS-e\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          ImpostoValor%Retido na Fonte
          ISS{{venda.valorIss | currency}}{{(venda.valorIss * 100 / venda.valorBruto).toFixed(2)}} %\r\n \r\n
          ICMS{{venda.valorIcms | currency}}{{(venda.valorIcms * 100 / venda.valorBruto).toFixed(2)}} %
          ICMS ST{{venda.valorIcmsSt | currency}}{{(venda.valorIcmsSt * 100 / venda.valorBruto).toFixed(2)}} %
          IPI{{venda.valorIpi | currency}}{{(venda.valorIpi * 100 / venda.valorBruto).toFixed(2)}} %
          PIS{{venda.valorPis | currency}}{{(venda.valorPis * 100 / venda.valorBruto).toFixed(2)}} %\r\n \r\n
          PIS ST{{venda.valorPisSt | currency}}{{(venda.valorPisSt * 100 / venda.valorBruto).toFixed(2)}} %
          cofins{{venda.valorCofins | currency}}{{(venda.valorCofins * 100 / venda.valorBruto).toFixed(2)}} %\r\n \r\n
          cofins ST{{venda.valorCofinsSt | currency}}{{(venda.valorCofinsSt * 100 / venda.valorBruto).toFixed(2)}} %
          CSLL{{venda.valorCsll | currency}}{{(venda.valorCsll * 100 / venda.valorBruto).toFixed(2)}} %\r\n \r\n
          IRPJ{{venda.valorIr | currency}}{{(venda.valorIr * 100 / venda.valorBruto).toFixed(2)}} %\r\n \r\n
          INSS{{venda.valorInss | currency}}{{(venda.valorInss * 100 / venda.valorBruto).toFixed(2)}} %\r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          0\">\r\n
          \r\n \r\n \r\n Descontos em Reais: {{vendaCadastroForm.value.somaTotalDescontosEmReais | currency}}\r\n \r\n add\r\n \r\n \r\n \r\n \r\n Desconto itens R${{vendaCadastroForm.value.descontosItensEmReais}} +\r\n Desconto Adicionais R${{vendaCadastroForm.value.descontosAdicionaisEmReais}}\r\n \r\n \r\n \r\n \r\n \r\n Total s/ descontos: {{vendaCadastroForm.value.valorTotal |\r\n currency}}\r\n \r\n \r\n\r\n\r\n
          \r\n
          \r\n \r\n \r\n Desconto em Porcentagem: {{vendaCadastroForm.value.somaTotalDescontosEmPorcentagem}}%\r\n \r\n \r\n \r\n \r\n Desconto itens R${{vendaCadastroForm.value.descontosItensEmReais}} +\r\n Desconto Adicionais R${{vendaCadastroForm.value.descontosAdicionaisEmReais}}\r\n \r\n \r\n \r\n \r\n \r\n Total com Descontos: {{vendaCadastroForm.value.valorBruto |\r\n currency}}\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n

          Itens

          \r\n
          \r\n
          \r\n \r\n Tipo de Item\r\n \r\n Produto Acabado\r\n Uso e Consumo\r\n Ativo Imobilizado\r\n \r\n \r\n \r\n Digite o Nome do Produto ou Serviço\r\n \r\n \r\n \r\n {{produto.descricao}} - {{produto.vlrComercial | currency}}\r\n \r\n \r\n \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop + ' - ' + cfop.descricao}}\r\n \r\n \r\n \r\n \r\n Quantidade\"\r\n \r\n \r\n \r\n V. Unit.\r\n \r\n \r\n \r\n Total\r\n \r\n \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
          AçõesCódigoDescriçãoLoteNCMCFOPUnid.Valor Un.Qtde.TotalDescontoCom Desconto + Adicionais
          \r\n 0 && venda.vendaStatus < 4\">\r\n edit\r\n 0 && venda.vendaStatus < 4\">\r\n delete\r\n {{vendaitem.codProd}}{{vendaitem.descricao}}{{vendaitem.numLote}}{{vendaitem.ncm}}{{vendaitem.cfop}}{{vendaitem.unComercial}}{{vendaitem.vlrComercial | currency}}{{vendaitem.qtdComercial}}{{vendaitem.valorTotal | currency}}{{vendaitem.valorDesconto | currency}}{{vendaitem.valorBruto | currency}}
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n \r\n \r\n
          \r\n

          {{'Pedido de Venda'}}\r\n

          \r\n
          {{empresa.nomeFantasia}}
          \r\n
          \r\n
          \r\n {{empresa.logradouro}}, {{empresa.numero}} , {{empresa.bairro}}
          \r\n {{empresa.municipio?.descricao}} - {{empresa.municipio?.uf.siglaUF}}, CEP:\r\n {{empresa.cep}}\r\n
          \r\n Tel: {{empresa.telefone}}
          \r\n e-mail: {{empresa.emailVenda}}
          \r\n IE: {{empresa.inscEstadual}} - CNPJ: {{empresa.cnpj}}\r\n
          \r\n
          \r\n
          \r\n
          EMISSÃO
          \r\n
          \r\n
          {{vendatemp.dataVenda | date:'dd/MM/yyyy'}}
          \r\n
          \r\n
          PEDIDO
          \r\n
          \r\n
          {{vendatemp.vendaId}}
          \r\n
          \r\n
          FATURA
          \r\n
          \r\n
          {{vendatemp.faturaId}}
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          DESTINATÁRIO/REMETENTE
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          NOME / RAZÃO SOCIAL
          \r\n
          \r\n {{cliente.razaoSocial}}\r\n
          \r\n
          \r\n
          CNPJ / CPF
          \r\n
          \r\n {{cliente.cnpj != undefined ? cliente.cnpj : cliente.cpf}}\r\n
          \r\n
          \r\n
          ENDEREÇO
          \r\n
          \r\n {{cliente.logradouro}}  \r\n {{cliente.numero}}\r\n
          \r\n
          \r\n
          BAIRRO / DISTRITO
          \r\n
          \r\n {{cliente.bairro}}\r\n
          \r\n
          \r\n
          CEP
          \r\n
          \r\n {{cliente.cep}}\r\n
          \r\n
          \r\n
          MUNICÍPIO
          \r\n
          \r\n {{cliente.municipio?.descricao}}\r\n
          \r\n
          \r\n
          TELEFONE
          \r\n
          \r\n {{cliente.telefone}}\r\n
          \r\n
          \r\n
          UF
          \r\n
          \r\n {{cliente.municipio?.uf.siglaUF}}\r\n
          \r\n
          \r\n
          INSCRIÇÃO ESTADUAL
          \r\n
          \r\n {{cliente.inscEstadual}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          TRANSPORTE
          \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          NOME / RAZÃO SOCIAL
          \r\n
          \r\n {{transportadora.razaoSocial}}\r\n
          \r\n
          \r\n
          CNPJ / CPF
          \r\n
          \r\n {{transportadora.cnpj}}\r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          MODALIDADE DO FRETE
          \r\n
          \r\n {{vendatemp.modalidadeFrete}}\r\n
          \r\n
          \r\n
          QUANTIDADE
          \r\n
          \r\n {{vendatemp.volumesTransportados}}\r\n
          \r\n
          \r\n
          ESPÉCIE
          \r\n
          \r\n {{vendatemp.especieVolumesTransportados}}\r\n
          \r\n
          \r\n
          PESO BRUTO
          \r\n
          \r\n {{vendatemp.pesoBrutoTransportado}}\r\n
          \r\n
          \r\n
          PESO LÍQUIDO
          \r\n
          \r\n {{vendatemp.pesoLiquidoTransportado}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          VALORES TOTAIS
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          TOTAL DA VENDA
          \r\n
          \r\n R$ {{vendatemp.totalVenda | number:'1.2-2'}}\r\n
          \r\n
          \r\n
          DESCONTOS
          \r\n
          \r\n R$ {{vendatemp.totalDescontos | number:'1.2-2'}}\r\n
          \r\n
          \r\n
          TOTAL GERAL
          \r\n
          \r\n R$ {{vendatemp.totalGeral| number:'1.2-2'}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n
          DADOS DOS PRODUTOS / SERVIÇOS
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          CÓDIGO
          \r\n
          \r\n
          DESCRIÇÃO DOS PRODUTOS / SERVIÇOS\r\n
          \r\n
          \r\n
          NCM
          \r\n
          \r\n
          LOTE
          \r\n
          \r\n
          UNID
          \r\n
          \r\n
          QUANT
          \r\n
          \r\n
          VLR.UNIT.
          \r\n
          \r\n
          VLR.TOTAL
          \r\n
          \r\n
          DESC.
          \r\n
          \r\n
          COM DESC.
          \r\n
          \r\n
          \r\n {{item.codProd}}\r\n
          \r\n
          \r\n
          \r\n {{item.descricao}}\r\n
          \r\n
          \r\n
          \r\n {{item.ncm}}\r\n
          \r\n
          \r\n
          \r\n {{item.numLote}}\r\n
          \r\n
          \r\n
          \r\n {{item.unComercial}}\r\n
          \r\n
          \r\n
          \r\n {{item.qtdComercial}}\r\n
          \r\n
          \r\n
          \r\n R$ {{item.vlrComercial | number:'1.2-2'}}\r\n
          \r\n
          \r\n
          \r\n R$ {{item.valorTotal | number:'1.2-2'}}\r\n
          \r\n
          \r\n
          \r\n R$ {{item.valorDesconto | number:'1.2-2'}}\r\n
          \r\n
          \r\n
          \r\n R$ {{item.valorBruto | number:'1.2-2'}}\r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
          \r\n
          DADOS ADICIONAIS
          \r\n
          \r\n
          END. ENTREGA
          \r\n
          \r\n
          \r\n {{vendatemp.dadosAdicionais}}\r\n
          \r\n
          \r\n
          \r\n {{localEntrega.logradouro}} {{localEntrega.numero}}
          \r\n {{localEntrega.bairro}}
          \r\n {{localEntrega?.municipio?.descricao}},\r\n {{localEntrega?.municipio?.uf.siglaUF}}
          \r\n {{localEntrega.cep}}
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n","'use strict';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\nimport { Cfop } from '../../cfop/shared/cfop.model';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { InfoDialogComponent } from '../../core/dialogs/info-dialog/info-dialog.component';\r\n\r\nexport interface DialogData {\r\n vendaTipo: number,\r\n empresaId: number,\r\n}\r\n\r\n@Component({\r\n selector: 'venda-devolucao',\r\n templateUrl: 'venda-devolucao.component.html',\r\n})\r\n\r\nexport class VendaDevolucaoComponent {\r\n\r\n cfops: Cfop[];\r\n cfop: any = {};\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public IVenda: DialogData,\r\n private cfopService: CfopService) { }\r\n\r\n ngOnInit() {\r\n this.buscaCfop();\r\n }\r\n\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n salvar(cfop): void {\r\n this.dialogRef.close(cfop);\r\n }\r\n\r\n buscaCfop() {\r\n const parametros: any = {};\r\n\r\n parametros.empresaId = this.IVenda.empresaId;\r\n parametros.direcao = 2;\r\n\r\n this.cfopService.getCfops(parametros).subscribe(data => {\r\n this.cfops = data.body;\r\n\r\n });\r\n }\r\n\r\n}\r\n","

          Gerar Devolução

          \r\n
          \r\n

          Esse processo irá gerar uma devolução de Venda

          \r\n
          \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop + ' - ' + cfop.descricao}}\r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n
          \r\n","'use strict'\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl, FormBuilder } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { VendaService } from '../shared/venda.service';\r\nimport { CfopService } from '../../cfop/shared/cfop.service';\r\n\r\nimport { debounceTime, switchMap } from \"rxjs/operators\";\r\n\r\nimport { VendaItem } from '../shared/venda-item.model';\r\nimport { Produto } from '../../produto/shared/produto.model';\r\nimport { Cfop } from '../../cfop/shared/cfop.model';\r\nimport { Estoque } from '../../estoque/shared/estoque.model';\r\nimport { Venda } from '../shared/venda.model';\r\n\r\n\r\nexport interface DialogData {\r\n vendaItemId: number;\r\n venda: any;\r\n}\r\n\r\n@Component({\r\n selector: 'venda-item',\r\n templateUrl: 'venda-item.component.html',\r\n})\r\n\r\nexport class VendaItemComponent {\r\n\r\n venda: Venda;\r\n listaServicos: any = [];\r\n vendaItemForm: FormGroup;\r\n maximizado: boolean;\r\n vendaItemId: number;\r\n vendaitem: any = {};\r\n cfops: Cfop[];\r\n produtos: Produto[];\r\n estoques: Estoque[];\r\n\r\n showIcmsTrib: boolean = false;\r\n showIcmsSTRet: boolean = false;\r\n showIcmsST: boolean = false;\r\n showPercentualReducaoBC: boolean = false;\r\n showPercentualCreditoSN: boolean = false;\r\n showValorCreditoIcmsSN: boolean = false;\r\n\r\n showIpiTributado: boolean = false;\r\n showIpiAliquota: boolean = false;\r\n showIpiPauta: boolean = false;\r\n\r\n showPisAliquota: boolean = false;\r\n showPisPauta: boolean = false;\r\n showValorPis: boolean = false;\r\n showPisST: boolean = false;\r\n showTipoCalculoPis: boolean = false;\r\n showTipoCalculoPisST: boolean = false;\r\n showPisSTPauta: boolean = false;\r\n showPisSTAliquota: boolean = false;\r\n showValorPisST: boolean = false;\r\n\r\n showCofinsAliquota: boolean = false;\r\n showCofinsPauta: boolean = false;\r\n showValorCofins: boolean = false;\r\n showValorCofinsST: boolean = false;\r\n showTipoCalculoCofins: boolean = false;\r\n showTipoCalculoCofinsST: boolean = false;\r\n showCofinsST: boolean = false;\r\n showCofinsSTAliquota: boolean = false;\r\n showCofinsSTPauta: boolean = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private _snackBar: MatSnackBar,\r\n public dialogRef: MatDialogRef,\r\n private _formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public IVendaItem: DialogData,\r\n private vendaService: VendaService,\r\n private cfopService: CfopService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.maximizado = false;\r\n\r\n this.venda = this.IVendaItem.venda;\r\n\r\n this.vendaItemId = this.IVendaItem.vendaItemId;\r\n\r\n this.vendaItemForm = this._formBuilder.group(new VendaItem());\r\n\r\n this.vendaItemForm.addControl('produtoAutoComplete', new FormControl(''));\r\n\r\n this.vendaItemForm.get('vendaId').setValue(this.venda.vendaId);\r\n\r\n this.vendaItemForm.get('orig').setValue(0);\r\n\r\n if (this.venda.vendaTipo == 0 || this.venda.vendaTipo == 2) {\r\n\r\n this.buscaCfop();\r\n }\r\n\r\n if (this.venda.vendaTipo == 1) {\r\n\r\n this.getListaServico();\r\n this.vendaItemForm.get('produtoTipo').setValue(1);\r\n }\r\n\r\n this.onChanges();\r\n\r\n this.buscarVendaItem();\r\n\r\n this.maximizarDialog();\r\n }\r\n\r\n onChanges(): void {\r\n\r\n this.vendaItemForm\r\n .get('produtoAutoComplete')\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n switchMap(value => value?.length >= 3 ?\r\n this.vendaService.getProdutoPorNome({\r\n id: value,\r\n tipoProduto: this.vendaItemForm.get('produtoTipo').value\r\n }) : []\r\n )\r\n )\r\n .subscribe(data =>\r\n this.produtos = data.body\r\n );\r\n\r\n this.vendaItemForm\r\n .get('valorDeducoes')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('outrasRetencoes')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('descontoIncondicionado')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('descontoCondicionado')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('valorPis')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('valorCofins')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('valorIr')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('valorInss')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('valorCsll')\r\n .valueChanges\r\n .subscribe(data => this.calculavalorLiquido());\r\n\r\n this.vendaItemForm\r\n .get('icmsDifal')\r\n .valueChanges\r\n .subscribe(data => this.trataicmsDifal(data));\r\n\r\n this.vendaItemForm\r\n .get('cstIcms')\r\n .valueChanges\r\n .subscribe(data => this.defineIcmsCst(data));\r\n\r\n this.vendaItemForm\r\n .get('cstIpi')\r\n .valueChanges\r\n .subscribe(data => this.defineIpiCst(data));\r\n\r\n this.vendaItemForm\r\n .get('tipoCalculoIPI')\r\n .valueChanges\r\n .subscribe(data => this.defineIpiTipoCalculo(data));\r\n\r\n this.vendaItemForm\r\n .get('cstPis')\r\n .valueChanges\r\n .subscribe(data => this.definePisCst(data));\r\n\r\n this.vendaItemForm\r\n .get('tipoCalculoPIS')\r\n .valueChanges\r\n .subscribe(data => this.definePisTipoCalculo(data));\r\n\r\n this.vendaItemForm\r\n .get('tipoCalculoPISST')\r\n .valueChanges\r\n .subscribe(data => this.definePisStTipoCalculo(data));\r\n\r\n this.vendaItemForm\r\n .get('cstCofins')\r\n .valueChanges\r\n .subscribe(data => this.definecofinsCst(data));\r\n\r\n this.vendaItemForm\r\n .get('tipoCalculocofins')\r\n .valueChanges\r\n .subscribe(data => this.definecofinsTipoCalculo(data));\r\n\r\n this.vendaItemForm\r\n .get('tipoCalculocofinsST')\r\n .valueChanges\r\n .subscribe(data => this.definecofinsStTipoCalculo(data));\r\n\r\n }\r\n\r\n calculavalorLiquido(): void {\r\n\r\n let valorLiquidoNfse = this.vendaItemForm.get('valorServicos').value\r\n - this.vendaItemForm.get('valorPis').value\r\n - this.vendaItemForm.get('valorCofins').value\r\n - this.vendaItemForm.get('valorInss').value\r\n - this.vendaItemForm.get('valorIr').value\r\n - this.vendaItemForm.get('valorCsll').value\r\n - this.vendaItemForm.get('outrasRetencoes').value\r\n - this.vendaItemForm.get('valorIssRetido').value\r\n - this.vendaItemForm.get('descontoIncondicionado').value\r\n - this.vendaItemForm.get('descontoCondicionado').value;\r\n\r\n let valorLiquidoNfseTemp = valorLiquidoNfse.toFixed(2);\r\n\r\n this.vendaItemForm.get('valorLiquidoNfse').setValue(valorLiquidoNfseTemp);\r\n }\r\n\r\n calculaImpostos(): void {\r\n\r\n let valorTotal = this.vendaItemForm.get('valorTotal').value;\r\n this.vendaItemForm.get('valorBruto').setValue(valorTotal);\r\n this.vendaItemForm.get('valorServicos').setValue(valorTotal);\r\n\r\n this.vendaService.postCalculaImposto(this.vendaItemForm.value).subscribe(data => {\r\n\r\n if (this.venda.vendaTipo == 1) {\r\n this.vendaItemForm.get('aliquotaIssqn').setValue(data.body.aliquotaIssqn);\r\n this.vendaItemForm.get('valorPis').setValue(data.body.valorPis);\r\n this.vendaItemForm.get('valorCofins').setValue(data.body.valorCofins);\r\n this.vendaItemForm.get('valorIr').setValue(data.body.valorIr);\r\n this.vendaItemForm.get('valorInss').setValue(data.body.valorInss);\r\n this.vendaItemForm.get('valorCsll').setValue(data.body.valorCsll);\r\n this.vendaItemForm.get('baseCalculo').setValue(data.body.baseCalculo);\r\n this.vendaItemForm.get('valorLiquidoNfse').setValue(data.body.valorLiquidoNfse);\r\n this.vendaItemForm.get('valorIss').setValue(data.body.valorIss);\r\n this.vendaItemForm.get('valorIssRetido').setValue(data.body.valorIssRetido);\r\n this.vendaItemForm.get('issRetido').setValue(data.body.issRetido);\r\n }\r\n else {\r\n this.vendaItemForm.get('cofinsSTpCofins').setValue(data.body.cofinsSTpCofins);\r\n this.vendaItemForm.get('cofinsSTqUnid').setValue(data.body.cofinsSTqUnid);\r\n this.vendaItemForm.get('cofinsSTvBC').setValue(data.body.cofinsSTvBC);\r\n this.vendaItemForm.get('cofinsSTvCofins').setValue(data.body.cofinsSTvCofins);\r\n this.vendaItemForm.get('cofinsSTvUnid').setValue(data.body.cofinsSTvUnid);\r\n this.vendaItemForm.get('cofinspCofins').setValue(data.body.cofinspCofins);\r\n this.vendaItemForm.get('cofinsqUnid').setValue(data.body.cofinsqUnid);\r\n this.vendaItemForm.get('cofinsvBC').setValue(data.body.cofinsvBC);\r\n this.vendaItemForm.get('cofinsvCofins').setValue(data.body.cofinsvCofins);\r\n this.vendaItemForm.get('cofinsvUnid').setValue(data.body.cofinsvUnid);\r\n this.vendaItemForm.get('icmsSTmodBCST').setValue(data.body.icmsSTmodBCST);\r\n this.vendaItemForm.get('icmsSTpIcmsST').setValue(data.body.icmsSTpIcmsST);\r\n this.vendaItemForm.get('icmsSTpMVAST').setValue(data.body.icmsSTpMVAST);\r\n this.vendaItemForm.get('icmsSTpRedBCST').setValue(data.body.icmsSTpRedBCST);\r\n this.vendaItemForm.get('icmsSTvBCST').setValue(data.body.icmsSTvBCST);\r\n this.vendaItemForm.get('icmsSTvIcmsST').setValue(data.body.icmsSTvIcmsST);\r\n this.vendaItemForm.get('icmspCredSN').setValue(data.body.icmspCredSN);\r\n this.vendaItemForm.get('icmspIcms').setValue(data.body.icmspIcms);\r\n //this.vendaItemForm.get('icmspIcmsInter').setValue(data.body.icmspIcmsInter);\r\n this.vendaItemForm.get('icmspRedBC').setValue(data.body.icmspRedBC);\r\n this.vendaItemForm.get('icmsvBC').setValue(data.body.icmsvBC);\r\n this.vendaItemForm.get('icmsvCredIcmsSN').setValue(data.body.icmsvCredIcmsSN);\r\n this.vendaItemForm.get('icmsvIcms').setValue(data.body.icmsvIcms);\r\n this.vendaItemForm.get('ipiCNPJProd').setValue(data.body.ipiCNPJProd);\r\n this.vendaItemForm.get('ipicEnq').setValue(data.body.ipicEnq);\r\n this.vendaItemForm.get('ipiclEnq').setValue(data.body.ipiclEnq);\r\n //this.vendaItemForm.get('ipicodSelo').setValue(data.body.ipicodSelo);\r\n this.vendaItemForm.get('ipipIpi').setValue(data.body.ipipIpi);\r\n this.vendaItemForm.get('ipiqUnid').setValue(data.body.ipiqUnid);\r\n this.vendaItemForm.get('ipivBC').setValue(data.body.ipivBC);\r\n this.vendaItemForm.get('ipivIpi').setValue(data.body.ipivIpi);\r\n this.vendaItemForm.get('ipivUnid').setValue(data.body.ipivUnid);\r\n this.vendaItemForm.get('icmsDifal').setValue(data.body.icmsDifal);\r\n this.vendaItemForm.get('pisSTpPis').setValue(data.body.pisSTpPis);\r\n //this.vendaItemForm.get('pisSTqUnid').setValue(data.body.pisSTqUnid);\r\n this.vendaItemForm.get('pisSTvBC').setValue(data.body.pisSTvBC);\r\n this.vendaItemForm.get('pisSTvPis').setValue(data.body.pisSTvPis);\r\n //this.vendaItemForm.get('pisSTvUnid').setValue(data.body.pisSTvUnid);\r\n this.vendaItemForm.get('pispPis').setValue(data.body.pispPis);\r\n this.vendaItemForm.get('pisqUnid').setValue(data.body.pisqUnid);\r\n this.vendaItemForm.get('pisvBC').setValue(data.body.pisvBC);\r\n this.vendaItemForm.get('pisvPis').setValue(data.body.pisvPis);\r\n this.vendaItemForm.get('pisvUnid').setValue(data.body.pisvUnid);\r\n this.vendaItemForm.get('cstCofins').setValue(data.body.cstCofins);\r\n this.vendaItemForm.get('cstIcms').setValue(data.body.cstIcms);\r\n this.vendaItemForm.get('cstIpi').setValue(data.body.cstIpi);\r\n this.vendaItemForm.get('cstPis').setValue(data.body.cstPis);\r\n this.vendaItemForm.get('infAdProd').setValue(data.body.infAdProd);\r\n }\r\n\r\n });\r\n }\r\n\r\n buscarVendaItem() {\r\n \r\n if (this.vendaItemId > 0) {\r\n\r\n this.vendaService.getVendaItem(this.vendaItemId).subscribe(data => {\r\n this.vendaItemForm.patchValue(data.body);\r\n this.vendaItemForm.get('produtoAutoComplete').setValue(data.body.descricao);\r\n this.SearchEstoquesByprodutoId(data.body.produtoId);\r\n\r\n });\r\n } else {\r\n this.vendaItemForm.get('indTot').setValue(1);\r\n this.vendaItemForm.get('ipicEnq').setValue(999);\r\n this.vendaItemForm.get('cstIcms').setValue(201);\r\n this.vendaItemForm.get('cstIpi').setValue(99);\r\n this.vendaItemForm.get('cstPis').setValue(99);\r\n this.vendaItemForm.get('cstCofins').setValue(99);\r\n this.vendaItemForm.get('icmSorig').setValue(0);\r\n }\r\n }\r\n\r\n getListaServico() {\r\n\r\n this.vendaService.getListaServicos().subscribe(data => {\r\n\r\n this.listaServicos = data.body;\r\n\r\n });\r\n }\r\n\r\n buscaCfop() {\r\n const parametros: any = {};\r\n\r\n parametros.empresaId = this.venda.empresaId;\r\n\r\n if (this.venda.vendaTipo == 0) {\r\n parametros.direcao = 1;\r\n }\r\n else {\r\n parametros.direcao = 2;\r\n }\r\n\r\n this.cfopService.getCfops(parametros).subscribe(data => {\r\n this.cfops = data.body;\r\n\r\n if (this.cfops.length > 0 && this.vendaItemForm.get('cfop').value == 0)\r\n this.vendaItemForm.get('cfop').setValue(this.cfops[0].codCfop);\r\n\r\n });\r\n }\r\n\r\n fecharDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n validarQuantidade(): boolean {\r\n const quantidade = this.vendaItemForm?.get('qtdComercial')?.value;\r\n return quantidade !== null && quantidade !== undefined && quantidade > 0;\r\n }\r\n\r\n salvar() {\r\n if (!this.validarQuantidade()) {\r\n this._snackBar.open(\"A quantidade deve ser maior que zero\", \"Fechar\", {\r\n duration: 3000,\r\n });\r\n return;\r\n }\r\n\r\n if (this.vendaItemForm.value.vendaItemId == 0) {\r\n\r\n this.vendaItemForm.get('vendaId').setValue(this.venda.vendaId);\r\n\r\n this.vendaService.postIncluiVendaItem(this.vendaItemForm.value).subscribe(data => {\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n else {\r\n\r\n this.vendaService.putAtualizaVendaItem(this.vendaItemForm.value, this.vendaItemForm.value.vendaItemId).subscribe(data => {\r\n\r\n this._snackBar.open(\"Registro Salvo com Sucesso\");\r\n\r\n this.fecharDialog();\r\n\r\n });\r\n }\r\n };\r\n\r\n determinaprodutoId(produto: Produto) {\r\n\r\n this.vendaItemForm.get('produtoId').setValue(produto.produtoId);\r\n this.vendaItemForm.get('codProd').setValue(produto.codProd);\r\n this.vendaItemForm.get('descricao').setValue(produto.descricao);\r\n this.vendaItemForm.get('ncm').setValue(produto.ncm);\r\n this.vendaItemForm.get('ean').setValue(produto.ean);\r\n this.vendaItemForm.get('eanTrib').setValue(produto.eanTrib);\r\n this.vendaItemForm.get('unTributaria').setValue(produto.unTributaria);\r\n this.vendaItemForm.get('vlrTributario').setValue(produto.vlrTributario);\r\n this.vendaItemForm.get('unComercial').setValue(produto.unComercial);\r\n this.vendaItemForm.get('vlrComercial').setValue(produto.vlrComercial);\r\n this.vendaItemForm.get('extipi').setValue(produto.extipi);\r\n this.vendaItemForm.get('infAdProd').setValue(produto.infAdProd);\r\n this.vendaItemForm.get('orig').setValue(produto.orig);\r\n this.vendaItemForm.get('cest').setValue(produto.cest);\r\n this.vendaItemForm.get('pesoBruto').setValue(produto.pesoBruto);\r\n this.vendaItemForm.get('pesoLiquido').setValue(produto.pesoLiquido);\r\n this.vendaItemForm.get('grupoContaId').setValue(produto.grupoContaId);\r\n\r\n this.SearchEstoquesByprodutoId(produto.produtoId);\r\n\r\n if (produto.servicoListaId > 0) {\r\n\r\n this.vendaService.getListaServico(produto.servicoListaId).subscribe(result => {\r\n\r\n this.vendaItemForm.get('listaServico').setValue(result.body.codigo);\r\n\r\n });\r\n }\r\n }\r\n\r\n SearchEstoquesByprodutoId(produtoId: number) {\r\n this.vendaService.getEstoqueByProduto(produtoId).subscribe(data => {\r\n this.estoques = data.body;\r\n\r\n if (this.estoques.length > 0 && this.vendaItemForm.get('estoqueId').value == 0)\r\n this.vendaItemForm.get('estoqueId').setValue(this.estoques[0].estoqueId);\r\n });\r\n }\r\n\r\n onChangeValorComercial() {\r\n \r\n let vlrComercial = this.vendaItemForm.get('vlrComercial').value;\r\n let qtdComercial = this.vendaItemForm.get('qtdComercial').value;\r\n let valorTotal = Math.round((qtdComercial * vlrComercial) * 100) / 100;\r\n this.vendaItemForm.get('valorTotal').setValue(valorTotal.toFixed(2));\r\n this.vendaItemForm.get('qtdTributaria').setValue(qtdComercial);\r\n this.vendaItemForm.get('vlrTributario').setValue(vlrComercial);\r\n\r\n if (this.venda.vendaTipo != 1) {\r\n this.calculaImpostos();\r\n }\r\n\r\n }\r\n\r\n TrataValorICMS() {\r\n\r\n let icmsvIcms = (this.vendaItemForm.get('icmsvBC').value * this.vendaItemForm.get('icmspIcms').value) / 100;\r\n\r\n this.vendaItemForm.get('icmsvIcms').setValue(icmsvIcms);\r\n }\r\n\r\n TrataValorICMSST() {\r\n\r\n let icmsSTvIcmsST = (this.vendaItemForm.get('icmsSTvBCST').value * this.vendaItemForm.get('icmsSTpIcmsST').value) / 100;\r\n\r\n this.vendaItemForm.get('icmsSTvIcmsST').setValue(icmsSTvIcmsST);\r\n }\r\n\r\n trataicmsDifal(utilizaicmsDifal: boolean) {\r\n\r\n if (utilizaicmsDifal == true) {\r\n\r\n let valorBaseCalculo = this.vendaItemForm.get('valorTotal').value +\r\n this.vendaItemForm.get('vFrete').value +\r\n this.vendaItemForm.get('vSeg').value +\r\n this.vendaItemForm.get('vOutro').value +\r\n this.vendaItemForm.get('ipivIpi').value -\r\n this.vendaItemForm.get('valorDesconto').value;\r\n\r\n let diferencialAliquota = (this.vendaItemForm.get('icmsSTpIcmsST').value - this.vendaItemForm.get('icmspIcms').value) / 100;\r\n\r\n this.vendaItemForm.get('icmsvBC').setValue(valorBaseCalculo);\r\n this.vendaItemForm.get('icmsSTvBCST').setValue(valorBaseCalculo);\r\n this.vendaItemForm.get('icmsSTvIcmsST').setValue(valorBaseCalculo * diferencialAliquota);\r\n };\r\n\r\n };\r\n\r\n defineIcmsCst(cstIcms: string) {\r\n\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n this.showIcmsSTRet = false;\r\n this.showIcmsTrib = false;\r\n this.showPercentualReducaoBC = false;\r\n\r\n switch (cstIcms) {\r\n case '00':\r\n this.ExibeICMS();\r\n break;\r\n case '10':\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n break;\r\n case '20':\r\n this.ExibeICMS();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case '30':\r\n this.ExibeICMSST();\r\n break;\r\n case '40':\r\n case '41':\r\n case '50':\r\n break;\r\n case '51':\r\n this.ExibeICMS();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case '60':\r\n this.showIcmsSTRet = true;\r\n break;\r\n case '70':\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case '90':\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n case 'ICMSPart':\r\n //Partilha de ICMS entre UF\r\n break;\r\n case 'ICMSST':\r\n //ICMS ST devido para a UF de destino, nas operações interestaduais de produtos que tiveram retenção antecipada de ICMS por ST na UF do remetente. Repasse via Substituto Tributário.\r\n break;\r\n case '101':\r\n //Tributada pelo Simples Nacional com permissão de crédito\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.showIcmsST = false;\r\n break;\r\n case '102':\r\n //Tributada pelo Simples Nacional sem permissão de crédito.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '103':\r\n //Isenção do ICMS no Simples Nacional para faixa de receita bruta.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '201':\r\n //Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por Substituição Tributária.\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.showIcmsST = true;\r\n break;\r\n case '202':\r\n //Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por Substituição Tributária.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = true;\r\n break;\r\n case '203':\r\n //Isenção do ICMS nos Simples Nacional para faixa de receita bruta e com cobrança do ICMS por Substituição Tributária.\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.showIcmsST = true;\r\n break;\r\n case '300':\r\n //Imune.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '400':\r\n //Não tributada pelo Simples Nacional.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '500':\r\n //ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação.\r\n this.showPercentualCreditoSN = false;\r\n this.showValorCreditoIcmsSN = false;\r\n this.showIcmsST = false;\r\n break;\r\n case '900':\r\n //Outros\r\n this.showPercentualCreditoSN = true;\r\n this.showValorCreditoIcmsSN = true;\r\n this.ExibeICMS();\r\n this.ExibeICMSST();\r\n this.showPercentualReducaoBC = true;\r\n break;\r\n };\r\n };\r\n\r\n ExibeICMS() {\r\n this.showIcmsTrib = true;\r\n\r\n if (this.vendaItemForm.get('icmsvBC').value == 0) {\r\n this.vendaItemForm.get('icmsvBC').setValue(this.vendaItemForm.get('valorTotal').value);\r\n }\r\n }\r\n\r\n ExibeICMSST() {\r\n this.showIcmsST = true;\r\n\r\n if (this.vendaItemForm.get('icmsSTvBCST').value == 0) {\r\n this.vendaItemForm.get('icmsSTvBCST').setValue(this.vendaItemForm.get('valorTotal').value);\r\n }\r\n }\r\n\r\n\r\n defineIpiCst(cstIpi) {\r\n\r\n switch (cstIpi) {\r\n case '49':\r\n case '00':\r\n case '50':\r\n case '99':\r\n this.showIpiTributado = true;\r\n this.defineIpiTipoCalculo(0);\r\n break;\r\n case '01':\r\n case '02':\r\n case '03':\r\n case '04':\r\n case '05':\r\n case '51':\r\n case '52':\r\n case '53':\r\n case '54':\r\n case '55':\r\n this.showIpiTributado = false;\r\n break;\r\n };\r\n };\r\n\r\n defineIpiTipoCalculo(tipoCaculo: number) {\r\n\r\n switch (tipoCaculo) {\r\n case 0:\r\n this.showIpiAliquota = true;\r\n this.showIpiPauta = false;\r\n break;\r\n case 1:\r\n this.showIpiAliquota = false;\r\n this.showIpiPauta = true;\r\n break;\r\n };\r\n };\r\n\r\n definePisCst(cstPis: string) {\r\n\r\n switch (cstPis) {\r\n case '01':\r\n case '02':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisAliquota = true;\r\n this.showPisPauta = false;\r\n this.showPisST = false;\r\n this.showValorPis = true;\r\n this.showValorPisST = false;\r\n this.definePisTipoCalculo(0);\r\n break;\r\n case '03':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = true;\r\n this.showPisST = false;\r\n this.showValorPis = true;\r\n this.showValorPisST = false;\r\n this.definePisTipoCalculo(1);\r\n break;\r\n case '04':\r\n case '06':\r\n case '07':\r\n case '08':\r\n case '09':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = false;\r\n this.showPisST = false;\r\n this.showValorPis = false;\r\n this.showValorPisST = false;\r\n break;\r\n case '05':\r\n this.showTipoCalculoPis = false;\r\n this.showTipoCalculoPisST = true;\r\n this.showPisST = true;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = false;\r\n this.showValorPis = false;\r\n this.showValorPisST = true;\r\n break;\r\n case '49':\r\n case '50':\r\n case '51':\r\n case '52':\r\n case '53':\r\n case '54':\r\n case '55':\r\n case '56':\r\n case '60':\r\n case '61':\r\n case '62':\r\n case '63':\r\n case '64':\r\n case '65':\r\n case '66':\r\n case '67':\r\n case '70':\r\n case '71':\r\n case '72':\r\n case '73':\r\n case '74':\r\n case '75':\r\n case '98':\r\n case '99':\r\n this.showTipoCalculoPis = true;\r\n this.showTipoCalculoPisST = false;\r\n this.showPisST = false;\r\n this.showPisAliquota = false;\r\n this.showPisPauta = false;\r\n this.showValorPis = true;\r\n this.showValorPisST = false;\r\n this.definePisTipoCalculo(0);\r\n break;\r\n };\r\n\r\n }\r\n\r\n definePisTipoCalculo(pisTipoCalculo: number) {\r\n\r\n switch (pisTipoCalculo) {\r\n case 0:\r\n this.showPisAliquota = true;\r\n this.showPisPauta = false;\r\n break;\r\n case 1:\r\n this.showPisAliquota = false;\r\n this.showPisPauta = true;\r\n break;\r\n };\r\n\r\n }\r\n\r\n definePisStTipoCalculo(pisStTipoCalculo: number) {\r\n\r\n switch (pisStTipoCalculo) {\r\n case 0:\r\n this.showPisSTAliquota = true;\r\n this.showPisSTPauta = false;\r\n break;\r\n case 1:\r\n this.showPisSTAliquota = false;\r\n this.showPisSTPauta = true;\r\n break;\r\n };\r\n }\r\n\r\n definecofinsCst(cstCofins: string) {\r\n\r\n switch (cstCofins) {\r\n case '01':\r\n case '02':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsAliquota = true;\r\n this.showCofinsPauta = false;\r\n this.showCofinsST = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n case '03':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = true;\r\n this.showCofinsST = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n case '04':\r\n case '06':\r\n case '07':\r\n case '08':\r\n case '09':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = false;\r\n this.showCofinsST = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n case '05':\r\n this.showTipoCalculoCofins = false;\r\n this.showTipoCalculoCofinsST = true;\r\n this.showCofinsST = true;\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = false;\r\n this.showValorCofins = false;\r\n this.showValorCofinsST = true;\r\n break;\r\n case '49':\r\n case '50':\r\n case '51':\r\n case '52':\r\n case '53':\r\n case '54':\r\n case '55':\r\n case '56':\r\n case '60':\r\n case '61':\r\n case '62':\r\n case '63':\r\n case '64':\r\n case '65':\r\n case '66':\r\n case '67':\r\n case '70':\r\n case '71':\r\n case '72':\r\n case '73':\r\n case '74':\r\n case '75':\r\n case '98':\r\n case '99':\r\n this.showTipoCalculoCofins = true;\r\n this.showTipoCalculoCofinsST = false;\r\n this.showCofinsST = false;\r\n this.showCofinsAliquota = true;\r\n this.showCofinsPauta = false;\r\n this.showValorCofins = true;\r\n this.showValorCofinsST = false;\r\n break;\r\n };\r\n };\r\n\r\n definecofinsTipoCalculo(cofinsTipoCalculo: number) {\r\n\r\n\r\n switch (cofinsTipoCalculo) {\r\n case 0:\r\n this.showCofinsAliquota = true;\r\n this.showCofinsPauta = false;\r\n break;\r\n case 1:\r\n this.showCofinsAliquota = false;\r\n this.showCofinsPauta = true;\r\n break;\r\n };\r\n\r\n }\r\n\r\n definecofinsStTipoCalculo(cofinsStTipoCalculo: number) {\r\n\r\n switch (cofinsStTipoCalculo) {\r\n case 0:\r\n this.showCofinsSTAliquota = true;\r\n this.showCofinsSTPauta = false;\r\n break;\r\n case 1:\r\n this.showCofinsSTAliquota = false;\r\n this.showCofinsSTPauta = true;\r\n break;\r\n };\r\n }\r\n\r\n\r\n maximizarDialog() {\r\n this.dialogRef.updateSize('100%', '100%');\r\n this.maximizado = true;\r\n }\r\n\r\n restaurarDialog() {\r\n this.dialogRef.updateSize('80vh', '100vh');\r\n this.maximizado = false;\r\n }\r\n\r\n}\r\n","\r\n
          \r\n

          Item da Venda

          \r\n \r\n
          \r\n \r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Produto\r\n \r\n Produto Acabado\r\n Uso e Consumo\r\n Ativo Imobilizado\r\n \r\n \r\n \r\n Digite o Nome do {{venda.vendaTipo != 1 ? 'Produto' :\r\n 'Serviço'}}\r\n \r\n \r\n \r\n {{produto.descricao}} - {{produto.vlrComercial | currency}}\r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n CFOP\r\n \r\n \r\n {{cfop.codCfop + ' - ' + cfop.descricao}}\r\n \r\n \r\n \r\n
          \r\n
          \r\n \r\n Estoque\r\n \r\n \r\n {{estoque.produto.descricao}}\r\n \r\n \r\n \r\n \r\n Lote\r\n \r\n \r\n
          \r\n
          \r\n \r\n Quantidade\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Valor Total\r\n \r\n \r\n \r\n Desconto\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n Código do {{venda.vendaTipo != 1 ? 'Produto' : 'Serviço'}}\r\n \r\n \r\n \r\n Descrição\r\n \r\n \r\n
          \r\n
          \r\n \r\n NCM\r\n \r\n \r\n \r\n EAN\r\n \r\n \r\n \r\n EAN Tributário\r\n \r\n \r\n \r\n EX_TIPI\r\n \r\n \r\n \r\n CEST\r\n \r\n \r\n
          \r\n
          \r\n \r\n Unidade Comercial\r\n \r\n \r\n \r\n Valor Comercial\r\n \r\n \r\n \r\n Quantidade Comercial\r\n \r\n \r\n
          \r\n
          \r\n \r\n Unidade Tributária\r\n \r\n \r\n \r\n Valor Unitário\r\n \r\n \r\n \r\n Quantidade Tributária\r\n \r\n \r\n
          \r\n
          \r\n \r\n Informações Adicionais\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor Total Bruto\r\n \r\n \r\n \r\n Valor do Produto compõe Total da Nota\r\n \r\n Não\r\n Sim\r\n \r\n \r\n \r\n Valor Frete\r\n \r\n \r\n \r\n Valor do Seguro\r\n \r\n \r\n \r\n Outras despesas acessórias\r\n \r\n \r\n
          \r\n
          \r\n \r\n Origem da mercadoria\r\n \r\n 0 - Nacional\r\n 1 - Estrangeira - Importação direta\r\n 2 - Estrangeira - Adquirida no mercado interno\r\n \r\n 3 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação superior a 40% e inferior ou igual a 70%\r\n 4 - Nacional, cuja produção tenha sido feita em\r\n conformidade com os processos produtivos básicos de que tratam as\r\n legislações citadas nos Ajustes\r\n 5 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação inferior ou igual a 40%\r\n 6 - Estrangeira - Importação direta, sem similar\r\n nacional, constante em lista da CAMEX e gás natural\r\n 7 - Estrangeira - Adquirida no mercado interno, sem\r\n similar nacional, constante lista CAMEX e gás natural\r\n 8 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação superior a 70%\r\n \r\n \r\n
          \r\n
          \r\n \r\n Número do Pedido de Compra\r\n \r\n \r\n \r\n Item do Pedido de Compra\r\n \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Código do Serviço/Atividade\r\n \r\n \r\n {{listaServico.codigo + ' - ' + listaServico.descricao}}\r\n \r\n \r\n \r\n
          \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n Valor do serviço prestado\r\n \r\n \r\n \r\n Alíquota (%)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor das Deduções\r\n \r\n \r\n \r\n Outras Retenções\r\n \r\n \r\n
          \r\n
          \r\n \r\n Descontos Incondicionados\r\n \r\n \r\n \r\n Descontos Condicionados\r\n \r\n \r\n
          \r\n
          \r\n \r\n PIS\r\n \r\n \r\n \r\n Cofins\r\n \r\n \r\n \r\n IR\r\n \r\n \r\n
          \r\n
          \r\n \r\n INSS\r\n \r\n \r\n \r\n CSLL\r\n \r\n \r\n\r\n
          \r\n
          \r\n \r\n Base de Cálculo\r\n \r\n \r\n\r\n \r\n Valor Líquido\r\n \r\n \r\n \r\n Valor do ISS a Pagar\r\n \r\n \r\n
          \r\n
          \r\n \r\n ISS Retido\r\n \r\n Sim\r\n Não\r\n \r\n \r\n \r\n Valor do ISS Retido\r\n \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Situação Tributária\r\n \r\n 00 - Tributada integralmente\r\n \r\n 10 - Tributada e com cobrança do ICMS por substituição tributária\r\n \r\n \r\n 20 - Com redução de base de cálculo\r\n \r\n \r\n 30 - Isenta ou não tributada e com cobrança do ICMS por substituição\r\n tributária\r\n \r\n \r\n 40 - Isenta\r\n \r\n \r\n 41 - Não tributada\r\n \r\n \r\n 50 - Suspensão\r\n \r\n \r\n 51 - Diferimento\r\n \r\n \r\n 60 - ICMS cobrado anteriormente por substituição tributária\r\n \r\n \r\n 70 - Com redução de base de cálculo e cobrança do ICMS por substituição\r\n tributária\r\n \r\n \r\n 90 - Outros\r\n \r\n 101 - Tributada pelo Simples Nacional com\r\n permissão de crédito\r\n 102 - Tributada pelo Simples Nacional sem\r\n permissão de crédito\r\n 103 - Isenção do ICMS no Simples Nacional para\r\n faixa de\r\n receita bruta\r\n 201 - Tributada pelo Simples Nacional com\r\n permissão de\r\n crédito e com cobrança do ICMS por Substituição Tributária\r\n 202 - Tributada pelo Simples Nacional sem\r\n permissão de\r\n crédito e com cobrança do ICMS por Substituição Tributária\r\n 203 - Isenção do ICMS nos Simples Nacional para\r\n faixa de\r\n receita bruta e com cobrança do ICMS por Substituição Tributária\r\n \r\n 300 - Imune\r\n 400 - Não tributada pelo Simples Nacional\r\n \r\n 500 - ICMS cobrado anteriormente por\r\n substituição\r\n tributária (substituído) ou por antecipação\r\n 900 - Outros\r\n \r\n \r\n \r\n  \r\n
          \r\n \r\n ICMS\r\n DIFAL\r\n
          \r\n
          \r\n
          \r\n
          \r\n \r\n Origem da mercadoria\r\n \r\n 0 - Nacional\r\n 1 - Estrangeira - Importação direta\r\n 2 - Estrangeira - Adquirida no mercado interno\r\n \r\n 3 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação\r\n superior a 40% e inferior ou igual a 70%\r\n 4 - Nacional, cuja produção tenha sido feita em\r\n conformidade com os processos produtivos básicos de que tratam as\r\n legislações citadas nos Ajustes\r\n 5 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação\r\n inferior ou igual a 40%\r\n 6 - Estrangeira - Importação direta, sem similar\r\n nacional,\r\n constante em lista da CAMEX e gás natural\r\n 7 - Estrangeira - Adquirida no mercado interno, sem\r\n similar nacional, constante lista CAMEX e gás natural\r\n 8 - Nacional, mercadoria ou bem com Conteúdo de\r\n Importação\r\n superior a 70%\r\n \r\n \r\n
          \r\n
          \r\n \r\n Modalidade de determinação da BC do ICMS\r\n \r\n Margem Valor Agregado (%)\r\n Pauta (Valor)\r\n Preço Tabelado Máx. (valor)\r\n Valor da operação\r\n \r\n \r\n \r\n Base de Cálculo do ICMS\r\n \r\n \r\n \r\n Alíquota ICMS\r\n \r\n \r\n \r\n Valor do ICMS\r\n \r\n \r\n \r\n Percentual da Redução de BC do ICMS\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor da BC do ICMS ST retido\r\n \r\n \r\n \r\n Alíquota suportada pelo Consumidor Final\r\n \r\n \r\n \r\n Valor do ICMS próprio do Substituto\r\n \r\n \r\n \r\n Valor do ICMS ST retido\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Modalidade de determinação da BC do ICMS ST\r\n \r\n \r\n 0 - Preço tabelado ou máximo sugerido\r\n \r\n 1 - Lista Negativa\r\n 2 - Lista Positiva\r\n 3 - Lista Neutra\r\n 4 - Margem Valor Agregado\r\n 5 - Pauta\r\n \r\n \r\n \r\n Percentual da Redução de BC do ICMS ST\r\n \r\n \r\n \r\n Percentual da MVA Adicionado do ICMS ST\r\n \r\n \r\n \r\n Valor da BC do ICMS ST\r\n \r\n \r\n \r\n Alíquota do imposto do ICMS ST\r\n \r\n \r\n \r\n Valor do ICMS ST\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n Alíquota Crédito\r\n \r\n Alíquota aplicável de cálculo do crédito\r\n \r\n \r\n Valor Crédito do ICMS\r\n \r\n Valor crédito do ICMS que pode ser aproveitado\r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Código da situação tributária\r\n \r\n 00 - Entrada com recuperação de crédito\r\n \r\n 01 - Entrada tributada com alíquota zero\r\n \r\n 02 - Entrada isenta\r\n 03 - Entrada não tributada\r\n 04 - Entrada imune\r\n 05 - Entrada com suspensão\r\n 49 - Outras entradas\r\n 50 - Saída tributada\r\n 51 - Saída tributada com alíquota zero\r\n \r\n 52 - Saída isenta\r\n 53 - Saída não tributada\r\n 54 - Saída imune\r\n 55 - Saída com suspensão\r\n 99 - Outras saídas\r\n \r\n \r\n
          \r\n
          \r\n \r\n Classe de enquadramento do IPI\r\n \r\n Para Cigarros e Bebidas\r\n \r\n \r\n Código de Enquadramento Legal do IPI\r\n \r\n \r\n \r\n CNPJ do produtor\r\n \r\n \r\n
          \r\n
          \r\n \r\n Código do selo de controle IPI\r\n \r\n \r\n \r\n Quantidade de selo de controle\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em Quantidade (pauta)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor da Base de Cálculo\r\n \r\n \r\n \r\n Alíquota do IPI\r\n \r\n \r\n
          \r\n
          \r\n \r\n Quantidade total na unidade padrão\r\n \r\n \r\n \r\n Valor por Unidade Tributável\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor do IPI \r\n \r\n \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Situação Tributária\r\n \r\n 01 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação alíquota normal (cumulativo/não cumulativo))\r\n 02 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação (alíquota diferenciada))\r\n 03 - Operação Tributável (base de cálculo =\r\n quantidade\r\n vendida x alíquota por unidade de produto)\r\n 04 - Operação Tributável (tributação monofásica\r\n (alíquota\r\n zero))\r\n 05 - Operação Tributável (Substituição\r\n Tributária)\r\n \r\n 06 - Operação Tributável (alíquota zero)\r\n \r\n 07 - Operação Isenta da Contribuição\r\n 08 - Operação Sem Incidência da Contribuição\r\n \r\n 09 - Operação com Suspensão da Contribuição\r\n \r\n 49 - Outras Operações de Saída\r\n 50 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 51 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Não Tributada no Mercado Interno\r\n 52 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 53 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 54 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas no Mercado Interno e de Exportação\r\n 55 - Operação com Direito a Crédito - Vinculada a\r\n Receitas NãoTributadas no Mercado Interno e de Exportação\r\n 56 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação\r\n \r\n 60 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 61 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Não-Tributada no Mercado Interno\r\n 62 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 63 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 64 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas no Mercado Interno e de Exportação\r\n 65 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Não-Tributadas no Mercado Interno e de Exportação\r\n \r\n 66 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de\r\n Exportação\r\n 67 - Crédito Presumido - Outras Operações\r\n \r\n 70 - Operação de Aquisição sem Direito a Crédito\r\n \r\n 71 - Operação de Aquisição com Isenção\r\n \r\n 72 - Operação de Aquisição com Suspensão\r\n \r\n 73 - Operação de Aquisição a Alíquota Zero\r\n \r\n 74 - Operação de Aquisição; sem Incidência da\r\n Contribuição\r\n 75 - Operação de Aquisição por Substituição\r\n Tributária\r\n \r\n 98 - Outras Operações de Entrada\r\n 99 - Outras Operações\r\n \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor da Base de Cálculo do PIS\r\n \r\n \r\n \r\n Alíquota do PIS (em percentual)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Alíquota do PIS (em reais)\r\n \r\n \r\n \r\n Quantidade Vendida\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor do PIS\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor da Base de Cálculo do PIS\r\n \r\n \r\n \r\n Alíquota do PIS (em percentual)\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n Alíquota do PIS (em reais)\r\n \r\n
          \r\n
          \r\n Quantidade Vendida\r\n \r\n
          \r\n
          \r\n
          \r\n \r\n Valor do PIS\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Situação Tributária\r\n \r\n 01 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação alíquota normal (cumulativo/não cumulativo))\r\n 02 - Operação Tributável (base de cálculo = valor\r\n da\r\n operação (alíquota diferenciada))\r\n 03 - Operação Tributável (base de cálculo =\r\n quantidade\r\n vendida x alíquota por unidade de produto)\r\n 04 - Operação Tributável (tributação monofásica\r\n (alíquota\r\n zero))\r\n 05 - Operação Tributável (Substituição\r\n Tributária)\r\n \r\n 06 - Operação Tributável (alíquota zero)\r\n \r\n 07 - Operação Isenta da Contribuição\r\n 08 - Operação Sem Incidência da Contribuição\r\n \r\n 09 - Operação com Suspensão da Contribuição\r\n \r\n 49 - Outras Operações de Saída\r\n 50 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 51 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita Não Tributada no Mercado Interno\r\n 52 - Operação com Direito a Crédito - Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 53 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 54 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas no Mercado Interno e de Exportação\r\n 55 - Operação com Direito a Crédito - Vinculada a\r\n Receitas NãoTributadas no Mercado Interno e de Exportação\r\n 56 - Operação com Direito a Crédito - Vinculada a\r\n Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação\r\n \r\n 60 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Tributada no Mercado Interno\r\n 61 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita Não-Tributada no Mercado Interno\r\n 62 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n Exclusivamente a Receita de Exportação\r\n 63 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno\r\n 64 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas no Mercado Interno e de Exportação\r\n 65 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Não-Tributadas no Mercado Interno e de Exportação\r\n \r\n 66 - Crédito Presumido - Operação de Aquisição\r\n Vinculada\r\n a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de\r\n Exportação\r\n 67 - Crédito Presumido - Outras Operações\r\n \r\n 70 - Operação de Aquisição sem Direito a Crédito\r\n \r\n 71 - Operação de Aquisição com Isenção\r\n \r\n 72 - Operação de Aquisição com Suspensão\r\n \r\n 73 - Operação de Aquisição a Alíquota Zero\r\n \r\n 74 - Operação de Aquisição; sem Incidência da\r\n Contribuição\r\n 75 - Operação de Aquisição por Substituição\r\n Tributária\r\n \r\n 98 - Outras Operações de Entrada\r\n 99 - Outras Operações\r\n \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor da Base de Cálculo do cofins\r\n \r\n \r\n \r\n Alíquota do cofins (em percentual)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Alíquota do cofins (em reais)\r\n \r\n \r\n \r\n Quantidade Vendida\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor do cofins\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n \r\n
          \r\n
          \r\n \r\n Tipo de Cálculo\r\n \r\n Percentual\r\n Em valor (pauta)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor da Base de Cálculo do cofins\r\n \r\n \r\n \r\n Alíquota do cofins (em percentual)\r\n \r\n \r\n
          \r\n
          \r\n \r\n Alíquota do cofins (em reais)\r\n \r\n \r\n \r\n Quantidade Vendida\r\n \r\n \r\n
          \r\n
          \r\n \r\n Valor do cofins\r\n \r\n \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n
          \r\n","export const environment = {\r\n\r\n production: false,\r\n webApiSaguiControlUrl: 'https://saguicontrolapi-homologacao.azurewebsites.net',\r\n webApiSaguiEduUrl: 'https://saguieduapi-homologacao.azurewebsites.net',\r\n webApiSaguiLogUrl: 'https://saguilogapi-homologacao.azurewebsites.net',\r\n apiD4Sign: 'demo.d4sign.com.br',\r\n SaguiApp: 'SaguiControl',\r\n saguiControlClientId: '6816e5fc-b4be-42b6-8ff5-a486fc6e4bf6',\r\n saguiControlTenantUrl: 'https://saguitech.com.br/saguicontrolapi',\r\n emailSuporte: 'suporte@saguitech.com.br',\r\n scope: 'https://saguitech.com.br/saguicontrolapi/user_impersonation',\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///"}