{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/components/configuracoes/configuracoes.component.html","./src/app/components/loader/loader.component.html","./src/app/components/login/login.component.html","./src/app/components/meus-pedidos/meus-pedidos.component.html","./src/app/components/nav-bar/nav-bar.component.html","./src/app/components/not-found/not-found.component.html","./src/app/components/produtos/produtos.component.html","./src/app/components/redefinir-senha/redefinir-senha.component.html","./src/app/components/rodape/rodape.component.html","./src/app/components/suporte/suporte.component.html","./src/app/components/tenho-interesse/tenho-interesse.component.html","./src/app/app-routing.module.ts","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/configuracoes/configuracoes.component.css","./src/app/components/configuracoes/configuracoes.component.ts","./src/app/components/loader/loader.component.css","./src/app/components/loader/loader.component.ts","./src/app/components/login/login.component.css","./src/app/components/login/login.component.ts","./src/app/components/meus-pedidos/meus-pedidos.component.css","./src/app/components/meus-pedidos/meus-pedidos.component.ts","./src/app/components/nav-bar/nav-bar.component.css","./src/app/components/nav-bar/nav-bar.component.ts","./src/app/components/not-found/not-found.component.css","./src/app/components/not-found/not-found.component.ts","./src/app/components/produtos/produtos.component.css","./src/app/components/produtos/produtos.component.ts","./src/app/components/redefinir-senha/redefinir-senha.component.css","./src/app/components/redefinir-senha/redefinir-senha.component.ts","./src/app/components/rodape/rodape.component.css","./src/app/components/rodape/rodape.component.ts","./src/app/components/suporte/suporte.component.css","./src/app/components/suporte/suporte.component.ts","./src/app/components/tenho-interesse/tenho-interesse.component.css","./src/app/components/tenho-interesse/tenho-interesse.component.ts","./src/app/core/guards/auth.guard.ts","./src/app/core/interceptors/listener-interceptor.ts","./src/app/core/models/controle-acessos/controle-acesso-cliente.ts","./src/app/core/models/pedidos/pedido-itens.ts","./src/app/core/models/pedidos/pedido.ts","./src/app/core/models/produtos/produto-disponibilidade.ts","./src/app/core/models/produtos/produto-grupo.ts","./src/app/core/models/produtos/produto-promocional-agrupado.ts","./src/app/core/services/auth/auth.service.ts","./src/app/core/services/call-center/call-center.service.ts","./src/app/core/services/clientes/cliente.service.ts","./src/app/core/services/configuracoes/configuracao.service.ts","./src/app/core/services/controle-acessos/controle-acesso.service.ts","./src/app/core/services/formas-pagamento/forma-pagamento.service.ts","./src/app/core/services/listener/listener.service.ts","./src/app/core/services/notas-fiscais/nota-fiscal.service.ts","./src/app/core/services/novos-interesses/novo-interesse.service.ts","./src/app/core/services/pedidos/pedido-itens.service.ts","./src/app/core/services/pedidos/pedido.service.ts","./src/app/core/services/prazos-pagamento/prazo-pagamento-cliente.service.ts","./src/app/core/services/prazos-pagamento/prazo-pagamento-itens.service.ts","./src/app/core/services/prazos-pagamento/prazo-pagamento.service.ts","./src/app/core/services/produtos/produto.service.ts","./src/app/core/services/tipos/tipo-pedido.service.ts","./src/app/core/services/vendedores/vendedor.service.ts","./src/app/core/tools/animacao.ts","./src/app/core/tools/pdf.service.ts","./src/app/core/tools/validacao-formulario.service.ts","./src/app/diretivas/sortable-header.directive.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n

Configurações

\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Clientes
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Margem inválida!
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n \\\"Loader\\\"\\r\\n
\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Logomarca\\\"\\r\\n\\r\\n
Faça seus pedidos on-line
de forma simples e muito rápida!
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Entrar

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
CNPJ/CPF em branco!
\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Senha em branco!
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Tenho Interesse\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Desenvolvido por
\\r\\n\\r\\n \\\"Logomarca\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n

Consultar (Nota 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 \\r\\n \\r\\n \\r\\n
Nota Fiscal
\\r\\n \\r\\n {{ notaFiscal.nf }}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ValorVencimento
\\r\\n \\r\\n {{ fatura.valor | currency: 'BRL' }}{{ fatura.vencimento | date: 'dd/MM/yyyy' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Consultar (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 \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EmailPlataformaDt. CriaçãoDt. AtualizaçãoDt. AprovaçãoParcelasValor: R$StatusDetalhes
{{ pedidoPagamento.email }}{{ pedidoPagamento.plataform }}{{ pedidoPagamento.date_created | date: 'dd/MM/yyyy HH:mm:ss' }}{{ pedidoPagamento.date_last_updated | date: 'dd/MM/yyyy HH:mm:ss' }}{{ pedidoPagamento.date_approved | date: 'dd/MM/yyyy HH:mm:ss' }}{{ pedidoPagamento.installments }}{{ pedidoPagamento.transaction_amount | currency: 'BRL' }}AprovadoAutorizadoEm processamentoPendenteCreditadoEm contigênciaEm análise
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
Meus {{ palavrasPedidosOrcamentos }}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StatusNro {{ palavrasPedidoOrcamento }}Dt. {{ palavrasPedidoOrcamento }}ClienteCNPJ/CPFTotal: R$LitragemEnviadoTipoNota FiscalEntrega
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ pedido.status_pedido }}\\r\\n {{ pedido.status_pedido }}\\r\\n {{ pedido.status_pedido }}\\r\\n {{ pedido.order_id_app }}{{ pedido.order_created_at | date: 'dd/MM/yyyy HH:mm:ss' }}{{ pedido.name }}{{ pedido.client_document }}{{ pedido.total | currency: 'BRL' }}{{ pedido.total_litragem | currency: 'BRL' : '' }}{{ pedido.order_sent_on | date: 'dd/MM/yyyy HH:mm:ss' }}{{ pedido.cod_tipopedvenda }}\\r\\n {{ pedido.numero_nf }}\\r\\n {{ pedido.dt_previsao_entrega | date: 'dd/MM/yyyy' }}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\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çãoQtdeUnitário: R$Total: R$
{{ pedidoItem.referencia_cliente }}{{ pedidoItem.produto }}{{ pedidoItem.quantity }}{{ formatarValoresTresCasasDecimais(pedidoItem.vr_unitario_acumulado) }}{{ pedidoItem.vr_sub_total_acumulado | currency: 'BRL' }}
\\r\\n {{ pedidoItem.observacao_item }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

Página não encontrada...

\\r\\n\\r\\n Voltar\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n

Fotos

\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Foto\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Finalizar {{ verbosCompraOrcamento }}

\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
Forma de Pagamento:
\\r\\n
\\r\\n \\r\\n {{ formaPagamentoSelecionada.descricao }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
Parcelas:
\\r\\n
{{ prazoPagamentoParcelaSelecionado.descricao_qt_parcelas }}
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
Prazo de Pagamento:
\\r\\n
\\r\\n \\r\\n {{ prazoPagamentoSelecionado.descricao }}\\r\\n\\r\\n = 0 && configuracao != null && configuracao.b2b_mostra_fator_fin\\\">\\r\\n - Acréscimo: {{ prazoPagamentoSelecionado.fator_financeiro | currency: 'BRL' : '' }}%\\r\\n \\r\\n\\r\\n \\r\\n - Desconto: {{ prazoPagamentoSelecionado.fator_financeiro | currency: 'BRL' : '' }}%\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Atenção: Prezado cliente seu pedido pode sofrer alteração de preço.\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Notificaçõ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
\\r\\n

Pagamento

\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Cartão\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"Loader\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n

Simular

\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ produtoSelecionado.categoria }} / {{ produtoSelecionado.grupo_estoque }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtoSelecionado.name }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ verbosCompraOrcamento == 'Compra' ? 'Última ' : 'Último ' }}{{ verbosCompraOrcamento }}: {{ produtoSelecionado.ultima_compra | date: 'dd/MM/yyyy' }} - Qtde: {{ produtoSelecionado.quantity }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"Produto\\\"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n 0 || (configuracao != null && configuracao.b2b_pedido_sem_estoque)\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ produtoSelecionado.percentual_margem | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n CONSULTAR\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0 && configuracao != null && configuracao.mostra_estoque_grade\\\">\\r\\n
\\r\\n
\\r\\n\\r\\n 0 && configuracao != null && configuracao.mostra_estoque\\\">\\r\\n
\\r\\n
\\r\\n {{ produtoSelecionado.estoque }} {{ produtoSelecionado.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n 0 && configuracao != null && !configuracao.mostra_estoque && configuracao.mostra_estoque_grade\\\">\\r\\n
\\r\\n
\\r\\n 0 && produtoSelecionado.estoque <= 4\\\">{{ produtoSelecionado.estoque }} {{ produtoSelecionado.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n\\r\\n 4 && produtoSelecionado.estoque <= 8\\\"><= 8 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 8 && produtoSelecionado.estoque <= 20\\\"><= 20 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 20 && produtoSelecionado.estoque <= 100\\\"><= 100 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 100\\\">+ 100 UNIDADES 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 PRODUTO INDISPONÍVEL\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\\"Logomarca\\\"\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n Busca por 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
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n Busca por medida\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Indicar\\\"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ carrinho.length > 0 ? carrinho.length : '' }} {{ carrinho.length == 0 ? '' : carrinho.length == 1 ? 'Item - ' : 'Itens - ' }} {{ carrinhoValor | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Seja bem-vindo(a)! Para emissão de 2ª via de nota fiscal/fatura clique aqui.\\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 {{ aviseme }}\\r\\n\\r\\n {{ qtdeDisponibilidade }}\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ campanhas }}
\\r\\n
{{ promocoes }}
\\r\\n
{{ reposicoes }}
\\r\\n
{{ maisVendidos }}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ produtoCategoria.categoria }}
\\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 \\\"Carousel\\\"\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n 0\\\">\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
{{ conteudoTitulo.titulo }}
\\r\\n\\r\\n
{{ conteudoTitulo.descricao }}
\\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 \\\"Banners\\\"\\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 \\\"Categorias\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
Cliente:
\\r\\n
{{ name }}
\\r\\n
{{ enderecoCompleto }}
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n Valor Mínimo p/ {{ verbosCompraOrcamento }}: {{ configuracao.b2b_valor_minimo_pedido | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n 0 && (configuracao != null && carrinhoValor >= configuracao.b2b_valor_minimo_pedido)\\\">\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\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 em branco!
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Prazo de Pagamento em branco!
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
ProdutoDesconto: %Valor Unitário: R$QtdeSub-Total: R$
\\r\\n
\\r\\n \\r\\n \\\"Produto\\\"\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"Produto\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ produto.sku }}
\\r\\n\\r\\n
\\r\\n \\r\\n \\\"Produto\\\"\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n {{ produto.referencia_cliente }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ produto.grupo_estoque }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ produto.categoria }} / {{ produto.grupo_estoque }}\\r\\n
\\r\\n
\\r\\n\\r\\n
{{ produto.name.substr(0, 45) }}
\\r\\n\\r\\n
\\r\\n \\r\\n
0 && (!produto_vinculado.bonificacao || (produto_vinculado.bonificacao && produto_vinculado.bonificacao_selecionada))\\\">\\r\\n {{ produto_vinculado.qtde }} {{ produto_vinculado.qtde > 1 ? 'UNIDADES' : 'UNIDADE' }} DE {{ produto_vinculado.name }}\\r\\n\\r\\n BONIFICAÇÃO\\r\\n\\r\\n \\r\\n \\r\\n +{{ produto.qtde_bonificacao_multiplicavel }} UNIDADE GRÁTIS\\r\\n \\r\\n\\r\\n \\r\\n +{{ produto.qtde_bonificacao_multiplicavel }} {{ produto.qtde_bonificacao_multiplicavel > 1 ? 'UNIDADES' : 'UNIDADE' }} GRÁTIS\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{ produto_vinculado.name }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n 0\\\">\\r\\n {{ produto.price_promotional_percentual | currency: 'BRL' : '' }}%\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n
{{ produto.price_promotional | currency: 'BRL' }}
\\r\\n
\\r\\n\\r\\n \\r\\n
{{ produto.price | currency: 'BRL' }}
\\r\\n
\\r\\n\\r\\n \\r\\n
{{ produto.valor_total_produtos | currency: 'BRL' }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
{{ produto.valor_total | currency: 'BRL' }}
\\r\\n
\\r\\n \\r\\n
\\r\\n
Total: {{ carrinhoValor | currency: 'BRL' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ produtoSelecionado.grupo_estoque }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ produtoSelecionado.categoria }} / {{ produtoSelecionado.grupo_estoque }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtoSelecionado.name }}\\r\\n
\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n
\\r\\n
\\r\\n Qtde Mínima de Itens: {{ produtoSelecionado.qtde_minima }}\\r\\n
\\r\\n\\r\\n
\\r\\n Qtde Atual de Itens: {{ produtoSelecionado.qtde_minima_atual }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ verbosCompraOrcamento == 'Compra' ? 'Última ' : 'Último ' }}{{ verbosCompraOrcamento }}: {{ produtoSelecionado.ultima_compra | date: 'dd/MM/yyyy' }} - Qtde: {{ produtoSelecionado.quantity }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtoSelecionado.price_promotional_percentual | currency: 'BRL' : '' }}%\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ProdutoPor: R$De: R$Por: R$Qtde MínimaQtdeQtdeSub-Total: R$
\\r\\n
\\r\\n \\\"Produto\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ produto_vinculado.categoria }} / {{ produto_vinculado.grupo_estoque }}\\r\\n
\\r\\n\\r\\n
{{ produto_vinculado.name.substr(0, 45) }}
\\r\\n\\r\\n
\\r\\n 0 && configuracao != null && configuracao.mostra_estoque\\\">\\r\\n
\\r\\n {{ produto_vinculado.estoque }} {{ produto_vinculado.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n 0 && configuracao != null && !configuracao.mostra_estoque && configuracao.mostra_estoque_grade\\\">\\r\\n
\\r\\n 0 && produto_vinculado.estoque <= 4\\\">{{ produto_vinculado.estoque }} {{ produto_vinculado.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n\\r\\n 4 && produto_vinculado.estoque <= 8\\\"><= 8 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 8 && produto_vinculado.estoque <= 20\\\"><= 20 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 20 && produto_vinculado.estoque <= 100\\\"><= 100 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 100\\\">+ 100 UNIDADES DISPONÍVEIS\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n PRODUTO INDISPONÍVEL\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n +{{ produtoSelecionado.qtde_bonificacao_multiplicavel }} UNIDADE GRÁTIS\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n +{{ produtoSelecionado.qtde_bonificacao_multiplicavel }} {{ produtoSelecionado.qtde_bonificacao_multiplicavel > 1 ? 'UNIDADES' : 'UNIDADE' }} GRÁTIS\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ produto_vinculado.price_promotional | currency: 'BRL' }}
\\r\\n
\\r\\n
{{ produto_vinculado.price | currency: 'BRL' }}
\\r\\n
\\r\\n
{{ produto_vinculado.price_promotional | currency: 'BRL' }}
\\r\\n
\\r\\n
{{ produto_vinculado.qtde_minima == 0 ? '-' : produto_vinculado.qtde_minima }}
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
{{ produto_vinculado.qtde_minima }}
\\r\\n
\\r\\n
{{ produto_vinculado.valor_total | currency: 'BRL' }}
\\r\\n
\\r\\n
Sub-Total: {{ produtoSelecionado.valor_total_produtos | currency: 'BRL' }}
\\r\\n
\\r\\n
Sub-Total: {{ produtoSelecionado.price_promotional | currency: 'BRL' }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Total: {{ produtoSelecionado.valor_total | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ produtoSelecionado.sku }}
\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Produto\\\"\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n {{ produtoSelecionado.referencia_cliente }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n 0 || (configuracao != null && configuracao.b2b_pedido_sem_estoque)\\\">\\r\\n
\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n De: {{ produtoSelecionado.price | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n Por: {{ produtoSelecionado.price_promotional | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ produtoSelecionado.price | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n CONSULTAR\\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 0 && configuracao != null && configuracao.mostra_estoque\\\">\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtoSelecionado.estoque }} {{ produtoSelecionado.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n 0 && configuracao != null && !configuracao.mostra_estoque && configuracao.mostra_estoque_grade\\\">\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n 0 && produtoSelecionado.estoque <= 4\\\">{{ produtoSelecionado.estoque }} {{ produtoSelecionado.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n\\r\\n 4 && produtoSelecionado.estoque <= 8\\\"><= 8 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 8 && produtoSelecionado.estoque <= 20\\\"><= 20 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 20 && produtoSelecionado.estoque <= 100\\\"><= 100 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 100\\\">+ 100 UNIDADES DISPONÍVEIS\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n PRODUTO INDISPONÍVEL\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0)\\\">\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n \\r\\n
- Acima de {{ tabela_promocao_qtde.qtd_minima }} unidades por {{ tabela_promocao_qtde.preco | currency: 'BRL' }}.
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Sub-Total: {{ produtoSelecionado.valor_total | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n 0 || (configuracao != null && configuracao.b2b_pedido_sem_estoque)) && !catalogo)\\\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n DETALHES\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtoSelecionado.ficha_tecnica }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n 0 && produtoSelecionado.categoria != campanhas\\\">\\r\\n
\\r\\n
\\r\\n ANEXOS\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\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 || produtosGrupos1.length > 0 || produtosGrupos2.length > 0 || produtosGrupos3.length > 0 || produtosGrupos4.length > 0 || produtosGrupos5.length > 0\\\">\\r\\n
\\r\\n
\\r\\n FILTROS\\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 {{ produtosGrupos0[0].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 0\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtosGrupos1[0].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 0\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtosGrupos2[0].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 0\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtosGrupos3[0].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 0\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtosGrupos4[0].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 0\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produtosGrupos5[0].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\\r\\n
\\r\\n
\\r\\n FILTROS\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
PRODUTOS ENCONTRADOS ({{ produtoCategoriaSelecionadaQtde }})
\\r\\n
{{ produtoCategoriaSelecionada }} ({{ produtoCategoriaSelecionadaQtde }})
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ produto.grupo_estoque }}\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n {{ verbosCompraOrcamento == 'Compra' ? 'Última ' : 'Último ' }}{{ verbosCompraOrcamento }}: {{ produto.ultima_compra | date: 'dd/MM/yyyy' }} - Qtde: {{ produto.quantity }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produto.price_promotional_percentual | currency: 'BRL' : '' }}%\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\\"Produto\\\"\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"Produto\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
{{ produto.sku }}
\\r\\n\\r\\n
\\r\\n \\\"Produto\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ produto.categoria }} / {{ produto.grupo_estoque }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ produto.name.substr(0, 60) }}\\r\\n
\\r\\n\\r\\n 0 || (produto.categoria == campanhas && produto.grupo_estoque != combo) || (produto.categoria != campanhas && configuracao != null && configuracao.b2b_pedido_sem_estoque)\\\">\\r\\n
\\r\\n
0\\\">\\r\\n De: {{ produto.price | currency: 'BRL' }}\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n Por: {{ produto.price_promotional | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ produto.price | currency: 'BRL' }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n CONSULTAR\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n 0 && configuracao != null && configuracao.mostra_estoque\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ produto.estoque }} {{ produto.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n 0 && configuracao != null && !configuracao.mostra_estoque && configuracao.mostra_estoque_grade\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n 0 && produto.estoque <= 4\\\">{{ produto.estoque }} {{ produto.estoque > 1 ? 'UNIDADES DISPONÍVEIS' : 'UNIDADE DISPONÍVEL' }}\\r\\n\\r\\n 4 && produto.estoque <= 8\\\"><= 8 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 8 && produto.estoque <= 20\\\"><= 20 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 20 && produto.estoque <= 100\\\"><= 100 UNIDADES DISPONÍVEIS\\r\\n\\r\\n 100\\\">+ 100 UNIDADES DISPONÍVEIS\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n PRODUTO INDISPONÍVEL\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n {{ produto.referencia_cliente }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Logomarca\\\"\\r\\n\\r\\n
Faça seus pedidos on-line
de forma simples e muito rápida!
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Redefinir Senha

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Nova Senha em branco!
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
Confirmar Senha em branco!
\\r\\n\\r\\n
Senhas 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
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Desenvolvido por
\\r\\n\\r\\n \\\"Logo\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ nm_empresa }}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ empresa_endereco_bairro }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ empresa_cidade_estado }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ empresa_fone }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Desenvolvido por NapisApp\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n \\r\\n \\\"Logo\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Logomarca\\\"\\r\\n\\r\\n
Faça seus pedidos on-line
de forma simples e muito rápida!
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Tenho Interesse

\\r\\n
\\r\\n\\r\\n
\\r\\n E-mail: {{ novoInteresse.email }}\\r\\n
\\r\\n\\r\\n
\\r\\n Telefone: {{ novoInteresse.telefone }}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
Desenvolvido por
\\r\\n\\r\\n \\\"Logo\\r\\n
\\r\\n
\\r\\n\"","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\n/* Componentes */\r\n\r\nimport { ConfiguracoesComponent } from './components/configuracoes/configuracoes.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { MeusPedidosComponent } from './components/meus-pedidos/meus-pedidos.component';\r\nimport { NotFoundComponent } from './components/not-found/not-found.component';\r\nimport { ProdutosComponent } from './components/produtos/produtos.component';\r\nimport { RedefinirSenhaComponent } from './components/redefinir-senha/redefinir-senha.component';\r\nimport { TenhoInteresseComponent } from './components/tenho-interesse/tenho-interesse.component';\r\n\r\n/* Auth */\r\n\r\nimport { AuthGuard } from './core/guards/auth.guard';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: LoginComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'configuracoes', component: ConfiguracoesComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'login', component: LoginComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'meus-pedidos', component: MeusPedidosComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'produtos', component: ProdutosComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'redefinir-senha', component: RedefinirSenhaComponent, canActivate: [AuthGuard] },\r\n\r\n { path: 'tenho-interesse', component: TenhoInteresseComponent },\r\n\r\n { path: '**', component: NotFoundComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, HostListener } from '@angular/core';\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 {\r\n title = \"Portal de Compras\";\r\n}\r\n","import { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { registerLocaleData, CurrencyPipe, DatePipe, DecimalPipe } from '@angular/common';\r\nimport localePt from '@angular/common/locales/pt';\r\n\r\nregisterLocaleData(localePt);\r\n\r\n/* Pacotes Externos */\r\n\r\nimport { AngularFontAwesomeModule } from 'angular-font-awesome';\r\n\r\nimport {\r\n NgbCarouselModule,\r\n NgbCollapseModule,\r\n NgbDatepickerModule,\r\n NgbModalModule,\r\n NgbTabsetModule,\r\n NgbTooltipModule,\r\n NgbTooltipConfig\r\n} from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { ToastrModule } from 'ngx-toastr';\r\n\r\n/* Auth */\r\n\r\nimport { AuthGuard } from './core/guards/auth.guard';\r\nimport { AuthService } from './core/services/auth/auth.service';\r\n\r\n/* Device */\r\n\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\n/* Listener */\r\n\r\nimport { ListenerInterceptor } from './core/interceptors/listener-interceptor';\r\nimport { ListenerService } from './core/services/listener/listener.service';\r\n\r\n/* Components */\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { ConfiguracoesComponent } from './components/configuracoes/configuracoes.component';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { MeusPedidosComponent } from './components/meus-pedidos/meus-pedidos.component';\r\nimport { NavBarComponent } from './components/nav-bar/nav-bar.component';\r\nimport { NotFoundComponent } from './components/not-found/not-found.component';\r\nimport { ProdutosComponent } from './components/produtos/produtos.component';\r\nimport { RedefinirSenhaComponent } from './components/redefinir-senha/redefinir-senha.component';\r\nimport { RodapeComponent } from './components/rodape/rodape.component';\r\nimport { SortableHeaderDirective } from './diretivas/sortable-header.directive';\r\nimport { SuporteComponent } from './components/suporte/suporte.component';\r\nimport { TenhoInteresseComponent } from './components/tenho-interesse/tenho-interesse.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ConfiguracoesComponent,\r\n LoaderComponent,\r\n LoginComponent,\r\n MeusPedidosComponent,\r\n NavBarComponent,\r\n NotFoundComponent,\r\n ProdutosComponent,\r\n RedefinirSenhaComponent,\r\n RodapeComponent,\r\n SortableHeaderDirective,\r\n SuporteComponent,\r\n TenhoInteresseComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n\r\n /* Pacotes Externos */\r\n\r\n AngularFontAwesomeModule,\r\n NgbCarouselModule,\r\n NgbCollapseModule,\r\n NgbDatepickerModule,\r\n NgbModalModule,\r\n NgbTabsetModule,\r\n NgbTooltipModule,\r\n ToastrModule.forRoot({\r\n closeButton: true,\r\n progressBar: true,\r\n tapToDismiss: true,\r\n timeOut: 2400\r\n })\r\n ],\r\n providers: [\r\n CurrencyPipe,\r\n DatePipe,\r\n DecimalPipe,\r\n\r\n /* Pacotes Externos */\r\n\r\n NgbTooltipConfig,\r\n\r\n /* Auth */\r\n\r\n AuthGuard,\r\n AuthService,\r\n\r\n /* Device */\r\n\r\n DeviceDetectorService,\r\n\r\n /* Listener */\r\n\r\n ListenerInterceptor,\r\n ListenerService,\r\n { provide: HTTP_INTERCEPTORS, useClass: ListenerInterceptor, multi: true },\r\n\r\n { provide: LOCALE_ID, useValue: \"pt\" }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\n\r\nexport class AppModule { }\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29uZmlndXJhY29lcy9jb25maWd1cmFjb2VzLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n/* Services */\r\n\r\nimport { ClienteService } from '../../core/services/clientes/cliente.service';\r\nimport { ValidacaoFormularioService } from '../../core/tools/validacao-formulario.service';\r\n\r\n@Component({\r\n selector: 'app-configuracoes',\r\n templateUrl: './configuracoes.component.html',\r\n styleUrls: ['./configuracoes.component.css']\r\n})\r\n\r\nexport class ConfiguracoesComponent implements OnInit {\r\n /* Formulário */\r\n\r\n formDados: FormGroup;\r\n\r\n enviado: boolean = false;\r\n\r\n /* Modal */\r\n\r\n @ViewChild(\"configuracoes\", { static: false }) configuracoes: ElementRef;\r\n\r\n /* Storage */\r\n\r\n b2b_margem_consumidor: number = parseFloat(localStorage.getItem(\"b2b_margem_consumidor\"));\r\n\r\n constructor(\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private modalService: NgbModal,\r\n private toastr: ToastrService,\r\n private clienteService: ClienteService,\r\n private validacaoFormularioService: ValidacaoFormularioService,\r\n ) { }\r\n\r\n ngAfterViewInit() {\r\n this.modalConfiguracoes(this.configuracoes);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.modalService.dismissAll();\r\n }\r\n\r\n ngOnInit() {\r\n this.formDados = this.formBuilder.group({\r\n percentual_margem: [this.b2b_margem_consumidor, this.validacaoFormularioService.validarPorcentagemComZero]\r\n });\r\n }\r\n\r\n get f() {\r\n return this.formDados.controls;\r\n }\r\n\r\n /* Modal */\r\n\r\n modalConfiguracoes(content: any) {\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-configuracoes\",\r\n size: \"xl\",\r\n backdrop: \"static\"\r\n }).result.then((acao) => {\r\n if (acao == \"Cancelar\") {\r\n this.router.navigate([\"/produtos\"]);\r\n } else if (acao == \"Salvar\") {\r\n this.enviado = true;\r\n\r\n if (this.formDados.invalid) {\r\n this.modalConfiguracoes(content);\r\n } else {\r\n let percentualMargem: number = this.formDados.controls[\"percentual_margem\"].value == null || this.formDados.controls[\"percentual_margem\"].value == \"\" ? 0 : parseFloat(this.formDados.controls[\"percentual_margem\"].value);\r\n\r\n let alterarPercentualMargem: boolean = false;\r\n\r\n this.clienteService.updateB2BMargemConsumidor(percentualMargem).subscribe(\r\n alterarPercentualMargens => alterarPercentualMargem = alterarPercentualMargens,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (alterarPercentualMargem) {\r\n localStorage.setItem(\"b2b_margem_consumidor\", percentualMargem.toString());\r\n\r\n this.toastr.success(\"\", \"Configuração salva com sucesso!\");\r\n\r\n this.router.navigate([\"/produtos\"]);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }, (reacao) => {\r\n if (reacao != null) {\r\n this.router.navigate([\"/produtos\"]);\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \".loader {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n margin: auto;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n z-index: 9;\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFlO0VBQ2YsTUFBTTtFQUNOLFlBQVk7RUFDWixZQUFZO0VBQ1osV0FBVztFQUNYLFVBQVU7RUFDVixzQkFBc0I7QUFDeEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sb2FkZXIge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiA5O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Animacao } from '../../core/tools/animacao';\r\n\r\n/* Services */\r\n\r\nimport { ListenerService } from '../../core/services/listener/listener.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 preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class LoaderComponent implements OnInit {\r\n /* Carregando */\r\n\r\n carregando: boolean = false;\r\n\r\n constructor(\r\n private listenerService: ListenerService\r\n ) {\r\n this.listenerService.verificarRequisicoesPendentes().subscribe(pendente => {\r\n this.carregando = pendente;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { Animacao } from '../../core/tools/animacao';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n/* Services */\r\n\r\nimport { AuthService } from '../../core/services/auth/auth.service';\r\nimport { ClienteService } from '../../core/services/clientes/cliente.service';\r\nimport { NovoInteresseService } from '../../core/services/novos-interesses/novo-interesse.service';\r\n\r\n/* Models */\r\n\r\nimport { ClienteEmpresa } from '../../core/models/clientes/cliente-empresa';\r\nimport { NovoInteresse } from '../../core/models/novos-interesses/novo-interesse';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class LoginComponent implements OnInit {\r\n formLogin: FormGroup;\r\n\r\n enviado: boolean = false;\r\n\r\n /* Catálogo */\r\n\r\n enviadoCatalogo: boolean = false;\r\n exibirCatalogo: boolean = false;\r\n\r\n /* Dados */\r\n\r\n clientesEmpresas: ClienteEmpresa[] = [];\r\n\r\n clienteEmpresaSelecionado: ClienteEmpresa = null;\r\n\r\n novoInteresse: NovoInteresse = null;\r\n\r\n /* Guid */\r\n\r\n guid_1: string = \"\";\r\n guid_2: string = \"\";\r\n guid_3: string = \"\";\r\n\r\n /* Logomarca */\r\n\r\n logomarca: string = \"\";\r\n logomarcaDesenvolvimento: string = \"\";\r\n\r\n /* Texto */\r\n\r\n exibirTexto: boolean = true;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private formBuilder: FormBuilder,\r\n private toastr: ToastrService,\r\n private clienteService: ClienteService,\r\n private novoInteresseService: NovoInteresseService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.formLogin = this.formBuilder.group({\r\n cnpj_cpf: [\"\", Validators.required],\r\n senha: [\"\", Validators.required]\r\n });\r\n\r\n /* Empresa */\r\n \r\n if (window.location.href.indexOf(\"atrialub\") > -1) {\r\n this.logomarca = \"assets/logo_portal_atrialub.jpeg\";\r\n } else if (window.location.href.indexOf(\"brazmax\") > -1) {\r\n this.logomarca = \"assets/logo_portal_brazmax.jpeg\";\r\n } else if (window.location.href.indexOf(\"brudovan\") > -1) {\r\n this.logomarca = \"assets/logo_portal_brudovan.png\";\r\n } else if (window.location.href.indexOf(\"lojasrpm\") > -1) {\r\n /* Texto */\r\n\r\n this.exibirTexto = false;\r\n\r\n this.logomarca = \"assets/logo_portal_lojasrpm.png\";\r\n } else if (window.location.href.indexOf(\"lubtrol\") > -1) {\r\n this.logomarca = \"assets/logo_portal_lubtrol.png\";\r\n } else if (window.location.href.indexOf(\"petrovila\") > -1) {\r\n this.logomarca = \"assets/logo_portal_petrovila.jpg\";\r\n } else if (window.location.href.indexOf(\"produtosatacado\") > -1 || window.location.href.indexOf(\"localhost\") > -1) {\r\n /* Catálogo */\r\n\r\n this.exibirCatalogo = true;\r\n\r\n /* Texto */\r\n\r\n this.exibirTexto = false;\r\n\r\n this.logomarca = \"assets/logo_portal_produtos_atacado.png\";\r\n } else if (window.location.href.indexOf(\"sklubrificantes\") > -1) {\r\n /* Texto */\r\n\r\n this.exibirTexto = false;\r\n\r\n this.logomarca = \"assets/logo_portal_sklubrificantes.png\";\r\n } else {\r\n this.logomarca = \"assets/logo_portal.jpeg\";\r\n }\r\n\r\n /* Desenvolvimento */\r\n\r\n if (\r\n window.location.href.indexOf(\"lojasrpm\") > -1 ||\r\n window.location.href.indexOf(\"sklubrificantes\") > -1\r\n ) {\r\n this.logomarcaDesenvolvimento = \"assets/logo_2bdigital_branco.png\";\r\n } else {\r\n this.logomarcaDesenvolvimento = \"assets/logo_napis_preto.png\";\r\n }\r\n\r\n this.carregarDados();\r\n }\r\n\r\n get f() {\r\n return this.formLogin.controls;\r\n }\r\n\r\n /* Dados */\r\n\r\n carregarDados() {\r\n let dominio: string = window.location.host;\r\n\r\n this.novoInteresseService.getByDominio(dominio).subscribe(\r\n novosInteresses => this.novoInteresse = novosInteresses,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n\r\n }\r\n );\r\n }\r\n\r\n /* Ações */\r\n\r\n catalogo() {\r\n let cnpj_cpf: string = \"321.801.338-04\";\r\n\r\n this.clienteService.getByDocumento(cnpj_cpf).subscribe(\r\n clientesEmpresas => this.clientesEmpresas = clientesEmpresas,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n this.enviadoCatalogo = true;\r\n\r\n setTimeout(() => {\r\n if (this.clientesEmpresas.length > 0) {\r\n let clienteEmpresa = this.clientesEmpresas.find(clienteEmpresa => clienteEmpresa.guidclientenapis.toUpperCase() == \"21B453CD-D6D1-4A1D-859D-5A46BA7A7219\");\r\n\r\n if (clienteEmpresa != null) {\r\n this.clienteEmpresaSelecionado = clienteEmpresa;\r\n\r\n this.formLogin.controls[\"cnpj_cpf\"].setValue(cnpj_cpf);\r\n this.formLogin.controls[\"senha\"].setValue(\"123\");\r\n\r\n this.formLogin.updateValueAndValidity();\r\n\r\n this.authService.catalogoEmitter.emit(true);\r\n\r\n this.onSubmit();\r\n } else {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n }\r\n } else {\r\n this.toastr.error(\"\", \"Acesso inválido!\");\r\n }\r\n }, 300);\r\n }\r\n );\r\n }\r\n\r\n onSubmit() {\r\n this.enviado = true;\r\n\r\n if (this.formLogin.controls[\"cnpj_cpf\"].valid && this.clientesEmpresas.length == 0) {\r\n let cnpj_cpf: string = this.formLogin.controls[\"cnpj_cpf\"].value.split(\".\").join(\"\").split(\"-\").join(\"\").split(\"/\").join(\"\");\r\n\r\n if (cnpj_cpf.length == 11) {\r\n /* CPF */\r\n\r\n cnpj_cpf = cnpj_cpf.substr(0, 3) + \".\" + cnpj_cpf.substr(3, 3) + \".\" + cnpj_cpf.substr(6, 3) + \"-\" + cnpj_cpf.substr(9, 2);\r\n } else if (cnpj_cpf.length == 14) {\r\n /* CNPJ */\r\n\r\n cnpj_cpf = cnpj_cpf.substr(0, 2) + \".\" + cnpj_cpf.substr(2, 3) + \".\" + cnpj_cpf.substr(5, 3) + \"/\" + cnpj_cpf.substr(8, 4) + \"-\" + cnpj_cpf.substr(12, 2);\r\n } else {\r\n this.toastr.error(\"\", \"CNPJ/CPF inválido!\");\r\n\r\n return;\r\n }\r\n\r\n this.formLogin.controls[\"cnpj_cpf\"].setValue(cnpj_cpf);\r\n\r\n this.clienteService.getByDocumento(cnpj_cpf).subscribe(\r\n clientesEmpresas => this.clientesEmpresas = clientesEmpresas,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.clientesEmpresas.length > 0) {\r\n this.clientesEmpresas.forEach((item) => {\r\n item.exibir = true;\r\n });\r\n\r\n if (window.location.href.indexOf(\"atrialub\") > -1) {\r\n /* Atria */\r\n\r\n this.guid_1 = \"09F06B45-797E-455D-9B0A-E1531B95A4A7\";\r\n this.guid_2 = \"37441631-A638-4469-AD56-6404B0B0BF44\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1 && item.guidclientenapis.toUpperCase() != this.guid_2) {\r\n item.exibir = false;\r\n }\r\n });\r\n } else if (window.location.href.indexOf(\"brudovan\") > -1) {\r\n /* Brudovan */\r\n\r\n this.guid_1 = \"960D72D6-F28E-414B-AE20-14F033522BE1\";\r\n this.guid_2 = \"6B5619F0-DCB2-4CA6-BEEB-67C0AD4AD028\";\r\n this.guid_3 = \"14B5BA1F-018A-4A8D-B257-762E889E2B3A\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1 && item.guidclientenapis.toUpperCase() != this.guid_2 && item.guidclientenapis.toUpperCase() != this.guid_3) {\r\n item.exibir = false;\r\n }\r\n });\r\n } else if (window.location.href.indexOf(\"lojasrpm\") > -1) {\r\n /* Lojas RPM */\r\n\r\n this.guid_1 = \"09C95266-72E6-4503-8DCA-B7B3E95D0421\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1) {\r\n item.exibir = false;\r\n }\r\n });\r\n } else if (window.location.href.indexOf(\"petrovila\") > -1) {\r\n /* Petrovila */\r\n\r\n this.guid_1 = \"C767BADA-BF09-4A11-900B-ACD76FF0177C\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1) {\r\n item.exibir = false;\r\n }\r\n });\r\n } else if (window.location.href.indexOf(\"produtosatacado\") > -1) {\r\n /* Produtos Atacado */\r\n\r\n this.guid_1 = \"21B453CD-D6D1-4A1D-859D-5A46BA7A7219\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1) {\r\n item.exibir = false;\r\n }\r\n });\r\n } else if (window.location.href.indexOf(\"sklubrificantes\") > -1) {\r\n /* SK Lubrificantes */\r\n\r\n this.guid_1 = \"7B6AA2A4-D4BE-40C7-AF60-DB674CD1D11C\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1) {\r\n item.exibir = false;\r\n }\r\n });\r\n } else if (window.location.href.indexOf(\"triunfo\") > -1) {\r\n /* Triunfo */\r\n\r\n this.guid_1 = \"8B424A42-CE01-49BE-A230-18FF66946661\";\r\n this.guid_2 = \"9EC52291-76EC-410D-B0DB-5887E5EE83D1\";\r\n\r\n this.clientesEmpresas.forEach((item) => {\r\n if (item.guidclientenapis.toUpperCase() != this.guid_1 && item.guidclientenapis.toUpperCase() != this.guid_2) {\r\n item.exibir = false;\r\n }\r\n });\r\n }\r\n\r\n this.clientesEmpresas = this.clientesEmpresas.filter(clienteEmpresa => clienteEmpresa.exibir);\r\n\r\n if (this.clientesEmpresas.length > 0) {\r\n this.clienteEmpresaSelecionado = this.clientesEmpresas[0];\r\n\r\n this.formLogin.controls[\"cnpj_cpf\"].disable();\r\n } else {\r\n this.toastr.error(\"\", \"CNPJ/CPF inválido!\");\r\n }\r\n } else {\r\n this.toastr.error(\"\", \"CNPJ/CPF inválido!\");\r\n }\r\n }\r\n );\r\n\r\n this.enviado = false;\r\n } else {\r\n if (this.formLogin.valid && this.clienteEmpresaSelecionado != null) {\r\n if (this.enviadoCatalogo)\r\n localStorage.setItem(\"catalogo\", \"true\");\r\n this.authService.autorizar(this.formLogin.controls[\"cnpj_cpf\"].value, this.clienteEmpresaSelecionado.guidclientenapis, this.formLogin.controls[\"senha\"].value, this.clienteEmpresaSelecionado);\r\n }\r\n }\r\n }\r\n\r\n retornar() {\r\n this.enviado = false;\r\n\r\n this.clientesEmpresas = [];\r\n\r\n this.clienteEmpresaSelecionado = null;\r\n\r\n this.formLogin.controls[\"cnpj_cpf\"].setValue(null);\r\n this.formLogin.controls[\"cnpj_cpf\"].enable();\r\n\r\n this.formLogin.controls[\"senha\"].setValue(null);\r\n\r\n this.formLogin.reset;\r\n }\r\n\r\n selecionarClienteEmpresa(guidclientenapis: string) {\r\n this.clienteEmpresaSelecionado = this.clientesEmpresas.find(clienteEmpresa => clienteEmpresa.guidclientenapis == guidclientenapis);\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWV1cy1wZWRpZG9zL21ldXMtcGVkaWRvcy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, ViewChildren, QueryList } from '@angular/core';\r\nimport { Animacao } from '../../core/tools/animacao';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n/* Services */\r\n\r\nimport { ConfiguracaoService } from '../../core/services/configuracoes/configuracao.service';\r\nimport { NotaFiscalService } from '../../core/services/notas-fiscais/nota-fiscal.service';\r\nimport { PdfService } from '../../core/tools/pdf.service';\r\nimport { PedidoItensService } from '../../core/services/pedidos/pedido-itens.service';\r\nimport { PedidoService } from '../../core/services/pedidos/pedido.service';\r\n\r\n/* Models */\r\n\r\nimport { Configuracao } from '../../core/models/configuracoes/configuracao';\r\nimport { NotaFiscal } from '../../core/models/notas-fiscais/nota-fiscal';\r\nimport { NotaFiscalFatura } from '../../core/models/notas-fiscais/nota-fiscal-fatura';\r\nimport { PedidoItensSintetico } from '../../core/models/pedidos/pedido-itens-sintetico';\r\nimport { PedidoPagamento } from '../../core/models/pedidos/pedido-pagamento';\r\nimport { PedidoSintetico } from '../../core/models/pedidos/pedido-sintetico';\r\n\r\n/* Diretivas */\r\n\r\nimport { SortableHeaderDirective, SortEvent } from '../../diretivas/sortable-header.directive';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-meus-pedidos',\r\n templateUrl: './meus-pedidos.component.html',\r\n styleUrls: ['./meus-pedidos.component.css'],\r\n preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class MeusPedidosComponent implements OnInit {\r\n /* Carregamento */\r\n\r\n carregando: boolean = false;\r\n\r\n /* Configurações */\r\n\r\n configuracao: Configuracao = null;\r\n\r\n /* Notas Fiscais */\r\n\r\n notaFiscal: NotaFiscal = null;\r\n\r\n /* Pedidos */\r\n\r\n pedidos: PedidoSintetico[] = [];\r\n pedidosOriginal: PedidoSintetico[] = [];\r\n\r\n /* Pedidos Itens */\r\n\r\n pedidosItens: PedidoItensSintetico[] = [];\r\n pedidosItensOriginal: PedidoItensSintetico[] = [];\r\n\r\n pedidosItensExpandido: number = -1;\r\n\r\n /* Pedidos (Ordenação) */\r\n\r\n onSortPedido({ column, direction }: SortEvent) {\r\n this.headers.forEach(header => {\r\n if (header.sortable !== column) {\r\n header.direction = \"\";\r\n }\r\n });\r\n\r\n if (direction == \"\") {\r\n this.pedidos = JSON.parse(JSON.stringify(this.pedidosOriginal));\r\n } else {\r\n this.pedidos = this.pedidos.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n const res = compare(a[column], b[column]);\r\n\r\n return direction == \"asc\" ? res : -res;\r\n });\r\n }\r\n\r\n this.pedidosItens = [];\r\n this.pedidosItensExpandido = -1;\r\n }\r\n\r\n onSortPedidoItens({ column, direction }: SortEvent) {\r\n this.headers.forEach(header => {\r\n if (header.sortable !== column) {\r\n header.direction = \"\";\r\n }\r\n });\r\n\r\n if (direction == \"\") {\r\n this.pedidosItens = JSON.parse(JSON.stringify(this.pedidosItensOriginal));\r\n } else {\r\n this.pedidosItens = this.pedidosItens.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n const res = compare(a[column], b[column]);\r\n\r\n return direction == \"asc\" ? res : -res;\r\n });\r\n }\r\n }\r\n\r\n /* Pedidos (Pagamentos) */\r\n\r\n pedidoPagamento: PedidoPagamento = null;\r\n\r\n /* Palavras */\r\n\r\n palavrasPedidoOrcamento: string = \"Pedido\";\r\n palavrasPedidosOrcamentos: string = \"Pedidos\";\r\n\r\n /* Storage */\r\n\r\n client_id_app: string = localStorage.getItem(\"client_id_app\");\r\n b2b_usa_como_orcamento: boolean = (localStorage.getItem(\"b2b_usa_como_orcamento\") == \"true\");\r\n\r\n /* Classificar Colunas */\r\n\r\n @ViewChildren(SortableHeaderDirective) headers: QueryList;\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private toastr: ToastrService,\r\n private configuracaoService: ConfiguracaoService,\r\n private notaFiscalService: NotaFiscalService,\r\n private pdfService: PdfService,\r\n private pedidoService: PedidoService,\r\n private pedidoItensService: PedidoItensService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.b2b_usa_como_orcamento) {\r\n this.palavrasPedidoOrcamento = \"Orçamento\";\r\n this.palavrasPedidosOrcamentos = \"Orçamentos\";\r\n }\r\n\r\n this.carregarDados();\r\n }\r\n\r\n /* Dados */\r\n\r\n carregarDados() {\r\n this.carregando = true;\r\n\r\n /* Configurações */\r\n\r\n this.configuracaoService.getByGuidClienteNapis().subscribe(\r\n configuracoes => this.configuracao = configuracoes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n /* Pedidos */\r\n\r\n this.pedidoService.getB2BByCliente(parseInt(this.client_id_app)).subscribe(\r\n pedidos => this.pedidos = pedidos,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n this.pedidosOriginal = JSON.parse(JSON.stringify(this.pedidos));\r\n\r\n this.carregando = false;\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n /* Download */\r\n\r\n downloadPDF(fatura?: NotaFiscalFatura) {\r\n let base64: string = \"\";\r\n let nomeArquivo: string = \"\";\r\n\r\n if (fatura != null) {\r\n if (fatura.faturapdf != null) {\r\n base64 = fatura.faturapdf;\r\n } else if (fatura.pdffatura != null) {\r\n base64 = fatura.pdffatura;\r\n } else {\r\n return;\r\n }\r\n\r\n nomeArquivo = fatura.fatura + \".pdf\";\r\n } else {\r\n base64 = this.notaFiscal.nfpdf;\r\n nomeArquivo = this.notaFiscal.nf + \".pdf\";\r\n }\r\n\r\n\r\n let byteCharacters = atob(base64);\r\n let byteNumbers = new Array(byteCharacters.length);\r\n\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n\r\n let byteArray = new Uint8Array(byteNumbers);\r\n let blob = new Blob([byteArray], { type: \"application/pdf\" });\r\n\r\n let url = URL.createObjectURL(blob);\r\n\r\n let link = document.createElement(\"a\");\r\n\r\n link.href = url;\r\n\r\n link.download = 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 URL.revokeObjectURL(url);\r\n }\r\n\r\n /* Formatação */\r\n\r\n formatarValoresTresCasasDecimais(valor: number) {\r\n if (valor != null) {\r\n return (valor).toLocaleString(\"pt-BR\", {\r\n style: \"currency\",\r\n currency: \"BRL\",\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 3\r\n });\r\n }\r\n }\r\n\r\n /* Pedidos Itens */\r\n\r\n expandirPedidosItens(i: number, id: number, seller_id: number) {\r\n this.pedidosItensExpandido = i == this.pedidosItensExpandido ? -1 : i;\r\n\r\n if (this.pedidosItensExpandido > -1) {\r\n this.pedidoItensService.getB2BByOrder(id, seller_id).subscribe(\r\n pedidosItens => this.pedidosItens = pedidosItens,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n this.pedidosItensOriginal = JSON.parse(JSON.stringify(this.pedidosItens));\r\n }\r\n );\r\n }\r\n }\r\n\r\n /* Imprimir */\r\n\r\n imprimirPedidoOrcamento(id_pedido: number, seller_id: number) {\r\n this.pdfService.imprimirPedidoOrcamento(id_pedido, seller_id, 0);\r\n }\r\n\r\n /* Modal */\r\n\r\n modalConsultarNotaFiscal(content: any, nota_fiscal: number, serie: string) {\r\n /* Notas Fiscais */\r\n\r\n if (serie == null || serie == \"\") {\r\n serie = \"1\";\r\n }\r\n\r\n this.notaFiscalService.getIntegracaoNotaFiscalByNota(nota_fiscal, serie).subscribe(\r\n notasFiscais => this.notaFiscal = notasFiscais,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.notaFiscal != null) {\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-consultar-nota-fiscal\",\r\n size: \"lg\",\r\n backdrop: \"static\"\r\n });\r\n } else {\r\n this.toastr.error(\"\", \"Nenhuma nota fiscal localizada!\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n modalConsultarPagamento(content: any, id: number) {\r\n /* Pedidos (Pagamentos) */\r\n\r\n this.pedidoService.getPedidoPagamentoById(id).subscribe(\r\n pedidoPagamento => this.pedidoPagamento = pedidoPagamento,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-consultar-pagamento\",\r\n size: \"lg\",\r\n backdrop: \"static\"\r\n });\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \".empresa {\\r\\n color: rgba(255, 255, 255, 0.5);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLCtCQUErQjtBQUNqQyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbmF2LWJhci9uYXYtYmFyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZW1wcmVzYSB7XHJcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n/* Services */\r\n\r\nimport { AuthService } from '../../core/services/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-nav-bar',\r\n templateUrl: './nav-bar.component.html',\r\n styleUrls: ['./nav-bar.component.css'],\r\n preserveWhitespaces: false\r\n})\r\n\r\nexport class NavBarComponent implements OnInit {\r\n catalogo: boolean = false;\r\n exibir: boolean = false;\r\n\r\n menuInterno: boolean = true;\r\n\r\n /* Verbos */\r\n\r\n verbosPedidosOrcamentos: string = \"Pedidos\";\r\n\r\n /* Storage */\r\n\r\n b2b_usa_como_orcamento: boolean = (localStorage.getItem(\"b2b_usa_como_orcamento\") == \"true\");\r\n b2b_cor_primaria: string = localStorage.getItem(\"b2b_cor_primaria\");\r\n\r\n name: string = \"\";\r\n\r\n constructor(\r\n private router: Router,\r\n private domSanitizer: DomSanitizer,\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.b2b_usa_como_orcamento) {\r\n this.verbosPedidosOrcamentos = \"Orçamentos\";\r\n }\r\n\r\n this.authService.exibirNavBarEmitter.subscribe(\r\n exibir => {\r\n this.exibir = exibir;\r\n\r\n if (this.exibir) {\r\n this.name = localStorage.getItem(\"name\");\r\n }\r\n\r\n this.b2b_cor_primaria = localStorage.getItem(\"b2b_cor_primaria\");\r\n }\r\n );\r\n\r\n this.authService.catalogoEmitter.subscribe(\r\n catalogo => {\r\n this.catalogo = catalogo;\r\n }\r\n );\r\n }\r\n\r\n alternarMenuInterno() {\r\n this.menuInterno = !this.menuInterno;\r\n }\r\n\r\n atualizar() {\r\n this.router.navigateByUrl(\"/not-found\", { skipLocationChange: true }).then(() => {\r\n this.router.navigate([\"/produtos\"]);\r\n });\r\n }\r\n\r\n sair() {\r\n this.authService.desautorizar();\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Animacao } from '../../core/tools/animacao';\r\n\r\n@Component({\r\n selector: 'app-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.css'],\r\n preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class NotFoundComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","module.exports = \"/* Título */\\r\\n\\r\\n.titulo_container {\\r\\n -webkit-box-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .titulo_container {\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n }\\r\\n }\\r\\n\\r\\n.logo_empresa {\\r\\n width: 200px;\\r\\n}\\r\\n\\r\\n@media print {\\r\\n .logo_empresa {\\r\\n width: 400px;\\r\\n }\\r\\n }\\r\\n\\r\\n.busca_container {\\r\\n border-right: 1px solid #dee2e6;\\r\\n border-bottom: 1px solid #dee2e6;\\r\\n border-left: 1px solid #dee2e6;\\r\\n}\\r\\n\\r\\n.indicar_logo {\\r\\n width: 60px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.carrinho_titulo {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.carrinho_titulo_logo {\\r\\n font-size: 2.5rem;\\r\\n}\\r\\n\\r\\n/* Categorias */\\r\\n\\r\\n.categoria_inferior {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.categoria_superior {\\r\\n border: 1px solid #fff;\\r\\n background-color: #f0f2f4;\\r\\n color: #000;\\r\\n}\\r\\n\\r\\n.categoria {\\r\\n width: 230px;\\r\\n height: 35px;\\r\\n font-size: 0.8rem;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .categoria {\\r\\n width: 100%;\\r\\n }\\r\\n }\\r\\n\\r\\n.categoria:hover {\\r\\n background-color: #f8f9fa;\\r\\n color: #000;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.categoria_qtde {\\r\\n width: auto;\\r\\n margin-left: 0.5rem;\\r\\n vertical-align: text-bottom;\\r\\n}\\r\\n\\r\\n/* Configurações (Carousel) */\\r\\n\\r\\n.configuracoes_carousel {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/* Configurações (Títulos) */\\r\\n\\r\\n.configuracoes_titulos {\\r\\n font-size: 2.5rem;\\r\\n font-weight: bold;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .configuracoes_titulos {\\r\\n font-size: 2rem;\\r\\n }\\r\\n }\\r\\n\\r\\n.configuracoes_titulos_descricoes {\\r\\n padding: 0.25rem;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/* Configurações (Categorias) */\\r\\n\\r\\n.configuracoes_categorias {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.configuracoes_categorias:hover {\\r\\n opacity: 0.7;\\r\\n }\\r\\n\\r\\n/* Carrinho */\\r\\n\\r\\n.carrinho_imagem_campanha_container {\\r\\n width: 170px;\\r\\n height: 150px;\\r\\n}\\r\\n\\r\\n.carrinho_imagem_campanha {\\r\\n max-width: 50px;\\r\\n max-height: 50px;\\r\\n padding: 0.25rem;\\r\\n}\\r\\n\\r\\n.carrinho_imagem {\\r\\n width: 90px;\\r\\n padding: 0.25rem;\\r\\n}\\r\\n\\r\\n.carrinho_grupo_estoque {\\r\\n width: 75px;\\r\\n background-color: #e02e39;\\r\\n font-size: 0.7rem;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.carrinho_categoria {\\r\\n font-size: 0.6rem;\\r\\n}\\r\\n\\r\\n.carrinho_descricao {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n cursor: pointer;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.carrinho_descricao_campanha {\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.carrinho_produto_bonificado {\\r\\n width: 130px;\\r\\n font-size: 0.6rem;\\r\\n color: #fff;\\r\\n margin-left: 0.5rem;\\r\\n}\\r\\n\\r\\n.carrinho_produto_variacao {\\r\\n padding: 0.25rem;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.carrinho_porcentagem {\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n.carrinho_valor {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n color: #007bff;\\r\\n}\\r\\n\\r\\n.carrinho_qtde {\\r\\n width: 166px;\\r\\n}\\r\\n\\r\\n.carrinho_qtde_acao {\\r\\n font-size: 1rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.carrinho_valor_minimo {\\r\\n background-color: #f8f9fa;\\r\\n border: 2px solid #dee2e6;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.carrinho_prazo_pagto {\\r\\n background-color: #f8f9fa;\\r\\n border: 2px solid #dee2e6;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.btn_produto_carrinho {\\r\\n min-width: 220px;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .btn_produto_carrinho {\\r\\n width: 100%;\\r\\n margin-top: 0.5rem;\\r\\n }\\r\\n }\\r\\n\\r\\n/* Produto (Selecionado) */\\r\\n\\r\\n.produto_selecionado_grupo_estoque {\\r\\n width: 75px;\\r\\n background-color: #e02e39;\\r\\n font-size: 0.7rem;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.produto_selecionado_categoria {\\r\\n font-size: 0.6rem;\\r\\n}\\r\\n\\r\\n.produto_selecionado_descricao {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .produto_selecionado_qtde_minima_container {\\r\\n border-top: 1px solid #dee2e6;\\r\\n width: 100%;\\r\\n margin-top: 0.50rem;\\r\\n padding-top: 0.50rem;\\r\\n }\\r\\n }\\r\\n\\r\\n.produto_selecionado_qtde_minima {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.produto_selecionado_porcentagem {\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n/* Produto (Selecionado (Campanhas)) */\\r\\n\\r\\n.produto_selecionado_campanha_imagem_container {\\r\\n height: 90px;\\r\\n width: 145px;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_imagem {\\r\\n max-height: 100%;\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_categoria {\\r\\n font-size: 0.6rem;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_descricao {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.produto_selecionado_produto_bonificado {\\r\\n width: 190px;\\r\\n font-size: 0.7rem;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_valor_promocional {\\r\\n text-decoration: line-through;\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n color: #e02e39;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_valor {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n color: #007bff;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_qtde_fixa {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_qtde {\\r\\n width: 166px;\\r\\n}\\r\\n\\r\\n.produto_selecionado_campanha_qtde_acao {\\r\\n font-size: 1rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n/* Produto (Selecionado (Fotos)) */\\r\\n\\r\\n.produto_selecionado_foto {\\r\\n max-height: 250px;\\r\\n max-width: 250px;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n/* Produto (Selecionado (Produtos)) */\\r\\n\\r\\n.produto_selecionado_imagem {\\r\\n max-height: 210px;\\r\\n max-width: 210px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.produto_selecionado_informacoes {\\r\\n width: 670px;\\r\\n}\\r\\n\\r\\n.produto_selecionado_promocoes {\\r\\n font-size: 0.8rem;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .produto_selecionado_promocoes {\\r\\n width: 100%;\\r\\n padding-bottom: 0.50rem;\\r\\n margin-bottom: 0.50rem;\\r\\n border-bottom: 1px solid #dee2e6;\\r\\n }\\r\\n }\\r\\n\\r\\n.produto_selecionado_qtde_acao {\\r\\n font-size: 1rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.produto_selecionado_valor_promocional {\\r\\n text-decoration: line-through;\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n color: #e02e39;\\r\\n}\\r\\n\\r\\n.produto_selecionado_valor {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n color: #007bff;\\r\\n}\\r\\n\\r\\n.produto_selecionado_divisao {\\r\\n width: 100%;\\r\\n border-top: 1px solid #dee2e6;\\r\\n}\\r\\n\\r\\n.btn_produto_selecionado {\\r\\n min-width: 220px;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .btn_produto_selecionado {\\r\\n width: 100%;\\r\\n margin-top: 0.5rem;\\r\\n }\\r\\n }\\r\\n\\r\\n.produto_selecionado_detalhes {\\r\\n text-align: justify;\\r\\n}\\r\\n\\r\\n/* Produto */\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .produtos_container {\\r\\n flex-wrap: wrap;\\r\\n }\\r\\n}\\r\\n\\r\\n/* Grupos */\\r\\n\\r\\n.grupos_container {\\r\\n margin-right: 0.50rem;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .grupos_container {\\r\\n width: 100%;\\r\\n margin-right: 0;\\r\\n margin-bottom: 0.5rem;\\r\\n padding-bottom: 0.5rem;\\r\\n border-bottom: 1px solid #dee2e6;\\r\\n }\\r\\n }\\r\\n\\r\\n.grupos_titulo {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n .grupos_acoes {\\r\\n display: none;\\r\\n }\\r\\n }\\r\\n\\r\\n.grupos_nome {\\r\\n font-weight: bold;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.grupos {\\r\\n min-width: 230px;\\r\\n}\\r\\n\\r\\n.grupos_opcao {\\r\\n font-size: 0.8rem;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n .grupos_titulo_inferior {\\r\\n display: none;\\r\\n }\\r\\n }\\r\\n\\r\\n/* Produtos */\\r\\n\\r\\n.produto_titulo {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.produto {\\r\\n min-width: 320px;\\r\\n border: 1px dotted #dee2e6;\\r\\n\\r\\n page-break-inside: avoid;\\r\\n}\\r\\n\\r\\n.produto:hover {\\r\\n border: 1px solid #0c4976;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n@media print {\\r\\n .produto {\\r\\n height: 425px;\\r\\n }\\r\\n .produto:hover {\\r\\n border: 1px dotted #dee2e6;\\r\\n }\\r\\n }\\r\\n\\r\\n.produto_titulo_container {\\r\\n height: 22px;\\r\\n}\\r\\n\\r\\n.produto_grupo_estoque {\\r\\n min-width: 75px;\\r\\n background-color: #e02e39;\\r\\n font-size: 0.7rem;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.produto_preco_bonificacao {\\r\\n min-width: 75px;\\r\\n background-color: #e02e39;\\r\\n font-size: 0.7rem;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.produto_ultima_compra {\\r\\n font-size: 0.6rem;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.produto_porcentagem {\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n.produto_imagem_container {\\r\\n min-height: 210px;\\r\\n}\\r\\n\\r\\n.produto_imagem_container {\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.produto_imagem {\\r\\n max-height: 210px;\\r\\n max-width: 210px;\\r\\n}\\r\\n\\r\\n.produto_imagem_campanha_container {\\r\\n height: 232px;\\r\\n max-width: 300px;\\r\\n}\\r\\n\\r\\n.produto_imagem_campanha {\\r\\n max-height: 90px;\\r\\n max-width: 90px;\\r\\n}\\r\\n\\r\\n.produto_sku {\\r\\n -webkit-transform: rotate(180deg);\\r\\n transform: rotate(180deg);\\r\\n -webkit-writing-mode: vertical-rl;\\r\\n -ms-writing-mode: tb-rl;\\r\\n writing-mode: vertical-rl;\\r\\n text-align: center;\\r\\n font-size: 0.8rem;\\r\\n font-weight: bold;\\r\\n color: #b6c0c8;\\r\\n}\\r\\n\\r\\n.produto_descricao {\\r\\n width: 300px;\\r\\n min-height: 42px;\\r\\n font-size: 0.8rem;\\r\\n text-transform: uppercase;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.produto_categoria {\\r\\n font-size: 0.6rem;\\r\\n}\\r\\n\\r\\n.produto_valor_promocional {\\r\\n text-decoration: line-through;\\r\\n font-weight: bold;\\r\\n color: #e02e39;\\r\\n}\\r\\n\\r\\n.produto_valor {\\r\\n font-size: 1.3rem;\\r\\n font-weight: bold;\\r\\n color: #007bff;\\r\\n}\\r\\n\\r\\n.produto_estoque {\\r\\n width: 190px;\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n.produto_indisponivel {\\r\\n width: 190px;\\r\\n font-size: 0.7rem;\\r\\n}\\r\\n\\r\\n.produto_empresa {\\r\\n width: 100%;\\r\\n font-size: 0.6rem;\\r\\n font-weight: bold;\\r\\n color: #b6c0c8;\\r\\n}\\r\\n\\r\\n/* Produtos (Sobreposição) */\\r\\n\\r\\n.produto_sobreposicao {\\r\\n min-width: 320px;\\r\\n border: 1px dotted #dee2e6;\\r\\n}\\r\\n\\r\\n.produto_sobreposicao_formulario {\\r\\n display: none;\\r\\n position: absolute;\\r\\n min-width: 302px;\\r\\n height: 236px;\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n.produto_sobreposicao:hover .produto_sobreposicao_formulario {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9kdXRvcy9wcm9kdXRvcy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7O0FBRVg7RUFDRSx5QkFBOEI7VUFBOUIsOEJBQThCO0FBQ2hDOztBQUNFO0lBQ0U7TUFDRSx3QkFBdUI7Y0FBdkIsdUJBQXVCO0lBQ3pCO0VBQ0Y7O0FBRUY7RUFDRSxZQUFZO0FBQ2Q7O0FBQ0U7SUFDRTtNQUNFLFlBQVk7SUFDZDtFQUNGOztBQUVGO0VBQ0UsK0JBQStCO0VBQy9CLGdDQUFnQztFQUNoQyw4QkFBOEI7QUFDaEM7O0FBQ0E7RUFDRSxXQUFXO0VBQ1gsZUFBZTtBQUNqQjs7QUFDQTtFQUNFLGVBQWU7QUFDakI7O0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUEsZUFBZTs7QUFFZjtFQUNFLFdBQVc7QUFDYjs7QUFDQTtFQUNFLHNCQUFzQjtFQUN0Qix5QkFBeUI7RUFDekIsV0FBVztBQUNiOztBQUNBO0VBQ0UsWUFBWTtFQUNaLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25COztBQUNFO0lBQ0U7TUFDRSxXQUFXO0lBQ2I7RUFDRjs7QUFDQTtJQUNFLHlCQUF5QjtJQUN6QixXQUFXO0lBQ1gsZUFBZTtFQUNqQjs7QUFFRjtFQUNFLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsMkJBQTJCO0FBQzdCOztBQUVBLDZCQUE2Qjs7QUFFN0I7RUFDRSxXQUFXO0FBQ2I7O0FBRUEsNEJBQTRCOztBQUU1QjtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCOztBQUNFO0lBQ0U7TUFDRSxlQUFlO0lBQ2pCO0VBQ0Y7O0FBRUY7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBLCtCQUErQjs7QUFFL0I7RUFDRSxlQUFlO0FBQ2pCOztBQUNFO0lBQ0UsWUFBWTtFQUNkOztBQUVGLGFBQWE7O0FBRWI7RUFDRSxZQUFZO0VBQ1osYUFBYTtBQUNm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QjtFQUNoQixlQUFlO0FBQ2pCOztBQUNBO0VBQ0UsaUNBQXlCO1VBQXpCLHlCQUF5QjtFQUN6QixpQ0FBeUI7TUFBekIsdUJBQXlCO1VBQXpCLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUNBO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLHFCQUFxQjtBQUN2Qjs7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFDQTtFQUNFLDZCQUE2QjtFQUM3QixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFDQTtFQUNFLFlBQVk7RUFDWixpQkFBaUI7QUFDbkI7O0FBQ0E7RUFDRSxZQUFZO0VBQ1osaUJBQWlCO0FBQ25COztBQUNBO0VBQ0UsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQSw0QkFBNEI7O0FBRTVCO0VBQ0UsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtBQUM1Qjs7QUFDQTtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixzQkFBc0I7QUFDeEI7O0FBQ0U7SUFDRSxvQkFBYTtJQUFiLGFBQWE7RUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZHV0b3MvcHJvZHV0b3MuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFTDrXR1bG8gKi9cclxuXHJcbi50aXR1bG9fY29udGFpbmVyIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC50aXR1bG9fY29udGFpbmVyIHtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLmxvZ29fZW1wcmVzYSB7XHJcbiAgd2lkdGg6IDIwMHB4O1xyXG59XHJcbiAgQG1lZGlhIHByaW50IHtcclxuICAgIC5sb2dvX2VtcHJlc2Ege1xyXG4gICAgICB3aWR0aDogNDAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLmJ1c2NhX2NvbnRhaW5lciB7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RlZTJlNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZTJlNjtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZWUyZTY7XHJcbn1cclxuLmluZGljYXJfbG9nbyB7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5jYXJyaW5ob190aXR1bG8ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY2FycmluaG9fdGl0dWxvX2xvZ28ge1xyXG4gIGZvbnQtc2l6ZTogMi41cmVtO1xyXG59XHJcblxyXG4vKiBDYXRlZ29yaWFzICovXHJcblxyXG4uY2F0ZWdvcmlhX2luZmVyaW9yIHtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG4uY2F0ZWdvcmlhX3N1cGVyaW9yIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYyZjQ7XHJcbiAgY29sb3I6ICMwMDA7XHJcbn1cclxuLmNhdGVnb3JpYSB7XHJcbiAgd2lkdGg6IDIzMHB4O1xyXG4gIGhlaWdodDogMzVweDtcclxuICBmb250LXNpemU6IDAuOHJlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmNhdGVnb3JpYSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICAuY2F0ZWdvcmlhOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4uY2F0ZWdvcmlhX3F0ZGUge1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xyXG59XHJcblxyXG4vKiBDb25maWd1cmHDp8O1ZXMgKENhcm91c2VsKSAqL1xyXG5cclxuLmNvbmZpZ3VyYWNvZXNfY2Fyb3VzZWwge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4vKiBDb25maWd1cmHDp8O1ZXMgKFTDrXR1bG9zKSAqL1xyXG5cclxuLmNvbmZpZ3VyYWNvZXNfdGl0dWxvcyB7XHJcbiAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuY29uZmlndXJhY29lc190aXR1bG9zIHtcclxuICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi5jb25maWd1cmFjb2VzX3RpdHVsb3NfZGVzY3JpY29lcyB7XHJcbiAgcGFkZGluZzogMC4yNXJlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8qIENvbmZpZ3VyYcOnw7VlcyAoQ2F0ZWdvcmlhcykgKi9cclxuXHJcbi5jb25maWd1cmFjb2VzX2NhdGVnb3JpYXMge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4gIC5jb25maWd1cmFjb2VzX2NhdGVnb3JpYXM6aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMC43O1xyXG4gIH1cclxuXHJcbi8qIENhcnJpbmhvICovXHJcblxyXG4uY2FycmluaG9faW1hZ2VtX2NhbXBhbmhhX2NvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDE3MHB4O1xyXG4gIGhlaWdodDogMTUwcHg7XHJcbn1cclxuLmNhcnJpbmhvX2ltYWdlbV9jYW1wYW5oYSB7XHJcbiAgbWF4LXdpZHRoOiA1MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMC4yNXJlbTtcclxufVxyXG4uY2FycmluaG9faW1hZ2VtIHtcclxuICB3aWR0aDogOTBweDtcclxuICBwYWRkaW5nOiAwLjI1cmVtO1xyXG59XHJcbi5jYXJyaW5ob19ncnVwb19lc3RvcXVlIHtcclxuICB3aWR0aDogNzVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAyZTM5O1xyXG4gIGZvbnQtc2l6ZTogMC43cmVtO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcbi5jYXJyaW5ob19jYXRlZ29yaWEge1xyXG4gIGZvbnQtc2l6ZTogMC42cmVtO1xyXG59XHJcbi5jYXJyaW5ob19kZXNjcmljYW8ge1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcbi5jYXJyaW5ob19kZXNjcmljYW9fY2FtcGFuaGEge1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLmNhcnJpbmhvX3Byb2R1dG9fYm9uaWZpY2FkbyB7XHJcbiAgd2lkdGg6IDEzMHB4O1xyXG4gIGZvbnQtc2l6ZTogMC42cmVtO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbn1cclxuLmNhcnJpbmhvX3Byb2R1dG9fdmFyaWFjYW8ge1xyXG4gIHBhZGRpbmc6IDAuMjVyZW07XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uY2FycmluaG9fcG9yY2VudGFnZW0ge1xyXG4gIGZvbnQtc2l6ZTogMC43cmVtO1xyXG59XHJcbi5jYXJyaW5ob192YWxvciB7XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMwMDdiZmY7XHJcbn1cclxuLmNhcnJpbmhvX3F0ZGUge1xyXG4gIHdpZHRoOiAxNjZweDtcclxufVxyXG4uY2FycmluaG9fcXRkZV9hY2FvIHtcclxuICBmb250LXNpemU6IDFyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5jYXJyaW5ob192YWxvcl9taW5pbW8ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XHJcbiAgYm9yZGVyOiAycHggc29saWQgI2RlZTJlNjtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNhcnJpbmhvX3ByYXpvX3BhZ3RvIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICNkZWUyZTY7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcbi5idG5fcHJvZHV0b19jYXJyaW5obyB7XHJcbiAgbWluLXdpZHRoOiAyMjBweDtcclxufVxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmJ0bl9wcm9kdXRvX2NhcnJpbmhvIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vKiBQcm9kdXRvIChTZWxlY2lvbmFkbykgKi9cclxuXHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX2dydXBvX2VzdG9xdWUge1xyXG4gIHdpZHRoOiA3NXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDJlMzk7XHJcbiAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fY2F0ZWdvcmlhIHtcclxuICBmb250LXNpemU6IDAuNnJlbTtcclxufVxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19kZXNjcmljYW8ge1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5wcm9kdXRvX3NlbGVjaW9uYWRvX3F0ZGVfbWluaW1hX2NvbnRhaW5lciB7XHJcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGVlMmU2O1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luLXRvcDogMC41MHJlbTtcclxuICAgICAgcGFkZGluZy10b3A6IDAuNTByZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fcXRkZV9taW5pbWEge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX3BvcmNlbnRhZ2VtIHtcclxuICBmb250LXNpemU6IDAuN3JlbTtcclxufVxyXG5cclxuLyogUHJvZHV0byAoU2VsZWNpb25hZG8gKENhbXBhbmhhcykpICovXHJcblxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19jYW1wYW5oYV9pbWFnZW1fY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDkwcHg7XHJcbiAgd2lkdGg6IDE0NXB4O1xyXG59XHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX2NhbXBhbmhhX2ltYWdlbSB7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fY2FtcGFuaGFfY2F0ZWdvcmlhIHtcclxuICBmb250LXNpemU6IDAuNnJlbTtcclxufVxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19jYW1wYW5oYV9kZXNjcmljYW8ge1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fcHJvZHV0b19ib25pZmljYWRvIHtcclxuICB3aWR0aDogMTkwcHg7XHJcbiAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fY2FtcGFuaGFfdmFsb3JfcHJvbW9jaW9uYWwge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjZTAyZTM5O1xyXG59XHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX2NhbXBhbmhhX3ZhbG9yIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzAwN2JmZjtcclxufVxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19jYW1wYW5oYV9xdGRlX2ZpeGEge1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX2NhbXBhbmhhX3F0ZGUge1xyXG4gIHdpZHRoOiAxNjZweDtcclxufVxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19jYW1wYW5oYV9xdGRlX2FjYW8ge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi8qIFByb2R1dG8gKFNlbGVjaW9uYWRvIChGb3RvcykpICovXHJcblxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19mb3RvIHtcclxuICBtYXgtaGVpZ2h0OiAyNTBweDtcclxuICBtYXgtd2lkdGg6IDI1MHB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi8qIFByb2R1dG8gKFNlbGVjaW9uYWRvIChQcm9kdXRvcykpICovXHJcblxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19pbWFnZW0ge1xyXG4gIG1heC1oZWlnaHQ6IDIxMHB4O1xyXG4gIG1heC13aWR0aDogMjEwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX2luZm9ybWFjb2VzIHtcclxuICB3aWR0aDogNjcwcHg7XHJcbn1cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fcHJvbW9jb2VzIHtcclxuICBmb250LXNpemU6IDAuOHJlbTtcclxufVxyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLnByb2R1dG9fc2VsZWNpb25hZG9fcHJvbW9jb2VzIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjUwcmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjUwcmVtO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZTJlNjtcclxuICAgIH1cclxuICB9XHJcblxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19xdGRlX2FjYW8ge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fdmFsb3JfcHJvbW9jaW9uYWwge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjZTAyZTM5O1xyXG59XHJcbi5wcm9kdXRvX3NlbGVjaW9uYWRvX3ZhbG9yIHtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzAwN2JmZjtcclxufVxyXG4ucHJvZHV0b19zZWxlY2lvbmFkb19kaXZpc2FvIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNjtcclxufVxyXG4uYnRuX3Byb2R1dG9fc2VsZWNpb25hZG8ge1xyXG4gIG1pbi13aWR0aDogMjIwcHg7XHJcbn1cclxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5idG5fcHJvZHV0b19zZWxlY2lvbmFkbyB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLnByb2R1dG9fc2VsZWNpb25hZG9fZGV0YWxoZXMge1xyXG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbn1cclxuXHJcbi8qIFByb2R1dG8gKi9cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5wcm9kdXRvc19jb250YWluZXIge1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gIH1cclxufVxyXG5cclxuLyogR3J1cG9zICovXHJcblxyXG4uZ3J1cG9zX2NvbnRhaW5lciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNTByZW07XHJcbn1cclxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5ncnVwb3NfY29udGFpbmVyIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZTJlNjtcclxuICAgIH1cclxuICB9XHJcblxyXG4uZ3J1cG9zX3RpdHVsbyB7XHJcbiAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5ncnVwb3NfYWNvZXMge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLmdydXBvc19ub21lIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcbi5ncnVwb3Mge1xyXG4gIG1pbi13aWR0aDogMjMwcHg7XHJcbn1cclxuLmdydXBvc19vcGNhbyB7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmdydXBvc190aXR1bG9faW5mZXJpb3Ige1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qIFByb2R1dG9zICovXHJcblxyXG4ucHJvZHV0b190aXR1bG8ge1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLnByb2R1dG8ge1xyXG4gIG1pbi13aWR0aDogMzIwcHg7XHJcbiAgYm9yZGVyOiAxcHggZG90dGVkICNkZWUyZTY7XHJcblxyXG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcclxufVxyXG4gIC5wcm9kdXRvOmhvdmVyIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwYzQ5NzY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG4gIEBtZWRpYSBwcmludCB7XHJcbiAgICAucHJvZHV0byB7XHJcbiAgICAgIGhlaWdodDogNDI1cHg7XHJcbiAgICB9XHJcbiAgICAgIC5wcm9kdXRvOmhvdmVyIHtcclxuICAgICAgICBib3JkZXI6IDFweCBkb3R0ZWQgI2RlZTJlNjtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbi5wcm9kdXRvX3RpdHVsb19jb250YWluZXIge1xyXG4gIGhlaWdodDogMjJweDtcclxufVxyXG4ucHJvZHV0b19ncnVwb19lc3RvcXVlIHtcclxuICBtaW4td2lkdGg6IDc1cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMmUzOTtcclxuICBmb250LXNpemU6IDAuN3JlbTtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG4ucHJvZHV0b19wcmVjb19ib25pZmljYWNhbyB7XHJcbiAgbWluLXdpZHRoOiA3NXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDJlMzk7XHJcbiAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuLnByb2R1dG9fdWx0aW1hX2NvbXByYSB7XHJcbiAgZm9udC1zaXplOiAwLjZyZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuLnByb2R1dG9fcG9yY2VudGFnZW0ge1xyXG4gIGZvbnQtc2l6ZTogMC43cmVtO1xyXG59XHJcbi5wcm9kdXRvX2ltYWdlbV9jb250YWluZXIge1xyXG4gIG1pbi1oZWlnaHQ6IDIxMHB4O1xyXG59XHJcbi5wcm9kdXRvX2ltYWdlbV9jb250YWluZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4ucHJvZHV0b19pbWFnZW0ge1xyXG4gIG1heC1oZWlnaHQ6IDIxMHB4O1xyXG4gIG1heC13aWR0aDogMjEwcHg7XHJcbn1cclxuLnByb2R1dG9faW1hZ2VtX2NhbXBhbmhhX2NvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAyMzJweDtcclxuICBtYXgtd2lkdGg6IDMwMHB4O1xyXG59XHJcbi5wcm9kdXRvX2ltYWdlbV9jYW1wYW5oYSB7XHJcbiAgbWF4LWhlaWdodDogOTBweDtcclxuICBtYXgtd2lkdGg6IDkwcHg7XHJcbn1cclxuLnByb2R1dG9fc2t1IHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjYjZjMGM4O1xyXG59XHJcbi5wcm9kdXRvX2Rlc2NyaWNhbyB7XHJcbiAgd2lkdGg6IDMwMHB4O1xyXG4gIG1pbi1oZWlnaHQ6IDQycHg7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbn1cclxuLnByb2R1dG9fY2F0ZWdvcmlhIHtcclxuICBmb250LXNpemU6IDAuNnJlbTtcclxufVxyXG4ucHJvZHV0b192YWxvcl9wcm9tb2Npb25hbCB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICNlMDJlMzk7XHJcbn1cclxuLnByb2R1dG9fdmFsb3Ige1xyXG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMDA3YmZmO1xyXG59XHJcbi5wcm9kdXRvX2VzdG9xdWUge1xyXG4gIHdpZHRoOiAxOTBweDtcclxuICBmb250LXNpemU6IDAuN3JlbTtcclxufVxyXG4ucHJvZHV0b19pbmRpc3Bvbml2ZWwge1xyXG4gIHdpZHRoOiAxOTBweDtcclxuICBmb250LXNpemU6IDAuN3JlbTtcclxufVxyXG4ucHJvZHV0b19lbXByZXNhIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBmb250LXNpemU6IDAuNnJlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogI2I2YzBjODtcclxufVxyXG5cclxuLyogUHJvZHV0b3MgKFNvYnJlcG9zacOnw6NvKSAqL1xyXG5cclxuLnByb2R1dG9fc29icmVwb3NpY2FvIHtcclxuICBtaW4td2lkdGg6IDMyMHB4O1xyXG4gIGJvcmRlcjogMXB4IGRvdHRlZCAjZGVlMmU2O1xyXG59XHJcbi5wcm9kdXRvX3NvYnJlcG9zaWNhb19mb3JtdWxhcmlvIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBtaW4td2lkdGg6IDMwMnB4O1xyXG4gIGhlaWdodDogMjM2cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxufVxyXG4gIC5wcm9kdXRvX3NvYnJlcG9zaWNhbzpob3ZlciAucHJvZHV0b19zb2JyZXBvc2ljYW9fZm9ybXVsYXJpbyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuIl19 */\"","import { Component, OnInit, Inject, ViewChild, ViewChildren, QueryList, ElementRef } from '@angular/core';\r\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Animacao } from '../../core/tools/animacao';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DatePipe } from '@angular/common';\r\n\r\ndeclare const MercadoPago: any;\r\n\r\n/* Services */\r\n\r\nimport { AuthService } from '../../core/services/auth/auth.service';\r\nimport { ClienteService } from '../../core/services/clientes/cliente.service';\r\nimport { ConfiguracaoService } from '../../core/services/configuracoes/configuracao.service';\r\nimport { FormaPagamentoService } from '../../core/services/formas-pagamento/forma-pagamento.service';\r\nimport { PedidoService } from '../../core/services/pedidos/pedido.service';\r\nimport { PedidoItensService } from '../../core/services/pedidos/pedido-itens.service';\r\nimport { PrazoPagamentoService } from '../../core/services/prazos-pagamento/prazo-pagamento.service';\r\nimport { PrazoPagamentoClienteService } from '../../core/services/prazos-pagamento/prazo-pagamento-cliente.service';\r\nimport { ProdutoService } from '../../core/services/produtos/produto.service';\r\nimport { TipoPedidoService } from '../../core/services/tipos/tipo-pedido.service';\r\n\r\n/* Models */\r\n\r\nimport { Cliente } from '../../core/models/clientes/cliente';\r\nimport { ClienteLocalEntrega } from '../../core/models/clientes/cliente-local-entrega';\r\nimport { Configuracao } from '../../core/models/configuracoes/configuracao';\r\nimport { ConfiguracaoBanner } from '../../core/models/configuracoes/configuracao-banner';\r\nimport { FormaPagamento } from '../../core/models/formas-pagamento/forma-pagamento';\r\nimport { MeiosPagamentoCartoesMercadoPagoRetorno } from '../../core/models/meios-pagamento/cartoes/mercado-pago/meios-pagamento-cartoes-mercado-pago-retorno';\r\nimport { Pedido } from '../../core/models/pedidos/pedido';\r\nimport { PedidoBonificacaoRetorno } from '../../core/models/pedidos/pedido-bonificacao-retorno';\r\nimport { PedidoItens } from '../../core/models/pedidos/pedido-itens';\r\nimport { PrazoPagamento } from '../../core/models/prazos-pagamento/prazo-pagamento';\r\nimport { PrazoPagamentoCliente } from '../../core/models/prazos-pagamento/prazo-pagamento-cliente';\r\nimport { ProdutoCategoria } from '../../core/models/produtos/produto-categoria';\r\nimport { ProdutoDisponibilidade } from '../../core/models/produtos/produto-disponibilidade';\r\nimport { ProdutoFichaTecnica } from '../../core/models/produtos/produto-ficha-tecnica';\r\nimport { ProdutoGrupo } from '../../core/models/produtos/produto-grupo';\r\nimport { ProdutoGrupoNome } from '../../core/models/produtos/produto-grupo-nome';\r\nimport { ProdutoPromocional } from '../../core/models/produtos/produto-promocional';\r\nimport { ProdutoPromocionalAgrupado } from '../../core/models/produtos/produto-promocional-agrupado';\r\nimport { ProdutoSegmento } from '../../core/models/produtos/produto-segmento';\r\nimport { ProdutoTabelaPromocaoQtde } from '../../core/models/produtos/produto-tabela-promocao-qtde';\r\nimport { ProdutoFoto } from '../../core/models/produtos/produto-foto';\r\nimport { TipoPedido } from '../../core/models/tipos/tipo-pedido';\r\n\r\n@Component({\r\n selector: 'app-produtos',\r\n templateUrl: './produtos.component.html',\r\n styleUrls: ['./produtos.component.css'],\r\n preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class ProdutosComponent implements OnInit {\r\n /* Avisos */\r\n\r\n exibirAviso: boolean = false;\r\n\r\n /* Base URL */\r\n\r\n baseUrl: string;\r\n\r\n /* Categorias (Fixas) */\r\n\r\n aviseme: string = \"AVISE-ME\";\r\n campanhas: string = \"CAMPANHAS\";\r\n combo: string = \"COMBO\";\r\n maisVendidos: string = \"MAIS VENDIDOS\";\r\n promocoes: string = \"PROMOÇÕES\";\r\n reposicoes: string = \"REPOSIÇÕES\";\r\n\r\n /* Carregamento */\r\n\r\n carregando: boolean = false;\r\n\r\n /* Carrinho */\r\n \r\n carrinho: ProdutoPromocional[] = [];\r\n\r\n carrinhoExibir: boolean = false;\r\n\r\n carrinhoValor: number = 0;\r\n\r\n /* Campanhas */\r\n\r\n existeCampanha: boolean = false;\r\n\r\n /* Cliente */\r\n\r\n cliente: Cliente = null;\r\n\r\n /* Cliente (Locais Entrega) */\r\n\r\n clienteLocaisEntrega: ClienteLocalEntrega[] = [];\r\n\r\n clienteLocalEntregaSelecionado: ClienteLocalEntrega = null;\r\n\r\n /* Configurações */\r\n\r\n configuracao: Configuracao = null;\r\n\r\n /* Configuração Banner */\r\n\r\n configuracaoBanner: ConfiguracaoBanner[] = [];\r\n\r\n conteudoBanners: ConfiguracaoBanner[] = [];\r\n conteudoCarousels: ConfiguracaoBanner[] = [];\r\n conteudoCategorias: ConfiguracaoBanner[] = [];\r\n conteudoTitulos: ConfiguracaoBanner[] = [];\r\n\r\n /* Dt. Previsão de Entrega */\r\n\r\n dataPrevisaoEntrega: { year: number, month: number, day: number } = null;\r\n\r\n /* Forma de Pagamento */\r\n\r\n formasPagamento: FormaPagamento[] = [];\r\n\r\n formaPagamentoErro: boolean = false;\r\n\r\n formaPagamentoSelecionada: FormaPagamento = null;\r\n\r\n /* Observação */\r\n\r\n observacao: string = \"\";\r\n\r\n /* Imagem */\r\n\r\n produtoCarregando: string = \"assets/loader.gif\";\r\n produtoSemImagem: string = \"assets/produto_sem_imagem.png\";\r\n\r\n /* Indicar */\r\n\r\n exibirIndicar: boolean = false;\r\n\r\n /* Mercado Pago */\r\n\r\n mp: any = null;\r\n\r\n bb: any = null;\r\n\r\n bricksController: any = null;\r\n\r\n mpCarregado: boolean = false;\r\n mpPagamento: MeiosPagamentoCartoesMercadoPagoRetorno = null;\r\n\r\n /* Pagamento */\r\n\r\n tabPagamentoSelecionada: string = \"cartao\";\r\n\r\n /* Pedido Vinculado */\r\n\r\n pedidoVinculado: string = \"\";\r\n\r\n /* Pedidos */\r\n\r\n nroPedido: number = 0;\r\n\r\n pedido: Pedido = null;\r\n\r\n /* Pedidos (Itens) */\r\n\r\n pedidoItens: PedidoItens[] = [];\r\n\r\n /* Prazo de Pagamento */\r\n\r\n prazosPagamento: PrazoPagamento[] = [];\r\n\r\n prazoPagamentoErro: boolean = false;\r\n\r\n prazoPagamentoSelecionado: PrazoPagamento = null;\r\n\r\n /* Prazo de Pagamento (Cliente) */\r\n\r\n prazosPagamentoCliente: PrazoPagamentoCliente[] = [];\r\n\r\n /* Prazo de Pagamento (Parcelas) */\r\n\r\n prazosPagamentoParcela: PrazoPagamento[] = [];\r\n\r\n prazoPagamentoParcelaErro: boolean = false;\r\n\r\n prazoPagamentoParcelaSelecionado: PrazoPagamento = null;\r\n\r\n /* Produtos */\r\n\r\n produtos: ProdutoPromocional[] = [];\r\n produtosOriginal: ProdutoPromocional[] = [];\r\n\r\n produtosAgrupados: ProdutoPromocionalAgrupado[] = [];\r\n\r\n produtosBuscaAtual: ProdutoPromocional[] = [];\r\n\r\n produtoSelecionado: ProdutoPromocional = null;\r\n\r\n /* Produtos (Busca (Grupo)) */\r\n\r\n produtoBuscarPorGrupo: boolean = false;\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n produtoBuscarPorAro: any[] = [];\r\n\r\n produtoBuscarPorAroSelecionado: string = \"\";\r\n\r\n produtoBuscarPorLargura: any[] = [];\r\n\r\n produtoBuscarPorLarguraSelecionado: string = \"\";\r\n\r\n produtoBuscarPorPerfil: any[] = [];\r\n\r\n produtoBuscarPorPerfilSelecionado: string = \"\";\r\n\r\n produtoBuscarPorMedidaEnviado: boolean = false;\r\n\r\n /* Produtos (Busca (Nome)) */\r\n\r\n produtoBuscarPorNome: string = \"\";\r\n\r\n produtoBuscarPorNomeEnviado: boolean = false;\r\n\r\n /* Produtos (Categorias) */\r\n\r\n produtosCategorias: ProdutoCategoria[] = [];\r\n\r\n produtoCategoriaSelecionada: string = \"\";\r\n\r\n produtoCategoriaSelecionadaQtde: number = 0;\r\n\r\n /* Produtos (Fotos) */\r\n\r\n produtoFotos: ProdutoFoto[] = [];\r\n\r\n produtoFotosSelecionado: ProdutoPromocional = null;\r\n\r\n /* Produtos (Grupos) */\r\n\r\n produtosGrupos0: ProdutoGrupo[] = [];\r\n produtosGrupos1: ProdutoGrupo[] = [];\r\n produtosGrupos2: ProdutoGrupo[] = [];\r\n produtosGrupos3: ProdutoGrupo[] = [];\r\n produtosGrupos4: ProdutoGrupo[] = [];\r\n produtosGrupos5: ProdutoGrupo[] = [];\r\n\r\n produtosGruposExpandido: boolean = true;\r\n\r\n /* Produtos (Grupos Nomes) */\r\n\r\n produtosGruposNomes: ProdutoGrupoNome[] = [];\r\n\r\n /* Produtos (Segmentos) */\r\n\r\n produtosSegmentos: ProdutoSegmento[] = [];\r\n\r\n /* Qtde */\r\n\r\n qtde: number = 1;\r\n\r\n /* Qtde (Disponibilidade) */\r\n\r\n qtdeDisponibilidade: number = 0;\r\n\r\n /* Produtos (Ficha Técnica) */\r\n\r\n produtosFichaTecnica: ProdutoFichaTecnica[] = [];\r\n\r\n /* Tipo Pedido */\r\n\r\n tiposPedido: TipoPedido[] = [];\r\n\r\n /* Storage */\r\n\r\n logomarca: string = localStorage.getItem(\"logomarca\");\r\n seller_id: string = localStorage.getItem(\"seller_id\");\r\n client_id_app: string = localStorage.getItem(\"client_id_app\");\r\n guidclientenapis: string = localStorage.getItem(\"guidclientenapis\");\r\n name: string = localStorage.getItem(\"name\");\r\n enderecoCompleto: string = localStorage.getItem(\"endereco_completo\");\r\n segment: string = localStorage.getItem(\"segment\");\r\n client_document: string = localStorage.getItem(\"client_document\");\r\n b2b_margem_consumidor: number = parseFloat(localStorage.getItem(\"b2b_margem_consumidor\"));\r\n b2b_usa_como_orcamento: boolean = (localStorage.getItem(\"b2b_usa_como_orcamento\") == \"true\");\r\n mercadopago_public_token: string = localStorage.getItem(\"mercadopago_public_token\");\r\n b2b_cor_primaria: string = localStorage.getItem(\"b2b_cor_primaria\");\r\n catalogo: boolean = (localStorage.getItem(\"catalogo\") == \"true\");\r\n\r\n /* Variação */\r\n\r\n variacaoSelecionada: number = null;\r\n\r\n /* Verbos */\r\n\r\n verbosCompraOrcamento: string = \"Compra\";\r\n verbosComprandoOrcando: string = \"Comprando\";\r\n\r\n /* Childs */\r\n\r\n @ViewChild(\"aviso\", { static: false }) aviso: ElementRef;\r\n @ViewChild(\"categoria\", { static: false }) categoria: ElementRef;\r\n @ViewChild(\"titulo\", { static: false }) titulo: ElementRef;\r\n\r\n @ViewChildren(\"produto_por_nome_geral\") produto_por_nome_geral: QueryList;\r\n @ViewChildren(\"#produto_por_nome_medida\") produto_por_nome_medida: QueryList;\r\n\r\n /* Modal */\r\n\r\n modalReferenciaPagamento: NgbModalRef = null;\r\n\r\n @ViewChild(\"notificacoes\", { static: false }) notificacoes: ElementRef;\r\n @ViewChild(\"pagamento\", { static: false }) pagamento: ElementRef;\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private toastr: ToastrService,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private datePipe: DatePipe,\r\n private domSanitizer: DomSanitizer,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private authService: AuthService,\r\n private configuracaoService: ConfiguracaoService,\r\n private clienteService: ClienteService,\r\n private formaPagamentoService: FormaPagamentoService,\r\n private pedidoService: PedidoService,\r\n private pedidoItensService: PedidoItensService,\r\n private prazoPagamentoClienteService: PrazoPagamentoClienteService,\r\n private prazoPagamentoService: PrazoPagamentoService,\r\n private produtoService: ProdutoService,\r\n private tipoPedidoService: TipoPedidoService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.modalService.dismissAll();\r\n }\r\n\r\n ngOnInit() {\r\n this.carregarDados();\r\n\r\n if (this.deviceDetectorService.isMobile()) {\r\n this.produtosGruposExpandido = false;\r\n } else {\r\n this.produtosGruposExpandido = true;\r\n }\r\n\r\n /* Indicar */\r\n\r\n if (window.location.href.indexOf(\"atrialub\") > -1) {\r\n this.exibirIndicar = true;\r\n }\r\n\r\n /* Mercado Pago */\r\n\r\n this.mp = new MercadoPago(this.mercadopago_public_token, {\r\n locale: \"pt-BR\"\r\n });\r\n\r\n this.bb = this.mp.bricks();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.modalNotificacoes(this.notificacoes);\r\n\r\n this.focoProdutoPorNome();\r\n\r\n this.produto_por_nome_geral.changes.subscribe(() => {\r\n this.focoProdutoPorNome();\r\n });\r\n\r\n this.produto_por_nome_medida.changes.subscribe(() => {\r\n this.focoProdutoPorNome();\r\n });\r\n }\r\n\r\n /* Ações */\r\n\r\n abrirCarrinho() {\r\n if (this.validarAcesso()) {\r\n /* Carrinho */\r\n\r\n this.carrinhoExibir = true;\r\n\r\n /* Produtos */\r\n\r\n this.produtoSelecionado = null;\r\n\r\n this.moverParaTopo();\r\n }\r\n }\r\n\r\n abrirLinkShell() {\r\n window.open(\"https://www.integralubs.com.br/login/?perfil\", \"_blank\");\r\n }\r\n\r\n adicionarCarrinho() {\r\n let adicionarProduto: boolean = this.adicionarProduto();\r\n\r\n if (adicionarProduto) {\r\n this.abrirCarrinho();\r\n }\r\n }\r\n\r\n adicionarProduto(): boolean {\r\n if (this.produtoSelecionado != null) {\r\n if (this.qtde == null || this.qtde <= 0 || this.qtde > 99999) {\r\n return false;\r\n } else if (this.configuracao != null && this.configuracao.permitir_produtos_sem_estoque == \"N\" && this.produtoSelecionado.estoque < this.qtde) {\r\n this.toastr.error(\"\", \"Qtde acima do estoque! Disponível: \" + this.produtoSelecionado.estoque);\r\n\r\n return false;\r\n } else {\r\n if (this.produtoSelecionado.categoria == this.campanhas && this.produtoSelecionado.qtde_minima_atual < this.produtoSelecionado.qtde_minima) {\r\n this.toastr.error(\"\", \"Qtde Mínima de Itens inválida!\");\r\n\r\n return false;\r\n } else {\r\n let produto: number = -1;\r\n\r\n if (this.produtoSelecionado.id_campanha != null) {\r\n /* Campanhas */\r\n\r\n produto = this.carrinho.findIndex(carrinho => carrinho.id_campanha == this.produtoSelecionado.id_campanha);\r\n } else {\r\n produto = this.carrinho.findIndex(carrinho => carrinho.id == this.produtoSelecionado.id);\r\n }\r\n\r\n if (produto != -1) {\r\n this.carrinho.splice(produto, 1);\r\n }\r\n\r\n this.produtoSelecionado.qtde = this.qtde;\r\n\r\n /* Totalizar */\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.valor_total_produtos * this.qtde;\r\n } else {\r\n if (this.produtoSelecionado.price_promotional > 0) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price_promotional * this.qtde;\r\n } else {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price * this.qtde;\r\n }\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.b2b_modelo_tela == 1) {\r\n if (this.produtoSelecionado.id != 0 && this.produtoSelecionado.produtos_vinculados != null && this.produtoSelecionado.produtos_vinculados.length > 0) {\r\n /* Produtos */\r\n\r\n this.produtoSelecionado.id_variacao = this.variacaoSelecionada;\r\n }\r\n }\r\n\r\n this.carrinho.push(this.produtoSelecionado);\r\n\r\n this.totalizarCarrinho();\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n continuarComprando() {\r\n let adicionarProduto: boolean = this.adicionarProduto();\r\n\r\n if (adicionarProduto) {\r\n this.continuarComprandoRetornar();\r\n }\r\n }\r\n\r\n continuarComprandoRetornar() {\r\n /* Carrinho */\r\n\r\n this.carrinhoExibir = false;\r\n\r\n /* Produtos */\r\n\r\n this.produtoSelecionado = null;\r\n\r\n this.moverParaTopo();\r\n }\r\n\r\n excluirProdutoAdicionado(indice: number) {\r\n this.carrinho.splice(indice, 1);\r\n\r\n this.totalizarCarrinho();\r\n }\r\n\r\n expandirProdutosGrupos() {\r\n this.produtosGruposExpandido = !this.produtosGruposExpandido;\r\n }\r\n\r\n focoProdutoPorNome() {\r\n if (this.configuracao != null && this.configuracao.b2b_busca_medida) {\r\n if (this.produto_por_nome_medida.length > 0) {\r\n setTimeout(() => {\r\n this.produto_por_nome_medida.first.nativeElement.focus();\r\n });\r\n }\r\n } else {\r\n if (this.produto_por_nome_geral.length > 0) {\r\n setTimeout(() => {\r\n this.produto_por_nome_geral.first.nativeElement.focus();\r\n });\r\n }\r\n }\r\n }\r\n\r\n indicar() {\r\n let client_document: string = this.client_document.split(\".\").join(\"\").split(\"-\").join(\"\").split(\"/\").join(\"\");\r\n\r\n let url: string = \"https://app-indicar.web.app/#b2b-michelin?cnpj=\" + client_document;\r\n\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n moverParaCategoria() {\r\n setTimeout(() => {\r\n this.categoria.nativeElement.scrollIntoView({\r\n block: \"start\",\r\n behavior: \"smooth\"\r\n });\r\n }, 800)\r\n }\r\n\r\n moverParaTopo() {\r\n setTimeout(() => {\r\n this.titulo.nativeElement.scrollIntoView({\r\n block: \"end\",\r\n behavior: \"smooth\"\r\n });\r\n }, 800)\r\n }\r\n\r\n reiniciar(selecionar_promocoes: boolean) {\r\n /* Carrinho */\r\n\r\n this.carrinhoExibir = false;\r\n\r\n /* Produtos */\r\n\r\n this.produtos = JSON.parse(JSON.stringify(this.produtosOriginal));\r\n\r\n this.produtoSelecionado = null;\r\n\r\n /* Produtos (Busca (Grupo)) */\r\n\r\n this.produtoBuscarPorGrupo = false;\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n this.produtoBuscarPorAroSelecionado = \"\";\r\n\r\n this.produtoBuscarPorLarguraSelecionado = \"\";\r\n\r\n this.produtoBuscarPorPerfilSelecionado = \"\";\r\n\r\n this.produtoBuscarPorMedidaEnviado = false;\r\n\r\n this.organizarMedidas();\r\n\r\n /* Produtos (Busca (Nome)) */\r\n\r\n this.produtoBuscarPorNome = \"\";\r\n\r\n this.produtoBuscarPorNomeEnviado = false;\r\n\r\n /* Produtos (Categorias) */\r\n\r\n if (selecionar_promocoes) {\r\n this.selecionarCategoria(true, this.promocoes);\r\n }\r\n\r\n this.moverParaTopo();\r\n }\r\n\r\n reiniciarProduto() {\r\n /* Produtos */\r\n\r\n this.produtoSelecionado = null;\r\n\r\n this.qtde = 1;\r\n\r\n /* Produtos (Ficha Técnica) */\r\n\r\n this.produtosFichaTecnica = [];\r\n\r\n /* Variação */\r\n\r\n this.variacaoSelecionada = null;\r\n }\r\n\r\n recuperarProduto(id?: number, id_campanha?: number) {\r\n if (this.produtoSelecionado != null) {\r\n let produtoCarrinho: ProdutoPromocional = null;\r\n\r\n if (id_campanha != null) {\r\n /* Campanhas */\r\n\r\n produtoCarrinho = this.carrinho.find(carrinho => carrinho.id_campanha == id_campanha);\r\n } else {\r\n /* Produtos */\r\n\r\n produtoCarrinho = this.carrinho.find(carrinho => carrinho.id == id);\r\n }\r\n\r\n if (produtoCarrinho != null) {\r\n this.qtde = produtoCarrinho.qtde;\r\n\r\n this.produtoSelecionado.price = produtoCarrinho.price;\r\n this.produtoSelecionado.price_promotional = produtoCarrinho.price_promotional;\r\n\r\n this.produtoSelecionado.valor_total_produtos = produtoCarrinho.valor_total_produtos;\r\n this.produtoSelecionado.valor_total = produtoCarrinho.valor_total;\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n if (this.produtoSelecionado.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n this.produtoSelecionado.produtos_vinculados.forEach((item) => {\r\n let produtoVinculado = produtoCarrinho.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == item.id);\r\n\r\n if (produtoVinculado != null) {\r\n item.qtde = produtoVinculado.qtde;\r\n } else {\r\n item.qtde = item.qtde_minima;\r\n }\r\n });\r\n\r\n this.validarQtdeMinimaCombo();\r\n }\r\n }\r\n } else {\r\n if (this.produtoSelecionado.id_campanha != null && this.produtoSelecionado.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n this.produtoSelecionado.produtos_vinculados.forEach((item) => {\r\n item.qtde = item.qtde_minima;\r\n\r\n item.valor_total = item.price_promotional * item.qtde_minima;\r\n\r\n if (item.bonificacao) {\r\n item.bonificacao_selecionada = false;\r\n }\r\n });\r\n\r\n /* Produto Vinculado (Selecionado) */\r\n\r\n if (this.produtoSelecionado.bonificacao_selecionavel) {\r\n let produtoVinculado: ProdutoPromocional = this.produtoSelecionado.produtos_vinculados.find(produtosVinculados => produtosVinculados.bonificacao);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.bonificacao_selecionada = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n selecionarProduto(id: number, id_campanha: number, carrinho: boolean) {\r\n if (this.validarAcesso()) {\r\n this.reiniciarProduto();\r\n\r\n if (carrinho) {\r\n this.reiniciar(false);\r\n }\r\n\r\n if (id_campanha != null) {\r\n /* Campanhas */\r\n\r\n this.produtoSelecionado = this.produtos.find(produto => produto.id_campanha == id_campanha);\r\n\r\n if (this.produtoSelecionado != null) {\r\n this.recuperarProduto(null, id_campanha);\r\n\r\n /* Bonificação */\r\n\r\n this.localizarProdutoBonificado();\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n this.moverParaTopo();\r\n }\r\n } else {\r\n /* Produtos */\r\n\r\n this.produtoSelecionado = this.produtos.find(produto => produto.id == id);\r\n\r\n if (this.produtoSelecionado != null) {\r\n if (this.configuracao != null && this.configuracao.b2b_modelo_tela == 1) {\r\n /* Variação */\r\n\r\n let produtoCarrinho: ProdutoPromocional = this.carrinho.find(produto => produto.id == id);\r\n\r\n if (produtoCarrinho != null && produtoCarrinho.id_variacao != null) {\r\n this.variacaoSelecionada = produtoCarrinho.id_variacao;\r\n } else {\r\n if (this.produtoSelecionado.produtos_vinculados != null && this.produtoSelecionado.produtos_vinculados.length > 0) {\r\n this.selecionarVariacao(this.produtoSelecionado.produtos_vinculados[0].id.toString());\r\n }\r\n }\r\n }\r\n\r\n this.recuperarProduto(id, null);\r\n\r\n /* Produtos (Ficha Ténica) */\r\n\r\n this.produtoService.getFichaTecnicaByIdProduto(this.produtoSelecionado.id).subscribe(\r\n produtosFichaTecnica => this.produtosFichaTecnica = produtosFichaTecnica,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n let precoPromocional: number = 0;\r\n\r\n if (this.produtoSelecionado.price_promotional == 0) {\r\n precoPromocional = this.produtoSelecionado.price;\r\n } else {\r\n precoPromocional = this.produtoSelecionado.price_promotional;\r\n }\r\n\r\n /* Produtos (Tabelas (Qtde)) */\r\n\r\n let produtoTabelaPromocaoQtde: ProdutoTabelaPromocaoQtde[] = [];\r\n\r\n this.produtoService.getProdutoTabelaPromocaoQtde(this.produtoSelecionado.id, precoPromocional).subscribe(\r\n produtosTabelaPromocaoQtde => produtoTabelaPromocaoQtde = produtosTabelaPromocaoQtde,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (produtoTabelaPromocaoQtde.length > 0) {\r\n this.produtoSelecionado.tabela_promocao_qtde = produtoTabelaPromocaoQtde;\r\n }\r\n\r\n this.moverParaTopo();\r\n }\r\n );\r\n }\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Avise-me */\r\n\r\n atualizarAviseMe() {\r\n if (this.produtoSelecionado != null) {\r\n let alterarProdutoDisponibilidade: boolean = false;\r\n\r\n let produto = new ProdutoDisponibilidade();\r\n\r\n produto.client_id_app = parseInt(this.client_id_app);\r\n produto.product_id = this.produtoSelecionado.id;\r\n produto.qtde = this.qtde;\r\n produto.flag_notificado = false;\r\n\r\n if (this.produtoSelecionado.disponibilidade) {\r\n this.produtoService.updateDisponibilidadeQtde(produto).subscribe(\r\n alterarProdutosDisponibilidade => alterarProdutoDisponibilidade = alterarProdutosDisponibilidade,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (alterarProdutoDisponibilidade) {\r\n this.toastr.success(\"\", \"Avise-me atualizado com sucesso!\");\r\n }\r\n }\r\n );\r\n } else {\r\n this.produtoService.addDisponibilidade(produto).subscribe(\r\n alterarProdutosDisponibilidade => alterarProdutoDisponibilidade = alterarProdutosDisponibilidade,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (alterarProdutoDisponibilidade) {\r\n let produtoAlterado = this.produtos.find(produto => produto.id == this.produtoSelecionado.id);\r\n\r\n if (produtoAlterado != null) {\r\n produtoAlterado.disponibilidade = true;\r\n }\r\n\r\n produtoAlterado = this.produtosOriginal.find(produtoOriginal => produtoOriginal.id == this.produtoSelecionado.id);\r\n\r\n if (produtoAlterado != null) {\r\n produtoAlterado.disponibilidade = true;\r\n }\r\n\r\n this.qtdeDisponibilidade++;\r\n\r\n this.toastr.success(\"\", \"Avise-me salvo com sucesso!\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n removerAviseMe() {\r\n if (this.produtoSelecionado != null) {\r\n let excluirProdutoDisponibilidade: boolean = false;\r\n\r\n this.produtoService.deleteDisponibilidade(this.produtoSelecionado.id).subscribe(\r\n excluirProdutosDisponibilidade => excluirProdutoDisponibilidade = excluirProdutosDisponibilidade,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (excluirProdutoDisponibilidade) {\r\n let produtoExcluido = this.produtos.find(produto => produto.id == this.produtoSelecionado.id);\r\n\r\n if (produtoExcluido != null) {\r\n produtoExcluido.disponibilidade = false;\r\n }\r\n\r\n produtoExcluido = this.produtosOriginal.find(produtoOriginal => produtoOriginal.id == this.produtoSelecionado.id);\r\n\r\n if (produtoExcluido != null) {\r\n produtoExcluido.disponibilidade = false;\r\n }\r\n\r\n this.qtdeDisponibilidade--;\r\n\r\n this.toastr.success(\"\", \"Avise-me removido com sucesso!\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n /* Avisos */\r\n\r\n removerAvisos() {\r\n if (this.aviso != null) {\r\n this.aviso.nativeElement.style.display = \"none\";\r\n }\r\n }\r\n\r\n verificarAvisos() {\r\n if (this.configuracao != null && (this.configuracao.guidclientenapis.toUpperCase() == '5C430E97-CEA3-43CA-BFAE-DCC4F8F558CB' || this.configuracao.guidclientenapis.toUpperCase() == 'C767BADA-BF09-4A11-900B-ACD76FF0177C')) {\r\n this.exibirAviso = true;\r\n }\r\n }\r\n\r\n /* Bonificação */\r\n\r\n alterarBonificacao(id: string, id_campanha: string) {\r\n let idCampanha: number = parseInt(id_campanha);\r\n let idProduto: number = parseInt(id);\r\n\r\n let produto = this.produtos.find(produto => produto.id_campanha == idCampanha);\r\n\r\n if (produto != null) {\r\n if (produto.id_campanha != null && produto.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n produto.produtos_vinculados.forEach((item) => {\r\n if (item.bonificacao) {\r\n if (item.id == idProduto) {\r\n item.bonificacao_selecionada = true;\r\n } else {\r\n item.bonificacao_selecionada = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /* Compra */\r\n\r\n finalizarCompra() {\r\n this.toastr.success(\"\", \"Compra realizada com sucesso!\");\r\n this.toastr.success(\"\", \"Compra enviada com sucesso!\");\r\n\r\n this.reiniciarCompra();\r\n this.reiniciar(true);\r\n }\r\n\r\n reiniciarCompra() {\r\n /* Carrinho */\r\n\r\n this.carrinho = [];\r\n\r\n this.carrinhoValor = 0;\r\n\r\n /* Cliente (Locais Entrega) */\r\n\r\n this.clienteLocalEntregaSelecionado = null;\r\n\r\n /* Dt. Previsão de Entrega */\r\n\r\n this.dataPrevisaoEntrega = {\r\n year: null,\r\n month: null,\r\n day: null\r\n };\r\n\r\n /* Observação */\r\n\r\n this.observacao = \"\";\r\n\r\n /* Mercado Pago */\r\n\r\n this.mpPagamento = null;\r\n\r\n /* Pedido Vinculado */\r\n\r\n this.pedidoVinculado = \"\";\r\n\r\n /* Pedidos */\r\n\r\n this.nroPedido = 0;\r\n\r\n this.pedido = null;\r\n\r\n /* Pedidos (Itens) */\r\n\r\n this.pedidoItens = [];\r\n\r\n /* Forma de Pagamento */\r\n\r\n if (this.formasPagamento.length > 0) {\r\n this.formaPagamentoSelecionada = this.formasPagamento.find(formaPagamento => formaPagamento.padrao); /* PADRÃO */\r\n\r\n if (this.formaPagamentoSelecionada == null) {\r\n this.formaPagamentoSelecionada = this.formasPagamento[0];\r\n }\r\n }\r\n\r\n /* Prazo de Pagamento */\r\n\r\n this.validarPrazoPagamentoParcela();\r\n this.validarPrazoPagamento();\r\n }\r\n\r\n /* Dados */\r\n\r\n adicionarPedido(produtoPromocionalAgrupado: ProdutoPromocionalAgrupado) {\r\n let retorno = new Promise((resolver) => {\r\n this.pedidoService.getProximoNumeroPedidoBySeller().subscribe(\r\n nroPedido => this.nroPedido = nroPedido,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.nroPedido > 0) {\r\n this.prepararEnviarDados(produtoPromocionalAgrupado);\r\n\r\n /* Pedido */\r\n\r\n let adicionarPedido: boolean = false;\r\n\r\n this.pedidoService.add(this.pedido).subscribe(\r\n adicionarPedidos => adicionarPedido = adicionarPedidos,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (adicionarPedido) {\r\n /* Pedido Itens */\r\n\r\n let adicionarPedidoItens: boolean = false;\r\n\r\n this.pedidoItensService.add(this.pedidoItens).subscribe(\r\n adicionarPedidosItens => adicionarPedidoItens = adicionarPedidosItens,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (adicionarPedidoItens) {\r\n if (!this.b2b_usa_como_orcamento) {\r\n /* Pedido (Enviar) */\r\n\r\n let pedidoEnviar: PedidoBonificacaoRetorno = null;\r\n\r\n this.pedidoService.enviar(this.nroPedido, 0).subscribe(\r\n pedidosEnviar => pedidoEnviar = pedidosEnviar,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n return resolver();\r\n }\r\n );\r\n } else {\r\n return resolver();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n } else {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return resolver();\r\n }\r\n }\r\n );\r\n });\r\n\r\n return retorno;\r\n }\r\n\r\n agruparCarrinho() {\r\n let retorno = new Promise((resolver) => {\r\n /* Produtos */\r\n\r\n let produtoPromocionalTemporario: ProdutoPromocional[] = [];\r\n\r\n /* Variação */\r\n\r\n if (this.configuracao != null && this.configuracao.b2b_modelo_tela == 1) {\r\n let carrinhoTemporario: ProdutoPromocional[] = [];\r\n\r\n this.carrinho.forEach((item) => {\r\n if (item.id_variacao != null) {\r\n item.produtos_vinculados.forEach((produto_vinculado) => {\r\n if (produto_vinculado.id == item.id_variacao) {\r\n produto_vinculado.qtde = item.qtde;\r\n produto_vinculado.price = item.price;\r\n produto_vinculado.price_promotional = item.price_promotional;\r\n\r\n carrinhoTemporario.push(produto_vinculado);\r\n }\r\n });\r\n } else {\r\n carrinhoTemporario.push(item);\r\n }\r\n });\r\n\r\n this.carrinho = carrinhoTemporario;\r\n }\r\n\r\n this.carrinho.forEach((item) => {\r\n if (item.id != 0) {\r\n produtoPromocionalTemporario.push(item);\r\n }\r\n\r\n if (item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n if (subItem.qtde > 0) {\r\n if (item.preco_bonificacao == \"B\") {\r\n /* Bonificação */\r\n\r\n if (subItem.bonificacao) {\r\n if (subItem.bonificacao_selecionada) {\r\n if (item.bonificacao_multiplicavel) {\r\n /* Bonificação (Multiplicável) */\r\n\r\n let qtdeBonificacaoMultiplicavel: number = item.qtde_bonificacao_multiplicavel != null ? item.qtde_bonificacao_multiplicavel : 0;\r\n\r\n if (item.bonificacao_selecionavel) {\r\n /* Bonificação (Selecionável) */\r\n\r\n subItem.qtde = subItem.qtde_minima * qtdeBonificacaoMultiplicavel;\r\n } else {\r\n subItem.qtde = qtdeBonificacaoMultiplicavel;\r\n }\r\n\r\n produtoPromocionalTemporario.push(subItem);\r\n } else {\r\n produtoPromocionalTemporario.push(subItem);\r\n }\r\n }\r\n } else {\r\n if (!item.bonificacao_selecionavel && subItem.bonificacao_selecionada) {\r\n let produtoVinculado: ProdutoPromocional = { ...subItem };\r\n\r\n /* Produto Origem */\r\n\r\n subItem.bonificacao_selecionada = false;\r\n subItem.qtde = subItem.qtde * item.qtde;\r\n\r\n produtoPromocionalTemporario.push(subItem);\r\n\r\n /* Produto Bonificado */\r\n\r\n produtoVinculado.bonificacao = true;\r\n\r\n if (item.bonificacao_multiplicavel) {\r\n produtoVinculado.qtde = item.qtde_bonificacao_multiplicavel;\r\n } else {\r\n produtoVinculado.qtde = 1;\r\n }\r\n\r\n produtoPromocionalTemporario.push(produtoVinculado);\r\n } else {\r\n subItem.qtde = subItem.qtde * item.qtde;\r\n\r\n produtoPromocionalTemporario.push(subItem);\r\n }\r\n }\r\n } else {\r\n subItem.qtde = subItem.qtde * item.qtde;\r\n\r\n produtoPromocionalTemporario.push(subItem);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n /* Agrega Qtde */\r\n\r\n let produtoPromocional: ProdutoPromocional[] = [];\r\n\r\n produtoPromocionalTemporario.forEach((item) => {\r\n let produto = produtoPromocional.find(produtoPromocional => produtoPromocional.id == item.id && produtoPromocional.bonificacao == item.bonificacao && produtoPromocional.price_promotional == item.price_promotional && produtoPromocional.cod_lote == item.cod_lote);;\r\n\r\n if (produto != null) {\r\n produto.qtde = produto.qtde + item.qtde;\r\n } else {\r\n produtoPromocional.push(item);\r\n }\r\n });\r\n\r\n /* Produtos Agrupados */\r\n\r\n this.produtosAgrupados = [];\r\n\r\n produtoPromocional.forEach((item) => {\r\n if (this.produtosAgrupados.length == 0) {\r\n let produtoPromocionalAgrupado = new ProdutoPromocionalAgrupado();\r\n\r\n produtoPromocionalAgrupado.bonificacao = item.bonificacao;\r\n produtoPromocionalAgrupado.cod_lote = item.cod_lote;\r\n produtoPromocionalAgrupado.referencia_cliente = item.referencia_cliente;\r\n produtoPromocionalAgrupado.produtoPromocional = [];\r\n\r\n produtoPromocionalAgrupado.produtoPromocional.push(item);\r\n\r\n this.produtosAgrupados.push(produtoPromocionalAgrupado);\r\n } else {\r\n let novoAgrupamento: boolean = false;\r\n\r\n let produtoAdicionado: boolean = false;\r\n\r\n this.produtosAgrupados.forEach((subItem) => {\r\n if (!produtoAdicionado) {\r\n if ((this.configuracao != null && this.configuracao.b2b_modelo_tela == 1 && item.referencia_cliente != subItem.referencia_cliente) || item.cod_lote != subItem.cod_lote) {\r\n novoAgrupamento = true;\r\n } else {\r\n if (item.bonificacao) {\r\n /* Bonificação */\r\n\r\n if (subItem.bonificacao) {\r\n let produto = subItem.produtoPromocional.find(produtoPromocional => produtoPromocional.id == item.id);\r\n\r\n if (produto == null) {\r\n subItem.produtoPromocional.push(item);\r\n\r\n novoAgrupamento = false;\r\n produtoAdicionado = true;\r\n } else {\r\n novoAgrupamento = true;\r\n }\r\n }\r\n } else {\r\n if (!subItem.bonificacao) {\r\n let produto = subItem.produtoPromocional.find(produtoPromocional => produtoPromocional.id == item.id);\r\n\r\n if (produto == null) {\r\n subItem.produtoPromocional.push(item);\r\n\r\n novoAgrupamento = false;\r\n produtoAdicionado = true;\r\n } else {\r\n novoAgrupamento = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (novoAgrupamento || !produtoAdicionado) {\r\n let produtoPromocionalAgrupado = new ProdutoPromocionalAgrupado();\r\n\r\n produtoPromocionalAgrupado.bonificacao = item.bonificacao;\r\n produtoPromocionalAgrupado.cod_lote = item.cod_lote;\r\n produtoPromocionalAgrupado.referencia_cliente = item.referencia_cliente;\r\n produtoPromocionalAgrupado.produtoPromocional = [];\r\n\r\n produtoPromocionalAgrupado.produtoPromocional.push(item);\r\n\r\n this.produtosAgrupados.push(produtoPromocionalAgrupado);\r\n }\r\n }\r\n });\r\n\r\n return resolver();\r\n });\r\n\r\n return retorno;\r\n }\r\n\r\n agruparGrupos() {\r\n this.produtosGrupos0 = [];\r\n this.produtosGrupos1 = [];\r\n this.produtosGrupos2 = [];\r\n this.produtosGrupos3 = [];\r\n this.produtosGrupos4 = [];\r\n this.produtosGrupos5 = [];\r\n\r\n if (this.produtos.length > 0) {\r\n let produtoGrupo: ProdutoGrupo = null;\r\n\r\n let grupos0: ProdutoGrupo[] = [];\r\n let grupos1: ProdutoGrupo[] = [];\r\n let grupos2: ProdutoGrupo[] = [];\r\n let grupos3: ProdutoGrupo[] = [];\r\n let grupos4: ProdutoGrupo[] = [];\r\n let grupos5: ProdutoGrupo[] = [];\r\n\r\n this.produtos.forEach((item) => {\r\n /* Grupo */\r\n\r\n if (item.grupo_estoque != null && item.grupo_estoque != \"\") {\r\n produtoGrupo = grupos0.find(produtoGrupo => produtoGrupo.grupo == item.grupo_estoque);\r\n\r\n if (produtoGrupo == null) {\r\n let produtoGrupoNome = this.produtosGruposNomes != null && this.produtosGruposNomes.length > 0 ? this.produtosGruposNomes[0].nomegrupo : \"\";\r\n\r\n grupos0.push(new ProdutoGrupo(produtoGrupoNome, item.grupo_estoque, 0, false, true));\r\n }\r\n }\r\n\r\n /* SubGrupo 1 */\r\n\r\n if (item.subgrupo_estoque != null && item.subgrupo_estoque != \"\") {\r\n produtoGrupo = grupos1.find(produtoGrupo => produtoGrupo.grupo == item.subgrupo_estoque);\r\n\r\n if (produtoGrupo == null) {\r\n let produtoGrupoNome = this.produtosGruposNomes != null && this.produtosGruposNomes.length > 1 ? this.produtosGruposNomes[1].nomegrupo : \"\";\r\n\r\n grupos1.push(new ProdutoGrupo(produtoGrupoNome, item.subgrupo_estoque, 1, false, true));\r\n }\r\n }\r\n\r\n /* SubGrupo 2 */\r\n\r\n if (item.subgrupo_estoque2 != null && item.subgrupo_estoque2 != \"\") {\r\n produtoGrupo = grupos2.find(produtoGrupo => produtoGrupo.grupo == item.subgrupo_estoque2);\r\n\r\n if (produtoGrupo == null) {\r\n let produtoGrupoNome = this.produtosGruposNomes != null && this.produtosGruposNomes.length > 2 ? this.produtosGruposNomes[2].nomegrupo : \"\";\r\n\r\n grupos2.push(new ProdutoGrupo(produtoGrupoNome, item.subgrupo_estoque2, 2, false, true));\r\n }\r\n }\r\n\r\n /* SubGrupo 3 */\r\n\r\n if (item.subgrupo_estoque3 != null && item.subgrupo_estoque3 != \"\") {\r\n produtoGrupo = grupos3.find(produtoGrupo => produtoGrupo.grupo == item.subgrupo_estoque3);\r\n\r\n if (produtoGrupo == null) {\r\n let produtoGrupoNome = this.produtosGruposNomes != null && this.produtosGruposNomes.length > 3 ? this.produtosGruposNomes[3].nomegrupo : \"\";\r\n\r\n grupos3.push(new ProdutoGrupo(produtoGrupoNome, item.subgrupo_estoque3, 3, false, true));\r\n }\r\n }\r\n\r\n /* SubGrupo 4 */\r\n\r\n if (item.subgrupo_estoque4 != null && item.subgrupo_estoque4 != \"\") {\r\n produtoGrupo = grupos4.find(produtoGrupo => produtoGrupo.grupo == item.subgrupo_estoque4);\r\n\r\n if (produtoGrupo == null) {\r\n let produtoGrupoNome = this.produtosGruposNomes != null && this.produtosGruposNomes.length > 4 ? this.produtosGruposNomes[4].nomegrupo : \"\";\r\n\r\n grupos4.push(new ProdutoGrupo(produtoGrupoNome, item.subgrupo_estoque4, 4, false, true));\r\n }\r\n }\r\n\r\n /* SubGrupo 5 */\r\n\r\n if (item.subgrupo_estoque5 != null && item.subgrupo_estoque5 != \"\") {\r\n produtoGrupo = grupos5.find(produtoGrupo => produtoGrupo.grupo == item.subgrupo_estoque5);\r\n\r\n if (produtoGrupo == null) {\r\n let produtoGrupoNome = this.produtosGruposNomes != null && this.produtosGruposNomes.length > 5 ? this.produtosGruposNomes[5].nomegrupo : \"\";\r\n\r\n grupos5.push(new ProdutoGrupo(produtoGrupoNome, item.subgrupo_estoque5, 5, false, true));\r\n }\r\n }\r\n });\r\n\r\n /* Grupo */\r\n\r\n grupos0.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.grupo, b.grupo);\r\n });\r\n\r\n this.produtosGrupos0 = grupos0;\r\n\r\n /* SubGrupo 1 */\r\n\r\n grupos1.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.grupo, b.grupo);\r\n });\r\n\r\n this.produtosGrupos1 = grupos1;\r\n\r\n /* SubGrupo 2 */\r\n\r\n grupos2.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.grupo, b.grupo);\r\n });\r\n\r\n this.produtosGrupos2 = grupos2;\r\n\r\n /* SubGrupo 3 */\r\n\r\n grupos3.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.grupo, b.grupo);\r\n });\r\n\r\n this.produtosGrupos3 = grupos3;\r\n\r\n /* SubGrupo 4 */\r\n\r\n grupos4.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.grupo, b.grupo);\r\n });\r\n\r\n this.produtosGrupos4 = grupos4;\r\n\r\n /* SubGrupo 5 */\r\n\r\n grupos5.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.grupo, b.grupo);\r\n });\r\n\r\n this.produtosGrupos5 = grupos5;\r\n }\r\n }\r\n\r\n buscarImagens() {\r\n let idsImagens: number[] = [];\r\n\r\n let produto: ProdutoPromocional = null;\r\n\r\n this.produtos.forEach((item) => {\r\n if (!item.buscou_imagem) {\r\n item.buscou_imagem = true;\r\n\r\n if (item.id == 0) {\r\n /* Campanhas */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n if (!subItem.buscou_imagem) {\r\n idsImagens.push(subItem.id);\r\n\r\n subItem.buscou_imagem = true;\r\n }\r\n });\r\n\r\n produto = this.produtosOriginal.find(produtoOriginal => produtoOriginal.id_campanha == item.id);\r\n } else {\r\n idsImagens.push(item.id);\r\n\r\n produto = this.produtosOriginal.find(produtoOriginal => produtoOriginal.id == item.id);\r\n }\r\n\r\n if (produto != null) {\r\n produto.buscou_imagem = true;\r\n }\r\n }\r\n });\r\n\r\n if (idsImagens.length > 0) {\r\n let grupoIdsImagens = [];\r\n\r\n let qtdeIds: number = 100;\r\n\r\n grupoIdsImagens = idsImagens.map((objeto, index) => {\r\n return index % qtdeIds == 0 ? idsImagens.slice(index, index + qtdeIds) : null;\r\n }).filter(produto => produto != null);\r\n\r\n grupoIdsImagens.forEach((item) => {\r\n let produtoFoto: ProdutoFoto[] = [];\r\n let produtoVinculado: ProdutoPromocional = null;\r\n\r\n this.produtoService.getProdutoFotosByIds(item).subscribe(\r\n produtosFoto => produtoFoto = produtosFoto,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (produtoFoto.length > 0) {\r\n produtoFoto.forEach((subItem) => {\r\n /* Produtos */\r\n\r\n produto = this.produtos.find(produto => produto.id == subItem.id_produto);\r\n\r\n if (produto != null) {\r\n produto.buscou_imagem = true;\r\n produto.imagem = \"data:image/png;base64,\" + subItem.imagem;\r\n }\r\n\r\n /* Campanhas */\r\n\r\n this.produtos.filter(produto => produto.id == 0).forEach((subSubItem) => {\r\n produtoVinculado = subSubItem.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == subItem.id_produto);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.buscou_imagem = true;\r\n produtoVinculado.imagem = \"data:image/png;base64,\" + subItem.imagem;\r\n }\r\n });\r\n\r\n /* Produto (Original) */\r\n\r\n produto = this.produtosOriginal.find(produtoOriginal => produtoOriginal.id == subItem.id_produto);\r\n\r\n if (produto != null) {\r\n produto.buscou_imagem = true;\r\n produto.imagem = \"data:image/png;base64,\" + subItem.imagem;\r\n }\r\n\r\n /* Campanhas */\r\n\r\n this.produtosOriginal.filter(produtoOriginal => produtoOriginal.id == 0).forEach((subSubItem) => {\r\n produtoVinculado = subSubItem.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == subItem.id_produto);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.buscou_imagem = true;\r\n produtoVinculado.imagem = \"data:image/png;base64,\" + subItem.imagem;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n carregarDados() {\r\n this.carregando = true;\r\n\r\n /* Configurações */\r\n\r\n this.configuracaoService.getByGuidClienteNapis().subscribe(\r\n configuracoes => this.configuracao = configuracoes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.b2b_usa_como_orcamento) {\r\n this.verbosCompraOrcamento = \"Orçamento\";\r\n this.verbosComprandoOrcando = \"Orçando\";\r\n }\r\n\r\n if (this.guidclientenapis.toUpperCase() == \"C767BADA-BF09-4A11-900B-ACD76FF0177C\") {\r\n /* PetrovilaTRR */\r\n\r\n this.promocoes = \"PRODUTOS\";\r\n }\r\n\r\n /* Configuração Banner */\r\n\r\n this.configuracaoService.getConfiguracaoBannerByGuidClienteNapis().subscribe(\r\n configuracoesBanners => this.configuracaoBanner = configuracoesBanners,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.configuracaoBanner.length > 0) {\r\n this.conteudoBanners = this.configuracaoBanner.filter(configuracaoBanner => configuracaoBanner.local == \"Banner\");\r\n this.conteudoCarousels = this.configuracaoBanner.filter(configuracaoBanner => configuracaoBanner.local == \"Principal\");\r\n this.conteudoCategorias = this.configuracaoBanner.filter(configuracaoBanner => configuracaoBanner.local == \"Categorias\");\r\n this.conteudoTitulos = this.configuracaoBanner.filter(configuracaoBanner => configuracaoBanner.local == \"Título Categorias\");\r\n }\r\n }\r\n );\r\n\r\n /* Forma de Pagamento */\r\n\r\n this.formaPagamentoService.getByGuidClienteNapis().subscribe(\r\n formasPagamento => this.formasPagamento = formasPagamento,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.formasPagamento.length > 0) {\r\n this.formaPagamentoSelecionada = this.formasPagamento.find(formaPagamento => formaPagamento.padrao); /* PADRÃO */\r\n\r\n if (this.formaPagamentoSelecionada == null) {\r\n this.formaPagamentoSelecionada = this.formasPagamento[0];\r\n }\r\n }\r\n\r\n /* Cliente */\r\n\r\n this.clienteService.getById(parseInt(this.client_id_app)).subscribe(\r\n cliente => this.cliente = cliente,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.cliente != null) {\r\n /* Cliente (Locais Entrega) */\r\n\r\n this.clienteService.getClienteLocalEntregaByCliente(this.cliente.id).subscribe(\r\n clienteLocalEntrega => this.clienteLocaisEntrega = clienteLocalEntrega,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n\r\n }\r\n );\r\n\r\n /* Prazo de Pagamento */\r\n\r\n this.prazoPagamentoService.getByGuidClienteNapis().subscribe(\r\n prazosPagamento => this.prazosPagamento = prazosPagamento,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.cliente.status_financeiro != null && this.cliente.status_financeiro != \"\") {\r\n this.prazosPagamento = this.prazosPagamento.filter(prazoPagamento => prazoPagamento.permitir_inadimplente);\r\n }\r\n\r\n this.prazosPagamentoParcela = JSON.parse(JSON.stringify(this.prazosPagamento));\r\n\r\n if (this.prazosPagamento.length > 0) {\r\n /* Prazo de Pagamento (Cliente) */\r\n\r\n this.prazoPagamentoClienteService.getByClientIdApp(this.cliente.client_id_app).subscribe(\r\n prazosPagamentoClientes => this.prazosPagamentoCliente = prazosPagamentoClientes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.prazosPagamentoCliente.length > 0) {\r\n let prazosPagamentoSelecionados: PrazoPagamento[] = [];\r\n\r\n this.prazosPagamentoCliente.forEach((item) => {\r\n let prazoPagamentoSelecionado: PrazoPagamento = this.prazosPagamento.find(prazoPagamento => prazoPagamento.idprazopagamento == item.id_prazo);\r\n\r\n if (prazoPagamentoSelecionado != null) {\r\n prazosPagamentoSelecionados.push(prazoPagamentoSelecionado);\r\n }\r\n });\r\n\r\n this.prazosPagamento = prazosPagamentoSelecionados;\r\n }\r\n\r\n this.validarPrazoPagamentoParcela();\r\n this.validarPrazoPagamento();\r\n this.verificarAvisos();\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n );\r\n\r\n /* Produtos */\r\n\r\n this.produtoService.getProdutoPromocionalByGuidClienteNapis().subscribe(\r\n produtos => this.produtos = produtos,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.produtos.length > 0) {\r\n this.produtos.forEach((item) => {\r\n item.id_order_item = 0;\r\n item.bonificacao_selecionada = false;\r\n item.qtde_minima_atual = 0;\r\n\r\n /* Qtde Mínima (Existente) */\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n if (item.grupo_estoque == this.combo) {\r\n let existeQtdeMinima: number = item.produtos_vinculados.filter(produto_vinculado => produto_vinculado.qtde_minima > 0).length;\r\n\r\n if (existeQtdeMinima > 0) {\r\n item.qtde_minima_existente = true;\r\n } else {\r\n item.qtde_minima_existente = false;\r\n }\r\n } else {\r\n item.qtde_minima_existente = false;\r\n }\r\n } else {\r\n item.qtde_minima_existente = false;\r\n }\r\n\r\n item.qtde_bonificacao_multiplicavel = 0;\r\n item.filtrado = false;\r\n\r\n /* Imagem */\r\n\r\n if (item.imagem != null && item.imagem != \"\") {\r\n item.imagem = \"data:image/png;base64,\" + item.imagem;\r\n\r\n item.buscou_imagem = true;\r\n } else {\r\n item.imagem = this.produtoSemImagem;\r\n\r\n item.buscou_imagem = false;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n this.existeCampanha = true;\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.id_order_item = 0;\r\n subItem.bonificacao_selecionada = false;\r\n subItem.qtde_minima_atual = 0;\r\n subItem.qtde_bonificacao_multiplicavel = 0;\r\n\r\n /* Imagem */\r\n\r\n subItem.buscou_imagem = false;\r\n subItem.imagem = this.produtoSemImagem;\r\n\r\n /* Tabela Promoção */\r\n\r\n subItem.price_promotional_percentual = 0;\r\n subItem.price_promotional_original = 0;\r\n\r\n /* Fator Financeiro */\r\n\r\n subItem.price_original = subItem.price_promotional;\r\n });\r\n\r\n /* Qtde Mínima */\r\n\r\n if (item.grupo_estoque == this.combo) {\r\n let qtdeMinimaAtual: number = item.produtos_vinculados.filter(produtosVinculados => !produtosVinculados.bonificacao).reduce((sum, current) => (sum + current.qtde_minima), 0);\r\n\r\n item.qtde_minima_atual = qtdeMinimaAtual;\r\n } else {\r\n item.qtde_minima_atual = 0;\r\n }\r\n\r\n /* Produto Vinculado (Selecionado) */\r\n\r\n if (item.bonificacao_selecionavel) {\r\n let produtoVinculado: ProdutoPromocional = item.produtos_vinculados.find(produtosVinculados => produtosVinculados.bonificacao);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.bonificacao_selecionada = true;\r\n }\r\n }\r\n }\r\n\r\n /* Disponibilidade */\r\n\r\n if (item.disponibilidade) {\r\n this.qtdeDisponibilidade++;\r\n }\r\n\r\n /* Promoção */\r\n\r\n item.tabela_promocao_qtde = [];\r\n\r\n if (item.grupo_estoque == this.combo) {\r\n item.price_promotional_percentual = 0;\r\n\r\n item.valor_total = item.price_promotional;\r\n item.valor_total_produtos = item.price_promotional;\r\n\r\n /* Fator Financeiro */\r\n\r\n item.price_original = item.price_promotional;\r\n } else {\r\n if (item.price_promotional > 0) {\r\n let porcentagemPromocional: number = 0;\r\n\r\n porcentagemPromocional = (1 - (item.price / item.price_promotional)) * 100;\r\n\r\n item.price_promotional_percentual = porcentagemPromocional;\r\n\r\n item.valor_total = item.price_promotional;\r\n\r\n /* Fator Financeiro */\r\n\r\n item.price_original = item.price_promotional;\r\n } else {\r\n item.price_promotional_percentual = 0;\r\n\r\n item.valor_total = item.price;\r\n\r\n /* Fator Financeiro */\r\n\r\n item.price_original = item.price;\r\n }\r\n }\r\n\r\n item.price_promotional_original = item.price_promotional;\r\n });\r\n\r\n const ordernarProdutos = this.ordernarProdutos();\r\n\r\n ordernarProdutos.then(() => {\r\n this.produtosOriginal = JSON.parse(JSON.stringify(this.produtos));\r\n\r\n this.produtosBuscaAtual = JSON.parse(JSON.stringify(this.produtos));\r\n\r\n this.organizarMedidas();\r\n });\r\n\r\n /* Produtos (Categorias) */\r\n\r\n this.produtoService.getCategoriaByGuidClienteNapis().subscribe(\r\n produtosCategorias => this.produtosCategorias = produtosCategorias,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n this.organizarCategorias();\r\n }\r\n );\r\n }\r\n }\r\n );\r\n\r\n /* Produtos (Grupos Nomes) */\r\n\r\n this.produtoService.getProdutoGrupoNomeByGuidClienteNapis().subscribe(\r\n produtosGruposNomes => this.produtosGruposNomes = produtosGruposNomes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n\r\n }\r\n );\r\n\r\n /* Produtos (Segmentos) */\r\n\r\n this.produtoService.getProdutoSegmentoByGuidClienteNapis().subscribe(\r\n produtosSegmentos => this.produtosSegmentos = produtosSegmentos,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n\r\n }\r\n );\r\n\r\n /* Tipo Pedido */\r\n\r\n this.tipoPedidoService.getByGuidClienteNapis().subscribe(\r\n tiposPedido => this.tiposPedido = tiposPedido,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n finalizarCarrinho() {\r\n const agruparCarrinho = this.agruparCarrinho();\r\n\r\n agruparCarrinho.then(() => {\r\n if (this.produtosAgrupados.length > 0) {\r\n if (this.produtosAgrupados.length < 10) {\r\n /* 0 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[0]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[1] != null) {\r\n /* 1 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[1]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[2] != null) {\r\n /* 2 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[2]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[3] != null) {\r\n /* 3 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[3]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[4] != null) {\r\n /* 4 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[4]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[5] != null) {\r\n /* 5 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[5]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[6] != null) {\r\n /* 6 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[6]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[7] != null) {\r\n /* 7 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[7]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[8] != null) {\r\n /* 8 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[8]);\r\n\r\n adicionarPedido.then(() => {\r\n if (this.produtosAgrupados[9] != null) {\r\n /* 9 */\r\n\r\n const adicionarPedido = this.adicionarPedido(this.produtosAgrupados[9]);\r\n\r\n adicionarPedido.then(() => {\r\n this.finalizarCompra();\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.finalizarCompra();\r\n }\r\n });\r\n } else {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n ordernarProdutos() {\r\n let retorno = new Promise((resolver) => {\r\n /* Com Estoque */\r\n\r\n let produtosComEstoque: ProdutoPromocional[] = this.produtos.filter(produto => produto.estoque > 0);\r\n\r\n produtosComEstoque.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.name, b.name);\r\n });\r\n\r\n /* Sem Estoque */\r\n\r\n let produtosSemEstoque: ProdutoPromocional[] = this.produtos.filter(produto => produto.estoque <= 0);\r\n\r\n produtosSemEstoque.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.name, b.name);\r\n });\r\n\r\n this.produtos = produtosComEstoque;\r\n\r\n this.produtos.push.apply(this.produtos, produtosSemEstoque);\r\n\r\n return resolver();\r\n });\r\n\r\n return retorno;\r\n }\r\n\r\n organizarCategorias() {\r\n if (this.produtosCategorias != null) {\r\n let ordem: number = 0;\r\n let ordemFinal: number = 0;\r\n\r\n this.produtosCategorias.forEach((item) => {\r\n if (item.categoria == \"OUTROS\") {\r\n ordemFinal = this.produtosCategorias.length - 1;\r\n } else {\r\n ordemFinal = ordem++;\r\n }\r\n\r\n item.ordem = ordemFinal;\r\n });\r\n\r\n this.produtosCategorias.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a.ordem, b.ordem);\r\n });\r\n\r\n this.selecionarCategoria(false, this.promocoes);\r\n\r\n this.carregando = false;\r\n }\r\n }\r\n\r\n organizarMedidas() {\r\n let produtosOriginais = JSON.parse(JSON.stringify(this.produtosOriginal));\r\n\r\n /* Largura */\r\n\r\n if (this.produtoBuscarPorLarguraSelecionado == \"\") {\r\n this.produtoBuscarPorLargura = [];\r\n\r\n let largurasAgrupadas = produtosOriginais.reduce((obj, item) => {\r\n obj[item.subgrupo_estoque4] = obj[item.subgrupo_estoque4] || [];\r\n obj[item.subgrupo_estoque4].push(item);\r\n\r\n return obj;\r\n }, {});\r\n\r\n Object.keys(largurasAgrupadas).map((key) => {\r\n if (key != null && key != \"\") {\r\n this.produtoBuscarPorLargura.push({\r\n texto: key,\r\n valor: key\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* Perfil */\r\n\r\n if (this.produtoBuscarPorLarguraSelecionado == \"\") {\r\n this.produtoBuscarPorPerfil = [];\r\n\r\n this.produtoBuscarPorPerfilSelecionado = \"\";\r\n } else if (this.produtoBuscarPorPerfilSelecionado == \"\") {\r\n produtosOriginais = produtosOriginais.filter(produtoOriginal => produtoOriginal.subgrupo_estoque4 == this.produtoBuscarPorLarguraSelecionado);\r\n\r\n let perfisAgrupados = produtosOriginais.reduce((obj, item) => {\r\n obj[item.subgrupo_estoque3] = obj[item.subgrupo_estoque3] || [];\r\n obj[item.subgrupo_estoque3].push(item);\r\n\r\n return obj;\r\n }, {});\r\n\r\n Object.keys(perfisAgrupados).map((key) => {\r\n if (key != null && key != \"\") {\r\n this.produtoBuscarPorPerfil.push({\r\n texto: key,\r\n valor: key\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* Aro */\r\n\r\n if (this.produtoBuscarPorLarguraSelecionado == \"\" && this.produtoBuscarPorPerfilSelecionado == \"\") {\r\n this.produtoBuscarPorAro = [];\r\n\r\n this.produtoBuscarPorAroSelecionado = \"\";\r\n } else if (this.produtoBuscarPorAroSelecionado == \"\") {\r\n produtosOriginais = produtosOriginais.filter(produtoOriginal => produtoOriginal.subgrupo_estoque4 == this.produtoBuscarPorLarguraSelecionado && produtoOriginal.subgrupo_estoque3 == this.produtoBuscarPorPerfilSelecionado);\r\n\r\n let arosAgrupados = produtosOriginais.reduce((obj, item) => {\r\n obj[item.subgrupo_estoque2] = obj[item.subgrupo_estoque2] || [];\r\n obj[item.subgrupo_estoque2].push(item);\r\n\r\n return obj;\r\n }, {});\r\n\r\n Object.keys(arosAgrupados).map((key) => {\r\n if (key != null && key != \"\") {\r\n this.produtoBuscarPorAro.push({\r\n texto: key,\r\n valor: key\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n prepararEnviarDados(produtoPromocionalAgrupado: ProdutoPromocionalAgrupado) {\r\n /* Pedido */\r\n\r\n let pedido = new Pedido();\r\n\r\n pedido.client_id = parseInt(this.client_id_app);\r\n pedido.is_billed = true;\r\n pedido.is_active = true;\r\n pedido.sale_channel_id = 5;\r\n pedido.is_quotation = false;\r\n pedido.seller_id = parseInt(this.seller_id);\r\n pedido.referencia_do_pedido_no_cliente = this.pedidoVinculado != \"\" ? this.pedidoVinculado : null;\r\n pedido.observacao_interna = this.observacao;\r\n pedido.observacao_nf = null;\r\n pedido.id_prazo_pagamento = this.prazoPagamentoSelecionado.idprazopagamento;\r\n pedido.order_id_app = this.nroPedido; /* Nro Pedido */\r\n pedido.cd_transportadora = null;\r\n pedido.status_aprovacao_master = this.observacao != \"\" ? \"P\" : null;\r\n\r\n if (produtoPromocionalAgrupado.bonificacao) {\r\n /* Bonificação */\r\n\r\n pedido.cod_tipopedvenda = this.tiposPedido.find(tipoPedido => tipoPedido.padrao_bonificacao == \"S\").cod_tipopedvenda.toString();\r\n } else {\r\n let tipoPedidoVenda: TipoPedido = this.tiposPedido.find(tipoPedido => tipoPedido.flag_considerar_pedido_como_venda);\r\n\r\n if (tipoPedidoVenda != null) {\r\n pedido.cod_tipopedvenda = tipoPedidoVenda.cod_tipopedvenda.toString();\r\n } else {\r\n pedido.cod_tipopedvenda = null;\r\n }\r\n }\r\n\r\n pedido.id_tipo_frete = 4;\r\n pedido.master_seller_id = null;\r\n pedido.order_id_origem_bonificacao = 0;\r\n pedido.vlr_bonificacao = 0;\r\n pedido.qtd_itens_ativos = produtoPromocionalAgrupado.produtoPromocional.length;\r\n\r\n if (produtoPromocionalAgrupado.bonificacao) {\r\n pedido.origem_pedido = \"B2B - BONIFICACAO\";\r\n } else {\r\n pedido.origem_pedido = \"B2B - PEDIDO\";\r\n }\r\n\r\n pedido.guidclientenapis = this.guidclientenapis;\r\n pedido.mp_pagamento = this.mpPagamento;\r\n\r\n /* Dt. Previsão de Entrega */\r\n\r\n if (this.dataPrevisaoEntrega != null && this.dataPrevisaoEntrega.year != null && this.dataPrevisaoEntrega.month != null && this.dataPrevisaoEntrega.day != null) {\r\n let dataPrevisaoEntrega = new Date(this.dataPrevisaoEntrega.year, this.dataPrevisaoEntrega.month - 1, this.dataPrevisaoEntrega.day, 0, 0, 0);\r\n\r\n pedido.dt_previsao_entrega = new Date(this.datePipe.transform(dataPrevisaoEntrega, \"yyyy/MM/dd HH:mm:ss\", \"GMT-6\"));\r\n } else {\r\n pedido.dt_previsao_entrega = null;\r\n }\r\n\r\n /* Local de Entrega */\r\n\r\n pedido.id_local_entrega = this.clienteLocalEntregaSelecionado != null ? this.clienteLocalEntregaSelecionado.id : null;\r\n\r\n this.pedido = pedido;\r\n\r\n /* Pedido Itens */\r\n\r\n let pedidoItens: PedidoItens[] = [];\r\n\r\n produtoPromocionalAgrupado.produtoPromocional.forEach((item) => {\r\n let pedidoItem = new PedidoItens();\r\n\r\n pedidoItem.id = item.id_order_item;\r\n pedidoItem.order_id = this.nroPedido; /* Nro Pedido */\r\n pedidoItem.product_id = item.id;\r\n pedidoItem.quantity = item.qtde;\r\n\r\n if (item.bonificacao) {\r\n /* Bonificação */\r\n\r\n pedidoItem.unit_price = item.price_promotional;\r\n } else {\r\n pedidoItem.unit_price = item.price_promotional == 0 ? item.price : item.price_promotional;\r\n }\r\n\r\n pedidoItem.unit_id = 1;\r\n pedidoItem.is_active = item.is_active;\r\n pedidoItem.seller_id = parseInt(this.seller_id);\r\n pedidoItem.percentual_desconto = 0;\r\n pedidoItem.preco_tabela = pedidoItem.unit_price;\r\n pedidoItem.descritivo_desconto = \"Pedido Ecommerce B2B\";\r\n pedidoItem.preco_reposicao = 0;\r\n pedidoItem.id_kit_combo = item.id_campanha != null ? String(item.id_campanha) : null;\r\n\r\n pedidoItens.push(pedidoItem);\r\n });\r\n\r\n this.pedidoItens = pedidoItens;\r\n }\r\n\r\n /* Forma de Pagamento */\r\n\r\n alterarFormaPagamento(id_forma_pagamento: string) {\r\n let idSelecionado = parseInt(id_forma_pagamento);\r\n\r\n this.formaPagamentoSelecionada = this.formasPagamento.find(formaPagamento => formaPagamento.id == idSelecionado);\r\n\r\n /* Prazo de Pagamento */\r\n\r\n this.prazoPagamentoErro = false;\r\n\r\n this.prazoPagamentoSelecionado = null;\r\n\r\n /* Prazo de Pagamento (Parcelas) */\r\n\r\n this.prazoPagamentoParcelaErro = false;\r\n\r\n this.prazoPagamentoParcelaSelecionado = null;\r\n\r\n this.validarPrazoPagamentoParcela();\r\n this.validarPrazoPagamento();\r\n }\r\n\r\n /* Cliente (Locais Entrega) */\r\n\r\n selecionarLocalEntrega(id: string) {\r\n this.clienteLocalEntregaSelecionado = this.clienteLocaisEntrega.find(clienteLocalEntrega => clienteLocalEntrega.id == parseInt(id));\r\n }\r\n\r\n /* Mercado Pago */\r\n\r\n async carregarFormularioCartao() {\r\n this.mpCarregado = false;\r\n this.mpPagamento = null;\r\n\r\n const configuracoes = {\r\n initialization: {\r\n amount: this.carrinhoValor\r\n },\r\n customization: {\r\n visual: {\r\n style: {\r\n theme: \"bootstrap\"\r\n }\r\n }\r\n },\r\n callbacks: {\r\n onReady: () => {\r\n this.mpCarregado = true;\r\n },\r\n onSubmit: (cardFormData) => {\r\n return new Promise((resolve, reject) => {\r\n fetch(this.baseUrl + \"api/MeiosPagamentoCartoesMercadoPago/ProcessarPagamento?guidclientenapis=\" + this.guidclientenapis, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(cardFormData)\r\n }).then((resposta) => resposta.json()).then((retorno) => {\r\n this.mpPagamento = retorno as MeiosPagamentoCartoesMercadoPagoRetorno;\r\n\r\n switch (this.mpPagamento.status) {\r\n case \"approved\":\r\n this.toastr.success(\"\", \"Pagamento aprovado...\");\r\n\r\n this.modalReferenciaPagamento.close();\r\n\r\n this.finalizarCarrinho();\r\n\r\n break;\r\n case \"authorized\":\r\n this.toastr.success(\"\", \"Pagamento autorizado...\");\r\n\r\n this.modalReferenciaPagamento.close();\r\n\r\n this.finalizarCarrinho();\r\n\r\n break;\r\n case \"cancelled\":\r\n this.mpPagamento = null;\r\n\r\n this.toastr.error(\"\", \"Pagamento cancelado...\");\r\n\r\n break;\r\n case \"charged_back\":\r\n this.mpPagamento = null;\r\n\r\n this.toastr.error(\"\", \"Pagamento estornado...\");\r\n\r\n break;\r\n case \"in_mediation\":\r\n case \"rejected\":\r\n this.mpPagamento = null;\r\n\r\n switch (this.mpPagamento.status_detail) {\r\n case \"cc_rejected_bad_filled_date\":\r\n this.toastr.error(\"Data de vencimento inválida...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_bad_filled_other\":\r\n this.toastr.error(\"Informações incorretas...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_bad_filled_security_code\":\r\n this.toastr.error(\"Código de segurança inválido...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_blacklist\":\r\n this.toastr.error(\"Blacklist...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_call_for_authorize\":\r\n this.toastr.error(\"Necessário autorização prévia...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_card_disabled\":\r\n this.toastr.error(\"Cartão inativo...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_duplicated_payment\":\r\n this.toastr.error(\"Pagamento duplicado...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_high_risk\":\r\n this.toastr.error(\"Fraud Prevention...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_insufficient_amount\":\r\n this.toastr.error(\"Valor insuficiente...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_invalid_installments\":\r\n this.toastr.error(\"Número de parcelas inválido...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_max_attempts\":\r\n this.toastr.error(\"Quantidade de tentivas excedidas...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n case \"cc_rejected_other_reason\":\r\n this.toastr.error(\"Erro genérico...\", \"Pagamento rejeitado:\");\r\n\r\n break;\r\n default:\r\n\r\n }\r\n\r\n break;\r\n case \"in_process\":\r\n case \"pending\":\r\n switch (this.mpPagamento.status_detail) {\r\n case \"pending_contingency\":\r\n this.toastr.warning(\"Em Contigência...\", \"Pagamento em processamento:\");\r\n\r\n break;\r\n case \"cc_rejected_other_reason\":\r\n this.toastr.warning(\"Em Análise...\", \"Pagamento em processamento:\");\r\n\r\n break;\r\n default:\r\n\r\n }\r\n\r\n this.modalReferenciaPagamento.close();\r\n\r\n this.finalizarCarrinho();\r\n\r\n break;\r\n case \"refunded\":\r\n this.mpPagamento = null;\r\n\r\n this.toastr.error(\"\", \"Pagamento devolvido...\");\r\n\r\n break;\r\n default:\r\n\r\n }\r\n\r\n resolve();\r\n }).catch(() => {\r\n this.modalReferenciaPagamento.close();\r\n\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n reject();\r\n })\r\n });\r\n },\r\n onError: () => {\r\n\r\n }\r\n }\r\n };\r\n\r\n const bricks = await this.mp.bricks();\r\n\r\n this.bricksController = await bricks.create(\"cardPayment\", \"cartao_container\", configuracoes);\r\n }\r\n\r\n /* Modal */\r\n\r\n modalFinalizar(content: any) {\r\n if (this.formaPagamentoSelecionada == null) {\r\n this.formaPagamentoErro = true;\r\n\r\n this.toastr.error(\"\", \"Forma de Pagamento em branco!\");\r\n } else {\r\n this.formaPagamentoErro = false;\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.b2b_seleciona_parcelas) {\r\n if (this.prazoPagamentoParcelaSelecionado == null) {\r\n this.prazoPagamentoParcelaErro = true;\r\n\r\n this.toastr.error(\"\", \"Parcelas em branco!\");\r\n } else {\r\n this.prazoPagamentoParcelaErro = false;\r\n }\r\n } else {\r\n this.prazoPagamentoParcelaErro = false;\r\n }\r\n\r\n if (this.prazoPagamentoSelecionado == null) {\r\n this.prazoPagamentoErro = true;\r\n\r\n this.toastr.error(\"\", \"Prazo de Pagamento em branco!\");\r\n } else {\r\n this.prazoPagamentoErro = false;\r\n }\r\n\r\n if (!this.formaPagamentoErro && !this.prazoPagamentoParcelaErro && !this.prazoPagamentoErro) {\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-finalizar\",\r\n size: \"xl\",\r\n backdrop: \"static\"\r\n }).result.then((acao) => {\r\n if (acao == \"Confirmar\") {\r\n if (this.prazoPagamentoSelecionado != null) {\r\n /* Tipo Pedido */\r\n\r\n let tipoPedidoBonificacao: TipoPedido = this.tiposPedido.find(tipoPedido => tipoPedido.padrao_bonificacao == \"S\");\r\n\r\n if (tipoPedidoBonificacao == null) {\r\n this.toastr.error(\"\", \"Nenhum tipo de pedido como bonificação...\");\r\n\r\n return;\r\n }\r\n\r\n if (this.formaPagamentoSelecionada.plataform != null) {\r\n if (!this.b2b_usa_como_orcamento) {\r\n this.modalPagamento(this.pagamento);\r\n } else {\r\n this.toastr.error(\"\", \"Operação inválida para orçamento...\");\r\n }\r\n } else {\r\n this.finalizarCarrinho();\r\n }\r\n } else {\r\n this.modalFinalizar(content);\r\n }\r\n }\r\n }, () => {\r\n\r\n });\r\n }\r\n }\r\n\r\n modalFotos(content: any, id_produto: number) {\r\n this.produtoFotosSelecionado = null;\r\n\r\n /* Produto (Fotos) */\r\n\r\n this.produtoService.getProdutoFotosByIdProduto(id_produto).subscribe(\r\n produtoFoto => this.produtoFotos = produtoFoto,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.produtoFotos.length > 0) {\r\n this.produtoFotos.forEach((item) => {\r\n item.imagem = \"data:image/png;base64,\" + item.imagem;\r\n });\r\n\r\n this.produtoFotosSelecionado = this.produtos.find(produto => produto.id == id_produto);\r\n\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-fotos\",\r\n size: \"lg\",\r\n backdrop: \"static\"\r\n });\r\n } else {\r\n this.toastr.error(\"\", \"Nenhuma foto encontrada!\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n modalNotificacoes(content: any) {\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-notificacoes\",\r\n size: \"xl\",\r\n backdrop: \"static\"\r\n }).result.then((acao) => {\r\n if (acao == \"Continuar\") {\r\n\r\n }\r\n }, () => {\r\n\r\n });\r\n }\r\n\r\n modalPagamento(content: any) {\r\n this.carregarFormularioCartao();\r\n\r\n this.modalReferenciaPagamento = this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-pagamento\",\r\n size: \"lg\",\r\n backdrop: \"static\"\r\n });\r\n\r\n this.modalReferenciaPagamento.result.then(() => {\r\n this.bricksController.unmount();\r\n }, () => {\r\n this.bricksController.unmount();\r\n });\r\n }\r\n\r\n modalSimular(content: any) {\r\n if (this.produtoSelecionado != null) {\r\n if (this.produtoSelecionado.price == 0 && this.produtoSelecionado.price_promotional == 0) {\r\n this.produtoSelecionado.percentual_margem = 0;\r\n } else {\r\n this.b2b_margem_consumidor = parseFloat(localStorage.getItem(\"b2b_margem_consumidor\"));\r\n\r\n if (this.produtoSelecionado.price_promotional > 0) {\r\n this.produtoSelecionado.percentual_margem = this.produtoSelecionado.price_promotional + ((this.produtoSelecionado.price_promotional * this.b2b_margem_consumidor) / 100);\r\n } else {\r\n this.produtoSelecionado.percentual_margem = this.produtoSelecionado.price + ((this.produtoSelecionado.price * this.b2b_margem_consumidor) / 100);;\r\n }\r\n }\r\n\r\n this.modalService.open(content, {\r\n ariaLabelledBy: \"titulo-simular\",\r\n size: \"xl\",\r\n backdrop: \"static\"\r\n }).result.then((acao) => {\r\n if (acao == \"Ok\") {\r\n\r\n }\r\n }, () => {\r\n\r\n });\r\n }\r\n }\r\n\r\n /* Pagamento */\r\n\r\n alterarAbasPagamento(evento: any) {\r\n this.tabPagamentoSelecionada = evento.nextId;\r\n }\r\n\r\n /* Produtos (Busca (Grupo)) */\r\n\r\n buscarProdutoPorGrupo(grupo: number, event: any) {\r\n if (this.validarAcesso()) {\r\n if (this.produtoBuscarPorGrupo) {\r\n /* Produtos (Busca (Grupo)) */\r\n\r\n this.selecionarCategoriaPorImagem(false, this.produtoCategoriaSelecionada);\r\n } else if (this.produtoBuscarPorMedidaEnviado) {\r\n /* Produtos (Busca (Medida)) */\r\n\r\n this.buscarProdutoPorMedida(false);\r\n } else if (this.produtoBuscarPorNome) {\r\n /* Produtos (Busca (Nome)) */\r\n\r\n this.buscarProdutoPorNome(false);\r\n } else {\r\n /* Produtos (Categorias) */\r\n\r\n this.selecionarCategoria(false, this.produtoCategoriaSelecionada);\r\n }\r\n\r\n /* Grupos */\r\n\r\n if (grupo == 0) {\r\n /* Grupo */\r\n\r\n this.produtosGrupos0.forEach((item) => {\r\n if (item.grupo == event.target.value) {\r\n if (event.currentTarget.checked) {\r\n item.selecionado = true;\r\n } else {\r\n item.selecionado = false;\r\n }\r\n }\r\n });\r\n } else if (grupo == 1) {\r\n /* SubGrupo 1 */\r\n\r\n this.produtosGrupos1.forEach((item) => {\r\n if (item.grupo == event.target.value) {\r\n if (event.currentTarget.checked) {\r\n item.selecionado = true;\r\n } else {\r\n item.selecionado = false;\r\n }\r\n }\r\n });\r\n } else if (grupo == 2) {\r\n /* SubGrupo 2 */\r\n\r\n this.produtosGrupos2.forEach((item) => {\r\n if (item.grupo == event.target.value) {\r\n if (event.currentTarget.checked) {\r\n item.selecionado = true;\r\n } else {\r\n item.selecionado = false;\r\n }\r\n }\r\n });\r\n } else if (grupo == 3) {\r\n /* SubGrupo 3 */\r\n\r\n this.produtosGrupos3.forEach((item) => {\r\n if (item.grupo == event.target.value) {\r\n if (event.currentTarget.checked) {\r\n item.selecionado = true;\r\n } else {\r\n item.selecionado = false;\r\n }\r\n }\r\n });\r\n } else if (grupo == 4) {\r\n /* SubGrupo 4 */\r\n\r\n this.produtosGrupos4.forEach((item) => {\r\n if (item.grupo == event.target.value) {\r\n if (event.currentTarget.checked) {\r\n item.selecionado = true;\r\n } else {\r\n item.selecionado = false;\r\n }\r\n }\r\n });\r\n } else if (grupo == 5) {\r\n /* SubGrupo 5 */\r\n\r\n this.produtosGrupos5.forEach((item) => {\r\n if (item.grupo == event.target.value) {\r\n if (event.currentTarget.checked) {\r\n item.selecionado = true;\r\n } else {\r\n item.selecionado = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n /* Filtros */\r\n\r\n let comFiltro: boolean = false;\r\n\r\n let gruposSelecionados: number = 0;\r\n\r\n let produtosFiltro = JSON.parse(JSON.stringify(this.produtosBuscaAtual));\r\n\r\n produtosFiltro.forEach((item) => {\r\n item.filtro_por_grupo_estoque = false;\r\n item.filtro_por_subgrupo_estoque = false;\r\n item.filtro_por_subgrupo_estoque2 = false;\r\n item.filtro_por_subgrupo_estoque3 = false;\r\n item.filtro_por_subgrupo_estoque4 = false;\r\n item.filtro_por_subgrupo_estoque5 = false;\r\n item.filtrado = false;\r\n });\r\n\r\n /* Grupo */\r\n\r\n gruposSelecionados = this.produtosGrupos0.filter(produtoGrupo => produtoGrupo.selecionado).length;\r\n\r\n if (gruposSelecionados > 0) {\r\n this.produtosGrupos0.forEach((item) => {\r\n if (item.selecionado) {\r\n comFiltro = true;\r\n\r\n produtosFiltro.forEach((subItem) => {\r\n if (subItem.grupo_estoque == item.grupo) {\r\n subItem.filtro_por_grupo_estoque = true;\r\n subItem.filtrado = true;\r\n } else {\r\n if (!subItem.filtro_por_grupo_estoque) {\r\n subItem.filtrado = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n produtosFiltro = produtosFiltro.filter(produtoFiltro => produtoFiltro.filtrado);\r\n }\r\n\r\n /* SubGrupo 1 */\r\n\r\n gruposSelecionados = this.produtosGrupos1.filter(produtoGrupo => produtoGrupo.selecionado).length;\r\n\r\n if (gruposSelecionados > 0) {\r\n this.produtosGrupos1.forEach((item) => {\r\n if (item.selecionado) {\r\n comFiltro = true;\r\n\r\n produtosFiltro.forEach((subItem) => {\r\n if (subItem.subgrupo_estoque == item.grupo) {\r\n subItem.filtro_por_subgrupo_estoque = true;\r\n subItem.filtrado = true;\r\n } else {\r\n if (!subItem.filtro_por_subgrupo_estoque) {\r\n subItem.filtrado = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n produtosFiltro = produtosFiltro.filter(produtoFiltro => produtoFiltro.filtrado);\r\n }\r\n\r\n /* SubGrupo 2 */\r\n\r\n gruposSelecionados = this.produtosGrupos2.filter(produtoGrupo => produtoGrupo.selecionado).length;\r\n\r\n if (gruposSelecionados > 0) {\r\n this.produtosGrupos2.forEach((item) => {\r\n if (item.selecionado) {\r\n comFiltro = true;\r\n\r\n produtosFiltro.forEach((subItem) => {\r\n if (subItem.subgrupo_estoque2 == item.grupo) {\r\n subItem.filtro_por_subgrupo_estoque2 = true;\r\n subItem.filtrado = true;\r\n } else {\r\n if (!subItem.filtro_por_subgrupo_estoque2) {\r\n subItem.filtrado = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n produtosFiltro = produtosFiltro.filter(produtoFiltro => produtoFiltro.filtrado);\r\n }\r\n\r\n /* SubGrupo 3 */\r\n\r\n gruposSelecionados = this.produtosGrupos3.filter(produtoGrupo => produtoGrupo.selecionado).length;\r\n\r\n if (gruposSelecionados > 0) {\r\n this.produtosGrupos3.forEach((item) => {\r\n if (item.selecionado) {\r\n comFiltro = true;\r\n\r\n produtosFiltro.forEach((subItem) => {\r\n if (subItem.subgrupo_estoque3 == item.grupo) {\r\n subItem.filtro_por_subgrupo_estoque3 = true;\r\n subItem.filtrado = true;\r\n } else {\r\n if (!subItem.filtro_por_subgrupo_estoque3) {\r\n subItem.filtrado = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n produtosFiltro = produtosFiltro.filter(produtoFiltro => produtoFiltro.filtrado);\r\n }\r\n\r\n /* SubGrupo 4 */\r\n\r\n gruposSelecionados = this.produtosGrupos4.filter(produtoGrupo => produtoGrupo.selecionado).length;\r\n\r\n if (gruposSelecionados > 0) {\r\n this.produtosGrupos4.forEach((item) => {\r\n if (item.selecionado) {\r\n comFiltro = true;\r\n\r\n produtosFiltro.forEach((subItem) => {\r\n if (subItem.subgrupo_estoque4 == item.grupo) {\r\n subItem.filtro_por_subgrupo_estoque4 = true;\r\n subItem.filtrado = true;\r\n } else {\r\n if (!subItem.filtro_por_subgrupo_estoque4) {\r\n subItem.filtrado = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n produtosFiltro = produtosFiltro.filter(produtoFiltro => produtoFiltro.filtrado);\r\n }\r\n\r\n /* SubGrupo 5 */\r\n\r\n gruposSelecionados = this.produtosGrupos5.filter(produtoGrupo => produtoGrupo.selecionado).length;\r\n\r\n if (gruposSelecionados > 0) {\r\n this.produtosGrupos5.forEach((item) => {\r\n if (item.selecionado) {\r\n comFiltro = true;\r\n\r\n produtosFiltro.forEach((subItem) => {\r\n if (subItem.subgrupo_estoque5 == item.grupo) {\r\n subItem.filtro_por_subgrupo_estoque5 = true;\r\n subItem.filtrado = true;\r\n } else {\r\n if (!subItem.filtro_por_subgrupo_estoque5) {\r\n subItem.filtrado = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n produtosFiltro = produtosFiltro.filter(produtoFiltro => produtoFiltro.filtrado);\r\n }\r\n\r\n /* Exibição de grupos c/ produtos */\r\n\r\n let produtosFiltrados = JSON.parse(JSON.stringify(produtosFiltro));\r\n\r\n let produtoFiltro: ProdutoPromocional = null;\r\n\r\n /* Grupo */\r\n\r\n this.produtosGrupos0.forEach((item) => {\r\n produtoFiltro = produtosFiltrados.find(produtoFiltro => produtoFiltro.grupo_estoque == item.grupo);\r\n\r\n if (produtoFiltro == null) {\r\n item.exibir = false;\r\n } else {\r\n item.exibir = true;\r\n }\r\n });\r\n\r\n /* SubGrupo 1 */\r\n\r\n this.produtosGrupos1.forEach((item) => {\r\n produtoFiltro = produtosFiltrados.find(produtoFiltro => produtoFiltro.subgrupo_estoque == item.grupo);\r\n\r\n if (produtoFiltro == null) {\r\n item.exibir = false;\r\n } else {\r\n item.exibir = true;\r\n }\r\n });\r\n\r\n /* SubGrupo 2 */\r\n\r\n this.produtosGrupos2.forEach((item) => {\r\n produtoFiltro = produtosFiltrados.find(produtoFiltro => produtoFiltro.subgrupo_estoque2 == item.grupo);\r\n\r\n if (produtoFiltro == null) {\r\n item.exibir = false;\r\n } else {\r\n item.exibir = true;\r\n }\r\n });\r\n\r\n /* SubGrupo 3 */\r\n\r\n this.produtosGrupos3.forEach((item) => {\r\n produtoFiltro = produtosFiltrados.find(produtoFiltro => produtoFiltro.subgrupo_estoque3 == item.grupo);\r\n\r\n if (produtoFiltro == null) {\r\n item.exibir = false;\r\n } else {\r\n item.exibir = true;\r\n }\r\n });\r\n\r\n /* SubGrupo 4 */\r\n\r\n this.produtosGrupos4.forEach((item) => {\r\n produtoFiltro = produtosFiltrados.find(produtoFiltro => produtoFiltro.subgrupo_estoque4 == item.grupo);\r\n\r\n if (produtoFiltro == null) {\r\n item.exibir = false;\r\n } else {\r\n item.exibir = true;\r\n }\r\n });\r\n\r\n /* SubGrupo 5 */\r\n\r\n this.produtosGrupos5.forEach((item) => {\r\n produtoFiltro = produtosFiltrados.find(produtoFiltro => produtoFiltro.subgrupo_estoque5 == item.grupo);\r\n\r\n if (produtoFiltro == null) {\r\n item.exibir = false;\r\n } else {\r\n item.exibir = true;\r\n }\r\n });\r\n\r\n if (comFiltro) {\r\n this.produtos = JSON.parse(JSON.stringify(produtosFiltro));\r\n\r\n this.produtosBuscaAtual = JSON.parse(JSON.stringify(produtosFiltro));\r\n\r\n this.produtoCategoriaSelecionadaQtde = produtosFiltro.filter(produtoFiltro => !produtoFiltro.vinculado).length;\r\n }\r\n }\r\n }\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n buscarProdutoPorMedida(externo: boolean) {\r\n if (this.produtoBuscarPorAroSelecionado != \"\" && this.produtoBuscarPorLarguraSelecionado != \"\" && this.produtoBuscarPorPerfilSelecionado != \"\") {\r\n /* Carrinho */\r\n\r\n this.carrinhoExibir = false;\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n this.produtoBuscarPorMedidaEnviado = true;\r\n\r\n /* Produtos (Busca (Nome)) */\r\n\r\n this.produtoBuscarPorNomeEnviado = false;\r\n\r\n /* Produtos (Categorias) */\r\n\r\n this.produtoCategoriaSelecionada = \"\";\r\n\r\n this.reiniciarProduto();\r\n\r\n this.produtos = JSON.parse(JSON.stringify(this.produtosOriginal));\r\n\r\n this.produtos = this.produtos.filter(produto => produto.subgrupo_estoque2 == this.produtoBuscarPorAroSelecionado && produto.subgrupo_estoque4 == this.produtoBuscarPorLarguraSelecionado && produto.subgrupo_estoque3 == this.produtoBuscarPorPerfilSelecionado);\r\n\r\n this.buscarImagens();\r\n\r\n if (externo) {\r\n this.agruparGrupos();\r\n }\r\n\r\n this.produtosBuscaAtual = JSON.parse(JSON.stringify(this.produtos));\r\n\r\n this.produtoCategoriaSelecionadaQtde = this.produtos.filter(produto => !produto.vinculado).length;\r\n } else {\r\n this.reiniciar(true);\r\n }\r\n }\r\n\r\n selecionarProdutoPorAro(aro: string) {\r\n this.produtoBuscarPorAroSelecionado = aro;\r\n }\r\n\r\n selecionarProdutoPorLargura(largura: string) {\r\n this.produtoBuscarPorLarguraSelecionado = largura;\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n this.produtoBuscarPorAro = [];\r\n\r\n this.produtoBuscarPorAroSelecionado = \"\";\r\n\r\n this.produtoBuscarPorPerfil = [];\r\n\r\n this.produtoBuscarPorPerfilSelecionado = \"\";\r\n\r\n this.organizarMedidas();\r\n }\r\n\r\n selecionarProdutoPorPerfil(perfil: string) {\r\n this.produtoBuscarPorPerfilSelecionado = perfil;\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n this.produtoBuscarPorAro = [];\r\n\r\n this.produtoBuscarPorAroSelecionado = \"\";\r\n\r\n this.organizarMedidas();\r\n }\r\n\r\n /* Produtos (Busca (Nome)) */\r\n\r\n buscarProdutoPorNome(externo: boolean) {\r\n if (this.produtoBuscarPorNome.trim() != \"\") {\r\n /* Carrinho */\r\n\r\n this.carrinhoExibir = false;\r\n\r\n /* Produtos (Busca (Medida)) */\r\n\r\n this.produtoBuscarPorMedidaEnviado = false;\r\n\r\n /* Produtos (Busca (Nome)) */\r\n\r\n this.produtoBuscarPorNomeEnviado = true;\r\n\r\n /* Produtos (Categorias) */\r\n\r\n this.produtoCategoriaSelecionada = \"\";\r\n\r\n this.reiniciarProduto();\r\n\r\n this.produtos = JSON.parse(JSON.stringify(this.produtosOriginal));\r\n\r\n this.produtos = this.produtos.filter(produto => {\r\n let palavras = this.produtoBuscarPorNome.split(\" \");\r\n\r\n let qtdePalavrasEncontradasProduto: number = 0;\r\n\r\n palavras.forEach((item) => {\r\n if (produto.name.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n qtdePalavrasEncontradasProduto++;\r\n }\r\n });\r\n\r\n if (qtdePalavrasEncontradasProduto == palavras.length) {\r\n return true;\r\n } else {\r\n let produtoLocalizado: boolean = false;\r\n\r\n /* Grupo Estoque */\r\n\r\n if (produto.grupo_estoque != null) {\r\n palavras.forEach((item) => {\r\n if (produto.grupo_estoque.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n produtoLocalizado = true;\r\n }\r\n });\r\n }\r\n\r\n /* Sub-grupo */\r\n\r\n if (produto.subgrupo_estoque != null) {\r\n palavras.forEach((item) => {\r\n if (produto.subgrupo_estoque.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n produtoLocalizado = true;\r\n }\r\n });\r\n }\r\n\r\n /* Sub-grupo 2 */\r\n\r\n if (produto.subgrupo_estoque2 != null) {\r\n palavras.forEach((item) => {\r\n if (produto.subgrupo_estoque2.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n produtoLocalizado = true;\r\n }\r\n });\r\n }\r\n\r\n /* Sub-grupo 3 */\r\n\r\n if (produto.subgrupo_estoque3 != null) {\r\n palavras.forEach((item) => {\r\n if (produto.subgrupo_estoque3.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n produtoLocalizado = true;\r\n }\r\n });\r\n }\r\n\r\n /* Sub-grupo 4 */\r\n\r\n if (produto.subgrupo_estoque4 != null) {\r\n palavras.forEach((item) => {\r\n if (produto.subgrupo_estoque4.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n produtoLocalizado = true;\r\n }\r\n });\r\n }\r\n\r\n /* Sub-grupo 5 */\r\n\r\n if (produto.subgrupo_estoque5 != null) {\r\n palavras.forEach((item) => {\r\n if (produto.subgrupo_estoque5.toLowerCase().indexOf(item.toLowerCase()) !== -1) {\r\n produtoLocalizado = true;\r\n }\r\n });\r\n }\r\n\r\n if (produtoLocalizado) {\r\n return true;\r\n } else {\r\n if (produto.id_campanha != null && produto.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n let porProdutoVinculado: ProdutoPromocional[] = produto.produtos_vinculados.filter(produtosVinculados => {\r\n let qtdePalavrasEncontradasCampanha: number = 0;\r\n\r\n palavras.forEach((subItem) => {\r\n if (produtosVinculados.name.toLowerCase().indexOf(subItem.toLowerCase()) !== -1 && !produtosVinculados.bonificacao) {\r\n qtdePalavrasEncontradasCampanha++;\r\n }\r\n });\r\n\r\n return qtdePalavrasEncontradasCampanha == palavras.length;\r\n });\r\n\r\n if (porProdutoVinculado.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.buscarImagens();\r\n\r\n if (externo) {\r\n this.agruparGrupos();\r\n }\r\n\r\n this.produtosBuscaAtual = JSON.parse(JSON.stringify(this.produtos));\r\n\r\n this.produtoCategoriaSelecionadaQtde = this.produtos.filter(produto => !produto.vinculado).length;\r\n } else {\r\n this.reiniciar(true);\r\n }\r\n }\r\n\r\n /* Produtos (Categorias) */\r\n\r\n selecionarCategoria(externo: boolean, categoria: string) {\r\n if (this.validarAcesso()) {\r\n this.produtoCategoriaSelecionada = categoria;\r\n this.produtoCategoriaSelecionadaQtde = 0;\r\n\r\n if (externo) {\r\n this.reiniciar(false);\r\n } else {\r\n this.produtos = JSON.parse(JSON.stringify(this.produtosOriginal));\r\n }\r\n\r\n if (categoria != null) {\r\n if (this.produtosCategorias != null) {\r\n let produtoCategoria: ProdutoCategoria = this.produtosCategorias.find(produtoCategoria => produtoCategoria.categoria == categoria);\r\n\r\n if (produtoCategoria != null) {\r\n this.produtos = this.produtos.filter(produto => produto.categoria == produtoCategoria.categoria);\r\n } else {\r\n if (categoria == this.aviseme) {\r\n /* Avise-me */\r\n\r\n this.produtos = this.produtos.filter(produto => produto.disponibilidade);\r\n } else if (categoria == this.promocoes) {\r\n /* Promoções */\r\n\r\n this.produtos = this.produtos.filter(produto => produto.promocao);\r\n\r\n if (this.configuracao != null && this.configuracao.b2b_segmentado && this.segment != \"\") {\r\n let produtoSegmento: ProdutoSegmento = null;\r\n\r\n let produtosFiltrados = this.produtos;\r\n\r\n produtosFiltrados.forEach((item) => {\r\n produtoSegmento = this.produtosSegmentos.find(produtoSegmento => produtoSegmento.id_produto == item.id);\r\n\r\n if (produtoSegmento == null) {\r\n let produtoNaoSegmentado = this.produtos.findIndex(produto => produto.id == item.id);\r\n\r\n if (produtoNaoSegmentado != -1) {\r\n this.produtos.splice(produtoNaoSegmentado, 1);\r\n }\r\n }\r\n });\r\n }\r\n } else if (categoria == this.reposicoes) {\r\n /* Reposições */\r\n\r\n this.produtos = this.produtos.filter(produto => produto.ultima_compra != null);\r\n } else if (categoria == this.maisVendidos) {\r\n /* Mais Vendidos */\r\n\r\n this.produtos = this.produtos.filter(produto => produto.mais_vendidos);\r\n\r\n if (this.configuracao != null && this.configuracao.b2b_segmentado && this.segment != \"\") {\r\n let produtoSegmento: ProdutoSegmento = null;\r\n\r\n let produtosFiltrados = this.produtos;\r\n\r\n produtosFiltrados.forEach((item) => {\r\n produtoSegmento = this.produtosSegmentos.find(produtoSegmento => produtoSegmento.id_produto == item.id);\r\n\r\n if (produtoSegmento == null) {\r\n let produtoNaoSegmentado = this.produtos.findIndex(produto => produto.id == item.id);\r\n\r\n if (produtoNaoSegmentado != -1) {\r\n this.produtos.splice(produtoNaoSegmentado, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.produtoCategoriaSelecionadaQtde = this.produtos.filter(produto => !produto.vinculado).length;\r\n\r\n this.buscarImagens();\r\n\r\n if (externo) {\r\n this.agruparGrupos();\r\n }\r\n }\r\n }\r\n\r\n this.produtosBuscaAtual = JSON.parse(JSON.stringify(this.produtos));\r\n\r\n if (externo && this.produtoCategoriaSelecionada == this.promocoes) {\r\n this.moverParaCategoria();\r\n }\r\n }\r\n }\r\n\r\n selecionarCategoriaPorImagem(externo: boolean, categoria_banner: string) {\r\n if (this.validarAcesso()) {\r\n this.produtoCategoriaSelecionada = categoria_banner;\r\n this.produtoCategoriaSelecionadaQtde = 0;\r\n\r\n this.reiniciar(false);\r\n\r\n if (categoria_banner != null) {\r\n this.produtos = this.produtos.filter(produto => {\r\n if (produto.categoria_banner != null) {\r\n let produtosCategorias: string[] = [];\r\n\r\n produtosCategorias = produto.categoria_banner.split(\";\");\r\n\r\n let produtoCategoria = produtosCategorias.find(produtoCategoria => produtoCategoria.toLowerCase() == categoria_banner.toLowerCase());\r\n\r\n if (produtoCategoria != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n this.produtoCategoriaSelecionadaQtde = this.produtos.filter(produto => !produto.vinculado).length;\r\n\r\n this.produtosBuscaAtual = JSON.parse(JSON.stringify(this.produtos));\r\n\r\n this.produtoBuscarPorGrupo = true;\r\n\r\n this.buscarImagens();\r\n\r\n if (externo) {\r\n this.agruparGrupos();\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Prazo de Pagamento */\r\n\r\n alterarPrazoPagamento(id_prazo_pagamento: string) {\r\n let idSelecionado = parseInt(id_prazo_pagamento);\r\n\r\n if (idSelecionado > 0) {\r\n this.prazoPagamentoSelecionado = this.prazosPagamento.find(prazoPagamento => prazoPagamento.idprazopagamento == idSelecionado);\r\n } else {\r\n this.definirPrazoPagamento();\r\n }\r\n\r\n this.aplicarFatorFinanceiro();\r\n this.totalizarCarrinho();\r\n }\r\n\r\n aplicarFatorFinanceiro() {\r\n if (this.prazoPagamentoSelecionado != null) {\r\n if (this.prazoPagamentoSelecionado.fator_financeiro != null && this.prazoPagamentoSelecionado.fator_financeiro != 0) {\r\n let fator: number = this.prazoPagamentoSelecionado.fator_financeiro;\r\n\r\n /* Produtos */\r\n\r\n this.produtos.forEach((item) => {\r\n if (item.price_promotional > 0) {\r\n item.price_promotional = item.price_original;\r\n\r\n if (fator >= 0) {\r\n item.price_promotional = (item.price_promotional + ((item.price_promotional * fator) / 100));\r\n } else {\r\n item.price_promotional = (item.price_promotional - ((item.price_promotional * Math.abs(fator)) / 100));\r\n }\r\n\r\n item.valor_total = item.price_promotional;\r\n } else {\r\n item.price = item.price_original;\r\n\r\n if (fator >= 0) {\r\n item.price = (item.price + ((item.price * fator) / 100));\r\n } else {\r\n item.price = (item.price - ((item.price * Math.abs(fator)) / 100));\r\n }\r\n\r\n item.valor_total = item.price;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.price_promotional = subItem.price_original;\r\n\r\n if (fator >= 0) {\r\n subItem.price_promotional = (subItem.price_promotional + ((subItem.price_promotional * fator) / 100));\r\n } else {\r\n subItem.price_promotional = (subItem.price_promotional - ((subItem.price_promotional * Math.abs(fator)) / 100));\r\n }\r\n\r\n subItem.valor_total = subItem.price_promotional;\r\n });\r\n\r\n item.valor_total_produtos = item.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n item.valor_total = item.valor_total_produtos * item.qtde;\r\n }\r\n });\r\n\r\n /* Produto (Original) */\r\n\r\n this.produtosOriginal.forEach((item) => {\r\n if (item.price_promotional > 0) {\r\n item.price_promotional = item.price_original;\r\n\r\n if (fator >= 0) {\r\n item.price_promotional = (item.price_promotional + ((item.price_promotional * fator) / 100));\r\n } else {\r\n item.price_promotional = (item.price_promotional - ((item.price_promotional * Math.abs(fator)) / 100));\r\n }\r\n\r\n item.valor_total = item.price_promotional;\r\n } else {\r\n item.price = item.price_original;\r\n\r\n if (fator >= 0) {\r\n item.price = (item.price + ((item.price * fator) / 100));\r\n } else {\r\n item.price = (item.price - ((item.price * Math.abs(fator)) / 100));\r\n }\r\n\r\n item.valor_total = item.price;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.price_promotional = subItem.price_original;\r\n\r\n if (fator >= 0) {\r\n subItem.price_promotional = (subItem.price_promotional + ((subItem.price_promotional * fator) / 100));\r\n } else {\r\n subItem.price_promotional = (subItem.price_promotional - ((subItem.price_promotional * Math.abs(fator)) / 100));\r\n }\r\n\r\n subItem.valor_total = subItem.price_promotional;\r\n });\r\n\r\n item.valor_total_produtos = item.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n item.valor_total = item.valor_total_produtos * item.qtde;\r\n }\r\n });\r\n\r\n /* Carrinho */\r\n\r\n this.carrinho.forEach((item) => {\r\n if (item.price_promotional > 0) {\r\n item.price_promotional = item.price_original;\r\n\r\n if (fator >= 0) {\r\n item.price_promotional = (item.price_promotional + ((item.price_promotional * fator) / 100));\r\n } else {\r\n item.price_promotional = (item.price_promotional - ((item.price_promotional * Math.abs(fator)) / 100));\r\n }\r\n\r\n item.valor_total = item.price_promotional * item.qtde;\r\n } else {\r\n item.price = item.price_original;\r\n\r\n if (fator >= 0) {\r\n item.price = (item.price + ((item.price * fator) / 100));\r\n } else {\r\n item.price = (item.price - ((item.price * Math.abs(fator)) / 100));\r\n }\r\n\r\n item.valor_total = item.price * item.qtde;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.price_promotional = subItem.price_original;\r\n\r\n if (fator >= 0) {\r\n subItem.price_promotional = (subItem.price_promotional + ((subItem.price_promotional * fator) / 100));\r\n } else {\r\n subItem.price_promotional = (subItem.price_promotional - ((subItem.price_promotional * Math.abs(fator)) / 100));\r\n }\r\n\r\n subItem.valor_total = subItem.price_promotional * subItem.qtde;\r\n });\r\n\r\n item.valor_total_produtos = item.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n item.valor_total = item.valor_total_produtos * item.qtde;\r\n }\r\n });\r\n } else {\r\n /* Produtos */\r\n\r\n this.produtos.forEach((item) => {\r\n if (item.price_promotional > 0) {\r\n item.price_promotional = item.price_original;\r\n\r\n item.valor_total = item.price_promotional;\r\n } else {\r\n item.price = item.price_original;\r\n\r\n item.valor_total = item.price;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.price_promotional = subItem.price_original;\r\n\r\n subItem.valor_total = subItem.price_promotional;\r\n });\r\n\r\n item.valor_total_produtos = item.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n item.valor_total = item.valor_total_produtos * item.qtde;\r\n }\r\n });\r\n\r\n /* Produto (Original) */\r\n\r\n this.produtosOriginal.forEach((item) => {\r\n if (item.price_promotional > 0) {\r\n item.price_promotional = item.price_original;\r\n\r\n item.valor_total = item.price_promotional;\r\n } else {\r\n item.price = item.price_original;\r\n\r\n item.valor_total = item.price;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.price_promotional = subItem.price_original;\r\n\r\n subItem.valor_total = subItem.price_promotional;\r\n });\r\n\r\n item.valor_total_produtos = item.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n item.valor_total = item.valor_total_produtos * item.qtde;\r\n }\r\n });\r\n\r\n /* Carrinho */\r\n\r\n this.carrinho.forEach((item) => {\r\n if (item.price_promotional > 0) {\r\n item.price_promotional = item.price_original;\r\n\r\n item.valor_total = item.price_promotional * item.qtde;\r\n } else {\r\n item.price = item.price_original;\r\n\r\n item.valor_total = item.price * item.qtde;\r\n }\r\n\r\n if (item.id_campanha != null && item.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n item.produtos_vinculados.forEach((subItem) => {\r\n subItem.price_promotional = subItem.price_original;\r\n\r\n subItem.valor_total = subItem.price_promotional * subItem.qtde;\r\n });\r\n\r\n item.valor_total_produtos = item.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n item.valor_total = item.valor_total_produtos * item.qtde;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n definirPrazoPagamento() {\r\n if (this.formaPagamentoSelecionada != null) {\r\n this.prazoPagamentoSelecionado = this.prazosPagamento.find(prazoPagamento => prazoPagamento.padrao && prazoPagamento.id_prazopagamento_forma == this.formaPagamentoSelecionada.id); /* Padrão */\r\n\r\n if (this.prazoPagamentoSelecionado == null || !this.prazoPagamentoSelecionado.exibir) {\r\n this.prazosPagamento.forEach((item) => {\r\n if (item.exibir) {\r\n this.prazoPagamentoSelecionado = item;\r\n\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.aplicarFatorFinanceiro();\r\n }\r\n\r\n validarPrazoPagamento() {\r\n if (this.formaPagamentoSelecionada != null) {\r\n this.prazosPagamento.forEach((item) => {\r\n if (this.carrinhoValor >= item.valorinicial) {\r\n if (this.formaPagamentoSelecionada.id == item.id_prazopagamento_forma) {\r\n if (this.prazoPagamentoParcelaSelecionado != null) {\r\n if (item.descricao_qt_parcelas == this.prazoPagamentoParcelaSelecionado.descricao_qt_parcelas) {\r\n item.exibir = true;\r\n } else {\r\n item.exibir = false;\r\n }\r\n } else {\r\n item.exibir = true;\r\n }\r\n } else {\r\n item.exibir = false;\r\n }\r\n } else {\r\n item.exibir = false;\r\n }\r\n });\r\n }\r\n\r\n if (this.prazoPagamentoSelecionado != null) {\r\n if (!this.prazoPagamentoSelecionado.exibir) {\r\n this.definirPrazoPagamento();\r\n }\r\n } else {\r\n this.definirPrazoPagamento();\r\n }\r\n }\r\n\r\n /* Prazo de Pagamento (Parcelas) */\r\n\r\n alterarPrazoPagamentoParcela(id_prazo_pagamento: string) {\r\n let idSelecionado = parseInt(id_prazo_pagamento);\r\n\r\n if (idSelecionado > 0) {\r\n this.prazoPagamentoParcelaSelecionado = this.prazosPagamentoParcela.find(prazoPagamentoParcela => prazoPagamentoParcela.idprazopagamento == idSelecionado);\r\n } else {\r\n this.definirPrazoPagamentoParcela();\r\n }\r\n\r\n this.aplicarFatorFinanceiro();\r\n this.totalizarCarrinho();\r\n }\r\n\r\n definirPrazoPagamentoParcela() {\r\n this.prazosPagamentoParcela.forEach((item) => {\r\n if (item.exibir) {\r\n this.prazoPagamentoParcelaSelecionado = item;\r\n\r\n return;\r\n }\r\n });\r\n }\r\n\r\n validarPrazoPagamentoParcela() {\r\n if (this.configuracao != null && this.configuracao.b2b_seleciona_parcelas) {\r\n if (this.formaPagamentoSelecionada != null) {\r\n this.prazosPagamentoParcela.forEach((item) => {\r\n item.exibir = false;\r\n\r\n if (this.carrinhoValor >= item.valorinicial) {\r\n if (this.formaPagamentoSelecionada.id == item.id_prazopagamento_forma) {\r\n let prazoPagamentoParcela = this.prazosPagamentoParcela.find(prazoPagamentoParcela => prazoPagamentoParcela.descricao_qt_parcelas == item.descricao_qt_parcelas && prazoPagamentoParcela.id_prazopagamento_forma == item.id_prazopagamento_forma && prazoPagamentoParcela.exibir);\r\n\r\n if (prazoPagamentoParcela == null) {\r\n item.exibir = true;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.prazosPagamentoParcela.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a[\"descricao_qt_parcelas\"], b[\"descricao_qt_parcelas\"]);\r\n });\r\n }\r\n\r\n if (this.prazoPagamentoParcelaSelecionado != null) {\r\n if (!this.prazoPagamentoParcelaSelecionado.exibir) {\r\n this.definirPrazoPagamentoParcela();\r\n }\r\n } else {\r\n this.definirPrazoPagamentoParcela();\r\n }\r\n }\r\n }\r\n\r\n /* Qtde */\r\n\r\n decremetarQtde(id?: number, id_campanha?: number) {\r\n if (this.produtoSelecionado != null) {\r\n /* Produto Selecionado */\r\n\r\n if (id != null && id_campanha != null) {\r\n /* Campanhas (Produtos Vinculados) */\r\n\r\n let produtoCampanha = this.produtos.find(produto => produto.id_campanha == id_campanha);\r\n\r\n if (produtoCampanha != null) {\r\n /* Produtos */\r\n\r\n let produtoVinculado = produtoCampanha.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == id);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.qtde--;\r\n\r\n if (produtoVinculado.qtde <= 0 || produtoVinculado.qtde < produtoVinculado.qtde_minima) {\r\n produtoVinculado.qtde = produtoVinculado.qtde_minima;\r\n }\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.validarQtdeMinimaCombo();\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.localizarProdutoBonificado();\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n /* Totalizar (Produtos Vinculados) */\r\n\r\n produtoVinculado.valor_total = produtoVinculado.price_promotional * produtoVinculado.qtde;\r\n\r\n this.totalizarCampanha();\r\n }\r\n }\r\n } else {\r\n /* Produtos */\r\n\r\n if (this.produtoSelecionado.categoria != this.campanhas) {\r\n this.qtde--;\r\n\r\n if (this.qtde < 1) {\r\n this.qtde = 1;\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.permitir_produtos_sem_estoque == \"N\" && this.produtoSelecionado.estoque < this.qtde) {\r\n this.toastr.error(\"\", \"Qtde acima do estoque! Disponível: \" + this.produtoSelecionado.estoque);\r\n\r\n this.qtde = this.produtoSelecionado.estoque;\r\n }\r\n\r\n this.validarQtdePromocional(null);\r\n } else {\r\n if (this.produtoSelecionado.qtde_minima_atual < this.produtoSelecionado.qtde_minima) {\r\n this.qtde = 1;\r\n\r\n this.toastr.error(\"\", \"Qtde Mínima de Itens inválida!\");\r\n\r\n return;\r\n } else {\r\n this.qtde--;\r\n\r\n if (this.qtde < 1) {\r\n this.qtde = 1;\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n }\r\n }\r\n\r\n /* Totalizar */\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.valor_total_produtos * this.qtde;\r\n } else {\r\n if (this.produtoSelecionado.price_promotional > 0) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price_promotional * this.qtde;\r\n } else {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price * this.qtde;\r\n }\r\n }\r\n\r\n this.totalizarCarrinho();\r\n }\r\n } else {\r\n /* Produto Carrinho */\r\n\r\n if (id_campanha != null) {\r\n /* Campanhas */\r\n\r\n let produtoCampanhaCarrinho = this.carrinho.find(carrinho => carrinho.id_campanha == id_campanha);\r\n\r\n if (produtoCampanhaCarrinho != null) {\r\n produtoCampanhaCarrinho.qtde--;\r\n\r\n if (produtoCampanhaCarrinho.qtde < 1) {\r\n produtoCampanhaCarrinho.qtde = 1;\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(id_campanha);\r\n\r\n /* Totalizar */\r\n\r\n if (produtoCampanhaCarrinho.grupo_estoque == this.combo) {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.valor_total_produtos * produtoCampanhaCarrinho.qtde;\r\n } else {\r\n if (produtoCampanhaCarrinho.price_promotional > 0) {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.price_promotional * produtoCampanhaCarrinho.qtde;\r\n } else {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.price * produtoCampanhaCarrinho.qtde;\r\n }\r\n }\r\n }\r\n } else if (id != null) {\r\n /* Produtos */\r\n\r\n let produtoCarrinho = this.carrinho.find(carrinho => carrinho.id == id);\r\n\r\n if (produtoCarrinho != null) {\r\n produtoCarrinho.qtde--;\r\n\r\n if (produtoCarrinho.qtde < 1) {\r\n produtoCarrinho.qtde = 1;\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.permitir_produtos_sem_estoque == \"N\" && produtoCarrinho.estoque < produtoCarrinho.qtde) {\r\n this.toastr.error(\"\", \"Qtde acima do estoque! Disponível: \" + produtoCarrinho.estoque);\r\n\r\n produtoCarrinho.qtde = produtoCarrinho.estoque;\r\n }\r\n\r\n if (produtoCarrinho.categoria != this.campanhas) {\r\n this.validarQtdePromocional(id);\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n /* Totalizar */\r\n\r\n if (produtoCarrinho.grupo_estoque == this.combo) {\r\n produtoCarrinho.valor_total = produtoCarrinho.valor_total_produtos * produtoCarrinho.qtde;\r\n } else {\r\n if (produtoCarrinho.price_promotional > 0) {\r\n produtoCarrinho.valor_total = produtoCarrinho.price_promotional * produtoCarrinho.qtde;\r\n } else {\r\n produtoCarrinho.valor_total = produtoCarrinho.price * produtoCarrinho.qtde;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.totalizarCarrinho();\r\n }\r\n }\r\n\r\n incrementarQtde(id?: number, id_campanha?: number) {\r\n if (this.produtoSelecionado != null) {\r\n /* Produto Selecionado */\r\n\r\n if (id != null && id_campanha != null) {\r\n /* Campanhas (Produtos Vinculados) */\r\n\r\n let produtoCampanha = this.produtos.find(produto => produto.id_campanha == id_campanha);\r\n\r\n if (produtoCampanha != null) {\r\n /* Produtos */\r\n\r\n let produtoVinculado = produtoCampanha.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == id);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.qtde++;\r\n\r\n if (produtoVinculado.qtde > 99999) {\r\n this.toastr.error(\"\", \"Qtde inválida!\");\r\n\r\n produtoVinculado.qtde = 1;\r\n }\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.validarQtdeMinimaCombo();\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.localizarProdutoBonificado();\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n /* Totalizar (Produtos Vinculados) */\r\n\r\n produtoVinculado.valor_total = produtoVinculado.price_promotional * produtoVinculado.qtde;\r\n\r\n this.totalizarCampanha();\r\n }\r\n }\r\n } else {\r\n /* Produtos */\r\n\r\n if (this.produtoSelecionado.categoria != this.campanhas) {\r\n this.qtde++;\r\n\r\n if (this.qtde > 99999) {\r\n this.toastr.error(\"\", \"Qtde inválida!\");\r\n\r\n this.qtde = 1;\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.permitir_produtos_sem_estoque == \"N\" && this.produtoSelecionado.estoque < this.qtde) {\r\n this.toastr.error(\"\", \"Qtde acima do estoque! Disponível: \" + this.produtoSelecionado.estoque);\r\n\r\n this.qtde = this.produtoSelecionado.estoque;\r\n }\r\n\r\n this.validarQtdePromocional(null);\r\n } else {\r\n if (this.produtoSelecionado.qtde_minima_atual < this.produtoSelecionado.qtde_minima) {\r\n this.qtde = 1;\r\n\r\n this.toastr.error(\"\", \"Qtde Mínima de Itens inválida!\");\r\n\r\n return;\r\n } else {\r\n this.qtde++;\r\n\r\n if (this.qtde > 99999) {\r\n this.toastr.error(\"\", \"Qtde inválida!\");\r\n\r\n this.qtde = 1;\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n }\r\n }\r\n\r\n /* Totalizar */\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.valor_total_produtos * this.qtde;\r\n } else {\r\n if (this.produtoSelecionado.price_promotional > 0) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price_promotional * this.qtde;\r\n } else {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price * this.qtde;\r\n }\r\n }\r\n\r\n this.totalizarCarrinho();\r\n }\r\n } else {\r\n /* Produto Carrinho */\r\n\r\n if (id_campanha != null) {\r\n /* Campanhas */\r\n\r\n let produtoCampanhaCarrinho = this.carrinho.find(carrinho => carrinho.id_campanha == id_campanha);\r\n\r\n if (produtoCampanhaCarrinho != null) {\r\n produtoCampanhaCarrinho.qtde++;\r\n\r\n if (produtoCampanhaCarrinho.qtde > 99999) {\r\n this.toastr.error(\"\", \"Qtde inválida!\");\r\n\r\n produtoCampanhaCarrinho.qtde = 1;\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(id_campanha);\r\n\r\n /* Totalizar */\r\n\r\n if (produtoCampanhaCarrinho.grupo_estoque == this.combo) {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.valor_total_produtos * produtoCampanhaCarrinho.qtde;\r\n } else {\r\n if (produtoCampanhaCarrinho.price_promotional > 0) {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.price_promotional * produtoCampanhaCarrinho.qtde;\r\n } else {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.price * produtoCampanhaCarrinho.qtde;\r\n }\r\n }\r\n }\r\n } else if (id != null) {\r\n /* Produtos */\r\n\r\n let produtoCarrinho = this.carrinho.find(carrinho => carrinho.id == id);\r\n\r\n if (produtoCarrinho != null) {\r\n produtoCarrinho.qtde++;\r\n\r\n if (produtoCarrinho.qtde > 99999) {\r\n this.toastr.error(\"\", \"Qtde inválida!\");\r\n\r\n produtoCarrinho.qtde = 1;\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.permitir_produtos_sem_estoque == \"N\" && produtoCarrinho.estoque < produtoCarrinho.qtde) {\r\n this.toastr.error(\"\", \"Qtde acima do estoque! Disponível: \" + produtoCarrinho.estoque);\r\n\r\n produtoCarrinho.qtde = produtoCarrinho.estoque;\r\n }\r\n\r\n if (produtoCarrinho.categoria != this.campanhas) {\r\n this.validarQtdePromocional(id);\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n /* Totalizar */\r\n\r\n if (produtoCarrinho.grupo_estoque == this.combo) {\r\n produtoCarrinho.valor_total = produtoCarrinho.valor_total_produtos * produtoCarrinho.qtde;\r\n } else {\r\n if (produtoCarrinho.price_promotional > 0) {\r\n produtoCarrinho.valor_total = produtoCarrinho.price_promotional * produtoCarrinho.qtde;\r\n } else {\r\n produtoCarrinho.valor_total = produtoCarrinho.price * produtoCarrinho.qtde;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.totalizarCarrinho();\r\n }\r\n }\r\n\r\n /* Qtde (Bonificação) */\r\n\r\n definirQtdeBonificacaoMultiplicavel(id_campanha?: number) {\r\n if (this.produtoSelecionado != null) {\r\n /* Produto Selecionado */\r\n\r\n if (this.produtoSelecionado.preco_bonificacao == \"B\") {\r\n let qtdeBonificacaoMultiplicavel: number = 0;\r\n\r\n if (this.produtoSelecionado.bonificacao_multiplicavel) {\r\n /* Multiplicável */\r\n\r\n if (this.produtoSelecionado.qtde_minima > 0) {\r\n qtdeBonificacaoMultiplicavel = this.produtoSelecionado.qtde_minima_atual / this.produtoSelecionado.qtde_minima;\r\n\r\n qtdeBonificacaoMultiplicavel = parseInt(qtdeBonificacaoMultiplicavel.toString()) * this.qtde;\r\n\r\n if (qtdeBonificacaoMultiplicavel < 1) {\r\n qtdeBonificacaoMultiplicavel = 1;\r\n }\r\n } else {\r\n qtdeBonificacaoMultiplicavel = this.qtde;\r\n }\r\n\r\n this.produtoSelecionado.qtde_bonificacao_multiplicavel = qtdeBonificacaoMultiplicavel;\r\n } else {\r\n this.produtoSelecionado.qtde_bonificacao_multiplicavel = 1;\r\n }\r\n }\r\n } else {\r\n /* Produto Carrinho */\r\n\r\n if (id_campanha != null) {\r\n /* Campanhas */\r\n\r\n let produtoCampanhaCarrinho = this.carrinho.find(carrinho => carrinho.id_campanha == id_campanha);\r\n\r\n if (produtoCampanhaCarrinho != null) {\r\n if (produtoCampanhaCarrinho.preco_bonificacao == \"B\") {\r\n let qtdeBonificacaoMultiplicavel: number = 0;\r\n\r\n if (produtoCampanhaCarrinho.bonificacao_multiplicavel) {\r\n /* Multiplicável */\r\n\r\n if (produtoCampanhaCarrinho.qtde_minima > 0) {\r\n qtdeBonificacaoMultiplicavel = produtoCampanhaCarrinho.qtde_minima_atual / produtoCampanhaCarrinho.qtde_minima;\r\n\r\n qtdeBonificacaoMultiplicavel = parseInt(qtdeBonificacaoMultiplicavel.toString()) * produtoCampanhaCarrinho.qtde;\r\n\r\n if (qtdeBonificacaoMultiplicavel < 1) {\r\n qtdeBonificacaoMultiplicavel = 1;\r\n }\r\n } else {\r\n qtdeBonificacaoMultiplicavel = produtoCampanhaCarrinho.qtde;\r\n }\r\n\r\n if (!produtoCampanhaCarrinho.bonificacao_selecionavel) {\r\n produtoCampanhaCarrinho.qtde_bonificacao_multiplicavel = qtdeBonificacaoMultiplicavel;\r\n }\r\n } else {\r\n produtoCampanhaCarrinho.qtde_bonificacao_multiplicavel = 1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n localizarProdutoBonificado() {\r\n if (this.produtoSelecionado != null) {\r\n if (this.produtoSelecionado.preco_bonificacao == \"B\" && !this.produtoSelecionado.bonificacao_selecionavel) {\r\n if (this.produtoSelecionado.produtos_vinculados != null) {\r\n /* Produtos Vinculados */\r\n\r\n this.produtoSelecionado.produtos_vinculados.forEach((item) => {\r\n item.bonificacao_selecionada = false\r\n });\r\n\r\n let produtosVinculados = this.produtoSelecionado.produtos_vinculados.filter(produtosVinculados => produtosVinculados.qtde > 0 && !produtosVinculados.bonificacao);\r\n\r\n produtosVinculados = JSON.parse(JSON.stringify(produtosVinculados));\r\n\r\n if (produtosVinculados.length > 0) {\r\n produtosVinculados.sort((a, b) => {\r\n const compare = (v1, v2) => v1 == null ? -1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n\r\n return compare(a[\"price_promotional\"], b[\"price_promotional\"]);\r\n });\r\n\r\n let produtoVinculado = this.produtoSelecionado.produtos_vinculados.find(produtoVinculado => produtoVinculado.id == produtosVinculados[0].id);\r\n\r\n if (produtoVinculado != null) {\r\n produtoVinculado.bonificacao_selecionada = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Qtde (Combo) */\r\n\r\n validarQtdeMinimaCombo() {\r\n if (this.produtoSelecionado != null) {\r\n let qtdeMinimaAtual: number = this.produtoSelecionado.produtos_vinculados.filter(produtosVinculados => !produtosVinculados.bonificacao).reduce((sum, current) => (sum + current.qtde), 0);\r\n\r\n this.produtoSelecionado.qtde_minima_atual = qtdeMinimaAtual;\r\n }\r\n }\r\n\r\n validarQtdeProduto(id?: number, id_campanha?: number) {\r\n if (this.produtoSelecionado != null) {\r\n /* Produto Selecionado */\r\n\r\n if (id != null && id_campanha != null) {\r\n /* Campanhas (Produtos Vinculados) */\r\n\r\n let produtoCampanha = this.produtos.find(produto => produto.id_campanha == id_campanha);\r\n\r\n if (produtoCampanha != null) {\r\n /* Produtos */\r\n\r\n let produtoVinculado = produtoCampanha.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == id);\r\n\r\n if (produtoVinculado != null) {\r\n if (produtoVinculado.qtde_minima > 0) {\r\n if (produtoVinculado.qtde == null || produtoVinculado.qtde <= 0 || produtoVinculado.qtde > 99999 || produtoVinculado.qtde < produtoVinculado.qtde_minima) {\r\n produtoVinculado.qtde = produtoVinculado.qtde_minima;\r\n }\r\n }\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.validarQtdeMinimaCombo();\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.localizarProdutoBonificado();\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n /* Totalizar (Produtos Vinculados) */\r\n\r\n produtoVinculado.valor_total = produtoVinculado.price_promotional * produtoVinculado.qtde;\r\n\r\n this.totalizarCampanha();\r\n }\r\n }\r\n } else {\r\n /* Produtos */\r\n\r\n if (this.qtde == null || this.qtde <= 0 || this.qtde > 99999) {\r\n this.qtde = 1;\r\n }\r\n\r\n if (this.produtoSelecionado.categoria != this.campanhas) {\r\n this.validarQtdePromocional(null);\r\n } else {\r\n if (this.produtoSelecionado.qtde_minima_atual < this.produtoSelecionado.qtde_minima) {\r\n if (this.qtde > 1) {\r\n this.qtde = 1;\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n this.toastr.error(\"\", \"Qtde Mínima de Itens inválida!\");\r\n\r\n return;\r\n }\r\n } else {\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n }\r\n }\r\n\r\n /* Totalizar */\r\n\r\n if (this.produtoSelecionado.grupo_estoque == this.combo) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.valor_total_produtos * this.qtde;\r\n } else {\r\n if (this.produtoSelecionado.price_promotional > 0) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price_promotional * this.qtde;\r\n } else {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price * this.qtde;\r\n }\r\n }\r\n\r\n this.totalizarCarrinho();\r\n }\r\n } else {\r\n /* Produto Carrinho */\r\n\r\n if (id_campanha != null) {\r\n /* Campanhas */\r\n\r\n let produtoCampanhaCarrinho = this.carrinho.find(carrinho => carrinho.id_campanha == id_campanha);\r\n\r\n if (produtoCampanhaCarrinho != null) {\r\n if (produtoCampanhaCarrinho.qtde == null || produtoCampanhaCarrinho.qtde <= 0 || produtoCampanhaCarrinho.qtde > 99999) {\r\n produtoCampanhaCarrinho.qtde = 1;\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(id_campanha);\r\n\r\n /* Totalizar */\r\n\r\n if (produtoCampanhaCarrinho.grupo_estoque == this.combo) {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.valor_total_produtos * produtoCampanhaCarrinho.qtde;\r\n } else {\r\n if (produtoCampanhaCarrinho.price_promotional > 0) {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.price_promotional * produtoCampanhaCarrinho.qtde;\r\n } else {\r\n produtoCampanhaCarrinho.valor_total = produtoCampanhaCarrinho.price * produtoCampanhaCarrinho.qtde;\r\n }\r\n }\r\n }\r\n } else if (id != null) {\r\n /* Produtos */\r\n\r\n let produtoCarrinho = this.carrinho.find(carrinho => carrinho.id == id);\r\n\r\n if (produtoCarrinho != null) {\r\n if (produtoCarrinho.qtde == null || produtoCarrinho.qtde <= 0 || produtoCarrinho.qtde > 99999) {\r\n produtoCarrinho.qtde = 1;\r\n }\r\n\r\n if (this.configuracao != null && this.configuracao.permitir_produtos_sem_estoque == \"N\" && produtoCarrinho.estoque < produtoCarrinho.qtde) {\r\n this.toastr.error(\"\", \"Qtde acima do estoque! Disponível: \" + produtoCarrinho.estoque);\r\n\r\n produtoCarrinho.qtde = produtoCarrinho.estoque;\r\n }\r\n\r\n if (produtoCarrinho.categoria != this.campanhas) {\r\n this.validarQtdePromocional(id);\r\n }\r\n\r\n /* Bonificação */\r\n\r\n this.definirQtdeBonificacaoMultiplicavel(null);\r\n\r\n /* Totalizar */\r\n\r\n if (produtoCarrinho.grupo_estoque == this.combo) {\r\n produtoCarrinho.valor_total = produtoCarrinho.valor_total_produtos * produtoCarrinho.qtde;\r\n } else {\r\n if (produtoCarrinho.price_promotional > 0) {\r\n produtoCarrinho.valor_total = produtoCarrinho.price_promotional * produtoCarrinho.qtde;\r\n } else {\r\n produtoCarrinho.valor_total = produtoCarrinho.price * produtoCarrinho.qtde;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.totalizarCarrinho();\r\n }\r\n }\r\n\r\n validarQtdePromocional(id?: number) {\r\n if (this.produtoSelecionado != null) {\r\n /* Produto Selecionado */\r\n\r\n if (this.produtoSelecionado.tabela_promocao_qtde.length > 0) {\r\n let precoPromocional: number = 0;\r\n\r\n this.produtoSelecionado.tabela_promocao_qtde.forEach((item) => {\r\n if (item.qtd_minima <= this.qtde) {\r\n precoPromocional = item.preco;\r\n }\r\n });\r\n\r\n let porcentagemPromocional: number = 0;\r\n\r\n if (precoPromocional > 0) {\r\n porcentagemPromocional = (1 - (this.produtoSelecionado.price / precoPromocional)) * 100;\r\n\r\n this.produtoSelecionado.price_promotional_percentual = porcentagemPromocional;\r\n\r\n this.produtoSelecionado.price_promotional = precoPromocional;\r\n } else if (this.produtoSelecionado.price_promotional_original > 0) {\r\n porcentagemPromocional = (1 - (this.produtoSelecionado.price / this.produtoSelecionado.price_promotional_original)) * 100;\r\n\r\n this.produtoSelecionado.price_promotional_percentual = porcentagemPromocional;\r\n\r\n this.produtoSelecionado.price_promotional = this.produtoSelecionado.price_promotional_original;\r\n } else {\r\n this.produtoSelecionado.price_promotional_percentual = 0;\r\n\r\n this.produtoSelecionado.price_promotional = 0;\r\n }\r\n }\r\n } else if (id != null) {\r\n /* Produto Carrinho */\r\n\r\n let produto = this.carrinho.find(carrinho => carrinho.id == id);\r\n\r\n if (produto != null) {\r\n if (produto.tabela_promocao_qtde.length > 0) {\r\n let precoPromocional: number = 0;\r\n\r\n produto.tabela_promocao_qtde.forEach((item) => {\r\n if (item.qtd_minima <= produto.qtde) {\r\n precoPromocional = item.preco;\r\n }\r\n });\r\n\r\n let porcentagemPromocional: number = 0;\r\n\r\n if (precoPromocional > 0) {\r\n porcentagemPromocional = (1 - (produto.price / precoPromocional)) * 100;\r\n\r\n produto.price_promotional_percentual = porcentagemPromocional;\r\n\r\n produto.price_promotional = precoPromocional;\r\n } else if (produto.price_promotional_original > 0) {\r\n porcentagemPromocional = (1 - (produto.price / produto.price_promotional_original)) * 100;\r\n\r\n produto.price_promotional_percentual = porcentagemPromocional;\r\n\r\n produto.price_promotional = produto.price_promotional_original;\r\n } else {\r\n produto.price_promotional_percentual = 0;\r\n\r\n produto.price_promotional = 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* Sessão */\r\n\r\n validarAcesso() : boolean {\r\n if (!this.authService.statusAutorizacao()) {\r\n this.authService.desautorizar();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /* Totalizar */\r\n\r\n totalizarCampanha() {\r\n if (this.produtoSelecionado != null) {\r\n this.produtoSelecionado.valor_total_produtos = this.produtoSelecionado.produtos_vinculados.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.valor_total_produtos * this.qtde;\r\n }\r\n }\r\n\r\n totalizarCarrinho() {\r\n this.carrinhoValor = this.carrinho.reduce((sum, current) => (sum + current.valor_total), 0);\r\n\r\n this.validarPrazoPagamentoParcela();\r\n this.validarPrazoPagamento();\r\n }\r\n\r\n /* Variação */\r\n\r\n selecionarVariacao(id: string) {\r\n this.variacaoSelecionada = parseInt(id);\r\n\r\n let produtoVinculado = this.produtoSelecionado.produtos_vinculados.find(produtosVinculados => produtosVinculados.id == this.variacaoSelecionada);\r\n\r\n if (produtoVinculado != null) {\r\n this.produtoSelecionado.price = produtoVinculado.price;\r\n this.produtoSelecionado.price_promotional = produtoVinculado.price_promotional;\r\n\r\n if (this.produtoSelecionado.price_promotional > 0) {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price_promotional * this.qtde;\r\n } else {\r\n this.produtoSelecionado.valor_total = this.produtoSelecionado.price * this.qtde;\r\n }\r\n }\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVkZWZpbmlyLXNlbmhhL3JlZGVmaW5pci1zZW5oYS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { Animacao } from '../../core/tools/animacao';\r\n\r\n/* Services */\r\n\r\nimport { AuthService } from '../../core/services/auth/auth.service';\r\nimport { ClienteService } from '../../core/services/clientes/cliente.service';\r\n\r\n@Component({\r\n selector: 'app-redefinir-senha',\r\n templateUrl: './redefinir-senha.component.html',\r\n styleUrls: ['./redefinir-senha.component.css'],\r\n preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class RedefinirSenhaComponent implements OnInit {\r\n formRecuperarSenha: FormGroup;\r\n\r\n enviado: boolean = false;\r\n\r\n /* Logomarca */\r\n\r\n logomarca: string = \"\";\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService,\r\n private formBuilder: FormBuilder,\r\n private clienteService: ClienteService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.formRecuperarSenha = this.formBuilder.group({\r\n nova_senha: [\"\", Validators.required],\r\n confirmar_senha: [\"\", Validators.required]\r\n });\r\n\r\n /* Empresa */\r\n\r\n if (window.location.href.indexOf(\"atrialub\") > -1) {\r\n this.logomarca = \"assets/logo_portal_atrialub.jpeg\";\r\n } else if (window.location.href.indexOf(\"brazmax\") > -1) {\r\n this.logomarca = \"assets/logo_portal_brazmax.jpeg\";\r\n } else if (window.location.href.indexOf(\"brudovan\") > -1) {\r\n this.logomarca = \"assets/logo_portal_brudovan.png\";\r\n } else if (window.location.href.indexOf(\"lubtrol\") > -1) {\r\n this.logomarca = \"assets/logo_portal_lubtrol.png\";\r\n } else {\r\n this.logomarca = \"assets/logo_portal.jpeg\";\r\n }\r\n }\r\n\r\n get f() {\r\n return this.formRecuperarSenha.controls;\r\n }\r\n\r\n /* Ações */\r\n\r\n onSubmit() {\r\n this.enviado = true;\r\n\r\n if (this.formRecuperarSenha.valid) {\r\n if (this.formRecuperarSenha.controls[\"nova_senha\"].value != this.formRecuperarSenha.controls[\"confirmar_senha\"].value) {\r\n this.formRecuperarSenha.controls[\"confirmar_senha\"].setErrors({ mismatch: true });\r\n } else {\r\n let alterarSenha: boolean = false;\r\n\r\n this.clienteService.updatePasswordById(this.formRecuperarSenha.controls[\"nova_senha\"].value).subscribe(\r\n alterarSenhas => alterarSenha = alterarSenhas,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (alterarSenha) {\r\n this.router.navigate([\"/produtos\"]);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n cancelar() {\r\n this.authService.desautorizar();\r\n }\r\n}\r\n","module.exports = \".rodape {\\r\\n color: #fff;\\r\\n border-top: 1px solid #dee2e6;\\r\\n}\\r\\n.rodape_icone {\\r\\n width: 25px;\\r\\n}\\r\\n.rodape_dev {\\r\\n font-size: 0.8rem;\\r\\n}\\r\\n.rodape_dev_link {\\r\\n color: rgba(255, 255, 255, 0.5);\\r\\n}\\r\\n.rodape_dev_link:hover {\\r\\n text-decoration: none;\\r\\n color: rgba(255, 255, 255, 0.75);\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yb2RhcGUvcm9kYXBlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFXO0VBQ1gsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsK0JBQStCO0FBQ2pDO0FBQ0U7SUFDRSxxQkFBcUI7SUFDckIsZ0NBQWdDO0VBQ2xDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yb2RhcGUvcm9kYXBlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm9kYXBlIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNjtcclxufVxyXG4ucm9kYXBlX2ljb25lIHtcclxuICB3aWR0aDogMjVweDtcclxufVxyXG4ucm9kYXBlX2RldiB7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbn1cclxuLnJvZGFwZV9kZXZfbGluayB7XHJcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxufVxyXG4gIC5yb2RhcGVfZGV2X2xpbms6aG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XHJcbiAgfVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-rodape',\r\n templateUrl: './rodape.component.html',\r\n styleUrls: ['./rodape.component.css'],\r\n preserveWhitespaces: false\r\n})\r\n\r\nexport class RodapeComponent implements OnInit {\r\n texto_informativo: string = \"\";\r\n\r\n /* Storage */\r\n\r\n guidclientenapis: string = localStorage.getItem(\"guidclientenapis\");\r\n nm_empresa: string = localStorage.getItem(\"nm_empresa\");\r\n empresa_fone: string = localStorage.getItem(\"empresa_fone\");\r\n empresa_endereco_bairro: string = localStorage.getItem(\"empresa_endereco_bairro\");\r\n empresa_cidade_estado: string = localStorage.getItem(\"empresa_cidade_estado\");\r\n empresa_email: string = localStorage.getItem(\"empresa_email\");\r\n b2b_cor_primaria: string = localStorage.getItem(\"b2b_cor_primaria\");\r\n\r\n constructor(\r\n private domSanitizer: DomSanitizer\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.guidclientenapis == \"5c430e97-cea3-43ca-bfae-dcc4f8f558cb\") {\r\n this.texto_informativo = \"\";\r\n }\r\n }\r\n}\r\n","module.exports = \"/* WhatsApp */\\r\\n\\r\\n.whatsapp {\\r\\n position: fixed;\\r\\n bottom: 10px;\\r\\n right: 10px;\\r\\n}\\r\\n\\r\\n.whatsapp:hover {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.whatsapp_imagem {\\r\\n width: 60px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zdXBvcnRlL3N1cG9ydGUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxhQUFhOztBQUViO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBQ0U7SUFDRSxlQUFlO0VBQ2pCOztBQUVGO0VBQ0UsV0FBVztBQUNiIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zdXBvcnRlL3N1cG9ydGUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFdoYXRzQXBwICovXHJcblxyXG4ud2hhdHNhcHAge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBib3R0b206IDEwcHg7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbn1cclxuICAud2hhdHNhcHA6aG92ZXIge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbi53aGF0c2FwcF9pbWFnZW0ge1xyXG4gIHdpZHRoOiA2MHB4O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-suporte',\r\n templateUrl: './suporte.component.html',\r\n styleUrls: ['./suporte.component.css'],\r\n preserveWhitespaces: false\r\n})\r\n\r\nexport class SuporteComponent implements OnInit {\r\n /* Storage */\r\n\r\n link_whatsapp: string = localStorage.getItem(\"link_whatsapp\");\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n abrirLink() {\r\n window.open(this.link_whatsapp, \"_blank\");\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdGVuaG8taW50ZXJlc3NlL3RlbmhvLWludGVyZXNzZS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Animacao } from '../../core/tools/animacao';\r\n\r\n/* Services */\r\n\r\nimport { NovoInteresseService } from '../../core/services/novos-interesses/novo-interesse.service';\r\n\r\n/* Models */\r\n\r\nimport { NovoInteresse } from '../../core/models/novos-interesses/novo-interesse';\r\n\r\n@Component({\r\n selector: 'app-tenho-interesse',\r\n templateUrl: './tenho-interesse.component.html',\r\n styleUrls: ['./tenho-interesse.component.css'],\r\n preserveWhitespaces: false,\r\n animations: [Animacao]\r\n})\r\n\r\nexport class TenhoInteresseComponent implements OnInit {\r\n /* Dados */\r\n\r\n novoInteresse: NovoInteresse = null;\r\n\r\n /* Logomarca */\r\n\r\n logomarca: string = \"\";\r\n\r\n constructor(\r\n private router: Router,\r\n private novoInteresseService: NovoInteresseService\r\n ) { }\r\n\r\n ngOnInit() {\r\n /* Empresa */\r\n\r\n if (window.location.href.indexOf(\"atrialub\") > -1) {\r\n this.logomarca = \"assets/logo_portal_atrialub.jpeg\";\r\n } else if (window.location.href.indexOf(\"brudovan\") > -1) {\r\n this.logomarca = \"assets/logo_portal_brudovan.png\";\r\n } else if (window.location.href.indexOf(\"lubtrol\") > -1) {\r\n this.logomarca = \"assets/logo_portal_lubtrol.png\";\r\n } else {\r\n this.logomarca = \"assets/logo_portal.jpeg\";\r\n }\r\n\r\n this.carregarDados();\r\n }\r\n\r\n /* Dados */\r\n\r\n carregarDados() {\r\n let dominio: string = window.location.host;\r\n\r\n this.novoInteresseService.getByDominio(dominio).subscribe(\r\n novosInteresses => this.novoInteresse = novosInteresses,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n console.log(this.novoInteresse);\r\n }\r\n );\r\n }\r\n\r\n /* Ações */\r\n\r\n cadastrarme() {\r\n window.open(this.novoInteresse.link_botao, \"_blank\");\r\n }\r\n\r\n voltar() {\r\n this.router.navigate([\"/login\"]);\r\n }\r\n\r\n whatsapp() {\r\n window.open(this.novoInteresse.whatsapp, \"_blank\");\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n/* Services */\r\n\r\nimport { AuthService } from '../services/auth/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthGuard implements CanActivate {\r\n /* Storage */\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean {\r\n if (route.routeConfig.path == \"\" || route.routeConfig.path == \"login\") {\r\n let guidclientenapis: string = localStorage.getItem(\"guidclientenapis\");\r\n\r\n if (guidclientenapis != null && guidclientenapis != \"\") {\r\n this.router.navigate([\"/produtos\"]);\r\n\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (this.authService.statusAutorizacao()) {\r\n return true;\r\n } else {\r\n this.authService.desautorizar();\r\n\r\n return false;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map, finalize } from 'rxjs/operators';\r\n\r\nimport { ListenerService } from '../services/listener/listener.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ListenerInterceptor implements HttpInterceptor {\r\n private qtdeRequisicoes: number = 0;\r\n\r\n constructor(\r\n private listenerService: ListenerService\r\n ) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n if (!req.reportProgress) {\r\n this.qtdeRequisicoes++;\r\n\r\n this.listenerService.atualizarRequisicoesPendentes(true);\r\n }\r\n\r\n return next.handle(req).pipe(\r\n map(event => {\r\n return event;\r\n }),\r\n finalize(() => {\r\n if (!req.reportProgress) {\r\n this.qtdeRequisicoes--;\r\n\r\n this.listenerService.atualizarRequisicoesPendentes(this.qtdeRequisicoes > 0);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","export class ControleAcessoCliente {\r\n public id: number;\r\n public idclient: number;\r\n public data_login: Date;\r\n\r\n constructor() { }\r\n}\r\n","export class PedidoItens {\r\n public id: number;\r\n public order_id: number;\r\n public product_id: number;\r\n public quantity: number;\r\n public unit_price: number;\r\n public unit_id: number;\r\n public is_active: boolean;\r\n public updated_at: string;\r\n public created_at: Date;\r\n public seller_id: number;\r\n public total: number;\r\n public order_item_id_no_app: number;\r\n public dt_ultima_atualizacao: Date;\r\n public id_sinc: number;\r\n public percentual_desconto: number;\r\n public preco_tabela: number;\r\n public descritivo_desconto: string;\r\n public flag_enviar_celular: string;\r\n public preco_reposicao: number;\r\n public ativo_bi: string;\r\n public dt_faturamento_erp: Date;\r\n public preco_faturado: number;\r\n public qtd_faturada: number;\r\n public id_kit_combo: string;\r\n public qtd_kit_combo: number;\r\n public versao_kit_combo: number;\r\n public id_lote: number;\r\n public fator_financeiro: number;\r\n public valor_imposto: number;\r\n public cod_tipopedvenda: string;\r\n public descritivo_desconto_especial: string;\r\n public observacao_item: string;\r\n\r\n public produto_codigo: string;\r\n public produto_nome: string;\r\n public referencia_cliente: string;\r\n public custo: number;\r\n public grupo_estoque: string;\r\n public nome_lote: string;\r\n public cod_lote: string;\r\n public estoque_lote: number;\r\n public validade_lote: Date;\r\n public preco_lote: number;\r\n\r\n constructor() { }\r\n}\r\n","import { MeiosPagamentoCartoesMercadoPagoRetorno } from \"../meios-pagamento/cartoes/mercado-pago/meios-pagamento-cartoes-mercado-pago-retorno\";\r\n\r\nexport class Pedido {\r\n public id: number;\r\n public client_id: number;\r\n public order_created_at: Date;\r\n public is_billed: boolean;\r\n public visit_id: number;\r\n public order_sent_on: Date;\r\n public order_canceled_on: Date;\r\n public is_active: boolean;\r\n public updated_at: string;\r\n public created_at: Date;\r\n public sale_channel_id: number;\r\n public is_quotation: boolean;\r\n public payment_condition_1: number;\r\n public payment_condition_2: number;\r\n public payment_condition_3: number;\r\n public payment_condition_4: number;\r\n public payment_condition_5: number;\r\n public payment_condition_6: number;\r\n public payment_condition_7: number;\r\n public seller_id: number;\r\n public exported_at: Date;\r\n public referencia_do_pedido_no_cliente: string;\r\n public dt_previsao_entrega: Date;\r\n public observacao_interna: string;\r\n public observacao_nf: string;\r\n public dt_aprovacao: Date;\r\n public dt_integracao: Date;\r\n public id_prazo_pagamento: number;\r\n public order_id_app: number;\r\n public dt_ultima_atualizacao: Date;\r\n public cd_transportadora: number;\r\n public status_aprovacao_gestor: string;\r\n public status_aprovacao_master: string;\r\n public dt_liberacao_gestor: Date;\r\n public dt_liberacao_master: Date;\r\n public percentual_desconto: number;\r\n public id_sinc: number;\r\n public cod_tipopedvenda: string;\r\n public id_tipo_frete: number;\r\n public ativo_bi: string;\r\n public master_seller_id: number;\r\n public flag_enviar_celular: string;\r\n public id_no_erp_do_cliente: number;\r\n public flag_fechou_pedido: string;\r\n public dt_faturamento_erp: Date;\r\n public flag_erro_integracao: string;\r\n public order_id_origem_bonificacao: number;\r\n public vlr_bonificacao: number;\r\n public qtd_itens_ativos: number;\r\n public tabela_utilizada: string;\r\n public order_ecommerce: number;\r\n public origem_pedido: string;\r\n public fullname: string;\r\n public celular: string;\r\n public email_real: string;\r\n public nome_equipe: string;\r\n public name: string;\r\n public ie: string;\r\n public fantasia: string;\r\n public client_document: string;\r\n public endereco: string;\r\n public end_numero: string;\r\n public bairro: string;\r\n public cidade: string;\r\n public cep: string;\r\n public phone: string;\r\n public email: string;\r\n public nm_transportadora: string;\r\n public prazo_pagamento: string;\r\n public tipo_venda: string;\r\n public id_forma_pagamento: number;\r\n public dt_validade: Date;\r\n public id_local_entrega: number;\r\n public status_aprovacao_diretor: string;\r\n public guidclientenapis: string;\r\n public mp_pagamento: MeiosPagamentoCartoesMercadoPagoRetorno;\r\n\r\n constructor() { }\r\n}\r\n","export class ProdutoDisponibilidade {\r\n public created_at: Date;\r\n public client_id_app: number;\r\n public product_id: number;\r\n public qtde: number;\r\n public flag_notificado: boolean;\r\n public id: number;\r\n public dt_ultima_atualizacao: Date;\r\n public produto_nome: string;\r\n\r\n constructor() { }\r\n}\r\n","export class ProdutoGrupo {\r\n constructor(\r\n public nome: string,\r\n public grupo: string,\r\n public ordem: number,\r\n public selecionado: boolean,\r\n public exibir: boolean\r\n ) { }\r\n}\r\n","import { ProdutoPromocional } from './produto-promocional';\r\n\r\nexport class ProdutoPromocionalAgrupado {\r\n public bonificacao: boolean;\r\n public cod_lote: string;\r\n public referencia_cliente: string;\r\n public produtoPromocional: ProdutoPromocional[];\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n/* Services */\r\n\r\nimport { CallCenterService } from '../call-center/call-center.service';\r\nimport { ClienteService } from '../clientes/cliente.service';\r\nimport { ConfiguracaoService } from '../configuracoes/configuracao.service';\r\nimport { ControleAcessoService } from '../controle-acessos/controle-acesso.service';\r\nimport { VendedorService } from '../vendedores/vendedor.service';\r\n\r\n/* Models */\r\n\r\nimport { CallCenterConfiguracao } from '../../models/call-center/call-center-configuracao';\r\nimport { Cliente } from '../../models/clientes/cliente';\r\nimport { ClienteEmpresa } from '../../models/clientes/cliente-empresa';\r\nimport { Configuracao } from '../../models/configuracoes/configuracao';\r\nimport { ControleAcessoCliente } from '../../models/controle-acessos/controle-acesso-cliente';\r\nimport { Vendedor } from '../../models/vendedores/vendedor';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService {\r\n /* Call Center */\r\n\r\n private callCenterConfiguracao: CallCenterConfiguracao = null;\r\n\r\n /* Clientes */\r\n\r\n private cliente: Cliente = null;\r\n\r\n /* Configurações */\r\n\r\n configuracao: Configuracao = null;\r\n\r\n /* Vendedores */\r\n\r\n private vendedor: Vendedor = null;\r\n\r\n catalogoEmitter = new EventEmitter();\r\n exibirNavBarEmitter = new EventEmitter();\r\n\r\n constructor(\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private callCenterService: CallCenterService,\r\n private clienteService: ClienteService,\r\n private configuracaoService: ConfiguracaoService,\r\n private controleAcessoService: ControleAcessoService,\r\n private vendedorService: VendedorService\r\n ) { }\r\n\r\n autorizar(documento: string, guidclientenapis: string, senha: string, clienteEmpresaSelecionado: ClienteEmpresa) {\r\n this.clienteService.getByLogin(documento, guidclientenapis, senha).subscribe(\r\n cliente => this.cliente = cliente,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.cliente == null) {\r\n this.toastr.error(\"\", \"Usuário inválido!\");\r\n\r\n this.exibirNavBarEmitter.emit(false);\r\n } else {\r\n /* Cliente (Endereço Completo) */\r\n\r\n this.cliente.name = this.cliente.name.trim();\r\n this.cliente.endereco_completo = \"\";\r\n\r\n if (this.cliente.tipo_logradouro != null) {\r\n this.cliente.endereco_completo = this.cliente.endereco_completo + this.cliente.tipo_logradouro.trim();\r\n }\r\n\r\n if (this.cliente.endereco != null) {\r\n this.cliente.endereco_completo = this.cliente.endereco_completo + \" \" + this.cliente.endereco.trim();\r\n }\r\n\r\n if (this.cliente.end_numero != null) {\r\n this.cliente.endereco_completo = this.cliente.endereco_completo + \", \" + this.cliente.end_numero.trim();\r\n }\r\n\r\n if (this.cliente.cidade != null) {\r\n this.cliente.endereco_completo = this.cliente.endereco_completo + \" / \" + this.cliente.cidade.trim();\r\n }\r\n\r\n this.cliente.endereco_completo = this.cliente.endereco_completo.trim().toUpperCase();\r\n\r\n /* Cliente (Empresa) */\r\n\r\n localStorage.setItem(\"nm_empresa\", clienteEmpresaSelecionado.nm_empresa.toString());\r\n\r\n if (clienteEmpresaSelecionado.empresa_fone != null) {\r\n localStorage.setItem(\"empresa_fone\", clienteEmpresaSelecionado.empresa_fone.toString());\r\n }\r\n\r\n if (clienteEmpresaSelecionado.empresa_endereco != null) {\r\n localStorage.setItem(\"empresa_endereco_bairro\", clienteEmpresaSelecionado.empresa_endereco.toString());\r\n\r\n if (clienteEmpresaSelecionado.empresa_bairro != null) {\r\n let empresa_endereco_bairro = localStorage.getItem(\"empresa_endereco_bairro\") + \" - \" + clienteEmpresaSelecionado.empresa_bairro;\r\n\r\n localStorage.setItem(\"empresa_endereco_bairro\", empresa_endereco_bairro.toString());\r\n }\r\n }\r\n\r\n if (clienteEmpresaSelecionado.empresa_cidade_estado != null) {\r\n localStorage.setItem(\"empresa_cidade_estado\", clienteEmpresaSelecionado.empresa_cidade_estado.toString());\r\n }\r\n\r\n if (clienteEmpresaSelecionado.empresa_email != null) {\r\n localStorage.setItem(\"empresa_email\", clienteEmpresaSelecionado.empresa_email.toString());\r\n }\r\n\r\n /* Cliente */\r\n\r\n localStorage.setItem(\"client_id_app\", this.cliente.client_id_app.toString());\r\n localStorage.setItem(\"guidclientenapis\", this.cliente.guidclientenapis.toString());\r\n localStorage.setItem(\"name\", this.cliente.name.toString());\r\n localStorage.setItem(\"endereco_completo\", this.cliente.endereco_completo.toString());\r\n localStorage.setItem(\"seller_id\", this.cliente.seller_id.toString());\r\n\r\n if (this.cliente.segment == null) {\r\n localStorage.setItem(\"segment\", \"\");\r\n } else {\r\n localStorage.setItem(\"segment\", this.cliente.segment.toString());\r\n }\r\n\r\n localStorage.setItem(\"client_document\", this.cliente.client_document.toString());\r\n\r\n if (this.cliente.b2b_margem_consumidor == null) {\r\n localStorage.setItem(\"b2b_margem_consumidor\", \"0\");\r\n } else {\r\n localStorage.setItem(\"b2b_margem_consumidor\", this.cliente.b2b_margem_consumidor.toString());\r\n }\r\n\r\n /* Configurações */\r\n\r\n this.configuracaoService.getByGuidClienteNapis().subscribe(\r\n configuracoes => this.configuracao = configuracoes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.configuracao != null) {\r\n if (this.configuracao.b2b_usa_como_orcamento == null) {\r\n localStorage.setItem(\"b2b_usa_como_orcamento\", \"false\");\r\n } else {\r\n localStorage.setItem(\"b2b_usa_como_orcamento\", this.configuracao.b2b_usa_como_orcamento.toString());\r\n }\r\n\r\n if (this.configuracao.mercadopago_public_token == null) {\r\n localStorage.setItem(\"mercadopago_public_token\", \"\");\r\n } else {\r\n localStorage.setItem(\"mercadopago_public_token\", this.configuracao.mercadopago_public_token.toString());\r\n }\r\n\r\n if (this.configuracao.b2b_cor_primaria == null) {\r\n localStorage.setItem(\"b2b_cor_primaria\", \"#0c4976\");\r\n } else {\r\n localStorage.setItem(\"b2b_cor_primaria\", this.configuracao.b2b_cor_primaria);\r\n }\r\n\r\n /* Call Center (Configuração) */\r\n\r\n this.callCenterService.getConfiguracaoByGuidClienteNapis().subscribe(\r\n callCenterConfiguracoes => this.callCenterConfiguracao = callCenterConfiguracoes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (this.callCenterConfiguracao != null) {\r\n localStorage.setItem(\"logomarca\", this.callCenterConfiguracao.logotipo.toString());\r\n\r\n /* Controle Acesso */\r\n\r\n let controleAcessoCliente = new ControleAcessoCliente();\r\n\r\n controleAcessoCliente.idclient = this.cliente.id;\r\n\r\n let adicionarControleAcesso: number = 0;\r\n\r\n this.controleAcessoService.addControleAcessoCliente(controleAcessoCliente).subscribe(\r\n adicionarControleAcessos => adicionarControleAcesso = adicionarControleAcessos,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n\r\n }\r\n );\r\n\r\n /* Vendedor */\r\n\r\n this.vendedorService.getById().subscribe(\r\n vendedor => this.vendedor = vendedor,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n /* Data/Hora */\r\n\r\n let dataHora: Date = new Date();\r\n\r\n dataHora.setHours(23);\r\n dataHora.setMinutes(59);\r\n dataHora.setSeconds(59);\r\n\r\n localStorage.setItem(\"data_hora\", dataHora.toString());\r\n\r\n if (this.vendedor != null) {\r\n if (this.vendedor.link_whatsapp == null) {\r\n localStorage.setItem(\"link_whatsapp\", \"\");\r\n } else {\r\n localStorage.setItem(\"link_whatsapp\", this.vendedor.link_whatsapp.toString());\r\n }\r\n }\r\n\r\n if (this.cliente.resetar_senha == null || this.cliente.resetar_senha == true) {\r\n this.router.navigate([\"/redefinir-senha\"]);\r\n } else {\r\n this.router.navigate([\"/produtos\"]);\r\n\r\n this.exibirNavBarEmitter.emit(true);\r\n }\r\n }\r\n );\r\n } else {\r\n this.toastr.error(\"\", \"Nenhuma configuração encontrada!\");\r\n\r\n this.desautorizar();\r\n }\r\n }\r\n );\r\n } else {\r\n this.toastr.error(\"\", \"Nenhuma configuração encontrada!\");\r\n\r\n this.desautorizar();\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n desautorizar() {\r\n this.exibirNavBarEmitter.emit(false);\r\n\r\n localStorage.clear();\r\n\r\n this.router.navigate([\"/login\"]);\r\n }\r\n\r\n statusAutorizacao() {\r\n if (localStorage.getItem(\"data_hora\") != \"\") {\r\n let dataHoraAtual: Date = new Date();\r\n let dataHoraExpiracao: Date = new Date(localStorage.getItem(\"data_hora\"));\r\n\r\n if (dataHoraAtual < dataHoraExpiracao) {\r\n if (localStorage.getItem(\"guidclientenapis\") != null && localStorage.getItem(\"guidclientenapis\") != \"\") {\r\n let catalogo = (localStorage.getItem(\"catalogo\") == \"true\");\r\n\r\n this.catalogoEmitter.emit(catalogo);\r\n\r\n this.exibirNavBarEmitter.emit(true);\r\n\r\n return true;\r\n }\r\n } else {\r\n if (this.router.isActive(\"\", false) || this.router.isActive(\"login\", false)) {\r\n /* Storage */\r\n\r\n /* Data/Hora */\r\n\r\n let dataHora: Date = new Date();\r\n\r\n dataHora.setHours(23);\r\n dataHora.setMinutes(59);\r\n dataHora.setSeconds(59);\r\n\r\n localStorage.setItem(\"data_hora\", dataHora.toString());\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { CallCenterConfiguracao } from '../../models/call-center/call-center-configuracao';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CallCenterService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n /* Configuração */\r\n\r\n public getConfiguracaoByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/CallCenter/GetConfiguracaoByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { Cliente } from '../../models/clientes/cliente';\r\nimport { ClienteEmpresa } from '../../models/clientes/cliente-empresa';\r\nimport { ClienteLocalEntrega } from '../../models/clientes/cliente-local-entrega';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ClienteService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n /* Clientes */\r\n\r\n public getById(client_id_app: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": client_id_app\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Cliente/GetById\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n public getByLogin(client_document: string, guidclientenapis: string, password_b2b: string): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_document\": client_document,\r\n \"guidclientenapis\": guidclientenapis,\r\n \"password_b2b\": password_b2b\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Cliente/GetByLogin\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n public updateB2BMargemConsumidor(percentual_margem: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": localStorage.getItem(\"client_id_app\"),\r\n \"percentual_margem\": percentual_margem\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Cliente/UpdateB2BMargemConsumidor\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n public updatePasswordById(password_b2b: string): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": localStorage.getItem(\"client_id_app\"),\r\n \"password_b2b\": password_b2b\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Cliente/UpdatePasswordById\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n /* Clientes (Empresas) */\r\n\r\n public getByDocumento(client_document: string): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_document\": client_document\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Cliente/GetByDocumento\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Cliente (Local Entrega) */\r\n\r\n public getClienteLocalEntregaByCliente(id: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"id\": id\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Cliente/GetClienteLocalEntregaByCliente\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { Configuracao } from '../../models/configuracoes/configuracao';\r\nimport { ConfiguracaoBanner } from '../../models/configuracoes/configuracao-banner';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ConfiguracaoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Configuracao/GetByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n /* Configuração Banner */\r\n\r\n public getConfiguracaoBannerByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let catalogo: boolean = (localStorage.getItem(\"catalogo\") == \"true\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"segment\": localStorage.getItem(\"segment\"),\r\n \"catalogo\": catalogo\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Configuracao/GetConfiguracaoBannerByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { ControleAcessoCliente } from '../../models/controle-acessos/controle-acesso-cliente';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ControleAcessoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public addControleAcessoCliente(controleAcessoCliente: ControleAcessoCliente): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"controleAcessoCliente\": controleAcessoCliente\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/ControleAcesso/AddControleAcessoCliente\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(0);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { FormaPagamento } from '../../models/formas-pagamento/forma-pagamento';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class FormaPagamentoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"mostrar_b2b\": true\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/FormaPagamento/GetByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ListenerService {\r\n private requisicoesPendente: BehaviorSubject;\r\n\r\n constructor() {\r\n this.requisicoesPendente = new BehaviorSubject(false);\r\n }\r\n\r\n atualizarRequisicoesPendentes(pendente: boolean) {\r\n this.requisicoesPendente.next(pendente);\r\n }\r\n\r\n verificarRequisicoesPendentes(): Observable {\r\n return this.requisicoesPendente.asObservable();\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { NotaFiscal } from '../../models/notas-fiscais/nota-fiscal';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class NotaFiscalService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n /* Integração */\r\n\r\n public getIntegracaoNotaFiscalByNota(nota_fiscal: number, serie: string): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"nota_fiscal\": nota_fiscal,\r\n \"serie\": serie,\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/NotaFiscal/GetIntegracaoNotaFiscalByNota\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { NovoInteresse } from '../../models/novos-interesses/novo-interesse';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class NovoInteresseService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByDominio(dominio: string): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"dominio\": dominio\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/NovoInteresse/GetByDominio\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { PedidoItens } from '../../models/pedidos/pedido-itens';\r\nimport { PedidoItensSintetico } from '../../models/pedidos/pedido-itens-sintetico';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PedidoItensService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public add(pedidoItens: PedidoItens[]): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"pedidoItens\": pedidoItens\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/PedidoItens/Add\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n public getByOrder(order_id: number, seller_id: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"order_id\": order_id,\r\n \"seller_id\": seller_id\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/PedidoItens/GetByOrder\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Sintético */\r\n\r\n public getB2BByOrder(order_id: number, seller_id: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"order_id\": order_id,\r\n \"seller_id\": seller_id\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/PedidoItens/GetB2BByOrder\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { Pedido } from '../../models/pedidos/pedido';\r\nimport { PedidoBonificacaoRetorno } from '../../models/pedidos/pedido-bonificacao-retorno';\r\nimport { PedidoPagamento } from '../../models/pedidos/pedido-pagamento';\r\nimport { PedidoSintetico } from '../../models/pedidos/pedido-sintetico';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PedidoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public add(pedido: Pedido): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"pedido\": pedido\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/Add\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n public getByOrder(order_id_app: number, seller_id: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"order_id_app\": order_id_app,\r\n \"seller_id\": seller_id\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/GetByOrder\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n public getProximoNumeroPedidoBySeller(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"seller_id\": 130\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/GetProximoNumeroPedidoBySeller\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(0);\r\n })\r\n );\r\n }\r\n\r\n /* Pagamento */\r\n\r\n public getPedidoPagamentoById(id: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"id\": id\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/GetPedidoPagamentoById\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n /* Sintético */\r\n\r\n public getB2BByCliente(client_id_app: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": client_id_app\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/GetB2BByCliente\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Ações */\r\n\r\n public enviar(order_id_app: number, percentual_desconto: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"order_id_app\": order_id_app,\r\n \"seller_id_logado\": localStorage.getItem(\"seller_id\"),\r\n \"seller_id_pedido\": localStorage.getItem(\"seller_id\"),\r\n \"percentual_desconto\": percentual_desconto\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/Enviar\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { PrazoPagamentoCliente } from '../../models/prazos-pagamento/prazo-pagamento-cliente';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrazoPagamentoClienteService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByClientIdApp(client_id_app: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": client_id_app\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/PrazoPagamentoCliente/GetByClientIdApp\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { PrazoPagamentoItens } from '../../models/prazos-pagamento/prazo-pagamento-itens';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PrazoPagamentoItensService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByIdPrazoPagamento(id_prazo_pagamento: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"id_prazo_pagamento\": id_prazo_pagamento\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/PrazoPagamentoItens/GetByIdPrazoPagamento\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { PrazoPagamento } from '../../models/prazos-pagamento/prazo-pagamento';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PrazoPagamentoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/PrazoPagamento/GetByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { ProdutoCategoria } from '../../models/produtos/produto-categoria';\r\nimport { ProdutoDisponibilidade } from '../../models/produtos/produto-disponibilidade';\r\nimport { ProdutoFichaTecnica } from '../../models/produtos/produto-ficha-tecnica';\r\nimport { ProdutoFoto } from '../../models/produtos/produto-foto';\r\nimport { ProdutoGrupoNome } from '../../models/produtos/produto-grupo-nome';\r\nimport { ProdutoPromocional } from '../../models/produtos/produto-promocional';\r\nimport { ProdutoSegmento } from '../../models/produtos/produto-segmento';\r\nimport { ProdutoTabelaPromocaoQtde } from '../../models/produtos/produto-tabela-promocao-qtde';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ProdutoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n /* Produto (Categoria) */\r\n\r\n public getCategoriaByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetCategoriaByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Disponilidade) */\r\n\r\n public addDisponibilidade(produto: ProdutoDisponibilidade): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"produto\": produto\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/AddDisponibilidade\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n public deleteDisponibilidade(product_id: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": localStorage.getItem(\"client_id_app\"),\r\n \"product_id\": product_id\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/DeleteDisponibilidade\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n public getDisponibilidadeByCliente(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": localStorage.getItem(\"client_id_app\"),\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Pedido/GetDisponibilidadeByCliente\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n public getDisponibilidadeByProduto(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"product_id\": localStorage.getItem(\"product_id\"),\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetDisponibilidadeByProduto\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n public updateDisponibilidadeQtde(produto: ProdutoDisponibilidade): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"produto\": produto\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/UpdateDisponibilidadeQtde\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n public updateDisponibilidadeNotificado(produto: ProdutoDisponibilidade): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"produto\": produto\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/UpdateDisponibilidadeNotificado\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Ficha Técnica) */\r\n\r\n public getFichaTecnicaByIdProduto(id_produto: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"id_produto\": id_produto\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetFichaTecnicaByIdProduto\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Foto) */\r\n\r\n public getProdutoFotosByIdProduto(id_produto: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"id_produto\": id_produto\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetProdutoFotosByIdProduto\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n public getProdutoFotosByIds(ids: number[]): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"ids\": ids\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetProdutoFotosByIds\", data, { headers: this.headers, reportProgress: true }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Grupo Nome) */\r\n\r\n public getProdutoGrupoNomeByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetProdutoGrupoNomeByGuidClienteNapis\", data, { headers: this.headers, reportProgress: true }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Promocional) */\r\n\r\n public getProdutoPromocionalByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"mostrar_b2b\": true,\r\n \"client_id_app\": localStorage.getItem(\"client_id_app\"),\r\n \"seller_id\": localStorage.getItem(\"seller_id\"),\r\n \"nome_lote\": \"\",\r\n \"id_forma_pagamento\": null,\r\n \"id_prazo_pagamento\": null\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetProdutoPromocionalByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Segmento) */\r\n\r\n public getProdutoSegmentoByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\"),\r\n \"segment\": localStorage.getItem(\"segment\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetProdutoSegmentoByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n /* Produto (Tabela Promoção Qtde) */\r\n\r\n public getProdutoTabelaPromocaoQtde(id_produto: number, preco: number): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"client_id_app\": localStorage.getItem(\"client_id_app\"),\r\n \"seller_id\": localStorage.getItem(\"seller_id\"),\r\n \"id_produto\": id_produto,\r\n \"preco\": preco\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Produto/GetProdutoTabelaPromocaoQtde\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { TipoPedido } from '../../models/tipos/tipo-pedido';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class TipoPedidoService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getByGuidClienteNapis(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"guidclientenapis\": localStorage.getItem(\"guidclientenapis\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/TipoPedido/GetByGuidClienteNapis\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { Vendedor } from '../../models/vendedores/vendedor';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class VendedorService {\r\n private baseUrl: string;\r\n private headers = new HttpHeaders();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(\"BASE_URL\") baseUrl: string,\r\n private toastr: ToastrService\r\n ) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public getById(): Observable {\r\n this.headers.set(\"Content-Type\", \"application/json\");\r\n\r\n let data = {\r\n \"id\": localStorage.getItem(\"seller_id\")\r\n };\r\n\r\n return this.http.post(this.baseUrl + \"api/Vendedor/GetById\", data, { headers: this.headers }).pipe(\r\n catchError(() => {\r\n this.toastr.error(\"\", \"Houve um erro, contate o suporte...\");\r\n\r\n return of(null);\r\n })\r\n );\r\n }\r\n}\r\n","import { trigger, state, style, transition, animate } from '@angular/animations';\r\n\r\nexport const Animacao = [\r\n trigger(\"esvanecerDesvanecer\", [\r\n state(\"in\", style({ opacity: 1 })),\r\n\r\n transition(\":enter\", [\r\n style({ opacity: 0 }),\r\n animate(300)\r\n ]),\r\n\r\n transition(\":leave\",\r\n animate(300, style({ opacity: 0 }))\r\n )\r\n ]),\r\n trigger(\"desvanecer\", [\r\n transition(\":enter\", [\r\n style({ opacity: 0 }),\r\n animate(400)\r\n ])\r\n ])\r\n]\r\n","import { Injectable } from '@angular/core';\r\nimport { CurrencyPipe, DatePipe } from '@angular/common';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport * as jsPDF from 'jspdf';\r\n\r\n/* Services */\r\n\r\nimport { CallCenterService } from '../services/call-center/call-center.service';\r\nimport { ConfiguracaoService } from '../services/configuracoes/configuracao.service';\r\nimport { PedidoService } from '../services/pedidos/pedido.service';\r\nimport { PedidoItensService } from '../services/pedidos/pedido-itens.service';\r\nimport { PrazoPagamentoItensService } from '../services/prazos-pagamento/prazo-pagamento-itens.service';\r\n\r\n/* Models */\r\n\r\nimport { CallCenterConfiguracao } from '../models/call-center/call-center-configuracao';\r\nimport { Configuracao } from '../models/configuracoes/configuracao';\r\nimport { Pedido } from '../models/pedidos/pedido';\r\nimport { PedidoItens } from '../models/pedidos/pedido-itens';\r\nimport { PrazoPagamentoItens } from '../models/prazos-pagamento/prazo-pagamento-itens';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PdfService {\r\n constructor(\r\n private currencyPipe: CurrencyPipe,\r\n private datePipe: DatePipe,\r\n private toastr: ToastrService,\r\n private callCenterService: CallCenterService,\r\n private configuracaoService: ConfiguracaoService,\r\n private pedidoService: PedidoService,\r\n private pedidoItensService: PedidoItensService,\r\n private prazoPagamentoItensService: PrazoPagamentoItensService\r\n ) { }\r\n\r\n /* Pedido */\r\n\r\n imprimirPedidoOrcamento(id_pedido: number, seller_id: number, porcentagem_desconto: number) {\r\n /* Call Center (Configuração) */\r\n\r\n let callCenterConfiguracao: CallCenterConfiguracao = null;\r\n\r\n /* Configurações */\r\n\r\n let configuracao: Configuracao = null;\r\n\r\n /* Pedido */\r\n\r\n let pedido: Pedido = null;\r\n\r\n /* Pedido Itens */\r\n\r\n let pedidoItens: PedidoItens[] = [];\r\n\r\n /* Prazo Pagto (Items) */\r\n\r\n let prazoPagamentoItens: PrazoPagamentoItens[] = [];\r\n\r\n /* Call Center (Configuração) */\r\n\r\n this.callCenterService.getConfiguracaoByGuidClienteNapis().subscribe(\r\n callCenterConfiguracoes => callCenterConfiguracao = callCenterConfiguracoes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (callCenterConfiguracao != null) {\r\n /* Configurações */\r\n\r\n this.configuracaoService.getByGuidClienteNapis().subscribe(\r\n configuracoes => configuracao = configuracoes,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (configuracao != null) {\r\n /* Pedido */\r\n\r\n this.pedidoService.getByOrder(id_pedido, seller_id).subscribe(\r\n pedidos => pedido = pedidos,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (pedido != null) {\r\n /* Pedido Itens */\r\n\r\n this.pedidoItensService.getByOrder(id_pedido, pedido.seller_id).subscribe(\r\n pedidoItem => pedidoItens = pedidoItem,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (pedidoItens.length > 0) {\r\n if (porcentagem_desconto != null && porcentagem_desconto != 0) {\r\n pedidoItens.forEach((item) => {\r\n item.unit_price = (item.unit_price - ((item.unit_price * porcentagem_desconto) / 100));\r\n item.total = item.quantity * item.unit_price;\r\n });\r\n }\r\n\r\n /* Prazo Pagto (Item) */\r\n\r\n this.prazoPagamentoItensService.getByIdPrazoPagamento(pedido.id_prazo_pagamento).subscribe(\r\n prazoPagamentoItem => prazoPagamentoItens = prazoPagamentoItem,\r\n error => { console.log(\"Erro: \" + error) },\r\n () => {\r\n if (prazoPagamentoItens.length > 0) {\r\n this.gerarPedidoOrcamento(callCenterConfiguracao, configuracao, pedido, pedidoItens, prazoPagamentoItens);\r\n\r\n this.toastr.success(\"\", \"Arquivo gerado com sucesso!\", { positionClass: \"toast-bottom-left\" });\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n gerarPedidoOrcamento(callCenterConfiguracao: CallCenterConfiguracao, configuracao: Configuracao, pedido: Pedido, pedidoItens: PedidoItens[], prazoPagamentoItens: PrazoPagamentoItens[]) {\r\n let pdf = new jsPDF();\r\n\r\n if (configuracao.id == 8) {\r\n // UniBrazil\r\n\r\n pdf.addImage(callCenterConfiguracao.logotipo, 7, 2, 80, 35);\r\n } else if (configuracao.id == 23) {\r\n // Oimasa\r\n\r\n pdf.addImage(callCenterConfiguracao.logotipo, 9, 5, 80, 30);\r\n } else if (configuracao.id == 45) {\r\n // MOTOSUPRI Distribuidora\r\n\r\n pdf.addImage(callCenterConfiguracao.logotipo, 10, 5, 75, 25);\r\n } else if (configuracao.id == 49) {\r\n // Indústrias NAT LTDA\r\n\r\n pdf.addImage(callCenterConfiguracao.logotipo, 9, 5, 28, 28);\r\n } else if (configuracao.id == 66) {\r\n // Petrovila Química Ltda\r\n\r\n pdf.addImage(callCenterConfiguracao.logotipo, 10, 5, 80, 30);\r\n } else {\r\n // Brudovan / Outras\r\n\r\n pdf.addImage(callCenterConfiguracao.logotipo, 5, -5, 90, 40);\r\n }\r\n\r\n pdf.setFontSize(14);\r\n pdf.setFontType(\"bold\");\r\n\r\n pdf.text(configuracao.nm_empresa == null ? \"\" : configuracao.nm_empresa, 200, 10, { align: \"right\" });\r\n\r\n pdf.setFontSize(12);\r\n pdf.setFontType(\"normal\");\r\n\r\n pdf.text(configuracao.empresa_endereco == null ? \"\" : configuracao.empresa_endereco.trim(), 200, 15, { align: \"right\" });\r\n pdf.text(configuracao.empresa_bairro == null ? \"\" : configuracao.empresa_bairro.trim(), 200, 20, { align: \"right\" });\r\n pdf.text(configuracao.empresa_cidade_estado == null ? \"\" : configuracao.empresa_cidade_estado.trim(), 200, 25, { align: \"right\" });\r\n pdf.text(configuracao.empresa_email == null ? \"\" : configuracao.empresa_email.trim(), 200, 30, { align: \"right\" });\r\n pdf.text(configuracao.empresa_fone == null ? \"\" : \"TELEFONE: \" + configuracao.empresa_fone.trim(), 200, 35, { align: \"right\" });\r\n\r\n pdf.line(10, 37, 200, 37, \"FD\");\r\n\r\n pdf.setFontSize(14);\r\n pdf.setFontType(\"bold\");\r\n\r\n if (pedido.order_sent_on != null) {\r\n pdf.text(\"PEDIDO \" + pedido.order_id_app + \" - \" + pedido.tipo_venda, 10, 42);\r\n } else {\r\n pdf.text(\"ORÇAMENTO \" + pedido.order_id_app, 10, 42);\r\n }\r\n\r\n /* Vendedor(a) */\r\n\r\n /* Cabeçalho */\r\n\r\n pdf.setFontSize(10);\r\n pdf.setFontType(\"bold\");\r\n\r\n pdf.line(10, 44, 200, 44, \"FD\");\r\n\r\n pdf.text(\"Vendedor(a):\", 10, 49);\r\n pdf.text(\"Data:\", 140, 49);\r\n pdf.text(\"E-mail:\", 10, 54);\r\n\r\n if (pedido.dt_validade != null) {\r\n pdf.text(\"Data validade:\", 140, 54);\r\n }\r\n\r\n pdf.text(\"Telefone:\", 10, 59);\r\n\r\n if (pedido.dt_previsao_entrega != null) {\r\n pdf.text(\"Data entrega:\", 140, 59);\r\n }\r\n\r\n /* Dados */\r\n\r\n pdf.setFontType(\"normal\");\r\n\r\n if (configuracao.seller_tmk_pdf) {\r\n pdf.text(pedido.nome_equipe == null ? \"\" : pedido.nome_equipe, 32, 49);\r\n } else {\r\n pdf.text(pedido.fullname == null ? \"\" : pedido.fullname, 32, 49);\r\n }\r\n\r\n if (pedido.order_sent_on != null) {\r\n pdf.text(this.datePipe.transform(pedido.order_sent_on, \"dd/MM/yyyy HH:mm:ss\"), 165, 49);\r\n } else {\r\n pdf.text(this.datePipe.transform(pedido.order_created_at, \"dd/MM/yyyy HH:mm:ss\"), 165, 49);\r\n }\r\n\r\n pdf.text(pedido.email_real == null ? \"\" : pedido.email_real, 32, 54);\r\n\r\n if (pedido.dt_validade != null) {\r\n pdf.text(this.datePipe.transform(pedido.dt_validade, \"dd/MM/yyyy\"), 165, 54);\r\n }\r\n\r\n pdf.text(pedido.celular == null ? \"\" : pedido.celular, 32, 59);\r\n\r\n if (pedido.dt_previsao_entrega != null) {\r\n pdf.text(this.datePipe.transform(pedido.dt_previsao_entrega, \"dd/MM/yyyy\"), 165, 59);\r\n }\r\n\r\n /* Cabeçalho */\r\n\r\n pdf.setFontSize(10);\r\n pdf.setFontType(\"bold\");\r\n\r\n pdf.line(10, 61, 200, 61, \"FD\");\r\n\r\n pdf.text(\"Cliente:\", 10, 66);\r\n pdf.text(\"Endereço:\", 10, 71);\r\n pdf.text(\"CNPJ/CPF:\", 120, 71);\r\n pdf.text(\"Bairro:\", 10, 76);\r\n pdf.text(\"IE:\", 120, 76);\r\n pdf.text(\"Telefone(s):\", 10, 81);\r\n pdf.text(\"Cidade:\", 120, 81);\r\n pdf.text(\"E-mail:\", 10, 86);\r\n pdf.text(\"CEP: \", 120, 86);\r\n\r\n /* Dados */\r\n\r\n pdf.setFontType(\"normal\");\r\n\r\n pdf.text(pedido.name == null ? \"\" : pedido.name, 32, 66);\r\n\r\n if (pedido.endereco != null && pedido.end_numero != null) {\r\n pdf.text(pedido.endereco + \", \" + pedido.end_numero, 32, 71);\r\n } else if (pedido.endereco != null && pedido.end_numero == null) {\r\n pdf.text(pedido.endereco, 32, 71);\r\n } else {\r\n pdf.text(\"\", 32, 71);\r\n }\r\n\r\n pdf.text(pedido.client_document == null ? \"\" : pedido.client_document, 142, 71);\r\n pdf.text(pedido.bairro == null ? \"\" : pedido.bairro, 32, 76);\r\n pdf.text(pedido.ie == null ? \"\" : pedido.ie, 142, 76);\r\n pdf.text(pedido.phone == null ? \"\" : pedido.phone, 32, 81);\r\n pdf.text(pedido.cidade == null ? \"\" : pedido.cidade, 142, 81);\r\n pdf.text(pedido.email == null ? \"\" : pedido.email, 32, 86);\r\n pdf.text(pedido.cep == null ? \"\" : pedido.cep, 142, 86);\r\n\r\n /* Transportadora */\r\n\r\n /* Cabeçalho */\r\n\r\n pdf.setFontSize(10);\r\n pdf.setFontType(\"bold\");\r\n\r\n pdf.line(10, 88, 200, 88, \"FD\");\r\n\r\n pdf.text(\"Transportadora:\", 10, 93);\r\n\r\n /* Dados */\r\n\r\n pdf.setFontType(\"normal\");\r\n\r\n pdf.text(pedido.nm_transportadora == null ? \"\" : pedido.nm_transportadora, 42, 93);\r\n\r\n /* Produtos */\r\n\r\n pdf.setFontType(\"bold\");\r\n\r\n pdf.line(10, 95, 200, 95, \"FD\");\r\n\r\n let produtos: string = \"PRODUTOS\";\r\n let posicaoProdutos: number = ((pdf.internal.pageSize.width - ((pdf.getStringUnitWidth(produtos) * pdf.internal.getFontSize()) / pdf.internal.scaleFactor)) / 2);\r\n\r\n pdf.text(produtos, posicaoProdutos, 100);\r\n\r\n pdf.setFontSize(8);\r\n\r\n pdf.line(10, 102, 200, 102, \"FD\");\r\n\r\n if (configuracao.flag_exibir_imposto_produto) {\r\n pdf.text(\"#\", 13, 106, { align: \"center\" });\r\n pdf.text(\"Código\", 23, 106, { align: \"center\" });\r\n pdf.text(\"Descrição\", 31, 106);\r\n pdf.text(\"Grupo Estoque\", 100, 106, { align: \"center\" });\r\n pdf.text(\"Qtde\", 126, 106, { align: \"center\" });\r\n pdf.text(\"Unitário: R$\", 152, 106, { align: \"right\" });\r\n pdf.text(\"Imp. + F.F.: R$\", 178, 106, { align: \"right\" });\r\n pdf.text(\"Sub-Total: R$\", 200, 106, { align: \"right\" });\r\n } else {\r\n pdf.text(\"#\", 13, 106, { align: \"center\" });\r\n pdf.text(\"Código\", 23, 106, { align: \"center\" });\r\n pdf.text(\"Descrição\", 31, 106);\r\n pdf.text(\"Grupo Estoque\", 135, 106, { align: \"center\" });\r\n pdf.text(\"Qtde\", 152, 106, { align: \"center\" });\r\n pdf.text(\"Unitário: R$\", 178, 106, { align: \"right\" });\r\n pdf.text(\"Total: R$\", 200, 106, { align: \"right\" });\r\n }\r\n\r\n pdf.setFontType(\"normal\");\r\n\r\n pdf.line(10, 108, 200, 108, \"FD\");\r\n\r\n let item: number = 0;\r\n let itemDescricaoPartes: string[] = [];\r\n let linha: number = 112;\r\n let tamanho: number = 55;\r\n\r\n if (configuracao.flag_exibir_imposto_produto) {\r\n tamanho = 35;\r\n }\r\n\r\n let valorTotalProduto: number = 0;\r\n let valorTotalImposto: number = 0;\r\n let valorTotalFatorFinanceiro: number = 0;\r\n let valorTotal: number = 0;\r\n\r\n for (var i = 0; i < pedidoItens.length; i++) {\r\n item++;\r\n itemDescricaoPartes = this.dividirTexto(pedidoItens[i].produto_nome, tamanho);\r\n\r\n valorTotalProduto = (valorTotalProduto + ((pedidoItens[i].unit_price - pedidoItens[i].fator_financeiro) * pedidoItens[i].quantity));\r\n valorTotalImposto = (valorTotalImposto + (pedidoItens[i].valor_imposto * pedidoItens[i].quantity));\r\n valorTotalFatorFinanceiro = (valorTotalFatorFinanceiro + (pedidoItens[i].fator_financeiro * pedidoItens[i].quantity));\r\n\r\n if (configuracao.flag_exibir_imposto_produto) {\r\n valorTotal = (valorTotal + (pedidoItens[i].total + (pedidoItens[i].valor_imposto * pedidoItens[i].quantity)));\r\n } else {\r\n valorTotal = valorTotal + pedidoItens[i].total;\r\n }\r\n\r\n for (var j = 0; j < itemDescricaoPartes.length; j++) {\r\n if (j == 0) {\r\n if (configuracao.flag_exibir_imposto_produto) {\r\n pdf.text(item.toString(), 13, linha, { align: \"center\" });\r\n pdf.text(pedidoItens[i].produto_codigo == null ? \"\" : pedidoItens[i].produto_codigo.toString(), 23, linha, { align: \"center\" });\r\n pdf.text(itemDescricaoPartes[j], 31, linha);\r\n\r\n pdf.text(pedidoItens[i].grupo_estoque == null ? \"\" : pedidoItens[i].grupo_estoque.substring(0, 15), 100, linha, { align: \"center\" });\r\n pdf.text(pedidoItens[i].quantity.toString(), 126, linha, { align: \"center\" });\r\n\r\n /* Unitário: R$ */\r\n\r\n let valorUnitarioOriginal: number = pedidoItens[i].unit_price - pedidoItens[i].fator_financeiro;\r\n\r\n pdf.text(this.currencyPipe.transform(valorUnitarioOriginal.toString(), \"\", \"R$\"), 152, linha, { align: \"right\" });\r\n\r\n /* Imp. + F.F.: R$ */\r\n\r\n let valorImpostoComFatorFinanceiro: number = ((pedidoItens[i].valor_imposto + pedidoItens[i].fator_financeiro) * pedidoItens[i].quantity);\r\n\r\n pdf.text(this.currencyPipe.transform(valorImpostoComFatorFinanceiro, \"\", \"R$\", \"1.4-4\"), 178, linha, { align: \"right\" });\r\n\r\n /* Sub-Total: R$ */\r\n\r\n let valorImposto: number = pedidoItens[i].valor_imposto * pedidoItens[i].quantity;\r\n let subTotal: number = pedidoItens[i].total + valorImposto;\r\n\r\n pdf.text(this.currencyPipe.transform(subTotal.toString(), \"\", \"R$\"), 200, linha, { align: \"right\" });\r\n } else {\r\n pdf.text(item.toString(), 13, linha, { align: \"center\" });\r\n pdf.text(pedidoItens[i].produto_codigo == null ? \"\" : pedidoItens[i].produto_codigo.toString(), 23, linha, { align: \"center\" });\r\n pdf.text(itemDescricaoPartes[j], 31, linha);\r\n pdf.text(pedidoItens[i].grupo_estoque == null ? \"\" : pedidoItens[i].grupo_estoque.substring(0, 15), 135, linha, { align: \"center\" });\r\n pdf.text(pedidoItens[i].quantity.toString(), 152, linha, { align: \"center\" });\r\n pdf.text(this.currencyPipe.transform(pedidoItens[i].unit_price.toString(), \"\", \"R$\"), 178, linha, { align: \"right\" });\r\n pdf.text(this.currencyPipe.transform(pedidoItens[i].total.toString(), \"\", \"R$\"), 200, linha, { align: \"right\" });\r\n }\r\n } else {\r\n pdf.text(itemDescricaoPartes[j], 31, linha);\r\n }\r\n\r\n linha = linha + 5;\r\n\r\n if (linha > 286) {\r\n pdf.line(10, 286, 200, 286, \"FD\");\r\n\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n }\r\n }\r\n\r\n /* Total */\r\n\r\n pdf.setFontSize(10);\r\n pdf.setFontType(\"bold\");\r\n\r\n let colunaTotalDescricao: number = 130;\r\n let colunaTotal: number = 200;\r\n\r\n /* Produto */\r\n\r\n let totalProdutoDescricao: string = \"PRODUTOS:\";\r\n let totalProduto = this.currencyPipe.transform(valorTotalProduto.toString(), \"\", \"R$\");\r\n\r\n /* Imposto */\r\n\r\n let totalImpostoDescricao: string = \"IMPOSTOS:\";\r\n let totalImposto = this.currencyPipe.transform(valorTotalImposto.toString(), \"\", \"R$\");\r\n\r\n /* Fator Financeiro */\r\n\r\n let totalFatorFinanceiroDescricao: string = \"FATOR FINANCEIRO:\";\r\n let totalFatorFinanceiro = this.currencyPipe.transform(valorTotalFatorFinanceiro.toString(), \"\", \"R$\");\r\n\r\n /* Total */\r\n\r\n let totalDescricao: string = \"TOTAL:\";\r\n let total = this.currencyPipe.transform(valorTotal.toString(), \"\", \"R$\");\r\n\r\n linha = linha - 3;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n if (configuracao.flag_exibir_imposto_produto) {\r\n pdf.setFontType(\"normal\");\r\n\r\n /* Produto */\r\n\r\n linha = linha + 4;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.text(totalProdutoDescricao, colunaTotalDescricao, linha);\r\n pdf.text(totalProduto, colunaTotal, linha, { align: \"right\" });\r\n\r\n /* Imposto */\r\n\r\n linha = linha + 4;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.text(totalImpostoDescricao, colunaTotalDescricao, linha);\r\n pdf.text(totalImposto, colunaTotal, linha, { align: \"right\" });\r\n\r\n /* Fator Financeiro */\r\n\r\n linha = linha + 4;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.text(totalFatorFinanceiroDescricao, colunaTotalDescricao, linha);\r\n pdf.text(totalFatorFinanceiro, colunaTotal, linha, { align: \"right\" });\r\n\r\n pdf.setFontType(\"bold\");\r\n }\r\n\r\n /* Total */\r\n\r\n linha = linha + 4;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.text(totalDescricao, colunaTotalDescricao, linha);\r\n pdf.text(total, colunaTotal, linha, { align: \"right\" });\r\n\r\n /* Simulação / Observações */\r\n\r\n linha = linha + 20;\r\n\r\n if (linha > 226) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n let linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n pdf.setFontSize(10);\r\n pdf.setFontType(\"bold\");\r\n\r\n linha = linha + 5;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.text(\"Simulação da Condição de Pagamento:\", 12, linha);\r\n pdf.text(\"Observações:\", 102, linha);\r\n\r\n pdf.setFontType(\"normal\");\r\n\r\n linha = linha + 5;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.text(pedido.prazo_pagamento == null ? \"\" : pedido.prazo_pagamento, 12, linha);\r\n\r\n let observacao: string = \"\";\r\n\r\n if (pedido.observacao_nf != null) {\r\n observacao = pdf.splitTextToSize(pedido.observacao_nf, 96);\r\n }\r\n\r\n pdf.text(observacao, 102, linha);\r\n\r\n linha = linha + 2;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.line(12, linha, 98, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n pdf.setFontSize(8);\r\n pdf.setFontType(\"bold\");\r\n\r\n pdf.text(\"Parcela\", 17, linha, { align: \"center\" });\r\n pdf.text(\"Vencimento\", 52, linha, { align: \"center\" });\r\n pdf.text(\"Valor: R$\", 98, linha, { align: \"right\" });\r\n\r\n pdf.setFontType(\"normal\");\r\n\r\n linha = linha + 2;\r\n\r\n pdf.line(12, linha, 98, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n\r\n let subItem: number = 0;\r\n let valorParcela: number = (valorTotal / prazoPagamentoItens.length);\r\n let dataVencimento: Date = null;\r\n\r\n for (var i = 0; i < prazoPagamentoItens.length; i++) {\r\n subItem++;\r\n\r\n if (pedido.order_sent_on == null) {\r\n dataVencimento = new Date(pedido.order_created_at);\r\n } else {\r\n dataVencimento = new Date(pedido.order_sent_on);\r\n }\r\n\r\n dataVencimento.setDate(dataVencimento.getDate() + prazoPagamentoItens[i].diasvencimento);\r\n\r\n pdf.text(subItem.toString(), 17, linha, { align: \"center\" });\r\n pdf.text(this.datePipe.transform(dataVencimento, \"dd/MM/yyyy\"), 52, linha, { align: \"center\" });\r\n pdf.text(this.currencyPipe.transform(valorParcela.toString(), \"\", \"R$\"), 98, linha, { align: \"right\" });\r\n\r\n linha = linha + 5;\r\n\r\n if (linha > 286) {\r\n pdf.addPage();\r\n\r\n linha = 10;\r\n linhaInicial = linha;\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n linha = linha + 4;\r\n }\r\n }\r\n\r\n linha = linha - 3;\r\n\r\n pdf.line(10, linhaInicial, 10, linha, \"FD\");\r\n pdf.line(100, linhaInicial, 100, linha, \"FD\");\r\n pdf.line(200, linhaInicial, 200, linha, \"FD\");\r\n\r\n pdf.line(10, linha, 200, linha, \"FD\");\r\n\r\n pdf.addImage(callCenterConfiguracao.arte_rodape, 5, 265, 200, 20);\r\n\r\n pdf.save(pedido.order_id_app + \".pdf\");\r\n }\r\n\r\n /* Auxiliares */\r\n\r\n dividirTexto(texto: string, tamanho: number): string[] {\r\n let partes: string[] = [];\r\n\r\n for (var i = 0; i < texto.length; i += tamanho) {\r\n partes.push(texto.substring(i, i + tamanho));\r\n }\r\n\r\n return partes;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ValidacaoFormularioService {\r\n constructor() { }\r\n\r\n /* Porcentagem */\r\n\r\n validarPorcentagemComZero(controle: FormControl) {\r\n let controleValor: any = controle.value;\r\n\r\n if (controleValor != null) {\r\n if (controleValor < 0 || controleValor > 100) {\r\n return { invalid: true };\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nexport type SortDirection = 'asc' | 'desc' | '';\r\n\r\nconst rotate: { [key: string]: SortDirection } = { 'asc': 'desc', 'desc': '', '': 'asc' };\r\n\r\nexport interface SortEvent {\r\n column: string;\r\n direction: SortDirection;\r\n}\r\n\r\n@Directive({\r\n selector: 'th[sortable]',\r\n host: {\r\n '[class.asc]': 'direction == \"asc\"',\r\n '[class.desc]': 'direction == \"desc\"',\r\n '(click)': 'rotate()'\r\n }\r\n})\r\n\r\nexport class SortableHeaderDirective {\r\n @Input() sortable: string;\r\n @Input() direction: SortDirection = \"\";\r\n @Output() sort = new EventEmitter();\r\n\r\n rotate() {\r\n this.direction = rotate[this.direction];\r\n this.sort.emit({ column: this.sortable, direction: this.direction });\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\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\nexport function getBaseUrl() {\r\n return document.getElementsByTagName(\"base\")[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: \"BASE_URL\", useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":""}