@seniorsistemas/yms-integration 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-yms-integration.umd.js +2922 -1185
- package/bundles/seniorsistemas-yms-integration.umd.js.map +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js.map +1 -1
- package/esm2015/index.js +9 -1
- package/esm2015/seniorsistemas-yms-integration.js +48 -38
- package/esm2015/src/devices/balancas/balancas.service.js +4 -1
- package/esm2015/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.js +8 -25
- package/esm2015/src/devices/balancas/weightScale.js +1 -1
- package/esm2015/src/devices/cancelas/cancelas.service.js +5 -1
- package/esm2015/src/devices/cancelas/controlador-cancela/controlador-cancela.component.js +91 -21
- package/esm2015/src/devices/cancelas/gate.js +1 -1
- package/esm2015/src/devices/dock/dock.module.js +12 -0
- package/esm2015/src/devices/dock/dock.service.js +22 -0
- package/esm2015/src/erp-senior/components/nota-form/nota-form.component.js +24 -9
- package/esm2015/src/erp-senior/core/entities/agenda/agenda.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/cidade/cidade.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/contrato-compra/contrato-compra.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/derivacao/derivacao.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/devolucao/devolucao.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/empresa/empresa.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/estado/estado.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/expedicao/expedicao.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/familia-produto/familia-produto.js +5 -7
- package/esm2015/src/erp-senior/core/entities/familia-produto/familia-produto.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/filial/filial.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/log-integracao/log-integracao.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/motorista/motorista.js +1 -1
- package/esm2015/src/erp-senior/core/entities/ordem-compra/ordem-compra.module.js +7 -2
- package/esm2015/src/erp-senior/core/entities/pais/pais.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/pedido-venda/pedido-venda.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/pessoa/pessoa.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco-dto.js +1 -5
- package/esm2015/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.js +1 -7
- package/esm2015/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/processo-avulso/processo-avulso.module.js +7 -2
- package/esm2015/src/erp-senior/core/entities/produto/produto.js +1 -9
- package/esm2015/src/erp-senior/core/entities/produto/produto.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/recebimento-contrato/recebimento.module.js +7 -2
- package/esm2015/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.module.js +11 -12
- package/esm2015/src/erp-senior/core/entities/royalty/royalty.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/safra/safra.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/transgenia/transgenia.js +1 -1
- package/esm2015/src/erp-senior/core/entities/transportadora/transportadora.module.js +2 -2
- package/esm2015/src/erp-senior/core/entities/unidade-medida/unidade-medida.module.js +2 -2
- package/esm2015/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.js +9 -1
- package/esm2015/src/erp-senior/devolucao/form/devolucao-form.component.js +12 -7
- package/esm2015/src/erp-senior/expedicao/form/expedicao-form.component.js +15 -21
- package/esm2015/src/erp-senior/processo-avulso/form/processo-avulso-form.component.js +7 -2
- package/esm2015/src/erp-senior/recebimento/contrato-form/contrato-form.component.js +20 -4
- package/esm2015/src/erp-senior/recebimento/form/recebimento-form.component.js +242 -199
- package/esm2015/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.js +29 -20
- package/esm2015/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.js +13 -4
- package/esm2015/src/sam-senior/components/credencial-form/credencial-form.component.js +126 -0
- package/esm2015/src/sam-senior/components/scheduling/lobby.service.js +22 -0
- package/esm2015/src/sam-senior/components/scheduling/scheduling.component.js +191 -0
- package/esm2015/src/sam-senior/components/scheduling/shechuling.service.js +40 -0
- package/esm2015/src/sam-senior/components/visited-info/visited-info.component.js +59 -0
- package/esm2015/src/sam-senior/components/visited-info/visited-info.service.js +26 -0
- package/esm2015/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.js +84 -0
- package/esm2015/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.js +364 -0
- package/esm2015/src/sam-senior/components/visitor-list/visitor-list.component.js +64 -0
- package/esm2015/src/sam-senior/components/visitor-list/visitor-list.service.js +26 -0
- package/esm2015/src/sam-senior/components/visitor-list.module.js +36 -0
- package/esm2015/src/sam-senior/core/entity-service.js +102 -0
- package/esm2015/src/sam-senior/core/lookup.js +184 -0
- package/esm2015/src/sam-senior/core/utils.js +26 -0
- package/esm2015/src/sam-senior/entities/credential-card-dto.js +9 -0
- package/esm2015/src/sam-senior/entities/lobby-dto.js +3 -0
- package/esm2015/src/sam-senior/entities/scheduling-dto.js +3 -0
- package/esm2015/src/sam-senior/entities/scheduling-visitors.js +3 -0
- package/esm2015/src/sam-senior/entities/scheduling.js +26 -0
- package/esm2015/src/sam-senior/entities/visited.js +3 -0
- package/esm2015/src/sam-senior/entities/visitor-credentials-dto.js +6 -0
- package/esm2015/src/sam-senior/entities/visitor-dto.js +1 -0
- package/esm2015/src/sam-senior/entities/visitor-situation.js +10 -0
- package/esm2015/src/sam-senior/form/form-sam.component.js +61 -0
- package/esm2015/src/sam-senior/models/card-credential.js +7 -0
- package/esm2015/src/sam-senior/models/visit-situation.js +8 -0
- package/esm2015/src/sam-senior/models/visitor-situation.js +10 -0
- package/esm2015/src/sam-senior/models/visitor.js +23 -0
- package/esm2015/src/sam-senior/sam-senior.module.js +75 -0
- package/esm2015/src/utils/build-form-field.js +28 -0
- package/esm5/index.js +9 -1
- package/esm5/seniorsistemas-yms-integration.js +48 -38
- package/esm5/src/devices/balancas/balancas.service.js +4 -1
- package/esm5/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.js +8 -25
- package/esm5/src/devices/balancas/weightScale.js +1 -1
- package/esm5/src/devices/cancelas/cancelas.service.js +5 -1
- package/esm5/src/devices/cancelas/controlador-cancela/controlador-cancela.component.js +94 -21
- package/esm5/src/devices/cancelas/gate.js +1 -1
- package/esm5/src/devices/dock/dock.module.js +15 -0
- package/esm5/src/devices/dock/dock.service.js +25 -0
- package/esm5/src/erp-senior/components/nota-form/nota-form.component.js +24 -9
- package/esm5/src/erp-senior/core/entities/agenda/agenda.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/cidade/cidade.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/contrato-compra/contrato-compra.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/derivacao/derivacao.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/devolucao/devolucao.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/empresa/empresa.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/estado/estado.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/expedicao/expedicao.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/familia-produto/familia-produto.js +5 -7
- package/esm5/src/erp-senior/core/entities/familia-produto/familia-produto.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/filial/filial.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/log-integracao/log-integracao.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/motorista/motorista.js +1 -1
- package/esm5/src/erp-senior/core/entities/ordem-compra/ordem-compra.module.js +7 -2
- package/esm5/src/erp-senior/core/entities/pais/pais.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/pedido-venda/pedido-venda.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/pessoa/pessoa.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco-dto.js +1 -5
- package/esm5/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.js +1 -7
- package/esm5/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/processo-avulso/processo-avulso.module.js +7 -2
- package/esm5/src/erp-senior/core/entities/produto/produto.js +1 -9
- package/esm5/src/erp-senior/core/entities/produto/produto.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/recebimento-contrato/recebimento.module.js +7 -2
- package/esm5/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.module.js +11 -12
- package/esm5/src/erp-senior/core/entities/royalty/royalty.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/safra/safra.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/transgenia/transgenia.js +1 -1
- package/esm5/src/erp-senior/core/entities/transportadora/transportadora.module.js +2 -2
- package/esm5/src/erp-senior/core/entities/unidade-medida/unidade-medida.module.js +2 -2
- package/esm5/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.js +9 -1
- package/esm5/src/erp-senior/devolucao/form/devolucao-form.component.js +12 -7
- package/esm5/src/erp-senior/expedicao/form/expedicao-form.component.js +15 -21
- package/esm5/src/erp-senior/processo-avulso/form/processo-avulso-form.component.js +7 -2
- package/esm5/src/erp-senior/recebimento/contrato-form/contrato-form.component.js +21 -4
- package/esm5/src/erp-senior/recebimento/form/recebimento-form.component.js +244 -203
- package/esm5/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.js +29 -20
- package/esm5/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.js +14 -4
- package/esm5/src/sam-senior/components/credencial-form/credencial-form.component.js +144 -0
- package/esm5/src/sam-senior/components/scheduling/lobby.service.js +25 -0
- package/esm5/src/sam-senior/components/scheduling/scheduling.component.js +199 -0
- package/esm5/src/sam-senior/components/scheduling/shechuling.service.js +43 -0
- package/esm5/src/sam-senior/components/visited-info/visited-info.component.js +56 -0
- package/esm5/src/sam-senior/components/visited-info/visited-info.service.js +29 -0
- package/esm5/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.js +87 -0
- package/esm5/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.js +384 -0
- package/esm5/src/sam-senior/components/visitor-list/visitor-list.component.js +82 -0
- package/esm5/src/sam-senior/components/visitor-list/visitor-list.service.js +29 -0
- package/esm5/src/sam-senior/components/visitor-list.module.js +37 -0
- package/esm5/src/sam-senior/core/entity-service.js +107 -0
- package/esm5/src/sam-senior/core/lookup.js +229 -0
- package/esm5/src/sam-senior/core/utils.js +28 -0
- package/esm5/src/sam-senior/entities/credential-card-dto.js +13 -0
- package/esm5/src/sam-senior/entities/lobby-dto.js +7 -0
- package/esm5/src/sam-senior/entities/scheduling-dto.js +7 -0
- package/esm5/src/sam-senior/entities/scheduling-visitors.js +7 -0
- package/esm5/src/sam-senior/entities/scheduling.js +30 -0
- package/esm5/src/sam-senior/entities/visited.js +7 -0
- package/esm5/src/sam-senior/entities/visitor-credentials-dto.js +8 -0
- package/esm5/src/sam-senior/entities/visitor-dto.js +1 -0
- package/esm5/src/sam-senior/entities/visitor-situation.js +10 -0
- package/esm5/src/sam-senior/form/form-sam.component.js +64 -0
- package/esm5/src/sam-senior/models/card-credential.js +7 -0
- package/esm5/src/sam-senior/models/visit-situation.js +8 -0
- package/esm5/src/sam-senior/models/visitor-situation.js +10 -0
- package/esm5/src/sam-senior/models/visitor.js +32 -0
- package/esm5/src/sam-senior/sam-senior.module.js +76 -0
- package/esm5/src/utils/build-form-field.js +29 -0
- package/fesm2015/seniorsistemas-yms-integration.js +2763 -1193
- package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
- package/fesm5/seniorsistemas-yms-integration.js +2888 -1169
- package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
- package/index.d.ts +7 -0
- package/package.json +3 -3
- package/seniorsistemas-yms-integration.d.ts +47 -37
- package/seniorsistemas-yms-integration.metadata.json +1 -1
- package/src/devices/balancas/balancas.service.d.ts +1 -0
- package/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.d.ts +2 -11
- package/src/devices/balancas/weightScale.d.ts +2 -2
- package/src/devices/cancelas/cancelas.service.d.ts +1 -0
- package/src/devices/cancelas/controlador-cancela/controlador-cancela.component.d.ts +12 -8
- package/src/devices/cancelas/gate.d.ts +2 -0
- package/src/devices/dock/dock.module.d.ts +2 -0
- package/src/devices/dock/dock.service.d.ts +10 -0
- package/src/erp-senior/components/nota-form/nota-form.component.d.ts +7 -1
- package/src/erp-senior/core/entities/motorista/motorista.d.ts +3 -0
- package/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco-dto.d.ts +2 -0
- package/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.d.ts +2 -0
- package/src/erp-senior/core/entities/transgenia/transgenia.d.ts +2 -0
- package/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.d.ts +2 -0
- package/src/erp-senior/devolucao/form/devolucao-form.component.d.ts +2 -0
- package/src/erp-senior/processo-avulso/form/processo-avulso-form.component.d.ts +2 -0
- package/src/erp-senior/recebimento/contrato-form/contrato-form.component.d.ts +10 -4
- package/src/erp-senior/recebimento/form/recebimento-form.component.d.ts +25 -10
- package/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.d.ts +4 -2
- package/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.d.ts +6 -2
- package/src/sam-senior/components/credencial-form/credencial-form.component.d.ts +29 -0
- package/src/sam-senior/components/scheduling/lobby.service.d.ts +9 -0
- package/src/sam-senior/components/scheduling/scheduling.component.d.ts +43 -0
- package/src/sam-senior/components/scheduling/shechuling.service.d.ts +14 -0
- package/src/sam-senior/components/visited-info/visited-info.component.d.ts +15 -0
- package/src/sam-senior/components/visited-info/visited-info.service.d.ts +10 -0
- package/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.d.ts +22 -0
- package/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.d.ts +56 -0
- package/src/sam-senior/components/visitor-list/visitor-list.component.d.ts +16 -0
- package/src/sam-senior/components/visitor-list/visitor-list.service.d.ts +10 -0
- package/src/sam-senior/components/visitor-list.module.d.ts +5 -0
- package/src/sam-senior/core/entity-service.d.ts +35 -0
- package/src/sam-senior/core/lookup.d.ts +38 -0
- package/src/sam-senior/core/utils.d.ts +18 -0
- package/src/sam-senior/entities/credential-card-dto.d.ts +12 -0
- package/src/sam-senior/entities/lobby-dto.d.ts +5 -0
- package/src/sam-senior/entities/scheduling-dto.d.ts +11 -0
- package/src/sam-senior/entities/scheduling-visitors.d.ts +6 -0
- package/src/sam-senior/entities/scheduling.d.ts +12 -0
- package/src/sam-senior/entities/visited.d.ts +4 -0
- package/src/sam-senior/entities/visitor-credentials-dto.d.ts +6 -0
- package/src/sam-senior/entities/visitor-dto.d.ts +10 -0
- package/src/sam-senior/entities/visitor-situation.d.ts +8 -0
- package/src/sam-senior/form/form-sam.component.d.ts +18 -0
- package/src/sam-senior/models/card-credential.d.ts +16 -0
- package/src/sam-senior/models/visit-situation.d.ts +6 -0
- package/src/sam-senior/models/visitor-situation.d.ts +8 -0
- package/src/sam-senior/models/visitor.d.ts +24 -0
- package/src/sam-senior/sam-senior.module.d.ts +6 -0
- package/src/utils/build-form-field.d.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/yms-integration/src/websocket.ts","ng://@seniorsistemas/yms-integration/src/service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/controlador-cancela/controlador-cancela.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.ts","ng://@seniorsistemas/yms-integration/src/stomp.config.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/view-image/view-image.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/snapshot/snapshot.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.module.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.service.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.module.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.service.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.component.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.module.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.service.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/agendas/agendas.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/confirmacao/confirmacao.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/entrada/entrada.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/entity-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/injectors.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/recebimento-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/expedicao-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/integration.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/form/form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/info/info.component.ts","ng://@seniorsistemas/yms-integration/src/utils/field-customization.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.service.ts","ng://@seniorsistemas/yms-integration/src/utils/utils.ts","ng://@seniorsistemas/yms-integration/src/utils/lookup-utils.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/enums/status-agenda.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/empresa/empresa.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa/pessoa.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pais/pais.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/estado/estado.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/cidade/cidade.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/filial/filial.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.ts","ng://@seniorsistemas/yms-integration/src/utils/focus.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/nota-validator.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/components/nota-form/nota-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/components/nota-form/nota-form.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/cidade/cidade.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/cidade/cidade.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra/contrato-compra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra/contrato-compra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/derivacao/derivacao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/derivacao/derivacao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/empresa/empresa.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/empresa/empresa.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/estado/estado.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/estado/estado.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/familia-produto/familia-produto.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/familia-produto/familia-produto.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/filial/filial.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/filial/filial.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pais/pais.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pais/pais.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda/pedido-venda.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda/pedido-venda.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa/pessoa.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa/pessoa.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/produto/produto.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/produto/produto.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/has-change/has-change-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/erp-process-data/erp-process-data.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/erp-process-data/erp-process-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/erp-form-config/erp-form-config-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/royalty/royalty.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/royalty/royalty.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/safra/safra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/safra/safra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transportadora/transportadora.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transportadora/transportadora.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/unidade-medida/unidade-medida.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/unidade-medida/unidade-medida.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/devolucao/devolucao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/devolucao/devolucao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transgenia/transgenia.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transgenia/transgenia.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/processo-avulso/processo-avulso.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/processo-avulso/processo-avulso.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/log-integracao/log-integracao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/log-integracao/log-integracao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/core.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/devolucao/devolucao-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/unidade-medida/unidade-medida.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/royalty/royalty.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/familia-produto/familia-produto.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/produto/produto.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/derivacao/derivacao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transportadora/transportadora.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/devolucao/devolucao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/enums/tipo-nota-fiscal.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/enums/tipo-participante-transgenia.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/devolucao/form/devolucao-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/devolucao/info/info/devolucao-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/form/expedicao-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/info/expedicao-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/log-integracao/log-integracao.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/processo-avulso/processo-avulso.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/processo-avulso/processo-avulso-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/processo-avulso/form/processo-avulso-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/processo-avulso/info/processo-avulso-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/safra/safra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/recebimento-ordem-compra-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/info/recebimento-ordem-compra-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra/contrato-compra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/contrato-form/contrato-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transgenia/transgenia.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/form/recebimento-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/info/recebimento-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/erp-senior.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","e","ar","push","error","__spread","concat","IntegrationWebSocket","_client","_cookieService","_service","tokenObject","JSON","parse","get","token","access_token","tenant","username","split","_subscriptionUrl","_unsubscribe$","Subject","connect","callback","_this","connectObservable","pipe","takeUntil","subscribe","state","dispose","complete","Service","messageService","getListQueryParams","listParams","_a","page","_b","size","_c","sort","_d","filterQuery","_e","displayFields","params","HttpParams","append","String","map","order","field","join","defaultCatch","catchError","err","summary","status","detail","message","statusText","add","severity","throwError","ControladorCancelasService","http","_super","url","tslib_1.__extends","listGateByArea","areaId","openGate","ip","post","closeGate","Injectable","HttpClient","MessageService","ControladorCancelaDescritor","ControleCircuito","header","name","ControleOperacao","ControladorCancelaComponent","service","translate","permissionsService","successState","canOpenGate","canCloseGate","unsubscribe$","gates$","ngOnInit","sequenciaCircuito","area","id","res","contents","permissions","Open","Close","toPromise","ngOnDestroy","model","gate","label","instant","visible","command","loading","finalize","undefined","_","tslib_1.__decorate","Input","Component","selector","template","animations","trigger","style","backgroundColor","opacity","transition","animate","TranslateService","PermissionsService","CancelasModule","dispatcher","dispatch","NgModule","imports","CommonModule","TableModule","TranslateModule","MessageModule","ButtonModule","LoadingStateModule","PermissionsModule","forChild","actions","uri","declarations","entryComponents","exports","providers","IntegrationDispatcher","BalancasService","urlIntegration","urlBalanca","getWeightScaleByArea","fallbackCall","balanca","peso","code","weight","getWeightScaleByCode","VisualizarBalancaDescritor","VisualizarBalancaComponent","client","cookieService","websocket","weightScales$","BehaviorSubject","weightScaleValues","Map","forEach","set","body","data","payload","index","findIndex","weightScale","find","StompService","CookieService","CustomStompConfig","getCookieObject","getCookie","socketProvider","SockJS","configureConfig","cname","cookie","name_1","ca","decodeURIComponent","document","charAt","substring","indexOf","headers","content-type","Authorization","Access-Control-Allow-Origin","heartbeat_in","heartbeat_out","reconnect_delay","debug","StompConfig","BalancaModule","provide","useClass","CamerasService","patioUrl","getCamerasByArea","takeSnapshot","camera","saveSnapshotInCircuit","ViewImageComponent","dialogRef","dialogConfig","imageUrl","save","execucaoCircuito","cameraIp","execucaoCircuitoId","alvoId","imagemUrl","close","DynamicDialogRef","DynamicDialogConfig","SnapshotDescritor","SnapshotComponent","dialogService","loadingAll","cameras$","splice","open","description","width","height","contentStyle","overflow","DialogService","CamerasModule","DynamicDialogModule","LprService","getLprByArea","stream","licencePlate","getLprByCode","LprModule","LogsService","listLogByCircuit","LogDescritor","CircuitoFinalizado","LogsComponent","logsService","columns","onGridChange","event","rows","first","updateGrid","totalElements","logsData","totalRecords","LogsModule","integrationDispatcher","TooltipModule","PortariasService","agendas","ultimaPlacaLida","getPortarias","plantaId","executarEntrada","lobbyId","placa","plate","PortariasDescritor","ControleUnificado","PortariasComponent","selectPlantService","portariaService","planta","getPlant","portarias","SelectPlantService","AgendasComponent","router","veiculo","portaria","selected","chegadaSimplificada","navigate","queryParams","navigateTo","chegada","getColumns","Router","ConfirmacaoComponent","continue","EntradaComponent","stompService","response","lprs","lpr","locked","readPlaque","entranceLpr","placaNaoEncontrada","openAgendas","display","flex-direction","styleClass","overflow-y","max-height","flex","onClose","filter","toUpperCase","PortariasModule","FormsModule","RouterModule","InputSwitchModule","InputTextModule","HttpClientModule","SelectPlantModule","EntityService","entityUrl","actionsUrl","bind","getBodyParams","bodyParams","offset","orderBy","displayfields","list","insert","entity","update","put","delete","listCustomFilter","action","ERP_ENVIRONMENT","InjectionToken","AgendaService","environment","project","domain","_agendaUrl","atualizarAgenda","agenda","retornaModelosValidacao","tipoAgendamentoId","checarRevalidacao","erpProcessData","listExternalAgenda","tslib_1.__param","Inject","RecebimentoContratoService","_baseUrl","registrarChegadaVeiculoComRecebimento","insertContratoRecebimento","recebimentoId","contratoRecebimento","insertContratoRecebimentoItem","contratoRecebimentoId","contratoRecebimentoItem","RecebimentoChegadaVeiculoOverride","override","agendaService","recebimentoService","RECEBIMENTO_KEY","initialize","addOverride","functionToOverride","remove","disposeOverride","mergeMap","recebimento","circuito","sequenciaInicial","sequencia","vagaInicial","vaga","ChegadaVeiculoOverride","ExpedicaoService","registrarChegadaVeiculoComExpedicao","ExpedicaoChegadaVeiculoOverride","expedicaoService","EXPEDICAO_KEY","expedicao","IntegrationService","baseUrl","getProcessConfigurationErp","idTipoAgendamento","ERP_SENIOR_HEADER","FormDescritor","Agendamento","ChegadaVeiculo","icon","FormComponent","integrationCallback","integrationService","onAgendamentoSaved","tipoAgendamento","empty","erpProcessConfiguration","tipoProcessoErpAtual","ngOnChanges","IntegrationEventsCallback","HEADER","InfoDescritor","InfoComponent","ngUnsubscribe","FieldCustomizationService","commitFiles","objects","deleteFiles","getFiles","formGroup","fieldCustomization","custom","filesToCommit","filesToDelete","toDelete","toInsert","isEmpty","files","keys","version","fileName","objectId","objects_1","file","entityName","object","isArray","entries","VerificaNotafiscal","verificaSeNotaFiscalEstaDuplicada","chaveNotaFiscal","contratos","fornecedorNotasTokens","notaFicalDuplicadas","nota","contrato","notas","OrdemCompraService","listOrdensCompra","numberTypes","FieldType","Integer","Double","numberPattern","mergeUnique","array","otherArray","item","includes","isValidFilter","type","getTypeInformation","isValidValue","typeExists","Time","Date","DateTime","match","userCanVisualize","allPermissions","controls","errors","required","visualizar","getProp","obj","path","reduce","result","prop","margin-bottom","moment","_moment","getLookupLabel","fields","separator","translation","trim","StatusAgenda","onLookupRequest","searchFields","lookupDisplayFields","advancedDisplayFields","lookupSeparator","customFilter","format","replace","onSearchRequest","multiSortMeta","filterData","Enum","Lookup","Empresa","fromDto","empresaDto","originEntity","createdDate","toDate","lastModifiedDate","toDto","empresa","dto","Pessoa","pessoaDto","pessoa","PessoaJuridica","pessoaJuridicaDto","pessoaJuridica","Pais","paisDto","pais","Estado","estadoDto","estado","Cidade","cidadeDto","cidade","PessoaEndereco","pessoaEnderecoDto","pessoaEndereco","Filial","filialDto","endereco","filial","OrdemCompra","ordemCompraDto","ordemCompra","OrdemCompraFormComponent","ordemCompraService","fb","ordemCompraLookupDisplayFields","ordemCompraAdvancedDisplayFields","ordemCompraLookupSeparator","fornecedor","ordensCompra","ordens","val","getForm","ordemCompraSearchFields","getOrdemCompraFields","ordemCompraSearchGridFields","getOrdemCompraGridFields","onOrdemCompraLookupRequest","numero","empresaId","pessoaId","filialId","ordensCompraSelecionados","pagina","limit","listaOrdenacao","campo","ordenacao","ordemCompraLookupSuggestions","onOrdemCompraSearchRequest","a","dataEmissao","ordemCompraSearchGridData","ordemCompraSearchTotalRecords","getRecPagina","validateAllFormFields","control","FormControl","markAsDirty","onlySelf","FormGroup","FormArray","form","valid","group","Validators","FormField","FormBuilder","FocusService","focusFirstInvalidInput","firstField","from","getElementsByClassName","f","nodeName","firstInputId","getAttribute","firstInvalidInput","getElementById","focus","nestedInput","getNestedInput","firstElementChild","element","NotaValidatorService","pesquisarDocumento","pesquisarDocumentoValidaNotaEmUso","pesquisarDocumentoGenerico","executarAuditoria","NotaFormComponent","notaValidatorService","confirmationService","verificaNotaFiscal","validateNotaFiscal","documentos","itens","produto","addErrorIfProdutoIsDifferent","notaFiscal","chave","serie","serieLegal","confirmAndAddNovoFornecedor","origemMercadoria","setValue","desabilitaCamposNotaFiscal","closeAndReturnNota","camposPreenchidosValidation","erroMultiplosCampos","serieNotaFiscal","serieLegalNotaFiscal","numeroNotaFiscal","validators","removeErrorChaveNota","habilitaCamposNotaFiscal","onBlurNotaFiscal","chaveDocumento","infoNota","confirm","acceptLabel","rejectLabel","accept","reject","setErrors","errorChaveNota","addFornecedor","enable","disable","ConfirmationService","NotaFormModule","ReactiveFormsModule","ControlErrorsModule","ConfirmDialogModule","AgendaModule","CidadeService","CidadeModule","ContratoCompraItemService","pesquisarItensContratoCompra","ContratoCompraItemModule","ContratoCompraService","listContratosCompra","getItens","contratoCompraId","updateItens","contratoCompraItemDto","listItens","insertItens","deleteItens","ContratoCompraModule","DerivacaoService","DerivacaoModule","EmpresaService","EmpresaModule","EstadoService","EstadoModule","FamiliaProdutoService","FamiliaProdutoModule","FilialService","listFiliais","filters","FilialModule","PaisService","PaisModule","PedidoVendaItemService","queriesUrl","pesquisarItensPedidoVenda","pesquisa","PedidoVendaItemModule","PedidoVendaService","pedidoVendaId","pesquisarPedidosVenda","pedidoVendaItemDto","PedidoVendaModule","PessoaEnderecoService","PessoaEnderecoModule","PessoaFisicaService","PessoaFisicaModule","PessoaJuridicaService","PessoaJuridicaModule","PessoaService","PessoaModule","ProdutoService","listProdutosRecebimento","listProdutos","ProdutoModule","HasChangeService","messageSource","change","current","asObservable","hasChange","idAgenda","hasChangeSave","ErpProcessService","changeData","getProcessData","changeDataErp","newMessage","chaveIntegracao","produtoId","transgeniaId","transportadoraId","changeDataVeiculo","veiculoId","eixos","ErpProcessData","changeDataMotorista","motoristaId","changeDataAgenda","agendaId","builderErpProcessData","getFieldFormGroup","fornecedores","listarIdsFornecedores","getRawValue","builderErpProcessDataValidaNotaNoContrato","recebimentoTemNota","verificaSeTemNotaNoContratoNoFornecedo","contratosTemNota","listaContratos","listaNotas","verificaSeContratosTemNota","builderErpProcessDataValidaNotaNaOrdemCompra","verificaSeTemNotaNaOrdemCompraDoFornecedo","ordemCompraTemNota","listaOrdens","verificaSeOrdemCompraTemNota","ordem","fieldName","listaFornecedores","ErpFormConfigService","enableRevalidation","RecebimentoContratoModule","RoyaltyService","RoyaltyModule","SafraService","SafraModule","TransportadoraService","TransportadoraModule","UnidadeMedidaService","UnidadeMedidaModule","ExpedicaoModule","DevolucaoService","registrarChegadaVeiculoComDevolucao","DevolucaoModule","OrdemCompraModule","RecebimentoOrdemCompraService","registrarChegadaVeiculoRecebimentoOrdemCompra","RecebimentoOrdemCompraModule","TransgeniaService","TransgeniaModule","ProcessoAvulsoService","registrarChegada","processo","ProcessoAvulsoModule","LogIntegracaoService","LogIntegracaoModule","CoreModule","DevolucaoChegadaVeiculoOverride","devolucaoService","DEVOLUCAO_KEY","devolucao","Agenda","agendaDto","UnidadeMedida","unidadeMedidaDto","unidadeMedida","Royalty","royaltyDto","royalty","FamiliaProduto","familiaProdutoDto","familiaProduto","Produto","produtoMisto","comprado","produtoDto","unidadeMedidaAgroG5","familia","Derivacao","derivacaoDto","derivacao","Transportadora","transportadoraDto","transportadora","Devolucao","devolucaoDto","TipoNotaFiscal","TipoParticipanteTransgenia","DevolucaoFormComponent","filialService","pessoaService","produtoService","derivacaoService","origemMercadoriaService","transportadoraService","route","erpProcessService","erpFormConfigService","hasChangeService","filialLookupDisplayFields","filialAdvancedDisplayFields","filialLookupSeparator","fornecedorLookupDisplayFields","fornecedorAdvancedDisplayFields","fornecedorLookupSeparator","produtoLookupDisplayFields","produtoAdvancedDisplayFields","produtoLookupSeparator","derivacaoLookupDisplayFields","derivacaoAdvancedDisplayFields","derivacaoLookupSeparator","origemMercadoriaLookupDisplayFields","origemMercadoriaAdvancedDisplayFields","origemMercadoriaLookupSeparator","transportadoraLookupDisplayFields","transportadoraAdvancedDisplayFields","transportadoraLookupSeparator","disableButtonSave","totalEixosContratados","totalEixosComposicao","getFormGroup","ngAfterViewInit","saveAndInitButton","valueChanges","formCarregado","filialSearchFields","getFilialSearchFields","filialSearchGridFields","getFilialSearchGridFields","fornecedorSearchFields","getFornecedorSearchFields","produtoSearchFields","getProdutoSearchFields","derivacaoSearchFields","getDerivacaoSearchFields","origemMercadoriaSearchFields","getOrigemMercadoriaSearchFields","transportadoraSearchFields","getTransportadoraSearchFields","transportadoraSearchGridFields","getTransportadoraSearchGridFields","getDevolucao","getEmpresaFilial","filialValueChanges","checkValuesChanges","externalTenant","setTransportadora","cnpj","createdByErpDisableForm","createdByErp","formControlUpdated","formControlDependent","getFilterQuery","variables","querySize","isChangeValidators","clearFormControlDependent","setValidators","nullValidator","toString","patchValue","onFilialLookupRequest","filterInput","cnpjs","filialLookupSuggestions","filiais","onFilialSearchRequest","sortFormatted","filialSearchGridData","filialSearchTotalRecords","qtdTotalRegistros","onFornecedorLookupRequest","fornecedorLookupSuggestions","onFornecedorSearchRequest","fornecedorSearchGridData","fornecedorSearchTotalRecords","onProdutoLookupRequest","situacao","produtoLookupSuggestions","produtos","onProdutoSearchRequest","produtoSearchTotalRecords","produtoSearchGridData","onDerivacaoLookupRequest","derivacaoLookupSuggestions","onDerivacaoSearchRequest","derivacaoSearchGridData","derivacaoSearchTotalRecords","onOrigemMercadoriaLookupRequest","origemMercadoriaLookupSuggestions","onOrigemMercadoriaSearchRequest","origemMercadoriaSearchGridData","origemMercadoriaSearchTotalRecords","onTransportadoraLookupRequest","transportadoraLookupSuggestions","onTransportadoraSearchRequest","transportadoraSearchGridData","transportadoraSearchTotalRecords","codigo","descricao","onSave","start","invalid","isNew","saveAndInit","requerRevalidacao","atualizaAgendaParaRejeitadoPorValidacao","REJEITADO_POR_VALIDACAO","motorista","concatMap","getSaveObservable","successMessage","relativeTo","click","addMessage","disabled","numeroNotaFiscalProdutor","serieNotaFiscalProdutor","ActivatedRoute","DevolucaoInfoComponent","switchMap","of","Expedicao","expedicaoDto","clienteFaturamento","clienteRemessa","ExpedicaoFormComponent","formBuilder","hotkeysService","focusService","pedidoVendaService","pedidoVendaItemService","localeConfig","currencyLocaleOptions","mainPanelCollapsed","visibleDialog","clienteFaturamentoLookupDisplayFields","clienteFaturamentoAdvancedDisplayFields","clienteFaturamentoLookupSeparator","clienteRemessaLookupDisplayFields","clienteRemessaAdvancedDisplayFields","clienteRemessaLookupSeparator","pedidoVendaLookupDisplayFields","pedidoVendaAdvancedDisplayFields","pedidoVendaLookupSeparator","pedidoVendaItemLookupDisplayFields","pedidoVendaItemAdvancedDisplayFields","pedidoVendaItemLookupSeparator","agendaLookupDisplayFields","agendaAdvancedDisplayFields","agendaLookupSeparator","disableOrdersButtons","ordersValid","pedidoVendaForm","getPedidoVendaForm","itemFormGroup","getOrdemVendaItemForm","onRouteDataChange","getExpedicao","buscarFilial","clienteFaturamentoSearchFields","getClienteSearchFields","clienteFaturamentoSearchGridFields","getClienteSearchGridFields","clienteRemessaSearchFields","clienteRemessaSearchGridFields","pedidoVendaSearchFields","getPedidoVendaSearchFields","pedidoVendaSearchGridFields","getPedidoVendaSearchGridFields","pedidoVendaItemSearchFields","getPedidoVendaItemSearchFields","pedidoVendaItemSearchGridFields","getPedidoVendaItemSearchGridFields","agendaSearchFields","getAgendaSearchFields","agendaSearchGridFields","getAgendaSearchGridFields","setHotkeys","setPedidosValueChanges","revalidacaoTransportadora","verificaSeTemAlteracao","transp","abrirPedidoVenda","pedidoVenda","buttons","getElementsByTagName","excluirPedidoVenda","removeAt","abrirPedidoVendaItem","pedido","pedidoVendaItem","quantidade","pedidoAtual","excluirPedidoVendaItem","pedidosLength","selecionarPedidoVenda","getOrdemVendaForm","buscarClienteAFaturar","selecionarPedidoVendaItem","selecionarPedidoVendaItemAutomaticamente","getPedidos","buildTokens","sku","inputList","selectedInput","Hotkey","editar","onCancel","updateSuggestions","getSuggestionValue","ownerEntity","acc","number","currencySymbol","thousandsSeparator","decimalSeparator","align","prefix","thousands","decimal","goBack","onSendFile","observables","forkJoin","setValuesPedidoBiodisel","numeroPedidoCliente","itemPedidoCliente","pedidos","getValuesPedidoBiodisel","pedidosInterno","atualizaExpedicao","onSubscribe","itemForm","onClienteFaturamentoLookupRequest","clienteFaturamentoLookupSuggestions","onClienteFaturamentoSearchRequest","clienteFaturamentoSearchGridData","clienteFaturamentoSearchTotalRecords","onClienteRemessaLookupRequest","clienteRemessaLookupSuggestions","onClienteRemessaSearchRequest","clienteRemessaSearchGridData","clienteRemessaSearchTotalRecords","onFilialSelect","onPedidoVendaLookupRequest","pedidosIdsQuery","pedidoVendaLookupSuggestions","onPedidoVendaSearchRequest","pedidosSelecionados","filialPedido","pedidoVendaSearchGridData","pedidoVendaSearchTotalRecords","onPedidoVendaItemLookupRequest","pedidoId","isNaN","pedidoVendaItemLookupSuggestions","onPedidoVendaItemSearchRequest","pedidoVendaItemSearchGridData","pedidoVendaItemSearchTotalRecords","getAutomaticItensOrder","onAgendaLookupRequest","agendaLookupSuggestions","onAgendaSearchRequest","agendaSearchGridData","agendaSearchTotalRecords","compose","numeroAgendamentoCliente","createdBy","lastModifiedBy","clientSuggestions$","clientSearch$","searchGridFields","suggestionsObservable","searchObservable","emptyMessage","sm","md","lg","xl","gridData","dataKey","lookupDisplayField","searchTitle","searchEmptyTitle","filterLabel","filterTitle","clearLabel","cancelLabel","selectLabel","tooltip","getDerivacaoSearchGridFields","parent","observable","validateVisualization","ViewChild","TemplateRef","HotkeysService","ExpedicaoInfoComponent","LogIntegracaoDescritor","LogIntegracaoComponent","logIntegracaoService","currentListParams","serverError","xmlFormatter","require","confs","gridColumns","getGridColumns","logIntegracao","onSearch","resetGrid","showLoader","selection","getPayload","stringify","table","reset","Table","ProcessoAvulso","processoAvulsoDto","processoAvulso","ProcessoAvulsoChegadaVeiculoOverride","processoAvulsoService","AVULSO_KEY","avulso","ProcessoAvulsoFormComponent","processoAvulsoOverride","getProcessoAvulso","fil","ProcessoAvulsoInfoComponent","Safra","safraDto","competenciaInicial","competenciaFinal","safra","RecebimentoOrdemCompra","recebimentoOrdemCompraDto","recebimentoOrdemCompra","RecebimentoOrdemCompraChegadaVeiculoOverride","recebimentoOrdemCompraService","RECEBIMENTO_ORDEMCOMPRA_KEY","RecebimentoOrdemCompraFormComponent","safraService","safraLookupDisplayFields","safraAdvancedDisplayFields","safraLookupSeparator","erroChaveNota","erroFornecedores","notasTokens","fornecedorNotas","ordemCompraSelecionado","onFilialValueChange","changeFormGroupValue","onFornecedorChange","onChangeRevalidation","configureForm","getRecebimentoOrdemCompra","safraSearchFields","getSafraSearchFields","safraSearchGridFields","getSafraSearchGridFields","nome","dtoConverter","debounceTime","onBlurChaveNotaFiscal","removeNotaError","mensagemBuscandoNota","adicionarNovaNota","isAny","formControl","getFornecedorForm","getFornecedores","ordemCompraForm","getOrdemCompraForm","getOrdensCompra","notaForm","getNotaForm","getNotas","fornecedorForm","addOrdemCompra","onOrdemCompraSaved","onSafraLookupRequest","safraLookupSuggestions","onSafraSearchRequest","safraSearchGridData","safraSearchTotalRecords","removeFornecedor","addNota","onNotaSaved","removerNota","ordemCompraId","getNotasFromOrdens","showButtons","AGENDADO","AGUARDANDO_CONFIRMACAO","AGUARDANDO_CONFIRMACAO_SOLICITANTE","disableAdicionarNota","removerOrdemCompra","ordensCompraForm","getFornecedorByOrdemCompra","ordensFormSelecionado","ordensCompraForm_1","tslib_1.__values","ordensCompraForm_1_1","addFornecedorNotasTokenEmOrdemCompra","fornecedorNota","notasForm","removeFornecedorNotasTokenDaOrdemCompra","mensagemOrdemCompraNaoSelecionado","existsFornecedor","disableFields","values","addFornecedorNotasToken","addNotaError","life","_i","RecebimentoOrdemCompraInfoComponent","ContratoCompra","contratoCompraDto","dataInicioVigencia","dataFimVigencia","ContratoCompraItem","contratoCompra","dataCompetencia","contratoCompraItem","ContratoFormComponent","contratoCompraService","contratoCompraItemService","contratoCompraLookupDisplayFields","contratoCompraAdvancedDisplayFields","contratoCompraLookupSeparator","contratoCompraItensLookupDisplayFields","contratoCompraItensAdvancedDisplayFields","contratoCompraItensLookupSeparator","contratoCompraSearchFields","getContratoCompraFields","contratoCompraSearchGridFields","getContratoCompraGridFields","contratoCompraItensSearchFields","getContratoCompraItensFields","contratoCompraItensSearchGridFields","getContratoCompraItensGridFields","onContratoCompraLookupRequest","contratosSelecionados","contratoCompraLookupSuggestions","onContratoCompraSearchRequest","contratoCompraSearchGridData","contratoCompraSearchTotalRecords","onContratoCompraItensLookupRequest","contratoId","contratoCompraItensLookupSuggestions","onContratoCompraItensSearchRequest","contratoCompraItensSearchGridData","contratoCompraItensSearchTotalRecords","addItemContrato","getItensForm","getItemForm","Transgenia","transgeniaDto","transgenia","roylty","RecebimentoContrato","recebimentoDto","RecebimentoFormComponent","pessoaEnderecoService","recebimentoChegadaOverride","transgeniaService","quantidadeSelecionada","transgeniaLookupDisplayFields","transgeniaAdvancedDisplayFields","transgeniaLookupSeparator","tiposNota","EMPRESA_JURIDICA","PRODUTOR_RURAL","contratoSelecionado","getTipoTransgenia","NAO_INFORMADO","at","tipoParticipante","getRecebimento","fornecedorSearchGridFields","getFornecedorSearchGridFields","getOrigemMercadoriaFields","origemMercadoriaSearchGridFields","getOrigemMercadoriaGridFields","produtoSearchGridFields","getProdutoSearchGridFields","derivacaoSearchGridFields","transgeniaSearchFields","getTransgeniaSearchFields","transgeniaSearchGridFields","getTransgeniaSearchGridFields","disableFornecedores","excluir","onDelete","getDeleteObservable","contratoForm","getContratoForm","getContratos","getItensContrato","onTransgeniaLookupRequest","transgeniaLookupSuggestions","onTransgeniaSearchRequest","transgeniaSearchGridData","transgeniaSearchTotalRecords","configureFornecedor","addContrato","onContratoSaved","removerContrato","getNotasFromContratos","tipoNotaFiscal","getFornecedorByContrato","getProdutoByContrato","mensagemContratoNaoSelecionado","fornecedorOfGroup","validarCnpjFornecedor","cpfCnpj","contratosFormSelecionado","contratosForm","contratosForm_1","contratosForm_1_1","addFornecedorNotasTokenEmContrato","removeFornecedorNotasTokenDoContrato","itemProduto","validateProduto","tap","ehPessoaJuridica","RecebimentoInfoComponent","highlightLanguages","func","jsonx","xmlx","ErpSeniorModule","CustomFieldsModule","DialogModule","EmptyStateModule","DynamicFormModule","TokenListModule","PanelModule","AccordionModule","DropdownModule","NumberInputModule","LocaleModule","IntegrationModule","TabViewModule","HighlightModule","forRoot","languages","HotkeyModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { StompService, StompState } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nexport class IntegrationWebSocket {\n private _subscriptionUrl: string;\n private _unsubscribe$: Subject<void>;\n constructor(private _client: StompService, _cookieService: CookieService, _service: string) {\n const tokenObject = JSON.parse(_cookieService.get(\"com.senior.token\")); \n const token = tokenObject.access_token;\n const tenant = tokenObject.username.split(\"@\")[1];\n this._subscriptionUrl = `/topic/${tenant}/${token}/yms/${_service}/`;\n this._unsubscribe$ = new Subject();\n }\n\n public connect(callback: (url: string, client: StompService, state?: StompState) => void): void {\n this._client.connectObservable\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((state) => callback(this._subscriptionUrl, this._client, state));\n }\n\n public dispose() {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n}","import { catchError } from \"rxjs/operators\";\nimport { HttpParams } from \"@angular/common/http\";\nimport { throwError } from \"rxjs\";\nimport { MessageService } from \"primeng/api\";\nexport class Service {\n constructor(protected messageService: MessageService) {}\n protected getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n return params;\n }\n protected defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n return throwError(err);\n });\n }\n}\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: any[];\n filterQuery?: string;\n displayFields?: string[];\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Service } from \"../../service\";\n\n@Injectable()\nexport class ControladorCancelasService extends Service {\n private readonly url = 'yms/integration/';\n \n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n public listGateByArea(areaId: string) {\n const params = this.getListQueryParams({\n size: 1000,\n page: 0,\n displayFields: [\"*\"],\n filterQuery: `area.id eq '${areaId}'`\n });\n return this.http.get(`${this.url}entities/gate`, { params })\n }\n public openGate(ip: string) {\n return this.http.post(`${this.url}actions/openGate`, { ip }).pipe(this.defaultCatch());\n }\n public closeGate(ip: string) {\n return this.http.post(`${this.url}actions/closeGate`, { ip }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, OnDestroy } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { ControladorCancelasService } from \"../cancelas.service\";\nimport { Gate } from \"../gate\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\nimport { PermissionsService } from \"@seniorsistemas/platform-components\";\n@ControleCircuito({\n header: \"Cancelas\",\n name: \"yms.integracao.devices\"\n})\n@ControleOperacao({\n header: 'Cancelas',\n name: 'yms.integracao.devices'\n})\nexport class ControladorCancelaDescritor{}\n@Component({\n selector: 'controlador-cancela-component',\n templateUrl: \"./controlador-cancela.component.html\",\n animations: [\n trigger('success', [\n state('*', style({\n backgroundColor: '#0C9348',\n opacity: 0.5\n })),\n state('default', style({\n backgroundColor: '#FFF',\n opacity: 1\n })),\n transition('* => default', animate('1.2s ease-in')),\n transition('default => *', animate('0s'))\n ])\n ]\n})\nexport class ControladorCancelaComponent extends ControladorCancelaDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n gates$: Subject<Gate[]>;\n loading: string;\n successState: string = 'default';\n canOpenGate:boolean = false;\n canCloseGate:boolean = false;\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: ControladorCancelasService, private translate: TranslateService, private permissionsService: PermissionsService) {\n super();\n this.unsubscribe$ = new Subject();\n this.gates$ = new Subject();\n }\n public ngOnInit() {\n this.service\n .listGateByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((res: any) => this.gates$.next(res.contents));\n\n this.permissionsService\n .get(\"gate\")\n .pipe(map((permissions: any) => {\n if (permissions.Open) {\n this.canOpenGate = true;\n }\n if (permissions.Close) {\n this.canCloseGate = true;\n }\n }))\n .toPromise();\n\n }\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n public model(gate: Gate) {\n return [\n {\n label: this.translate.instant('yms.integration.open_gate'),\n visible: this.canOpenGate,\n command: () => this.openGate(gate)\n },\n {\n label: this.translate.instant('yms.integration.close_gate'),\n visible: this.canCloseGate,\n command: () => this.closeGate(gate)\n }\n ]\n }\n private openGate(gate: Gate) {\n this.loading = gate.id;\n this.service.openGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(_ => this.successState = gate.id);\n }\n private closeGate(gate: Gate) {\n this.loading = gate.id;\n this.service.closeGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(res => this.successState = gate.id);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { MessageModule } from \"primeng/message\";\nimport { TableModule } from \"primeng/table\";\nimport { ControladorCancelasService } from \"./cancelas.service\";\nimport { ControladorCancelaComponent } from \"./controlador-cancela/controlador-cancela.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n@NgModule({\n imports: [\n CommonModule, \n TableModule, \n TranslateModule,\n MessageModule,\n ButtonModule,\n LoadingStateModule,\n PermissionsModule.forChild([\n {\n name: \"gate\",\n actions: [\"Open\", \"Close\"],\n uri: `res://senior.com.br/yms/devices/gate`,\n },\n ]),\n\n ],\n declarations: [ControladorCancelaComponent],\n entryComponents: [ControladorCancelaComponent],\n exports: [ControladorCancelaComponent],\n providers: [ControladorCancelasService]\n})\nexport class CancelasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(ControladorCancelaComponent);\n }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class BalancasService extends Service {\n private readonly urlIntegration = `yms/integration/`;\n private readonly urlBalanca = `yms/balanca/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n getWeightScaleByArea(areaId: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`\n }\n return this.http.get(`${this.urlIntegration}entities/weightScale`,\n { params: this.getListQueryParams(params) }).pipe(this.defaultCatch())\n }\n\n fallbackCall(balanca: string, peso: number) {\n return this.http.post(`${this.urlBalanca}actions/manualWeight`, { code: balanca, weight: peso }).pipe(this.defaultCatch());\n }\n\n getWeightScaleByCode(code: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 10,\n filterQuery: `code eq '${code}'`\n };\n return this.http.get(`${this.urlIntegration}entities/weightScale`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { BalancasService } from \"../balancas.service\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { WeightScale } from \"../weightScale\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Message } from \"@stomp/stompjs\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\n\n@ControleCircuito({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\n@ControleOperacao({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\nexport class VisualizarBalancaDescritor {}\n\n@Component({\n selector: 'visualizar-balanca-component',\n templateUrl: './visualizar-balanca.component.html'\n})\nexport class VisualizarBalancaComponent extends VisualizarBalancaDescritor \n implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n loading = false;\n weightScales$: BehaviorSubject<WeightScale[]>;\n weightScaleValues: Map<string, number>;\n private readonly unsubscribe$: Subject<void>;\n private websocket: IntegrationWebSocket;\n\n constructor(private service: BalancasService, \n private client: StompService, \n private cookieService: CookieService) {\n super();\n this.websocket = new IntegrationWebSocket(this.client, this.cookieService, 'integration');\n this.unsubscribe$ = new Subject();\n this.weightScales$ = new BehaviorSubject([]);\n this.weightScaleValues = new Map();\n }\n ngOnInit() {\n if (!this.sequenciaCircuito) return;\n this.loading = true;\n this.service.getWeightScaleByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }: any) => {\n this.weightScales$.next(contents);\n contents.forEach((value: WeightScale) => {\n this.weightScaleValues.set(value.id, 0);\n });\n });\n\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsWeightScale`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((payload: WsWeightScalePayload) => {\n if (!this.weightScales$.value.length) return;\n \n const index = this.weightScales$.value.findIndex(value => value.id === payload.weightScale.id);\n if (index < 0) return;\n const find = this.weightScales$.value[index];\n this.weightScaleValues.set(find.id, payload.weight);\n });\n });\n }\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n \n}\nexport interface WsWeightScalePayload {\n weight: number;\n weightScale: WeightScale;\n}","import * as SockJS from \"sockjs-client\";\nimport { StompConfig } from \"@stomp/ng2-stompjs\";\n\nexport class CustomStompConfig extends StompConfig {\n socketProvider: any;\n \n constructor() {\n super();\n const token = this.getCookieObject('com.senior.token').access_token;\n const url = `${this.getCookie('com.senior.base.url')}/websocket/subscription`;\n this.socketProvider = () => new SockJS(url);\n this.configureConfig(token);\n }\n private getCookieObject(cname: string) {\n const cookie = this.getCookie(cname);\n if (!cookie) return cookie;\n return JSON.parse(cookie);\n }\n private getCookie(cname: string) {\n try {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return null;\n } catch(e) {\n return null;\n }\n }\n private configureConfig (token: string) {\n this.url = this.socketProvider,\n this.headers = {\n \"content-type\": \"application/json\",\n \"Authorization\": \"Bearer \" + token,\n \"Access-Control-Allow-Origin\": \"*\"\n },\n this.heartbeat_in = 10000,\n this.heartbeat_out = 10000,\n this.reconnect_delay = 15000, \n this.debug = false\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { VisualizarBalancaComponent } from \"./visualiar-balanca/visualizar-balanca.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableModule } from \"primeng/table\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { BalancasService } from \"./balancas.service\";\nimport { MessageModule } from \"primeng/message\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { StompConfig, StompService } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\nimport { CookieService } from \"ngx-cookie-service\";\n@NgModule({\n imports: [\n CommonModule,\n TableModule,\n MessageModule,\n LoadingStateModule,\n ],\n declarations: [VisualizarBalancaComponent],\n entryComponents: [VisualizarBalancaComponent],\n exports: [VisualizarBalancaComponent],\n providers: [\n BalancasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class BalancaModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(VisualizarBalancaComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Camera } from \"./camera\";\n\n@Injectable()\nexport class CamerasService extends Service {\n\n private readonly url = 'yms/integration/';\n private readonly patioUrl = 'yms/patio/'\n\n constructor(private http: HttpClient, messageService: MessageService) { \n super(messageService);\n }\n\n public getCamerasByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"description\", \"ip\"]\n }\n\n return this.http\n .get(`${this.url}entities/camera`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n public takeSnapshot(camera: Camera) {\n return this.http.get(`${this.url}queries/fetchSnapshot`, { params: {ip: camera.ip }}).pipe(this.defaultCatch());\n }\n\n public saveSnapshotInCircuit(payload: SaveSnapshotInCircuitPayload) {\n return this.http.post(`${this.patioUrl}actions/adicionaImagemExecucaoCircuito`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface SaveSnapshotInCircuitPayload {\n execucaoCircuitoId: string;\n alvoId: string;\n cameraIp: string;\n imagemUrl: string;\n}","import { Component, OnInit } from \"@angular/core\";\nimport { DynamicDialogConfig, DynamicDialogRef, MessageService } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { finalize, takeUntil } from \"rxjs/operators\";\nimport { CamerasService } from \"../cameras.service\";\n\n@Component({\n selector: 'view-image-component',\n template: `\n <s-loading-state [loading]=\"loading\">\n <img [src]=\"imageUrl\" width=\"100%\">\n <br>\n </s-loading-state>\n\n <div style=\"position: absolute; bottom: 0; width: 670px; padding-top: 10px; border-top: 1px solid #ccc;\" [style.pointer-events]=\"loading ? 'none' : 'all'\">\n <s-button priority=\"primary\" label=\"Salvar\" (onClick)=\"save()\"></s-button>\n <s-button priority=\"link\" label=\"Cancelar\" (onClick)=\"close()\"></s-button>\n </div> \n `,\n})\nexport class ViewImageComponent implements OnInit {\n imageUrl: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<boolean>;\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private service: CamerasService,\n private messageService: MessageService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngOnInit() {\n this.imageUrl = this.dialogConfig.data.url;\n }\n\n save() {\n this.loading = true;\n const execucaoCircuito = this.dialogConfig.data.execucaoCircuito;\n let cameraIp = this.dialogConfig.data.cameraIp;\n\n this.service.saveSnapshotInCircuit({\n execucaoCircuitoId: execucaoCircuito.id,\n alvoId: execucaoCircuito.sequenciaCircuito.id,\n cameraIp,\n imagemUrl: this.imageUrl\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(() => {\n this.messageService.add({\n severity: 'success',\n summary: 'Salvo com sucesso!',\n detail: 'Imagem salva com sucesso'\n });\n this.dialogRef.close();\n });\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleOperacao, ControleCircuito } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { Camera } from \"../camera\";\nimport { CamerasService } from \"../cameras.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { DialogService } from \"primeng/api\";\nimport { ViewImageComponent } from \"../view-image/view-image.component\";\n\n@ControleOperacao({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\n@ControleCircuito({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\nexport class SnapshotDescritor {}\n\n@Component({\n selector: 'snapshot-component',\n templateUrl: './snapshot.component.html',\n styleUrls: ['./snapshot.component.scss'],\n providers: [DialogService]\n})\nexport class SnapshotComponent extends SnapshotDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n @Input() execucaoCircuito: any;\n cameras$: Subject<Camera>;\n\n loadingAll = false;\n loading: string[] = [];\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: CamerasService, private dialogService: DialogService) {\n super();\n this.unsubscribe$ = new Subject();\n this.cameras$ = new Subject();\n }\n\n public ngOnInit() {\n this.loadingAll = true;\n this.service.getCamerasByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loadingAll = false))\n .subscribe(({ contents }: any) => this.cameras$.next(contents));\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public takeSnapshot(camera: Camera) {\n this.loading.push(camera.id);\n this.service.takeSnapshot(camera)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => {\n const index = this.loading.indexOf(camera.id);\n this.loading.splice(index, 1);\n })\n )\n .subscribe(({ url }: any) => {\n this.dialogService.open(ViewImageComponent, {\n header: camera.description,\n width: \"700px\",\n height: \"600px\",\n contentStyle: {\n 'height': '500px',\n overflow: 'hidden'\n },\n data: { \n url,\n cameraIp: camera.ip,\n execucaoCircuito: this.execucaoCircuito\n }\n });\n });\n }\n\n}","import { NgModule } from \"@angular/core\";\nimport { SnapshotComponent } from \"./snapshot/snapshot.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { LoadingStateModule, ButtonModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { CamerasService } from \"./cameras.service\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { ViewImageComponent } from \"./view-image/view-image.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n LoadingStateModule,\n DynamicDialogModule\n ],\n declarations: [SnapshotComponent, ViewImageComponent],\n entryComponents: [SnapshotComponent, ViewImageComponent],\n exports: [SnapshotComponent],\n providers: [CamerasService]\n})\nexport class CamerasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(SnapshotComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class LprService extends Service {\n\n private readonly url = `yms/integration/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n getLprByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"area.*\"]\n }\n\n return this.http\n .get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n fallbackCall(stream: string, licencePlate: string) {\n return this.http.post(`${this.url}actions/lprEventPublish`, { stream, licencePlate }).pipe(this.defaultCatch());\n }\n\n getLprByCode(code: string) {\n const params: ListParams = {\n page: 0,\n size: 10,\n filterQuery: `stream eq '${code}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"locked\"]\n };\n\n return this.http.get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { NgModule } from \"@angular/core\";\nimport { LprService } from \"./lpr.service\";\n\n@NgModule({\n providers: [ LprService ]\n})\nexport class LprModule {}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { ListParams, Service } from \"../../service\";\n\n@Injectable()\nexport class LogsService extends Service {\n private readonly url = `yms/integration/`;\n constructor (private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n listLogByCircuit(execucaoCircuitoId: string, params: ListParams) {\n params.filterQuery = `execucaoCircuitoId eq '${execucaoCircuitoId}'`;\n return this.http.get(`${this.url}entities/logCircuit`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CircuitoFinalizado } from \"@seniorsistemas/yms-routines\";\nimport { LazyLoadEvent, SortMeta } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { LogCircuit } from \"./log-circuit\";\nimport { LogsService } from \"./logs.service\";\n\n@CircuitoFinalizado({\n header: 'Logs com dispositivos',\n name: \"yms.integracao.devices\"\n})\nexport class LogDescritor { }\n\n@Component({\n templateUrl: './logs.component.html'\n})\nexport class LogsComponent extends LogDescritor implements OnInit, OnDestroy {\n @Input() execucaoCircuito: any;\n columns: any[];\n logsData: LogCircuit[];\n totalRecords: number;\n\n loading: boolean;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(\n private logsService: LogsService,\n private translate: TranslateService\n ) {\n super();\n }\n\n ngOnInit() {\n this.columns = [\n { field: \"username\", header: this.translate.instant(\"yms.integration.usuario\") },\n { field: \"log\", header: this.translate.instant(\"yms.integration.log\") },\n { field: \"createdDate\", header: this.translate.instant(\"yms.integration.created_date\") }\n ];\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n onGridChange(event: LazyLoadEvent) {\n const size = event.rows;\n const page = event.first / size;\n const sort: SortMeta[] = [{ field: 'createdDate', order: -1 }];\n this.updateGrid({ size, page, sort });\n }\n\n private updateGrid(params: { size: number, page: number, sort: any[] }) {\n this.loading = true;\n const { page, size, sort } = params;\n\n this.logsService.listLogByCircuit(this.execucaoCircuito.id, { page, size, sort })\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents, totalElements }: any) => {\n this.logsData = contents;\n this.totalRecords = totalElements;\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { TooltipModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { LogsComponent } from \"./logs.component\";\nimport { LogsService } from \"./logs.service\";\n\n@NgModule({\n declarations: [ LogsComponent ],\n entryComponents: [ LogsComponent ],\n providers: [ LogsService ],\n imports: [\n CommonModule,\n TableModule,\n TranslateModule,\n TooltipModule,\n LoadingStateModule\n ]\n})\nexport class LogsModule {\n constructor(integrationDispatcher: IntegrationDispatcher) {\n integrationDispatcher.dispatch(LogsComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class PortariasService extends Service {\n constructor(private http: HttpClient, messageService: MessageService) {\n super(messageService);\n }\n\n agendas(params: ListParams) {\n return this.http.get(`yms/patio/entities/agenda`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n \n ultimaPlacaLida(stream: string) {\n return this.http.post(`yms/integration/queries/getLastValidPlateByLpr`, { stream }).pipe(this.defaultCatch());\n }\n\n getPortarias(plantaId: string) {\n return this.http.get(`yms/integration/entities/lobby`, { params: this.getListQueryParams({ page: 0, size: 100, filterQuery: `planta.id eq '${plantaId}'`, displayFields: [ 'description', 'entranceLpr.*', 'lprs.*', 'planta.*' ] }) }).pipe(this.defaultCatch());\n }\n\n executarEntrada(lobbyId: string, placa: string) {\n return this.http.post(`yms/integration/actions/executeLobby`, { lobbyId, plate: placa }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleUnificado } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { SelectPlantService } from \"@seniorsistemas/yms-components\";\nimport { PortariasService } from \"./portarias.service\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@ControleUnificado({\n header: 'Periféricos',\n name: \"yms.integracao.devices\"\n})\nexport class PortariasDescritor {}\n\n@Component({\n selector: 'portarias',\n template: `\n <h3>Portarias</h3>\n <div class=\"separator\"></div>\n <div class=\"ui-g\">\n <portaria-entrada *ngFor=\"let portaria of portarias\" class=\"ui-md-4\" [portaria]=\"portaria\"></portaria-entrada>\n </div>\n `,\n\n})\nexport class PortariasComponent extends PortariasDescritor implements OnInit, OnDestroy {\n portarias: any[];\n unsubscribe$ = new Subject<void>();\n constructor(private selectPlantService: SelectPlantService, private portariaService: PortariasService) {\n super();\n }\n\n ngOnInit() {\n const planta = this.selectPlantService.getPlant();\n this.portariaService.getPortarias(planta.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents }) => this.portarias = contents);\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n template: `\n <div style=\"width: 100%; height: calc(100% - 50px); overflow: auto;\">\n <div *sLoadingState=\"loading\">\n <p-table [value]=\"agendas\" [columns]=\"getColumns()\" selectionMode=\"single\" [(selection)]=\"selected\" dataKey=\"id\">\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 50px;\"></th>\n <th *ngFor=\"let column of columns\">{{column.label}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData>\n <tr [pSelectableRow]=\"rowData\">\n <td style=\"width: 50px;\">\n <p-tableRadioButton [value]=\"rowData\"></p-tableRadioButton>\n </td>\n <td>{{rowData['descricao']}}</td>\n <td>{{rowData['dataEsperadaAgendamento'] | date: 'dd/MM/yyyy HH:mm'}}</td>\n <td>{{rowData['tipoAgendamento']?.descricao}}</td>\n <td>{{rowData['externalTenant']?.descricao}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Registrar chegada\" [disabled]=\"!selected\" (onClick)=\"chegada()\"></s-button>\n <s-button priority=\"primary\" label=\"Registrar chegada simplificada\" (onClick)=\"chegadaSimplificada()\"></s-button>\n </div>\n `\n})\nexport class AgendasComponent implements OnInit, OnDestroy {\n agendas: any;\n selected: any;\n veiculo: string;\n portaria: any;\n loading: boolean;\n private readonly unsubscribe$ = new Subject<void>();\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private portariaService: PortariasService,\n private router: Router) { }\n\n ngOnInit() {\n this.veiculo = this.dialogConfig.data.veiculo;\n this.portaria = this.dialogConfig.data.portaria;\n this.loading = true;\n this.portariaService\n .agendas({ \n size: 100, \n page: 0, \n displayFields: ['veiculo.primario.*', 'tipoAgendamento.*', 'descricao', 'externalTenant', 'dataEsperadaAgendamento'], \n filterQuery: `veiculo.primario.placa eq '${this.veiculo}' and status eq 'AGENDADO' and planta eq '${this.portaria.planta.id}'` \n })\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n this.agendas = contents;\n if (!this.agendas.length) {\n this.chegadaSimplificada();\n return;\n }\n if (this.agendas.length === 1) {\n this.selected = this.agendas[0];\n }\n });\n \n }\n\n chegadaSimplificada() {\n this.router.navigate(['execucao-circuito/new'], { queryParams: { veiculo: this.veiculo, navigateTo: \"processo-entrada\" } });\n this.dialogRef.close();\n }\n\n chegada() {\n if (!this.selected) return;\n this.router.navigate([`execucao-circuito/${this.selected.id}`]);\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n getColumns() {\n return [\n { field: 'descricao', label: 'Descrição' },\n { field: 'dataEsperadaAgendamento', label: 'Data' },\n { field: 'tipoAgendamento', label: 'Tipo de Agendamento' },\n { field: 'externalTenant', label: 'Parceiro' }\n ]\n }\n}","import { Component } from \"@angular/core\";\nimport { DynamicDialogRef } from \"primeng/api\";\n\n@Component({\n template: `\n <p>Não foi encontrada uma leitura de placa. Deseja informar a placa para realizar a entrada?</p>\n <div class=\"separator\"></div>\n <input pInputText type=\"text\" pattern=\"[A-Z0-9]{6,10}\" maxlength=\"10\" placeholder=\"Digite a placa\" [(ngModel)]=\"placa\" #placaInput>\n \n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Continuar\" [disabled]=\"!placa || !placaInput.validity.valid\" (onClick)=\"continue()\"></s-button>\n </div>\n `\n})\nexport class ConfirmacaoComponent {\n placa: string;\n\n constructor(private dialogRef: DynamicDialogRef) {}\n\n continue() {\n this.dialogRef.close({ placa: this.placa });\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { DialogService } from \"primeng/api\";\nimport { filter, map, takeUntil, finalize, catchError, mergeMap } from \"rxjs/operators\";\nimport { AgendasComponent } from \"../agendas/agendas.component\";\nimport { ConfirmacaoComponent } from \"../confirmacao/confirmacao.component\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject, throwError } from \"rxjs\";\nimport { Message } from \"@stomp/stompjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { Lpr } from \"../../lpr/lpr\";\n\n@Component({\n selector: 'portaria-entrada',\n template: `\n <div class=\"card-entrada\" *sLoadingState=\"loading\">\n <div class=\"portaria-card\">\n <h4>{{portaria?.description}}</h4>\n <s-button style=\"float: right\" [auxiliary]=\"true\" iconClass=\"fas fa-camera\" priority=\"default\" (onClick)=\"readPlaque()\"></s-button>\n </div>\n <div class=\"portaria-card\" *ngFor=\"let lpr of portaria.lprs\">\n <h4>{{lpr.description || lpr.stream}}</h4>\n <p-inputSwitch styleClass=\"lprInputSwitch\" [ngModel]=\"lpr.locked\" [readonly]=\"true\"></p-inputSwitch>\n </div>\n </div>\n `,\n styleUrls: ['./entrada.component.scss'],\n providers: [ DialogService ]\n})\nexport class EntradaComponent implements OnInit, OnDestroy {\n\n @Input() portaria: any;\n\n loading = false;\n\n websocket: IntegrationWebSocket;\n unsubscribe$ = new Subject<void>();\n constructor(private dialogService: DialogService, private portariaService: PortariasService, stompService: StompService, cookieService: CookieService) {\n this.websocket = new IntegrationWebSocket(stompService, cookieService, 'integration');\n }\n\n ngOnInit() {\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsLprLockUnlocked`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((response: WsLprLockUnlocked) => this.portaria.lprs = this.portaria.lprs.map((lpr: Lpr) => lpr.stream === response.stream ? { ...lpr, locked: response.locked } : lpr ))\n })\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n readPlaque() {\n this.loading = true;\n this.portariaService.ultimaPlacaLida(this.portaria.entranceLpr.stream)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(({ plate }) => {\n if (!plate) {\n return this.placaNaoEncontrada();\n }\n this.openAgendas(plate);\n })\n }\n\n placaNaoEncontrada() {\n this.dialogService.open(ConfirmacaoComponent, {\n header: 'Placa não encontrada',\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n }\n })\n .onClose\n .pipe(\n filter(data => !!data),\n )\n .subscribe(data => this.openAgendas(data.placa))\n }\n\n openAgendas(placa: string) {\n this.portariaService.executarEntrada(this.portaria.id, placa)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.dialogService.open(AgendasComponent, {\n header: `Agendamentos | ${placa.toUpperCase()}`,\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n },\n data: {\n veiculo: placa,\n portaria: this.portaria\n }\n })\n });\n }\n\n}\n\nexport interface WsLprLockUnlocked {\n stream: string;\n locked: boolean;\n}","import { NgModule } from \"@angular/core\";\nimport { PortariasComponent } from \"./portarias.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { EntradaComponent } from \"./entrada/entrada.component\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AgendasComponent } from \"./agendas/agendas.component\";\nimport { TableModule } from \"primeng/table\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { MessageModule } from \"primeng/message\";\nimport { InputSwitchModule } from \"primeng/inputswitch\";\nimport { PortariasService } from \"./portarias.service\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { SelectPlantModule } from \"@seniorsistemas/yms-components\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { ConfirmacaoComponent } from \"./confirmacao/confirmacao.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { StompService, StompConfig } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ButtonModule,\n TableModule,\n LoadingStateModule,\n InputSwitchModule,\n InputTextModule,\n DynamicDialogModule,\n HttpClientModule,\n SelectPlantModule,\n MessageModule\n ],\n declarations: [ PortariasComponent, EntradaComponent, AgendasComponent, ConfirmacaoComponent ],\n entryComponents: [ PortariasComponent, AgendasComponent, ConfirmacaoComponent ],\n providers: [ \n PortariasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class PortariasModule {\n constructor(dispatcher: IntegrationDispatcher) {\n dispatcher.dispatch(PortariasComponent);\n }\n}","import { HttpParams, HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { SortMeta } from \"primeng/components/common/api\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nexport class EntityService<T> {\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected actionsUrl: string\n ) {\n this.http = http;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\n this.actionsUrl = actionsUrl;\n\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n\n return params;\n }\n\n private getBodyParams(listParams: ListParams): BodyParams {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n const bodyParams: BodyParams = {};\n\n bodyParams.size = size;\n bodyParams.offset = page;\n\n if (sort && sort.length) {\n bodyParams.orderBy = sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \");\n }\n\n if (filterQuery) bodyParams.filter = filterQuery;\n\n if (displayFields && displayFields.length) bodyParams.displayfields = displayFields.join();\n\n return bodyParams;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n\n public list(listParams: ListParams) {\n return this.http.get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public get(id: any) {\n return this.http.get<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public insert(entity: T) {\n return this.http.post<T>(`${this.entityUrl}`, entity).pipe(this.defaultCatch());\n }\n\n public update(id: any, entity: T) {\n return this.http.put<T>(`${this.entityUrl}/${id}`, entity).pipe(this.defaultCatch());\n }\n\n public delete(id: any) {\n return this.http.delete<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public listCustomFilter(listParams: ListParams, action: string) {\n return this.http.post<T[]>(`${this.actionsUrl}/${action}`, this.getBodyParams(listParams)).pipe(this.defaultCatch());\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const ERP_ENVIRONMENT = new InjectionToken('integration_environment');","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n\nimport { AgendaDto } from \"./agenda-dto\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { ErpProcessData } from \"../../erp-process-data/erp-process-data\";\n\n@Injectable()\nexport class AgendaService extends EntityService<AgendaDto> {\n private readonly _agendaUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService, \n @Inject(ERP_ENVIRONMENT) environment: any ) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/agenda`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this._agendaUrl = `${environment.project.domain}/patio`;\n }\n\n public atualizarAgenda(agenda: any) {\n return this.http.post(`${this._agendaUrl}/actions/atualizarAgenda`, {agenda}).pipe(this.defaultCatch());\n }\n\n public retornaModelosValidacao(tipoAgendamentoId: string) {\n return this.http.post(`yms/agenda/queries/retornaModelosDeValidacao`, {tipoAgendamentoId}).pipe(this.defaultCatch());\n }\n\n public checarRevalidacao(erpProcessData: ErpProcessData) {\n return this.http.post(`yms/agenda/actions/checarRevalidacao`, erpProcessData).pipe(this.defaultCatch());\n }\n\n public listExternalAgenda(listParams: ListParams) {\n return this.http\n .get<AgendaDto>(\"yms/agenda/entities/agenda\", {\n params: this.getListQueryParams(listParams),\n })\n .pipe(this.defaultCatch());\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RecebimentoContratoDto, ContratoRecebimento, ContratoRecebimentoItem } from \"./recebimento-dto\";\nimport { RecebimentoContrato } from \"./recebimento\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RecebimentoContratoService extends EntityService<RecebimentoContratoDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/recebimentoContrato`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComRecebimento(payload: RegistrarChegadaVeiculoComRecebimentoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComRecebimento`, payload).pipe(this.defaultCatch());\n } \n\n public insertContratoRecebimento(recebimentoId: string, contratoRecebimento: ContratoRecebimento) {\n return this.http.post(`${this.entityUrl}/recebimento/${recebimentoId}/contratos`, contratoRecebimento).pipe(this.defaultCatch());\n }\n\n public insertContratoRecebimentoItem(contratoRecebimentoId: string, contratoRecebimentoItem: ContratoRecebimentoItem) {\n return this.http.post(`${this.entityUrl}/contratoRecebimento/${contratoRecebimentoId}/itens`, contratoRecebimentoItem).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComRecebimentoPayload {\n recebimento: RecebimentoContrato,\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { RecebimentoContrato } from \"../core/entities/recebimento-contrato/recebimento\";\nimport { RecebimentoContratoService } from \"../core/entities/recebimento-contrato/recebimento.service\";\n\n@Injectable()\nexport class RecebimentoChegadaVeiculoOverride {\n private readonly RECEBIMENTO_KEY = \"ERP_SENIOR_RECEBIMENTO\"\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private recebimentoService: RecebimentoContratoService) {\n }\n\n public initialize() {\n this.override.addOverride(this.RECEBIMENTO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.RECEBIMENTO_KEY);\n } \n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.recebimentoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({contents}) => contents.length ? contents[0] : null),\n mergeMap((recebimento: RecebimentoContrato) => {\n if (!recebimento) return throwError(\"Os dados da guia ERP Senior não foram informados\");\n\n return this.recebimentoService.registrarChegadaVeiculoComRecebimento({\n recebimento: recebimento,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n })\n })\n )\n }\n}","import { Injectable, Inject } from \"@angular/core\";\nimport { EntityService } from \"../entity-service\";\nimport { ExpedicaoDto } from \"./expedicao-dto\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { Expedicao } from \"./expedicao\";\n\n@Injectable()\nexport class ExpedicaoService extends EntityService<ExpedicaoDto> {\n\n private readonly _baseUrl: string;\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) environment: any) {\n super(http, \n messageService, \n `${environment.project.domain}/${environment.project.service}/entities/expedicao`, \n `${environment.project.domain}/${environment.project.service}/actions`);\n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComExpedicao(payload: RegistrarChegadaVeiculoComExpedicaoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComExpedicao`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComExpedicaoPayload {\n expedicao: Expedicao;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial?: string;\n}","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { Expedicao } from \"../core/entities/expedicao/expedicao\";\nimport { ExpedicaoService } from \"../core/entities/expedicao/expedicao.service\";\n\n@Injectable()\nexport class ExpedicaoChegadaVeiculoOverride {\n private readonly EXPEDICAO_KEY = \"ERP_SENIOR_EXPEDICAO\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private expedicaoService: ExpedicaoService\n ){}\n\n public initialize() {\n this.override.addOverride(this.EXPEDICAO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.EXPEDICAO_KEY);\n }\n\n private functionToOverride(params: OverrideParams){\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.expedicaoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((expedicao: Expedicao) => {\n if (!expedicao) return throwError(\"Não foi possÃvel encontrar os dados de expedição\");\n\n return this.expedicaoService.registrarChegadaVeiculoComExpedicao({\n expedicao,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { catchError } from \"rxjs/operators\";\nimport { MessageService } from \"primeng/api\";\nimport { throwError } from \"rxjs\";\n\n@Injectable()\nexport class IntegrationService {\n private readonly baseUrl: string = `yms/integration/`;\n constructor(private http: HttpClient, private messageService: MessageService) { }\n\n getProcessConfigurationErp(idTipoAgendamento: string) {\n return this.http.get(`${this.baseUrl}queries/getErpProcessConfigurationByTipoAgendamento`, { params: { idTipoAgendamento } }).pipe(this.defaultCatch());\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { Agendamento, ChegadaVeiculo, IntegrationEventsCallback } from \"@seniorsistemas/yms-routines\";\nimport { takeUntil, mergeMap, finalize } from \"rxjs/operators\";\nimport { Agenda } from \"../core/entities/agenda/agenda\";\nimport { Subject, empty } from \"rxjs\";\nimport { IntegrationService } from \"../core/integration.service\";\n\nexport const ERP_SENIOR_HEADER = \"ERP Senior\";\n\n@Agendamento({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ChegadaVeiculo({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox',\n icon: 'fal fa-book'\n})\nexport class FormDescritor { }\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-form *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-form>\n <expedicao-form *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-form>\n <devolucao-form *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-form>\n <recebimento-ordem-compra-form *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-form>\n <processo-avulso-form *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-form>\n <div *ngSwitchDefault>\n <s-loading-state [loading]=\"loading\">\n <h3 *ngIf=\"!loading\" style=\"text-align: center;\">\n ATENÃÃO, não existe Tipo de Processo configurado para esse tipo de agendamento.\n </h3>\n <h3 *ngIf=\"loading\" style=\"text-align: center;\"> Carregando configurações </h3>\n </s-loading-state>\n </div>\n </div>\n </div>\n `\n})\nexport class FormComponent extends FormDescritor implements OnInit, OnDestroy {\n header: string = ERP_SENIOR_HEADER;\n agenda: Agenda;\n tipoProcessoErpAtual: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<void> = new Subject();\n constructor(private integrationCallback: IntegrationEventsCallback, private integrationService: IntegrationService) { \n super();\n }\n\n ngOnInit() {\n this.integrationCallback.onAgendamentoSaved()\n .pipe(\n takeUntil(this.unsubscribe$),\n mergeMap(agenda => {\n this.agenda = agenda;\n this.loading = true;\n if (!!this.agenda) {\n return this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id).pipe(finalize(() => this.loading = false))\n }\n return empty();\n })\n )\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n\n ngOnChanges() {\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { CircuitoFinalizado, ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { IntegrationService } from \"../core/integration.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nconst HEADER = 'Informações fiscais';\n\n@ControleCircuito({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ControleOperacao({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@CircuitoFinalizado({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\nexport class InfoDescritor {\n\n}\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-info *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-info>\n <expedicao-info *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-info>\n <devolucao-info *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-info> \n <recebimento-ordem-compra-info *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-info>\n <processo-avulso-info *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-info>\n </div>\n </div>\n `,\n})\nexport class InfoComponent extends InfoDescritor implements OnInit, OnDestroy {\n @Input() agenda: any;\n\n tipoProcessoErpAtual: string;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private integrationService: IntegrationService\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngOnInit(): void {\n this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { FormGroup } from \"@angular/forms\";\n\n@Injectable()\nexport class FieldCustomizationService {\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n this.http = http;\n this.messageService = messageService;\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public commitFiles(objects: any[]) {\n return this.http.post(\"platform/field_customization/actions/commitObject\", { objects }).pipe(this.defaultCatch());\n }\n\n public deleteFiles(objects: any) {\n return this.http.post(\"platform/field_customization/actions/deleteObjects\", objects).pipe(this.defaultCatch());\n }\n\n public getFiles(formGroup: FormGroup) {\n let fieldCustomization = [];\n\n if (formGroup.value.custom) {\n fieldCustomization = formGroup.value.custom.fieldCustomization || [];\n delete formGroup.value.custom.fieldCustomization;\n }\n\n const filesToCommit: any[] = [];\n let filesToDelete: any = {};\n\n fieldCustomization.forEach(({ domain, service, entity, toDelete, toInsert }: any) => {\n if (!this.isEmpty(toInsert)) {\n const files = Object.keys(toInsert).map((key: string) => {\n const version = toInsert[key].version;\n const fileName = toInsert[key].name;\n const objectId = toInsert[key].objectId;\n return { version, fileName, objectId };\n });\n\n if (!this.isEmpty(files)) {\n filesToCommit.push(...files);\n }\n }\n\n if (!this.isEmpty(toDelete)) {\n const objects: any[] = [];\n Object.keys(toDelete).forEach((key: string) => {\n const fields = toDelete[key] || [];\n const files = fields.map((file: string) => {\n return {\n field: key,\n objectId: file,\n };\n });\n objects.push(...files);\n });\n filesToDelete = { domain, service, entityName: entity, objects };\n }\n });\n\n return { filesToCommit, filesToDelete };\n }\n\n public isEmpty(object: any) {\n if (Array.isArray(object)) {\n return object.length === 0;\n }\n return Object.entries(object).length === 0 && object.constructor === Object;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Injectable } from '@angular/core';\n@Injectable()\nexport class VerificaNotafiscal{\n constructor (\n private messageService: MessageService,\n private translate: TranslateService\n ) {}\n\n public verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal: any, contratos: any, fornecedorNotasTokens: any) {\n if (chaveNotaFiscal == \"\") {\n return false;\n }\n \n let notaFicalDuplicadas = fornecedorNotasTokens.filter(nota => {\n return nota.id == chaveNotaFiscal;\n });\n\n if (typeof contratos !== \"undefined\" && notaFicalDuplicadas.length <= 0) {\n contratos = contratos.value;\n \n if (contratos.length > 0) {\n notaFicalDuplicadas = contratos.filter(contrato => {\n if (contrato.notas.length <= 0) {\n return false;\n }\n let result = contrato.notas.filter(nota => {\n return nota.chaveNotaFiscal == chaveNotaFiscal;\n })\n return result.length > 0;\n });\n }\n }\n\n if (notaFicalDuplicadas.length > 0){\n this.messageService.add({\n severity: \"error\",\n summary: this.translate.instant(\"yms.integration.titulo_nota_fical_ja_exite\"),\n detail: this.translate.instant(\"yms.integration.conteudo_nota_fical_ja_exite\"),\n });\n\n return true;\n }\n return false;\n }\n\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { OrdemCompraDto } from \"./ordem-compra-dto\";\n\n@Injectable()\nexport class OrdemCompraService extends EntityService<OrdemCompraDto> {\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/ordemCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n }\n\n public listOrdensCompra(params: PesquisaOrdensCompraParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarOrdensCompra`, params).pipe(this.defaultCatch());\n }\n}\n\nexport interface PesquisaOrdensCompraParams {\n pessoaId?: string;\n codigo?: number;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n }\n}\n","import { FieldType } from \"@seniorsistemas/angular-components\";\nimport { FormGroup } from \"@angular/forms\";\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\nconst numberPattern = /^\\d+\\b$/;\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) =>\n array.concat(otherArray.filter(item => !array.includes(item)));\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const { isValidValue, typeExists } = getTypeInformation(type, value);\n return !(typeExists && !isValidValue);\n};\n\nexport const getTypeInformation = (type: FieldType, value: any) => {\n switch (type) {\n case FieldType.Time:\n case FieldType.Date:\n case FieldType.DateTime:\n return { isValidValue: false, typeExists: true };\n case FieldType.Integer:\n case FieldType.Double:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n default:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n }\n};\n\nexport const userCanVisualize = (formGroup: FormGroup, allPermissions: any) => {\n return (\n Object.keys(formGroup.controls).filter(field => {\n const errors = formGroup.get(field).errors ? formGroup.get(field).errors.required : formGroup.get(field).errors;\n return allPermissions[field] && !allPermissions[field].visualizar && errors;\n }).length === 0\n );\n};\n\nexport const getProp = (obj: any, path: any) => \n path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n\nexport const dialogConfig = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-4\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"auto\",\n \"max-height\": \"none\",\n \"margin-bottom\": \"0\",\n \"flex\": 1\n },\n};","import { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { map } from \"rxjs/operators\";\nimport { EntityService } from \"../erp-senior/core/entities/entity-service\";\nimport { getProp, isValidFilter, mergeUnique } from \"./utils\";\nconst moment = _moment;\n\nexport function getLookupLabel(data: any = {}, fields: any = [], separator: string, translation?: boolean) {\n const concatenateLabelsLookup = (texto: string) => {\n const splitedLabel = texto.split('-');\n const concatenate = (p: string = ' ', c: string = ' ') => {\n if (p.trim() && c.trim()) return `${p} - ${c}`;\n if (p.trim() && !c.trim()) return `${p}`;\n if (!p.trim() && c.trim()) return `${c}`;\n };\n return splitedLabel.reduce(concatenate);\n };\n return concatenateLabelsLookup(fields.map((field: any) => {\n if (field.indexOf(\".\") > 0) return getProp(data, field);\n return data[field];\n }).join(separator))\n || (translation ? 'yms.erp.sem_descricao' : ' - ');\n}\n\nexport const onLookupRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, value: string, customFilter = '') => {\n const sort = lookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = (searchFields)\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n if (customFilter && customFilter.trim()) {\n filterQuery = filterQuery ? `(${filterQuery}) and ${customFilter}` : customFilter;\n }\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n\nexport const onSearchRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, event: any, customFilter = '') => {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n\n let filterQuery = searchFields\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else if (type == FieldType.String && name.indexOf('.') !== -1) {\n return `containing(${name}, '${value.replace(/'/g, \"\\\\'\")}')`;\n } else if (type == FieldType.String && name.indexOf('.') === -1) {\n return `containing(lower(${name}),lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n } else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = customFilter && customFilter.trim() ? filterQuery.concat(filterQuery ? ' and ' : '').concat(customFilter) : filterQuery;\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ page, sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n","export enum StatusAgenda {\n AGUARDANDO_CONFIRMACAO = \"AGUARDANDO_CONFIRMACAO_SOLICITANTE\",\n AGENDADO = \"AGENDADO\",\n AGUARDANDO_CONFIRMACAO_SOLICITANTE = \"AGUARDANDO_CONFIRMACAO\",\n REJEITADO_POR_VALIDACAO = \"REJEITADO_POR_VALIDACAO\",\n CANCELADO = \"CANCELADO\"\n}\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EmpresaDto } from \"./empresa-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Empresa {\n public id?: string;\n public codigo: string;\n public nome: string;\n public fantasia?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(empresaDto: EmpresaDto, originEntity?: string): Empresa {\n const model: any = { ...empresaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"nome\",\n \"fantasia\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n return model as Empresa;\n }\n\n public static toDto(empresa: Empresa, originEntity?: string): EmpresaDto {\n const dto: any = { ...empresa };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\"; const moment = _moment;\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaDto } from \"./pessoa-dto\";\nimport { SituacaoPessoa } from \"../../enums/situacao-pessoa\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\nimport { TipoParticipanteTransgenia } from \"../../enums/tipo-participante-transgenia\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Pessoa {\n public id?: string;\n public codigo: number;\n public nome: string;\n public cpfCnpj: string;\n public nomeFantasia: string;\n public label?: string;\n public site?: string;\n public situacao?: SituacaoPessoa;\n public cliente?: boolean;\n public fornecedor?: boolean;\n public representante?: boolean;\n public createdBy?: string;\n public createdDate?: Date;\n public tipoParticipante?: TipoParticipanteTransgenia;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(pessoaDto: PessoaDto, originEntity?: string): Pessoa {\n const model: any = { ...pessoaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"nome\",\n \"cpfCnpj\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n return model as Pessoa;\n }\n\n public static toDto(pessoa: Pessoa, originEntity?: string): PessoaDto {\n const dto: any = { ...pessoa };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaJuridicaDto } from \"./pessoa-juridica-dto\";\nimport { Pessoa } from \"../pessoa/pessoa\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class PessoaJuridica {\n public id?: string;\n public pessoa: Pessoa;\n public cnpj: string;\n public nomeFantasia?: string;\n public inscricaoEstadual?: string;\n public inscricaoMunicipal?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(pessoaJuridicaDto: PessoaJuridicaDto, originEntity?: string): PessoaJuridica {\n const model: any = { ...pessoaJuridicaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"pessoa.codigo\",\n \"pessoa.nome\",\n \"pessoa.site\",\n \"pessoa.situacao\",\n \"pessoa.cliente\",\n \"pessoa.fornecedor\",\n \"pessoa.representante\",\n \"cnpj\",\n \"nomeFantasia\",\n \"inscricaoEstadual\",\n \"inscricaoMunicipal\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.pessoa) model.pessoa = Pessoa.fromDto(model.pessoa, \"PessoaJuridica\");\n\n return model as PessoaJuridica;\n }\n\n public static toDto(pessoaJuridica: PessoaJuridica, originEntity?: string): PessoaJuridicaDto {\n const dto: any = { ...pessoaJuridica };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.pessoa) dto.pessoa = Pessoa.toDto(dto.pessoa, \"PessoaJuridica\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PaisDto } from \"./pais-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Pais {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(paisDto: PaisDto, originEntity?: string): Pais {\n const model: any = { ...paisDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"id\", \"codigo\", \"descricao\", \"createdBy\", \"createdDate\", \"lastModifiedBy\", \"lastModifiedDate\"];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n return model as Pais;\n }\n\n public static toDto(pais: Pais, originEntity?: string): PaisDto {\n const dto: any = { ...pais };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EstadoDto } from \"./estado-dto\";\nimport { Pais } from \"../pais/pais\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Estado {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public abreviatura: string;\n public pais: Pais;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(estadoDto: EstadoDto, originEntity?: string): Estado {\n const model: any = { ...estadoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"codigo\",\n \"descricao\",\n \"abreviatura\",\n \"pais.id\",\n \"pais.codigo\",\n \"pais.descricao\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pais\" && model.pais) model.pais = Pais.fromDto(model.pais, \"Estado\");\n\n return model as Estado;\n }\n\n public static toDto(estado: Estado, originEntity?: string): EstadoDto {\n const dto: any = { ...estado };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pais\" && dto.pais) dto.pais = Pais.toDto(dto.pais, \"Estado\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { CidadeDto } from \"./cidade-dto\";\nimport { Estado } from \"../estado/estado\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Cidade {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public estado: Estado;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(cidadeDto: CidadeDto, originEntity?: string): Cidade {\n const model: any = { ...cidadeDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"codigo\",\n \"descricao\",\n \"estado.id\",\n \"estado.codigo\",\n \"estado.descricao\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Estado\" && model.estado) model.estado = Estado.fromDto(model.estado, \"Cidade\");\n\n return model as Cidade;\n }\n\n public static toDto(cidade: Cidade, originEntity?: string): CidadeDto {\n const dto: any = { ...cidade };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Estado\" && dto.estado) dto.estado = Estado.toDto(dto.estado, \"Cidade\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaEnderecoDto } from \"./pessoa-endereco-dto\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Cidade } from \"../cidade/cidade\";\nimport { SituacaoEnderecoPessoa } from \"../../enums/situacao-endereco-pessoa\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class PessoaEndereco {\n public id?: string;\n public codigo: number;\n public pessoa: Pessoa;\n public cep: string;\n public endereco: string;\n public numero?: string;\n public complemento?: string;\n public cidade?: Cidade;\n public telefone?: string;\n public bairro?: string;\n public situacao: SituacaoEnderecoPessoa;\n public padrao?: boolean;\n public origem?: boolean;\n public cobranca?: boolean;\n public entrega?: boolean;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(pessoaEnderecoDto: PessoaEnderecoDto, originEntity?: string): PessoaEndereco {\n const model: any = { ...pessoaEnderecoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n // \"cep\",\n \"endereco\",\n // \"numero\",\n // \"bairro\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.pessoa) model.pessoa = Pessoa.fromDto(model.pessoa, \"PessoaEndereco\");\n if (originEntity !== \"Cidade\" && model.cidade) model.cidade = Cidade.fromDto(model.cidade, \"PessoaEndereco\");\n\n return model as PessoaEndereco;\n }\n\n public static toDto(pessoaEndereco: PessoaEndereco, originEntity?: string): PessoaEnderecoDto {\n const dto: any = { ...pessoaEndereco };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.pessoa) dto.pessoa = Pessoa.toDto(dto.pessoa, \"PessoaEndereco\");\n if (originEntity !== \"Cidade\" && dto.cidade) dto.cidade = Cidade.toDto(dto.cidade, \"PessoaEndereco\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FilialDto } from \"./filial-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { PessoaJuridica } from \"../pessoa-juridica/pessoa-juridica\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Filial {\n public id?: string;\n public codigo: number;\n public nome: string;\n public empresa: Empresa;\n public pessoaJuridica?: PessoaJuridica;\n public endereco?: PessoaEndereco;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(filialDto: FilialDto, originEntity?: string): Filial {\n const model: any = { ...filialDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"nome\",\n \"empresa.nome\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Filial\");\n if (originEntity !== \"PessoaJuridica\" && model.pessoaJuridica)\n model.pessoaJuridica = PessoaJuridica.fromDto(model.pessoaJuridica, \"Filial\");\n if (originEntity !== \"PessoaEndereco\" && model.endereco) model.endereco = PessoaEndereco.fromDto(model.endereco, \"Filial\");\n\n return model as Filial;\n }\n\n public static toDto(filial: Filial, originEntity?: string): FilialDto {\n const dto: any = { ...filial };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Filial\");\n if (originEntity !== \"PessoaJuridica\" && dto.pessoaJuridica)\n dto.pessoaJuridica = PessoaJuridica.toDto(dto.pessoaJuridica, \"Filial\");\n if (originEntity !== \"PessoaEndereco\" && dto.endereco) dto.endereco = PessoaEndereco.toDto(dto.endereco, \"Filial\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Empresa } from \"../empresa/empresa\"\nimport { Filial } from \"../filial/filial\"\nimport * as _moment from \"moment\";import { OrdemCompraDto } from \"./ordem-compra-dto\";\nconst moment = _moment\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\nimport { Pessoa } from \"../pessoa/pessoa\";\n\nexport class OrdemCompra {\n public id: string;\n public codigo: number;\n public empresa: Empresa;\n public filial: Filial;\n public pessoa: Pessoa;\n\n public static fromDto(ordemCompraDto: OrdemCompraDto, originEntity?: string): OrdemCompra {\n const model: any = { ...ordemCompraDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n \"tipo\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Produto\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"Produto\");\n \n return model as OrdemCompra;\n }\n\n public static toDto(ordemCompra: OrdemCompra, originEntity?: string): OrdemCompraDto {\n const dto: any = { ...ordemCompra };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Produto\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Produto\"); \n\n return dto;\n }\n}\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { FormGroup, FormBuilder, FormArray, Validators, FormControl } from \"@angular/forms\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { FormField, FieldType } from \"@seniorsistemas/angular-components\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from 'rxjs';\nimport * as _moment from \"moment\";\nimport { OrdemCompraService } from \"../../core/entities/ordem-compra/ordem-compra.service\";\nimport { Pessoa } from './../../core/entities/pessoa/pessoa';\nimport { Filial } from './../../core/entities/filial/filial';\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { OrdemCompra } from \"../../core/entities/ordem-compra/ordem-compra\";\nconst moment = _moment;\n\n@Component({\n templateUrl: './ordem-compra-form.component.html'\n})\nexport class OrdemCompraFormComponent implements OnInit, OnDestroy {\n public formGroup: FormGroup;\n\n public ordemCompraSearchFields: FormField[];\n public ordemCompraSearchGridFields: FormField[];\n public ordemCompraSearchGridData: OrdemCompra[];\n public ordemCompraLookupDisplayFields = [\"codigo\", \"empresa.nome\"];\n public ordemCompraAdvancedDisplayFields = [\"id\", \"codigo\", \"empresa.nome\", \"filial.nome\", \"pessoa.nome\"];\n public ordemCompraLookupSeparator = \" - \";\n public ordemCompraLookupSuggestions: OrdemCompra[];\n public ordemCompraSearchTotalRecords: number;\n\n private readonly ngUnsubscribe = new Subject<void>();\n private agenda: Agenda;\n private filial: Filial;\n private fornecedor: Pessoa;\n private ordensCompra: string[];\n\n constructor (\n private dialogRef: DynamicDialogRef,\n private dialogConfig: DynamicDialogConfig,\n private ordemCompraService: OrdemCompraService,\n private translate: TranslateService,\n private fb: FormBuilder\n ) { }\n \n ngOnInit(): void {\n const { data } = this.dialogConfig;\n this.agenda = data.agenda;\n this.filial = data.filial;\n this.fornecedor = data.fornecedor;\n this.ordensCompra = data.ordens.map(({ ordemCompra: ordemCompra }: any) => !!ordemCompra ? ordemCompra.id : undefined).filter((val: any) => !!val);\n\n this.formGroup = this.getForm();\n\n this.ordemCompraSearchFields = this.getOrdemCompraFields();\n this.ordemCompraSearchGridFields = this.getOrdemCompraGridFields();\n }\n \n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onOrdemCompraLookupRequest(value: string) {\n const sort = this.ordemCompraLookupDisplayFields.map((field: any) => ({ field, order: 'Asc' }))[0];\n\n const filter: any = {\n numero: +value.replace(/\\D/g, \"\")\n };\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n this.ordemCompraService\n .listOrdensCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n ordensCompraSelecionados: this.ordensCompra,\n pagina: {\n limit: 30,\n offset: 0,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.ordemCompraLookupSuggestions = list.contents.map(OrdemCompra.fromDto);\n });\n }\n\n public onOrdemCompraSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const filter = this.getOrdemCompraFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, b: any) => {\n return {\n ...a,\n [b.name]: filterData[b.name]\n };\n }, {} as any);\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n filter.dataEmissao = filter.dataEmissao && moment(filter.dataEmissao).format(\"YYYY-MM-DD\");\n const sort = (multiSortMeta || []).length ? { field: multiSortMeta[0].field, order: multiSortMeta[0].order === 1 ? 'Asc' : 'Desc' } : { field: 'numero', order: 'Asc' };\n\n this.ordemCompraService\n .listOrdensCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n ordensCompraSelecionados: this.ordensCompra,\n pagina: {\n limit: rows,\n offset: page,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.ordemCompraSearchGridData = list.contents.map(OrdemCompra.fromDto);\n this.ordemCompraSearchTotalRecords = list.totalElements;\n });\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy = sort && sort.length \n ? sort.map((s: any) => ({ campo: s.field, ordenacao: s.order === 1 ? 'Asc' : 'Desc' })) \n : [];\n\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy\n }\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n }\n else if (control instanceof FormGroup){\n this.validateAllFormFields(control);\n } \n else if (control instanceof FormArray) {\n control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n }\n });\n }\n\n public save() {\n if (!this.formGroup.valid) {\n return this.validateAllFormFields(this.formGroup);\n }\n this.close(this.formGroup.get('ordemCompra').value);\n }\n\n public close(data?: any) {\n this.dialogRef.close(data);\n }\n\n private getForm() {\n return this.fb.group({\n ordemCompra: [undefined, Validators.required]\n });\n }\n\n private getOrdemCompraFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n ];\n }\n\n private getOrdemCompraGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n ];\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class FocusService {\n public focusFirstInvalidInput() {\n const invalidFields = Array.from(document.getElementsByClassName(\"ng-invalid\"));\n const firstField: any = invalidFields.find((f: any) => f.nodeName !== \"FORM\");\n if (!firstField) return;\n if (firstField.nodeName === \"P-CALENDAR\") {\n const firstInputId = firstField.getAttribute(\"ng-reflect-input-id\");\n const firstInvalidInput = document.getElementById(firstInputId);\n if (firstInvalidInput) firstInvalidInput.focus();\n } else if (firstField.nodeName === \"S-LOOKUP\") {\n const nestedInput = this.getNestedInput(firstField.firstElementChild);\n if (nestedInput) nestedInput.focus();\n } else firstField.focus();\n }\n\n private getNestedInput(element: any): any {\n if (element.nodeName === \"INPUT\") {\n return element;\n }\n return this.getNestedInput(element.firstElementChild);\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { DerivacaoDto } from \"./entities/derivacao/derivacao-dto\";\nimport { PessoaEnderecoDto } from \"./entities/pessoa-endereco/pessoa-endereco-dto\";\nimport { PessoaDto } from \"./entities/pessoa/pessoa-dto\";\nimport { ProdutoDto } from \"./entities/produto/produto-dto\";\nimport { ERP_ENVIRONMENT } from \"./injectors\";\n\n@Injectable()\nexport class NotaValidatorService {\n private readonly baseUrl: string;\n constructor(@Inject(ERP_ENVIRONMENT) environment: any, private http: HttpClient, private messageService: MessageService) {\n this.baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n pesquisarDocumento(payload: PesquisarDocumentoRequest): Observable<PesquisarDocumentoResponse> {\n return this.http.post<PesquisarDocumentoResponse>(`${this.baseUrl}/queries/pesquisarDocumento`, payload).pipe<PesquisarDocumentoResponse>(this.defaultCatch() as any);\n }\n\n pesquisarDocumentoValidaNotaEmUso(payload: PesquisarDocumentoRequest): Observable<PesquisarDocumentoResponse> {\n return this.http.post<PesquisarDocumentoResponse>(`${this.baseUrl}/queries/pesquisarDocumentoValidaNotaEmUso`, payload).pipe<PesquisarDocumentoResponse>(this.defaultCatch() as any);\n }\n\n pesquisarDocumentoGenerico(payload: PesquisarDocumentoRequest): Observable<PesquisarDocumentoResponse> {\n return this.http.post<PesquisarDocumentoResponse>(`yms/integration/queries/pesquisarDocumentoGenerico`, payload).pipe<PesquisarDocumentoResponse>(this.defaultCatch() as any);\n }\n\n executarAuditoria(payload: ExecutarAuditoriaRequest): Observable<ExecutarAuditoriaResponse> {\n return this.http.post<ExecutarAuditoriaResponse>(`${this.baseUrl}/actions/executarAuditoria`, payload).pipe<ExecutarAuditoriaResponse>(this.defaultCatch() as any);\n }\n\n private defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}\n\nexport interface PesquisarDocumentoRequest {\n filialId?: string;\n chaveDocumento: string;\n}\n\nexport interface PesquisarDocumentoResponse {\n documentos: {\n serie: string;\n serieLegal: string;\n numero: number;\n fornecedor: PessoaDto;\n origemMercadoria: PessoaEnderecoDto;\n itens: ItemDocumento[];\n }[]\n}\n\nexport interface ItemDocumento {\n produto: ProdutoDto;\n derivacao: DerivacaoDto;\n quantidade: number;\n}\n\nexport interface ExecutarAuditoriaRequest {\n chaveNota: string;\n fornecedor?: string;\n filial?: number;\n numeroContrato?: number;\n sequenciaContrato?: number;\n sequenciaOrigem?: number;\n}\n\nexport interface ExecutarAuditoriaResponse {\n situacao: 'APROVADO' | 'REPROVADO',\n mensagem: string;\n}","import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn } from \"@angular/forms\";\nimport { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { finalize, takeUntil } from \"rxjs/operators\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { NotaValidatorService, PesquisarDocumentoResponse } from \"../../core/nota-validator.service\";\n\n@Component({\n templateUrl: './nota-form.component.html',\n providers: [ ConfirmationService ]\n})\n\nexport class NotaFormComponent implements OnInit, OnDestroy {\n formGroup: FormGroup;\n loading = false;\n\n private filialId: string;\n private fornecedor: Pessoa;\n private produto: Produto;\n private fornecedorNotasTokens: any;\n private contratos: any;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(\n fb: FormBuilder,\n private notaValidatorService: NotaValidatorService,\n private dialogConfig: DynamicDialogConfig,\n private confirmationService: ConfirmationService,\n private dialogRef: DynamicDialogRef,\n private verificaNotaFiscal: VerificaNotafiscal,\n\n ) {\n this.formGroup = fb.group({\n chaveNotaFiscal: [ undefined ],\n serieNotaFiscal: [ undefined ],\n serieLegalNotaFiscal: [ undefined ],\n numeroNotaFiscal: [ undefined ],\n }, { validators: this.camposPreenchidosValidation });\n }\n\n ngOnInit() {\n this.filialId = this.dialogConfig.data.filial.id;\n this.fornecedor = this.dialogConfig.data.fornecedor;\n this.produto = this.dialogConfig.data.produto;\n this.fornecedorNotasTokens = this.dialogConfig.data.fornecedorNotasTokens;\n this.contratos = this.dialogConfig.data.contratos;\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n save() {\n const chaveNotaFiscal = this.formGroup.get(\"chaveNotaFiscal\").value;\n\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal, this.contratos, this.fornecedorNotasTokens)) {\n return;\n }\n\n if (!chaveNotaFiscal) {\n this.removeErrorChaveNota();\n }\n\n if (!this.formGroup.valid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.habilitaCamposNotaFiscal();\n\n this.close(this.formGroup.value);\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n\n onBlurNotaFiscal() {\n const chaveNotaFiscal = this.formGroup.get(\"chaveNotaFiscal\").value;\n\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal, this.contratos, this.fornecedorNotasTokens)) { \n return;\n }\n\n this.removeErrorChaveNota();\n this.loading = true;\n this.notaValidatorService.pesquisarDocumentoValidaNotaEmUso({\n chaveDocumento: (chaveNotaFiscal || \"\").trim(),\n filialId: this.filialId\n })\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(this.validateNotaFiscal);\n }\n\n private validateNotaFiscal = (response: PesquisarDocumentoResponse) => {\n if (!response || !response.documentos[0]) {\n return;\n }\n \n const value = response.documentos[0];\n\n if (!value.itens || !value.itens.length) {\n return;\n }\n\n if (!!value.itens[0].produto && !!this.produto && (value.itens[0].produto.id !== this.produto.id)) {\n this.addErrorIfProdutoIsDifferent();\n return;\n }\n\n const notaFiscal = { \n chave: this.formGroup.get(\"chaveNotaFiscal\").value, \n serie: value.serie, \n serieLegal: value.serieLegal, \n numero: value.numero,\n };\n\n if (!this.fornecedor) {\n this.closeAndReturnNota(notaFiscal, value.fornecedor, value.origemMercadoria);\n return;\n }\n\n if (!!(value.fornecedor || {id: undefined}).id && (value.fornecedor.id !== this.fornecedor.id)) {\n this.confirmAndAddNovoFornecedor(notaFiscal, value.fornecedor, value.origemMercadoria);\n return;\n }\n\n this.formGroup.get(\"serieNotaFiscal\").setValue(value.serie);\n this.formGroup.get(\"serieLegalNotaFiscal\").setValue(value.serieLegal);\n this.formGroup.get(\"numeroNotaFiscal\").setValue(value.numero);\n\n this.desabilitaCamposNotaFiscal();\n }\n\n private confirmAndAddNovoFornecedor(infoNota: { chave: string, serie: string, serieLegal: string, numero: number }, fornecedor: any, origemMercadoria: any) {\n this.confirmationService.confirm({\n header: 'O fornecedor vinculado a nota não é o mesmo que o selecionado',\n message: 'O fornecedor vinculado a nota não é o mesmo que o selecionado. Deseja adicionar um novo fornecedor ou cancelar a operação?',\n acceptLabel: 'Adicionar um novo fornecedor',\n rejectLabel: 'Cancelar operação',\n accept: () => this.closeAndReturnNota(infoNota, fornecedor, origemMercadoria),\n reject: () => this.formGroup.get(\"chaveNotaFiscal\").setValue(undefined)\n });\n }\n\n private addErrorIfProdutoIsDifferent() {\n this.formGroup.get(\"chaveNotaFiscal\").setErrors({ errorChaveNota: true });\n }\n\n private removeErrorChaveNota() {\n this.formGroup.get(\"chaveNotaFiscal\").setErrors(null);\n }\n\n private closeAndReturnNota(infoNota: { chave: string, serie: string, serieLegal: string, numero: number }, fornecedor: any, origemMercadoria: any) {\n this.dialogRef.close({ addFornecedor: true, infoNota, fornecedor, origemMercadoria })\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n \n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this.validateAllFormFields(control);\n }\n });\n\n formGroup.markAsDirty({ onlySelf: true });\n }\n\n private camposPreenchidosValidation: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const chave = control.get(\"chaveNotaFiscal\").value;\n const serie = control.get(\"serieNotaFiscal\").value;\n const numero = control.get(\"numeroNotaFiscal\").value;\n\n return !!chave || !!serie || !!numero ? null : { erroMultiplosCampos: true };\n };\n\n private habilitaCamposNotaFiscal() {\n this.formGroup.get(\"serieNotaFiscal\").enable();\n this.formGroup.get(\"serieLegalNotaFiscal\").enable();\n this.formGroup.get(\"numeroNotaFiscal\").enable();\n }\n\n private desabilitaCamposNotaFiscal() {\n this.formGroup.get(\"serieNotaFiscal\").disable();\n this.formGroup.get(\"serieLegalNotaFiscal\").disable();\n this.formGroup.get(\"numeroNotaFiscal\").disable();\n }\n}","import { NgModule } from \"@angular/core\";\nimport { NotaFormComponent } from \"./nota-form.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { ButtonModule, ControlErrorsModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DynamicDialogModule,\n InputTextModule,\n ButtonModule,\n ControlErrorsModule,\n TranslateModule,\n LoadingStateModule,\n ConfirmDialogModule\n ],\n declarations: [ NotaFormComponent ],\n entryComponents: [ NotaFormComponent ]\n})\nexport class NotaFormModule {\n\n}","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { AgendaService } from \"./agenda.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"agenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/agenda`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n AgendaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class AgendaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { CidadeDto } from \"./cidade-dto\";\nimport { EntityService } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class CidadeService extends EntityService<CidadeDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/cidade`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { CidadeService } from \"./cidade.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"cidade\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/cidade`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n CidadeService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class CidadeModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { ContratoCompraItemDto } from \"./contrato-compra-item-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class ContratoCompraItemService extends EntityService<ContratoCompraItemDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n protected environment: any;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/contratoCompraItem`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this.environment = environment;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n\n public pesquisarItensContratoCompra(params: any) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarItensContratoCompra`, params).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraItemService } from \"./contrato-compra-item.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"contratoCompraItem\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/contratoCompraItem`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n ContratoCompraItemService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class ContratoCompraItemModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { ContratoCompraItemDto } from \"../contrato-compra-item/contrato-compra-item-dto\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { ContratoCompraDto } from \"./contrato-compra-dto\";\n\n@Injectable()\nexport class ContratoCompraService extends EntityService<ContratoCompraDto> {\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/contratoCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n }\n\n public listContratosCompra(params: PesquisaContratosCompraParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarContratosCompra`, params).pipe(this.defaultCatch());\n }\n\n public getItens(contratoCompraId: any, id: any) {\n return this.http.get<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens/${id}`).pipe(this.defaultCatch());\n }\n\n public updateItens(contratoCompraId: any, id: any, contratoCompraItemDto: ContratoCompraItemDto) {\n return this.http\n .put<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens/${id}`, contratoCompraItemDto)\n .pipe(this.defaultCatch());\n }\n\n public listItens(contratoCompraId: any, listParams: ListParams) {\n return this.http\n .get<ContratoCompraItemDto[]>(`${this.entityUrl}/${contratoCompraId}/itens`, { params: this.getListQueryParams(listParams) })\n .pipe(this.defaultCatch());\n }\n\n public insertItens(contratoCompraId: any, contratoCompraItemDto: ContratoCompraItemDto) {\n return this.http\n .post<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens`, contratoCompraItemDto)\n .pipe(this.defaultCatch());\n }\n\n public deleteItens(contratoCompraId: any, id: any) {\n return this.http.delete<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens/${id}`).pipe(this.defaultCatch());\n }\n}\n\nexport interface PesquisaContratosCompraParams {\n produtoId?: string;\n pessoaId?: string;\n numero?: number;\n dataEmissao?: Date;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraService } from \"./contrato-compra.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"contratoCompra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/contratoCompra`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n ContratoCompraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class ContratoCompraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { DerivacaoDto } from \"../derivacao/derivacao-dto\";\nimport { EntityService } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class DerivacaoService extends EntityService<DerivacaoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/derivacao`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { DerivacaoService } from \"./derivacao.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"derivacao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/derivacao`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n DerivacaoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class DerivacaoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { EmpresaDto } from \"./empresa-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class EmpresaService extends EntityService<EmpresaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/empresa`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EmpresaService } from \"./empresa.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"empresa\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/empresa`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n EmpresaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class EmpresaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { EstadoDto } from \"./estado-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class EstadoService extends EntityService<EstadoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/estado`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EstadoService } from \"./estado.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"estado\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/estado`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n EstadoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class EstadoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { FamiliaProdutoDto } from \"./familia-produto-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class FamiliaProdutoService extends EntityService<FamiliaProdutoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/familiaProduto`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FamiliaProdutoService } from \"./familia-produto.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"familiaProduto\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/familiaProduto`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n FamiliaProdutoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class FamiliaProdutoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { FilialDto } from \"./filial-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport interface PesquisarFiliaisInput {\n nome?: string;\n codigo?: string;\n cnpjs?: string[];\n pagina: {\n offset: number;\n limit: number;\n listaOrdenacao?: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n };\n}\n\n@Injectable()\nexport class FilialService extends EntityService<FilialDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n private readonly baseUrl: string;\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/filial`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this.baseUrl = `${environment.project.domain}/${environment.project.service}/`;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n public listFiliais(filters: PesquisarFiliaisInput) {\n return this.http.post(`${this.baseUrl}queries/pesquisarFiliais`, filters).pipe(this.defaultCatch());\n }\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FilialService } from \"./filial.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"filial\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/filial`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n FilialService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class FilialModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PaisDto } from \"./pais-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PaisService extends EntityService<PaisDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pais`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PaisService } from \"./pais.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pais\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pais`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PaisService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PaisModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PedidoVendaItemDto } from \"./pedido-venda-item-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PedidoVendaItemService extends EntityService<PedidoVendaItemDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n protected queriesUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService, \n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pedidoVendaItem`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this.queriesUrl = `${environment.project.domain}/${environment.project.service}/queries`;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n public pesquisarItensPedidoVenda(pesquisa: any) {\n return this.http.post(`${this.queriesUrl}/pesquisarItensPedidoVenda`, pesquisa).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PedidoVendaItemService } from \"./pedido-venda-item.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pedidoVendaItem\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pedidoVendaItem`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PedidoVendaItemService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PedidoVendaItemModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { PedidoVendaItemDto } from \"../pedido-venda-item/pedido-venda-item-dto\";\nimport { PedidoVendaDto, PesquisaPedidosVendaDto } from \"./pedido-venda-dto\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PedidoVendaService extends EntityService<PedidoVendaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n protected queriesUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pedidoVenda`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this.queriesUrl = `${environment.project.domain}/${environment.project.service}/queries`;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n public getItens(pedidoVendaId: any, id: any) {\n return this.http.get<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens/${id}`).pipe(this.defaultCatch());\n }\n\n public pesquisarPedidosVenda(pesquisa: PesquisaPedidosVendaDto) {\n return this.http.post(`${this.queriesUrl}/pesquisarPedidosVenda`, pesquisa).pipe(this.defaultCatch());\n }\n\n public updateItens(pedidoVendaId: any, id: any, pedidoVendaItemDto: PedidoVendaItemDto) {\n return this.http\n .put<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens/${id}`, pedidoVendaItemDto)\n .pipe(this.defaultCatch());\n }\n\n public listItens(pedidoVendaId: any, listParams: ListParams) {\n return this.http\n .get<PedidoVendaItemDto[]>(`${this.entityUrl}/${pedidoVendaId}/itens`, { params: this.getListQueryParams(listParams) })\n .pipe(this.defaultCatch());\n }\n\n public insertItens(pedidoVendaId: any, pedidoVendaItemDto: PedidoVendaItemDto) {\n return this.http.post<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens`, pedidoVendaItemDto).pipe(this.defaultCatch());\n }\n\n public deleteItens(pedidoVendaId: any, id: any) {\n return this.http.delete<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens/${id}`).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PedidoVendaService } from \"./pedido-venda.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pedidoVenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pedidoVenda`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PedidoVendaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PedidoVendaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaEnderecoDto } from \"./pessoa-endereco-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaEnderecoService extends EntityService<PessoaEnderecoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoaEndereco`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaEnderecoService } from \"./pessoa-endereco.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoaEndereco\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pessoaEndereco`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaEnderecoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaEnderecoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaFisicaDto } from \"./pessoa-fisica-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaFisicaService extends EntityService<PessoaFisicaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoaFisica`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaFisicaService } from \"./pessoa-fisica.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoaFisica\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pessoaFisica`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaFisicaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaFisicaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaJuridicaDto } from \"./pessoa-juridica-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaJuridicaService extends EntityService<PessoaJuridicaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoaJuridica`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaJuridicaService } from \"./pessoa-juridica.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoaJuridica\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pessoaJuridica`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaJuridicaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaJuridicaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaDto } from \"./pessoa-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaService extends EntityService<PessoaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoa`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaService } from \"./pessoa.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoa\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/pessoa`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { ProdutoDto } from \"./produto-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class ProdutoService extends EntityService<ProdutoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/produto`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n listProdutosRecebimento(params: ProdutoRecebimentoParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarProdutoRecebimento`, params).pipe(this.defaultCatch());\n }\n\n listProdutos(params: ProdutoParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarProduto`, params).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\nexport interface ProdutoRecebimentoParams {\n empresaId?: string;\n filialId?: string;\n tipoAgendamentoId?: string;\n codigo?: string;\n descricao?: string;\n pesquisa?: string;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao?: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n };\n}\n\nexport interface ProdutoParams {\n empresaId?: string;\n filialId?: string;\n tipoAgendamentoId?: string;\n codigo?: string;\n descricao?: string;\n pesquisa?: string;\n situacao?: 'ATIVO' | 'INATIVO';\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao?: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n };\n}\n\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ProdutoService } from \"./produto.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"produto\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/produto`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n ProdutoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class ProdutoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class HasChangeService {\n \n private messageSource = new BehaviorSubject<{id, change}>({id:null, change:false});\n current = this.messageSource.asObservable();\n \n constructor() { }\n \n hasChange(idAgenda: string) {\n let message = {\n id: idAgenda,\n change: true\n }\n this.messageSource.next(message);\n }\n\n hasChangeSave(idAgenda: string) {\n let message = {\n id: idAgenda,\n change: false\n }\n this.messageSource.next(message);\n }\n \n get change() {\n return this.messageSource.value;\n }\n}","export class ErpProcessData {\n agendaId: string;\n chaveIntegracao?: string;\n filialId?: string;\n produtoId?: string;\n motoristaId?: string;\n veiculoId?: string;\n eixos?: number;\n transgeniaId?: string;\n transportadoraId?: string;\n fornecedores?: string[];\n recebimentoTemNota?: boolean; \n}","import { elementEventFullName } from '@angular/compiler/src/view_compiler/view_compiler';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ErpProcessData } from './erp-process-data';\r\n\r\n@Injectable()\r\nexport class ErpProcessService {\r\n\r\n private messageSource = new BehaviorSubject<ErpProcessData>(undefined);\r\n current = this.messageSource.asObservable();\r\n \r\n\r\n constructor() { }\r\n\r\n changeData(message: ErpProcessData) {\r\n this.messageSource.next(message)\r\n return message;\r\n }\r\n\r\n getProcessData() {\r\n return this.messageSource.value;\r\n }\r\n\r\n changeDataErp(newMessage: ErpProcessData) {\r\n let message = this.messageSource.value ? this.messageSource.value : newMessage;\r\n message.filialId = newMessage.filialId;\r\n message.chaveIntegracao = newMessage.chaveIntegracao;\r\n message.produtoId = newMessage.produtoId;\r\n message.transgeniaId = newMessage.transgeniaId;\r\n message.transportadoraId = newMessage.transportadoraId;\r\n return this.changeData(message); \r\n }\r\n\r\n changeDataVeiculo(veiculoId: string, eixos: number) {\r\n let message = this.messageSource.value ? this.messageSource.value : new ErpProcessData();\r\n message.veiculoId = veiculoId;\r\n message.eixos = eixos;\r\n return this.changeData(message);\r\n }\r\n\r\n changeDataMotorista(motoristaId: string) {\r\n let message = this.messageSource.value ? this.messageSource.value : new ErpProcessData();\r\n message.motoristaId = motoristaId;\r\n return this.changeData(message);\r\n }\r\n\r\n changeDataAgenda(agendaId: string, motoristaId: string, veiculoId: string, eixos: number) {\r\n let message = this.messageSource.value ? this.messageSource.value : new ErpProcessData();\r\n message.agendaId = agendaId;\r\n message.motoristaId = motoristaId;\r\n message.veiculoId = veiculoId;\r\n message.eixos = eixos;\r\n return this.changeData(message);\r\n }\r\n\r\n builderErpProcessData(erpProcessData: ErpProcessData, formGroup: FormGroup): ErpProcessData {\r\n erpProcessData.chaveIntegracao = formGroup.get(\"chaveNotaFiscal\") != null ? formGroup.get(\"chaveNotaFiscal\").value : null;\r\n erpProcessData.filialId = this.getFieldFormGroup(formGroup, 'filial');\r\n erpProcessData.produtoId = this.getFieldFormGroup(formGroup, 'produto');\r\n erpProcessData.transgeniaId = this.getFieldFormGroup(formGroup, 'transgenia');\r\n erpProcessData.transportadoraId = this.getFieldFormGroup(formGroup, 'transportadora');\r\n erpProcessData.fornecedores = this.listarIdsFornecedores(formGroup.getRawValue().fornecedores);\r\n return erpProcessData;\r\n }\r\n\r\n builderErpProcessDataValidaNotaNoContrato(erpProcessData: ErpProcessData, formGroup: FormGroup) {\r\n erpProcessData = this.builderErpProcessData(erpProcessData, formGroup);\r\n erpProcessData.recebimentoTemNota = this.verificaSeTemNotaNoContratoNoFornecedo(formGroup.getRawValue().fornecedores);\r\n return erpProcessData;\r\n }\r\n\r\n private verificaSeTemNotaNoContratoNoFornecedo(fornecedores: any){\r\n let contratosTemNota = false;\r\n\r\n let listaContratos = []; \r\n if (fornecedores != null) {\r\n fornecedores.filter(element => element.contratos != null && element.contratos != undefined).forEach(element => listaContratos.push(element.contratos));\r\n }\r\n \r\n let listaNotas = []; \r\n if (listaContratos != null) {\r\n listaContratos.filter(contratos => contratos != null && contratos != undefined).forEach(contratos => listaNotas.push(contratosTemNota = this.verificaSeContratosTemNota(contratos)));\r\n }\r\n return contratosTemNota;\r\n }\r\n\r\n private verificaSeContratosTemNota(contratos: any){\r\n let contratosTemNota = true;\r\n contratos.filter(contrato => contrato != null && contrato != undefined).forEach(contrato => contratosTemNota = contratosTemNota && (contrato.notas.length > 0));\r\n return contratosTemNota;\r\n }\r\n\r\n builderErpProcessDataValidaNotaNaOrdemCompra(erpProcessData: ErpProcessData, formGroup: FormGroup) {\r\n erpProcessData = this.builderErpProcessData(erpProcessData, formGroup);\r\n erpProcessData.recebimentoTemNota = this.verificaSeTemNotaNaOrdemCompraDoFornecedo(formGroup.getRawValue().fornecedores);\r\n return erpProcessData;\r\n }\r\n \r\n private verificaSeTemNotaNaOrdemCompraDoFornecedo(fornecedores: any){\r\n let ordemCompraTemNota = false;\r\n\r\n let listaOrdens = []; \r\n if (fornecedores != null) {\r\n fornecedores.filter(element => element.ordens != null && element.ordens != undefined).forEach(element => listaOrdens.push(element.ordens));\r\n }\r\n \r\n let listaNotas = []; \r\n if (listaOrdens != null) {\r\n listaOrdens.filter(ordens => ordens != null && ordens != undefined).forEach(ordens => listaNotas.push(ordemCompraTemNota = this.verificaSeOrdemCompraTemNota(ordens)));\r\n }\r\n return ordemCompraTemNota;\r\n }\r\n\r\n private verificaSeOrdemCompraTemNota(contratos: any){\r\n let ordemCompraTemNota = true;\r\n contratos.filter(ordem => ordem != null && ordem != undefined).forEach(ordem => ordemCompraTemNota = ordemCompraTemNota && (ordem.notas.length > 0));\r\n return ordemCompraTemNota;\r\n }\r\n\r\n private getFieldFormGroup(formGroup: FormGroup, fieldName: string) {\r\n if(formGroup.get(fieldName) == null || formGroup.get(fieldName).value == null) {\r\n return null\r\n }\r\n return formGroup.get(fieldName).value.id;\r\n }\r\n\r\n private listarIdsFornecedores (fornecedores: any) {\r\n let listaFornecedores = []; \r\n if (fornecedores != null) {\r\n fornecedores.filter(element => element.fornecedor != null && element.fornecedor != undefined).forEach(element => listaFornecedores.push(element.fornecedor));\r\n }\r\n return listaFornecedores.map(val => val.id);\r\n\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class ErpFormConfigService {\n\n private messageSource = new BehaviorSubject<boolean>(false);\n current = this.messageSource.asObservable();\n \n constructor() { }\n\n enableRevalidation() {\n this.messageSource.next(true);\n }\n\n get enable() {\n return this.messageSource.value;\n }\n}","import { HasChangeService } from './../../../core/has-change/has-change-service';\nimport { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n\nimport { RecebimentoContratoService } from \"./recebimento.service\";\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"recebimentoContrato\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/recebimentoContrato`,\n },\n ]),\n ],\n providers: [\n RecebimentoContratoService,\n ErpProcessService,\n ErpFormConfigService,\n HasChangeService\n ],\n declarations: [],\n exports: [],\n})\nexport class RecebimentoContratoModule {}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RoyaltyDto } from \"./royalty-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RoyaltyService extends EntityService<RoyaltyDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/royalty`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { RoyaltyService } from \"./royalty.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"royalty\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/royalty`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n RoyaltyService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class RoyaltyModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { SafraDto } from \"./safra-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class SafraService extends EntityService<SafraDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/safra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { SafraService } from \"./safra.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"safra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/safra`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n SafraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class SafraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { TransportadoraDto } from \"./transportadora-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class TransportadoraService extends EntityService<TransportadoraDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/transportadora`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { TransportadoraService } from \"./transportadora.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"transportadora\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/transportadora`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n TransportadoraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class TransportadoraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { UnidadeMedidaDto } from \"./unidade-medida-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class UnidadeMedidaService extends EntityService<UnidadeMedidaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/unidadeMedida`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { UnidadeMedidaService } from \"./unidade-medida.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"unidadeMedida\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/unidadeMedida`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n UnidadeMedidaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class UnidadeMedidaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { ExpedicaoService } from \"./expedicao.service\";\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"expedicao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/expedicao`,\n },\n ]),\n ],\n providers: [ ExpedicaoService ]\n})\nexport class ExpedicaoModule {\n\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { DevolucaoDto } from \"./devolucao-dto\";\nimport { Devolucao } from \"./devolucao\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class DevolucaoService extends EntityService<DevolucaoDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/devolucao`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n } \n\n public registrarChegadaVeiculoComDevolucao(payload: RegistrarChegadaVeiculoComDevolucaoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComDevolucao`, payload).pipe(this.defaultCatch());\n }\n\n}\n\nexport interface RegistrarChegadaVeiculoComDevolucaoPayload {\n devolucao: Devolucao;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial?: string;\n}\n\n \n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { DevolucaoService } from \"./devolucao.service\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"devolucao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/devolucao`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n DevolucaoService,\n ErpProcessService,\n ErpFormConfigService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class DevolucaoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { OrdemCompraService } from \"./ordem-compra.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"ordemCompra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/ordem-compra`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n OrdemCompraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class OrdemCompraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RecebimentoOrdemCompraDto } from \"./recebimento-ordem-compra-dto\";\nimport { RecebimentoOrdemCompra } from \"./recebimento-ordem-compra\";\n \n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RecebimentoOrdemCompraService extends EntityService<RecebimentoOrdemCompraDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/recebimentoOrdemCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoRecebimentoOrdemCompra(payload: RegistrarChegadaVeiculoRecebimentoOrdemCompraPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComRecebimentoOrdemCompra`, payload).pipe(this.defaultCatch());\n } \n}\n\nexport interface RegistrarChegadaVeiculoRecebimentoOrdemCompraPayload {\n recebimentoOrdemCompra: RecebimentoOrdemCompra,\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { RecebimentoOrdemCompraService } from \"./recebimento-ordem-compra.service\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"recebimentoOrdemCompra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/recebimentoOrdemCompra`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n RecebimentoOrdemCompraService,\n ErpProcessService,\n ErpFormConfigService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class RecebimentoOrdemCompraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { Transgenia } from \"./transgenia\";\n\n@Injectable()\nexport class TransgeniaService extends EntityService<Transgenia> {\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/transgenia`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n}","import { NgModule } from \"@angular/core\";\nimport { TransgeniaService } from \"./transgenia.service\";\n\n@NgModule({\n providers: [ TransgeniaService ]\n})\nexport class TransgeniaModule { }\n","import { Injectable, Inject } from \"@angular/core\";\nimport { EntityService } from \"../entity-service\";\nimport { ProcessoAvulsoDto } from \"./processo-avulso-dto\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { ProcessoAvulso } from \"./processo-avulso\";\n\n@Injectable()\nexport class ProcessoAvulsoService extends EntityService<ProcessoAvulsoDto> {\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any,\n ) {\n super(\n http, messageService, \n `${environment.project.domain}/${environment.project.service}/entities/processoAvulso`,\n `${environment.project.domain}/${environment.project.service}/actions`\n )\n }\n\n registrarChegada(processo: RegistrarChegadaComProcessoAvulsoPayload) {\n return this.http.post(`${this.actionsUrl}/registrarChegadaDeVeiculoComProcessoAvulso`, processo).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaComProcessoAvulsoPayload {\n processoAvulso: ProcessoAvulso;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}","import { NgModule } from \"@angular/core\";\nimport { ProcessoAvulsoService } from \"./processo-avulso.service\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"processoAvulso\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/processoAvulso`,\n },\n ]),\n ],\n providers: [ ProcessoAvulsoService, ErpProcessService, ErpFormConfigService ]\n})\nexport class ProcessoAvulsoModule {\n\n}","import { Inject, Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\nimport { LogIntegracaoDto } from \"./log-integracao-dto\";\nimport { EntityService } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class LogIntegracaoService extends EntityService<LogIntegracaoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/erp/entities/logIntegracao`,\n `${environment.project.domain}/erp/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { LogIntegracaoService } from \"./log-integracao.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"logIntegracao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp_data/entities/logIntegracao`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n LogIntegracaoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class LogIntegracaoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { AgendaModule } from \"./entities/agenda/agenda.module\";\nimport { CidadeModule } from \"./entities/cidade/cidade.module\";\nimport { ContratoCompraItemModule } from \"./entities/contrato-compra-item/contrato-compra-item.module\";\nimport { ContratoCompraModule } from \"./entities/contrato-compra/contrato-compra.module\";\nimport { DerivacaoModule } from \"./entities/derivacao/derivacao.module\";\nimport { EmpresaModule } from \"./entities/empresa/empresa.module\";\nimport { EstadoModule } from \"./entities/estado/estado.module\";\nimport { FamiliaProdutoModule } from \"./entities/familia-produto/familia-produto.module\";\nimport { FilialModule } from \"./entities/filial/filial.module\";\nimport { PaisModule } from \"./entities/pais/pais.module\";\nimport { PedidoVendaItemModule } from \"./entities/pedido-venda-item/pedido-venda-item.module\";\nimport { PedidoVendaModule } from \"./entities/pedido-venda/pedido-venda.module\";\nimport { PessoaEnderecoModule } from \"./entities/pessoa-endereco/pessoa-endereco.module\";\nimport { PessoaFisicaModule } from \"./entities/pessoa-fisica/pessoa-fisica.module\";\nimport { PessoaJuridicaModule } from \"./entities/pessoa-juridica/pessoa-juridica.module\";\nimport { PessoaModule } from \"./entities/pessoa/pessoa.module\";\nimport { ProdutoModule } from \"./entities/produto/produto.module\";\nimport { RecebimentoContratoModule } from \"./entities/recebimento-contrato/recebimento.module\";\nimport { RoyaltyModule } from \"./entities/royalty/royalty.module\";\nimport { SafraModule } from \"./entities/safra/safra.module\";\nimport { TransportadoraModule } from \"./entities/transportadora/transportadora.module\";\nimport { UnidadeMedidaModule } from \"./entities/unidade-medida/unidade-medida.module\";\nimport { ExpedicaoModule } from \"./entities/expedicao/expedicao.module\";\nimport { IntegrationService } from \"./integration.service\";\nimport { DevolucaoModule } from \"./entities/devolucao/devolucao.module\";\nimport { OrdemCompraModule } from \"./entities/ordem-compra/ordem-compra.module\";\nimport { RecebimentoOrdemCompraModule } from \"./entities/recebimento-ordem-compra/recebimento-ordem-compra.module\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { NotaValidatorService } from \"./nota-validator.service\";\nimport { TransgeniaService } from \"./entities/transgenia/transgenia.service\";\nimport { TransgeniaModule } from \"./entities/transgenia/transgenia.module\";\nimport { ProcessoAvulsoModule } from \"./entities/processo-avulso/processo-avulso.module\";\nimport { LogIntegracaoModule } from \"./entities/log-integracao/log-integracao.module\";\n\n@NgModule({\n imports: [\n EmpresaModule,\n PessoaModule,\n PessoaFisicaModule,\n PessoaJuridicaModule,\n PaisModule,\n EstadoModule,\n CidadeModule,\n PessoaEnderecoModule,\n FilialModule,\n TransportadoraModule,\n ProdutoModule,\n UnidadeMedidaModule,\n RoyaltyModule,\n FamiliaProdutoModule,\n SafraModule,\n PedidoVendaModule,\n PedidoVendaItemModule,\n ContratoCompraModule,\n ContratoCompraItemModule,\n RecebimentoContratoModule,\n AgendaModule,\n DerivacaoModule,\n ExpedicaoModule,\n DevolucaoModule,\n OrdemCompraModule,\n RecebimentoOrdemCompraModule,\n TransgeniaModule,\n PermissionsModule,\n ProcessoAvulsoModule,\n LogIntegracaoModule\n ],\n providers: [\n IntegrationService,\n NotaValidatorService\n ],\n exports: [\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class CoreModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { Devolucao } from \"../core/entities/devolucao/devolucao\";\nimport { DevolucaoService } from \"../core/entities/devolucao/devolucao.service\";\n\n@Injectable()\nexport class DevolucaoChegadaVeiculoOverride {\n private readonly DEVOLUCAO_KEY = \"ERP_SENIOR_DEVOLUCAO\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private devolucaoService: DevolucaoService\n ){}\n\n public initialize() {\n this.override.addOverride(this.DEVOLUCAO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.DEVOLUCAO_KEY);\n }\n\n private functionToOverride(params: OverrideParams){\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.devolucaoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((devolucao: Devolucao) => {\n if (!devolucao) return throwError(\"Não foi possÃvel encontrar os dados de devolução\");\n\n return this.devolucaoService.registrarChegadaVeiculoComDevolucao({\n devolucao,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { Veiculo } from './../../veiculo/veiculo';\nimport { Motorista } from './../motorista/motorista';\nimport * as _moment from \"moment\"; const moment = _moment;\nimport { AgendaDto } from \"./agenda-dto\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n\nexport interface Planta {\n id: string;\n nome: string;\n cnpj: string;\n endereco: any;\n}\n\nexport class Agenda {\n public id: string;\n public descricao: string;\n public tipoAgendamento?: any;\n public planta?: any;\n public status?: string;\n public veiculo?: Veiculo;\n public motorista?: Motorista;\n public createdBy?: string;\n public createdByErp?: boolean;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public externalTenant?: any;\n\n public static fromDto(agendaDto: AgendaDto, originEntity?: string): Agenda {\n const model: any = { ...agendaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"descricao\"];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n return model as Agenda;\n }\n\n public static toDto(agenda: Agenda, originEntity?: string): AgendaDto {\n const dto: any = { ...agenda };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n}\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { UnidadeMedidaDto } from \"./unidade-medida-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class UnidadeMedida {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public quantidadeDecimais: number;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(unidadeMedidaDto: UnidadeMedidaDto, originEntity?: string): UnidadeMedida {\n const model: any = { ...unidadeMedidaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"codigo\",\n \"descricao\",\n \"quantidadeDecimais\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n return model as UnidadeMedida;\n }\n\n public static toDto(unidadeMedida: UnidadeMedida, originEntity?: string): UnidadeMedidaDto {\n const dto: any = { ...unidadeMedida };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { RoyaltyDto } from \"./royalty-dto\";\nimport { Empresa } from \"../empresa/empresa\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Royalty {\n public id?: string;\n public empresa: Empresa;\n public codigo: number;\n public descricao: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(royaltyDto: RoyaltyDto, originEntity?: string): Royalty {\n const model: any = { ...royaltyDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"id\", \"codigo\", \"descricao\", \"createdBy\", \"createdDate\", \"lastModifiedBy\", \"lastModifiedDate\"];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Royalty\");\n\n return model as Royalty;\n }\n\n public static toDto(royalty: Royalty, originEntity?: string): RoyaltyDto {\n const dto: any = { ...royalty };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Royalty\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FamiliaProdutoDto } from \"./familia-produto-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Situacao } from \"../../enums/situacao\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class FamiliaProduto {\n public id?: string;\n public empresa: Empresa;\n public codigo: string;\n public descricao: string;\n public situacao: Situacao;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(familiaProdutoDto: FamiliaProdutoDto, originEntity?: string): FamiliaProduto {\n const model: any = { ...familiaProdutoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"id\", \"codigo\", \"descricao\", \"situacao\", \"createdBy\", \"createdDate\", \"lastModifiedBy\", \"lastModifiedDate\"];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"FamiliaProduto\");\n\n return model as FamiliaProduto;\n }\n\n public static toDto(familiaProduto: FamiliaProduto, originEntity?: string): FamiliaProdutoDto {\n const dto: any = { ...familiaProduto };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"FamiliaProduto\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ProdutoDto } from \"./produto-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { UnidadeMedida } from \"../unidade-medida/unidade-medida\";\nimport { Royalty } from \"../royalty/royalty\";\nimport { FamiliaProduto } from \"../familia-produto/familia-produto\";\nimport { TipoProduto } from \"../../enums/tipo-produto\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Produto {\n public id?: string;\n public empresa: Empresa;\n public unidadeMedida: UnidadeMedida;\n public codigo: string;\n public descricao: string;\n public descricaoComplementar: string;\n public tipo: TipoProduto;\n public situacao: Situacao;\n public produtoMisto: boolean = false;\n public comprado: boolean = false;\n public unidadeMedidaAgroG5: UnidadeMedida;\n public royalty?: Royalty;\n public familia?: FamiliaProduto;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(produtoDto: ProdutoDto, originEntity?: string): Produto {\n const model: any = { ...produtoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n // \"tipo\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && model.unidadeMedida)\n model.unidadeMedida = UnidadeMedida.fromDto(model.unidadeMedida, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && model.unidadeMedidaAgroG5)\n model.unidadeMedidaAgroG5 = UnidadeMedida.fromDto(model.unidadeMedidaAgroG5, \"Produto\");\n if (originEntity !== \"Royalty\" && model.royalty) model.royalty = Royalty.fromDto(model.royalty, \"Produto\");\n if (originEntity !== \"FamiliaProduto\" && model.familia) model.familia = FamiliaProduto.fromDto(model.familia, \"Produto\");\n\n return model as Produto;\n }\n\n public static toDto(produto: Produto, originEntity?: string): ProdutoDto {\n const dto: any = { ...produto };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && dto.unidadeMedida) dto.unidadeMedida = UnidadeMedida.toDto(dto.unidadeMedida, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && dto.unidadeMedidaAgroG5)\n dto.unidadeMedidaAgroG5 = UnidadeMedida.toDto(dto.unidadeMedidaAgroG5, \"Produto\");\n if (originEntity !== \"Royalty\" && dto.royalty) dto.royalty = Royalty.toDto(dto.royalty, \"Produto\");\n if (originEntity !== \"FamiliaProduto\" && dto.familia) dto.familia = FamiliaProduto.toDto(dto.familia, \"Produto\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { DerivacaoDto } from \"./derivacao-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Produto } from \"../produto/produto\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\nconst moment = _moment;\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Derivacao {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public empresa: Empresa;\n public produto: Produto;\n public situacao: Situacao;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(derivacaoDto: DerivacaoDto, originEntity?: string): Derivacao {\n const model: any = { ...derivacaoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"codigo\", \"descricao\"];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Derivacao\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"Derivacao\");\n\n return model as Derivacao;\n }\n\n public static toDto(derivacao: Derivacao, originEntity?: string): DerivacaoDto {\n const dto: any = { ...derivacao };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Derivacao\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"Derivacao\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { TransportadoraDto } from \"./transportadora-dto\";\nimport { PessoaJuridica } from \"../pessoa-juridica/pessoa-juridica\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { SituacaoPessoa } from \"../../enums/situacao-pessoa\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Transportadora {\n public id?: string;\n public codigo: number;\n public placaVeiculo: string;\n public pessoa: Pessoa;\n public endereco: PessoaEndereco;\n public situacao: SituacaoPessoa;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(transportadoraDto: TransportadoraDto, originEntity?: string): Transportadora {\n const model: any = { ...transportadoraDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.pessoa)\n model.pessoa = Pessoa.fromDto(model.pessoa, \"Transportadora\");\n if (originEntity !== \"PessoaEndereco\" && model.endereco) model.endereco = PessoaEndereco.fromDto(model.endereco, \"Transportadora\");\n\n return model as Transportadora;\n }\n\n public static toDto(transportadora: Transportadora, originEntity?: string): TransportadoraDto {\n const dto: any = { ...transportadora };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.pessoa)\n dto.pessoa = Pessoa.toDto(dto.pessoa, \"Transportadora\");\n if (originEntity !== \"PessoaEndereco\" && dto.endereco) dto.endereco = PessoaEndereco.toDto(dto.endereco, \"Transportadora\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { Derivacao } from \"../derivacao/derivacao\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Produto } from \"../produto/produto\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\nimport { DevolucaoDto } from \"./devolucao-dto\";\nimport { Filial } from \"../filial/filial\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nconst moment = _moment\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Devolucao {\n public id: string;\n public fornecedor: Pessoa;\n public origemMercadoria: PessoaEndereco; \n public derivacao: Derivacao;\n public produto: Produto;\n public agenda: Agenda;\n public transportadora: Pessoa;\n public chaveNotaFiscal?: string;\n public numeroNotaFiscal?: string;\n public serieNotaFiscal?: string;\n public numeroNotaFiscalProdutor?: string;\n public serieNotaFiscalProdutor?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public custom?: any;\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(devolucaoDto: DevolucaoDto, originEntity?: string): Devolucao {\n const model: any = { ...devolucaoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n \n\n const lookupSeparator = \" - \";\n const displayFields = [\n ''\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.fornecedor) model.fornecedor = Pessoa.fromDto(model.fornecedor, \"Devolucao\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"Devolucao\");\n if (originEntity !== \"Transportadora\" && model.transportadora) model.transportadora = Transportadora.fromDto(model.transportadora, \"Devolucao\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"Devolucao\");\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"Devolucao\");\n if ((originEntity !== \"PessoaEndereco\" && model.origemMercadoria)) model.origemMercadoria = PessoaEndereco.fromDto(model.origemMercadoria, \"Recebimento\");\n if ((originEntity !== \"Derivacao\" && model.derivacao)) model.derivacao = Derivacao.fromDto(model.derivacao, \"Devolucao\");\n return model as Devolucao;\n }\n\n public static toDto(devolucao: Devolucao, originEntity?: string): DevolucaoDto {\n const dto: any = { ...devolucao };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.fornecedor) dto.fornecedor = Pessoa.toDto(dto.fornecedor, \"Devolucao\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Devolucao\");\n if (originEntity !== \"Transportadora\" && dto.transportadora) dto.transportadora = Transportadora.toDto(dto.transportadora, \"Devolucao\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"Devolucao\");\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"Devolucao\");\n if ((originEntity !== \"PessoaEndereco\" && dto.origemMercadoria)) dto.origemMercadoria = PessoaEndereco.toDto(dto.origemMercadoria, \"Devolucao\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","export enum TipoNotaFiscal {\n EMPRESA_JURIDICA = \"EMPRESA_JURIDICA\",\n PRODUTOR_RURAL = \"PRODUTOR_RURAL\"\n}","export enum TipoParticipanteTransgenia {\n NAO_INFORMADO = \"NAO_INFORMADO\",\n PARTICIPANTE_MONSANTO = \"PARTICIPANTE_MONSANTO\",\n NAO_PARTICIPANTE_MONSANTO = \"NAO_PARTICIPANTE_MONSANTO\"\n}\n","import { ErpFormConfigService } from './../../core/erp-form-config/erp-form-config-service';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { ConfirmationService, MessageService, SortMeta } from \"primeng/api\";\nimport { ReplaySubject, Subject } from \"rxjs\";\nimport { concatMap, filter, finalize, mergeMap, takeUntil } from \"rxjs/operators\";\nimport { isValidFilter } from \"../../../utils/utils\";\nimport { onLookupRequest, onSearchRequest } from \"../../../utils/lookup-utils\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { Derivacao } from \"../../core/entities/derivacao/derivacao\";\nimport { DerivacaoService } from \"../../core/entities/derivacao/derivacao.service\";\nimport { Devolucao } from \"../../core/entities/devolucao/devolucao\";\nimport { DevolucaoDto } from \"../../core/entities/devolucao/devolucao-dto\";\nimport { DevolucaoService } from \"../../core/entities/devolucao/devolucao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { FilialService, PesquisarFiliaisInput } from \"../../core/entities/filial/filial.service\";\nimport { PessoaEndereco } from \"../../core/entities/pessoa-endereco/pessoa-endereco\";\nimport { PessoaEnderecoService } from \"../../core/entities/pessoa-endereco/pessoa-endereco.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ProdutoService, ProdutoParams } from \"../../core/entities/produto/produto.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { DevolucaoChegadaVeiculoOverride } from \"../devolucao-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: 'devolucao-form',\n templateUrl: './devolucao-form.component.html'\n})\n\nexport class DevolucaoFormComponent implements OnInit, OnDestroy, AfterViewInit {\n formGroup: FormGroup;\n\n filialSearchFields: FormField[];\n filialSearchGridFields: FormField[];\n filialSearchGridData: Filial[];\n filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n filialLookupSeparator = \" - \";\n filialLookupSuggestions: Filial[];\n filialSearchTotalRecords: number;\n\n fornecedorSearchFields: FormField[];\n fornecedorSearchGridData: Pessoa[];\n fornecedorLookupDisplayFields = [\"codigo\", \"nome\"];\n fornecedorAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n fornecedorLookupSeparator = \" - \";\n fornecedorLookupSuggestions: Pessoa[];\n fornecedorSearchTotalRecords: number;\n\n produtoSearchFields: FormField[];\n produtoSearchGridData: Produto[];\n produtoLookupDisplayFields = [\"codigo\", \"descricao\"];\n produtoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n produtoLookupSeparator = \" - \";\n produtoLookupSuggestions: Produto[];\n produtoSearchTotalRecords: number;\n\n derivacaoSearchFields: FormField[];\n derivacaoSearchGridData: Derivacao[];\n derivacaoLookupDisplayFields = [\"codigo\", \"descricao\"];\n derivacaoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n derivacaoLookupSeparator = \" - \";\n derivacaoLookupSuggestions: Derivacao[];\n derivacaoSearchTotalRecords: number;\n\n origemMercadoriaSearchFields: FormField[];\n origemMercadoriaSearchGridData: PessoaEndereco[];\n origemMercadoriaLookupDisplayFields = [\"codigo\", \"endereco\"];\n origemMercadoriaAdvancedDisplayFields = [\"id\", \"codigo\", \"endereco\", \"numero\"];\n origemMercadoriaLookupSeparator = \" - \";\n origemMercadoriaLookupSuggestions: PessoaEndereco[];\n origemMercadoriaSearchTotalRecords: number;\n\n transportadoraSearchFields: FormField[];\n transportadoraSearchGridFields: FormField[];\n transportadoraSearchGridData: Transportadora[];\n transportadoraLookupDisplayFields = [\"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraAdvancedDisplayFields = [\"id\", \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraLookupSeparator = \" - \";\n transportadoraLookupSuggestions: Transportadora[];\n transportadoraSearchTotalRecords: number;\n\n disableButtonSave: boolean = false;\n\n totalEixosContratados: number = 0;\n totalEixosComposicao: number = 0;\n\n private formCarregado: any;\n\n public saveAndInitButton: any;\n\n public loading: boolean;\n\n @Input() private agenda: Agenda;\n\n private readonly ngUnsubscribe = new Subject<void>(); \n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private translate: TranslateService,\n private filialService: FilialService,\n private pessoaService: PessoaService,\n private produtoService: ProdutoService,\n private derivacaoService: DerivacaoService,\n private origemMercadoriaService: PessoaEnderecoService,\n private transportadoraService: TransportadoraService,\n private devolucaoService: DevolucaoService,\n private messageService: MessageService,\n private route: ActivatedRoute,\n private override: DevolucaoChegadaVeiculoOverride,\n private confirmationService: ConfirmationService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private hasChangeService: HasChangeService\n ) {\n this.formGroup = this.getFormGroup();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.override.remove();\n }\n\n ngAfterViewInit(): void {\n this.override.initialize();\n this.saveAndInitButton = document.getElementById('init');\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n ngOnInit() {\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n this.fornecedorSearchFields = this.getFornecedorSearchFields();\n this.produtoSearchFields = this.getProdutoSearchFields();\n this.derivacaoSearchFields = this.getDerivacaoSearchFields();\n this.origemMercadoriaSearchFields = this.getOrigemMercadoriaSearchFields();\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe(({ agenda }) => {\n if (agenda != 'new') {\n this.getDevolucao(agenda);\n }\n });\n\n this.getEmpresaFilial();\n this.filialValueChanges();\n\n const getFilterQueryProduto = (value: any) => `produto.id eq '${value.id}' and situacao eq 'ATIVO'`;\n this.checkValuesChanges(\"produto\", \"derivacao\", this.derivacaoService,\n getFilterQueryProduto, ['codigo', 'descricao'], 10, true, true\n );\n\n const getFilterQueryFornecedor = (value: any) => `pessoa.id eq '${value.id}'`;\n this.checkValuesChanges(\n \"fornecedor\", \"origemMercadoria\", this.origemMercadoriaService,\n getFilterQueryFornecedor, ['codigo', 'endereco'], 10, false, true\n );\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n const statusAgenda = [\"AGUARDANDO_CONFIRMACAO_SOLICITANTE\", \"AGENDADO\", \"AGUARDANDO_CONFIRMACAO\", \"EM_EXECUCAO\", \"REJEITADO_POR_VALIDACAO\"];\n if (this.agenda && !statusAgenda.includes(this.agenda.status)) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n this.createdByErpDisableForm();\n\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n }\n\n public createdByErpDisableForm() {\n if (this.agenda && this.agenda.createdByErp) {\n this.formGroup.get('filial').disable();\n this.formGroup.get('fornecedor').disable();\n this.formGroup.get('produto').disable();\n this.formGroup.get('derivacao').disable();\n this.formGroup.get('origemMercadoria').disable();\n this.formGroup.get('transportadora').disable();\n this.formGroup.get('contratos').disable();\n }\n }\n\n private getEmpresaFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length !== 1) return;\n\n this.filialService\n .list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: ['*', 'empresa.nome']\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0]));\n }\n });\n }\n\n private filialValueChanges() {\n this.formGroup.get(\"filial\")\n .valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(value => {\n if (!!value) {\n return this.formGroup.get(\"produto\").enable();\n }\n this.formGroup.get(\"produto\").setValue(undefined);\n this.formGroup.get(\"produto\").disable();\n });\n }\n\n private checkValuesChanges(formControlUpdated: string, formControlDependent: string, service: any, getFilterQuery: any,\n variables: any, querySize: number = 1, isChangeValidators?: boolean, clearFormControlDependent?: boolean) {\n\n this.formGroup.get(formControlUpdated)\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n filter(value => {\n if (isChangeValidators) {\n this.formGroup.get(formControlDependent).setValidators(value ? Validators.required : Validators.nullValidator);\n }\n if (clearFormControlDependent) {\n this.formGroup.get(formControlDependent).setValue(null);\n }\n if (!value) {\n this.formGroup.get(formControlDependent).setValue(undefined);\n this.formGroup.get(formControlDependent).disable();\n return false;\n }\n return true;\n }),\n mergeMap((value: any) => {\n const filterQuery = getFilterQuery(value);\n return service.list({ filterQuery, page: 0, size: querySize });\n })\n )\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.formGroup.get(formControlDependent).enable();\n return;\n }\n if (contents.length === 1) {\n const code = contents[0][variables[0]] ? contents[0][variables[0]].toString() : '';\n const description = contents[0][variables[1]] ? contents[0][variables[1]].toString() : '';\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant('yms.erp.derivacao_sem_descricao');\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n \n this.formGroup.get(formControlDependent).setValue(contents[0]);\n }\n\n if (contents.length > 1) {\n this.formGroup.get(formControlDependent).enable();\n } else {\n this.formGroup.get(formControlDependent).disable();\n }\n });\n }\n\n public getDevolucao(agendaId: string) {\n this.devolucaoService\n .list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (!contents.length) {\n return;\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao = contents[0].agenda && contents[0].agenda.veiculo\n ? contents[0].agenda.veiculo.eixos || 0 : 0;\n\n const devolucao: DevolucaoDto = Devolucao.fromDto(contents[0]);\n this.formGroup.enable();\n this.formGroup.patchValue(devolucao);\n });\n this.formCarregado = true;\n }\n\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) =>\n this.filialLookupSuggestions = list.filiais.map((filial: any) => Filial.fromDto(filial))\n );\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n onFornecedorLookupRequest(value: string) {\n onLookupRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields, this.fornecedorAdvancedDisplayFields,\n this.fornecedorLookupSeparator, this.pessoaService, value, ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.fornecedorLookupSuggestions = list.contents);\n }\n\n onFornecedorSearchRequest(event: any) {\n onSearchRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields,\n this.fornecedorAdvancedDisplayFields, this.fornecedorLookupSeparator, this.pessoaService, event,\n ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.fornecedorSearchGridData = list.contents;\n this.fornecedorSearchTotalRecords = list.totalElements;\n });\n }\n\n onProdutoLookupRequest(value: string) {\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService\n .listProdutos({\n pesquisa: value,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null,\n situacao: 'ATIVO',\n pagina: {\n limit: 100,\n offset: 0\n }\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => this.produtoLookupSuggestions = res.produtos.map(Produto.fromDto));\n }\n\n onProdutoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getProdutoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as ProdutoParams);\n\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService.listProdutos({\n ...filterInput,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n situacao: 'ATIVO',\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => {\n this.produtoSearchTotalRecords = res.qtdTotalRegistros;\n this.produtoSearchGridData = res.produtos.map(Produto.fromDto);\n });\n }\n\n onDerivacaoLookupRequest(value: string) {\n onLookupRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields,\n this.derivacaoLookupSeparator, this.derivacaoService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoLookupSuggestions = list.contents;\n });\n }\n\n onDerivacaoSearchRequest(event: any) {\n onSearchRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields,\n this.derivacaoAdvancedDisplayFields, this.derivacaoLookupSeparator, this.derivacaoService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoSearchGridData = list.contents;\n this.derivacaoSearchTotalRecords = list.totalElements;\n });\n }\n\n onOrigemMercadoriaLookupRequest(value: string) {\n onLookupRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, value,\n ` pessoa.id eq '${this.formGroup.get(\"fornecedor\").value.id}' `\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaLookupSuggestions = list.contents;\n });\n }\n\n onOrigemMercadoriaSearchRequest(event: any) {\n onSearchRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, event,\n ` pessoa.id eq '${this.formGroup.get(\"fornecedor\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaSearchGridData = list.contents;\n this.origemMercadoriaSearchTotalRecords = list.totalElements;\n });\n }\n\n\n onTransportadoraLookupRequest(value: string) {\n onLookupRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n onTransportadoraSearchRequest(event: any) {\n onSearchRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace('.', '').replace('/', '').replace('-', '');\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService.list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const code = contents[0].codigo ? contents[0].codigo.toString() : '';\n const description = contents[0].descricao ? contents[0].descricao.toString() : '';\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant('yms.erp.derivacao_sem_descricao');\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n this.formGroup.get('transportadora').setValue(contents[0]);\n }\n });\n }\n }\n\n onSave(start?: boolean) {\n this.formGroup.get('agenda').setValue(this.agenda);\n if (this.formGroup.invalid) {\n this.validateAllFormFields(this.formGroup);\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false)\n )\n .subscribe((value: any) => {\n this.formGroup.get('id').setValue(value.id || null);\n this.successMessage();\n if (start && this.saveAndInitButton) {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n const devolucaoDto = Devolucao.toDto(value);\n\n if (this.isNew() && !value.id) {\n return this.devolucaoService.insert(devolucaoDto);\n } else {\n return this.devolucaoService.update(this.formGroup.value.id, devolucaoDto);\n }\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n private getFormGroup() {\n return this.fb.group({\n id: [undefined],\n filial: [undefined, Validators.required],\n fornecedor: [undefined, Validators.required],\n produto: [{ value: undefined, disabled: true }, Validators.required],\n derivacao: [{ value: undefined, disabled: true }, Validators.required],\n origemMercadoria: [{ value: undefined, disabled: true }, Validators.required],\n transportadora: [undefined],\n agenda: [undefined, Validators.required],\n chaveNotaFiscal: [undefined],\n numeroNotaFiscal: [undefined],\n serieNotaFiscal: [undefined],\n numeroNotaFiscalProdutor: [undefined],\n serieNotaFiscalProdutor: [undefined]\n });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n });\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n })\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n })\n ];\n }\n\n private getFornecedorSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_codigo\")\n }),\n ];\n }\n\n private getProdutoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_codigo\")\n }),\n ];\n }\n\n private getDerivacaoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_codigo\")\n }),\n ];\n }\n\n private getOrigemMercadoriaSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_codigo\")\n }),\n new FormField({\n name: \"numero\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_numero\")\n }),\n new FormField({\n name: \"endereco\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_endereco\")\n }),\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n}\n","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { Subject, throwError, of } from \"rxjs\";\nimport { takeUntil, switchMap, finalize } from \"rxjs/operators\";\nimport { Devolucao } from \"../../../core/entities/devolucao/devolucao\";\nimport { DevolucaoService } from \"../../../core/entities/devolucao/devolucao.service\";\nimport { DevolucaoDto } from \"../../../core/entities/devolucao/devolucao-dto\";\n\n\n@Component({\n selector: 'devolucao-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_fornecedor' | translate}}</span>\n <span class=\"data\">{{devolucao?.fornecedor?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_transportadora' | translate}}</span>\n <span class=\"data\">{{devolucao?.transportadora?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_produto' | translate}}</span>\n <span class=\"data\">{{devolucao?.produto?.descricao}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_derivacao' | translate}}</span>\n <span class=\"data\">{{devolucao?.derivacao?.descricao}}</span>\n </div>\n \n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_chave_nota_fiscal' | translate}}</span>\n <span class=\"data\">{{devolucao?.chaveNotaFiscal}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_numero_nota_fiscal' | translate}}</span>\n <span class=\"data\">{{devolucao?.numeroNotaFiscal}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_serie_nota_fiscal' | translate}}</span>\n <span class=\"data\">{{devolucao?.serieNotaFiscal}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_numero_nota_fiscal_produtor' | translate}}</span>\n <span class=\"data\">{{devolucao?.numeroNotaFiscalProdutor}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_serie_nota_fiscal_produtor' | translate}}</span>\n <span class=\"data\">{{devolucao?.serieNotaFiscalProdutor}}</span>\n </div> \n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_origem_mercadoria' | translate}}</span>\n <span class=\"data\">{{devolucao?.origemMercadoria?.cep}} - {{devolucao?.origemMercadoria?.endereco}}</span>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./devolucao-info.component.scss']\n})\nexport class DevolucaoInfoComponent implements AfterViewInit {\n\n @Input() agenda: any;\n\n devolucao: Devolucao;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private devolucaoService: DevolucaoService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.devolucaoService.list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({ contents }) => {\n if (!contents.length) return throwError(\"Devolução não encontrado.\");\n\n return of(contents[0]);\n }),\n finalize(() => this.loading = false)\n )\n .subscribe((devolucao: DevolucaoDto) => this.devolucao = Devolucao.fromDto(devolucao));\n }\n\n}","import * as _moment from \"moment\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { Filial } from \"../filial/filial\";\nimport { PedidoVenda } from \"../pedido-venda/pedido-venda\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nimport { ExpedicaoDto } from \"./expedicao-dto\";\nimport { PedidoVendaItem } from \"../pedido-venda-item/pedido-venda-item\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\nconst moment = _moment\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Expedicao {\n public id: string;\n public clienteFaturamento: Pessoa;\n public clienteRemessa: Pessoa;\n public filial: Filial;\n public transportadora: Transportadora;\n public pedidos: OrdemVenda[];\n public agenda: Agenda;\n public eixos?: number;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(expedicaoDto: ExpedicaoDto, originEntity?: string): Expedicao {\n const model: any = { ...expedicaoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"clienteFaturamento.id\",\n \"clienteFaturamento.codigo\",\n \"clienteFaturamento.nome\",\n \"clienteRemessa.id\",\n \"clienteRemessa.codigo\",\n \"clienteRemessa.nome\",\n \"filial.id\",\n \"filial.codigo\",\n \"filial.nome\",\n \"transportadora.id\",\n \"transportadora.codigo\",\n \"transportadora.placaVeiculo\",\n \"pedidoVenda.id\",\n \"agenda.id\",\n \"agenda.descricao\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.clienteFaturamento) model.clienteFaturamento = Pessoa.fromDto(model.clienteFaturamento, \"Recebimento\");\n if (originEntity !== \"Pessoa\" && model.clienteRemessa) model.clienteRemessa = Pessoa.fromDto(model.clienteRemessa, \"Recebimento\");\n if ((originEntity !== \"Filial\" && model.filial)) model.filial = Filial.fromDto(model.filial, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && model.transportadora)) model.transportadora = Transportadora.fromDto(model.transportadora, \"Recebimento\");\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"Recebimento\");\n\n return model as Expedicao;\n }\n\n public static toDto(expedicao: Expedicao, originEntity?: string): ExpedicaoDto {\n const dto: any = { ...expedicao };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.clienteFaturamento) dto.clienteFaturamento = Pessoa.toDto(dto.clienteFaturamento, \"Recebimento\");\n if (originEntity !== \"Pessoa\" && dto.clienteRemessa) dto.clienteRemessa = Pessoa.toDto(dto.clienteRemessa, \"Recebimento\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && dto.transportadora)) dto.transportadora = Transportadora.toDto(dto.transportadora, \"Recebimento\");\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"Recebimento\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\nexport interface OrdemVenda {\n id?: string;\n expedicao?: Expedicao;\n pedidoVenda: PedidoVenda;\n itens: any[];\n}\n\nexport interface OrdemVendaItem {\n id?: string;\n pedido?: OrdemVenda;\n item: PedidoVendaItem;\n quantidade: number;\n}\n","import { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n FormArray,\n AbstractControl,\n} from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport * as _moment from \"moment\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { forkJoin, of, Subject, throwError } from \"rxjs\";\nimport { catchError, concatMap, finalize, map, takeUntil, } from \"rxjs/operators\";\nimport { FieldCustomizationService } from \"../../../utils/field-customization.service\";\nimport { FocusService } from \"../../../utils/focus.service\";\nimport {\n isValidFilter,\n mergeUnique,\n userCanVisualize,\n} from \"../../../utils/utils\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport {\n Expedicao,\n OrdemVendaItem,\n} from \"../../core/entities/expedicao/expedicao\";\nimport { ExpedicaoService } from \"../../core/entities/expedicao/expedicao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport {\n FilialService,\n PesquisarFiliaisInput,\n} from \"../../core/entities/filial/filial.service\";\nimport { PedidoVendaService } from \"../../core/entities/pedido-venda/pedido-venda.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { ExpedicaoChegadaVeiculoOverride } from \"../expedicao-chegada-veiculo.override\";\nimport { PedidoVenda } from \"../../core/entities/pedido-venda/pedido-venda\";\nimport { PedidoVendaItem } from \"../../core/entities/pedido-venda-item/pedido-venda-item\";\nimport { PedidoVendaItemService } from \"../../core/entities/pedido-venda-item/pedido-venda-item.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport {\n PedidoVendaDto,\n PesquisaPedidosVendaDto,\n} from \"../../core/entities/pedido-venda/pedido-venda-dto\";\nimport { onLookupRequest, onSearchRequest } from \"../../../utils/lookup-utils\";\nimport { ConfirmationService, SortMeta } from \"primeng/api\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from \"../../core/erp-form-config/erp-form-config-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: \"expedicao-form\",\n templateUrl: \"./expedicao-form.component.html\",\n styleUrls: [\"../../erp-senior.scss\"],\n})\nexport class ExpedicaoFormComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n public localeConfig: any = {};\n public currencyLocaleOptions: any = {};\n public permissions: any = {};\n public allPermissions: any = {};\n public pedidoAtual: FormGroup;\n\n public formGroup: FormGroup;\n public pedidoVendaForm: FormGroup;\n public itemFormGroup: FormGroup;\n public loading: boolean;\n public mainPanelCollapsed = false;\n public visibleDialog = false;\n\n private formCarregado = false;\n\n public clienteFaturamentoLookupSuggestions: Pessoa[];\n public clienteFaturamentoLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n public clienteFaturamentoAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n public clienteFaturamentoLookupSeparator = \" - \";\n public clienteFaturamentoSearchFields: FormField[];\n public clienteFaturamentoSearchGridFields: FormField[];\n public clienteFaturamentoSearchGridData: Pessoa[];\n public clienteFaturamentoSearchTotalRecords: number;\n\n public clienteRemessaLookupSuggestions: Pessoa[];\n public clienteRemessaLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n public clienteRemessaAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n public clienteRemessaLookupSeparator = \" - \";\n public clienteRemessaSearchFields: FormField[];\n public clienteRemessaSearchGridFields: FormField[];\n public clienteRemessaSearchGridData: Pessoa[];\n public clienteRemessaSearchTotalRecords: number;\n\n public filialLookupSuggestions: Filial[];\n public filialLookupDisplayFields = [\"codigo\", \"nome\"];\n public filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n public filialLookupSeparator = \" - \";\n public filialSearchFields: FormField[];\n public filialSearchGridFields: FormField[];\n public filialSearchGridData: Filial[];\n public filialSearchTotalRecords: number;\n\n public transportadoraLookupSuggestions: Transportadora[];\n public transportadoraLookupDisplayFields = [\n \"codigo\",\n \"pessoa.nome\",\n \"pessoa.cpfCnpj\",\n ];\n public transportadoraAdvancedDisplayFields = [\n \"id\",\n \"codigo\",\n \"pessoa.nome\",\n \"pessoa.cpfCnpj\",\n ];\n public transportadoraLookupSeparator = \" - \";\n public transportadoraSearchFields: FormField[];\n public transportadoraSearchGridFields: FormField[];\n public transportadoraSearchGridData: Transportadora[];\n public transportadoraSearchTotalRecords: number;\n\n public pedidoVendaLookupSuggestions: PedidoVenda[];\n public pedidoVendaLookupDisplayFields = [\"numero\", \"cliente\"];\n public pedidoVendaAdvancedDisplayFields = [\n \"id\",\n \"numero\",\n \"filial.nome\",\n \"filial.codigo\",\n \"pessoa.id\",\n \"pessoa.codigo\",\n \"pessoa.nome\",\n ];\n public pedidoVendaLookupSeparator = \" - \";\n public pedidoVendaSearchFields: FormField[];\n public pedidoVendaSearchGridFields: FormField[];\n public pedidoVendaSearchGridData: PedidoVenda[];\n public pedidoVendaSearchTotalRecords: number;\n\n public pedidoVendaItemLookupSuggestions: PedidoVendaItem[];\n public pedidoVendaItemLookupDisplayFields = [\"sequencia\", \"sku.descricao\"];\n public pedidoVendaItemAdvancedDisplayFields = [\n \"id\",\n \"sequencia\",\n \"sku.descricao\",\n ];\n public pedidoVendaItemLookupSeparator = \" - \";\n public pedidoVendaItemSearchFields: FormField[];\n public pedidoVendaItemSearchGridFields: FormField[];\n public pedidoVendaItemSearchGridData: PedidoVendaItem[];\n public pedidoVendaItemSearchTotalRecords: number;\n\n public agendaLookupSuggestions: Agenda[];\n public agendaLookupDisplayFields = [\"id\", \"descricao\"];\n public agendaAdvancedDisplayFields = [\"id\", \"descricao\"];\n public agendaLookupSeparator = \" - \";\n public agendaSearchFields: FormField[];\n public agendaSearchGridFields: FormField[];\n public agendaSearchGridData: Agenda[];\n public agendaSearchTotalRecords: number;\n\n public disableButtonSave: boolean = false;\n\n public disableOrdersButtons: boolean = true;\n\n public totalEixosContratados: number = 0;\n public totalEixosComposicao: number = 0;\n\n public ordersValid = true;\n public saveAndInitButton: any;\n\n @Input() private agenda: Agenda;\n @Input() private revalidacao: boolean;\n\n @ViewChild(\"customTemplate\")\n public customTemplate: TemplateRef<any>;\n\n @ViewChild(\"customFormFields\")\n public customFormFields: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject(); \n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n constructor(\n private expedicaoService: ExpedicaoService,\n private router: Router,\n private route: ActivatedRoute,\n private messageService: MessageService,\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private hotkeysService: HotkeysService,\n private fieldCustomization: FieldCustomizationService,\n private focusService: FocusService,\n private pessoaService: PessoaService,\n private filialService: FilialService,\n private transportadoraService: TransportadoraService,\n private pedidoVendaService: PedidoVendaService,\n private pedidoVendaItemService: PedidoVendaItemService,\n private agendaService: AgendaService,\n private override: ExpedicaoChegadaVeiculoOverride,\n private confirmationService: ConfirmationService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private hasChangeService: HasChangeService\n ) {\n this.formGroup = this.getFormGroup();\n this.pedidoVendaForm = this.getPedidoVendaForm();\n this.itemFormGroup = this.getOrdemVendaItemForm();\n }\n\n public ngOnInit() {\n this.route.data\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => this.onRouteDataChange(data));\n\n this.route.params\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ agenda }) => {\n if (agenda != \"new\") {\n this.getExpedicao(agenda);\n } else {\n this.buscarFilial();\n }\n });\n\n this.clienteFaturamentoSearchFields = this.getClienteSearchFields();\n this.clienteFaturamentoSearchGridFields = this.getClienteSearchGridFields();\n\n this.clienteRemessaSearchFields = this.getClienteSearchFields();\n this.clienteRemessaSearchGridFields = this.getClienteSearchGridFields();\n\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n\n this.pedidoVendaSearchFields = this.getPedidoVendaSearchFields();\n this.pedidoVendaSearchGridFields = this.getPedidoVendaSearchGridFields();\n\n this.pedidoVendaItemSearchFields = this.getPedidoVendaItemSearchFields();\n this.pedidoVendaItemSearchGridFields = this.getPedidoVendaItemSearchGridFields();\n\n this.agendaSearchFields = this.getAgendaSearchFields();\n this.agendaSearchGridFields = this.getAgendaSearchGridFields();\n\n this.setHotkeys();\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n const statusAgenda = [\n \"AGUARDANDO_CONFIRMACAO_SOLICITANTE\",\n \"AGENDADO\",\n \"AGUARDANDO_CONFIRMACAO\",\n \"EM_EXECUCAO\",\n \"REJEITADO_POR_VALIDACAO\",\n ];\n\n if (this.agenda && !statusAgenda.includes(this.agenda.status)) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n\n if (this.agenda && this.agenda.createdByErp) {\n this.formGroup.get(\"filial\").disable();\n this.formGroup.get(\"transportadora\").disable();\n this.formGroup.get(\"clienteRemessa\").disable();\n this.formGroup.get(\"clienteFaturamento\").disable();\n this.pedidoVendaForm.disable();\n this.itemFormGroup.disable();\n this.disableOrdersButtons = true;\n }\n\n this.setPedidosValueChanges();\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message); \n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message); \n\n this.revalidacaoTransportadora ();\n this.verificaSeTemAlteracao();\n }\n \n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n private revalidacaoTransportadora () {\n this.formGroup.get(\"transportadora\").valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((_) => {\n const transp = this.formGroup.get(\"transportadora\").value;\n if (this.erpProcessService && transp) { \n this.erpProcessData.transportadoraId = transp.id; \n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n }); \n }\n\n public abrirPedidoVenda(pedidoVenda?: PedidoVenda) {\n const buttons = document\n .getElementById(\"pedidoVenda\")\n .getElementsByTagName(\"button\");\n\n if (!buttons.length) {\n return;\n }\n\n this.pedidoVendaForm.patchValue({ pedidoVenda });\n buttons[0].click();\n }\n\n public excluirPedidoVenda(index: number) {\n (this.formGroup.get(\"pedidos\") as FormArray).removeAt(index);\n }\n\n public abrirPedidoVendaItem(\n pedido: FormGroup,\n pedidoVendaItem?: OrdemVendaItem\n ) {\n this.itemFormGroup.patchValue(\n pedidoVendaItem || { item: undefined, quantidade: 1 }\n );\n this.pedidoAtual = pedido;\n this.visibleDialog = true;\n }\n\n public excluirPedidoVendaItem(id: string, pedido: FormGroup) {\n const index = (\n (pedido.get(\"itens\") as FormArray).value as OrdemVendaItem[]\n ).findIndex((item) => item.item.id === id);\n if (index >= 0) {\n (pedido.get(\"itens\") as FormArray).removeAt(index);\n }\n }\n\n public setPedidosValueChanges() {\n (this.formGroup.get(\"pedidos\") as FormArray).valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n const pedidosLength = (this.formGroup.get(\"pedidos\") as FormArray)\n .length;\n this.ordersValid = pedidosLength > 0;\n this.formGroup\n .get(\"filial\")\n [pedidosLength >= 1 ? \"disable\" : \"enable\"]();\n });\n }\n\n public selecionarPedidoVenda(pedidoVenda: PedidoVenda) {\n const checkOrders = (order: any) => order.pedidoVenda.id === pedidoVenda.id;\n const pedidos = this.formGroup.get(\"pedidos\").value;\n\n if (pedidos.find(checkOrders)) {\n return this.addMessage(\n \"warn\",\n this.translate.instant(\n \"yms.erp.pedido_venda_search_already_selected_summary\"\n ),\n this.translate.instant(\n \"yms.erp.pedido_venda_search_already_selected_detail\"\n )\n );\n }\n\n (this.formGroup.get(\"pedidos\") as FormArray)\n .push(this.getOrdemVendaForm(pedidoVenda, true));\n\n if (\n !!pedidoVenda &&\n (this.formGroup.get(\"pedidos\") as FormArray).length === 1 &&\n !this.formGroup.get(\"clienteFaturamento\").value\n ) {\n this.buscarClienteAFaturar(pedidoVenda as any);\n }\n }\n\n public selecionarPedidoVendaItem() {\n const item = this.itemFormGroup.value;\n const pedido = this.pedidoAtual.get(\"itens\").value;\n const checkOrderItens = (order: any) => order.item.id === item.item.id;\n if (pedido && item && item.item && pedido.find(checkOrderItens))\n return this.addMessage(\n \"warn\",\n this.translate.instant(\n \"yms.erp.item_pedido_venda_search_already_selected_summary\"\n ),\n this.translate.instant(\n \"yms.erp.item_pedido_venda_search_already_selected_detail\"\n )\n );\n const form = this.getOrdemVendaItemForm();\n form.patchValue({ ...this.itemFormGroup.value });\n if (form.get(\"item\").value == undefined) return;\n (this.pedidoAtual.get(\"itens\") as FormArray).push(form);\n this.visibleDialog = false;\n }\n\n public selecionarPedidoVendaItemAutomaticamente(\n itens: any,\n pedidoVenda: any\n ) {\n if (itens && itens.length === 1) {\n const form = this.getOrdemVendaItemForm();\n const pedidos = this.getPedidos();\n const pedidoAtual: any = pedidos.filter((pedido: any) =>\n pedido && pedido.value.pedidoVenda\n ? pedido.value.pedidoVenda.id === pedidoVenda.id\n : false\n );\n this.itemFormGroup\n .get(\"item\")\n .setValue(itens.length === 1 ? itens[0] : {});\n this.itemFormGroup.get(\"quantidade\").setValue(1);\n form.patchValue({ ...this.itemFormGroup.value });\n (pedidoAtual[0].get(\"itens\") as FormArray).push(form);\n this.visibleDialog = false;\n }\n }\n\n public getPedidos(): AbstractControl[] {\n return (this.formGroup.get(\"pedidos\") as FormArray).controls;\n }\n\n public buildTokens(itens: OrdemVendaItem[]) {\n return itens.map((item: any) => {\n const value = item && item.item ? item.item : item;\n const produto = value.sku ? value.sku : value.produto;\n return {\n id: value.id,\n label: `Produto: ${produto.descricao}, Sequencia: ${value.sequencia}`,\n };\n });\n }\n\n public ngAfterViewInit() {\n const inputList = document.getElementsByTagName(\"input\");\n const selectedInput = Array.from(inputList).find((f: any) => !f.disabled);\n if (selectedInput) {\n selectedInput.focus();\n }\n\n this.override.initialize();\n this.saveAndInitButton = document.getElementById(\"init\");\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.override.remove();\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+s\",\n () => {\n if (this.isNew() || this.permissions.editar) this.onSave();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+c\",\n () => {\n this.onCancel();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n public updateSuggestions(value: any) {\n if (value.agenda) {\n value.agenda.label = this.getSuggestionValue(\n [\"id\", \"descricao\"],\n \"agenda\",\n value,\n this.agendaLookupSeparator\n );\n if (value.agenda.label.trim() === this.agendaLookupSeparator.trim()) {\n delete value.agenda.label;\n }\n }\n }\n\n public getSuggestionValue(\n displayFields: string[],\n ownerEntity: string,\n value: any,\n separator: string\n ) {\n return displayFields\n .map((field) => this.getProp(value, `${ownerEntity}.${field}`))\n .reduce((acc: any, val: any) => `${acc}${separator}${val}`);\n }\n\n public onRouteDataChange(data: any) {\n const { currencySymbol, thousandsSeparator, decimalSeparator } =\n data.localeConfig.number;\n\n this.localeConfig = data.localeConfig;\n this.currencyLocaleOptions = {\n align: \"left\",\n prefix: currencySymbol,\n thousands: thousandsSeparator,\n decimal: decimalSeparator,\n };\n this.permissions = data.allPermissions.expedicao;\n this.allPermissions = data.allPermissions;\n //this.validateVisualization();\n if (data.entity) {\n const canEdit = this.permissions.editar;\n if (!canEdit) this.formGroup.disable();\n const value: any = Expedicao.fromDto(data.entity);\n this.updateSuggestions(value);\n this.formGroup.patchValue(value);\n } else {\n this.formGroup.patchValue(new Expedicao());\n }\n }\n\n public onCancel() {\n this.goBack();\n }\n\n public onSendFile(filesToDelete: any, filesToCommit: any[]) {\n const observables: any[] = [];\n\n if (!this.fieldCustomization.isEmpty(filesToDelete)) {\n observables.push(this.fieldCustomization.deleteFiles(filesToDelete));\n }\n if (!this.fieldCustomization.isEmpty(filesToCommit)) {\n observables.push(this.fieldCustomization.commitFiles(filesToCommit));\n }\n\n if (!this.fieldCustomization.isEmpty(observables)) {\n return forkJoin(observables);\n } else {\n return of({});\n }\n }\n\n public setValuesPedidoBiodisel() {\n const numeroPedidoCliente = this.formGroup.get(\"numeroPedidoCliente\").value;\n const itemPedidoCliente = this.formGroup.get(\"itemPedidoCliente\").value;\n const { value: pedidos } = this.formGroup.get(\"pedidos\");\n (pedidos || []).map((e: any) => {\n if (e && e.itens && e.itens.length) {\n e.itens[0].numeroPedidoCliente = numeroPedidoCliente;\n e.itens[0].itemPedidoCliente = itemPedidoCliente;\n }\n });\n this.formGroup.get(\"pedidos\").patchValue(pedidos);\n }\n\n public getValuesPedidoBiodisel() {\n const pedidos = this.formGroup.get(\"pedidos\").value;\n const numeroPedidoCliente = this.formGroup.get(\"numeroPedidoCliente\");\n const itemPedidoCliente = this.formGroup.get(\"itemPedidoCliente\");\n (pedidos || []).map((e: any) => {\n if (numeroPedidoCliente.value && itemPedidoCliente.value) return;\n const pedidosInterno =\n e && e.itens && e.itens.length ? e.itens[0].pedido : null;\n if (\n pedidosInterno &&\n pedidosInterno.itens &&\n pedidosInterno.itens.length\n ) {\n if (pedidosInterno.itens.length === 1) {\n numeroPedidoCliente.patchValue(\n pedidosInterno.itens[0].numeroPedidoCliente\n );\n itemPedidoCliente.patchValue(\n pedidosInterno.itens[0].itemPedidoCliente\n );\n }\n }\n });\n }\n\n public onSave(start?: boolean) {\n this.formGroup.get(\"agenda\").setValue(this.agenda);\n this.ordersValid = (this.formGroup.get(\"pedidos\") as FormArray).length > 0;\n\n if (this.formGroup.invalid || !this.ordersValid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.setValuesPedidoBiodisel();\n\n const { filesToDelete, filesToCommit } = this.fieldCustomization.getFiles(this.formGroup);\n \n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(filesToDelete, filesToCommit, start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(filesToDelete, filesToCommit, start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(filesToDelete: any, filesToCommit: any[], start: boolean) {\n this.atualizaExpedicao(filesToDelete, filesToCommit, () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n private atualizaExpedicao(\n filesToDelete: any,\n filesToCommit: any[],\n onSubscribe?: Function\n ) {\n return this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => (this.loading = false)),\n )\n .subscribe((value: any) => {\n this.formGroup.get(\"id\").setValue(value.id || null);\n\n this.onSendFile(filesToDelete, filesToCommit)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError((err: any) => {\n this.loading = false;\n return throwError(err);\n })\n )\n .subscribe(() => {\n this.addMessage(\n \"success\",\n \"saved_message_title\",\n \"saved_message_content\"\n );\n onSubscribe();\n });\n });\n }\n\n public setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace(\".\", \"\").replace(\"/\", \"\").replace(\"-\", \"\");\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService\n .list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const code = contents[0].codigo\n ? contents[0].codigo.toString()\n : \"\";\n const description = contents[0].descricao\n ? contents[0].descricao.toString()\n : \"\";\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant(\n \"yms.erp.derivacao_sem_descricao\"\n );\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n this.formGroup.get(\"transportadora\").setValue(contents[0]);\n }\n });\n }\n }\n\n public getProp(obj: any, path: any) {\n return path\n .split(\".\")\n .reduce(\n (result: any, prop: any) =>\n result[prop] === undefined ? \"\" : result[prop],\n obj\n );\n }\n\n public getExpedicao(agendaId: string) {\n this.loading = true;\n this.expedicaoService\n .list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0,\n })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => (this.loading = false))\n )\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.buscarFilial();\n return;\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao =\n contents[0].agenda && contents[0].agenda.veiculo\n ? contents[0].agenda.veiculo.eixos || 0\n : 0;\n\n const expedicao = Expedicao.fromDto(contents[0]);\n\n this.formGroup.enable();\n this.formGroup.patchValue(expedicao);\n\n expedicao.pedidos.forEach((pedido) => {\n const form = this.getOrdemVendaForm();\n form.patchValue(pedido);\n pedido.itens.forEach((item) => {\n const itemForm = this.getOrdemVendaItemForm();\n itemForm.patchValue(item);\n (form.get(\"itens\") as FormArray).push(itemForm);\n });\n (this.formGroup.get(\"pedidos\") as FormArray).push(form);\n });\n this.getValuesPedidoBiodisel();\n this.formCarregado = true;\n });\n }\n\n public onClienteFaturamentoLookupRequest(value: string) {\n onLookupRequest(\n this.clienteFaturamentoSearchFields,\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields,\n this.clienteFaturamentoLookupSeparator,\n this.pessoaService,\n value,\n \"cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.clienteFaturamentoLookupSuggestions = list.contents;\n });\n }\n\n public onClienteFaturamentoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getClienteSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = `${filterQuery}${\n filterQuery ? \" and \" : \"\"\n }situacao eq ATIVO and cliente eq true`;\n\n const displayFields = mergeUnique(\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields\n );\n this.pessoaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.clienteFaturamentoLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.clienteFaturamentoLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.clienteFaturamentoSearchGridData = list.contents;\n this.clienteFaturamentoSearchTotalRecords = list.totalElements;\n });\n }\n\n public onClienteRemessaLookupRequest(value: string) {\n onLookupRequest(\n this.clienteRemessaSearchFields,\n this.clienteRemessaLookupDisplayFields,\n this.clienteRemessaAdvancedDisplayFields,\n this.clienteRemessaLookupSeparator,\n this.pessoaService,\n value,\n \"cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.clienteRemessaLookupSuggestions = list.contents;\n });\n }\n\n public onClienteRemessaSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getClienteSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = `${filterQuery}${\n filterQuery ? \" and \" : \"\"\n }situacao eq ATIVO and cliente eq true`;\n\n const displayFields = mergeUnique(\n this.clienteRemessaLookupDisplayFields,\n this.clienteRemessaAdvancedDisplayFields\n );\n this.pessoaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.clienteRemessaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.clienteRemessaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.clienteRemessaSearchGridData = list.contents;\n this.clienteRemessaSearchTotalRecords = list.totalElements;\n });\n }\n\n public onFilialSelect(event: any) {\n this.disableOrdersButtons = !event || this.agenda.createdByErp;\n }\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce(\n (a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n },\n {\n cnpjs: this.agenda.planta.cnpj,\n pagina: { limit: 10, offset: 0 },\n } as PesquisarFiliaisInput\n );\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n (list: any) =>\n (this.filialLookupSuggestions = list.filiais.map((filial: any) =>\n Filial.fromDto(filial)\n ))\n );\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && {\n campo: sort[0].field,\n ordenacao: sort[0].order > 0 ? \"Asc\" : \"Desc\",\n };\n const filterInput = this.getFilialSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .reduce(\n (a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n },\n {\n cnpjs: this.agenda.planta.cnpj,\n pagina: {\n limit: rows,\n offset: page,\n listaOrdenacao: sortFormatted ? [{ ...sortFormatted }] : null,\n },\n } as PesquisarFiliaisInput\n );\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n public onTransportadoraLookupRequest(value: string) {\n onLookupRequest(\n this.transportadoraSearchFields,\n this.transportadoraLookupDisplayFields,\n this.transportadoraAdvancedDisplayFields,\n this.transportadoraLookupSeparator,\n this.transportadoraService,\n value\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n public onTransportadoraSearchRequest(event: any) {\n onSearchRequest(\n this.transportadoraSearchFields,\n this.transportadoraLookupDisplayFields,\n this.transportadoraAdvancedDisplayFields,\n this.transportadoraLookupSeparator,\n this.transportadoraService,\n event\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onPedidoVendaLookupRequest(value: string) {\n const sort = this.pedidoVendaLookupDisplayFields.map((field: any) => ({\n field,\n order: 1,\n }));\n\n let filterQuery = this.getPedidoVendaSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n filterQuery = `${filterQuery}${\n filterQuery ? \" and \" : \"\"\n }situacaoPedido eq ABERTO_TOTAL or situacaoPedido eq ABERTO_PARCIAL`;\n\n const pedidos = this.formGroup.get(\"pedidos\").value || [];\n let pedidosIdsQuery = \"\";\n pedidos.map((e: any) =>\n e && e.pedidoVenda && e.pedidoVenda.id\n ? (pedidosIdsQuery += ` and (id ne '${e.pedidoVenda.id}')`)\n : false\n );\n if (pedidos.length && pedidosIdsQuery) filterQuery += pedidosIdsQuery;\n\n const displayFields = mergeUnique(\n this.pedidoVendaLookupDisplayFields,\n this.pedidoVendaAdvancedDisplayFields\n );\n this.pedidoVendaService\n .list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaLookupSuggestions = list.contents;\n });\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy =\n sort && sort.length\n ? sort.map((s: any) => ({\n campo: s.field,\n ordenacao: s.order === 1 ? \"Asc\" : \"Desc\",\n }))\n : [];\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy,\n };\n }\n\n public onPedidoVendaSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const sort = multiSortMeta || [];\n\n const filial = this.formGroup.get(\"filial\").value;\n\n const pedidos = this.formGroup.get(\"pedidos\").value || [];\n let pedidosSelecionados: any = [];\n pedidos.map((e: any) =>\n e && e.pedidoVenda && e.pedidoVenda.id\n ? pedidosSelecionados.push(e.pedidoVenda.id)\n : false\n );\n\n const pesquisa: PesquisaPedidosVendaDto = {\n pessoaId: filterData[\"cliente\"] ? filterData[\"cliente\"].id : null,\n filialId: filial ? filial.id : null,\n tipoAgendamentoId: this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n filialPedido: filterData[\"filialPedido\"],\n pedidosSelecionados,\n numero: filterData[\"numero\"],\n pagina: this.getRecPagina(first, rows, sort),\n };\n\n this.pedidoVendaService\n .pesquisarPedidosVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaSearchGridData = list.contents;\n this.pedidoVendaSearchTotalRecords = list.totalElements;\n });\n }\n\n public onPedidoVendaItemLookupRequest(value: any) {\n const sort = this.pedidoVendaItemLookupDisplayFields.map((field: any) => ({\n field,\n order: 1,\n }));\n\n const filialId = (this.formGroup.get(\"filial\").value || {}).id;\n const pedidoId = (this.pedidoAtual.get(\"pedidoVenda\").value || {}).id;\n\n const pesquisa = {\n pedidoId,\n filialId,\n sequencia: !isNaN(value) ? value : null,\n tipoAgendamentoId:\n this.agenda && this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n pagina: this.getRecPagina(0, 10, sort),\n };\n\n this.pedidoVendaItemService\n .pesquisarItensPedidoVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaItemLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaItemLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaItemLookupSuggestions = list.contents;\n });\n }\n\n public onPedidoVendaItemSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const sort = multiSortMeta;\n\n const filialId = (this.formGroup.get(\"filial\").value || {}).id;\n const pedidoId = (this.pedidoAtual.get(\"pedidoVenda\").value || {}).id;\n\n const pesquisa = {\n pedidoId,\n filialId,\n sequencia: filterData[\"sequencia\"],\n tipoAgendamentoId:\n this.agenda && this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n pagina: this.getRecPagina(first, rows, sort),\n };\n\n this.pedidoVendaItemService\n .pesquisarItensPedidoVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaItemLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaItemLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaItemSearchGridData = list.contents;\n this.pedidoVendaItemSearchTotalRecords = list.totalElements;\n });\n }\n\n public getAutomaticItensOrder(pedidoVenda: any) {\n if (pedidoVenda && pedidoVenda.id) {\n const sort = this.pedidoVendaItemLookupDisplayFields.map(\n (field: any) => ({ field, order: 1 })\n );\n const filialId = (this.formGroup.get(\"filial\").value || {}).id;\n\n const pesquisa = {\n pedidoId: pedidoVenda.id,\n filialId,\n tipoAgendamentoId:\n this.agenda && this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n pagina: this.getRecPagina(0, 10, sort),\n };\n\n this.pedidoVendaItemService\n .pesquisarItensPedidoVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaItemLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaItemLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.selecionarPedidoVendaItemAutomaticamente(\n list.contents,\n pedidoVenda\n );\n });\n }\n }\n\n public onAgendaLookupRequest(value: string) {\n const sort = this.agendaLookupDisplayFields.map((field: any) => ({\n field,\n order: 1,\n }));\n\n const filterQuery = this.getAgendaSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n const displayFields = mergeUnique(\n this.agendaLookupDisplayFields,\n this.agendaAdvancedDisplayFields\n );\n this.agendaService\n .listExternalAgenda({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.agendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.agendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.agendaLookupSuggestions = list.contents;\n });\n\n /*{CA:ON_AGENDA_LOOKUP_REQUEST_END:START}*/\n /*{CA:ON_AGENDA_LOOKUP_REQUEST_END:END}*/\n }\n\n public onAgendaSearchRequest(event: any) {\n /*{CA:ON_AGENDA_SEARCH_REQUEST_START:START}*/\n /*{CA:ON_AGENDA_SEARCH_REQUEST_START:END}*/\n\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getAgendaSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(\n this.agendaLookupDisplayFields,\n this.agendaAdvancedDisplayFields\n );\n this.agendaService\n .listExternalAgenda({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.agendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.agendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.agendaSearchGridData = list.contents;\n this.agendaSearchTotalRecords = list.totalElements;\n });\n\n /*{CA:ON_AGENDA_SEARCH_REQUEST_END:START}*/\n /*{CA:ON_AGENDA_SEARCH_REQUEST_END:END}*/\n }\n\n private getFormGroup() {\n const formGroup = this.formBuilder.group({\n id: [{ value: undefined, disabled: true }, Validators.compose([])],\n clienteFaturamento: [\n { value: undefined, disabled: false },\n Validators.compose([Validators.required]),\n ],\n clienteRemessa: [{ value: undefined, disabled: false }],\n filial: [\n { value: undefined, disabled: false },\n Validators.compose([Validators.required]),\n ],\n transportadora: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n pedidos: this.formBuilder.array([]),\n agenda: [\n { value: undefined, disabled: false },\n Validators.compose([Validators.required]),\n ],\n numeroAgendamentoCliente: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n numeroPedidoCliente: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n itemPedidoCliente: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n createdBy: [{ value: undefined, disabled: true }, Validators.compose([])],\n createdDate: [\n { value: undefined, disabled: true },\n Validators.compose([]),\n ],\n lastModifiedBy: [\n { value: undefined, disabled: true },\n Validators.compose([]),\n ],\n lastModifiedDate: [\n { value: undefined, disabled: true },\n Validators.compose([]),\n ],\n });\n\n /*{CA:GET_FORM_CONTROLS:START}*/\n /*{CA:GET_FORM_CONTROLS:END}*/\n\n return formGroup;\n }\n\n private getClienteSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getClienteSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"site\",\n label: this.translate.instant(\"yms.erp.pessoa_site\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.filial_nome\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.filial_nome\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\"),\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\"),\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\"),\n }),\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\"),\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\"),\n }),\n ];\n }\n\n private getPedidoVendaSearchFields() {\n const clientSuggestions$ = new Subject<any[]>();\n const clientSearch$ = new Subject<any>();\n\n return [\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.pedido_venda_numero\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"filialPedido\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"cliente\",\n label: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n type: FieldType.Lookup,\n searchFields: this.getClienteSearchFields(),\n searchGridFields: this.getClienteSearchGridFields(),\n suggestionsObservable: clientSuggestions$,\n searchObservable: clientSearch$,\n emptyMessage: \"Nenhuma sugestão encontrada\",\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n onLookupRequest: (value: string) => {\n onLookupRequest(\n this.clienteFaturamentoSearchFields,\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields,\n this.clienteFaturamentoLookupSeparator,\n this.pessoaService,\n value,\n \"situacao eq ATIVO and cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => clientSuggestions$.next(list.contents));\n },\n onSearchRequest: (event: any) => {\n onSearchRequest(\n this.clienteFaturamentoSearchFields,\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields,\n this.clienteFaturamentoLookupSeparator,\n this.pessoaService,\n event,\n \"situacao eq ATIVO and cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n clientSearch$.next({\n totalRecords: list.totalElements,\n gridData: list.contents,\n });\n });\n },\n dataKey: \"id\",\n lookupDisplayField: \"label\",\n searchTitle: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n searchEmptyTitle: this.translate.instant(\"yms.erp.nothing_found\"),\n filterLabel: this.translate.instant(\"yms.erp.filter\"),\n filterTitle: this.translate.instant(\"yms.integration.filters\"),\n clearLabel: this.translate.instant(\"yms.erp.clear\"),\n cancelLabel: this.translate.instant(\"yms.erp.cancel\"),\n selectLabel: this.translate.instant(\"yms.erp.select\"),\n tooltip: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n }),\n ];\n }\n\n private getPedidoVendaSearchGridFields() {\n return [\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.pedido_venda_numero\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"filial.nome\",\n label: this.translate.instant(\"yms.erp.filial\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"filial.codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"pessoa.nome\",\n label: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"pessoa.codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_cliente_codigo_label\"),\n type: FieldType.Integer,\n }),\n ];\n }\n\n private getPedidoVendaItemSearchFields() {\n return [\n new FormField({\n name: \"sequencia\",\n label: this.translate.instant(\"yms.erp.pedido_venda_item_sequencia\"),\n type: FieldType.Integer,\n }),\n ];\n }\n\n private getPedidoVendaItemSearchGridFields() {\n return [\n ...this.getPedidoVendaItemSearchFields(),\n new FormField({\n name: \"sku.descricao\",\n label: this.translate.instant(\"yms.erp.produto\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getAgendaSearchFields() {\n const searchFields = [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_AGENDA_SEARCH_FIELDS:START}*/\n /*{CA:GET_AGENDA_SEARCH_FIELDS:END}*/\n\n return searchFields;\n }\n\n private getAgendaSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_AGENDA_SEARCH_GRID_FIELDS:START}*/\n /*{CA:GET_AGENDA_SEARCH_GRID_FIELDS:END}*/\n\n return searchGridFields;\n }\n\n private getDerivacaoSearchFields() {\n const searchFields = [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_DERIVACAO_SEARCH_FIELDS:START}*/\n /*{CA:GET_DERIVACAO_SEARCH_FIELDS:END}*/\n\n return searchFields;\n }\n\n private getDerivacaoSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_DERIVACAO_SEARCH_GRID_FIELDS:START}*/\n /*{CA:GET_DERIVACAO_SEARCH_GRID_FIELDS:END}*/\n\n return searchGridFields;\n }\n\n private goBack() {\n const previousRoute = \"../\";\n this.router.navigate([previousRoute], { relativeTo: this.route.parent });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n if (control instanceof FormControl)\n control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup)\n this.validateAllFormFields(control);\n });\n\n this.focusService.focusFirstInvalidInput();\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n const expedicaoDto = Expedicao.toDto(value);\n\n let observable;\n\n if (this.isNew() && !value.id) {\n observable = this.expedicaoService.insert(expedicaoDto);\n } else {\n const id = value.id;\n observable = this.expedicaoService.update(id, expedicaoDto);\n }\n\n return observable;\n }\n\n private validateVisualization() {\n if (!userCanVisualize(this.formGroup, this.allPermissions)) {\n this.addMessage(\n \"error\",\n \"yms.erp.cannot_visualize_form_summary\",\n \"yms.erp.cannot_visualize_form_detail\"\n );\n }\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private getPedidoVendaForm() {\n return this.formBuilder.group({\n pedidoVenda: [undefined],\n });\n }\n\n private getOrdemVendaForm(\n pedidoVenda?: PedidoVenda,\n getAutomaticItensOrder?: boolean\n ) {\n if (getAutomaticItensOrder) this.getAutomaticItensOrder(pedidoVenda);\n return this.formBuilder.group({\n id: [undefined],\n pedidoVenda: [pedidoVenda],\n itens: this.formBuilder.array([]),\n });\n }\n\n private getOrdemVendaItemForm(pedidoVendaItem?: PedidoVendaItem) {\n return this.formBuilder.group({\n id: [undefined],\n pedido: [undefined],\n item: [pedidoVendaItem],\n quantidade: [undefined],\n numeroPedidoCliente: [undefined],\n itemPedidoCliente: [undefined],\n });\n }\n\n private buscarFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n\n if (planta.cnpj.length !== 1) {\n this.formCarregado = true; \n return;\n } \n \n this.filialService\n .list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: [\"*\", \"empresa.nome\"],\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0]));\n this.disableOrdersButtons = false;\n }\n });\n\n this.formCarregado = true; \n }\n\n private buscarClienteAFaturar(pedidoVenda: PedidoVendaDto) {\n this.pessoaService\n .list({\n size: 1,\n page: 0,\n filterQuery: `id eq '${pedidoVenda.pessoa.id}'`,\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if ((contents || []).length !== 1) return;\n this.formGroup\n .get(\"clienteFaturamento\")\n .setValue(Pessoa.fromDto(contents[0]));\n });\n }\n}\n","import { AfterViewInit, Component, Input } from \"@angular/core\";\nimport { of, Subject, throwError } from \"rxjs\";\nimport { finalize, switchMap, takeUntil } from \"rxjs/operators\";\nimport { Expedicao } from \"../../core/entities/expedicao/expedicao\";\nimport { ExpedicaoDto } from \"../../core/entities/expedicao/expedicao-dto\";\nimport { ExpedicaoService } from \"../../core/entities/expedicao/expedicao.service\";\n\n@Component({\n selector: 'expedicao-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px\">\n <div class=\"detail-pane\" *ngIf=\"agenda && expedicao\">\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_filial' | translate}}</span>\n <span class=\"data\">{{expedicao.filial?.codigo}} - {{expedicao.filial?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_cliente_faturamento' | translate}}</span>\n <span class=\"data\">{{expedicao.clienteFaturamento?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_cliente_remessa' | translate}}</span>\n <span class=\"data\">{{expedicao.clienteRemessa?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_transportadora' | translate}}</span>\n <span class=\"data\">{{expedicao.transportadora?.pessoa?.nomeFantasia}}</span>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./expedicao-info.component.scss']\n})\nexport class ExpedicaoInfoComponent implements AfterViewInit {\n @Input() agenda: any;\n\n expedicao: Expedicao;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private expedicaoService: ExpedicaoService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.expedicaoService.list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({contents}) => {\n if (!contents.length) return throwError(\"Dados de expedição não encontrados\");\n\n return of (contents[0]);\n }),\n finalize(() => this.loading = false)\n )\n .subscribe((expedicao: ExpedicaoDto) => this.expedicao = Expedicao.fromDto(expedicao));\n }\n}","import { Component, Input, OnDestroy, OnInit, TemplateRef, ViewChild } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CircuitoFinalizado } from \"@seniorsistemas/yms-routines\";\nimport { ConfirmationService, LazyLoadEvent, SortMeta } from \"primeng/components/common/api\";\nimport { Table } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { catchError, finalize, takeUntil } from \"rxjs/operators\";\nimport { Agenda } from \"../core/entities/agenda/agenda\";\n/*{CA:EXTERNAL_IMPORTS:START}*/\n/*{CA:EXTERNAL_IMPORTS:END}*/\nimport { LogIntegracao } from \"../core/entities/log-integracao/log-integracao\";\nimport { LogIntegracaoService } from \"../core/entities/log-integracao/log-integracao.service\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@CircuitoFinalizado({\n header: 'Logs de integração YMS/ERP',\n name: 'yms.integracao.erpagrox'\n})\nexport class LogIntegracaoDescritor {\n\n}\n\n@Component({\n templateUrl: \"./log-integracao.component.html\",\n styleUrls: [\n '../erp-senior.scss'\n ],\n providers: [\n ConfirmationService,\n /*{CA:COMPONENT_PROVIDERS:START}\n /*{CA:COMPONENT_PROVIDERS:END}*/\n ],\n /*{CA:COMPONENT_CONFIG:START}*/\n /*{CA:COMPONENT_CONFIG:END}*/\n})\nexport class LogIntegracaoComponent extends LogIntegracaoDescritor implements OnInit, OnDestroy /*{CA:CLASS_INTERFACES:START}*/ /*{CA:CLASS_INTERFACES:END}*/ {\n @Input() agenda: Agenda\n\n public allPermissions: any = {};\n public permissions: any = {};\n public localeConfig: any = {};\n\n public currentListParams: ListParams = { page: 0, size: 10, sort: [], filterData: {} };\n public gridData: LogIntegracao[];\n public gridColumns: any[];\n public showLoader: boolean;\n public totalRecords: number;\n public selection: LogIntegracao[];\n\n public serverError: boolean = false;\n\n @ViewChild(\"logIntegracaoTable\")\n public table: Table;\n\n @ViewChild(\"customTemplate\")\n public customTemplate: TemplateRef<any>;\n\n @ViewChild(\"customFilterFields\")\n public customFilterFields: TemplateRef<any>;\n\n @ViewChild(\"customGridColgroup\")\n public customGridColgroup: TemplateRef<any>;\n\n @ViewChild(\"customGridHeader\")\n public customGridHeader: TemplateRef<any>;\n\n @ViewChild(\"customGridBody\")\n public customGridBody: TemplateRef<any>;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n private ngUnsubscribe = new Subject();\n private xmlFormatter: any;\n\n constructor(\n /*{CA:INJECTIONS:START}*/\n /*{CA:INJECTIONS:END}*/\n private route: ActivatedRoute,\n private logIntegracaoService: LogIntegracaoService,\n private translate: TranslateService,\n ) {\n super();\n this.xmlFormatter = require('xml-formatter') || ((payload: string, confs?: any) => payload);\n }\n\n public ngOnInit() {\n /*{CA:ON_INIT_START:START}*/\n /*{CA:ON_INIT_START:END}*/\n\n this.gridColumns = this.getGridColumns();\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n /*{CA:ON_INIT_END:START}*/\n /*{CA:ON_INIT_END:END}*/\n }\n\n public ngOnDestroy() {\n /*{CA:ON_DESTROY_START:START}*/\n /*{CA:ON_DESTROY_START:END}*/\n\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n /*{CA:ON_DESTROY_END:START}*/\n /*{CA:ON_DESTROY_END:END}*/\n }\n\n public onRouteDataChange(data: any) {\n /*{CA:ON_ROUTE_DATA_CHANGE_START:START}*/\n /*{CA:ON_ROUTE_DATA_CHANGE_START:END}*/\n\n this.allPermissions = data.allPermissions;\n this.permissions = data.allPermissions.logIntegracao;\n this.localeConfig = data.localeConfig;\n\n /*{CA:ON_ROUTE_DATA_CHANGE_END:START}*/\n /*{CA:ON_ROUTE_DATA_CHANGE_END:END}*/\n }\n\n // Verifica se o objeto possui um valor que foi alterado para \"\" (String vazia) ao inves de null ou undefined\n public onSearch() {\n this.resetGrid();\n }\n \n public onGridChange(event: LazyLoadEvent) {\n /*{CA:ON_GRID_CHANGE_START:START}*/\n /*{CA:ON_GRID_CHANGE_START:END}*/\n\n const size = event.rows;\n const page = event.first / size;\n const sort = event.multiSortMeta;\n\n return this.updateGrid({ page, size, sort });\n\n /*{CA:ON_GRID_CHANGE_END:START}*/\n /*{CA:ON_GRID_CHANGE_END:END}*/\n }\n\n public getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n private getGridColumns() {\n const gridColumns = [\n { field: \"nome\", header: this.translate.instant(\"yms.integration.log_integracao_nome\") },\n { field: \"entradaEm\", header: this.translate.instant(\"yms.integration.log_integracao_entrada_em\") },\n { field: \"saidaEm\", header: this.translate.instant(\"yms.integration.log_integracao_saida_em\") }\n ];\n\n /*{CA:GET_GRID_COLUMNS:START}*/\n /*{CA:GET_GRID_COLUMNS:END}*/\n\n return gridColumns;\n }\n\n private updateGrid(listParams: ListParams = {}) {\n this.showLoader = true;\n\n this.currentListParams = { ...this.currentListParams, ...listParams };\n const { page, size } = this.currentListParams;\n\n const sort: SortMeta[] = [{ field: 'entradaEm', order: -1 }];\n\n this.logIntegracaoService\n .list({ page, size, sort, filterQuery: `agenda eq '${this.agenda.id}'`, displayFields: [\"*\"] })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError(err => {\n this.serverError = true;\n throw err;\n }),\n finalize(() => {\n this.showLoader = false;\n })\n )\n .subscribe((list: any) => {\n this.selection = [];\n this.gridData = list.contents;\n this.totalRecords = list.totalElements;\n this.serverError = false;\n });\n }\n\n getPayload(payload: string) {\n if (payload[0] == \"{\") {\n return JSON.stringify(JSON.parse(payload), null, 2);\n\n }\n else if (payload[0] === \"<\") {\n return this.xmlFormatter(payload);\n } else {\n return payload;\n }\n }\n\n resetGrid(listParams?: ListParams) {\n if (listParams) this.currentListParams = { ...this.currentListParams, ...listParams };\n this.currentListParams = { ...this.currentListParams, page: 0, sort: [] };\n this.table.reset();\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n });\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\ninterface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterData?: any;\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Filial } from \"../filial/filial\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { ProcessoAvulsoDto } from \"./processo-avulso-dto\";\n\nexport class ProcessoAvulso {\n filial: Filial;\n agenda: Agenda;\n\n static fromDto(processoAvulsoDto: ProcessoAvulsoDto) {\n const model: any = { ...processoAvulsoDto };\n model.filial = Filial.fromDto(model.filial);\n return model;\n }\n\n static toDto(processoAvulso: ProcessoAvulso) {\n const dto = { ...processoAvulso };\n dto.filial = Filial.toDto(dto.filial);\n return dto;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { ProcessoAvulso } from \"../core/entities/processo-avulso/processo-avulso\";\nimport { ProcessoAvulsoService } from \"../core/entities/processo-avulso/processo-avulso.service\";\n\n@Injectable()\nexport class ProcessoAvulsoChegadaVeiculoOverride {\n private readonly AVULSO_KEY = \"ERP_SENIOR_PROCESSO_AVULSO\"\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private processoAvulsoService: ProcessoAvulsoService) {\n }\n\n public initialize() {\n this.override.addOverride(this.AVULSO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.AVULSO_KEY);\n } \n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.processoAvulsoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({contents}) => contents.length ? contents[0] : null),\n mergeMap((avulso: ProcessoAvulso) => {\n if (!avulso) return throwError(\"Os dados da guia ERP Senior não foram informados\");\n\n return this.processoAvulsoService.registrarChegada({\n processoAvulso: avulso,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n })\n })\n )\n }\n}","import { Component, OnDestroy, OnInit, Input, AfterViewInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormControl, FormArray, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport { ReplaySubject, Subject } from \"rxjs\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { takeUntil, finalize, concatMap } from \"rxjs/operators\";\nimport { ProcessoAvulso } from \"../../core/entities/processo-avulso/processo-avulso\";\nimport { ProcessoAvulsoService } from \"../../core/entities/processo-avulso/processo-avulso.service\";\nimport { ConfirmationService, MessageService, SortMeta } from \"primeng/api\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { PesquisarFiliaisInput, FilialService } from \"../../core/entities/filial/filial.service\";\nimport { isValidFilter } from \"../../../utils/utils\";\nimport { ProcessoAvulsoChegadaVeiculoOverride } from \"../processo-avulso-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from \"../../core/erp-form-config/erp-form-config-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\n@Component({\n selector: 'processo-avulso-form',\n templateUrl: './processo-avulso-form.component.html'\n})\nexport class ProcessoAvulsoFormComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() agenda: Agenda;\n\n formGroup: FormGroup;\n loading = false;\n saveAndInitButton: HTMLButtonElement;\n\n filialSearchFields: FormField[];\n filialSearchGridFields: FormField[];\n filialSearchGridData: Filial[];\n filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n filialLookupSeparator = \" - \";\n filialLookupSuggestions: Filial[];\n filialSearchTotalRecords: number;\n \n private formCarregado = false;\n\n private readonly ngUnsubscribe = new Subject<void>();\n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private route: ActivatedRoute,\n private filialService: FilialService,\n private processoAvulsoService: ProcessoAvulsoService,\n private messageService: MessageService,\n private processoAvulsoOverride: ProcessoAvulsoChegadaVeiculoOverride,\n private translate: TranslateService,\n private confirmationService: ConfirmationService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private hasChangeService: HasChangeService\n ) { }\n\n ngOnInit() {\n this.formGroup = this.fb.group({\n id: [undefined],\n filial: [undefined, Validators.required],\n agenda: [undefined]\n })\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n\n this.getProcessoAvulso();\n\n this.formGroup.get(\"filial\").valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((_) => {\n const fil = this.formGroup.get(\"filial\").value;\n if (this.erpProcessService && fil) {\n this.erpProcessData.filialId = fil.id;\n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n });\n this.processoAvulsoOverride.initialize();\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n\n this.verificaSeTemAlteracao();\n }\n\n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n ngAfterViewInit() {\n this.saveAndInitButton = document.getElementById('init') as HTMLButtonElement;\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.processoAvulsoOverride.remove();\n }\n\n onSave(start?: boolean) {\n if (this.formGroup.invalid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n this.formGroup.patchValue({ ...ProcessoAvulso.fromDto(response) });\n this.successMessage();\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) =>\n this.filialLookupSuggestions = list.filiais.map((filial: any) => Filial.fromDto(filial)));\n }\n\n onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [ { ...(sortFormatted) } ] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n\n }\n\n private getSaveObservable() {\n const { value } = this.formGroup;\n value.agenda = this.agenda;\n\n const processoAvulsoDto = ProcessoAvulso.toDto(value);\n\n if (!!value.id) {\n return this.processoAvulsoService.update(value.id, processoAvulsoDto);\n }\n return this.processoAvulsoService.insert(processoAvulsoDto);\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n else if (control instanceof FormArray) control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n });\n }\n\n private getProcessoAvulso() {\n this.processoAvulsoService.list({ \n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n size: 1, \n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (!contents || contents.length <= 0) {\n return this.buscarFilial();\n }\n const processoAvulso = contents[0];\n this.formGroup.patchValue({ ...ProcessoAvulso.fromDto(processoAvulso) });\n this.formCarregado = true;\n });\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n })\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n })\n ];\n }\n\n private buscarFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length === 1) {\n this.filialService.list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: ['*', 'empresa.nome']\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0])); \n }\n });\n }\n this.formCarregado = true;\n }\n}","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { ProcessoAvulso } from \"../../core/entities/processo-avulso/processo-avulso\";\nimport { Subject } from \"rxjs\";\nimport { ProcessoAvulsoService } from \"../../core/entities/processo-avulso/processo-avulso.service\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: 'processo-avulso-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.filial' | translate}}</span>\n <span class=\"data\">{{processoAvulso?.filial?.nome}} - {{processoAvulso?.filial?.codigo}}</span>\n </div>\n </div>\n </div>\n `\n})\nexport class ProcessoAvulsoInfoComponent implements AfterViewInit {\n @Input() agenda: Agenda;\n loading = false;\n processoAvulso: ProcessoAvulso;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(private processoAvulsoService: ProcessoAvulsoService) {\n }\n\n ngAfterViewInit() {\n this.processoAvulsoService.list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents }) => {\n if (!contents || contents.length <= 0) return;\n this.processoAvulso = ProcessoAvulso.fromDto(contents[0]);\n })\n }\n}","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { SafraDto } from \"./safra-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Safra {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public empresa: Empresa;\n public competenciaInicial?: Date;\n public competenciaFinal?: Date;\n public situacao: Situacao;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(safraDto: SafraDto, originEntity?: string): Safra {\n const model: any = { ...safraDto };\n\n model.competenciaInicial = model.competenciaInicial && moment(model.competenciaInicial).toDate();\n model.competenciaFinal = model.competenciaFinal && moment(model.competenciaFinal).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Safra\");\n\n return model as Safra;\n }\n\n public static toDto(safra: Safra, originEntity?: string): SafraDto {\n const dto: any = { ...safra };\n\n dto.competenciaInicial = dto.competenciaInicial && moment(dto.competenciaInicial).format(\"YYYY-MM-DD\");\n dto.competenciaFinal = dto.competenciaFinal && moment(dto.competenciaFinal).format(\"YYYY-MM-DD\");\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Safra\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Filial } from \"../filial/filial\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Produto } from \"../produto/produto\";\nimport { Derivacao } from \"../derivacao/derivacao\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nimport { Safra } from \"../safra/safra\";\nimport { RecebimentoOrdemCompraDto } from \"./recebimento-ordem-compra-dto\";\nimport { OrdemCompra } from \"../ordem-compra/ordem-compra\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { RecebimentoOrdemCompraFornecedor } from \"../recebimento-ordem-compra-details/recebimento-ordem-compra-fornecedor\";\n\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nconst moment = _moment\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class RecebimentoOrdemCompra {\n public id: string;\n public agenda: Agenda;\n public empresa: Empresa;\n public filial: Filial;\n public fornecedores?: RecebimentoOrdemCompraFornecedor[];\n public produto: Produto;\n public derivacao: Derivacao;\n public transportadora: Transportadora;\n public safra: Safra;\n public ordemCompra: OrdemCompra;\n public serieNotaFiscal: string;\n public numeroNotaFiscal: string;\n public chaveNotaFiscal: string;\n\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public custom?: any;\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(recebimentoOrdemCompraDto: RecebimentoOrdemCompraDto, originEntity?: string): RecebimentoOrdemCompra {\n const model: any = { ...recebimentoOrdemCompraDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n ''];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"PessoaEndereco\" && model.origemMercadoria) model.origemMercadoria = PessoaEndereco.fromDto(model.origemMercadoria, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Derivacao\" && model.derivacao) model.derivacao = Derivacao.fromDto(model.derivacao, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Transportadora\" && model.transportadora) model.transportadora = Transportadora.fromDto(model.transportadora, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Safra\" && model.safra) model.safra = Safra.fromDto(model.safra, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"OrdemCompra\" && model.ordemCompra) model.ordemCompra = OrdemCompra.fromDto(model.ordemCompra, \"RecebimentoOrdemCompra\");\n\n model.fornecedores = model.fornecedores.map((fornecedor: any) => ({ \n ...fornecedor,\n fornecedor: Pessoa.fromDto(fornecedor.fornecedor),\n origemMercadoria: PessoaEndereco.fromDto(fornecedor.origemMercadoria),\n ordens: fornecedor.ordens.map(OrdemCompra.fromDto)\n }));\n\n return model as RecebimentoOrdemCompra;\n }\n\n public static toDto(recebimentoOrdemCompra: RecebimentoOrdemCompra, originEntity?: string): RecebimentoOrdemCompraDto {\n const dto: any = { ...recebimentoOrdemCompra };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Derivacao\" && dto.derivacao) dto.derivacao = Derivacao.toDto(dto.derivacao, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Transportadora\" && dto.transportadora) dto.transportadora = Transportadora.toDto(dto.transportadora, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Safra\" && dto.safra) dto.safra = Safra.toDto(dto.safra, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"OrdemCompra\" && dto.ordemCompra) dto.ordemCompra = OrdemCompra.toDto(dto.ordemCompra, \"RecebimentoOrdemCompra\");\n\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { RecebimentoOrdemCompraService } from \"../core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service\";\nimport { RecebimentoOrdemCompra } from \"../core/entities/recebimento-ordem-compra/recebimento-ordem-compra\";\n\n@Injectable()\nexport class RecebimentoOrdemCompraChegadaVeiculoOverride {\n private readonly RECEBIMENTO_ORDEMCOMPRA_KEY = \"ERP_SENIOR_RECEBIMENTO_ORDEMCOMPRA_KEY\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private recebimentoOrdemCompraService: RecebimentoOrdemCompraService\n ) { }\n\n public initialize() {\n this.override.addOverride(this.RECEBIMENTO_ORDEMCOMPRA_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.RECEBIMENTO_ORDEMCOMPRA_KEY);\n }\n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.recebimentoOrdemCompraService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((recebimentoOrdemCompra: RecebimentoOrdemCompra) => {\n if (!recebimentoOrdemCompra) return throwError(\"Não foi possÃvel encontrar os dados de Recebimento de ordem de compra\");\n\n return this.recebimentoOrdemCompraService.registrarChegadaVeiculoRecebimentoOrdemCompra({\n recebimentoOrdemCompra,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField, IToken } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { ConfirmationService, DialogService, MessageService, SortMeta } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { concatMap, debounceTime, filter, finalize, map, mergeMap, takeUntil } from \"rxjs/operators\";\nimport { getLookupLabel, onLookupRequest, onSearchRequest } from \"../../../utils/lookup-utils\";\nimport { dialogConfig, isValidFilter } from \"../../../utils/utils\";\nimport { NotaFormComponent } from \"../../components/nota-form/nota-form.component\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { Derivacao } from \"../../core/entities/derivacao/derivacao\";\nimport { DerivacaoService } from \"../../core/entities/derivacao/derivacao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { FilialService, PesquisarFiliaisInput } from \"../../core/entities/filial/filial.service\";\nimport { OrdemCompra } from \"../../core/entities/ordem-compra/ordem-compra\";\nimport { OrdemCompraService } from \"../../core/entities/ordem-compra/ordem-compra.service\";\nimport { PessoaEndereco } from \"../../core/entities/pessoa-endereco/pessoa-endereco\";\nimport { PessoaEnderecoService } from \"../../core/entities/pessoa-endereco/pessoa-endereco.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ProdutoParams, ProdutoService } from \"../../core/entities/produto/produto.service\";\nimport { RecebimentoOrdemCompra } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra\";\nimport { RecebimentoOrdemCompraDto } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra-dto\";\nimport { RecebimentoOrdemCompraService } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service\";\nimport { Safra } from \"../../core/entities/safra/safra\";\nimport { SafraService } from \"../../core/entities/safra/safra.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { NotaValidatorService, PesquisarDocumentoResponse } from \"../../core/nota-validator.service\";\nimport { RecebimentoOrdemCompraChegadaVeiculoOverride } from \"../recebimento-ordem-compra-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { OrdemCompraFormComponent } from './../ordem-compra-form/ordem-compra-form.component';\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from \"../../core/erp-form-config/erp-form-config-service\";\nimport { OrdemCompraDto } from \"../../core/entities/ordem-compra/ordem-compra-dto\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: 'recebimento-ordem-compra-form',\n templateUrl: './recebimento-ordem-compra-form.component.html',\n styleUrls: ['../../erp-senior.scss'],\n providers: [ConfirmationService]\n})\n\nexport class RecebimentoOrdemCompraFormComponent implements OnInit, OnDestroy, AfterViewInit {\n formGroup: FormGroup;\n\n derivacaoSearchFields: FormField[];\n derivacaoSearchGridData: Derivacao[];\n derivacaoLookupDisplayFields = [\"codigo\", \"descricao\"];\n derivacaoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n derivacaoLookupSeparator = \" - \";\n derivacaoLookupSuggestions: Derivacao[];\n derivacaoSearchTotalRecords: number;\n\n filialSearchFields: FormField[];\n filialSearchGridFields: FormField[];\n filialSearchGridData: Filial[];\n filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n filialLookupSeparator = \" - \";\n filialLookupSuggestions: Filial[];\n filialSearchTotalRecords: number;\n\n fornecedorSearchFields: FormField[];\n fornecedorSearchGridData: Pessoa[];\n fornecedorLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n fornecedorAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n fornecedorLookupSeparator = \" - \";\n fornecedorLookupSuggestions: Pessoa[];\n fornecedorSearchTotalRecords: number;\n\n ordemCompraSearchFields: FormField[];\n ordemCompraSearchGridFields: FormField[];\n ordemCompraSearchGridData: OrdemCompra[];\n ordemCompraLookupDisplayFields = [\"codigo\", \"empresa.nome\"];\n ordemCompraAdvancedDisplayFields = [\"id\", \"codigo\", \"empresa.nome\", \"filial.nome\", \"pessoa.nome\"];\n ordemCompraLookupSeparator = \" - \";\n ordemCompraLookupSuggestions: OrdemCompra[];\n ordemCompraSearchTotalRecords: number;\n\n origemMercadoriaSearchFields: FormField[];\n origemMercadoriaSearchGridData: PessoaEndereco[];\n origemMercadoriaLookupDisplayFields = [\"codigo\", \"endereco\"];\n origemMercadoriaAdvancedDisplayFields = [\"id\", \"codigo\", \"endereco\", \"numero\"];\n origemMercadoriaLookupSeparator = \" - \";\n origemMercadoriaLookupSuggestions: PessoaEndereco[];\n origemMercadoriaSearchTotalRecords: number;\n\n produtoSearchFields: FormField[];\n produtoSearchGridData: Produto[];\n produtoLookupDisplayFields = [\"codigo\", \"descricao\"];\n produtoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n produtoLookupSeparator = \" - \";\n produtoLookupSuggestions: Produto[];\n produtoSearchTotalRecords: number;\n\n safraSearchFields: FormField[];\n safraSearchGridFields: FormField[];\n safraSearchGridData: Safra[];\n safraLookupDisplayFields = [\"codigo\", \"descricao\"];\n safraAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n safraLookupSeparator = \" - \";\n safraLookupSuggestions: Safra[];\n safraSearchTotalRecords: number;\n\n transportadoraSearchFields: FormField[];\n transportadoraSearchGridFields: FormField[];\n transportadoraSearchGridData: Transportadora[];\n transportadoraLookupDisplayFields = [\"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraAdvancedDisplayFields = [\"id\", \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraLookupSeparator = \" - \";\n transportadoraLookupSuggestions: Transportadora[];\n transportadoraSearchTotalRecords: number;\n\n disableButtonSave: boolean = false;\n\n chaveNotaFiscal: string;\n\n totalEixosContratados: number = 0;\n totalEixosComposicao: number = 0;\n\n erroChaveNota = false;\n erroFornecedores = false;\n\n public notasTokens: IToken[] = [];\n public fornecedorNotasTokens: IToken[] = [];\n public fornecedorNotas = [];\n\n private formCarregado = false;\n\n ordemCompraSelecionado: any = null;\n\n public loading: boolean;\n public saveAndInitButton: any;\n public createdByErp: boolean;\n\n @Input() private agenda: Agenda;\n\n private readonly ngUnsubscribe = new Subject<void>();\n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n private ordens: any;\n\n constructor(\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private filialService: FilialService,\n private pessoaService: PessoaService,\n private produtoService: ProdutoService,\n private derivacaoService: DerivacaoService,\n private transportadoraService: TransportadoraService,\n private ordemCompraService: OrdemCompraService,\n private recebimentoOrdemCompraService: RecebimentoOrdemCompraService,\n private messageService: MessageService,\n private route: ActivatedRoute,\n private router: Router,\n private origemMercadoriaService: PessoaEnderecoService,\n private safraService: SafraService,\n private override: RecebimentoOrdemCompraChegadaVeiculoOverride,\n private notaValidatorService: NotaValidatorService,\n private confirmationService: ConfirmationService,\n private dialogService: DialogService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private verificaNotaFiscal: VerificaNotafiscal,\n private hasChangeService: HasChangeService,\n ) {\n this.formGroup = this.getFormGroup();\n }\n\n public ngOnInit() {\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe(({ agenda }) => {\n if (agenda == \"new\") {\n return this.configureForm();\n }\n this.getRecebimentoOrdemCompra(agenda);\n });\n\n this.formGroup\n .get('filial')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('fornecedores')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('transportadora')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n\n this.derivacaoSearchFields = this.getDerivacaoSearchFields();\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n this.fornecedorSearchFields = this.getFornecedorSearchFields();\n this.origemMercadoriaSearchFields = this.getOrigemMercadoriaSearchFields();\n this.produtoSearchFields = this.getProdutoSearchFields();\n this.safraSearchFields = this.getSafraSearchFields();\n this.safraSearchGridFields = this.getSafraSearchGridFields();\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n this.ordemCompraSearchFields = this.getOrdemCompraFields();\n this.ordemCompraSearchGridFields = this.getOrdemCompraGridFields();\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.getEmpresaFilial();\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n const statusAgenda = [\n \"AGUARDANDO_CONFIRMACAO_SOLICITANTE\",\n \"AGENDADO\",\n \"AGUARDANDO_CONFIRMACAO\",\n \"EM_EXECUCAO\",\n \"REJEITADO_POR_VALIDACAO\"\n ];\n if (this.agenda && !statusAgenda.includes(this.agenda.status)) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n this.createdByErpDisableForm();\n\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n this.verificaSeTemAlteracao();\n }\n\n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n this.override.initialize();\n this.saveAndInitButton = document.getElementById('init');\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.override.remove();\n }\n\n public createdByErpDisableForm() {\n if (this.agenda && this.agenda.createdByErp) {\n this.createdByErp = true;\n this.formGroup.get('filial').disable();\n this.formGroup.get('produto').disable();\n this.formGroup.get('derivacao').disable();\n if (!!this.formGroup.get(\"transportadora\").value) {\n this.formGroup.get('transportadora').disable();\n }\n }\n }\n\n private configureForm() {\n this.valueChanges(this.formGroup, \"filial\", this.onFilialValueChange);\n const getFilterQueryProduto = (value: any) => `produto.id eq '${value.id}' and situacao eq 'ATIVO'`;\n this.checkValuesChanges(this.formGroup, \"produto\", \"derivacao\", this.derivacaoService, getFilterQueryProduto,\n ['codigo', 'descricao'], (val) => Derivacao.fromDto(val), 10, true, true\n );\n\n (this.formGroup.get(\"fornecedores\") as FormArray).valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(fornecedores => {\n if (!!fornecedores && fornecedores.length > 0) {\n this.formGroup.get(\"produto\").disable();\n this.formGroup.get(\"derivacao\").disable();\n } else {\n this.formGroup.get(\"produto\").enable();\n this.formGroup.get(\"derivacao\").enable();\n }\n })\n\n this.createdByErpDisableForm();\n this.formCarregado = true;\n }\n\n private getEmpresaFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length !== 1) return;\n\n const filterQuery = `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`;\n this.filialService.list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const filial = contents[0];\n const empresa = contents[0].empresa;\n filial.label = `${filial.codigo} - ${filial.nome}`;\n empresa.label = `${empresa.codigo} - ${empresa.nome}`;\n this.formGroup.get('empresa').setValue(empresa);\n this.formGroup.get('filial').setValue(filial);\n this.formGroup.get('filial').enable();\n this.formGroup.get('produto').enable();\n this.formGroup.get('ordemCompra').enable();\n }\n });\n }\n\n private checkValuesChanges(formGroup: FormGroup, formControlUpdated: string, formControlDependent: string, service: any, getFilterQuery: any,\n variables: any, dtoConverter: (val: any) => any, querySize: number = 1, isChangeValidators?: boolean, clearFormControlDependent?: boolean) {\n formGroup.get(formControlUpdated)\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n debounceTime(500),\n filter(value => {\n if (isChangeValidators) {\n formGroup.get(formControlDependent).setValidators(value ? Validators.required : Validators.nullValidator);\n }\n if (clearFormControlDependent) {\n formGroup.get(formControlDependent).setValue(null);\n }\n if (!value) {\n formGroup.get(formControlDependent).setValue(null);\n formGroup.get(formControlDependent).disable();\n return false;\n }\n return true;\n }),\n mergeMap((value: any) => {\n const filterQuery = getFilterQuery(value);\n return service.list({ filterQuery, page: 0, size: querySize });\n })\n )\n .subscribe(({ contents }) => {\n if (!contents || !contents.length || contents.length > 1) {\n return formGroup.get(formControlDependent).enable();\n }\n if (contents.length === 1) {\n contents[0].label = this.translate.instant(getLookupLabel(contents[0], variables, ' - ', true));\n formGroup.get(formControlDependent).setValue(dtoConverter(contents[0]));\n } \n\n if (contents.length > 1) {\n formGroup.get(formControlDependent).enable();\n } else {\n formGroup.get(formControlDependent).disable();\n }\n });\n }\n\n public onBlurChaveNotaFiscal() {\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(this.chaveNotaFiscal, this.ordens, this.fornecedorNotasTokens)) {\n return;\n }\n\n this.removeNotaError();\n const value = this.chaveNotaFiscal;\n if (!!value) {\n this.loading = true;\n this.mensagemBuscandoNota();\n\n this.notaValidatorService.pesquisarDocumentoValidaNotaEmUso({\n filialId: (this.formGroup.get(\"filial\").value && this.formGroup.get(\"filial\").value.id) || null,\n chaveDocumento: value.trim() || \"\"\n }).pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false)\n ).subscribe((response) => {\n this.adicionarNovaNota(response);\n });\n }\n }\n\n private valueChanges(formGroup: FormGroup, path: string, subscribe: any) {\n formGroup.get(path)\n .valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(value => subscribe(value, formGroup));\n }\n\n /**PRODUTO DEPENDE DE FILIAL. ORDEM COMPRA DEPENDE DE FILIAL */\n private onFilialValueChange = (filial: Filial, formGroup: FormGroup) => {\n this.changeFormGroupValue(filial, \"produto\", formGroup);\n }\n\n private onFornecedorChange = (fornecedor: PessoaEndereco, formGroup: FormGroup) => {\n this.changeFormGroupValue(fornecedor, \"origemMercadoria\", formGroup);\n this.changeFormGroupValue(fornecedor, \"ordens\", formGroup);\n }\n\n private changeFormGroupValue(isAny: any, formControl: string, formGroup: any) {\n if (!isAny) {\n formGroup.get(formControl).setValue(undefined);\n formGroup.get(formControl).disable();\n return;\n }\n\n formGroup.get(formControl).enable();\n }\n\n public getRecebimentoOrdemCompra(agendaId: string) {\n this.loading = true;\n this.recebimentoOrdemCompraService.list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.formCarregado = true;\n return this.configureForm();\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao = contents[0].agenda && contents[0].agenda.veiculo \n ? contents[0].agenda.veiculo.eixos || 0 : 0;\n\n const recebimentoOrdemCompra: RecebimentoOrdemCompraDto = RecebimentoOrdemCompra.fromDto(contents[0]);\n this.formGroup.enable();\n this.formGroup.patchValue(recebimentoOrdemCompra);\n\n recebimentoOrdemCompra.fornecedores.forEach(fornecedor => {\n const form = this.getFornecedorForm(fornecedor);\n this.getFornecedores().push(form);\n\n fornecedor.ordens.forEach(ordemCompra => {\n const ordemCompraForm = this.getOrdemCompraForm(ordemCompra);\n this.getOrdensCompra(form).push(ordemCompraForm);\n ordemCompra.notas.forEach(nota => {\n const notaForm = this.getNotaForm(nota);\n this.getNotas(ordemCompraForm).push(notaForm);\n });\n });\n });\n this.configureForm();\n });\n }\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) =>\n this.filialLookupSuggestions = list.filiais.map((filial: any) => Filial.fromDto(filial))\n );\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [ { ...(sortFormatted) } ] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n /**FILTRA FORNECEDOR EQ TRUE */\n public onFornecedorLookupRequest(value: string) {\n onLookupRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields,\n this.fornecedorAdvancedDisplayFields, this.fornecedorLookupSeparator, this.pessoaService, \n value, ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.fornecedorLookupSuggestions = list.contents);\n }\n\n public onFornecedorSearchRequest(event: any) {\n onSearchRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields,\n this.fornecedorAdvancedDisplayFields, this.fornecedorLookupSeparator, this.pessoaService, \n event, ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.fornecedorSearchGridData = list.contents;\n this.fornecedorSearchTotalRecords = list.totalElements;\n });\n }\n\n /**FILTRA ORIGEM MERCADORIA PELO FORNECEDOR SELECIONADO */\n public onOrigemMercadoriaLookupRequest(fornecedorForm: FormGroup, value: string) {\n onLookupRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, \n value, ` pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaLookupSuggestions = list.contents;\n });\n }\n\n public onOrigemMercadoriaSearchRequest(fornecedorForm: FormGroup, event: any) {\n onSearchRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, event,\n ` pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaSearchGridData = list.contents;\n this.origemMercadoriaSearchTotalRecords = list.totalElements;\n });\n }\n\n /**FILTRA DERIVACAO PELO PRODUTO */\n public onDerivacaoLookupRequest(value: string) {\n onLookupRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields,\n this.derivacaoLookupSeparator, this.derivacaoService, value,\n ` produto.id eq '${this.formGroup.get(\"produto\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoLookupSuggestions = list.contents;\n });\n }\n\n public onDerivacaoSearchRequest(event: any) {\n onSearchRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields,\n this.derivacaoAdvancedDisplayFields, this.derivacaoLookupSeparator, this.derivacaoService, event,\n ` produto.id eq '${this.formGroup.get(\"produto\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoSearchGridData = list.contents;\n this.derivacaoSearchTotalRecords = list.totalElements;\n });\n }\n\n public onOrdemCompraLookupRequest(fornecedorForm: FormGroup, value: string) {\n onLookupRequest(this.ordemCompraSearchFields, this.ordemCompraLookupDisplayFields, this.ordemCompraAdvancedDisplayFields,\n this.ordemCompraLookupSeparator, this.ordemCompraService, value,\n `filial.id eq '${this.formGroup.get(\"filial\").value.id}' and pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}'`)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.ordemCompraLookupSuggestions = list.contents;\n });\n }\n\n public onOrdemCompraSearchRequest(fornecedorForm: FormGroup, event: any) {\n onSearchRequest(this.ordemCompraSearchFields, this.ordemCompraLookupDisplayFields,\n this.ordemCompraAdvancedDisplayFields, this.ordemCompraLookupSeparator, this.ordemCompraService, event,\n `filial.id eq '${this.formGroup.get(\"filial\").value.id}' and pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}'`)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.ordemCompraSearchGridData = list.contents;\n this.ordemCompraSearchTotalRecords = list.totalElements;\n });\n }\n\n public addOrdemCompra(fornecedorForm: FormGroup) {\n this.dialogService\n .open(OrdemCompraFormComponent, {\n ...dialogConfig,\n header: 'Adicionar Ordem de Compra',\n data: {\n agenda: this.agenda,\n filial: this.formGroup.get(\"filial\").value,\n fornecedor: fornecedorForm.get(\"fornecedor\").value,\n ordens: fornecedorForm.get(\"ordens\").value,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe((ordemCompra: any) => this.onOrdemCompraSaved(ordemCompra, fornecedorForm));\n }\n\n public onProdutoLookupRequest(value: string) {\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService.listProdutos({\n pesquisa: value,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null,\n situacao: 'ATIVO',\n pagina: {\n limit: 100,\n offset: 0\n }\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => this.produtoLookupSuggestions = res.produtos.map(Produto.fromDto));\n }\n\n public onProdutoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getProdutoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [ { ...(sortFormatted) } ] : null } } as ProdutoParams);\n\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService.listProdutos({\n ...filterInput,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n situacao: 'ATIVO',\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => {\n this.produtoSearchTotalRecords = res.qtdTotalRegistros;\n this.produtoSearchGridData = res.produtos.map(Produto.fromDto);\n });\n }\n\n public onSafraLookupRequest(value: string) {\n onLookupRequest(this.safraSearchFields, this.safraLookupDisplayFields,\n this.safraAdvancedDisplayFields, this.safraLookupSeparator, this.safraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.safraLookupSuggestions = list.contents;\n });\n }\n\n public onSafraSearchRequest(event: any) {\n onSearchRequest(this.safraSearchFields, this.safraLookupDisplayFields,\n this.safraAdvancedDisplayFields, this.safraLookupSeparator, this.safraService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.safraSearchGridData = list.contents;\n this.safraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onTransportadoraLookupRequest(value: string) {\n onLookupRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, \n this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n public onTransportadoraSearchRequest(event: any) {\n onSearchRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, \n this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n public setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace(/\\./g, '').replace(/\\//g, '').replace(/\\-/g, '');\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService\n .list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n contents[0].label = this.translate.instant(getLookupLabel(contents[0], ['codigo', 'pessoa.nome'], ' - ', true));\n this.formGroup.get('transportadora').setValue(contents[0]);\n }\n });\n }\n }\n\n public onSave(start?: boolean) {\n this.formGroup.get('agenda').setValue(this.agenda);\n \n if (this.formGroup.invalid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n if ((this.formGroup.get(\"fornecedores\") as FormArray).length <= 0) {\n this.erroFornecedores = true;\n return;\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessDataValidaNotaNaOrdemCompra(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((value: any) => {\n this.formGroup.get(\"id\").setValue(value.id || null);\n this.successMessage();\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n public addFornecedor(data?: any) {\n this.erroFornecedores = false;\n const fornecedor = this.getFornecedorForm(data);\n this.getFornecedores().push(fornecedor);\n return fornecedor;\n }\n\n public removeFornecedor(control: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_fornecedor_header\"),\n message: this.translate.instant(\"yms.erp.remove_fornecedor_message\"),\n accept: () => {\n const index = this.getFornecedores().controls.indexOf(control);\n this.getFornecedores().removeAt(index);\n }\n });\n }\n\n public getFornecedorForm(data: any = {}) {\n const formGroup = this.formBuilder.group({\n fornecedor: [data.fornecedor, Validators.required],\n origemMercadoria: [data.origemMercadoria],\n ordens: this.formBuilder.array([]),\n });\n\n this.valueChanges(formGroup, \"fornecedor\", this.onFornecedorChange);\n\n const getFilterQueryFornecedor = (value: any) => `pessoa.id eq '${value.id}'`;\n this.checkValuesChanges(\n formGroup, \"fornecedor\", \"origemMercadoria\", this.origemMercadoriaService,\n getFilterQueryFornecedor, ['codigo', 'endereco'], (val) => PessoaEndereco.fromDto(val), 10, false, true\n );\n\n return formGroup;\n }\n\n public getFornecedores() {\n return (this.formGroup.get(\"fornecedores\") as FormArray);\n }\n\n public getNotas(formGroup: FormGroup) {\n return (formGroup.get(\"notas\") as FormArray);\n }\n\n public addNota(formGroup: FormGroup) {\n this.dialogService.open(NotaFormComponent, {\n header: this.translate.instant(\"yms.erp.adicionar_nota\"),\n ...dialogConfig,\n data: {\n fornecedor: formGroup.get(\"fornecedor\").value,\n produto: this.formGroup.get(\"produto\").value,\n filial: this.formGroup.get(\"filial\").value,\n fornecedorNotasTokens: this.fornecedorNotasTokens,\n ordens: this.ordens,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe(value => this.onNotaSaved(value, formGroup));\n }\n\n public removerNota(fornecedorForm: FormGroup, ordemCompraForm: FormGroup, notaForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_nota_header\"),\n message: this.translate.instant(\"yms.erp.remove_nota_message\"),\n accept: () => {\n const ordemCompraId = ordemCompraForm[\"value\"][\"ordemCompra\"][\"id\"];\n const index = this.getNotasFromOrdens(fornecedorForm, ordemCompraId).controls.indexOf(notaForm);\n this.getNotasFromOrdens(fornecedorForm, ordemCompraId).removeAt(index);\n\n const nota = notaForm[\"value\"];\n this.fornecedorNotasTokens.push({\n id: nota.chaveNotaFiscal,\n label: nota.numeroNotaFiscal\n });\n this.fornecedorNotas.push({\n chaveNotaFiscal: nota.chaveNotaFiscal,\n serieNotaFiscal: nota.serieNotaFiscal,\n serieLegalNotaFiscal: nota.serieLegalNotaFiscal,\n numeroNotaFiscal: nota.numeroNotaFiscal,\n });\n }\n });\n }\n\n public showButtons() {\n if (!this.agenda) {\n return false;\n }\n\n return [\n StatusAgenda.AGENDADO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO_SOLICITANTE,\n StatusAgenda.REJEITADO_POR_VALIDACAO\n ].includes(this.agenda.status as StatusAgenda);\n }\n\n public disableAdicionarNota() {\n if (this.ordemCompraSelecionado === null || this.ordemCompraSelecionado === undefined) {\n return true;\n }\n return false;\n }\n\n public removerOrdemCompra(fornecedorForm: FormGroup, ordemCompraForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_ordem_compra_header\"),\n message: this.translate.instant(\"yms.erp.remove_ordem_compra_message\"),\n accept: () => {\n const ordensCompraForm = this.getOrdensCompra(fornecedorForm);\n const index = ordensCompraForm.controls.indexOf(ordemCompraForm);\n ordensCompraForm.removeAt(index);\n }\n });\n }\n\n private onOrdemCompraSaved(ordemCompra: any, fornecedorForm: FormGroup) {\n const ordemCompraForm = this.getOrdemCompraForm({ ordemCompra : ordemCompra });\n this.getOrdensCompra(fornecedorForm).push(ordemCompraForm);\n this.getFornecedorByOrdemCompra(ordemCompra, fornecedorForm);\n }\n\n private getFornecedorByOrdemCompra(ordemCompra: OrdemCompraDto, fornecedorForm: FormGroup) {\n this.pessoaService.list({ size: 1, page: 0, filterQuery: `id eq '${ordemCompra.pessoa.id}'` })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(({ contents }) => (contents || []).length && contents[0]),\n filter(value => !!value)\n )\n .subscribe(pessoa => {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(pessoa));\n });\n }\n\n getOrdensCompra(fornecedorForm: FormGroup) {\n this.ordens = fornecedorForm.get(\"ordens\");\n return fornecedorForm.get(\"ordens\") as FormArray;\n }\n\n public getNotasFromOrdens(fornecedorForm: AbstractControl, ordemCompraId: any) {\n let ordensFormSelecionado = null;\n const ordensCompraForm = fornecedorForm[\"controls\"][\"ordens\"][\"controls\"];\n\n for (let ordemCompraForm of ordensCompraForm) {\n if (ordemCompraForm[\"controls\"][\"ordemCompra\"][\"value\"].id === ordemCompraId) {\n ordensFormSelecionado = ordemCompraForm[\"controls\"][\"notas\"];\n }\n }\n\n return ordensFormSelecionado as FormArray;\n }\n\n public addFornecedorNotasTokenEmOrdemCompra(fornecedorForm: FormGroup, token: IToken) {\n if (this.ordemCompraSelecionado === null) {\n this.mensagemOrdemCompraNaoSelecionado();\n return;\n }\n\n const notas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal === token.id);\n const notasForm = this.getNotasFromOrdens(fornecedorForm, this.ordemCompraSelecionado.id);\n if (notasForm !== null && notas[0] !== null) {\n notasForm.push(this.getNotaForm(notas[0]));\n }\n\n this.removeFornecedorNotasTokenDaOrdemCompra(token);\n }\n\n public removeFornecedorNotasTokenDaOrdemCompra(token: IToken) {\n this.fornecedorNotasTokens.splice(this.fornecedorNotasTokens.indexOf(token), 1);\n this.fornecedorNotas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal !== token.id);\n }\n\n private getOrdemCompraForm(data: any = {}) {\n return this.formBuilder.group({\n ordemCompra: [data.ordemCompra, Validators.required],\n notas: this.formBuilder.array([]),\n });\n }\n\n private getNotaForm(data: any = {}) {\n return this.formBuilder.group({\n chaveNotaFiscal: [data.chaveNotaFiscal],\n serieNotaFiscal: [data.serieNotaFiscal],\n serieLegalNotaFiscal: [data.serieLegalNotaFiscal],\n numeroNotaFiscal: [data.numeroNotaFiscal],\n });\n }\n\n private mensagemOrdemCompraNaoSelecionado() {\n this.addMessage(\"error\", \"Ordem de compra não selecionado\", \"Nenhum ordem de compra foi selecionado!\");\n }\n\n private onNotaSaved(value: any, fornecedorForm: FormGroup) {\n if (this.ordemCompraSelecionado === null) {\n this.mensagemOrdemCompraNaoSelecionado();\n return;\n }\n\n if (!value.addFornecedor) {\n const notasForm = this.getNotasFromOrdens(fornecedorForm, this.ordemCompraSelecionado.id);\n if (notasForm !== null) {\n notasForm.push(this.getNotaForm(value));\n }\n return;\n }\n\n const existsFornecedor = (this.formGroup.get(\"fornecedores\") as FormArray).controls.find((form) => (form.value.fornecedor || {id: undefined}).id === value.fornecedor.id);\n const { infoNota } = value;\n const notaForm = this.getNotaForm({ \n chaveNotaFiscal: infoNota.chave,\n serieNotaFiscal: infoNota.serie,\n serieLegalNotaFiscal: infoNota.serieLegal,\n numeroNotaFiscal: infoNota.numero,\n });\n\n if (!!existsFornecedor) {\n const notasForm = this.getNotasFromOrdens(existsFornecedor, this.ordemCompraSelecionado.id);\n notasForm.push(notaForm);\n this.disableFields(existsFornecedor, \"fornecedor\", \"origemMercadoria\");\n } else if (!fornecedorForm.get(\"fornecedor\").value) {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(value.fornecedor));\n fornecedorForm.get(\"origemMercadoria\").setValue(PessoaEndereco.fromDto(value.origemMercadoria));\n const notasForm = this.getNotasFromOrdens(fornecedorForm, this.ordemCompraSelecionado.id);\n notasForm.push(notaForm);\n this.disableFields(fornecedorForm, \"fornecedor\", \"origemMercadoria\");\n } else {\n const fornecedor = this.addFornecedor({ fornecedor: Pessoa.fromDto(value.fornecedor), origemMercadoria: PessoaEndereco.fromDto(value.origemMercadoria) });\n const notasForm = this.getNotasFromOrdens(fornecedor, this.ordemCompraSelecionado.id);\n notasForm.push(notaForm);\n this.disableFields(fornecedor, \"fornecedor\", \"origemMercadoria\");\n }\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n value.empresa = value.filial.empresa;\n const recebimentoOrdemCompraDto = RecebimentoOrdemCompra.toDto(value);\n\n if (this.isNew() && !value.id) {\n return this.recebimentoOrdemCompraService.insert(recebimentoOrdemCompraDto);\n } else {\n return this.recebimentoOrdemCompraService.update(this.formGroup.value.id, recebimentoOrdemCompraDto);\n }\n }\n\n private getFormGroup() {\n return this.formBuilder.group({\n id: [undefined],\n filial: [{ value: undefined, disabled: false }, Validators.required],\n fornecedores: this.formBuilder.array([]),\n produto: [{ value: undefined, disabled: true }],\n derivacao: [{ value: undefined, disabled: true }],\n transportadora: [undefined],\n safra: [undefined],\n agenda: [{ value: undefined, disabled: true }, Validators.required],\n });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup){ \n this.validateAllFormFields(control);\n } else if (control instanceof FormArray) {\n control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n }\n });\n }\n\n private adicionarNovaNota(response: PesquisarDocumentoResponse) {\n const values = (response.documentos || []).length ? response.documentos[0] : undefined;\n if (!values) {\n return;\n }\n\n const fornecedor = Pessoa.fromDto(values.fornecedor);\n const origemMercadoria = PessoaEndereco.fromDto(values.origemMercadoria);\n\n const fornecedorForm = this.getFornecedores().controls.find(({ value }) => value.fornecedor.id === fornecedor.id) as FormGroup;\n if (!fornecedorForm) {\n this.addFornecedor({ fornecedor, origemMercadoria });\n this.addFornecedorNotasToken(values);\n return;\n }\n\n this.addFornecedorNotasToken(values);\n }\n\n private addFornecedorNotasToken(value: any) {\n this.fornecedorNotasTokens.push({\n id: this.chaveNotaFiscal,\n label: value.numero\n });\n \n this.fornecedorNotas.push({\n chaveNotaFiscal: this.chaveNotaFiscal,\n serieNotaFiscal: value.serie,\n serieLegalNotaFiscal: value.serieLegal,\n numeroNotaFiscal: value.numero,\n });\n\n this.chaveNotaFiscal = undefined;\n this.loading = false;\n }\n\n private removeNotaError() {\n this.erroChaveNota = false;\n }\n\n private addNotaError() {\n this.erroChaveNota = true;\n }\n\n private mensagemBuscandoNota() {\n this.messageService.add({\n severity: 'info',\n summary: this.translate.instant(\"yms.erp.nota_search_summary\"),\n detail: this.translate.instant(\"yms.erp.nota_search_detail\"),\n life: 5000\n });\n }\n\n private disableFields(formGroup: AbstractControl, ...keys: string[]) {\n keys.forEach(key => formGroup.get(key).disable());\n }\n\n private getDerivacaoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_codigo\")\n }),\n ];\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n })\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n })\n ];\n }\n\n private getFornecedorSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_codigo\")\n }),\n new FormField({\n name: \"cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\")\n }),\n ];\n }\n\n private getOrigemMercadoriaSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_codigo\")\n }),\n new FormField({\n name: \"numero\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_numero\")\n }),\n new FormField({\n name: \"endereco\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_endereco\")\n }),\n ];\n }\n\n private getProdutoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_codigo\")\n }),\n ];\n }\n\n private getSafraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_descricao\")\n })\n ];\n }\n\n private getSafraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_descricao\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_empresa\")\n })\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getOrdemCompraFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n ];\n }\n\n private getOrdemCompraGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n ];\n }\n\n private onChangeRevalidation = (_) => {\n if (this.erpProcessData && this.formGroup) {\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n }\n\n}\n","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { Subject, throwError, of } from \"rxjs\";\nimport { takeUntil, switchMap, finalize } from \"rxjs/operators\";\nimport { RecebimentoOrdemCompra } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra\";\nimport { RecebimentoOrdemCompraService } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service\";\nimport { RecebimentoOrdemCompraDto } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra-dto\";\n\n@Component({\n selector: 'recebimento-ordem-compra-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_filial' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.filial?.codigo}} - {{recebimentoOrdemCompra?.filial?.nome}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_produto' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.produto?.descricao}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_derivacao' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.derivacao?.descricao}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_transportadora' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.transportadora?.placaVeiculo}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_safra' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.safra?.descricao}}</span>\n </div>\n </div>\n <div *ngFor=\"let fornecedor of recebimentoOrdemCompra?.fornecedores\">\n <div class=\"separator\"></div>\n <h3>Fornecedor - {{fornecedor?.fornecedor?.nome}}</h3>\n <div class=\"detail-pane\">\n <div class=\"detail-span\" *ngFor=\"let ordemCompra of fornecedor.ordens\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_ordemcompra' | translate}}</span>\n <span class=\"data\">{{ ordemCompra.ordemCompra?.codigo }}</span>\n </div>\n </div>\n\n <div>\n <h4>Ordens de Compra</h4>\n <p-accordion>\n <p-accordionTab *ngFor=\"let ordemCompra of fornecedor.ordens\">\n <p-header>\n Ordem de compra {{ ordemCompra?.ordemCompra?.numero }}, Filial {{ ordemCompra?.ordemCompra?.filial?.codigo }}\n </p-header>\n\n <div *ngFor=\"let nota of ordemCompra.notas\">\n <div class=\"detail-pane\">\n <div class=\"detail-span\">\n <span class=\"title\">Chave nota fiscal</span>\n <span class=\"data\">{{ nota?.chaveNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie nota fiscal</span>\n <span class=\"data\">{{ nota?.serieNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie legal nota fiscal</span>\n <span class=\"data\">{{ nota?.serieLegalNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Número nota fiscal</span>\n <span class=\"data\">{{ nota?.numeroNotaFiscal }}</span>\n </div>\n </div>\n <hr />\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./recebimento-ordem-compra-info.component.scss']\n})\nexport class RecebimentoOrdemCompraInfoComponent implements AfterViewInit {\n\n @Input() agenda: any;\n\n recebimentoOrdemCompra: RecebimentoOrdemCompra;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n\n constructor(private recebimentoOrdemCompraService: RecebimentoOrdemCompraService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.recebimentoOrdemCompraService\n .list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({ contents }) => {\n if (!contents.length) {\n return throwError(\"Recebimento Ordem de Compra não encontrado.\");\n }\n return of(contents[0]);\n }),\n finalize(() => this.loading = false)\n )\n .subscribe((recebimentoOrdemCompra: RecebimentoOrdemCompraDto) => this.recebimentoOrdemCompra = RecebimentoOrdemCompra.fromDto(recebimentoOrdemCompra));\n }\n}","import * as _moment from \"moment\";\nconst moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraDto } from \"./contrato-compra-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Filial } from \"../filial/filial\";\nimport { Safra } from \"../safra/safra\";\nimport { ContratoCompraItem } from \"../contrato-compra-item/contrato-compra-item\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { SituacaoAprovacao } from \"../../enums/situacao-aprovacao\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class ContratoCompra {\n public id?: string;\n public empresa: Empresa;\n public pessoa: Pessoa;\n public filial: Filial;\n public numero: number;\n public situacao: Situacao;\n public numeroAprovacao?: number;\n public situacaoAprovacao?: SituacaoAprovacao;\n public dataEmissao: Date;\n public safra?: Safra;\n public contratoPrioritario?: boolean;\n public dataInicioVigencia?: Date;\n public dataFimVigencia?: Date;\n public itens?: ContratoCompraItem[];\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(contratoCompraDto: ContratoCompraDto, originEntity?: string): ContratoCompra {\n const model: any = { ...contratoCompraDto };\n\n model.dataEmissao = model.dataEmissao && moment(model.dataEmissao).toDate();\n model.dataInicioVigencia = model.dataInicioVigencia && moment(model.dataInicioVigencia).toDate();\n model.dataFimVigencia = model.dataFimVigencia && moment(model.dataFimVigencia).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n model.label = `Número: ${model.numero}, Filial: ${model.filial.codigo}`;\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"ContratoCompra\");\n if (originEntity !== \"Pessoa\" && model.pessoa) model.pessoa = Pessoa.fromDto(model.pessoa, \"ContratoCompra\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"ContratoCompra\");\n if (originEntity !== \"Safra\" && model.safra) model.safra = Safra.fromDto(model.safra, \"ContratoCompra\");\n if (originEntity !== \"ContratoCompraItem\" && model.itens)\n model.itens = Object.values(model.itens).map((item: any) => ContratoCompraItem.fromDto(item, \"ContratoCompra\"));\n\n return model as ContratoCompra;\n }\n\n public static toDto(contratoCompra: ContratoCompra, originEntity?: string): ContratoCompraDto {\n const dto: any = { ...contratoCompra };\n\n dto.dataEmissao = dto.dataEmissao && moment(dto.dataEmissao).format(\"YYYY-MM-DD\");\n dto.dataInicioVigencia = dto.dataInicioVigencia && moment(dto.dataInicioVigencia).format(\"YYYY-MM-DD\");\n dto.dataFimVigencia = dto.dataFimVigencia && moment(dto.dataFimVigencia).format(\"YYYY-MM-DD\");\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"ContratoCompra\");\n if (originEntity !== \"Pessoa\" && dto.pessoa) dto.pessoa = Pessoa.toDto(dto.pessoa, \"ContratoCompra\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"ContratoCompra\");\n if (originEntity !== \"Safra\" && dto.safra) dto.safra = Safra.toDto(dto.safra, \"ContratoCompra\");\n if (originEntity !== \"ContratoCompraItem\" && dto.itens)\n dto.itens = Object.values(dto.itens)\n .map((item: any) => ContratoCompraItem.toDto(item, \"ContratoCompra\"))\n .filter(item => Object.keys(item).length);\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\nconst moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraItemDto } from \"./contrato-compra-item-dto\";\nimport { ContratoCompra } from \"../contrato-compra/contrato-compra\";\nimport { Produto } from \"../produto/produto\";\nimport { Situacao } from \"../../enums/situacao\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class ContratoCompraItem {\n public id?: string;\n public contrato?: ContratoCompra;\n public sequencia: number;\n public sku?: Produto;\n public situacao: Situacao;\n public quantidadeContratada: number;\n public quantidadeUtilizada?: number;\n public quantidadeEncerrada?: number;\n public dataCompetencia: Date;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(contratoCompraItemDto: ContratoCompraItemDto, originEntity?: string): ContratoCompraItem {\n const model: any = { ...contratoCompraItemDto };\n model.sku = model.sku || {};\n\n model.dataCompetencia = model.dataCompetencia && moment(model.dataCompetencia).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n model.label = `${model.sequencia} - ${model.sku.descricao} - ${model.sku.codigo}`\n\n if (originEntity !== \"ContratoCompra\" && model.contrato)\n model.contrato = ContratoCompra.fromDto(model.contrato, \"ContratoCompraItem\");\n if (originEntity !== \"Produto\" && model.sku) model.sku = Produto.fromDto(model.sku, \"ContratoCompraItem\");\n\n return model as ContratoCompraItem;\n }\n\n public static toDto(contratoCompraItem: ContratoCompraItem, originEntity?: string): ContratoCompraItemDto {\n const dto: any = { ...contratoCompraItem };\n\n dto.dataCompetencia = dto.dataCompetencia && moment(dto.dataCompetencia).format(\"YYYY-MM-DD\");\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"ContratoCompra\" && dto.contrato) dto.contrato = ContratoCompra.toDto(dto.contrato, \"ContratoCompraItem\");\n if (originEntity !== \"Produto\" && dto.sku) dto.sku = Produto.toDto(dto.sku, \"ContratoCompraItem\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { FormGroup, FormBuilder, FormArray, Validators, FormControl } from \"@angular/forms\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { FormField, FieldType } from \"@seniorsistemas/angular-components\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, map } from \"rxjs/operators\";\nimport * as _moment from \"moment\";\nimport { ContratoCompraItem } from \"../../core/entities/contrato-compra-item/contrato-compra-item\";\nimport { ContratoCompraService } from \"../../core/entities/contrato-compra/contrato-compra.service\";\nimport { ContratoCompraItemService } from \"../../core/entities/contrato-compra-item/contrato-compra-item.service\";\nimport { ContratoCompra } from \"../../core/entities/contrato-compra/contrato-compra\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nconst moment = _moment;\n\n@Component({\n templateUrl: './contrato-form.component.html'\n})\nexport class ContratoFormComponent implements OnInit, OnDestroy {\n public formGroup: FormGroup;\n\n public contratoCompraLookupSuggestions: ContratoCompra[];\n public contratoCompraLookupDisplayFields = [\"numero\"];\n public contratoCompraAdvancedDisplayFields = [\"id\", \"numero\", \"numeroAprovacao\", \"situacaoAprovacao\", \"dataEmissao\", \"contratoPrioritario\", \"dataInicioVigencia\", \"dataFimVigencia\"];\n public contratoCompraLookupSeparator = \" - \";\n public contratoCompraSearchFields: FormField[];\n public contratoCompraSearchGridFields: FormField[];\n public contratoCompraSearchGridData: ContratoCompra[];\n public contratoCompraSearchTotalRecords: number;\n\n public contratoCompraItensLookupSuggestions: ContratoCompraItem[];\n public contratoCompraItensLookupDisplayFields = [\"sequencia\", \"sku.descricao\"];\n public contratoCompraItensAdvancedDisplayFields = [\"id\", \"sequencia\", \"sku.*\", \"situacao\", \"quantidadeContratada\", \"quantidadeUtilizada\", \"quantidadeEncerrada\", \"dataCompetencia\"];\n public contratoCompraItensLookupSeparator = \" - \";\n public contratoCompraItensSearchFields: FormField[];\n public contratoCompraItensSearchGridFields: FormField[];\n public contratoCompraItensSearchGridData: ContratoCompraItem[];\n public contratoCompraItensSearchTotalRecords: number;\n\n private readonly ngUnsubscribe = new Subject<void>();\n private agenda: Agenda;\n private filial: Filial;\n private fornecedor: Pessoa;\n private produto: Produto;\n private contratos: string[];\n\n constructor(\n private dialogRef: DynamicDialogRef,\n private dialogConfig: DynamicDialogConfig,\n private contratoCompraService: ContratoCompraService,\n private contratoCompraItemService: ContratoCompraItemService,\n private translate: TranslateService,\n private fb: FormBuilder\n ) { }\n\n ngOnInit() {\n const { data } = this.dialogConfig;\n this.agenda = data.agenda;\n this.filial = data.filial;\n this.fornecedor = data.fornecedor;\n this.produto = data.produto;\n this.contratos = data.contratos.map(({ contrato }: any) => !!contrato ? contrato.id : undefined).filter((val: any) => !!val);\n\n this.formGroup = this.getForm();\n \n this.contratoCompraSearchFields = this.getContratoCompraFields();\n this.contratoCompraSearchGridFields = this.getContratoCompraGridFields();\n\n this.contratoCompraItensSearchFields = this.getContratoCompraItensFields();\n this.contratoCompraItensSearchGridFields = this.getContratoCompraItensGridFields();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onContratoCompraLookupRequest(value: string) {\n const sort = this.contratoCompraLookupDisplayFields.map((field: any) => ({ field, order: 'Asc' }))[0];\n\n const filter: any = {\n numero: +value.replace(/\\D/g, \"\")\n };\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n this.contratoCompraService\n .listContratosCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n produtoId: (this.produto || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n contratosSelecionados: this.contratos,\n pagina: {\n limit: 30,\n offset: 0,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.contratoCompraLookupSuggestions = list.contents.map(ContratoCompra.fromDto);\n });\n }\n\n public onContratoCompraSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const filter = this.getContratoCompraFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, b: any) => {\n return {\n ...a,\n [b.name]: filterData[b.name]\n };\n }, {} as any);\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n filter.dataEmissao = filter.dataEmissao && moment(filter.dataEmissao).format(\"YYYY-MM-DD\");\n const sort = (multiSortMeta || []).length ? { field: multiSortMeta[0].field, order: multiSortMeta[0].order === 1 ? 'Asc' : 'Desc' } : { field: 'numero', order: 'Asc' };\n\n this.contratoCompraService\n .listContratosCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n produtoId: (this.produto || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n contratosSelecionados: this.contratos,\n pagina: {\n limit: rows,\n offset: page,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.contratoCompraSearchGridData = list.contents.map(ContratoCompra.fromDto);\n this.contratoCompraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onContratoCompraItensLookupRequest(value: any) {\n const sort = this.contratoCompraItensLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n const filialId = this.filial.id;\n const contratoId = this.formGroup.get(\"contrato\").value.id;\n\n const params = {\n contratoId,\n filialId,\n sequencia: !isNaN(value) ? value : null,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n pagina: this.getRecPagina(0, 10, sort)\n }\n\n this.contratoCompraItemService\n .pesquisarItensContratoCompra(params)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.contratoCompraItensLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.contratoCompraItensLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.contratoCompraItensLookupSuggestions = list.contents.map(ContratoCompraItem.fromDto);\n });\n }\n\n public onContratoCompraItensSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const sort = multiSortMeta;\n\n const filialId = this.filial.id;\n const contratoId = this.formGroup.get(\"contrato\").value.id;\n\n const params = {\n contratoId,\n filialId,\n sequencia: filterData['sequencia'],\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n pagina: this.getRecPagina(first, rows, sort)\n }\n\n this.contratoCompraItemService\n .pesquisarItensContratoCompra(params)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.contratoCompraItensLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.contratoCompraItensLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.contratoCompraItensSearchGridData = list.contents.map(ContratoCompraItem.fromDto);\n this.contratoCompraItensSearchTotalRecords = list.totalElements;\n });\n }\n\n public getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy = sort && sort.length \n ? sort.map((s: any) => ({ campo: s.field, ordenacao: s.order === 1 ? 'Asc' : 'Desc' })) \n : [];\n\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy\n }\n }\n\n public addItemContrato() {\n this.getItensForm().push(this.getItemForm());\n }\n\n public getItensForm(): FormArray {\n return this.formGroup.get(\"itens\") as FormArray;\n }\n\n public save() {\n if (!this.formGroup.valid) return this.validateAllFormFields(this.formGroup);\n this.close({ contrato: this.formGroup.value });\n }\n\n public close(data?: any) {\n this.dialogRef.close(data);\n }\n\n private getForm() {\n return this.fb.group({\n contrato: [undefined, Validators.required],\n itens: this.fb.array([])\n });\n }\n\n private getItemForm() {\n return this.fb.group({\n item: [undefined, Validators.required],\n quantidade: [1]\n });\n }\n\n private getContratoCompraFields() {\n return [\n new FormField({\n name: \"filialContrato\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.contrato_compra_numero\"),\n type: FieldType.Integer\n })\n ];\n }\n\n private getContratoCompraGridFields() {\n return [\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.contrato_compra_numero\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"filial.pessoa.nomeFantasia\",\n label: this.translate.instant(\"yms.erp.contrato_compra_filial\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"filial.pessoa.codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"dataEmissao\",\n label: this.translate.instant(\"yms.erp.contrato_compra_data_emissao\"),\n type: FieldType.Date\n }),\n ];\n }\n\n private getContratoCompraItensFields() {\n return [\n new FormField({\n name: \"sequencia\",\n label: this.translate.instant(\"yms.erp.contrato_compra_item_sequencia\"),\n type: FieldType.Integer\n })\n ];\n }\n\n private getContratoCompraItensGridFields() {\n return [\n new FormField({\n name: \"sequencia\",\n label: this.translate.instant(\"yms.erp.contrato_compra_item_sequencia\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"sku.descricao\",\n label: this.translate.instant(\"yms.erp.produto\"),\n type: FieldType.String\n })\n ];\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n else if (control instanceof FormArray) control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n });\n }\n\n}","import { Empresa } from \"../empresa/empresa\";\nimport { Royalty } from \"../royalty/royalty\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { TipoParticipanteTransgenia } from \"../../enums/tipo-participante-transgenia\";\nimport { TransgeniaDto } from \"./transgenia-dto\";\nimport * as _moment from \"moment\";\nconst moment = _moment;\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n\nexport class Transgenia {\n public id?: string;\n public empresa: Empresa;\n public codigo: string;\n public descricao: string;\n public royalty?: Royalty;\n public situacao: Situacao;\n public tipoParticipante: TipoParticipanteTransgenia;\n\n public static fromDto(transgeniaDto: TransgeniaDto, originEntity?: string): Transgenia {\n const model: any = { ...transgeniaDto };\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Transgenia\");\n if (originEntity !== \"Royalty\" && model.royalty) model.royalty = Royalty.fromDto(model.royalty, \"Royalty\");\n\n return model as Transgenia;\n }\n\n public static toDto(transgenia: Transgenia, originEntity?: string): TransgeniaDto {\n const dto: any = { ...transgenia };\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Transgenia\");\n if (originEntity !== \"Royalty\" && dto.royalty) dto.roylty = Royalty.toDto(dto.royalty, \"Transgenia\");\n\n return dto;\n }\n}\n","import { Transgenia } from './../transgenia/transgenia';\nimport * as _moment from \"moment\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { ContratoCompraItem } from \"../contrato-compra-item/contrato-compra-item\";\nimport { ContratoCompra } from \"../contrato-compra/contrato-compra\";\nimport { Derivacao } from \"../derivacao/derivacao\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Produto } from \"../produto/produto\";\nimport { RecebimentoContratoDto } from \"./recebimento-dto\";\nimport { Filial } from \"../filial/filial\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nimport { TipoNotaFiscal } from \"../../enums/tipo-nota-fiscal\";\nimport { RecebimentoContratoFornecedor } from \"../recebimento-contrato-details/recebimento-contrato-fornecedor\";\nconst moment = _moment\n\nexport class RecebimentoContrato {\n public id: string;\n public filial: Filial;\n public fornecedores: RecebimentoContratoFornecedor[];\n public origemMercadoria: PessoaEndereco;\n public contratos: ContratoRecebimento[];\n public derivacao: Derivacao;\n public produto: Produto;\n public agenda: Agenda;\n public transportadora: Transportadora;\n public transgenia: Transgenia;\n public tipoNotaFiscal: TipoNotaFiscal;\n public eixos?: number;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public custom?: any;\n\n public static fromDto(recebimentoDto: RecebimentoContratoDto, originEntity?: string): RecebimentoContrato {\n const model: any = { ...recebimentoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"fornecedor.id\",\n \"fornecedor.codigo\",\n \"fornecedor.nome\",\n \"fornecedor.situacao\",\n \"produto.id\",\n \"produto.codigo\",\n \"produto.comprado\",\n \"produto.descricao\",\n \"produto.produtoMisto\",\n \"produto.situacao\",\n \"produto.tipo\",\n \"agenda.id\",\n \"agenda.descricao\",\n \"transportadora.id\",\n \"transportadora.codigo\",\n \"transportadora.placaVeiculo\",\n \"transgenia.id\",\n \"transgenia.codigo\",\n \"transgenia.descricao\",\n \"tipoNotaFiscal\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"Recebimento\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"Recebimento\");\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"Recebimento\");\n if ((originEntity !== \"PessoaEndereco\" && model.origemMercadoria)) model.origemMercadoria = PessoaEndereco.fromDto(model.origemMercadoria, \"Recebimento\");\n if ((originEntity !== \"Derivacao\" && model.derivacao)) model.derivacao = Derivacao.fromDto(model.derivacao, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && model.transportadora)) model.transportadora = Transportadora.fromDto(model.transportadora, \"Recebimento\");\n if ((originEntity !== \"Transgenia\" && model.transgenia)) model.transgenia = Transgenia.fromDto(model.transgenia, \"Transgenia\");\n\n model.fornecedores = model.fornecedores.map((fornecedor: any) => ({\n ...fornecedor,\n fornecedor: Pessoa.fromDto(fornecedor.fornecedor, \"Recebimento\"),\n origemMercadoria: PessoaEndereco.fromDto(fornecedor.origemMercadoria, \"Recebimento\"),\n contratos: fornecedor.contratos.map((contrato: any) => ({ \n ...contrato, \n contrato: ContratoCompra.fromDto(contrato.contrato), \n itens: contrato.itens.map((item: any) => ({\n ...item,\n item: ContratoCompraItem.fromDto(item.item)\n })) \n }))\n }));\n\n return model as RecebimentoContrato;\n }\n\n public static toDto(recebimento: RecebimentoContrato, originEntity?: string): RecebimentoContratoDto {\n const dto: any = { ...recebimento };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.fornecedor) dto.fornecedor = Pessoa.toDto(dto.fornecedor, \"Recebimento\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Filial\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"Recebimento\");\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"Recebimento\");\n if ((originEntity !== \"PessoaEndereco\" && dto.origemMercadoria)) dto.origemMercadoria = PessoaEndereco.toDto(dto.origemMercadoria, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && dto.transportadora)) dto.transportadora = Transportadora.toDto(dto.transportadora, \"Recebimento\");\n if ((originEntity !== \"Transgenia\" && dto.transgenia)) dto.transgenia = Transgenia.toDto(dto.transgenia, \"Transgenia\");\n\n dto.fornecedores = recebimento.fornecedores.map((fornecedor) => ({\n ...fornecedor,\n fornecedor: Pessoa.toDto(fornecedor.fornecedor, \"Recebimento\"),\n origemMercadoria: PessoaEndereco.toDto(fornecedor.origemMercadoria, \"Recebimento\"),\n contratos: fornecedor.contratos.map((contrato) => ({ \n ...contrato, \n contrato: ContratoCompra.toDto(contrato.contrato), \n itens: contrato.itens.map(item => ({\n ...item,\n item: ContratoCompraItem.toDto(item.item)\n })) \n }))\n }));\n \n return dto;\n }\n}\n\nexport interface ContratoRecebimento {\n id?: string;\n recebimento?: RecebimentoContrato,\n contrato: ContratoCompra,\n itens: ContratoRecebimentoItem[]\n}\n\nexport interface ContratoRecebimentoItem {\n id?: string,\n contrato?: ContratoCompra,\n item: ContratoCompraItem,\n quantidade: number\n}\n","import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { ErpFormConfigService } from './../../core/erp-form-config/erp-form-config-service';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit, TemplateRef, ViewChild } from \"@angular/core\";\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField, IToken } from \"@seniorsistemas/angular-components\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport * as _moment from \"moment\";\nimport { ConfirmationService, DialogService, SortMeta } from \"primeng/api\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { empty, forkJoin, of, Subject } from \"rxjs\";\nimport { concatMap, debounceTime, filter, finalize, map, mergeMap, takeUntil, tap } from \"rxjs/operators\";\nimport { FieldCustomizationService } from \"../../../utils/field-customization.service\";\nimport { FocusService } from \"../../../utils/focus.service\";\nimport { onLookupRequest } from \"../../../utils/lookup-utils\";\nimport { dialogConfig, isValidFilter, mergeUnique, userCanVisualize } from \"../../../utils/utils\";\nimport { NotaFormComponent } from \"../../components/nota-form/nota-form.component\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { ContratoCompraItem } from \"../../core/entities/contrato-compra-item/contrato-compra-item\";\nimport { ContratoCompraDto } from \"../../core/entities/contrato-compra/contrato-compra-dto\";\nimport { ContratoCompraService } from \"../../core/entities/contrato-compra/contrato-compra.service\";\nimport { Derivacao } from \"../../core/entities/derivacao/derivacao\";\nimport { DerivacaoService } from \"../../core/entities/derivacao/derivacao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { FilialService, PesquisarFiliaisInput } from \"../../core/entities/filial/filial.service\";\nimport { PessoaEndereco } from \"../../core/entities/pessoa-endereco/pessoa-endereco\";\nimport { PessoaEnderecoService } from \"../../core/entities/pessoa-endereco/pessoa-endereco.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ProdutoRecebimentoParams, ProdutoService } from \"../../core/entities/produto/produto.service\";\nimport { RecebimentoContrato } from \"../../core/entities/recebimento-contrato/recebimento\";\nimport { RecebimentoContratoService } from \"../../core/entities/recebimento-contrato/recebimento.service\";\nimport { Transgenia } from \"../../core/entities/transgenia/transgenia\";\nimport { TransgeniaService } from \"../../core/entities/transgenia/transgenia.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { TipoNotaFiscal } from \"../../core/enums/tipo-nota-fiscal\";\nimport { TipoParticipanteTransgenia } from \"../../core/enums/tipo-participante-transgenia\";\nimport { NotaValidatorService, PesquisarDocumentoResponse } from \"../../core/nota-validator.service\";\nimport { ContratoFormComponent } from \"../contrato-form/contrato-form.component\";\nimport { RecebimentoChegadaVeiculoOverride } from \"../recebimento-chegada-veiculo.override\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: 'recebimento-form',\n templateUrl: \"./recebimento-form.component.html\",\n providers: [\n ConfirmationService,\n ],\n styleUrls: ['../../erp-senior.scss']\n})\nexport class RecebimentoFormComponent implements OnInit, OnDestroy, AfterViewInit {\n public localeConfig: any = {};\n public currencyLocaleOptions: any = {};\n public permissions: any = {};\n public allPermissions: any = {};\n\n public visibleDialog = false;\n public quantidadeSelecionada = 1;\n\n public formGroup: FormGroup;\n public itemFormGroup: FormGroup;\n public loading: boolean;\n public mainPanelCollapsed = false;\n\n public filialLookupSuggestions: Filial[];\n public filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n public filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n public filialLookupSeparator = \" - \";\n public filialSearchFields: FormField[];\n public filialSearchGridFields: FormField[];\n public filialSearchGridData: Filial[];\n public filialSearchTotalRecords: number;\n\n public fornecedorLookupSuggestions: Pessoa[];\n public fornecedorLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n public fornecedorAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"situacao\", \"cpfCnpj\", \"tipoParticipante\"];\n public fornecedorLookupSeparator = \" - \";\n public fornecedorSearchFields: FormField[];\n public fornecedorSearchGridFields: FormField[];\n public fornecedorSearchGridData: Pessoa[];\n public fornecedorSearchTotalRecords: number;\n\n public origemMercadoriaLookupSuggestions: PessoaEndereco[];\n public origemMercadoriaLookupDisplayFields = [\"codigo\", \"cep\", \"endereco\", \"empresa.descricao\"];\n public origemMercadoriaAdvancedDisplayFields = [\"id\", \"codigo\", \"cep\", \"endereco\", \"numero\", \"complemento\", \"cidade.*\", \"bairro\", \"situacao\", \"empresa.descricao\"];\n public origemMercadoriaLookupSeparator = \" - \";\n public origemMercadoriaSearchFields: FormField[];\n public origemMercadoriaSearchGridFields: FormField[];\n public origemMercadoriaSearchGridData: PessoaEndereco[];\n public origemMercadoriaSearchTotalRecords: number;\n\n public produtoLookupSuggestions: Produto[];\n public produtoLookupDisplayFields = [\"codigo\", \"descricao\", \"tipo\"];\n public produtoAdvancedDisplayFields = [\"id\", \"codigo\", \"comprado\", \"descricao\", \"produtoMisto\", \"situacao\", \"tipo\"];\n public produtoLookupSeparator = \" - \";\n public produtoSearchFields: FormField[];\n public produtoSearchGridFields: FormField[];\n public produtoSearchGridData: Produto[];\n public produtoSearchTotalRecords: number;\n\n public agendaLookupSuggestions: Agenda[];\n public agendaLookupDisplayFields = [\"id\", \"descricao\"];\n public agendaAdvancedDisplayFields = [\"id\", \"descricao\"];\n public agendaLookupSeparator = \" - \";\n public agendaSearchFields: FormField[];\n public agendaSearchGridFields: FormField[];\n public agendaSearchGridData: Agenda[];\n public agendaSearchTotalRecords: number;\n\n public derivacaoLookupSuggestions: Derivacao[];\n public derivacaoLookupDisplayFields = [\"codigo\", \"descricao\"];\n public derivacaoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n public derivacaoLookupSeparator = \" - \";\n public derivacaoSearchFields: FormField[];\n public derivacaoSearchGridFields: FormField[];\n public derivacaoSearchGridData: Derivacao[];\n public derivacaoSearchTotalRecords: number;\n\n public transportadoraLookupSuggestions: Transportadora[];\n public transportadoraLookupDisplayFields = [\"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n public transportadoraAdvancedDisplayFields = [\"id\", \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n public transportadoraLookupSeparator = \" - \";\n public transportadoraSearchFields: FormField[];\n public transportadoraSearchGridFields: FormField[];\n public transportadoraSearchGridData: Transportadora[];\n public transportadoraSearchTotalRecords: number;\n\n public transgeniaLookupSuggestions: Transgenia[];\n public transgeniaLookupDisplayFields = [\"codigo\", \"descricao\"];\n public transgeniaAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n public transgeniaLookupSeparator = \" - \";\n public transgeniaSearchFields: FormField[];\n public transgeniaSearchGridFields: FormField[];\n public transgeniaSearchGridData: Transgenia[];\n public transgeniaSearchTotalRecords: number;\n\n public disableButtonSave: boolean = false;\n public disableOrdersButtons: boolean = true;\n public createdByErp: boolean;\n\n public totalEixosContratados: number = 0;\n public totalEixosComposicao: number = 0;\n\n public tiposNota: { label: string; value: TipoNotaFiscal }[] = [\n { label: this.translate.instant(\"yms.erp.tipo_nota_fiscal_empresa_juridica\"), value: TipoNotaFiscal.EMPRESA_JURIDICA },\n { label: this.translate.instant(\"yms.erp.tipo_nota_fiscal_produtor_rural\"), value: TipoNotaFiscal.PRODUTOR_RURAL },\n ];\n\n public saveAndInitButton: any;\n\n @Input() private agenda: Agenda;\n\n @ViewChild(\"customTemplate\")\n public customTemplate: TemplateRef<any>;\n\n @ViewChild(\"customFormFields\")\n public customFormFields: TemplateRef<any>;\n\n public chaveNotaFiscal: string;\n public erroChaveNota = false;\n public erroFornecedores = false;\n\n public notasTokens: IToken[] = [];\n public fornecedorNotasTokens: IToken[] = [];\n public fornecedorNotas = [];\n\n public contratoSelecionado: any = null;\n\n private ngUnsubscribe = new Subject();\n\n private formCarregado: any;\n\n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n private contratos: any;\n\n constructor(\n private recebimentoService: RecebimentoContratoService,\n private router: Router,\n private route: ActivatedRoute,\n private messageService: MessageService,\n private confirmationService: ConfirmationService,\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private hotkeysService: HotkeysService,\n private fieldCustomization: FieldCustomizationService,\n private focusService: FocusService,\n private filialService: FilialService,\n private transportadoraService: TransportadoraService,\n private pessoaEnderecoService: PessoaEnderecoService,\n private contratoCompraService: ContratoCompraService,\n private pessoaService: PessoaService,\n private produtoService: ProdutoService,\n private derivacaoService: DerivacaoService,\n private recebimentoChegadaOverride: RecebimentoChegadaVeiculoOverride,\n private notaValidatorService: NotaValidatorService,\n private transgeniaService: TransgeniaService,\n private dialogService: DialogService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private verificaNotaFiscal: VerificaNotafiscal,\n private hasChangeService: HasChangeService,\n\n ) { }\n\n public ngOnInit() {\n this.formGroup = this.getFormGroup();\n this.itemFormGroup = this.getItemForm();\n\n this.formGroup.get(\"filial\")\n .valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onFilialValueChange);\n\n this.formGroup.get(\"produto\")\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n debounceTime(500),\n filter(value => {\n const derivacao = this.formGroup.get(\"derivacao\").value as Derivacao;\n if (!!derivacao && derivacao.produto.id === value.id) return false;\n if (!value) {\n this.formGroup.get(\"derivacao\").setValue(undefined);\n this.formGroup.get(\"derivacao\").disable();\n return false;\n }\n return true;\n }),\n mergeMap(value => this.derivacaoService.list({\n filterQuery: `produto.id eq '${value.id}' and situacao eq 'ATIVO'`,\n page: 0,\n size: 1\n }))\n )\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.formGroup.get(\"derivacao\").enable();\n return;\n }\n\n this.formGroup.get(\"derivacao\").setValue(contents[0]);\n this.formGroup.get(\"derivacao\").disable();\n });\n\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe(({ agenda }) => {\n if (agenda == 'new') {\n this.buscarFilial();\n } else {\n this.getRecebimento(agenda);\n }\n });\n\n this.formGroup\n .get('transportadora')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('transgenia')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('fornecedores')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchFields();\n\n this.fornecedorSearchFields = this.getFornecedorSearchFields();\n this.fornecedorSearchGridFields = this.getFornecedorSearchGridFields();\n\n this.origemMercadoriaSearchFields = this.getOrigemMercadoriaFields();\n this.origemMercadoriaSearchGridFields = this.getOrigemMercadoriaGridFields();\n\n this.produtoSearchFields = this.getProdutoSearchFields();\n this.produtoSearchGridFields = this.getProdutoSearchGridFields();\n\n this.agendaSearchFields = this.getAgendaSearchFields();\n this.agendaSearchGridFields = this.getAgendaSearchGridFields();\n\n this.derivacaoSearchFields = this.getDerivacaoSearchFields();\n this.derivacaoSearchGridFields = this.getDerivacaoSearchGridFields();\n\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n\n this.transgeniaSearchFields = this.getTransgeniaSearchFields();\n this.transgeniaSearchGridFields = this.getTransgeniaSearchGridFields();\n\n this.setHotkeys();\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n const statusAgenda = [\n \"AGUARDANDO_CONFIRMACAO_SOLICITANTE\",\n \"AGENDADO\",\n \"AGUARDANDO_CONFIRMACAO\",\n \"EM_EXECUCAO\",\n \"REJEITADO_POR_VALIDACAO\",\n ];\n\n if (this.agenda && !statusAgenda.includes(this.agenda.status)) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n\n this.verificaSeTemAlteracao();\n }\n\n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n private onChangeRevalidation = (_) => {\n if (this.erpProcessData && this.formGroup) {\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n }\n\n public ngAfterViewInit() {\n const inputList = document.getElementsByTagName(\"input\");\n const selectedInput = Array.from(inputList).find((f: any) => !f.disabled);\n if (selectedInput) {\n selectedInput.focus();\n }\n \n this.recebimentoChegadaOverride.initialize();\n this.saveAndInitButton = document.getElementById('init');\n this.createdByErpDisableForm();\n \n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.recebimentoChegadaOverride.remove();\n }\n\n public createdByErpDisableForm() {\n this.disableOrdersButtons = this.agenda.createdByErp;\n if (this.agenda && this.agenda.createdByErp) {\n this.createdByErp = true;\n this.formGroup.get('filial').disable();\n this.formGroup.get('produto').disable();\n this.formGroup.get('derivacao').disable();\n this.disableFornecedores();\n\n if (!!this.formGroup.get(\"transportadora\").value) {\n this.formGroup.get('transportadora').disable();\n }\n }\n }\n\n public disableFornecedores() { \n (this.formGroup.get(\"fornecedores\") as FormArray).controls.forEach(form => form.get(\"fornecedor\").disable());\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+x\",\n () => {\n if (this.permissions.excluir) this.onDelete();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+s\",\n () => {\n if (this.isNew() || this.permissions.editar) this.onSave();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+c\",\n () => {\n this.onCancel();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n }\n\n public onBlurChaveNotaFiscal() {\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(this.chaveNotaFiscal, this.contratos, this.fornecedorNotasTokens)) {\n return;\n }\n\n this.removeNotaError();\n const value = this.chaveNotaFiscal;\n if (!!value) {\n this.loading = true;\n this.mensagemBuscandoNota();\n this.notaValidatorService.pesquisarDocumentoValidaNotaEmUso({\n filialId: (this.formGroup.get(\"filial\").value && this.formGroup.get(\"filial\").value.id) || null,\n chaveDocumento: value.trim()\n }).pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false)\n ).subscribe((response) => this.adicionarNovaNota(response));\n } \n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n public updateSuggestions(value: any) {\n if (value.fornecedor) {\n value.fornecedor.label = this.getSuggestionValue(\n [\"id\", \"codigo\", \"nome\", \"situacao\"],\n \"fornecedor\",\n value,\n this.fornecedorLookupSeparator\n );\n if (value.fornecedor.label.trim() === this.fornecedorLookupSeparator.trim()) {\n delete value.fornecedor.label;\n }\n }\n\n if (value.produto) {\n value.produto.label = this.getSuggestionValue(\n [\"id\", \"codigo\", \"comprado\", \"descricao\", \"produtoMisto\", \"situacao\", \"tipo\"],\n \"produto\",\n value,\n this.produtoLookupSeparator\n );\n if (value.produto.label.trim() === this.produtoLookupSeparator.trim()) {\n delete value.produto.label;\n }\n }\n\n if (value.agenda) {\n value.agenda.label = this.getSuggestionValue([\"id\", \"descricao\"], \"agenda\", value, this.agendaLookupSeparator);\n if (value.agenda.label.trim() === this.agendaLookupSeparator.trim()) {\n delete value.agenda.label;\n }\n }\n\n if (value.derivacao) {\n value.derivacao.label = this.getSuggestionValue(\n [\"id\", \"codigo\", \"descricao\"],\n \"derivacao\",\n value,\n this.derivacaoLookupSeparator\n );\n if (value.derivacao.label.trim() === this.derivacaoLookupSeparator.trim()) {\n delete value.derivacao.label;\n }\n }\n }\n\n public getSuggestionValue(displayFields: string[], ownerEntity: string, value: any, separator: string) {\n return displayFields\n .map(field => this.getProp(value, `${ownerEntity}.${field}`))\n .reduce((acc: any, val: any) => `${acc}${separator}${val}`);\n }\n\n public onRouteDataChange(data: any) {\n const { currencySymbol, thousandsSeparator, decimalSeparator } = data.localeConfig.number;\n\n this.localeConfig = data.localeConfig;\n this.currencyLocaleOptions = {\n align: \"left\",\n prefix: currencySymbol,\n thousands: thousandsSeparator,\n decimal: decimalSeparator,\n };\n this.permissions = data.allPermissions.recebimento;\n this.allPermissions = data.allPermissions;\n //this.validateVisualization();\n if (data.entity) {\n const canEdit = this.permissions.editar;\n if (!canEdit) this.formGroup.disable();\n const value: any = RecebimentoContrato.fromDto(data.entity);\n this.updateSuggestions(value);\n this.formGroup.patchValue(value);\n } else {\n this.formGroup.patchValue(new RecebimentoContrato());\n }\n }\n\n public onCancel() {\n this.goBack();\n }\n\n public onSendFile(filesToDelete: any, filesToCommit: any[]) {\n const observables: any[] = [];\n\n if (!this.fieldCustomization.isEmpty(filesToDelete)) {\n observables.push(this.fieldCustomization.deleteFiles(filesToDelete));\n }\n if (!this.fieldCustomization.isEmpty(filesToCommit)) {\n observables.push(this.fieldCustomization.commitFiles(filesToCommit));\n }\n\n if (!this.fieldCustomization.isEmpty(observables)) {\n return forkJoin(observables);\n } else {\n return of({});\n }\n }\n\n public onSave(start?: boolean) {\n \n if ((this.formGroup.get(\"fornecedores\") as FormArray).length <= 0) {\n this.erroFornecedores = true;\n return;\n }\n\n if (this.formGroup.invalid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessDataValidaNotaNoContrato(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((value: any) => {\n this.formGroup.get(\"id\").setValue(value.id || null);\n this.successMessage();\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n public onDelete() {\n this.confirmationService.confirm({\n message: this.translate.instant(\"yms.erp.delete_confirmation_message\"),\n header: this.translate.instant(\"yms.erp.delete_confirmation_title\"),\n accept: () =>\n this.getDeleteObservable()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(),\n });\n }\n\n public setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace('.', '').replace('/', '').replace('-', '');\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService.list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const code = contents[0].codigo ? contents[0].codigo.toString() : '';\n const description = contents[0].descricao ? contents[0].descricao.toString() : '';\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant('yms.erp.derivacao_sem_descricao');\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n this.formGroup.get('transportadora').setValue(contents[0]);\n }\n });\n }\n }\n\n public getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getRecebimento(agendaId: string) {\n this.loading = true;\n this.recebimentoService\n .list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.buscarFilial();\n return;\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao = contents[0].agenda && contents[0].agenda.veiculo\n ? contents[0].agenda.veiculo.eixos || 0 : 0;\n\n const recebimento = RecebimentoContrato.fromDto(contents[0]);\n this.formGroup.enable();\n this.formGroup.patchValue(recebimento);\n\n recebimento.fornecedores.forEach(fornecedor => {\n const form = this.getFornecedorForm(fornecedor);\n this.getFornecedores().push(form);\n\n fornecedor.contratos.forEach(contrato => {\n const contratoForm = this.getContratoForm(contrato);\n this.getContratos(form).push(contratoForm);\n\n contrato.itens.forEach(item => {\n const itemForm = this.getItemForm(item);\n this.getItensContrato(contratoForm).push(itemForm);\n });\n\n contrato.notas.forEach(nota => {\n const notaForm = this.getNotaForm(nota);\n this.getNotas(contratoForm).push(notaForm);\n });\n });\n });\n\n this.formCarregado = true;\n\n this.createdByErpDisableForm();\n });\n }\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.filialLookupSuggestions = list.filiais.map(Filial.fromDto));\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n public onFornecedorLookupRequest(value: string) {\n const sort = this.fornecedorLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = this.getFornecedorSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n filterQuery = `(${filterQuery})${!!filterQuery ? ' and ' : \"\"}situacao eq 'ATIVO' and fornecedor eq true`;\n\n const displayFields = mergeUnique(this.fornecedorLookupDisplayFields, this.fornecedorAdvancedDisplayFields);\n this.pessoaService\n .list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.fornecedorLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.fornecedorLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.fornecedorLookupSuggestions = list.contents;\n });\n }\n\n public onFornecedorSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getFornecedorSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = filterQuery.concat(`${!!filterQuery ? ' and ' : \"\"}situacao eq 'ATIVO' and fornecedor eq true`);\n\n const displayFields = mergeUnique(this.fornecedorLookupDisplayFields, this.fornecedorAdvancedDisplayFields);\n this.pessoaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.fornecedorLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.fornecedorLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.fornecedorSearchGridData = list.contents;\n this.fornecedorSearchTotalRecords = list.totalElements;\n });\n }\n\n public onOrigemMercadoriaLookupRequest(value: string, fornecedorForm: FormGroup) {\n const sort = this.origemMercadoriaLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = this.getOrigemMercadoriaFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n filterQuery = `(${filterQuery})${!!filterQuery ? ' and ' : ''}situacao eq 'ATIVO' and pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}'`;\n\n const displayFields = mergeUnique(this.origemMercadoriaLookupDisplayFields, this.origemMercadoriaAdvancedDisplayFields);\n this.pessoaEnderecoService\n .list({ filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.origemMercadoriaLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.origemMercadoriaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.origemMercadoriaLookupSuggestions = list.contents;\n });\n }\n\n public onOrigemMercadoriaSearchRequest(event: any, fornecedorForm: FormGroup) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getOrigemMercadoriaFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = filterQuery.concat(`${!!filterQuery ? ' and ' : ''}situacao eq 'ATIVO' and pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}'`);\n\n const displayFields = mergeUnique(this.origemMercadoriaLookupDisplayFields, this.origemMercadoriaAdvancedDisplayFields);\n this.pessoaEnderecoService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.origemMercadoriaLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.origemMercadoriaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.origemMercadoriaSearchGridData = list.contents;\n this.origemMercadoriaSearchTotalRecords = list.totalElements;\n });\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy = sort && sort.length \n ? sort.map((s: any) => ({ campo: s.field, ordenacao: s.order === 1 ? 'Asc' : 'Desc' })) \n : [];\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy\n }\n }\n\n public onProdutoLookupRequest(value: string) {\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService\n .listProdutosRecebimento({\n pesquisa: value,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.produtoLookupSuggestions = (list.produtos || []).map((produto: any) => Produto.fromDto(produto));\n });\n }\n\n public onProdutoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getProdutoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as ProdutoRecebimentoParams);\n\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService\n .listProdutosRecebimento({\n ...filterInput,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => {\n this.produtoSearchTotalRecords = res.qtdTotalRegistros;\n this.produtoSearchGridData = res.produtos.map(Produto.fromDto);\n });\n }\n\n public onDerivacaoLookupRequest(value: string) {\n const sort = this.derivacaoLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n const filterQuery = this.getDerivacaoSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n const displayFields = mergeUnique(this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields);\n this.derivacaoService\n .list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.derivacaoLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.derivacaoLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.derivacaoLookupSuggestions = list.contents;\n });\n }\n\n public onDerivacaoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getDerivacaoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields);\n this.derivacaoService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.derivacaoLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.derivacaoLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.derivacaoSearchGridData = list.contents;\n this.derivacaoSearchTotalRecords = list.totalElements;\n });\n }\n\n public onTransportadoraLookupRequest(value: string) {\n onLookupRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n public onTransportadoraSearchRequest(event: any) {\n\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getTransportadoraSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields);\n this.transportadoraService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.transportadoraLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) {\n return this.getProp(item, field);\n }\n return item[field];\n })\n .join(this.transportadoraLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onTransgeniaLookupRequest(value: any) {\n onLookupRequest(this.getTransgeniaSearchFields(), this.transgeniaLookupDisplayFields, this.transgeniaAdvancedDisplayFields, this.transgeniaLookupSeparator, this.transgeniaService, value,\n `empresa.id eq '${this.formGroup.get('filial').value.empresa.id}' and tipoParticipante eq '${this.getTipoTransgenia()}'`)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.transgeniaLookupSuggestions = list.contents);\n }\n\n public onTransgeniaSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getTransgeniaSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(this.transgeniaLookupDisplayFields, this.transgeniaAdvancedDisplayFields);\n this.transgeniaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.transgeniaLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) {\n return this.getProp(item, field);\n }\n return item[field];\n })\n .join(this.transgeniaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.transgeniaSearchGridData = list.contents;\n this.transgeniaSearchTotalRecords = list.totalElements;\n });\n }\n\n public addFornecedor(data: any = {}) {\n this.erroFornecedores = false;\n const form = this.getFornecedorForm(data);\n this.configureFornecedor(form);\n this.getFornecedores().push(form);\n return form;\n }\n\n public removeFornecedor(control: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_fornecedor_header\"),\n message: this.translate.instant(\"yms.erp.remove_fornecedor_message\"),\n accept: () => {\n const index = this.getFornecedores().controls.indexOf(control);\n this.getFornecedores().removeAt(index);\n }\n });\n }\n\n public getFornecedores() {\n return this.formGroup.get(\"fornecedores\") as FormArray;\n }\n\n public addContrato(fornecedorForm: FormGroup) {\n this.dialogService\n .open(ContratoFormComponent, {\n ...dialogConfig,\n header: 'Adicionar Contrato',\n data: {\n agenda: this.agenda,\n filial: this.formGroup.get(\"filial\").value,\n produto: this.formGroup.get(\"produto\").value,\n fornecedor: fornecedorForm.get(\"fornecedor\").value,\n contratos: fornecedorForm.get(\"contratos\").value,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe(({ contrato }: any) => this.onContratoSaved(contrato, fornecedorForm));\n }\n\n public removerContrato(fornecedorForm: FormGroup, contratoForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_contrato_header\"),\n message: this.translate.instant(\"yms.erp.remove_contrato_message\"),\n accept: () => {\n const index = (fornecedorForm.get(\"contratos\") as FormArray).controls.indexOf(contratoForm);\n (fornecedorForm.get(\"contratos\") as FormArray).removeAt(index);\n }\n });\n }\n\n public getContratos(fornecedorForm: FormGroup) {\n this.contratos = fornecedorForm.get(\"contratos\")\n return this.contratos as FormArray;\n }\n\n public addNota(formGroup: FormGroup) {\n this.dialogService.open(NotaFormComponent, {\n header: this.translate.instant(\"yms.erp.adicionar_nota\"),\n ...dialogConfig,\n data: {\n fornecedor: formGroup.get(\"fornecedor\").value,\n produto: this.formGroup.get(\"produto\").value,\n filial: this.formGroup.get(\"filial\").value,\n fornecedorNotasTokens: this.fornecedorNotasTokens,\n contratos: this.contratos,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe(value => this.onNotaSaved(value, formGroup));\n }\n\n public removerNota(fornecedorForm: FormGroup, contratoForm: FormGroup, notaForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_nota_header\"),\n message: this.translate.instant(\"yms.erp.remove_nota_message\"),\n accept: () => {\n const contratoId = contratoForm[\"value\"][\"contrato\"][\"id\"];\n const index = this.getNotasFromContratos(fornecedorForm, contratoId).controls.indexOf(notaForm);\n this.getNotasFromContratos(fornecedorForm, contratoId).removeAt(index);\n\n const nota = notaForm[\"value\"];\n this.fornecedorNotasTokens.push({\n id: nota.chaveNotaFiscal,\n label: nota.numeroNotaFiscal\n });\n this.fornecedorNotas.push({\n chaveNotaFiscal: nota.chaveNotaFiscal,\n serieNotaFiscal: nota.serieNotaFiscal,\n serieLegalNotaFiscal: nota.serieLegalNotaFiscal,\n numeroNotaFiscal: nota.numeroNotaFiscal,\n });\n }\n });\n }\n\n public getNotas(contratoForm: FormGroup) {\n return contratoForm[\"controls\"][\"notas\"] as FormArray;\n }\n\n public getItensContrato(contratoForm: FormGroup) {\n return contratoForm.get(\"itens\") as FormArray;\n }\n\n public showButtons() {\n if (!this.agenda) return false;\n return [\n StatusAgenda.AGENDADO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO_SOLICITANTE,\n StatusAgenda.REJEITADO_POR_VALIDACAO\n ].includes(this.agenda.status as StatusAgenda);\n }\n\n public disableAdicionarNota(): boolean {\n if (this.contratoSelecionado === null) {\n return true;\n }\n return false;\n }\n\n private getTipoTransgenia = () => {\n if ((this.formGroup.get(\"fornecedores\") as FormArray).length <= 0) {\n return TipoParticipanteTransgenia.NAO_INFORMADO;\n }\n const fornecedor = ((this.formGroup.get(\"fornecedores\") as FormArray).at(0) as FormGroup).getRawValue().fornecedor;\n return fornecedor ? (fornecedor.tipoParticipante || TipoParticipanteTransgenia.NAO_INFORMADO) : TipoParticipanteTransgenia.NAO_INFORMADO;\n };\n\n private getNotaForm(data: any = {}) {\n return this.formBuilder.group({\n chaveNotaFiscal: [data.chaveNotaFiscal],\n serieNotaFiscal: [data.serieNotaFiscal],\n serieLegalNotaFiscal: [data.serieLegalNotaFiscal],\n numeroNotaFiscal: [data.numeroNotaFiscal],\n });\n }\n\n private getContratoForm(data: any = {}) {\n return this.formBuilder.group({\n contrato: [data.contrato, Validators.required],\n itens: this.formBuilder.array([]),\n notas: this.formBuilder.array([])\n });\n }\n\n private getItemForm(data: any = {}) {\n return this.formBuilder.group({\n item: [data.item, Validators.required],\n quantidade: [data.quantidade]\n });\n }\n\n private getFornecedorForm(data: any = {}) {\n return this.formBuilder.group({\n fornecedor: [data.fornecedor, Validators.required],\n origemMercadoria: [data.origemMercadoria, Validators.compose([Validators.required])],\n tipoNotaFiscal: [data.tipoNotaFiscal || TipoNotaFiscal.EMPRESA_JURIDICA, Validators.compose([])],\n contratos: this.formBuilder.array([]),\n });\n }\n\n private getFormGroup() {\n return this.formBuilder.group({\n id: [{ value: undefined, disabled: true }, Validators.compose([])],\n filial: [undefined, Validators.required],\n produto: [{ value: undefined, disabled: true }, Validators.compose([Validators.required])],\n derivacao: [{ value: undefined, disabled: true }, Validators.compose([])],\n transportadora: [{ value: undefined, disabled: false }, Validators.compose([])],\n agenda: [{ value: this.agenda, disabled: false }, Validators.compose([Validators.required])],\n transgenia: [{ value: undefined, disabled: true }, Validators.compose([])],\n fornecedores: this.formBuilder.array([]),\n createdBy: [{ value: undefined, disabled: true }, Validators.compose([])],\n createdDate: [{ value: undefined, disabled: true }, Validators.compose([])],\n lastModifiedBy: [{ value: undefined, disabled: true }, Validators.compose([])],\n lastModifiedDate: [{ value: undefined, disabled: true }, Validators.compose([])],\n custom: [],\n });\n }\n\n private getFornecedorByContrato(contrato: ContratoCompraDto, fornecedorForm: FormGroup) {\n this.pessoaService.list({ size: 1, page: 0, filterQuery: `id eq '${contrato.pessoa.id}'` })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(({ contents }) => (contents || []).length && contents[0]),\n filter(value => !!value)\n )\n .subscribe(pessoa => {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(pessoa));\n });\n }\n\n private getProdutoByContrato(contrato: ContratoCompraDto) {\n this.contratoCompraService.listItens(contrato.id, { size: 1, page: 0, displayFields: ['sku.id'] })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n mergeMap(({ contents }) => {\n if (contents.length === 1) return this.produtoService.list({ size: 1, page: 0, filterQuery: `id eq '${contents[0].sku.id}'` })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(({ contents }) => (contents || []).length && contents[0]),\n );\n return empty();\n }),\n filter(value => !!value)\n )\n .subscribe(produto => {\n this.formGroup.get(\"produto\").setValue(Produto.fromDto(produto));\n this.formGroup.get(\"produto\").disable();\n });\n }\n\n private onContratoSaved(contrato: any, fornecedorForm: FormGroup) {\n if (!this.formGroup.get(\"produto\").value) {\n this.getProdutoByContrato(contrato.contrato);\n }\n\n if (!fornecedorForm.get(\"fornecedor\").value) {\n this.getFornecedorByContrato(contrato.contrato, fornecedorForm);\n }\n\n const contratoForm = this.getContratoForm(contrato);\n (contrato.itens || []).forEach((item: any) => (contratoForm.get(\"itens\") as FormArray).push(this.getItemForm(item)));\n\n this.getContratos(fornecedorForm).push(contratoForm);\n }\n\n private mensagemContratoNaoSelecionado() {\n this.addMessage(\"error\", \"Contrato não selecionado\", \"Nenhum contrato foi selecionado!\");\n }\n\n private onNotaSaved(value: any, fornecedorForm: FormGroup) {\n\n if (this.contratoSelecionado === null) {\n this.mensagemContratoNaoSelecionado();\n return;\n }\n\n if (!value.addFornecedor) {\n const notasForm = this.getNotasFromContratos(fornecedorForm, this.contratoSelecionado.id);\n if (notasForm !== null) {\n notasForm.push(this.getNotaForm(value));\n }\n return;\n }\n\n const existsFornecedor = (this.formGroup.get(\"fornecedores\") as FormArray).controls.find((form) => (form.value.fornecedor || { id: undefined }).id === value.fornecedor.id);\n const fornecedorOfGroup = this.validarCnpjFornecedor((fornecedorForm.value.fornecedor || { cpfCnpj: undefined }).cpfCnpj);\n const { infoNota } = value;\n const notaForm = this.getNotaForm({ \n chaveNotaFiscal: infoNota.chave,\n serieNotaFiscal: infoNota.serie,\n serieLegalNotaFiscal: infoNota.serieLegal,\n numeroNotaFiscal: infoNota.numero,\n });\n\n if (!!existsFornecedor) {\n const notasForm = this.getNotasFromContratos(existsFornecedor, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n } else if (!fornecedorForm.get(\"fornecedor\").value) {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(value.fornecedor));\n fornecedorForm.get(\"origemMercadoria\").setValue(PessoaEndereco.fromDto(value.origemMercadoria));\n const notasForm = this.getNotasFromContratos(fornecedorForm, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n } else if (fornecedorOfGroup) {\n this.confirmationService.confirm({\n header: 'Fornecedor do mesmo grupo já cadastrado',\n message: 'Um fornecedor do mesmo grupo parece já ter sido selecionado, deseja vincular a nota ao mesmo fornecedor?',\n accept: () => {\n const notasForm = this.getNotasFromContratos(fornecedorOfGroup, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n },\n reject: () => {\n const fornecedor = this.addFornecedor({ fornecedor: Pessoa.fromDto(value.fornecedor), origemMercadoria: PessoaEndereco.fromDto(value.origemMercadoria) });\n const notasForm = this.getNotasFromContratos(fornecedor, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n }\n });\n } else {\n const fornecedor = this.addFornecedor({ fornecedor: Pessoa.fromDto(value.fornecedor), origemMercadoria: PessoaEndereco.fromDto(value.origemMercadoria) });\n const notasForm = this.getNotasFromContratos(fornecedor, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n }\n }\n\n public getNotasFromContratos(fornecedorForm: AbstractControl, contratoId: any) {\n let contratosFormSelecionado = null;\n const contratosForm = fornecedorForm[\"controls\"][\"contratos\"][\"controls\"];\n\n for (let contratoForm of contratosForm) {\n if (contratoForm[\"controls\"][\"contrato\"][\"value\"].id === contratoId) {\n contratosFormSelecionado = contratoForm[\"controls\"][\"notas\"];\n }\n }\n return contratosFormSelecionado as FormArray;\n }\n\n public addFornecedorNotasTokenEmContrato(fornecedorForm: FormGroup, token: IToken) {\n if (this.contratoSelecionado === null) {\n this.mensagemContratoNaoSelecionado();\n return;\n }\n\n const notas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal === token.id);\n const notasForm = this.getNotasFromContratos(fornecedorForm, this.contratoSelecionado.id);\n if (notasForm !== null && notas[0] !== null) {\n notasForm.push(this.getNotaForm(notas[0]));\n }\n\n this.removeFornecedorNotasTokenDoContrato(token);\n }\n\n public removeFornecedorNotasTokenDoContrato(token: IToken) {\n this.fornecedorNotasTokens.splice(this.fornecedorNotasTokens.indexOf(token), 1);\n this.fornecedorNotas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal !== token.id);\n }\n\n private adicionarNovaNota(response: PesquisarDocumentoResponse) {\n const value = (response.documentos || []).length ? response.documentos[0] : undefined;\n if (!value) return;\n\n const itemProduto = value.itens[0] || { produto: undefined, derivacao: undefined } as any;\n const produto = Produto.fromDto(itemProduto.produto);\n\n if (!this.formGroup.get(\"produto\").value && !!itemProduto.produto) {\n this.formGroup.get(\"produto\").setValue(produto);\n this.formGroup.get(\"derivacao\").setValue(Derivacao.fromDto(itemProduto.derivacao));\n } else if (!!itemProduto.produto && !this.validateProduto(produto)) {\n this.addNotaError();\n return;\n }\n\n const fornecedor = Pessoa.fromDto(value.fornecedor);\n const origemMercadoria = PessoaEndereco.fromDto(value.origemMercadoria);\n\n const fornecedorForm = this.getFornecedores().controls.find(({ value }) => value.fornecedor.id === fornecedor.id) as FormGroup;\n const fornecedorOfGroup = this.validarCnpjFornecedor(fornecedor.cpfCnpj);\n\n if (fornecedorOfGroup) {\n this.confirmationService.confirm({\n header: 'Fornecedor do mesmo grupo já cadastrado',\n message: 'Um fornecedor do mesmo grupo parece já ter sido selecionado, deseja vincular a nota ao mesmo fornecedor?',\n accept: () => {\n this.addFornecedorNotasToken(value);\n },\n reject: () => {\n if (!fornecedorForm) {\n this.addFornecedor({ fornecedor, origemMercadoria });\n }\n this.addFornecedorNotasToken(value);\n }\n });\n\n } else if (!fornecedorForm) {\n this.addFornecedor({ fornecedor, origemMercadoria });\n this.addFornecedorNotasToken(value);\n }\n }\n\n private addFornecedorNotasToken(value: any) {\n this.fornecedorNotasTokens.push({ id: this.chaveNotaFiscal, label: value.numero });\n\n this.fornecedorNotas.push({\n chaveNotaFiscal: this.chaveNotaFiscal,\n serieNotaFiscal: value.serie,\n serieLegalNotaFiscal: value.serieLegal,\n numeroNotaFiscal: value.numero,\n });\n\n this.chaveNotaFiscal = undefined;\n this.loading = false;\n }\n\n private removeNotaError() {\n this.erroChaveNota = false;\n }\n\n private addNotaError() {\n this.erroChaveNota = true;\n }\n\n private validateProduto(produto: Produto) {\n const { value } = this.formGroup.get(\"produto\");\n if (value.id !== produto.id) {\n return false;\n }\n return true;\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.filial_nome\"),\n type: FieldType.String\n }),\n ];\n }\n\n private getFornecedorSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getFornecedorSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getOrigemMercadoriaFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"cep\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_cep\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"endereco\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_endereco\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_numero\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"bairro\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_bairro\"),\n type: FieldType.String\n }),\n ];\n }\n\n private getOrigemMercadoriaGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"cep\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_cep\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"endereco\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_endereco\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_numero\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"bairro\",\n label: this.translate.instant(\"yms.erp.pessoa_endereco_bairro\"),\n type: FieldType.String\n }),\n new FormField({\n name: \"empresa.descricao\",\n label: this.translate.instant(\"yms.erp.empresa\"),\n type: FieldType.String\n })\n ];\n }\n\n private getProdutoSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.produto_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.produto_descricao\"),\n type: FieldType.String,\n })\n ];\n }\n\n private getProdutoSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.produto_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.produto_descricao\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricaoComplementar\",\n label: this.translate.instant(\"yms.erp.produto_descricao_complementar\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getAgendaSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getAgendaSearchGridFields() {\n return [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getDerivacaoSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getDerivacaoSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransgeniaSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_descricao\")\n }),\n ];\n }\n\n private getTransgeniaSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_descricao\")\n }),\n ];\n }\n\n private goBack() {\n const previousRoute = \"../\";\n this.router.navigate([previousRoute], { relativeTo: this.route.parent });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n else if (control instanceof FormArray) control.controls.forEach(form => this.validateAllFormFields(form as FormGroup));\n });\n\n this.focusService.focusFirstInvalidInput();\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n value.agenda = this.agenda;\n const recebimentoDto = RecebimentoContrato.toDto(value);\n\n let observable;\n\n if (this.isNew() && !value.id) {\n observable = this.recebimentoService.insert(recebimentoDto);\n } else {\n const id = value.id;\n observable = this.recebimentoService.update(id, recebimentoDto);\n }\n\n return observable;\n }\n\n private getDeleteObservable() {\n return this.recebimentoService.delete('').pipe(\n tap(() => {\n this.addMessage(\"success\", \"yms.erp.deleted_message_title\", \"yms.erp.deleted_message_content\");\n this.goBack();\n })\n );\n }\n\n private validateVisualization() {\n if (!userCanVisualize(this.formGroup, this.allPermissions)) {\n this.addMessage(\"error\", \"yms.erp.cannot_visualize_form_summary\", \"yms.erp.cannot_visualize_form_detail\");\n }\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private onFilialValueChange = (filial: Filial) => {\n this.disableOrdersButtons = !filial;\n if (!filial && this.isNew()) {\n this.formGroup.get(\"produto\").setValue(undefined);\n this.formGroup.get(\"produto\").disable();\n this.formGroup.get(\"transgenia\").setValue(undefined);\n this.formGroup.get(\"transgenia\").disable();\n return;\n }\n\n this.formGroup.get(\"produto\").enable();\n this.formGroup.get(\"transgenia\").enable();\n }\n\n private buscarFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length !== 1) {\n this.formCarregado = true;\n return;\n }\n\n this.filialService\n .list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: ['*', 'empresa.nome']\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0]));\n }\n this.formCarregado = true;\n });\n }\n\n private configureFornecedor(fornecedorForm: FormGroup) {\n fornecedorForm.get(\"fornecedor\")\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n debounceTime(500),\n tap(value => {\n if (value) {\n if (this.ehPessoaJuridica(value)) {\n fornecedorForm.get(\"tipoNotaFiscal\").setValue(TipoNotaFiscal.EMPRESA_JURIDICA);\n fornecedorForm.get(\"tipoNotaFiscal\").enable();\n return;\n } else {\n fornecedorForm.get(\"tipoNotaFiscal\").setValue(TipoNotaFiscal.PRODUTOR_RURAL);\n fornecedorForm.get(\"tipoNotaFiscal\").disable();\n return;\n }\n }\n fornecedorForm.get(\"tipoNotaFiscal\").setValue(TipoNotaFiscal.EMPRESA_JURIDICA);\n fornecedorForm.get(\"tipoNotaFiscal\").disable();\n }),\n filter(value => {\n if (!value) {\n\n this.formGroup.get(\"transgenia\").setValue(null);\n this.formGroup.get(\"transgenia\").disable();\n return false;\n }\n return true;\n }),\n mergeMap(value => this.pessoaEnderecoService.list({ size: 10, page: 0, filterQuery: `situacao eq 'ATIVO' and pessoa.id eq '${value.id}'` })\n .pipe(takeUntil(this.ngUnsubscribe))\n )\n )\n .subscribe(({ contents }) => {\n this.formGroup.get(\"transgenia\").enable();\n\n if (contents.length === 1) {\n fornecedorForm.get(\"origemMercadoria\").setValue(PessoaEndereco.fromDto(contents[0]));\n }\n else {\n fornecedorForm.get(\"origemMercadoria\").setValue(undefined);\n fornecedorForm.get(\"origemMercadoria\").enable();\n }\n });\n }\n\n private ehPessoaJuridica(pessoa: Pessoa) {\n const cpfCnpj = (pessoa.cpfCnpj || \"\").replace(/\\D+/g, \"\");\n return cpfCnpj.length > 11;\n }\n\n private mensagemBuscandoNota() {\n this.messageService.add({\n severity: 'info',\n summary: 'Buscando dados da nota',\n detail: 'Aguarde, buscando dados da nota',\n life: 5000\n });\n }\n\n private validarCnpjFornecedor(value: string) {\n if (!this.ehPessoaJuridica({ cpfCnpj: value } as Pessoa)) return false;\n const fornecedor = (this.formGroup.get(\"fornecedores\") as FormArray).controls.find((form) => {\n return ((form.value.fornecedor || { cpfCnpj: '' }).cpfCnpj as string).substring(0, 8) === value.substring(0, 8)\n });\n return fornecedor;\n }\n}\n\nexport interface ContratoItem {\n item: ContratoCompraItem;\n quantidade: number;\n}\n","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { RecebimentoContratoService } from \"../../core/entities/recebimento-contrato/recebimento.service\";\nimport { Subject, throwError, of } from \"rxjs\";\nimport { takeUntil, switchMap, finalize } from \"rxjs/operators\";\nimport { RecebimentoContratoDto } from \"../../core/entities/recebimento-contrato/recebimento-dto\";\nimport { RecebimentoContrato } from \"../../core/entities/recebimento-contrato/recebimento\";\n\n@Component({\n selector: \"recebimento-info\",\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_filial\" | translate }}\n </span>\n <span class=\"data\">\n {{ recebimento?.filial?.codigo }} - {{ recebimento?.filial?.nome }}\n </span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_produto\" | translate }}\n </span>\n <span class=\"data\">{{ recebimento?.produto?.descricao }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_derivacao\" | translate }}\n </span>\n <span class=\"data\">{{ recebimento?.derivacao?.descricao }}</span>\n </div>\n </div>\n <div *ngFor=\"let fornecedor of recebimento?.fornecedores\">\n <div class=\"separator\"></div>\n <h3>Fornecedor - {{ fornecedor?.fornecedor?.nome }}</h3>\n <div class=\"detail-pane\">\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_origem_mercadoria\" | translate }}\n </span>\n <span class=\"data\">\n {{ fornecedor?.origemMercadoria?.codigo }} - {{ fornecedor?.origemMercadoria?.cep }}\n </span>\n </div>\n </div>\n\n <div>\n <h4>Contratos</h4>\n <p-accordion>\n <p-accordionTab *ngFor=\"let contrato of fornecedor.contratos\">\n <p-header>\n Contrato {{ contrato?.contrato?.numero }}, Filial {{ contrato?.contrato?.filial?.codigo }}\n </p-header>\n\n <div class=\"detail-pane\" *ngFor=\"let item of contrato?.itens\">\n <div class=\"detail-span\">\n <span class=\"title\">Sequência</span>\n <span class=\"data\">{{ item?.item?.sequencia }}</span>\n </div>\n </div>\n\n <div *ngFor=\"let nota of contrato.notas\">\n <div class=\"detail-pane\">\n <div class=\"detail-span\">\n <span class=\"title\">Chave nota fiscal</span>\n <span class=\"data\">{{ nota?.chaveNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie nota fiscal</span>\n <span class=\"data\">{{ nota?.serieNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie legal nota fiscal</span>\n <span class=\"data\">{{ nota?.serieLegalNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Número nota fiscal</span>\n <span class=\"data\">{{ nota?.numeroNotaFiscal }}</span>\n </div>\n </div>\n <hr />\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </div>\n `,\n styleUrls: [\"./recebimento-info.component.scss\"],\n})\nexport class RecebimentoInfoComponent implements AfterViewInit {\n @Input() agenda: any;\n\n recebimento: RecebimentoContrato;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private recebimentoService: RecebimentoContratoService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.recebimentoService\n .list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1,\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({ contents }) => {\n if (!contents.length)\n return throwError(\"Recebimento não encontrado.\");\n\n return of(contents[0]);\n }),\n finalize(() => (this.loading = false))\n )\n .subscribe((recebimento: RecebimentoContratoDto) => {\n this.recebimento = RecebimentoContrato.fromDto(recebimento);\n });\n }\n}\n","import { VerificaNotafiscal } from './core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { OrdemCompraFormComponent } from './recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component';\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule, ControlErrorsModule, CustomFieldsModule, DynamicFormModule, EmptyStateModule, LoadingStateModule, LocaleModule, NumberInputModule, TokenListModule } from \"@seniorsistemas/angular-components\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { IntegrationDispatcher, IntegrationModule } from \"@seniorsistemas/yms-routines\";\nimport { HighlightModule } from \"ngx-highlightjs\";\nimport { AccordionModule } from \"primeng/accordion\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TabViewModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { FieldCustomizationService } from \"../utils/field-customization.service\";\nimport { FocusService } from \"../utils/focus.service\";\nimport { NotaFormModule } from \"./components/nota-form/nota-form.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { HotkeyModule } from \"angular2-hotkeys\";\nimport { DevolucaoChegadaVeiculoOverride } from \"./devolucao/devolucao-chegada-veiculo.override\";\nimport { DevolucaoFormComponent } from \"./devolucao/form/devolucao-form.component\";\nimport { DevolucaoInfoComponent } from \"./devolucao/info/info/devolucao-info.component\";\nimport { ExpedicaoChegadaVeiculoOverride } from \"./expedicao/expedicao-chegada-veiculo.override\";\nimport { ExpedicaoFormComponent } from \"./expedicao/form/expedicao-form.component\";\nimport { ExpedicaoInfoComponent } from \"./expedicao/info/expedicao-info.component\";\nimport { FormComponent } from \"./form/form.component\";\nimport { InfoComponent } from \"./info/info.component\";\nimport { LogIntegracaoComponent } from \"./log-integracao/log-integracao.component\";\nimport { ProcessoAvulsoFormComponent } from \"./processo-avulso/form/processo-avulso-form.component\";\nimport { ProcessoAvulsoInfoComponent } from \"./processo-avulso/info/processo-avulso-info.component\";\nimport { ProcessoAvulsoChegadaVeiculoOverride } from \"./processo-avulso/processo-avulso-chegada-veiculo.override\";\nimport { RecebimentoOrdemCompraFormComponent } from \"./recebimento-ordem-compra/form/recebimento-ordem-compra-form.component\";\nimport { RecebimentoOrdemCompraInfoComponent } from \"./recebimento-ordem-compra/info/recebimento-ordem-compra-info.component\";\nimport { RecebimentoOrdemCompraChegadaVeiculoOverride } from \"./recebimento-ordem-compra/recebimento-ordem-compra-chegada-veiculo.override\";\nimport { ContratoFormComponent } from \"./recebimento/contrato-form/contrato-form.component\";\nimport { RecebimentoFormComponent } from \"./recebimento/form/recebimento-form.component\";\nimport { RecebimentoInfoComponent } from \"./recebimento/info/recebimento-info.component\";\nimport { RecebimentoChegadaVeiculoOverride } from \"./recebimento/recebimento-chegada-veiculo.override\";\n\nimport jsonx from 'highlight.js/lib/languages/json';\nimport xmlx from 'highlight.js/lib/languages/xml'\n\nexport function highlightLanguages() {\n return [\n { name: 'json', func: jsonx },\n { name: 'xml', func: xmlx }\n ];\n}\n\n@NgModule({\n declarations: [ \n FormComponent, \n RecebimentoFormComponent, \n ExpedicaoFormComponent,\n InfoComponent,\n ExpedicaoInfoComponent,\n RecebimentoInfoComponent,\n DevolucaoFormComponent,\n RecebimentoOrdemCompraFormComponent,\n RecebimentoOrdemCompraInfoComponent,\n DevolucaoInfoComponent,\n ContratoFormComponent,\n OrdemCompraFormComponent,\n ProcessoAvulsoFormComponent,\n ProcessoAvulsoInfoComponent,\n LogIntegracaoComponent\n ],\n entryComponents: [ FormComponent, InfoComponent, ContratoFormComponent, OrdemCompraFormComponent, LogIntegracaoComponent ],\n exports: [ FormComponent, InfoComponent ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n CustomFieldsModule,\n ControlErrorsModule,\n DialogModule,\n EmptyStateModule,\n DynamicFormModule,\n TokenListModule,\n PanelModule,\n AccordionModule,\n InputTextModule,\n DropdownModule,\n ButtonModule,\n LoadingStateModule,\n NumberInputModule,\n ConfirmDialogModule,\n LocaleModule,\n IntegrationModule,\n CoreModule,\n PermissionsModule,\n DynamicDialogModule,\n NotaFormModule,\n AccordionModule,\n TableModule,\n TabViewModule,\n LoadingStateModule,\n HighlightModule.forRoot({\n languages: highlightLanguages\n }),\n HotkeyModule.forRoot(),\n ],\n providers: [ \n FieldCustomizationService, \n FocusService, \n RecebimentoChegadaVeiculoOverride, \n ExpedicaoChegadaVeiculoOverride, \n DevolucaoChegadaVeiculoOverride,\n RecebimentoOrdemCompraChegadaVeiculoOverride, \n ProcessoAvulsoChegadaVeiculoOverride,\n VerificaNotafiscal\n ]\n})\nexport class ErpSeniorModule { \n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher\n .dispatch(FormComponent)\n .dispatch(InfoComponent)\n .dispatch(LogIntegracaoComponent)\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/yms-integration/src/websocket.ts","ng://@seniorsistemas/yms-integration/src/service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/controlador-cancela/controlador-cancela.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.ts","ng://@seniorsistemas/yms-integration/src/stomp.config.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/view-image/view-image.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/snapshot/snapshot.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.module.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.service.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.module.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.service.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.component.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.module.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.service.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/agendas/agendas.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/confirmacao/confirmacao.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/entrada/entrada.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.module.ts","ng://@seniorsistemas/yms-integration/src/utils/utils.ts","ng://@seniorsistemas/yms-integration/src/utils/lookup-utils.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/models/card-credential.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/models/visitor-situation.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/entities/credential-card-dto.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/form/form-sam.component.ts","ng://@seniorsistemas/yms-integration/src/utils/focus.service.ts","ng://@seniorsistemas/yms-integration/src/utils/field-customization.service.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visited-info/visited-info.service.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/entities/visited.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visited-info/visited-info.component.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/entities/visitor-credentials-dto.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/credencial-form/credencial-form.component.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/models/visit-situation.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/core/entity-service.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/scheduling/shechuling.service.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/core/utils.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/core/lookup.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/scheduling/lobby.service.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/entities/scheduling-visitors.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/entities/scheduling-dto.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/enums/status-agenda.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/scheduling/scheduling.component.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/sam-senior.module.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visitor-list/visitor-list.service.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visitor-list/visitor-list.component.ts","ng://@seniorsistemas/yms-integration/src/sam-senior/components/visitor-list.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/entity-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/injectors.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/recebimento-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/expedicao-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/integration.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/form/form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/info/info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/empresa/empresa.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa/pessoa.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pais/pais.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/estado/estado.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/cidade/cidade.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/filial/filial.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/nota-validator.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/components/nota-form/nota-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/components/nota-form/nota-form.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/cidade/cidade.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/cidade/cidade.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra/contrato-compra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra/contrato-compra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/derivacao/derivacao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/derivacao/derivacao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/empresa/empresa.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/empresa/empresa.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/estado/estado.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/estado/estado.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/familia-produto/familia-produto.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/familia-produto/familia-produto.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/filial/filial.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/filial/filial.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pais/pais.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pais/pais.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda/pedido-venda.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pedido-venda/pedido-venda.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa/pessoa.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/pessoa/pessoa.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/produto/produto.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/produto/produto.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/has-change/has-change-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/erp-process-data/erp-process-data.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/erp-process-data/erp-process-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/erp-form-config/erp-form-config-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/royalty/royalty.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/royalty/royalty.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/safra/safra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/safra/safra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transportadora/transportadora.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transportadora/transportadora.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/unidade-medida/unidade-medida.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/unidade-medida/unidade-medida.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/devolucao/devolucao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/devolucao/devolucao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.module.ts","ng://@seniorsistemas/yms-integration/src/utils/build-form-field.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transgenia/transgenia.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transgenia/transgenia.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/processo-avulso/processo-avulso.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/processo-avulso/processo-avulso.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/log-integracao/log-integracao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/log-integracao/log-integracao.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/core.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/devolucao/devolucao-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/unidade-medida/unidade-medida.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/royalty/royalty.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/familia-produto/familia-produto.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/produto/produto.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/derivacao/derivacao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transportadora/transportadora.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/devolucao/devolucao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/enums/tipo-nota-fiscal.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/enums/situacao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/devolucao/form/devolucao-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/devolucao/info/info/devolucao-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/form/expedicao-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/info/expedicao-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/log-integracao/log-integracao.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/processo-avulso/processo-avulso.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/processo-avulso/processo-avulso-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/processo-avulso/form/processo-avulso-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/processo-avulso/info/processo-avulso-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/safra/safra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/recebimento-ordem-compra-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento-ordem-compra/info/recebimento-ordem-compra-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra/contrato-compra.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/contrato-form/contrato-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/transgenia/transgenia.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/form/recebimento-form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/info/recebimento-info.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/erp-senior.module.ts","ng://@seniorsistemas/yms-integration/src/devices/dock/dock.service.ts","ng://@seniorsistemas/yms-integration/src/devices/dock/dock.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","e","ar","push","error","__spread","concat","IntegrationWebSocket","_client","_cookieService","_service","tokenObject","JSON","parse","get","token","access_token","tenant","username","split","_subscriptionUrl","_unsubscribe$","Subject","connect","callback","_this","connectObservable","pipe","takeUntil","subscribe","state","dispose","complete","Service","messageService","getListQueryParams","listParams","_a","page","_b","size","_c","sort","_d","filterQuery","_e","displayFields","params","HttpParams","append","String","map","order","field","join","defaultCatch","catchError","err","summary","status","detail","message","statusText","add","severity","throwError","ControladorCancelasService","http","_super","url","tslib_1.__extends","listGateByArea","areaId","openGate","ip","post","closeGate","checkAccess","resources","acess","includeFilters","permissions","Injectable","HttpClient","MessageService","ControladorCancelaDescritor","ControleCircuito","header","name","ControleOperacao","ControladorCancelaComponent","service","translate","successState","permissionOpenGate","permissionCloseGate","uriGateDefault","unsubscribe$","gates$","ngOnInit","checkPermissionsGates","sequenciaCircuito","area","id","res","gates","contents","resourcesUri","buildResourceGateAndAction","checkAcessPermissionGate","resource","action","filter","gate","resourceUri","undefined","finalize","loading","buildGateWithActionsAndPermissions","gateActions","isActionButton","actions","permission","checkDefaultGatePermission","authorized","ngOnDestroy","model","canOpenGate","canCloseGate","label","instant","visible","command","_","tslib_1.__decorate","Input","Component","selector","template","animations","trigger","style","backgroundColor","opacity","transition","animate","TranslateService","CancelasModule","dispatcher","dispatch","NgModule","imports","CommonModule","TableModule","TranslateModule","MessageModule","ButtonModule","LoadingStateModule","PermissionsModule","forChild","uri","declarations","entryComponents","exports","providers","IntegrationDispatcher","BalancasService","urlIntegration","urlBalanca","getWeightScaleByArea","fallbackCall","balanca","peso","code","weight","getStabilizedWeight","getWeightScaleByCode","VisualizarBalancaDescritor","VisualizarBalancaComponent","weightScales$","BehaviorSubject","weightScaleValues","Map","forEach","set","stabilized","CustomStompConfig","getCookieObject","getCookie","socketProvider","SockJS","configureConfig","cname","cookie","name_1","ca","decodeURIComponent","document","charAt","substring","indexOf","headers","content-type","Authorization","Access-Control-Allow-Origin","heartbeat_in","heartbeat_out","reconnect_delay","debug","StompConfig","BalancaModule","CookieService","StompService","provide","useClass","CamerasService","patioUrl","getCamerasByArea","takeSnapshot","camera","saveSnapshotInCircuit","payload","ViewImageComponent","dialogRef","dialogConfig","imageUrl","data","save","execucaoCircuito","cameraIp","execucaoCircuitoId","alvoId","imagemUrl","close","DynamicDialogRef","DynamicDialogConfig","SnapshotDescritor","SnapshotComponent","dialogService","loadingAll","cameras$","index","splice","open","description","width","height","contentStyle","overflow","DialogService","CamerasModule","DynamicDialogModule","LprService","getLprByArea","stream","licencePlate","getLprByCode","LprModule","LogsService","listLogByCircuit","LogDescritor","CircuitoFinalizado","LogsComponent","logsService","columns","onGridChange","event","rows","first","updateGrid","totalElements","logsData","totalRecords","LogsModule","integrationDispatcher","TooltipModule","PortariasService","agendas","ultimaPlacaLida","getPortarias","plantaId","executarEntrada","lobbyId","placa","plate","PortariasDescritor","ControleUnificado","PortariasComponent","selectPlantService","portariaService","planta","getPlant","portarias","SelectPlantService","AgendasComponent","router","veiculo","portaria","selected","chegadaSimplificada","navigate","queryParams","navigateTo","chegada","getColumns","Router","ConfirmacaoComponent","continue","EntradaComponent","stompService","cookieService","websocket","client","body","response","lprs","lpr","locked","readPlaque","entranceLpr","placaNaoEncontrada","openAgendas","display","flex-direction","styleClass","overflow-y","max-height","flex","onClose","toUpperCase","PortariasModule","FormsModule","RouterModule","InputSwitchModule","InputTextModule","HttpClientModule","SelectPlantModule","numberTypes","FieldType","Integer","Double","numberPattern","mergeUnique","array","otherArray","item","includes","isValidFilter","type","getTypeInformation","isValidValue","typeExists","Time","Date","DateTime","match","userCanVisualize","formGroup","allPermissions","keys","controls","errors","required","visualizar","getProp","obj","path","reduce","result","prop","margin-bottom","moment","_moment","getLookupLabel","fields","separator","translation","trim","CardTechnology","VisitorSituation","onLookupRequest","searchFields","lookupDisplayFields","advancedDisplayFields","lookupSeparator","customFilter","format","replace","list","onSearchRequest","multiSortMeta","filterData","Enum","Lookup","Agenda","fromDto","agendaDto","originEntity","createdDate","toDate","lastModifiedDate","toDto","agenda","dto","SAM_SENIOR_HEADER","FormSamDescritor","ChegadaVeiculo","icon","FormSamComponent","integrationCallback","_integrationCallback","onAgendamentoSaved","mergeMap","empty","Output","IntegrationEventsCallback","FocusService","focusFirstInvalidInput","firstField","from","getElementsByClassName","find","f","nodeName","firstInputId","getAttribute","firstInvalidInput","getElementById","focus","nestedInput","getNestedInput","firstElementChild","element","FieldCustomizationService","bind","commitFiles","objects","deleteFiles","getFiles","fieldCustomization","custom","filesToCommit","filesToDelete","domain","entity","toDelete","toInsert","isEmpty","files","version","fileName","objectId","objects_1","file","entityName","object","isArray","entries","VisitedInfoService","domainService","getVisited","agendaIdYMS","providedIn","Visited","VisitedInfoComponent","visited","ngUnsubscribe","visitedService","ngAfterContentInit","console","contactPhone","VisitedInfoDescritor","VisitorCredentialsDto","credentialCards","VisitSituation","CredencialFormComponent","fb","route","technologies","localeConfig","group","tecnologiaCracha","Validators","compose","numero","validadeCredencial","hora","BARCODE_CARD","RFID_CARD","SMART_CARD","formataDataEHoraDaCredencial","gerar","valid","validateAllFormFields","endDate","getDataHora","visitante","visitorCredentialCardList","gerarCredencial","cardTechnologies","_i","cardTechnologies_1","tslib_1.__values","cardTechnologies_1_1","cardTechnology","getTecnologiaCrachaTraduzida","disable","definiValor","dataHora","horaValue","horas","date","hours","minutos","minutes","setHours","setMinutes","visitor","cardNumber","campo","valor","setValue","control","FormControl","markAsDirty","onlySelf","FormGroup","ConfirmationService","FormBuilder","ActivatedRoute","VisitanteFormComponent","notSavedData","EventEmitter","actualChanged","isFormModified","contact","val","ReplaySubject","isIntact","getRawValue","VisitanteComponent","visitors","visitorsChange","hasChange","constroiCamposTabelaVistante","visitanteTotalRecords","visitanteGridLoading","adicionaVisitantesGrid","onAgendamentoMotoristaChanged","motorista","atualizaMotorista","mot","motoristaVisitante","visitanteGridData","driver","documentType","getDocumentType","cpf","nome","getContatoMotorista","visitorSituation","CHECK_IN_PENDING","adicionaMotoristaNoVisitanteGridData","getVisitorSituation","novo_visitante_1","visitanteNaLista","isCredentialCardsEmpty","visitantesEncontrados","visitorWithCredentials","credentialCard","criarOuAtualizarVisitante","constroiVisitante","adicionaVisitanteParaSalvar","visitorFound","addVisitanteNaTabela","novo_visitante","emit","isDriver","findVisitor","editarVisitante","deletarVisitante","entregarCredencial","deletarCredenciais","visitanteGrid","visitorCredentialCard","adicionaCredencialParaEntregar","visitorWithCredencial","createCredentialCard","removeVisitor","findIndex","viisitorCredential","telefone","getCredentialCards","visitanteData","visitanteGridColumns","EntityService","entityUrl","actionsUrl","getBodyParams","bodyParams","offset","orderBy","getListBodyParams","useCatch","tap","insert","update","put","delete","listCustomFilter","SchedulingService","saveScheduling","scheduling","startScheduling","schedulingId","getSchedulingByYms","moment_","searchGridFields","verificaAtivo","_lookupDisplayFields","_advancedDisplayFields","_params","_url","_nameService","_useCustomSearch","_responseNamesData","_searchFields","_searchGridFields","_lookupSeparator","_searchGridData","_lookupSuggestions","_searchTotalRecords","setLookupDisplayFields","setAdvancedDisplayFields","setVariablesCustomSearch","nameService","_customService","responseNamesData","lookupRequest","changeFilter","isTypeNumber","isNumber","geradorFiltro","searchRequest","customLookupRequest","descricao","customSearchRequest","sortField","sortOrder","LobbyService","SchedulingVisitors","SchedulingDto","StatusAgenda","SchedulingComponent","lobbyService","schedulingService","schedulingVisitors","createForm","portariaLookup","getLobbyFields","valueChanges","changes","ngAfterViewInit","saveAndInitButton","ngOnChanges","expectedEndDate","getLobby","lobby","dataSaida","getHours","visitSituation","PENDING","expectedStartDate","patchActualValue","lobbyIdSAM","setTimeout","actualValue","patchValue","canSave","onSave","start","invalid","idYMS","horaSaida","getDate","NEVER","success","click","getFullYear","getMonth","getMinutes","reset","motivoVisita","FormField","SamSeniorModule","_dispatcher","IntegrationModule","SharedModule","CardModule","PrimeButtonModule","ReactiveFormsModule","PrimeSharedModule","CustomFieldsModule","ControlErrorsModule","DialogModule","EmptyStateModule","DynamicFormModule","TokenListModule","PanelModule","DropdownModule","NumberInputModule","ConfirmDialogModule","LocaleModule","TabViewModule","CalendarModule","VisitorListService","findVisitors","VisitorListComponent","visitorService","credentialResume","credentials","credentials_1","credentials_1_1","VisitorListDescritor","VisitorListModule","displayfields","ERP_ENVIRONMENT","InjectionToken","AgendaService","environment","project","_agendaUrl","atualizarAgenda","retornaModelosValidacao","tipoAgendamentoId","checarRevalidacao","erpProcessData","listExternalAgenda","tslib_1.__param","Inject","RecebimentoContratoService","_baseUrl","registrarChegadaVeiculoComRecebimento","insertContratoRecebimento","recebimentoId","contratoRecebimento","insertContratoRecebimentoItem","contratoRecebimentoId","contratoRecebimentoItem","RecebimentoChegadaVeiculoOverride","override","agendaService","recebimentoService","RECEBIMENTO_KEY","initialize","addOverride","functionToOverride","remove","disposeOverride","recebimento","circuito","sequenciaInicial","sequencia","vagaInicial","vaga","ChegadaVeiculoOverride","ExpedicaoService","registrarChegadaVeiculoComExpedicao","ExpedicaoChegadaVeiculoOverride","expedicaoService","EXPEDICAO_KEY","expedicao","IntegrationService","baseUrl","getProcessConfigurationErp","idTipoAgendamento","ERP_SENIOR_HEADER","FormDescritor","Agendamento","FormComponent","integrationService","tipoAgendamento","erpProcessConfiguration","tipoProcessoErpAtual","HEADER","InfoDescritor","InfoComponent","VerificaNotafiscal","verificaSeNotaFiscalEstaDuplicada","chaveNotaFiscal","contratos","fornecedorNotasTokens","notaFicalDuplicadas","nota","contrato","notas","findDuplicateFornecedores","arry","arrNotas","documentos","fornecedor","codigo","OrdemCompraService","listOrdensCompra","Empresa","empresaDto","empresa","Pessoa","pessoaDto","pessoa","PessoaJuridica","pessoaJuridicaDto","pessoaJuridica","Pais","paisDto","pais","Estado","estadoDto","estado","Cidade","cidadeDto","cidade","PessoaEndereco","pessoaEnderecoDto","pessoaEndereco","Filial","filialDto","endereco","filial","OrdemCompra","ordemCompraDto","ordemCompra","OrdemCompraFormComponent","ordemCompraService","ordemCompraLookupDisplayFields","ordemCompraAdvancedDisplayFields","ordemCompraLookupSeparator","ordensCompra","ordens","getForm","ordemCompraSearchFields","getOrdemCompraFields","ordemCompraSearchGridFields","getOrdemCompraGridFields","dataChanges","onRouteDataChange","onOrdemCompraLookupRequest","empresaId","pessoaId","filialId","ordensCompraSelecionados","pagina","limit","listaOrdenacao","ordenacao","ordemCompraLookupSuggestions","onOrdemCompraSearchRequest","a","dataEmissao","ordemCompraSearchGridData","ordemCompraSearchTotalRecords","getRecPagina","FormArray","form","NotaValidatorService","pesquisarDocumento","pesquisarDocumentoValidaNotaEmUso","pesquisarDocumentoGenerico","executarAuditoria","NotaFormComponent","notaValidatorService","confirmationService","verificaNotaFiscal","botaoDesabilitado","validateNotaFiscal","validaProdutoNaNotaFiscal","itens","notaFiscal","chave","serie","serieLegal","confirmAndAddNovoFornecedor","origemMercadoria","desabilitaCamposNotaFiscal","closeAndReturnNota","camposPreenchidosValidation","erroMultiplosCampos","serieNotaFiscal","serieLegalNotaFiscal","numeroNotaFiscal","validators","produto","removeErrorChaveNota","habilitaCamposNotaFiscal","onBlurNotaFiscal","chaveDocumento","produtos","addErrorIfProdutoIsDifferent","infoNota","confirm","acceptLabel","rejectLabel","accept","reject","setErrors","errorChaveNota","addFornecedor","enable","NotaFormModule","AgendaModule","CidadeService","CidadeModule","ContratoCompraItemService","pesquisarItensContratoCompra","ContratoCompraItemModule","ContratoCompraService","listContratosCompra","getItens","contratoCompraId","updateItens","contratoCompraItemDto","listItens","insertItens","deleteItens","ContratoCompraModule","DerivacaoService","DerivacaoModule","EmpresaService","EmpresaModule","EstadoService","EstadoModule","FamiliaProdutoService","FamiliaProdutoModule","FilialService","listFiliais","filters","FilialModule","PaisService","PaisModule","PedidoVendaItemService","queriesUrl","pesquisarItensPedidoVenda","pesquisa","PedidoVendaItemModule","PedidoVendaService","pedidoVendaId","pesquisarPedidosVenda","pedidoVendaItemDto","PedidoVendaModule","PessoaEnderecoService","PessoaEnderecoModule","PessoaFisicaService","PessoaFisicaModule","PessoaJuridicaService","PessoaJuridicaModule","PessoaService","PessoaModule","ProdutoService","listProdutosRecebimento","listProdutos","ProdutoModule","HasChangeService","messageSource","change","current","asObservable","idAgenda","hasChangeSave","ErpProcessService","changeData","getProcessData","changeDataErp","newMessage","chaveIntegracao","produtoId","transgeniaId","transportadoraId","changeDataVeiculo","veiculoId","eixos","ErpProcessData","changeDataMotorista","motoristaId","changeDataAgenda","agendaId","builderErpProcessData","getFieldFormGroup","fornecedores","listarIdsFornecedores","builderErpProcessDataValidaNotaNoContrato","recebimentoTemNota","verificaSeTemNotaNoContratoNoFornecedo","contratosTemNota","listaContratos","listaNotas","verificaSeContratosTemNota","builderErpProcessDataValidaNotaNaOrdemCompra","verificaSeTemNotaNaOrdemCompraDoFornecedo","ordemCompraTemNota","listaOrdens","verificaSeOrdemCompraTemNota","ordem","fieldName","listaFornecedores","ErpFormConfigService","enableRevalidation","RecebimentoContratoModule","RoyaltyService","RoyaltyModule","SafraService","SafraModule","TransportadoraService","TransportadoraModule","UnidadeMedidaService","UnidadeMedidaModule","ExpedicaoModule","DevolucaoService","registrarChegadaVeiculoComDevolucao","DevolucaoModule","OrdemCompraModule","BuildFormField","buildForString","build","buildForInteger","RecebimentoOrdemCompraService","registrarChegadaVeiculoRecebimentoOrdemCompra","RecebimentoOrdemCompraModule","TransgeniaService","TransgeniaModule","ProcessoAvulsoService","registrarChegada","processo","ProcessoAvulsoModule","LogIntegracaoService","LogIntegracaoModule","CoreModule","DevolucaoChegadaVeiculoOverride","devolucaoService","DEVOLUCAO_KEY","devolucao","UnidadeMedida","unidadeMedidaDto","unidadeMedida","Royalty","royaltyDto","royalty","FamiliaProduto","familiaProdutoDto","familiaProduto","Produto","produtoMisto","comprado","produtoDto","unidadeMedidaAgroG5","familia","Derivacao","derivacaoDto","derivacao","Transportadora","transportadoraDto","transportadora","Devolucao","devolucaoDto","TipoNotaFiscal","Situacao","DevolucaoFormComponent","filialService","pessoaService","produtoService","derivacaoService","origemMercadoriaService","transportadoraService","erpProcessService","erpFormConfigService","hasChangeService","filialLookupDisplayFields","filialAdvancedDisplayFields","filialLookupSeparator","fornecedorLookupDisplayFields","fornecedorAdvancedDisplayFields","fornecedorLookupSeparator","produtoLookupDisplayFields","produtoAdvancedDisplayFields","produtoLookupSeparator","derivacaoLookupDisplayFields","derivacaoAdvancedDisplayFields","derivacaoLookupSeparator","origemMercadoriaLookupDisplayFields","origemMercadoriaAdvancedDisplayFields","origemMercadoriaLookupSeparator","transportadoraLookupDisplayFields","transportadoraAdvancedDisplayFields","transportadoraLookupSeparator","disableButtonSave","totalEixosContratados","totalEixosComposicao","getFormGroup","formCarregado","editar","createdByErpDisableForm","filialSearchFields","getFilialSearchFields","filialSearchGridFields","getFilialSearchGridFields","fornecedorSearchFields","getFornecedorSearchFields","produtoSearchFields","getProdutoSearchFields","derivacaoSearchFields","getDerivacaoSearchFields","origemMercadoriaSearchFields","getOrigemMercadoriaSearchFields","transportadoraSearchFields","getTransportadoraSearchFields","transportadoraSearchGridFields","getTransportadoraSearchGridFields","getDevolucao","getEmpresaFilial","filialValueChanges","checkValuesChanges","externalTenant","setTransportadora","cnpj","createdByErp","formControlUpdated","formControlDependent","getFilterQuery","variables","querySize","isChangeValidators","clearFormControlDependent","setValidators","nullValidator","toString","onFilialLookupRequest","filterInput","cnpjs","filialLookupSuggestions","filiais","onFilialSearchRequest","sortFormatted","filialSearchGridData","filialSearchTotalRecords","qtdTotalRegistros","onFornecedorLookupRequest","fornecedorLookupSuggestions","onFornecedorSearchRequest","fornecedorSearchGridData","fornecedorSearchTotalRecords","onProdutoLookupRequest","situacao","produtoLookupSuggestions","onProdutoSearchRequest","produtoSearchTotalRecords","produtoSearchGridData","onDerivacaoLookupRequest","derivacaoLookupSuggestions","onDerivacaoSearchRequest","derivacaoSearchGridData","derivacaoSearchTotalRecords","onOrigemMercadoriaLookupRequest","origemMercadoriaLookupSuggestions","onOrigemMercadoriaSearchRequest","origemMercadoriaSearchGridData","origemMercadoriaSearchTotalRecords","onTransportadoraLookupRequest","transportadoraLookupSuggestions","onTransportadoraSearchRequest","transportadoraSearchGridData","transportadoraSearchTotalRecords","isNew","saveAndInit","requerRevalidacao","atualizaAgendaParaRejeitadoPorValidacao","REJEITADO_POR_VALIDACAO","concatMap","getSaveObservable","successMessage","relativeTo","addMessage","disabled","numeroNotaFiscalProdutor","serieNotaFiscalProdutor","DevolucaoInfoComponent","switchMap","of","Expedicao","expedicaoDto","clienteFaturamento","clienteRemessa","ExpedicaoFormComponent","formBuilder","hotkeysService","focusService","pedidoVendaService","pedidoVendaItemService","currencyLocaleOptions","mainPanelCollapsed","visibleDialog","clienteFaturamentoLookupDisplayFields","clienteFaturamentoAdvancedDisplayFields","clienteFaturamentoLookupSeparator","clienteRemessaLookupDisplayFields","clienteRemessaAdvancedDisplayFields","clienteRemessaLookupSeparator","pedidoVendaLookupDisplayFields","pedidoVendaAdvancedDisplayFields","pedidoVendaLookupSeparator","pedidoVendaItemLookupDisplayFields","pedidoVendaItemAdvancedDisplayFields","pedidoVendaItemLookupSeparator","agendaLookupDisplayFields","agendaAdvancedDisplayFields","agendaLookupSeparator","disableOrdersButtons","ordersValid","pedidoVendaForm","getPedidoVendaForm","itemFormGroup","getOrdemVendaItemForm","getExpedicao","buscarFilial","clienteFaturamentoSearchFields","getClienteSearchFields","clienteFaturamentoSearchGridFields","getClienteSearchGridFields","clienteRemessaSearchFields","clienteRemessaSearchGridFields","pedidoVendaSearchFields","getPedidoVendaSearchFields","pedidoVendaSearchGridFields","getPedidoVendaSearchGridFields","pedidoVendaItemSearchFields","getPedidoVendaItemSearchFields","pedidoVendaItemSearchGridFields","getPedidoVendaItemSearchGridFields","agendaSearchFields","getAgendaSearchFields","agendaSearchGridFields","getAgendaSearchGridFields","setHotkeys","setPedidosValueChanges","revalidacaoTransportadora","verificaSeTemAlteracao","transp","abrirPedidoVenda","pedidoVenda","buttons","getElementsByTagName","excluirPedidoVenda","removeAt","abrirPedidoVendaItem","pedido","pedidoVendaItem","quantidade","pedidoAtual","excluirPedidoVendaItem","pedidosLength","selecionarPedidoVenda","getOrdemVendaForm","buscarClienteAFaturar","selecionarPedidoVendaItem","selecionarPedidoVendaItemAutomaticamente","getPedidos","buildTokens","sku","inputList","selectedInput","Hotkey","onCancel","updateSuggestions","getSuggestionValue","ownerEntity","acc","number","currencySymbol","thousandsSeparator","decimalSeparator","align","prefix","thousands","decimal","goBack","onSendFile","observables","forkJoin","setValuesPedidoBiodisel","numeroPedidoCliente","itemPedidoCliente","pedidos","getValuesPedidoBiodisel","pedidosInterno","atualizaExpedicao","onSubscribe","itemForm","onClienteFaturamentoLookupRequest","clienteFaturamentoLookupSuggestions","onClienteFaturamentoSearchRequest","clienteFaturamentoSearchGridData","clienteFaturamentoSearchTotalRecords","onClienteRemessaLookupRequest","clienteRemessaLookupSuggestions","onClienteRemessaSearchRequest","clienteRemessaSearchGridData","clienteRemessaSearchTotalRecords","onFilialSelect","onPedidoVendaLookupRequest","pedidosIdsQuery","pedidoVendaLookupSuggestions","onPedidoVendaSearchRequest","pedidosSelecionados","filialPedido","pedidoVendaSearchGridData","pedidoVendaSearchTotalRecords","onPedidoVendaItemLookupRequest","pedidoId","isNaN","pedidoVendaItemLookupSuggestions","onPedidoVendaItemSearchRequest","pedidoVendaItemSearchGridData","pedidoVendaItemSearchTotalRecords","getAutomaticItensOrder","onAgendaLookupRequest","agendaLookupSuggestions","onAgendaSearchRequest","agendaSearchGridData","agendaSearchTotalRecords","numeroAgendamentoCliente","createdBy","lastModifiedBy","clientSuggestions$","clientSearch$","suggestionsObservable","searchObservable","emptyMessage","sm","md","lg","xl","gridData","dataKey","lookupDisplayField","searchTitle","searchEmptyTitle","filterLabel","filterTitle","clearLabel","cancelLabel","selectLabel","tooltip","getDerivacaoSearchGridFields","parent","observable","validateVisualization","ViewChild","TemplateRef","HotkeysService","ExpedicaoInfoComponent","LogIntegracaoDescritor","LogIntegracaoComponent","logIntegracaoService","currentListParams","serverError","xmlFormatter","require","confs","gridColumns","getGridColumns","logIntegracao","onSearch","resetGrid","showLoader","selection","getPayload","stringify","table","Table","ProcessoAvulso","processoAvulsoDto","processoAvulso","ProcessoAvulsoChegadaVeiculoOverride","processoAvulsoService","AVULSO_KEY","avulso","ProcessoAvulsoFormComponent","processoAvulsoOverride","getProcessoAvulso","fil","ProcessoAvulsoInfoComponent","Safra","safraDto","competenciaInicial","competenciaFinal","safra","RecebimentoOrdemCompra","recebimentoOrdemCompraDto","recebimentoOrdemCompra","RecebimentoOrdemCompraChegadaVeiculoOverride","recebimentoOrdemCompraService","RECEBIMENTO_ORDEMCOMPRA_KEY","RecebimentoOrdemCompraFormComponent","safraService","safraLookupDisplayFields","safraAdvancedDisplayFields","safraLookupSeparator","erroChaveNota","erroFornecedores","notasTokens","fornecedorNotas","ordemCompraSelecionado","onFilialValueChange","changeFormGroupValue","onFornecedorChange","onChangeRevalidation","configureForm","getRecebimentoOrdemCompra","safraSearchFields","getSafraSearchFields","safraSearchGridFields","getSafraSearchGridFields","dtoConverter","debounceTime","onBlurChaveNotaFiscal","removeNotaError","mensagemBuscandoNota","addNovaNota","isAny","formControl","getFornecedorForm","getFornecedoresForm","ordemCompraForm","getOrdemCompraForm","getOrdensCompra","notaForm","getNotaForm","getNotas","fornecedorForm","addOrdemCompra","onOrdemCompraSaved","onSafraLookupRequest","safraLookupSuggestions","onSafraSearchRequest","safraSearchGridData","safraSearchTotalRecords","removeFornecedor","addNota","onNotaSaved","removerNota","ordemCompraId","getNotasFromOrdens","showButtons","AGENDADO","AGUARDANDO_CONFIRMACAO","AGUARDANDO_CONFIRMACAO_SOLICITANTE","disableAdicionarNota","removerOrdemCompra","ordensCompraForm","getFornecedorByOrdemCompra","ordensFormSelecionado","ordensCompraForm_1","ordensCompraForm_1_1","addFornecedorNotasTokenEmOrdemCompra","fornecedorNota","notasForm","removeFornecedorNotasTokenDaOrdemCompra","mensagemOrdemCompraNaoSelecionado","existsFornecedor","disableFields","recebimentoDto","anterior","posterior","values","addFornecedorNotasToken","addNotaError","life","RecebimentoOrdemCompraInfoComponent","ContratoCompra","contratoCompraDto","dataInicioVigencia","dataFimVigencia","ContratoCompraItem","contratoCompra","dataCompetencia","contratoCompraItem","ContratoFormComponent","contratoCompraService","contratoCompraItemService","contratoCompraLookupDisplayFields","contratoCompraAdvancedDisplayFields","contratoCompraLookupSeparator","contratoCompraItensLookupDisplayFields","contratoCompraItensAdvancedDisplayFields","contratoCompraItensLookupSeparator","contratoCompraSearchFields","getContratoCompraFields","contratoCompraSearchGridFields","getContratoCompraGridFields","contratoCompraItensSearchFields","getContratoCompraItensFields","contratoCompraItensSearchGridFields","getContratoCompraItensGridFields","onContratoCompraLookupRequest","contratosSelecionados","contratoCompraLookupSuggestions","onContratoCompraSearchRequest","contratoCompraSearchGridData","contratoCompraSearchTotalRecords","onContratoCompraItensLookupRequest","contratoId","contratoCompraItensLookupSuggestions","onContratoCompraItensSearchRequest","contratoCompraItensSearchGridData","contratoCompraItensSearchTotalRecords","addItemContrato","getItensForm","getItemForm","Transgenia","transgeniaDto","transgenia","roylty","RecebimentoContrato","RecebimentoFormComponent","pessoaEnderecoService","recebimentoChegadaOverride","transgeniaService","buildFormField","quantidadeSelecionada","transgeniaLookupDisplayFields","transgeniaAdvancedDisplayFields","transgeniaLookupSeparator","tiposNota","EMPRESA_JURIDICA","PRODUTOR_RURAL","erroFornecedoresNotaDuplicada","contratoSelecionado","carregandoErpFilial","carregandoErpRouteData","carregandoErpRecebimento","getRecebimento","fornecedorSearchGridFields","getFornecedorSearchGridFields","getOrigemMercadoriaFields","origemMercadoriaSearchGridFields","getOrigemMercadoriaGridFields","produtoSearchGridFields","getProdutoSearchGridFields","derivacaoSearchGridFields","transgeniaSearchFields","getTransgeniaSearchFields","transgeniaSearchGridFields","getTransgeniaSearchGridFields","validaTransgenia","erpCarregado","getFamiliaProduto","validaFamiliaProdutoCorrespondeFamiliaTrangenia","validaFornecedorCorrespondeTipoPaticipanteDaTransgenia","mensagemTransgeniaInvalida","tipoParticipanteFornecedores","getTipoTransgenia","fornecedorEstaVazio_1","tipoParticipante","disableFornecedores","excluir","onDelete","itemProduto","validateProduto","validarCnpjFornecedor","cpfCnpj","validaRetornoPesquisaDocumentos","duplicateFornecedores","getDeleteObservable","contratoForm","getContratoForm","getContratos","getItensContrato","montaQueryOrigemMercadoria","onTransgeniaLookupRequest","geraFiltroTransgenia","transgeniaLookupSuggestions","onTransgeniaSearchRequest","filtroTransgenia","transgeniaSearchGridData","transgeniaSearchTotalRecords","configureFornecedor","addContrato","onContratoSaved","removerContrato","getNotasFromContratos","tipoParticipanteTransgeniaGeral","buildString","ATIVO","tipoTransgenia","tipoNotaFiscal","getFornecedorByContrato","getProdutoByContrato","mensagemContratoNaoSelecionado","contratosFormSelecionado","contratosForm","contratosForm_1","contratosForm_1_1","addFornecedorNotasTokenEmContrato","removeFornecedorNotasTokenDoContrato","origemMercadoriaFields","ehPessoaJuridica","RecebimentoInfoComponent","highlightLanguages","func","jsonx","xmlx","ErpSeniorModule","AccordionModule","HighlightModule","forRoot","languages","HotkeyModule","DockService","url_dock","plantId","DockModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { StompService, StompState } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nexport class IntegrationWebSocket {\n private _subscriptionUrl: string;\n private _unsubscribe$: Subject<void>;\n constructor(private _client: StompService, _cookieService: CookieService, _service: string) {\n const tokenObject = JSON.parse(_cookieService.get(\"com.senior.token\")); \n const token = tokenObject.access_token;\n const tenant = tokenObject.username.split(\"@\")[1];\n this._subscriptionUrl = `/topic/${tenant}/${token}/yms/${_service}/`;\n this._unsubscribe$ = new Subject();\n }\n\n public connect(callback: (url: string, client: StompService, state?: StompState) => void): void {\n this._client.connectObservable\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((state) => callback(this._subscriptionUrl, this._client, state));\n }\n\n public dispose() {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n}","import { catchError } from \"rxjs/operators\";\nimport { HttpParams } from \"@angular/common/http\";\nimport { throwError } from \"rxjs\";\nimport { MessageService } from \"primeng/api\";\nexport class Service {\n constructor(protected messageService: MessageService) {}\n protected getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n return params;\n }\n protected defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n return throwError(err);\n });\n }\n}\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: any[];\n filterQuery?: string;\n displayFields?: string[];\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Service } from \"../../service\";\n\n\n@Injectable()\nexport class ControladorCancelasService extends Service {\n private readonly url = 'yms/integration/';\n \n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n \n public listGateByArea(areaId: string) {\n const params = this.getListQueryParams({\n size: 1000,\n page: 0,\n displayFields: [\"*\"],\n filterQuery: `area.id eq '${areaId}'`\n });\n return this.http.get(`${this.url}entities/gate`, { params })\n }\n public openGate(ip: string) {\n return this.http.post(`${this.url}actions/openGate`, { ip }).pipe(this.defaultCatch());\n }\n\n public closeGate(ip: string) {\n return this.http.post(`${this.url}actions/closeGate`, { ip }).pipe(this.defaultCatch());\n }\n public checkAccess(resources: any) {\n const acess = {includeFilters: false, permissions: resources}\n return this.http.post(`platform/authorization/queries/checkAccess`, acess).pipe(this.defaultCatch());\n }\n\n}\n","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { ControladorCancelasService } from \"../cancelas.service\";\nimport { Gate } from \"../gate\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\n@ControleCircuito({\n header: \"Cancelas\",\n name: \"yms.integracao.devices\"\n})\n@ControleOperacao({\n header: 'Cancelas',\n name: 'yms.integracao.devices'\n})\nexport class ControladorCancelaDescritor{}\n@Component({\n selector: 'controlador-cancela-component',\n templateUrl: \"./controlador-cancela.component.html\",\n animations: [\n trigger('success', [\n state('*', style({\n backgroundColor: '#0C9348',\n opacity: 0.5\n })),\n state('default', style({\n backgroundColor: '#FFF',\n opacity: 1\n })),\n transition('* => default', animate('1.2s ease-in')),\n transition('default => *', animate('0s'))\n ])\n ]\n})\nexport class ControladorCancelaComponent extends ControladorCancelaDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n gates$: Subject<Gate[]>;\n loading: string;\n successState: string = 'default';\n permissionOpenGate:boolean = false;\n permissionCloseGate:boolean = false;\n private readonly unsubscribe$: Subject<void>;\n private readonly uriGateDefault = \"res://senior.com.br/yms/devices/gate\"; \n\n constructor(\n private readonly service: ControladorCancelasService, \n private readonly translate: TranslateService, \n ) {\n super();\n this.unsubscribe$ = new Subject();\n this.gates$ = new Subject();\n }\n\n public ngOnInit() {\n this.checkPermissionsGates();\n }\n\n public checkPermissionsGates() {\n this.service\n .listGateByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((res: any) => {\n const gates = res.contents; \n const resourcesUri = this.buildResourceGateAndAction(gates);\n \n if(resourcesUri.length <= 0){\n return;\n }\n\n this.checkAcessPermissionGate(resourcesUri, gates);\n });\n }\n\n private buildResourceGateAndAction(gates: any) {\n const resourcesUri = [];\n resourcesUri.push({resource: this.uriGateDefault, action: \"Close\"});\n resourcesUri.push({resource: this.uriGateDefault, action: \"Open\"});\n\n gates.filter(gate => { \n if (gate.resourceUri !== undefined) { \n\n resourcesUri.push({resource: gate.resourceUri, action: \"Close\"});\n resourcesUri.push({resource: gate.resourceUri, action: \"Open\"});\n }\n });\n return resourcesUri;\n }\n\n private checkAcessPermissionGate(resourcesUri: any, gates: any) { \n this.service.checkAccess( resourcesUri )\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(({ permissions }:any) =>{\n this.gates$.next( this.buildGateWithActionsAndPermissions(permissions, gates));\n \n });\n }\n\n private buildGateWithActionsAndPermissions(permissions: any, gates: any) {\n const gateActions = [];\n\n gates.filter(gate => {\n gate.isActionButton = false;\n gate.actions = [];\n\n if (this.permissionCloseGate && this.permissionOpenGate) {\n gate.isActionButton = true;\n gateActions.push(gate);\n return;\n } \n permissions.filter(permission => {\n gate.isActionButton = gate.isActionButton? true : this.checkDefaultGatePermission(permission, gate);\n if (gate.resourceUri === permission.resource) {\n gate.actions.push({action: permission.action, authorized: permission.authorized});\n gate.isActionButton = gate.isActionButton? true : permission.authorized;\n } \n });\n gateActions.push(gate);\n });\n\n return gateActions;\n }\n\n\n private checkDefaultGatePermission(permission: any, gate: any) {\n if (this.uriGateDefault === permission.resource) {\n if (permission.action === \"Open\") {\n this.permissionOpenGate = permission.authorized;\n return permission.authorized;\n }\n\n if (permission.action === \"Close\") {\n this.permissionCloseGate = permission.authorized;\n return permission.authorized;\n }\n }\n return false;\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public model(gate: any) {\n let canOpenGate = false;\n let canCloseGate = false;\n\n if (!(this.permissionCloseGate && this.permissionOpenGate)) {\n gate.actions.filter(action => { \n if(action.action === \"Open\"){\n canOpenGate = action.authorized;\n }\n\n if(action.action === \"Close\"){\n canCloseGate = action.authorized;\n }\n });\n }\n\n if(this.permissionOpenGate === true){\n canOpenGate = this.permissionOpenGate;\n }\n\n if(this.permissionCloseGate === true){\n canCloseGate = this.permissionCloseGate;\n }\n\n return [\n {\n label: this.translate.instant('yms.integration.open_gate'),\n visible: canOpenGate,\n command: () => this.openGate(gate)\n },\n {\n label: this.translate.instant('yms.integration.close_gate'),\n visible: canCloseGate,\n command: () => this.closeGate(gate)\n }\n ]\n }\n \n private openGate(gate: Gate) {\n this.loading = gate.id;\n this.service.openGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(_ => this.successState = gate.id);\n }\n private closeGate(gate: Gate) {\n this.loading = gate.id;\n this.service.closeGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(res => this.successState = gate.id);\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { MessageModule } from \"primeng/message\";\nimport { TableModule } from \"primeng/table\";\nimport { ControladorCancelasService } from \"./cancelas.service\";\nimport { ControladorCancelaComponent } from \"./controlador-cancela/controlador-cancela.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n@NgModule({\n imports: [\n CommonModule, \n TableModule, \n TranslateModule,\n MessageModule,\n ButtonModule,\n LoadingStateModule,\n PermissionsModule.forChild([\n {\n name: \"gate\",\n actions: [\"Open\", \"Close\"],\n uri: `res://senior.com.br/yms/devices/gate`,\n },\n ]),\n\n ],\n declarations: [ControladorCancelaComponent],\n entryComponents: [ControladorCancelaComponent],\n exports: [ControladorCancelaComponent],\n providers: [ControladorCancelasService]\n})\nexport class CancelasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(ControladorCancelaComponent);\n }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class BalancasService extends Service {\n private readonly urlIntegration = `yms/integration/`;\n private readonly urlBalanca = `yms/balanca/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n getWeightScaleByArea(areaId: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`\n }\n return this.http.get(`${this.urlIntegration}entities/weightScale`,\n { params: this.getListQueryParams(params) }).pipe(this.defaultCatch())\n }\n\n fallbackCall(balanca: string, peso: number) {\n return this.http.post(`${this.urlBalanca}actions/manualWeight`, { code: balanca, weight: peso }).pipe(this.defaultCatch());\n }\n\n getStabilizedWeight (code: string) {\n return this.http.post(`${this.urlBalanca}queries/getStabilizedWeight`, { code }).pipe(this.defaultCatch());\n }\n\n getWeightScaleByCode(code: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 10,\n filterQuery: `code eq '${code}'`\n };\n return this.http.get(`${this.urlIntegration}entities/weightScale`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { BalancasService } from \"../balancas.service\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { WeightScale } from \"../weightScale\";\n\n@ControleCircuito({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\n@ControleOperacao({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\nexport class VisualizarBalancaDescritor {}\n\n@Component({\n selector: 'visualizar-balanca-component',\n templateUrl: './visualizar-balanca.component.html'\n})\nexport class VisualizarBalancaComponent extends VisualizarBalancaDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n loading = false;\n weightScales$: BehaviorSubject<WeightScale[]>;\n weightScaleValues: Map<string, number>;\n private readonly unsubscribe$: Subject<void>;\n\n constructor(private readonly service: BalancasService) {\n super();\n this.unsubscribe$ = new Subject();\n this.weightScales$ = new BehaviorSubject([]);\n this.weightScaleValues = new Map();\n }\n ngOnInit() {\n if (!this.sequenciaCircuito) return;\n this.loading = true;\n this.service.getWeightScaleByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }: any) => {\n this.weightScales$.next(contents);\n contents.forEach((value: WeightScale) => { \n this.weightScaleValues.set(value.id, 0);\n this.service.getStabilizedWeight(value.code)\n .subscribe((stabilized : any) => {\n this.weightScaleValues.set(value.id, stabilized.weight);\n });\n });\n });\n\n }\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n \n}\n","import * as SockJS from \"sockjs-client\";\nimport { StompConfig } from \"@stomp/ng2-stompjs\";\n\nexport class CustomStompConfig extends StompConfig {\n socketProvider: any;\n \n constructor() {\n super();\n const token = this.getCookieObject('com.senior.token').access_token;\n const url = `${this.getCookie('com.senior.base.url')}/websocket/subscription`;\n this.socketProvider = () => new SockJS(url);\n this.configureConfig(token);\n }\n private getCookieObject(cname: string) {\n const cookie = this.getCookie(cname);\n if (!cookie) return cookie;\n return JSON.parse(cookie);\n }\n private getCookie(cname: string) {\n try {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return null;\n } catch(e) {\n return null;\n }\n }\n private configureConfig (token: string) {\n this.url = this.socketProvider,\n this.headers = {\n \"content-type\": \"application/json\",\n \"Authorization\": \"Bearer \" + token,\n \"Access-Control-Allow-Origin\": \"*\"\n },\n this.heartbeat_in = 10000,\n this.heartbeat_out = 10000,\n this.reconnect_delay = 15000, \n this.debug = false\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { VisualizarBalancaComponent } from \"./visualiar-balanca/visualizar-balanca.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableModule } from \"primeng/table\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { BalancasService } from \"./balancas.service\";\nimport { MessageModule } from \"primeng/message\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { StompConfig, StompService } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\nimport { CookieService } from \"ngx-cookie-service\";\n@NgModule({\n imports: [\n CommonModule,\n TableModule,\n MessageModule,\n LoadingStateModule,\n ],\n declarations: [VisualizarBalancaComponent],\n entryComponents: [VisualizarBalancaComponent],\n exports: [VisualizarBalancaComponent],\n providers: [\n BalancasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class BalancaModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(VisualizarBalancaComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Camera } from \"./camera\";\n\n@Injectable()\nexport class CamerasService extends Service {\n\n private readonly url = 'yms/integration/';\n private readonly patioUrl = 'yms/patio/'\n\n constructor(private http: HttpClient, messageService: MessageService) { \n super(messageService);\n }\n\n public getCamerasByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"description\", \"ip\"]\n }\n\n return this.http\n .get(`${this.url}entities/camera`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n public takeSnapshot(camera: Camera) {\n return this.http.get(`${this.url}queries/fetchSnapshot`, { params: {ip: camera.ip }}).pipe(this.defaultCatch());\n }\n\n public saveSnapshotInCircuit(payload: SaveSnapshotInCircuitPayload) {\n return this.http.post(`${this.patioUrl}actions/adicionaImagemExecucaoCircuito`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface SaveSnapshotInCircuitPayload {\n execucaoCircuitoId: string;\n alvoId: string;\n cameraIp: string;\n imagemUrl: string;\n}","import { Component, OnInit } from \"@angular/core\";\nimport { DynamicDialogConfig, DynamicDialogRef, MessageService } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { finalize, takeUntil } from \"rxjs/operators\";\nimport { CamerasService } from \"../cameras.service\";\n\n@Component({\n selector: 'view-image-component',\n template: `\n <s-loading-state [loading]=\"loading\">\n <img [src]=\"imageUrl\" width=\"100%\">\n <br>\n </s-loading-state>\n\n <div style=\"position: absolute; bottom: 0; width: 670px; padding-top: 10px; border-top: 1px solid #ccc;\" [style.pointer-events]=\"loading ? 'none' : 'all'\">\n <s-button priority=\"primary\" label=\"Salvar\" (onClick)=\"save()\"></s-button>\n <s-button priority=\"link\" label=\"Cancelar\" (onClick)=\"close()\"></s-button>\n </div> \n `,\n})\nexport class ViewImageComponent implements OnInit {\n imageUrl: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<boolean>;\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private service: CamerasService,\n private messageService: MessageService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngOnInit() {\n this.imageUrl = this.dialogConfig.data.url;\n }\n\n save() {\n this.loading = true;\n const execucaoCircuito = this.dialogConfig.data.execucaoCircuito;\n let cameraIp = this.dialogConfig.data.cameraIp;\n\n this.service.saveSnapshotInCircuit({\n execucaoCircuitoId: execucaoCircuito.id,\n alvoId: execucaoCircuito.sequenciaCircuito.id,\n cameraIp,\n imagemUrl: this.imageUrl\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(() => {\n this.messageService.add({\n severity: 'success',\n summary: 'Salvo com sucesso!',\n detail: 'Imagem salva com sucesso'\n });\n this.dialogRef.close();\n });\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleOperacao, ControleCircuito } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { Camera } from \"../camera\";\nimport { CamerasService } from \"../cameras.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { DialogService } from \"primeng/api\";\nimport { ViewImageComponent } from \"../view-image/view-image.component\";\n\n@ControleOperacao({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\n@ControleCircuito({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\nexport class SnapshotDescritor {}\n\n@Component({\n selector: 'snapshot-component',\n templateUrl: './snapshot.component.html',\n styleUrls: ['./snapshot.component.scss'],\n providers: [DialogService]\n})\nexport class SnapshotComponent extends SnapshotDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n @Input() execucaoCircuito: any;\n cameras$: Subject<Camera>;\n\n loadingAll = false;\n loading: string[] = [];\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: CamerasService, private dialogService: DialogService) {\n super();\n this.unsubscribe$ = new Subject();\n this.cameras$ = new Subject();\n }\n\n public ngOnInit() {\n this.loadingAll = true;\n this.service.getCamerasByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loadingAll = false))\n .subscribe(({ contents }: any) => this.cameras$.next(contents));\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public takeSnapshot(camera: Camera) {\n this.loading.push(camera.id);\n this.service.takeSnapshot(camera)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => {\n const index = this.loading.indexOf(camera.id);\n this.loading.splice(index, 1);\n })\n )\n .subscribe(({ url }: any) => {\n this.dialogService.open(ViewImageComponent, {\n header: camera.description,\n width: \"700px\",\n height: \"600px\",\n contentStyle: {\n 'height': '500px',\n overflow: 'hidden'\n },\n data: { \n url,\n cameraIp: camera.ip,\n execucaoCircuito: this.execucaoCircuito\n }\n });\n });\n }\n\n}","import { NgModule } from \"@angular/core\";\nimport { SnapshotComponent } from \"./snapshot/snapshot.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { LoadingStateModule, ButtonModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { CamerasService } from \"./cameras.service\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { ViewImageComponent } from \"./view-image/view-image.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n LoadingStateModule,\n DynamicDialogModule\n ],\n declarations: [SnapshotComponent, ViewImageComponent],\n entryComponents: [SnapshotComponent, ViewImageComponent],\n exports: [SnapshotComponent],\n providers: [CamerasService]\n})\nexport class CamerasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(SnapshotComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class LprService extends Service {\n\n private readonly url = `yms/integration/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n getLprByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"area.*\"]\n }\n\n return this.http\n .get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n fallbackCall(stream: string, licencePlate: string) {\n return this.http.post(`${this.url}actions/lprEventPublish`, { stream, licencePlate }).pipe(this.defaultCatch());\n }\n\n getLprByCode(code: string) {\n const params: ListParams = {\n page: 0,\n size: 10,\n filterQuery: `stream eq '${code}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"locked\"]\n };\n\n return this.http.get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { NgModule } from \"@angular/core\";\nimport { LprService } from \"./lpr.service\";\n\n@NgModule({\n providers: [ LprService ]\n})\nexport class LprModule {}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { ListParams, Service } from \"../../service\";\n\n@Injectable()\nexport class LogsService extends Service {\n private readonly url = `yms/integration/`;\n constructor (private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n listLogByCircuit(execucaoCircuitoId: string, params: ListParams) {\n params.filterQuery = `execucaoCircuitoId eq '${execucaoCircuitoId}'`;\n return this.http.get(`${this.url}entities/logCircuit`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CircuitoFinalizado } from \"@seniorsistemas/yms-routines\";\nimport { LazyLoadEvent, SortMeta } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { LogCircuit } from \"./log-circuit\";\nimport { LogsService } from \"./logs.service\";\n\n@CircuitoFinalizado({\n header: 'Logs com dispositivos',\n name: \"yms.integracao.devices\"\n})\nexport class LogDescritor { }\n\n@Component({\n templateUrl: './logs.component.html'\n})\nexport class LogsComponent extends LogDescritor implements OnInit, OnDestroy {\n @Input() execucaoCircuito: any;\n columns: any[];\n logsData: LogCircuit[];\n totalRecords: number;\n\n loading: boolean;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(\n private logsService: LogsService,\n private translate: TranslateService\n ) {\n super();\n }\n\n ngOnInit() {\n this.columns = [\n { field: \"username\", header: this.translate.instant(\"yms.integration.usuario\") },\n { field: \"log\", header: this.translate.instant(\"yms.integration.log\") },\n { field: \"createdDate\", header: this.translate.instant(\"yms.integration.created_date\") }\n ];\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n onGridChange(event: LazyLoadEvent) {\n const size = event.rows;\n const page = event.first / size;\n const sort: SortMeta[] = [{ field: 'createdDate', order: -1 }];\n this.updateGrid({ size, page, sort });\n }\n\n private updateGrid(params: { size: number, page: number, sort: any[] }) {\n this.loading = true;\n const { page, size, sort } = params;\n\n this.logsService.listLogByCircuit(this.execucaoCircuito.id, { page, size, sort })\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents, totalElements }: any) => {\n this.logsData = contents;\n this.totalRecords = totalElements;\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { TooltipModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { LogsComponent } from \"./logs.component\";\nimport { LogsService } from \"./logs.service\";\n\n@NgModule({\n declarations: [ LogsComponent ],\n entryComponents: [ LogsComponent ],\n providers: [ LogsService ],\n imports: [\n CommonModule,\n TableModule,\n TranslateModule,\n TooltipModule,\n LoadingStateModule\n ]\n})\nexport class LogsModule {\n constructor(integrationDispatcher: IntegrationDispatcher) {\n integrationDispatcher.dispatch(LogsComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class PortariasService extends Service {\n constructor(private http: HttpClient, messageService: MessageService) {\n super(messageService);\n }\n\n agendas(params: ListParams) {\n return this.http.get(`yms/patio/entities/agenda`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n \n ultimaPlacaLida(stream: string) {\n return this.http.post(`yms/integration/queries/getLastValidPlateByLpr`, { stream }).pipe(this.defaultCatch());\n }\n\n getPortarias(plantaId: string) {\n return this.http.get(`yms/integration/entities/lobby`, { params: this.getListQueryParams({ page: 0, size: 100, filterQuery: `planta.id eq '${plantaId}'`, displayFields: [ 'description', 'entranceLpr.*', 'lprs.*', 'planta.*' ] }) }).pipe(this.defaultCatch());\n }\n\n executarEntrada(lobbyId: string, placa: string) {\n return this.http.post(`yms/integration/actions/executeLobby`, { lobbyId, plate: placa }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleUnificado } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { SelectPlantService } from \"@seniorsistemas/yms-components\";\nimport { PortariasService } from \"./portarias.service\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@ControleUnificado({\n header: 'Periféricos',\n name: \"yms.integracao.devices\"\n})\nexport class PortariasDescritor {}\n\n@Component({\n selector: 'portarias',\n template: `\n <h3>Portarias</h3>\n <div class=\"separator\"></div>\n <div class=\"ui-g\">\n <portaria-entrada *ngFor=\"let portaria of portarias\" class=\"ui-md-4\" [portaria]=\"portaria\"></portaria-entrada>\n </div>\n `,\n\n})\nexport class PortariasComponent extends PortariasDescritor implements OnInit, OnDestroy {\n portarias: any[];\n unsubscribe$ = new Subject<void>();\n constructor(private selectPlantService: SelectPlantService, private portariaService: PortariasService) {\n super();\n }\n\n ngOnInit() {\n const planta = this.selectPlantService.getPlant();\n this.portariaService.getPortarias(planta.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents }) => this.portarias = contents);\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n template: `\n <div style=\"width: 100%; height: calc(100% - 50px); overflow: auto;\">\n <div *sLoadingState=\"loading\">\n <p-table [value]=\"agendas\" [columns]=\"getColumns()\" selectionMode=\"single\" [(selection)]=\"selected\" dataKey=\"id\">\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 50px;\"></th>\n <th *ngFor=\"let column of columns\">{{column.label}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData>\n <tr [pSelectableRow]=\"rowData\">\n <td style=\"width: 50px;\">\n <p-tableRadioButton [value]=\"rowData\"></p-tableRadioButton>\n </td>\n <td>{{rowData['descricao']}}</td>\n <td>{{rowData['dataEsperadaAgendamento'] | date: 'dd/MM/yyyy HH:mm'}}</td>\n <td>{{rowData['tipoAgendamento']?.descricao}}</td>\n <td>{{rowData['externalTenant']?.descricao}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Registrar chegada\" [disabled]=\"!selected\" (onClick)=\"chegada()\"></s-button>\n <s-button priority=\"primary\" label=\"Registrar chegada simplificada\" (onClick)=\"chegadaSimplificada()\"></s-button>\n </div>\n `\n})\nexport class AgendasComponent implements OnInit, OnDestroy {\n agendas: any;\n selected: any;\n veiculo: string;\n portaria: any;\n loading: boolean;\n private readonly unsubscribe$ = new Subject<void>();\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private portariaService: PortariasService,\n private router: Router) { }\n\n ngOnInit() {\n this.veiculo = this.dialogConfig.data.veiculo;\n this.portaria = this.dialogConfig.data.portaria;\n this.loading = true;\n this.portariaService\n .agendas({ \n size: 100, \n page: 0, \n displayFields: ['veiculo.primario.*', 'tipoAgendamento.*', 'descricao', 'externalTenant', 'dataEsperadaAgendamento'], \n filterQuery: `veiculo.primario.placa eq '${this.veiculo}' and status eq 'AGENDADO' and planta eq '${this.portaria.planta.id}'` \n })\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n this.agendas = contents;\n if (!this.agendas.length) {\n this.chegadaSimplificada();\n return;\n }\n if (this.agendas.length === 1) {\n this.selected = this.agendas[0];\n }\n });\n \n }\n\n chegadaSimplificada() {\n this.router.navigate(['execucao-circuito/new'], { queryParams: { veiculo: this.veiculo, navigateTo: \"processo-entrada\" } });\n this.dialogRef.close();\n }\n\n chegada() {\n if (!this.selected) return;\n this.router.navigate([`execucao-circuito/${this.selected.id}`]);\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n getColumns() {\n return [\n { field: 'descricao', label: 'Descrição' },\n { field: 'dataEsperadaAgendamento', label: 'Data' },\n { field: 'tipoAgendamento', label: 'Tipo de Agendamento' },\n { field: 'externalTenant', label: 'Parceiro' }\n ]\n }\n}","import { Component } from \"@angular/core\";\nimport { DynamicDialogRef } from \"primeng/api\";\n\n@Component({\n template: `\n <p>Não foi encontrada uma leitura de placa. Deseja informar a placa para realizar a entrada?</p>\n <div class=\"separator\"></div>\n <input pInputText type=\"text\" pattern=\"[A-Z0-9]{6,10}\" maxlength=\"10\" placeholder=\"Digite a placa\" [(ngModel)]=\"placa\" #placaInput>\n \n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Continuar\" [disabled]=\"!placa || !placaInput.validity.valid\" (onClick)=\"continue()\"></s-button>\n </div>\n `\n})\nexport class ConfirmacaoComponent {\n placa: string;\n\n constructor(private dialogRef: DynamicDialogRef) {}\n\n continue() {\n this.dialogRef.close({ placa: this.placa });\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { DialogService } from \"primeng/api\";\nimport { filter, map, takeUntil, finalize, catchError, mergeMap } from \"rxjs/operators\";\nimport { AgendasComponent } from \"../agendas/agendas.component\";\nimport { ConfirmacaoComponent } from \"../confirmacao/confirmacao.component\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject, throwError } from \"rxjs\";\nimport { Message } from \"@stomp/stompjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { Lpr } from \"../../lpr/lpr\";\n\n@Component({\n selector: 'portaria-entrada',\n template: `\n <div class=\"card-entrada\" *sLoadingState=\"loading\">\n <div class=\"portaria-card\">\n <h4>{{portaria?.description}}</h4>\n <s-button style=\"float: right\" [auxiliary]=\"true\" iconClass=\"fas fa-camera\" priority=\"default\" (onClick)=\"readPlaque()\"></s-button>\n </div>\n <div class=\"portaria-card\" *ngFor=\"let lpr of portaria.lprs\">\n <h4>{{lpr.description || lpr.stream}}</h4>\n <p-inputSwitch styleClass=\"lprInputSwitch\" [ngModel]=\"lpr.locked\" [readonly]=\"true\"></p-inputSwitch>\n </div>\n </div>\n `,\n styleUrls: ['./entrada.component.scss'],\n providers: [ DialogService ]\n})\nexport class EntradaComponent implements OnInit, OnDestroy {\n\n @Input() portaria: any;\n\n loading = false;\n\n websocket: IntegrationWebSocket;\n unsubscribe$ = new Subject<void>();\n constructor(private dialogService: DialogService, private portariaService: PortariasService, stompService: StompService, cookieService: CookieService) {\n this.websocket = new IntegrationWebSocket(stompService, cookieService, 'integration');\n }\n\n ngOnInit() {\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsLprLockUnlocked`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((response: WsLprLockUnlocked) => this.portaria.lprs = this.portaria.lprs.map((lpr: Lpr) => lpr.stream === response.stream ? { ...lpr, locked: response.locked } : lpr ))\n })\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n readPlaque() {\n this.loading = true;\n this.portariaService.ultimaPlacaLida(this.portaria.entranceLpr.stream)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(({ plate }) => {\n if (!plate) {\n return this.placaNaoEncontrada();\n }\n this.openAgendas(plate);\n })\n }\n\n placaNaoEncontrada() {\n this.dialogService.open(ConfirmacaoComponent, {\n header: 'Placa não encontrada',\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n }\n })\n .onClose\n .pipe(\n filter(data => !!data),\n )\n .subscribe(data => this.openAgendas(data.placa))\n }\n\n openAgendas(placa: string) {\n this.portariaService.executarEntrada(this.portaria.id, placa)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.dialogService.open(AgendasComponent, {\n header: `Agendamentos | ${placa.toUpperCase()}`,\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n },\n data: {\n veiculo: placa,\n portaria: this.portaria\n }\n })\n });\n }\n\n}\n\nexport interface WsLprLockUnlocked {\n stream: string;\n locked: boolean;\n}","import { NgModule } from \"@angular/core\";\nimport { PortariasComponent } from \"./portarias.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { EntradaComponent } from \"./entrada/entrada.component\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AgendasComponent } from \"./agendas/agendas.component\";\nimport { TableModule } from \"primeng/table\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { MessageModule } from \"primeng/message\";\nimport { InputSwitchModule } from \"primeng/inputswitch\";\nimport { PortariasService } from \"./portarias.service\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { SelectPlantModule } from \"@seniorsistemas/yms-components\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { ConfirmacaoComponent } from \"./confirmacao/confirmacao.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { StompService, StompConfig } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ButtonModule,\n TableModule,\n LoadingStateModule,\n InputSwitchModule,\n InputTextModule,\n DynamicDialogModule,\n HttpClientModule,\n SelectPlantModule,\n MessageModule\n ],\n declarations: [ PortariasComponent, EntradaComponent, AgendasComponent, ConfirmacaoComponent ],\n entryComponents: [ PortariasComponent, AgendasComponent, ConfirmacaoComponent ],\n providers: [ \n PortariasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class PortariasModule {\n constructor(dispatcher: IntegrationDispatcher) {\n dispatcher.dispatch(PortariasComponent);\n }\n}","import { FieldType } from \"@seniorsistemas/angular-components\";\nimport { FormGroup } from \"@angular/forms\";\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\nconst numberPattern = /^\\d+\\b$/;\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) =>\n array.concat(otherArray.filter(item => !array.includes(item)));\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const { isValidValue, typeExists } = getTypeInformation(type, value);\n return !(typeExists && !isValidValue);\n};\n\nexport const getTypeInformation = (type: FieldType, value: any) => {\n switch (type) {\n case FieldType.Time:\n case FieldType.Date:\n case FieldType.DateTime:\n return { isValidValue: false, typeExists: true };\n case FieldType.Integer:\n case FieldType.Double:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n default:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n }\n};\n\nexport const userCanVisualize = (formGroup: FormGroup, allPermissions: any) => {\n return (\n Object.keys(formGroup.controls).filter(field => {\n const errors = formGroup.get(field).errors ? formGroup.get(field).errors.required : formGroup.get(field).errors;\n return allPermissions[field] && !allPermissions[field].visualizar && errors;\n }).length === 0\n );\n};\n\nexport const getProp = (obj: any, path: any) => \n path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n\nexport const dialogConfig = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-4\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"auto\",\n \"max-height\": \"none\",\n \"margin-bottom\": \"0\",\n \"flex\": 1\n },\n};","import { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { map } from \"rxjs/operators\";\nimport { EntityService } from \"../erp-senior/core/entities/entity-service\";\nimport { getProp, isValidFilter, mergeUnique } from \"./utils\";\nconst moment = _moment;\n\nexport function getLookupLabel(data: any = {}, fields: any = [], separator: string, translation?: boolean) {\n const concatenateLabelsLookup = (texto: string) => {\n const splitedLabel = texto.split('-');\n const concatenate = (p: string = ' ', c: string = ' ') => {\n if (p.trim() && c.trim()) return `${p} - ${c}`;\n if (p.trim() && !c.trim()) return `${p}`;\n if (!p.trim() && c.trim()) return `${c}`;\n };\n return splitedLabel.reduce(concatenate);\n };\n return concatenateLabelsLookup(fields.map((field: any) => {\n if (field.indexOf(\".\") > 0) return getProp(data, field);\n return data[field];\n }).join(separator))\n || (translation ? 'yms.erp.sem_descricao' : ' - ');\n}\n\nexport const onLookupRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, value: string, customFilter = '') => {\n const sort = lookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = (searchFields)\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n if (customFilter && customFilter.trim()) {\n filterQuery = filterQuery ? `(${filterQuery}) and ${customFilter}` : customFilter;\n }\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n\nexport const onSearchRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, event: any, customFilter = '') => {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n\n let filterQuery = searchFields\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else if (type == FieldType.String && name.indexOf('.') !== -1) {\n return `containing(${name}, '${value.replace(/'/g, \"\\\\'\")}')`;\n } else if (type == FieldType.String && name.indexOf('.') === -1) {\n return `containing(lower(${name}),lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n } else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = customFilter && customFilter.trim() ? filterQuery.concat(filterQuery ? ' and ' : '').concat(customFilter) : filterQuery;\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ page, sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n","export interface VisitorCredentialCardsData {\n visitor: string;\n credentialCards: CredentialCard[];\n}\n\nexport interface CredentialCard {\n id?: string;\n cardTechnology: CardTechnology;\n cardNumber: number;\n endDate: Date;\n visitor?: string\n}\n\nexport enum CardTechnology {\n BARCODE_CARD = \"BARCODE_CARD\",\n RFID_CARD = \"RFID_CARD\",\n SMART_CARD = \"SMART_CARD\",\n}\n","export enum VisitorSituation {\n CHECK_IN_PENDING = \"CHECK_IN_PENDING\",\n CHECK_IN_REALIZED = \"CHECK_IN_REALIZED\",\n VISITING = \"VISITING\",\n CHECK_OUT_REALIZED = \"CHECK_OUT_REALIZED\",\n CHECK_IN_NOT_REALIZED = \"CHECK_IN_NOT_REALIZED\",\n CHECK_IN_EXPIRED = \"CHECK_IN_EXPIRED\",\n}\n","import { VisitorDto } from \"../models/visitor\";\r\n\r\nexport class CredentialCardDto {\r\n id?: string;\r\n cardTechnology: CardTechnology;\r\n cardNumber: number;\r\n endDate: Date;\r\n visitor?: string\r\n}\r\n\r\nexport enum CardTechnology {\r\n BARCODE_CARD = \"BARCODE_CARD\",\r\n RFID_CARD = \"RFID_CARD\",\r\n SMART_CARD = \"SMART_CARD\",\r\n}\r\n","import { Veiculo } from './../../veiculo/veiculo';\nimport { Motorista } from './../motorista/motorista';\nimport * as _moment from \"moment\"; const moment = _moment;\nimport { AgendaDto } from \"./agenda-dto\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n\nexport interface Planta {\n id: string;\n nome: string;\n cnpj: string;\n endereco: any;\n}\n\nexport class Agenda {\n public id: string;\n public descricao: string;\n public tipoAgendamento?: any;\n public planta?: any;\n public status?: string;\n public veiculo?: Veiculo;\n public motorista?: Motorista;\n public createdBy?: string;\n public createdByErp?: boolean;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public externalTenant?: any;\n\n public static fromDto(agendaDto: AgendaDto, originEntity?: string): Agenda {\n const model: any = { ...agendaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"descricao\"];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n return model as Agenda;\n }\n\n public static toDto(agenda: Agenda, originEntity?: string): AgendaDto {\n const dto: any = { ...agenda };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n}\n","import { Component, OnInit, OnDestroy, Output, Input } from \"@angular/core\";\nimport { Agendamento, ChegadaVeiculo, IntegrationEventsCallback } from \"@seniorsistemas/yms-routines\";\nimport { takeUntil, mergeMap, finalize } from \"rxjs/operators\";\nimport { Subject, empty } from \"rxjs\";\nimport { Agenda } from \"../../erp-senior/core/entities/agenda/agenda\";\nexport const SAM_SENIOR_HEADER = \"Ronda\";\n\n\n@ChegadaVeiculo({\n header: SAM_SENIOR_HEADER,\n name: 'yms.integracao.sam',\n icon: 'fal fa-shield'\n})\nexport class FormSamDescritor { }\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <scheduling [agenda]=\"agenda\"></scheduling>\n </div>\n `\n})\nexport class FormSamComponent extends FormSamDescritor implements OnInit, OnDestroy {\n @Output() agenda: Agenda;\n @Input() save: any[] = [];\n\n header: string = SAM_SENIOR_HEADER;\n loading = false;\n\n private readonly _integrationCallback: IntegrationEventsCallback;\n\n private readonly unsubscribe$: Subject<void> = new Subject();\n constructor(private readonly integrationCallback: IntegrationEventsCallback) { \n super();\n this._integrationCallback = integrationCallback;\n }\n\n ngOnInit() {\n this._integrationCallback.onAgendamentoSaved()\n .pipe(\n takeUntil(this.unsubscribe$),\n mergeMap(agenda => {\n const visitors = this.save;\n this.agenda = agenda; \n return empty();\n })\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class FocusService {\n public focusFirstInvalidInput() {\n const invalidFields = Array.from(document.getElementsByClassName(\"ng-invalid\"));\n const firstField: any = invalidFields.find((f: any) => f.nodeName !== \"FORM\");\n if (!firstField) return;\n if (firstField.nodeName === \"P-CALENDAR\") {\n const firstInputId = firstField.getAttribute(\"ng-reflect-input-id\");\n const firstInvalidInput = document.getElementById(firstInputId);\n if (firstInvalidInput) firstInvalidInput.focus();\n } else if (firstField.nodeName === \"S-LOOKUP\") {\n const nestedInput = this.getNestedInput(firstField.firstElementChild);\n if (nestedInput) nestedInput.focus();\n } else firstField.focus();\n }\n\n private getNestedInput(element: any): any {\n if (element.nodeName === \"INPUT\") {\n return element;\n }\n return this.getNestedInput(element.firstElementChild);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { FormGroup } from \"@angular/forms\";\n\n@Injectable()\nexport class FieldCustomizationService {\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n this.http = http;\n this.messageService = messageService;\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public commitFiles(objects: any[]) {\n return this.http.post(\"platform/field_customization/actions/commitObject\", { objects }).pipe(this.defaultCatch());\n }\n\n public deleteFiles(objects: any) {\n return this.http.post(\"platform/field_customization/actions/deleteObjects\", objects).pipe(this.defaultCatch());\n }\n\n public getFiles(formGroup: FormGroup) {\n let fieldCustomization = [];\n\n if (formGroup.value.custom) {\n fieldCustomization = formGroup.value.custom.fieldCustomization || [];\n delete formGroup.value.custom.fieldCustomization;\n }\n\n const filesToCommit: any[] = [];\n let filesToDelete: any = {};\n\n fieldCustomization.forEach(({ domain, service, entity, toDelete, toInsert }: any) => {\n if (!this.isEmpty(toInsert)) {\n const files = Object.keys(toInsert).map((key: string) => {\n const version = toInsert[key].version;\n const fileName = toInsert[key].name;\n const objectId = toInsert[key].objectId;\n return { version, fileName, objectId };\n });\n\n if (!this.isEmpty(files)) {\n filesToCommit.push(...files);\n }\n }\n\n if (!this.isEmpty(toDelete)) {\n const objects: any[] = [];\n Object.keys(toDelete).forEach((key: string) => {\n const fields = toDelete[key] || [];\n const files = fields.map((file: string) => {\n return {\n field: key,\n objectId: file,\n };\n });\n objects.push(...files);\n });\n filesToDelete = { domain, service, entityName: entity, objects };\n }\n });\n\n return { filesToCommit, filesToDelete };\n }\n\n public isEmpty(object: any) {\n if (Array.isArray(object)) {\n return object.length === 0;\n }\n return Object.entries(object).length === 0 && object.constructor === Object;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from \"@angular/common/http\";\nimport { Service } from \"../../../service\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n\n\n@Injectable({providedIn: 'root'})\nexport class VisitedInfoService extends Service {\n readonly domainService: String = \"yms_int/sam\";\n\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n public getVisited(agendaIdYMS: string) {\n return this.http.post(`yms_int/sam/queries/getVisited`, { id: agendaIdYMS });\n }\n\n\n}\n","\nexport class Visited { \n public name: string;\n public contactPhone: string;\n}\n\n","import { AfterViewInit, Component, Input, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { VisitedInfoService } from \"./visited-info.service\";\nimport { Visited } from \"./../../entities/visited\";\n\n\nexport class VisitedInfoDescritor {}\n\n@Component({\n selector: \"visited-info\",\n template: `\n <div> \n <div class=\"info\">\n <div class=\"info-title\">\n Visitado:\n </div>\n <div class=\"info-data\">\n {{ visited.name }} {{ visited.contactPhone }}\n </div>\n </div>\n </div>\n`,\n styleUrls: ['./visited-info.component.scss']\n})\nexport class VisitedInfoComponent extends VisitedInfoDescritor implements OnInit {\n @Input() agenda: any;\n\n private readonly visitedService: VisitedInfoService;\n\n visited: Visited = new Visited();\n\n private readonly ngUnsubscribe = new Subject();\n\n constructor(private readonly service: VisitedInfoService) {\n super();\n this.visitedService = service;\n }\n\n ngOnInit() {\n // nada por enquanto\n }\n\n ngAfterContentInit() {\n if (!this.agenda) {\n console.error(\"agenda not found\");\n }\n this.visitedService\n .getVisited(this.agenda.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (response) {\n this.visited.name = response.name;\n this.visited.contactPhone = response.contactPhone;\n }\n });\n }\n\n}\n","import { VisitorDto } from \"./visitor-dto\";\r\nimport { CredentialCardDto } from \"./credential-card-dto\";\r\n\r\nexport class VisitorCredentialsDto { \r\n visitor: VisitorDto\r\n credentialCards: CredentialCardDto[] = [];\r\n}\r\n\r\n","import { Subject } from \"rxjs\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/api\";\nimport { takeUntil } from \"rxjs/operators\";\nimport * as _moment from \"moment\";\nconst moment = _moment;\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CardTechnology } from \"../../entities/credential-card-dto\";\nimport { Visitor } from \"../../models/visitor\";\n\n@Component({\n templateUrl: \"./credencial-form.component.html\",\n providers: [ConfirmationService],\n})\nexport class CredencialFormComponent implements OnInit, OnDestroy {\n formGroup: FormGroup;\n\n private readonly unsubscribe$ = new Subject<void>();\n public technologies: any[] = [];\n public localeConfig: any = {};\n\n constructor(\n private fb: FormBuilder,\n private dialogRef: DynamicDialogRef,\n private translate: TranslateService,\n private route: ActivatedRoute,\n private dialogConfig: DynamicDialogConfig\n ) {}\n\n ngOnInit() {\n this.formGroup = this.fb.group({\n tecnologiaCracha: [undefined, Validators.compose([Validators.required])],\n numero: [undefined, Validators.compose([Validators.required])],\n validadeCredencial: [undefined, Validators.compose([Validators.required])],\n hora: [undefined, Validators.compose([Validators.required])],\n });\n\n this.route.data.pipe(takeUntil(this.unsubscribe$)).subscribe((data: any) => {\n this.localeConfig = data.localeConfig;\n });\n\n this.tecnologiaCracha(\n CardTechnology.BARCODE_CARD,\n CardTechnology.RFID_CARD,\n CardTechnology.SMART_CARD\n );\n\n this.formataDataEHoraDaCredencial();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public gerar() {\n if (!this.formGroup.valid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n const endDate = this.getDataHora();\n const visitante = this.dialogConfig.data.visitante;\n\n const visitorCredentialCardList = this.gerarCredencial(visitante, endDate);\n this.close(visitorCredentialCardList);\n }\n\n public tecnologiaCracha(...cardTechnologies: CardTechnology[]) {\n this.technologies = [];\n\n for (const cardTechnology of cardTechnologies) {\n this.technologies.push({\n label: this.getTecnologiaCrachaTraduzida(cardTechnology),\n value: cardTechnology,\n });\n }\n }\n\n private getTecnologiaCrachaTraduzida(cardTechnology: CardTechnology): string {\n if (cardTechnology === CardTechnology.BARCODE_CARD) {\n return this.translate.instant(\"yms.patio.cartao_credencial_codigo_barras\");\n }\n\n if (cardTechnology === CardTechnology.RFID_CARD) {\n return this.translate.instant(\"yms.patio.cartao_credencial_rfid\");\n }\n\n if (cardTechnology === CardTechnology.SMART_CARD) {\n return this.translate.instant(\"yms.patio.cartao_credencial_smart\");\n }\n }\n\n public formataDataEHoraDaCredencial(): void {\n const data = moment().add(1, \"hour\");\n this.formGroup.get(\"validadeCredencial\").disable();\n\n this.definiValor(\"validadeCredencial\", data.format(\"DD/MM/YYYY\"));\n this.definiValor(\"hora\", data.format(\"HH:mm\"));\n }\n\n private getDataHora(): Date {\n const dataHora: Date = new Date();\n const horaValue = this.formGroup.get(\"hora\").value;\n\n const horas: number = moment().date(horaValue).add(1, \"hour\").hours();\n const minutos: number = moment().date(horaValue).minutes();\n\n dataHora.setHours(horas);\n dataHora.setMinutes(minutos);\n\n return dataHora;\n }\n\n private gerarCredencial(visitante: Visitor, endDate: Date) {\n return {\n visitor: visitante,\n cardTechnology: this.formGroup.get(\"tecnologiaCracha\").value,\n cardNumber: this.formGroup.get(\"numero\").value,\n endDate: endDate,\n };\n }\n\n private definiValor(campo: string, valor: any): void {\n return this.formGroup.get(campo).setValue(valor);\n }\n\n public close(data?: any) {\n this.dialogRef.close(data);\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this.validateAllFormFields(control);\n } else {\n throw 'Instance fot found';\n }\n });\n\n formGroup.markAsDirty({ onlySelf: true });\n }\n}","export enum VisitSituation {\n PENDING = \"PENDING\",\n IN_PROGRESS = \"IN_PROGRESS\",\n FINISHED = \"FINISHED\",\n NOT_OCCURRED = \"NOT_OCCURRED\"\n}","import { Component, EventEmitter, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/api\";\nimport { ReplaySubject, Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"./visitor-edit-form.component.html\",\n providers: [ConfirmationService],\n})\nexport class VisitanteFormComponent implements OnInit, OnDestroy {\n formGroup: FormGroup;\n\n private readonly unsubscribe$ = new Subject<void>();\n ngUnsubscribe = new Subject();\n private id: any;\n @Output() notSavedData: EventEmitter<boolean> = new EventEmitter();\n private actualValue: any;\n public actualChanged = false;\n public isFormModified: boolean = false;\n\n constructor(\n fb: FormBuilder,\n private dialogRef: DynamicDialogRef,\n private dialogConfig: DynamicDialogConfig\n ) {\n this.formGroup = fb.group({\n name: [undefined, Validators.compose([Validators.required])],\n document: [undefined, Validators.compose([Validators.required])],\n contact: [undefined, Validators.compose([Validators.required])],\n });\n }\n\n ngOnInit() {\n const { data } = this.dialogConfig;\n if (data !== undefined) {\n this.id = data.id;\n this.formGroup.get(\"name\").setValue(data.name);\n this.formGroup.get(\"document\").setValue(data.document);\n this.formGroup.get(\"contact\").setValue(data.contact);\n\n if (data.document !== undefined) {\n this.formGroup.get(\"document\").disable();\n }\n }\n\n this.notSavedData\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((val) => (this.actualChanged = val));\n\n const rs = new ReplaySubject<boolean>();\n rs.subscribe((isIntact: boolean) => (this.isFormModified = !isIntact));\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n save() {\n if (!this.formGroup.valid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n const visitante = this.formGroup.getRawValue();\n visitante.id = this.id;\n this.close(visitante);\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this.validateAllFormFields(control);\n } else {\n throw 'Instance fot found';\n }\n });\n\n formGroup.markAsDirty({ onlySelf: true });\n }\n}\n","import { VisitorCredentialsDto } from '../../../entities/visitor-credentials-dto';\nimport { AfterContentInit, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Visitor } from \"../../../models/visitor\";\nimport { Subject, empty } from \"rxjs\";\nimport {\n CardTechnology,\n CredentialCard,\n} from \"../../../models/card-credential\";\nimport { filter, takeUntil, mergeMap } from \"rxjs/operators\";\nimport { VisitorSituation } from \"../../../models/visitor-situation\";\nimport { Motorista } from \"../../../../erp-senior/core/entities/motorista/motorista\";\nimport { DialogService } from \"primeng/api\";\nimport { CredencialFormComponent } from \"../../credencial-form/credencial-form.component\";\nimport { VisitanteFormComponent } from \"../visitor-edit-form/visitante-form/visitor-edit-form.component\";\nimport { dialogConfig } from \"../../../../utils/utils\";\nimport { IntegrationEventsCallback } from \"@seniorsistemas/yms-routines\";\nimport { VisitorDto } from '../../../entities/visitor-dto';\n\n@Component({\n selector: 'visitante-component',\n templateUrl: './visitor-edit-list.component.html',\n styleUrls: ['./visitor-edit-list.component.scss'],\n})\nexport class VisitanteComponent implements OnInit, AfterContentInit {\n @Input() private motorista: Motorista;\n @Input() private visitors: VisitorCredentialsDto[] = [];\n @Output() visitorsChange = new EventEmitter<VisitorCredentialsDto[]>();\n @Output() hasChange = new EventEmitter<boolean>();\n\n private readonly ngUnsubscribe = new Subject();\n public visitanteGridData: VisitorDto[];\n public visitanteGridColumns: any[];\n public visitanteTotalRecords: number;\n public visitanteGridLoading: boolean;\n public visitorFound: boolean;\n\n private readonly _integrationCallback: IntegrationEventsCallback;\n private readonly unsubscribe$ = new Subject<void>();\n\n constructor(\n private translate: TranslateService,\n private dialogService: DialogService,\n readonly integrationCallback: IntegrationEventsCallback\n ) {\n this._integrationCallback = integrationCallback;\n }\n\n ngOnInit() {\n this.constroiCamposTabelaVistante();\n this.visitanteTotalRecords = 0;\n }\n\n ngAfterContentInit(): void {\n this.visitanteGridLoading = false;\n this.adicionaVisitantesGrid();\n this._integrationCallback\n .onAgendamentoMotoristaChanged()\n .pipe(\n takeUntil(this.unsubscribe$),\n mergeMap((motorista) => {\n this.atualizaMotorista(motorista);\n return empty();\n })\n )\n .subscribe();\n }\n\n private atualizaMotorista(mot: Motorista) {\n const motoristaVisitante = this.visitanteGridData.find(\n (item) => item.driver\n );\n\n if (motoristaVisitante && motoristaVisitante.documentType === this.getDocumentType() && motoristaVisitante.document === mot.cpf) {\n return;\n }\n\n if (this.visitanteGridData.length > 0) {\n this.visitanteGridData[0] = {\n name: mot.nome,\n document: mot.cpf,\n contact: this.getContatoMotorista(mot),\n visitorSituation: VisitorSituation.CHECK_IN_PENDING,\n documentType: this.getDocumentType(),\n driver: true\n }; \n }\n else {\n this.visitanteGridData.push({\n name: mot.nome,\n document: mot.cpf,\n contact: this.getContatoMotorista(mot),\n visitorSituation: VisitorSituation.CHECK_IN_PENDING,\n documentType: this.getDocumentType(),\n driver: true\n });\n }\n \n }\n\n private adicionaVisitantesGrid() {\n if (this.visitors.length) {\n this.visitanteGridData = [];\n this.adicionaMotoristaNoVisitanteGridData();\n\n this.visitors.forEach((visitor: any) => {\n if (this.motorista.cpf !== visitor.visitor.document) {\n this.visitanteGridData.push({\n id: visitor.visitor.id,\n name: visitor.visitor.name,\n document: visitor.visitor.document,\n contact: visitor.visitor.contact,\n visitorSituation: this.getVisitorSituation(\n visitor.visitor.visitorSituation\n ),\n documentType: this.getDocumentType(),\n driver: true\n });\n }\n\n this.visitanteTotalRecords = this.visitors.length;\n });\n } else {\n this.visitanteGridData = [];\n const novo_visitante = new VisitorCredentialsDto()\n novo_visitante.visitor = {\n name: this.motorista.nome,\n document: this.motorista.cpf,\n contact: this.getContatoMotorista(this.motorista),\n documentType: this.getDocumentType(),\n visitorSituation: VisitorSituation.CHECK_IN_PENDING,\n driver: true\n }\n\n const visitanteBuscando = this.visitanteGridData.find(\n (visitanteNaLista) => novo_visitante.visitor.document === visitanteNaLista.document\n );\n if (visitanteBuscando === undefined) {\n this.visitanteGridData.push(novo_visitante.visitor); \n this.visitors.push(novo_visitante);\n this.visitanteTotalRecords = 1;\n }\n }\n\n this.visitanteGridLoading = false;\n }\n\n public isCredentialCardsEmpty(visitor: Visitor) {\n const visitantesEncontrados = this.visitors.find(\n (visitorWithCredentials) =>\n visitorWithCredentials.visitor.document === visitor.document\n );\n\n if (visitantesEncontrados === undefined) {\n return false;\n }\n\n return visitantesEncontrados.credentialCards.filter(\n (credentialCard: CredentialCard) =>\n Object.keys(credentialCard).length !== 0\n ).length > 0\n ? true\n : false;\n }\n\n private adicionaMotoristaNoVisitanteGridData() {\n const motoristaVisitante = this.visitors.find(\n (visitor) => this.motorista.cpf === visitor.visitor.document\n );\n\n if (motoristaVisitante === undefined) {\n this.visitanteGridData.push({\n name: this.motorista.nome,\n document: this.motorista.cpf,\n contact: this.getContatoMotorista(this.motorista),\n visitorSituation: VisitorSituation.CHECK_IN_PENDING,\n documentType: this.getDocumentType(),\n driver: true,\n });\n } else {\n this.visitanteGridData.push({\n id: motoristaVisitante.visitor.id,\n name: motoristaVisitante.visitor.name,\n document: motoristaVisitante.visitor.document,\n contact: this.getContatoMotorista(this.motorista),\n visitorSituation: this.getVisitorSituation(\n motoristaVisitante.visitor.visitorSituation\n ),\n documentType: this.getDocumentType(),\n driver: true,\n });\n }\n }\n\n public criarOuAtualizarVisitante(visitor: Visitor) {\n this.dialogService\n .open(VisitanteFormComponent, {\n header: this.translate.instant(\n \"yms.patio.motorista_adicionar_visitante\"\n ),\n ...dialogConfig,\n ...this.constroiVisitante(visitor),\n })\n .onClose.pipe(\n takeUntil(this.ngUnsubscribe),\n filter((value) => !!value)\n )\n .subscribe((visitante) => this.adicionaVisitanteParaSalvar(visitante));\n }\n\n public adicionaVisitanteParaSalvar(visitante: Visitor) {\n this.visitanteGridData.forEach(visitor => {\n if(visitor.document === visitante.document) {\n visitor.contact = visitante.contact;\n visitor.name = visitante.name;\n this.visitorFound = true;\n }\n });\n\n if(this.visitorFound) {\n return;\n }\n this.visitanteGridLoading = true;\n\n visitante.documentType = this.getDocumentType();\n\n if (visitante.visitorSituation === undefined) {\n visitante.visitorSituation = VisitorSituation.CHECK_IN_PENDING;\n }\n\n this.addVisitanteNaTabela(visitante);\n\n this.visitanteTotalRecords++;\n this.visitanteGridLoading = false;\n\n const novo_visitante = new VisitorCredentialsDto()\n novo_visitante.visitor = {\n name : visitante.name,\n document : visitante.document,\n contact: visitante.contact,\n documentType : visitante.documentType,\n visitorSituation : visitante.visitorSituation,\n driver: false\n }\n\n this.visitors.push(novo_visitante)\n this.visitorsChange.emit(this.visitors)\n this.hasChange.emit(true);\n }\n\n public model(visitante: Visitor) {\n const isDriver = visitante.document === this.motorista.cpf;\n\n const findVisitor = this.visitors.find(\n (visitorWithCredentials) =>\n visitorWithCredentials.visitor.document === visitante.document\n );\n\n return [\n {\n label: this.translate.instant('yms.patio.motorista_editar_visitante'),\n command: () => this.editarVisitante(visitante),\n visible : !isDriver\n },\n {\n label: this.translate.instant('yms.patio.delete'),\n command: () => this.deletarVisitante(visitante),\n visible : !isDriver\n },\n {\n label: this.translate.instant('yms.patio.motorista_visitante_entregar_credencial'),\n command: () => this.entregarCredencial(visitante),\n visible : isDriver || !isDriver\n },\n {\n label: this.translate.instant('yms.patio.remover_credenciais'),\n command: () => this.deletarCredenciais(findVisitor),\n visible : findVisitor != null && findVisitor.credentialCards != null && findVisitor.credentialCards.length > 0\n },\n ];\n }\n\n private addVisitanteNaTabela(visitante: any) {\n if (visitante.id !== undefined) {\n this.visitanteGridData = this.visitanteGridData.map((visitanteGrid) => {\n if (visitanteGrid.id === visitante.id) {\n return visitante;\n }\n return visitanteGrid;\n });\n } else {\n this.visitanteGridData.push(visitante);\n }\n}\n\n public entregarCredencial(visitante: Visitor) {\n this.dialogService\n .open(CredencialFormComponent, {\n header: this.translate.instant(\n \"yms.patio.motorista_visitante_credencial\"\n ),\n data: {\n visitante: visitante,\n },\n })\n .onClose.pipe(\n takeUntil(this.ngUnsubscribe),\n filter((value) => !!value)\n )\n .subscribe((visitorCredentialCard: any) => \n this.adicionaCredencialParaEntregar(visitorCredentialCard));\n }\n\n private adicionaCredencialParaEntregar(visitorCredentialCard: any) {\n const visitorWithCredencial = this.visitors.find(\n (visitor) => visitor.visitor.document === visitorCredentialCard.visitor.document\n );\n\n if (visitorWithCredencial === undefined) {\n this.visitors.push({\n visitor: visitorCredentialCard.visitor,\n credentialCards: [this.createCredentialCard(visitorCredentialCard)],\n });\n } else {\n visitorWithCredencial.credentialCards.push(this.createCredentialCard(visitorCredentialCard));\n }\n this.hasChange.emit(true);\n }\n\n public editarVisitante(visitante: Visitor) {\n this.criarOuAtualizarVisitante(visitante);\n }\n\n public deletarVisitante(visitante: Visitor) {\n this.visitanteGridData.forEach((value, index) => {\n if (value.document === visitante.document) {\n this.visitanteGridData.splice(index, 1);\n\n const removeVisitor = this.visitors.findIndex((visitor) => visitor.visitor.document === value.document);\n if(removeVisitor !== -1) {\n this.visitors.splice(removeVisitor, 1);\n this.hasChange.emit(true);\n }\n }\n });\n }\n\n public deletarCredenciais(viisitorCredential: VisitorCredentialsDto) {\n viisitorCredential.credentialCards.splice(0, viisitorCredential.credentialCards.length);\n this.hasChange.emit(true);\n }\n\n private getContatoMotorista(motorista: Motorista) {\n return motorista.telefone === undefined ? \"0\" : motorista.telefone;\n }\n\n public getCredentialCards(visitor: Visitor) {\n if (this.visitors.length <= 0) {\n return [];\n }\n\n return this.visitors\n .find(\n (visitorWithCredentials) =>\n visitorWithCredentials.visitor.document === visitor.document\n )\n .credentialCards.filter(\n (credentialCard) => Object.keys(credentialCard).length !== 0\n )\n .map((credentialCard: CredentialCard) => {\n return {\n cardTechnology: this.getTecnologiaCrachaTraduzida(\n credentialCard.cardTechnology\n ),\n cardNumber: credentialCard.cardNumber,\n endDate: credentialCard.endDate,\n };\n });\n }\n\n private constroiVisitante(visitante: Visitor) {\n let visitanteData = { data: {} };\n if (visitante !== undefined && visitante !== null) {\n visitanteData = {\n data: {\n id: visitante.id,\n name: visitante.name,\n document: visitante.document,\n contact: visitante.contact,\n visitorSituation: this.getVisitorSituation(\n visitante.visitorSituation\n ),\n documentType: this.getDocumentType(),\n },\n };\n }\n return visitanteData;\n }\n\n private createCredentialCard(visitorCredentialCard: CredentialCard): CredentialCard {\n return {\n visitor: visitorCredentialCard.id,\n cardTechnology: visitorCredentialCard.cardTechnology,\n cardNumber: visitorCredentialCard.cardNumber,\n endDate: visitorCredentialCard.endDate,\n };\n }\n\n private getTecnologiaCrachaTraduzida(cardTechnology: CardTechnology): string {\n if (cardTechnology === CardTechnology.BARCODE_CARD) {\n return this.translate.instant(\n \"yms.patio.cartao_credencial_codigo_barras\"\n );\n }\n\n if (cardTechnology === CardTechnology.RFID_CARD) {\n return this.translate.instant(\"yms.patio.cartao_credencial_rfid\");\n }\n\n if (cardTechnology === CardTechnology.SMART_CARD) {\n return this.translate.instant(\"yms.patio.cartao_credencial_smart\");\n }\n }\n\n private getVisitorSituation(visitorSituation: VisitorSituation) {\n return visitorSituation === undefined\n ? VisitorSituation.CHECK_IN_PENDING\n : visitorSituation;\n }\n\n private constroiCamposTabelaVistante() {\n this.visitanteGridColumns = [\n {\n field: \"name\",\n header: this.translate.instant(\"yms.patio.motorista_visitante_nome\"),\n },\n {\n field: \"document\",\n header: this.translate.instant(\n \"yms.patio.motorista_visitante_documento\"\n ),\n },\n {\n field: \"contact\",\n header: this.translate.instant(\"yms.patio.motorista_visitante_contato\"),\n },\n ];\n }\n\n private getDocumentType(): string {\n return \"cpf\";\n }\n}","import { HttpParams, HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { SortMeta } from \"primeng/components/common/api\";\nimport { throwError, Observable } from \"rxjs\";\nimport { catchError, tap } from \"rxjs/operators\";\n\nexport class EntityService<T> {\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected actionsUrl?: string\n ) {\n this.http = http;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\n this.actionsUrl = actionsUrl;\n\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n\n return params;\n }\n\n public getBodyParams(listParams: ListParams): BodyParams {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n const bodyParams: BodyParams = {};\n\n bodyParams.size = size;\n bodyParams.offset = page;\n\n if (sort && sort.length) {\n bodyParams.orderBy = sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \");\n }\n\n if (filterQuery) bodyParams.filter = filterQuery;\n\n if (displayFields && displayFields.length) bodyParams.displayFields = displayFields.join();\n\n return bodyParams;\n }\n\n public defaultCatch() {\n return catchError((err: any): Observable<any> => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n\n public getListBodyParams(listParams: ListParams): BodyParams {\n const bodyParams = this.getBodyParams(listParams);\n if (listParams.displayFields && listParams.displayFields.length) {\n bodyParams.displayFields = listParams.displayFields;\n }\n return bodyParams;\n }\n\n public list(listParams: ListParams) {\n return this.http.get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public get(id: any, useCatch = true) {\n return this.http.get<T>(`${this.entityUrl}/${id}`).pipe(useCatch ? this.defaultCatch() : tap());\n }\n\n public insert(entity: T) {\n return this.http.post<T>(`${this.entityUrl}`, entity).pipe(this.defaultCatch());\n }\n\n public update(id: any, entity: T, useCatch = true) {\n return this.http.put<T>(`${this.entityUrl}/${id}`, entity).pipe(useCatch ? this.defaultCatch() : tap());\n }\n\n public delete(id: any) {\n return this.http.delete<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public listCustomFilter(listParams: ListParams, action: string) {\n return this.http.post<T[]>(`${this.actionsUrl}/${action}`, this.getBodyParams(listParams)).pipe(this.defaultCatch());\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayFields?: string | string[];\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { EntityService } from \"./../../core/entity-service\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { SchedulingDto } from \"./../../entities/scheduling-dto\";\nimport { SchedulingVisitors } from \"./../../entities/scheduling-visitors\";\n\n@Injectable({providedIn: 'root'})\nexport class SchedulingService extends EntityService<SchedulingDto> {\n domainService: String = \"yms_int/sam\";\n\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n super(http, messageService, `yms_int/sam/entities/scheduling`);\n }\n\n public saveScheduling(scheduling: SchedulingVisitors) {\n return this.http\n .post<SchedulingDto>(`${this.domainService}/actions/saveScheduling`, scheduling)\n .pipe(this.defaultCatch());\n }\n \n public startScheduling(schedulingId: string) {\n return this.http\n .post<SchedulingDto>(`${this.domainService}/actions/startScheduling`, { id : schedulingId } )\n .pipe(this.defaultCatch());\n }\n\n public getSchedulingByYms(id: String) {\n return this.http\n .post<SchedulingDto>(`${this.domainService}/queries/getSchedulingByYms`, {\n id,\n })\n .pipe(this.defaultCatch());\n }\n}\n","import { FieldType } from \"@seniorsistemas/angular-components\";\nimport { FormGroup } from \"@angular/forms\";\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) =>\n array.concat(otherArray.filter(item => !array.includes(item)));\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const isTypeNumber = numberTypes.includes(type);\n const numberPattern = /^\\d+\\b$/;\n const isNumber = value.match(numberPattern);\n return !(isTypeNumber && !isNumber);\n};\n\nexport const userCanVisualize = (formGroup: FormGroup, allPermissions: any) => {\n return (\n Object.keys(formGroup.controls).filter(\n field => allPermissions[field] && !allPermissions[field].visualizar && formGroup.get(field).errors.required\n ).length === 0\n );\n};\n\nexport const dialogConfig = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"auto !important\",\n \"flex\": 1\n },\n}\n","import { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from 'moment';\nconst moment = moment_;\nimport { Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { isValidFilter, mergeUnique } from \"./utils\";\nimport { EntityService } from \"./entity-service\";\n\nexport class Lookup <T> {\n private _searchFields: FormField[];\n private _lookupDisplayFields: string[] = [];\n private _advancedDisplayFields: string[] = [];\n private _lookupSeparator: string;\n private _searchGridFields: FormField[];\n private _searchGridData: T[];\n private _lookupSuggestions: T[];\n private _searchTotalRecords: number;\n private _service: EntityService<T>;\n private _params: any = [];\n private _url: any = {};\n private _nameService: any = {};\n private _useCustomSearch = false;\n private _customService: any;\n private _responseNamesData: any = {};\n private verificaAtivo: boolean;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(searchFields: FormField[], service: EntityService<T>, searchGridFields?: FormField[], separator: string = \"\", verificaAtivo?: boolean) {\n this._service = service;\n this._searchFields = searchFields;\n this._searchGridFields = searchGridFields || searchFields;\n this._lookupSeparator = separator;\n this.unsubscribe$ = new Subject();\n this.verificaAtivo = verificaAtivo;\n }\n\n public get searchFields() {\n return this._searchFields;\n }\n\n public get searchGridFields() {\n return this._searchGridFields;\n }\n\n public get searchGridData() {\n return this._searchGridData;\n }\n\n public get lookupSuggestions() {\n return this._lookupSuggestions;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get lookupDisplayFields() {\n return this._lookupDisplayFields;\n }\n\n public get advancedDisplayFields() {\n return this._advancedDisplayFields;\n }\n\n public setLookupDisplayFields(value: string[]): Lookup<T> {\n this._lookupDisplayFields = value;\n return this;\n }\n\n public setAdvancedDisplayFields(value: string[]): Lookup<T> {\n this._advancedDisplayFields = value;\n return this;\n }\n\n public setVariablesCustomSearch(value: any = {}) {\n this._params = value.params;\n this._url = value.url;\n this._nameService = value.nameService;\n this._customService = value.service;\n this._responseNamesData = value.responseNamesData;\n return this;\n }\n\n public lookupRequest(value: string, changeFilter?: (filter: string) => string) {\n const sort = this._lookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n const filter = this._searchFields\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n const displayFields = mergeUnique(this._lookupDisplayFields, this._advancedDisplayFields);\n\n let filterQuery = this.geradorFiltro(filter, changeFilter);\n\n this._service.list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.unsubscribe$))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this._lookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this._lookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => this._lookupSuggestions = list.contents);\n }\n\n public searchRequest(event: any, changeFilter?: (filter: string) => string) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filter = this._searchGridFields\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(this._lookupDisplayFields, this._advancedDisplayFields);\n\n let filterQuery = this.geradorFiltro(filter, changeFilter);\n\n this._service\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.unsubscribe$))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this._lookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this._lookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this._searchGridData = list.contents;\n this._searchTotalRecords = list.totalElements;\n });\n }\n\n public customLookupRequest(value: string) {\n this._params.descricao = value;\n this._customService[this._nameService](this._params, this._url)\n .pipe(takeUntil(this.unsubscribe$))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list[this._responseNamesData.contents].map((item: any) => ({\n ...item,\n label: this._lookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this._lookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => this._lookupSuggestions = list[this._responseNamesData.contents]);\n }\n\n public customSearchRequest(event: any) {\n const { first, rows, sortField, sortOrder, filterData } = event;\n const filter = {\n plantaId: this._params.plantaId,\n page: first / rows,\n size: rows,\n sortField: sortField,\n sortOrder: sortOrder\n };\n const setSearchValues = (e: any) => e[0] && e[1] ? filter[e[0]] = e[1] : false;\n Object.entries(filterData).filter(setSearchValues);\n\n this._customService[this._nameService](filter, this._url)\n .pipe(takeUntil(this.unsubscribe$))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list[this._responseNamesData.contents].map((item: any) => ({\n ...item,\n label: this._lookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this._lookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this._searchGridData = list[this._responseNamesData.contents];\n this._searchTotalRecords = list[this._responseNamesData.totalElements];\n });\n }\n\n private getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n private geradorFiltro(filter: any, changeFilter: any) {\n let filterQuery = (filter ? `(${filter})` : '');\n\n if (this.verificaAtivo) {\n filterQuery += filter? \"and ativo eq true\" : \"ativo eq true\";\n }\n return filterQuery.concat(`${changeFilter ? changeFilter(filter) : \"\"}`)\n }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { EntityService } from \"./../../core/entity-service\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { LobbyDto } from \"./../../entities/lobby-dto\";\n\n@Injectable({providedIn: 'root'})\nexport class LobbyService extends EntityService<LobbyDto> {\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n super(http, messageService, \"sam/lobby/entities/lobby\");\n }\n}\n","import { SchedulingDto } from \"./scheduling-dto\";\r\nimport { VisitorCredentialsDto } from \"./visitor-credentials-dto\";\r\n\r\nexport class SchedulingVisitors {\r\n scheduling: SchedulingDto\r\n visitors: VisitorCredentialsDto[]\r\n}\r\n","import { VisitSituation } from \"../models/visit-situation\";\n\nexport class SchedulingDto {\n id: string;\n idSAM: number;\n idYMS: string;\n lobbyIdSAM: string;\n description: string;\n expectedStartDate: Date;\n expectedEndDate: Date;\n visitSituation: VisitSituation\n}","export enum StatusAgenda {\n AGUARDANDO_CONFIRMACAO = \"AGUARDANDO_CONFIRMACAO_SOLICITANTE\",\n AGENDADO = \"AGENDADO\",\n AGUARDANDO_CONFIRMACAO_SOLICITANTE = \"AGUARDANDO_CONFIRMACAO\",\n REJEITADO_POR_VALIDACAO = \"REJEITADO_POR_VALIDACAO\",\n CANCELADO = \"CANCELADO\"\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\r\nimport { MessageService } from \"primeng/components/common/messageservice\";\r\nimport { Subject, NEVER } from \"rxjs\";\r\nimport { finalize, takeUntil, mergeMap } from \"rxjs/operators\";\r\nimport { LobbyDto } from \"./../../entities/lobby-dto\";\r\nimport { Scheduling } from \"./../../entities/scheduling\";\r\nimport { SchedulingService } from \"./shechuling.service\";\r\nimport { Lookup } from \"../../core/lookup\";\r\nimport { LobbyService } from \"./lobby.service\";\r\nimport { SchedulingVisitors } from \"./../../entities/scheduling-visitors\";\r\nimport { SchedulingDto } from \"./../../entities/scheduling-dto\";\r\nimport { VisitSituation } from \"../../models/visit-situation\";\r\n\r\n@Component({\r\n selector: \"scheduling\",\r\n templateUrl: \"./scheduling.component.html\",\r\n})\r\nexport class SchedulingComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() agenda: any;\r\n @Output() notSavedData: EventEmitter<boolean> = new EventEmitter();\r\n schedulingVisitors: SchedulingVisitors = new SchedulingVisitors();\r\n formGroup: FormGroup;\r\n isFormModified: boolean = false;\r\n loading = false; \r\n localeConfig: any = {};\r\n portariaLookup: Lookup<LobbyDto>;\r\n\r\n private actualValue: any;\r\n private readonly ngUnsubscribe = new Subject<void>();\r\n\r\n saveAndInitButton: HTMLButtonElement;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly route: ActivatedRoute,\r\n private readonly translate: TranslateService,\r\n private readonly messageService: MessageService,\r\n private readonly lobbyService: LobbyService,\r\n private readonly schedulingService: SchedulingService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.createForm();\r\n\r\n this.portariaLookup = new Lookup(this.getLobbyFields(), this.lobbyService);\r\n\r\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => {\r\n this.localeConfig = data.localeConfig;\r\n });\r\n\r\n this.formGroup.valueChanges.subscribe(changes => this.isFormModified = true );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.saveAndInitButton = document.getElementById('init') as HTMLButtonElement;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.agenda.id) {\r\n this.loading = true;\r\n\r\n this.schedulingService\r\n .getSchedulingByYms(this.agenda.id)\r\n .pipe(\r\n takeUntil(this.ngUnsubscribe),\r\n finalize(() => (this.loading = false))\r\n )\r\n .subscribe((res: any) => {\r\n if (res.scheduling) {\r\n const scheduling = res.scheduling;\r\n this.schedulingVisitors.scheduling = scheduling;\r\n this.schedulingVisitors.visitors = res.visitors;\r\n this.formGroup.controls[\"motivoVisita\"].setValue(\r\n scheduling.description\r\n );\r\n this.formGroup.controls[\"dataSaida\"].setValue(\r\n new Date(scheduling.expectedEndDate)\r\n );\r\n this.formGroup.controls[\"horaSaida\"].setValue(\r\n new Date(scheduling.expectedEndDate)\r\n );\r\n this.getLobby(scheduling).subscribe((lobby) =>\r\n this.formGroup.controls[\"portaria\"].setValue(lobby)\r\n );\r\n } else {\r\n const dataSaida = new Date();\r\n dataSaida.setHours(new Date().getHours() + 1);\r\n this.schedulingVisitors.scheduling = new SchedulingDto();\r\n this.schedulingVisitors.visitors = [];\r\n this.schedulingVisitors.scheduling.visitSituation = VisitSituation.PENDING;\r\n this.schedulingVisitors.scheduling.description = this.agenda.descricao;\r\n this.schedulingVisitors.scheduling.expectedStartDate = new Date();\r\n this.schedulingVisitors.scheduling.expectedEndDate = dataSaida;\r\n this.formGroup.controls[\"motivoVisita\"].setValue(this.schedulingVisitors.scheduling.description);\r\n this.formGroup.controls[\"dataSaida\"].setValue(this.schedulingVisitors.scheduling.expectedStartDate);\r\n this.formGroup.controls[\"horaSaida\"].setValue(this.schedulingVisitors.scheduling.expectedEndDate);\r\n }\r\n });\r\n\r\n this.patchActualValue();\r\n }\r\n }\r\n\r\n private getLobby(scheduling: Scheduling) {\r\n if (scheduling.lobbyIdSAM) {\r\n return this.lobbyService.get(scheduling.lobbyIdSAM);\r\n }\r\n }\r\n\r\n private patchActualValue() {\r\n const timeoutPatch = 500;\r\n setTimeout(() => {\r\n this.actualValue = this.formGroup.value;\r\n this.formGroup.patchValue(this.actualValue);\r\n }, timeoutPatch);\r\n }\r\n\r\n canSave() {\r\n if (!this.agenda || !this.agenda.id || !this.isFormModified) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onSave(start?: boolean) {\r\n\r\n if (this.formGroup.invalid) {\r\n this.validateAllFormFields(this.formGroup);\r\n return;\r\n }\r\n this.isFormModified = false;\r\n\r\n const scheduling = this.schedulingVisitors.scheduling;\r\n\r\n scheduling.idYMS = this.agenda.id;\r\n scheduling.description = this.formGroup.controls['motivoVisita'].value;\r\n\r\n scheduling.expectedStartDate = new Date();\r\n\r\n const dataSaida: Date = this.formGroup.controls['dataSaida'].value;\r\n const horaSaida: Date = this.formGroup.controls['horaSaida'].value;\r\n scheduling.expectedEndDate = this.getDate(dataSaida, horaSaida);\r\n\r\n const portaria = this.formGroup.controls['portaria'].value;\r\n if (portaria) {\r\n scheduling.lobbyIdSAM = portaria.id;\r\n }\r\n\r\n this.loading = true;\r\n this.schedulingService\r\n .saveScheduling(this.schedulingVisitors)\r\n .pipe(\r\n takeUntil(this.ngUnsubscribe),\r\n mergeMap((res: SchedulingVisitors) => {\r\n this.schedulingVisitors = res;\r\n if (start) {\r\n return this.schedulingService.startScheduling(\r\n this.schedulingVisitors.scheduling.idYMS\r\n );\r\n }\r\n this.loading = false;\r\n return NEVER;\r\n }),\r\n finalize(() => (this.loading = false))\r\n )\r\n .subscribe((success: any) => {\r\n if (success && this.saveAndInitButton) {\r\n this.saveAndInitButton.click();\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n private validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach((field) => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n } else {\r\n // nada a fazer\r\n }\r\n \r\n });\r\n }\r\n\r\n private getDate(data: Date, hora: Date): Date {\r\n return new Date(\r\n data.getFullYear(),\r\n data.getMonth(),\r\n data.getDate(),\r\n hora.getHours(),\r\n hora.getMinutes()\r\n );\r\n }\r\n\r\n reset() {\r\n this.formGroup.patchValue({ ...this.actualValue });\r\n }\r\n\r\n private createForm() {\r\n this.formGroup = this.fb.group({\r\n motivoVisita: [undefined, Validators.compose([Validators.required])],\r\n portaria: [undefined, Validators.compose([Validators.required])],\r\n dataSaida: [undefined, Validators.compose([Validators.required])],\r\n horaSaida: [undefined, Validators.compose([Validators.required])],\r\n });\r\n }\r\n\r\n private getLobbyFields() {\r\n return [\r\n new FormField({\r\n name: \"name\",\r\n type: FieldType.String,\r\n label: this.translate.instant(\"yms.patio.sam_portaria_descricao\"),\r\n }),\r\n ];\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\nimport {\n IntegrationDispatcher,\n IntegrationModule,\n} from \"@seniorsistemas/yms-routines\";\nimport { FocusService } from \"../utils/focus.service\";\nimport { FieldCustomizationService } from \"../utils/field-customization.service\";\nimport { VisitedInfoComponent } from \"./components/visited-info/visited-info.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { VisitanteComponent } from \"./components/visitor-edit/visitor-edit-list/visitor-edit-list.component\";\nimport { FormSamComponent } from \"./form/form-sam.component\";\nimport { CardModule, SharedModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { SharedModule as PrimeSharedModule } from \"primeng/shared\";\nimport { ButtonModule as PrimeButtonModule } from \"primeng/button\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { EmptyStateModule, LocaleModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { NumberInputModule, TokenListModule, ButtonModule } from \"@seniorsistemas/angular-components\";\nimport { ControlErrorsModule, CustomFieldsModule, DynamicFormModule } from \"@seniorsistemas/angular-components\";\nimport { SchedulingComponent } from \"./components/scheduling/scheduling.component\";\nimport { CalendarModule, ConfirmDialogModule, DialogModule, DropdownModule, InputTextModule, PanelModule, TabViewModule } from \"primeng/primeng\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { CredencialFormComponent } from \"./components/credencial-form/credencial-form.component\";\nimport { VisitanteFormComponent } from \"./components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component\";\n\n@NgModule({\n declarations: [ FormSamComponent, VisitedInfoComponent, SchedulingComponent, VisitanteComponent, VisitanteFormComponent, CredencialFormComponent],\n entryComponents: [ FormSamComponent, VisitedInfoComponent, SchedulingComponent, VisitanteComponent, VisitanteFormComponent, CredencialFormComponent],\n exports: [ FormSamComponent, VisitedInfoComponent, SchedulingComponent],\n imports: [ IntegrationModule,\n CommonModule,\n TranslateModule,\n FormsModule,\n ButtonModule,\n SharedModule,\n CardModule,\n PrimeButtonModule, \n ReactiveFormsModule,\n PrimeSharedModule,\n CustomFieldsModule,\n ControlErrorsModule,\n DialogModule,\n EmptyStateModule,\n DynamicFormModule,\n TokenListModule,\n PanelModule,\n InputTextModule,\n DropdownModule,\n ButtonModule,\n LoadingStateModule,\n NumberInputModule,\n ConfirmDialogModule,\n LocaleModule,\n PermissionsModule,\n DynamicDialogModule,\n TableModule,\n TabViewModule,\n CalendarModule,\n ],\n providers: [ \n FieldCustomizationService, \n FocusService\n ]\n})\nexport class SamSeniorModule {\n private readonly _dispatcher: IntegrationDispatcher;\n\n constructor(private readonly dispatcher: IntegrationDispatcher) {\n this._dispatcher = dispatcher;\n this._dispatcher.dispatch(FormSamComponent);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from \"@angular/common/http\";\nimport { Service } from \"../../../service\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n\n\n@Injectable({providedIn: 'root'})\nexport class VisitorListService extends Service {\n readonly domainService: String = \"yms_int/sam\";\n\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n public findVisitors(agendaIdYMS: string) {\n return this.http.post(`yms_int/sam/queries/findVisitorsBySchedulingIdYMS`, { agendaIdYMS: agendaIdYMS });\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { VisitorListService } from \"./visitor-list.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\n\n\n@ControleCircuito({\n header: 'Ronda',\n name: 'yms.integracao.sam'\n})\n@ControleOperacao({\n header: 'Ronda',\n name: 'yms.integracao.sam'\n})\n\nclass VisitorListDescritor {}\n\n@Component({\n selector: \"visitor-list-component\",\n templateUrl: \"./visitor-list.component.html\",\n})\nexport class VisitorListComponent extends VisitorListDescritor implements OnInit {\n @Input() agenda: any;\n\n private readonly visitorService: VisitorListService;\n\n visitors: any[];\n\n private readonly ngUnsubscribe = new Subject();\n\n constructor(private readonly service: VisitorListService) {\n super();\n this.visitorService = service;\n }\n\n ngOnInit() {\n // nada por enquanto\n }\n\n ngAfterContentInit() {\n this.visitorService\n .findVisitors(this.agenda.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (response.visitors.length) {\n this.visitors = response.visitors;\n }\n });\n }\n\n credentialResume(credentials: any) {\n let label = \"\";\n for (const item of credentials) {\n if (item.cardNumber) {\n label = label + item.cardNumber;\n } else {\n label = label + \" - \";\n }\n }\n return label;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableModule } from \"primeng/table\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { MessageModule } from \"primeng/message\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { VisitorListComponent } from \"./visitor-list/visitor-list.component\";\nimport { VisitorListService } from \"./visitor-list/visitor-list.service\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n CommonModule,\n TableModule,\n MessageModule,\n TranslateModule,\n LoadingStateModule, \n ],\n declarations: [VisitorListComponent],\n entryComponents: [VisitorListComponent],\n exports: [VisitorListComponent],\n providers: [\n VisitorListService \n ]\n})\nexport class VisitorListModule {\n constructor(private readonly dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(VisitorListComponent);\n }\n}","import { HttpParams, HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { SortMeta } from \"primeng/components/common/api\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nexport class EntityService<T> {\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected actionsUrl: string\n ) {\n this.http = http;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\n this.actionsUrl = actionsUrl;\n\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n\n return params;\n }\n\n private getBodyParams(listParams: ListParams): BodyParams {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n const bodyParams: BodyParams = {};\n\n bodyParams.size = size;\n bodyParams.offset = page;\n\n if (sort && sort.length) {\n bodyParams.orderBy = sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \");\n }\n\n if (filterQuery) bodyParams.filter = filterQuery;\n\n if (displayFields && displayFields.length) bodyParams.displayfields = displayFields.join();\n\n return bodyParams;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n\n public list(listParams: ListParams) {\n return this.http.get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public get(id: any) {\n return this.http.get<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public insert(entity: T) {\n return this.http.post<T>(`${this.entityUrl}`, entity).pipe(this.defaultCatch());\n }\n\n public update(id: any, entity: T) {\n return this.http.put<T>(`${this.entityUrl}/${id}`, entity).pipe(this.defaultCatch());\n }\n\n public delete(id: any) {\n return this.http.delete<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public listCustomFilter(listParams: ListParams, action: string) {\n return this.http.post<T[]>(`${this.actionsUrl}/${action}`, this.getBodyParams(listParams)).pipe(this.defaultCatch());\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const ERP_ENVIRONMENT = new InjectionToken('integration_environment');","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n\nimport { AgendaDto } from \"./agenda-dto\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { ErpProcessData } from \"../../erp-process-data/erp-process-data\";\n\n@Injectable()\nexport class AgendaService extends EntityService<AgendaDto> {\n private readonly _agendaUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService, \n @Inject(ERP_ENVIRONMENT) environment: any ) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/agenda`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this._agendaUrl = `${environment.project.domain}/patio`;\n }\n\n public atualizarAgenda(agenda: any) {\n return this.http.post(`${this._agendaUrl}/actions/atualizarAgenda`, {agenda}).pipe(this.defaultCatch());\n }\n\n public retornaModelosValidacao(tipoAgendamentoId: string) {\n return this.http.post(`yms/agenda/queries/retornaModelosDeValidacao`, {tipoAgendamentoId}).pipe(this.defaultCatch());\n }\n\n public checarRevalidacao(erpProcessData: ErpProcessData) {\n return this.http.post(`yms/agenda/actions/checarRevalidacao`, erpProcessData).pipe(this.defaultCatch());\n }\n\n public listExternalAgenda(listParams: ListParams) {\n return this.http\n .get<AgendaDto>(\"yms/agenda/entities/agenda\", {\n params: this.getListQueryParams(listParams),\n })\n .pipe(this.defaultCatch());\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RecebimentoContratoDto, ContratoRecebimento, ContratoRecebimentoItem } from \"./recebimento-dto\";\nimport { RecebimentoContrato } from \"./recebimento\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RecebimentoContratoService extends EntityService<RecebimentoContratoDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/recebimentoContrato`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComRecebimento(payload: RegistrarChegadaVeiculoComRecebimentoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComRecebimento`, payload).pipe(this.defaultCatch());\n } \n\n public insertContratoRecebimento(recebimentoId: string, contratoRecebimento: ContratoRecebimento) {\n return this.http.post(`${this.entityUrl}/recebimento/${recebimentoId}/contratos`, contratoRecebimento).pipe(this.defaultCatch());\n }\n\n public insertContratoRecebimentoItem(contratoRecebimentoId: string, contratoRecebimentoItem: ContratoRecebimentoItem) {\n return this.http.post(`${this.entityUrl}/contratoRecebimento/${contratoRecebimentoId}/itens`, contratoRecebimentoItem).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComRecebimentoPayload {\n recebimento: RecebimentoContrato,\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { RecebimentoContrato } from \"../core/entities/recebimento-contrato/recebimento\";\nimport { RecebimentoContratoService } from \"../core/entities/recebimento-contrato/recebimento.service\";\n\n@Injectable()\nexport class RecebimentoChegadaVeiculoOverride {\n private readonly RECEBIMENTO_KEY = \"ERP_SENIOR_RECEBIMENTO\"\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private recebimentoService: RecebimentoContratoService) {\n }\n\n public initialize() {\n this.override.addOverride(this.RECEBIMENTO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.RECEBIMENTO_KEY);\n } \n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.recebimentoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({contents}) => contents.length ? contents[0] : null),\n mergeMap((recebimento: RecebimentoContrato) => {\n if (!recebimento) return throwError(\"Os dados da guia ERP Senior não foram informados\");\n\n return this.recebimentoService.registrarChegadaVeiculoComRecebimento({\n recebimento: recebimento,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n })\n })\n )\n }\n}","import { Injectable, Inject } from \"@angular/core\";\nimport { EntityService } from \"../entity-service\";\nimport { ExpedicaoDto } from \"./expedicao-dto\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { Expedicao } from \"./expedicao\";\n\n@Injectable()\nexport class ExpedicaoService extends EntityService<ExpedicaoDto> {\n\n private readonly _baseUrl: string;\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) environment: any) {\n super(http, \n messageService, \n `${environment.project.domain}/${environment.project.service}/entities/expedicao`, \n `${environment.project.domain}/${environment.project.service}/actions`);\n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComExpedicao(payload: RegistrarChegadaVeiculoComExpedicaoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComExpedicao`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComExpedicaoPayload {\n expedicao: Expedicao;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial?: string;\n}","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { Expedicao } from \"../core/entities/expedicao/expedicao\";\nimport { ExpedicaoService } from \"../core/entities/expedicao/expedicao.service\";\n\n@Injectable()\nexport class ExpedicaoChegadaVeiculoOverride {\n private readonly EXPEDICAO_KEY = \"ERP_SENIOR_EXPEDICAO\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private expedicaoService: ExpedicaoService\n ){}\n\n public initialize() {\n this.override.addOverride(this.EXPEDICAO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.EXPEDICAO_KEY);\n }\n\n private functionToOverride(params: OverrideParams){\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.expedicaoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((expedicao: Expedicao) => {\n if (!expedicao) return throwError(\"Não foi possÃvel encontrar os dados de expedição\");\n\n return this.expedicaoService.registrarChegadaVeiculoComExpedicao({\n expedicao,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { catchError } from \"rxjs/operators\";\nimport { MessageService } from \"primeng/api\";\nimport { throwError } from \"rxjs\";\n\n@Injectable()\nexport class IntegrationService {\n private readonly baseUrl: string = `yms/integration/`;\n constructor(private http: HttpClient, private messageService: MessageService) { }\n\n getProcessConfigurationErp(idTipoAgendamento: string) {\n return this.http.get(`${this.baseUrl}queries/getErpProcessConfigurationByTipoAgendamento`, { params: { idTipoAgendamento } }).pipe(this.defaultCatch());\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { Agendamento, ChegadaVeiculo, IntegrationEventsCallback } from \"@seniorsistemas/yms-routines\";\nimport { takeUntil, mergeMap, finalize } from \"rxjs/operators\";\nimport { Agenda } from \"../core/entities/agenda/agenda\";\nimport { Subject, empty } from \"rxjs\";\nimport { IntegrationService } from \"../core/integration.service\";\n\nexport const ERP_SENIOR_HEADER = \"ERP Senior\";\n\n@Agendamento({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ChegadaVeiculo({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox',\n icon: 'fal fa-book'\n})\nexport class FormDescritor { }\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-form *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-form>\n <expedicao-form *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-form>\n <devolucao-form *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-form>\n <recebimento-ordem-compra-form *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-form>\n <processo-avulso-form *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-form>\n <div *ngSwitchDefault>\n <s-loading-state [loading]=\"loading\">\n <h3 *ngIf=\"!loading\" style=\"text-align: center;\">\n ATENÃÃO, não existe Tipo de Processo configurado para esse tipo de agendamento.\n </h3>\n <h3 *ngIf=\"loading\" style=\"text-align: center;\"> Carregando configurações </h3>\n </s-loading-state>\n </div>\n </div>\n </div>\n `\n})\nexport class FormComponent extends FormDescritor implements OnInit, OnDestroy {\n header: string = ERP_SENIOR_HEADER;\n agenda: Agenda;\n tipoProcessoErpAtual: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<void> = new Subject();\n constructor(private integrationCallback: IntegrationEventsCallback, private integrationService: IntegrationService) { \n super();\n }\n\n ngOnInit() {\n this.integrationCallback.onAgendamentoSaved()\n .pipe(\n takeUntil(this.unsubscribe$),\n mergeMap(agenda => {\n this.agenda = agenda;\n this.loading = true;\n if (!!this.agenda) {\n return this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id).pipe(finalize(() => this.loading = false))\n }\n return empty();\n })\n )\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n\n ngOnChanges() {\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { CircuitoFinalizado, ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { IntegrationService } from \"../core/integration.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nconst HEADER = 'Informações fiscais';\n\n@ControleCircuito({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ControleOperacao({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@CircuitoFinalizado({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\nexport class InfoDescritor {\n\n}\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-info *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-info>\n <expedicao-info *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-info>\n <devolucao-info *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-info> \n <recebimento-ordem-compra-info *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-info>\n <processo-avulso-info *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-info>\n </div>\n </div>\n `,\n})\nexport class InfoComponent extends InfoDescritor implements OnInit, OnDestroy {\n @Input() agenda: any;\n\n tipoProcessoErpAtual: string;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private integrationService: IntegrationService\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngOnInit(): void {\n this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n}","import { MessageService } from 'primeng/components/common/messageservice';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Injectable } from '@angular/core';\nimport { PesquisarDocumentoResponse } from '../nota-validator.service';\n@Injectable()\nexport class VerificaNotafiscal{\n constructor (\n private messageService: MessageService,\n private translate: TranslateService \n ) {}\n\n public verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal: any, contratos: any, fornecedorNotasTokens: any) {\n if (chaveNotaFiscal == \"\") {\n return false;\n }\n \n let notaFicalDuplicadas = fornecedorNotasTokens.filter(nota => {\n return nota.id == chaveNotaFiscal;\n });\n\n if (typeof contratos !== \"undefined\" && notaFicalDuplicadas.length <= 0) {\n contratos = contratos.value;\n \n if (contratos.length > 0) {\n notaFicalDuplicadas = contratos.filter(contrato => {\n if (contrato.notas.length <= 0) {\n return false;\n }\n let result = contrato.notas.filter(nota => {\n return nota.chaveNotaFiscal == chaveNotaFiscal;\n })\n return result.length > 0;\n });\n }\n }\n\n if (notaFicalDuplicadas.length > 0){\n this.messageService.add({\n severity: \"error\",\n summary: this.translate.instant(\"yms.integration.titulo_nota_fical_ja_exite\"),\n detail: this.translate.instant(\"yms.integration.conteudo_nota_fical_ja_exite\"),\n });\n\n return true;\n }\n return false;\n }\n\n public findDuplicateFornecedores(response: PesquisarDocumentoResponse) {\n const arrNotas = response.documentos.map(d => d.numero);\n const toFindDuplicates = arry => arry.filter((item, index) => arrNotas.indexOf(item) !== index)\n if (toFindDuplicates(arrNotas).length > 0 ) {\n return response.documentos.map(d => d.fornecedor.codigo).join(\" \");\n }\n return null;\n }\n\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { OrdemCompraDto } from \"./ordem-compra-dto\";\n\n@Injectable()\nexport class OrdemCompraService extends EntityService<OrdemCompraDto> {\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/ordemCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n }\n\n public listOrdensCompra(params: PesquisaOrdensCompraParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarOrdensCompra`, params).pipe(this.defaultCatch());\n }\n}\n\nexport interface PesquisaOrdensCompraParams {\n pessoaId?: string;\n codigo?: number;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n }\n}\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EmpresaDto } from \"./empresa-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Empresa {\n public id?: string;\n public codigo: string;\n public nome: string;\n public fantasia?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(empresaDto: EmpresaDto, originEntity?: string): Empresa {\n const model: any = { ...empresaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"nome\",\n \"fantasia\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n return model as Empresa;\n }\n\n public static toDto(empresa: Empresa, originEntity?: string): EmpresaDto {\n const dto: any = { ...empresa };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\"; const moment = _moment;\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaDto } from \"./pessoa-dto\";\nimport { SituacaoPessoa } from \"../../enums/situacao-pessoa\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\nimport { TipoParticipanteTransgenia } from \"../../enums/tipo-participante-transgenia\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Pessoa {\n public id?: string;\n public codigo: number;\n public nome: string;\n public cpfCnpj: string;\n public nomeFantasia: string;\n public label?: string;\n public site?: string;\n public situacao?: SituacaoPessoa;\n public cliente?: boolean;\n public fornecedor?: boolean;\n public representante?: boolean;\n public createdBy?: string;\n public createdDate?: Date;\n public tipoParticipante?: TipoParticipanteTransgenia;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(pessoaDto: PessoaDto, originEntity?: string): Pessoa {\n const model: any = { ...pessoaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"nome\",\n \"cpfCnpj\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n return model as Pessoa;\n }\n\n public static toDto(pessoa: Pessoa, originEntity?: string): PessoaDto {\n const dto: any = { ...pessoa };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaJuridicaDto } from \"./pessoa-juridica-dto\";\nimport { Pessoa } from \"../pessoa/pessoa\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class PessoaJuridica {\n public id?: string;\n public pessoa: Pessoa;\n public cnpj: string;\n public nomeFantasia?: string;\n public inscricaoEstadual?: string;\n public inscricaoMunicipal?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(pessoaJuridicaDto: PessoaJuridicaDto, originEntity?: string): PessoaJuridica {\n const model: any = { ...pessoaJuridicaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"pessoa.codigo\",\n \"pessoa.nome\",\n \"pessoa.site\",\n \"pessoa.situacao\",\n \"pessoa.cliente\",\n \"pessoa.fornecedor\",\n \"pessoa.representante\",\n \"cnpj\",\n \"nomeFantasia\",\n \"inscricaoEstadual\",\n \"inscricaoMunicipal\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.pessoa) model.pessoa = Pessoa.fromDto(model.pessoa, \"PessoaJuridica\");\n\n return model as PessoaJuridica;\n }\n\n public static toDto(pessoaJuridica: PessoaJuridica, originEntity?: string): PessoaJuridicaDto {\n const dto: any = { ...pessoaJuridica };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.pessoa) dto.pessoa = Pessoa.toDto(dto.pessoa, \"PessoaJuridica\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PaisDto } from \"./pais-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Pais {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(paisDto: PaisDto, originEntity?: string): Pais {\n const model: any = { ...paisDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"id\", \"codigo\", \"descricao\", \"createdBy\", \"createdDate\", \"lastModifiedBy\", \"lastModifiedDate\"];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n return model as Pais;\n }\n\n public static toDto(pais: Pais, originEntity?: string): PaisDto {\n const dto: any = { ...pais };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EstadoDto } from \"./estado-dto\";\nimport { Pais } from \"../pais/pais\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Estado {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public abreviatura: string;\n public pais: Pais;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(estadoDto: EstadoDto, originEntity?: string): Estado {\n const model: any = { ...estadoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"codigo\",\n \"descricao\",\n \"abreviatura\",\n \"pais.id\",\n \"pais.codigo\",\n \"pais.descricao\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pais\" && model.pais) model.pais = Pais.fromDto(model.pais, \"Estado\");\n\n return model as Estado;\n }\n\n public static toDto(estado: Estado, originEntity?: string): EstadoDto {\n const dto: any = { ...estado };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pais\" && dto.pais) dto.pais = Pais.toDto(dto.pais, \"Estado\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { CidadeDto } from \"./cidade-dto\";\nimport { Estado } from \"../estado/estado\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Cidade {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public estado: Estado;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(cidadeDto: CidadeDto, originEntity?: string): Cidade {\n const model: any = { ...cidadeDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"codigo\",\n \"descricao\",\n \"estado.id\",\n \"estado.codigo\",\n \"estado.descricao\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Estado\" && model.estado) model.estado = Estado.fromDto(model.estado, \"Cidade\");\n\n return model as Cidade;\n }\n\n public static toDto(cidade: Cidade, originEntity?: string): CidadeDto {\n const dto: any = { ...cidade };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Estado\" && dto.estado) dto.estado = Estado.toDto(dto.estado, \"Cidade\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\nimport { PessoaEnderecoDto } from \"./pessoa-endereco-dto\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Cidade } from \"../cidade/cidade\";\nimport { SituacaoEnderecoPessoa } from \"../../enums/situacao-endereco-pessoa\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n\nexport class PessoaEndereco {\n public id?: string;\n public codigo: number;\n public pessoa: Pessoa;\n public cep: string;\n public endereco: string;\n public numero?: string;\n public complemento?: string;\n public cidade?: Cidade;\n public telefone?: string;\n public bairro?: string;\n public situacao: SituacaoEnderecoPessoa;\n public padrao?: boolean;\n public origem?: boolean;\n public cobranca?: boolean;\n public entrega?: boolean;\n public inscricaoEstadual?: string;\n public cnpjCpf?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n public static fromDto(pessoaEnderecoDto: PessoaEnderecoDto, originEntity?: string): PessoaEndereco {\n const model: any = { ...pessoaEnderecoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n // \"cep\",\n \"endereco\",\n // \"numero\",\n // \"bairro\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.pessoa) model.pessoa = Pessoa.fromDto(model.pessoa, \"PessoaEndereco\");\n if (originEntity !== \"Cidade\" && model.cidade) model.cidade = Cidade.fromDto(model.cidade, \"PessoaEndereco\");\n\n return model as PessoaEndereco;\n }\n\n public static toDto(pessoaEndereco: PessoaEndereco, originEntity?: string): PessoaEnderecoDto {\n const dto: any = { ...pessoaEndereco };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.pessoa) dto.pessoa = Pessoa.toDto(dto.pessoa, \"PessoaEndereco\");\n if (originEntity !== \"Cidade\" && dto.cidade) dto.cidade = Cidade.toDto(dto.cidade, \"PessoaEndereco\");\n\n return dto;\n }\n}\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FilialDto } from \"./filial-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { PessoaJuridica } from \"../pessoa-juridica/pessoa-juridica\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Filial {\n public id?: string;\n public codigo: number;\n public nome: string;\n public empresa: Empresa;\n public pessoaJuridica?: PessoaJuridica;\n public endereco?: PessoaEndereco;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(filialDto: FilialDto, originEntity?: string): Filial {\n const model: any = { ...filialDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"nome\",\n \"empresa.nome\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Filial\");\n if (originEntity !== \"PessoaJuridica\" && model.pessoaJuridica)\n model.pessoaJuridica = PessoaJuridica.fromDto(model.pessoaJuridica, \"Filial\");\n if (originEntity !== \"PessoaEndereco\" && model.endereco) model.endereco = PessoaEndereco.fromDto(model.endereco, \"Filial\");\n\n return model as Filial;\n }\n\n public static toDto(filial: Filial, originEntity?: string): FilialDto {\n const dto: any = { ...filial };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Filial\");\n if (originEntity !== \"PessoaJuridica\" && dto.pessoaJuridica)\n dto.pessoaJuridica = PessoaJuridica.toDto(dto.pessoaJuridica, \"Filial\");\n if (originEntity !== \"PessoaEndereco\" && dto.endereco) dto.endereco = PessoaEndereco.toDto(dto.endereco, \"Filial\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Empresa } from \"../empresa/empresa\"\nimport { Filial } from \"../filial/filial\"\nimport * as _moment from \"moment\";import { OrdemCompraDto } from \"./ordem-compra-dto\";\nconst moment = _moment\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\nimport { Pessoa } from \"../pessoa/pessoa\";\n\nexport class OrdemCompra {\n public id: string;\n public codigo: number;\n public empresa: Empresa;\n public filial: Filial;\n public pessoa: Pessoa;\n\n public static fromDto(ordemCompraDto: OrdemCompraDto, originEntity?: string): OrdemCompra {\n const model: any = { ...ordemCompraDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n \"tipo\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Produto\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"Produto\");\n \n return model as OrdemCompra;\n }\n\n public static toDto(ordemCompra: OrdemCompra, originEntity?: string): OrdemCompraDto {\n const dto: any = { ...ordemCompra };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Produto\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Produto\"); \n\n return dto;\n }\n}\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { FormGroup, FormBuilder, FormArray, Validators, FormControl } from \"@angular/forms\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { FormField, FieldType } from \"@seniorsistemas/angular-components\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from 'rxjs';\nimport * as _moment from \"moment\";\nimport { OrdemCompraService } from \"../../core/entities/ordem-compra/ordem-compra.service\";\nimport { Pessoa } from './../../core/entities/pessoa/pessoa';\nimport { Filial } from './../../core/entities/filial/filial';\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { OrdemCompra } from \"../../core/entities/ordem-compra/ordem-compra\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { takeUntil } from \"rxjs/operators\";\nconst moment = _moment;\n\n@Component({\n templateUrl: './ordem-compra-form.component.html'\n})\nexport class OrdemCompraFormComponent implements OnInit, OnDestroy {\n public formGroup: FormGroup;\n\n public ordemCompraSearchFields: FormField[];\n public ordemCompraSearchGridFields: FormField[];\n public ordemCompraSearchGridData: OrdemCompra[];\n public ordemCompraLookupDisplayFields = [\"codigo\", \"empresa.nome\"];\n public ordemCompraAdvancedDisplayFields = [\"id\", \"codigo\", \"empresa.nome\", \"filial.nome\", \"pessoa.nome\"];\n public ordemCompraLookupSeparator = \" - \";\n public ordemCompraLookupSuggestions: OrdemCompra[];\n public ordemCompraSearchTotalRecords: number;\n public permissions: any = {};\n\n private readonly ngUnsubscribe = new Subject<void>();\n private agenda: Agenda;\n private filial: Filial;\n private fornecedor: Pessoa;\n private ordensCompra: string[];\n\n constructor (\n private dialogRef: DynamicDialogRef,\n private dialogConfig: DynamicDialogConfig,\n private ordemCompraService: OrdemCompraService,\n private translate: TranslateService,\n private readonly fb: FormBuilder,\n private readonly route: ActivatedRoute,\n ) { }\n \n ngOnInit(): void {\n const { data } = this.dialogConfig;\n this.agenda = data.agenda;\n this.filial = data.filial;\n this.fornecedor = data.fornecedor;\n this.ordensCompra = data.ordens.map(({ ordemCompra: ordemCompra }: any) => !!ordemCompra ? ordemCompra.id : undefined).filter((val: any) => !!val);\n\n this.formGroup = this.getForm();\n\n this.ordemCompraSearchFields = this.getOrdemCompraFields();\n this.ordemCompraSearchGridFields = this.getOrdemCompraGridFields();\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((dataChanges: any) => this.onRouteDataChange(dataChanges));\n }\n\n public onRouteDataChange(dataChanges: any) {\n this.permissions = dataChanges.allPermissions.agenda;\n }\n \n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onOrdemCompraLookupRequest(value: string) {\n const sort = this.ordemCompraLookupDisplayFields.map((field: any) => ({ field, order: 'Asc' }))[0];\n\n const filter: any = {\n numero: +value.replace(/\\D/g, \"\")\n };\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n this.ordemCompraService\n .listOrdensCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n ordensCompraSelecionados: this.ordensCompra,\n pagina: {\n limit: 30,\n offset: 0,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.ordemCompraLookupSuggestions = list.contents.map(OrdemCompra.fromDto);\n });\n }\n\n public onOrdemCompraSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const filter = this.getOrdemCompraFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, b: any) => {\n return {\n ...a,\n [b.name]: filterData[b.name]\n };\n }, {} as any);\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n filter.dataEmissao = filter.dataEmissao && moment(filter.dataEmissao).format(\"YYYY-MM-DD\");\n const sort = (multiSortMeta || []).length ? { field: multiSortMeta[0].field, order: multiSortMeta[0].order === 1 ? 'Asc' : 'Desc' } : { field: 'numero', order: 'Asc' };\n\n this.ordemCompraService\n .listOrdensCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n ordensCompraSelecionados: this.ordensCompra,\n pagina: {\n limit: rows,\n offset: page,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.ordemCompraSearchGridData = list.contents.map(OrdemCompra.fromDto);\n this.ordemCompraSearchTotalRecords = list.totalElements;\n });\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy = sort && sort.length \n ? sort.map((s: any) => ({ campo: s.field, ordenacao: s.order === 1 ? 'Asc' : 'Desc' })) \n : [];\n\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy\n }\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n }\n else if (control instanceof FormGroup){\n this.validateAllFormFields(control);\n } \n else if (control instanceof FormArray) {\n control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n }\n });\n }\n\n public save() {\n if (!this.formGroup.valid) {\n return this.validateAllFormFields(this.formGroup);\n }\n this.close(this.formGroup.get('ordemCompra').value);\n }\n\n public close(data?: any) {\n this.dialogRef.close(data);\n }\n\n private getForm() {\n return this.fb.group({\n ordemCompra: [undefined, Validators.required]\n });\n }\n\n private getOrdemCompraFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n ];\n }\n\n private getOrdemCompraGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n ];\n }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { DerivacaoDto } from \"./entities/derivacao/derivacao-dto\";\nimport { PessoaEnderecoDto } from \"./entities/pessoa-endereco/pessoa-endereco-dto\";\nimport { PessoaDto } from \"./entities/pessoa/pessoa-dto\";\nimport { ProdutoDto } from \"./entities/produto/produto-dto\";\nimport { ERP_ENVIRONMENT } from \"./injectors\";\n\n@Injectable()\nexport class NotaValidatorService {\n private readonly baseUrl: string;\n constructor(@Inject(ERP_ENVIRONMENT) environment: any, private http: HttpClient, private messageService: MessageService) {\n this.baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n pesquisarDocumento(payload: PesquisarDocumentoRequest): Observable<PesquisarDocumentoResponse> {\n return this.http.post<PesquisarDocumentoResponse>(`${this.baseUrl}/queries/pesquisarDocumento`, payload).pipe<PesquisarDocumentoResponse>(this.defaultCatch() as any);\n }\n\n pesquisarDocumentoValidaNotaEmUso(payload: PesquisarDocumentoRequest): Observable<PesquisarDocumentoResponse> {\n return this.http.post<PesquisarDocumentoResponse>(`${this.baseUrl}/queries/pesquisarDocumentoValidaNotaEmUso`, payload).pipe<PesquisarDocumentoResponse>(this.defaultCatch() as any);\n }\n\n pesquisarDocumentoGenerico(payload: PesquisarDocumentoRequest): Observable<PesquisarDocumentoResponse> {\n return this.http.post<PesquisarDocumentoResponse>(`yms/integration/queries/pesquisarDocumentoGenerico`, payload).pipe<PesquisarDocumentoResponse>(this.defaultCatch() as any);\n }\n\n executarAuditoria(payload: ExecutarAuditoriaRequest): Observable<ExecutarAuditoriaResponse> {\n return this.http.post<ExecutarAuditoriaResponse>(`${this.baseUrl}/actions/executarAuditoria`, payload).pipe<ExecutarAuditoriaResponse>(this.defaultCatch() as any);\n }\n\n private defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}\n\nexport interface PesquisarDocumentoRequest {\n filialId?: string;\n chaveDocumento: string;\n}\n\nexport interface PesquisarDocumentoResponse {\n documentos: {\n serie: string;\n serieLegal: string;\n numero: number;\n fornecedor: PessoaDto;\n origemMercadoria: PessoaEnderecoDto;\n itens: ItemDocumento[];\n }[]\n}\n\nexport interface ItemDocumento {\n produto: ProdutoDto;\n derivacao: DerivacaoDto;\n quantidade: number;\n}\n\nexport interface ExecutarAuditoriaRequest {\n chaveNota: string;\n fornecedor?: string;\n filial?: number;\n numeroContrato?: number;\n sequenciaContrato?: number;\n sequenciaOrigem?: number;\n}\n\nexport interface ExecutarAuditoriaResponse {\n situacao: 'APROVADO' | 'REPROVADO',\n mensagem: string;\n}","import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn } from \"@angular/forms\";\nimport { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { finalize, takeUntil } from \"rxjs/operators\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { NotaValidatorService, PesquisarDocumentoResponse } from \"../../core/nota-validator.service\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { TranslateService } from \"@ngx-translate/core\";\n@Component({\n templateUrl: './nota-form.component.html',\n providers: [ ConfirmationService ]\n})\n\nexport class NotaFormComponent implements OnInit, OnDestroy {\n formGroup: FormGroup;\n loading = false;\n\n private filialId: string;\n private fornecedor: Pessoa;\n private produto: Produto;\n private fornecedorNotasTokens: any;\n private contratos: any;\n botaoDesabilitado = false;\n \n private readonly unsubscribe$ = new Subject<void>();\n constructor(\n fb: FormBuilder,\n private notaValidatorService: NotaValidatorService,\n private dialogConfig: DynamicDialogConfig,\n private confirmationService: ConfirmationService,\n private dialogRef: DynamicDialogRef,\n private verificaNotaFiscal: VerificaNotafiscal,\n private messageService: MessageService,\n private translate: TranslateService,\n\n ) {\n this.formGroup = fb.group({\n chaveNotaFiscal: [ undefined ],\n serieNotaFiscal: [ undefined ],\n serieLegalNotaFiscal: [ undefined ],\n numeroNotaFiscal: [ undefined ],\n }, { validators: this.camposPreenchidosValidation });\n }\n\n ngOnInit() {\n this.filialId = this.dialogConfig.data.filial.id;\n this.fornecedor = this.dialogConfig.data.fornecedor;\n this.produto = this.dialogConfig.data.produto;\n this.fornecedorNotasTokens = this.dialogConfig.data.fornecedorNotasTokens;\n this.contratos = this.dialogConfig.data.contratos;\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n save() {\n const chaveNotaFiscal = this.formGroup.get(\"chaveNotaFiscal\").value;\n\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal, this.contratos, this.fornecedorNotasTokens)) {\n return;\n }\n\n if (!chaveNotaFiscal) {\n this.removeErrorChaveNota();\n }\n\n if (!this.formGroup.valid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.habilitaCamposNotaFiscal();\n\n this.close(this.formGroup.value);\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n\n onBlurNotaFiscal() {\n const chaveNotaFiscal = this.formGroup.get(\"chaveNotaFiscal\").value;\n\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal, this.contratos, this.fornecedorNotasTokens)) { \n this.botaoDesabilitado = true;\n return;\n }\n\n this.removeErrorChaveNota();\n this.loading = true;\n\n this.notaValidatorService.pesquisarDocumentoValidaNotaEmUso({\n chaveDocumento: (chaveNotaFiscal || \"\").trim(),\n filialId: this.filialId\n })\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(this.validateNotaFiscal);\n\n this.botaoDesabilitado = false;\n }\n\n private validateNotaFiscal = (response: PesquisarDocumentoResponse) => { \n if (!response || !response.documentos[0]) {\n return;\n }\n \n const value = response.documentos[0];\n\n if (!this.validaProdutoNaNotaFiscal(value.itens)) {\n return;\n }\n\n const notaFiscal = { \n chave: this.formGroup.get(\"chaveNotaFiscal\").value, \n serie: value.serie, \n serieLegal: value.serieLegal, \n numero: value.numero,\n };\n\n if (!this.fornecedor) {\n this.closeAndReturnNota(notaFiscal, value.fornecedor, value.origemMercadoria);\n return;\n }\n\n if (!!(value.fornecedor || {id: undefined}).id && (value.fornecedor.id !== this.fornecedor.id)) {\n this.confirmAndAddNovoFornecedor(notaFiscal, value.fornecedor, value.origemMercadoria);\n return;\n }\n\n this.formGroup.get(\"serieNotaFiscal\").setValue(value.serie);\n this.formGroup.get(\"serieLegalNotaFiscal\").setValue(value.serieLegal);\n this.formGroup.get(\"numeroNotaFiscal\").setValue(value.numero);\n\n this.desabilitaCamposNotaFiscal();\n }\n\n private validaProdutoNaNotaFiscal(produtos){\n if (produtos != null && produtos.length > 0) {\n let produto = produtos[0].produto;\n\n if (!!produto && !!this.produto && (produto.id !== this.produto.id)) {\n this.addErrorIfProdutoIsDifferent();\n return false;\n }\n }\n\n return true;\n }\n \n private confirmAndAddNovoFornecedor(infoNota: { chave: string, serie: string, serieLegal: string, numero: number }, fornecedor: any, origemMercadoria: any) {\n this.confirmationService.confirm({\n header: 'O fornecedor vinculado a nota não é o mesmo que o selecionado',\n message: 'O fornecedor vinculado a nota não é o mesmo que o selecionado. Deseja adicionar um novo fornecedor ou cancelar a operação?',\n acceptLabel: 'Adicionar um novo fornecedor',\n rejectLabel: 'Cancelar operação',\n accept: () => this.closeAndReturnNota(infoNota, fornecedor, origemMercadoria),\n reject: () => this.formGroup.get(\"chaveNotaFiscal\").setValue(undefined)\n });\n }\n\n private addErrorIfProdutoIsDifferent() {\n this.formGroup.get(\"chaveNotaFiscal\").setErrors({ errorChaveNota: true });\n }\n\n private removeErrorChaveNota() {\n this.formGroup.get(\"chaveNotaFiscal\").setErrors(null);\n }\n\n private closeAndReturnNota(infoNota: { chave: string, serie: string, serieLegal: string, numero: number }, fornecedor: any, origemMercadoria: any) {\n this.dialogRef.close({ addFornecedor: true, infoNota, fornecedor, origemMercadoria })\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n \n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this.validateAllFormFields(control);\n }\n });\n\n formGroup.markAsDirty({ onlySelf: true });\n }\n\n private camposPreenchidosValidation: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const chave = control.get(\"chaveNotaFiscal\").value;\n const serie = control.get(\"serieNotaFiscal\").value;\n const numero = control.get(\"numeroNotaFiscal\").value;\n\n return !!chave || !!serie || !!numero ? null : { erroMultiplosCampos: true };\n };\n\n private habilitaCamposNotaFiscal() {\n this.formGroup.get(\"serieNotaFiscal\").enable();\n this.formGroup.get(\"serieLegalNotaFiscal\").enable();\n this.formGroup.get(\"numeroNotaFiscal\").enable();\n }\n\n private desabilitaCamposNotaFiscal() {\n this.formGroup.get(\"serieNotaFiscal\").disable();\n this.formGroup.get(\"serieLegalNotaFiscal\").disable();\n this.formGroup.get(\"numeroNotaFiscal\").disable();\n }\n}","import { NgModule } from \"@angular/core\";\nimport { NotaFormComponent } from \"./nota-form.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { ButtonModule, ControlErrorsModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DynamicDialogModule,\n InputTextModule,\n ButtonModule,\n ControlErrorsModule,\n TranslateModule,\n LoadingStateModule,\n ConfirmDialogModule\n ],\n declarations: [ NotaFormComponent ],\n entryComponents: [ NotaFormComponent ]\n})\nexport class NotaFormModule {\n\n}","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { AgendaService } from \"./agenda.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"agenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/agenda/entities/agenda`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n AgendaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class AgendaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { CidadeDto } from \"./cidade-dto\";\nimport { EntityService } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class CidadeService extends EntityService<CidadeDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/cidade`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { CidadeService } from \"./cidade.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"cidade\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/cidade`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n CidadeService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class CidadeModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { ContratoCompraItemDto } from \"./contrato-compra-item-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class ContratoCompraItemService extends EntityService<ContratoCompraItemDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n protected environment: any;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/contratoCompraItem`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this.environment = environment;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n\n public pesquisarItensContratoCompra(params: any) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarItensContratoCompra`, params).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraItemService } from \"./contrato-compra-item.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"contratoCompraItem\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/contratoCompraItem`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n ContratoCompraItemService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class ContratoCompraItemModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { ContratoCompraItemDto } from \"../contrato-compra-item/contrato-compra-item-dto\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { ContratoCompraDto } from \"./contrato-compra-dto\";\n\n@Injectable()\nexport class ContratoCompraService extends EntityService<ContratoCompraDto> {\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/contratoCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n }\n\n public listContratosCompra(params: PesquisaContratosCompraParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarContratosCompra`, params).pipe(this.defaultCatch());\n }\n\n public getItens(contratoCompraId: any, id: any) {\n return this.http.get<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens/${id}`).pipe(this.defaultCatch());\n }\n\n public updateItens(contratoCompraId: any, id: any, contratoCompraItemDto: ContratoCompraItemDto) {\n return this.http\n .put<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens/${id}`, contratoCompraItemDto)\n .pipe(this.defaultCatch());\n }\n\n public listItens(contratoCompraId: any, listParams: ListParams) {\n return this.http\n .get<ContratoCompraItemDto[]>(`${this.entityUrl}/${contratoCompraId}/itens`, { params: this.getListQueryParams(listParams) })\n .pipe(this.defaultCatch());\n }\n\n public insertItens(contratoCompraId: any, contratoCompraItemDto: ContratoCompraItemDto) {\n return this.http\n .post<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens`, contratoCompraItemDto)\n .pipe(this.defaultCatch());\n }\n\n public deleteItens(contratoCompraId: any, id: any) {\n return this.http.delete<ContratoCompraItemDto>(`${this.entityUrl}/${contratoCompraId}/itens/${id}`).pipe(this.defaultCatch());\n }\n}\n\nexport interface PesquisaContratosCompraParams {\n produtoId?: string;\n pessoaId?: string;\n numero?: number;\n dataEmissao?: Date;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraService } from \"./contrato-compra.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"contratoCompra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/contratoCompra`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n ContratoCompraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class ContratoCompraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { DerivacaoDto } from \"../derivacao/derivacao-dto\";\nimport { EntityService } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class DerivacaoService extends EntityService<DerivacaoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/derivacao`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { DerivacaoService } from \"./derivacao.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"derivacao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/derivacao`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n DerivacaoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class DerivacaoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { EmpresaDto } from \"./empresa-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class EmpresaService extends EntityService<EmpresaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/empresa`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EmpresaService } from \"./empresa.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"empresa\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/empresa`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n EmpresaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class EmpresaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { EstadoDto } from \"./estado-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class EstadoService extends EntityService<EstadoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/estado`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { EstadoService } from \"./estado.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"estado\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/estado`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n EstadoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class EstadoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { FamiliaProdutoDto } from \"./familia-produto-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class FamiliaProdutoService extends EntityService<FamiliaProdutoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/familiaProduto`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FamiliaProdutoService } from \"./familia-produto.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"familiaProduto\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/familiaProduto`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n FamiliaProdutoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class FamiliaProdutoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { FilialDto } from \"./filial-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport interface PesquisarFiliaisInput {\n nome?: string;\n codigo?: string;\n cnpjs?: string[];\n pagina: {\n offset: number;\n limit: number;\n listaOrdenacao?: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n };\n}\n\n@Injectable()\nexport class FilialService extends EntityService<FilialDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n private readonly baseUrl: string;\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/filial`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this.baseUrl = `${environment.project.domain}/${environment.project.service}/`;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n public listFiliais(filters: PesquisarFiliaisInput) {\n return this.http.post(`${this.baseUrl}queries/pesquisarFiliais`, filters).pipe(this.defaultCatch());\n }\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { FilialService } from \"./filial.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"filial\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/filial`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n FilialService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class FilialModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PaisDto } from \"./pais-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PaisService extends EntityService<PaisDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pais`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PaisService } from \"./pais.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pais\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pais`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PaisService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PaisModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PedidoVendaItemDto } from \"./pedido-venda-item-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PedidoVendaItemService extends EntityService<PedidoVendaItemDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n protected queriesUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService, \n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pedidoVendaItem`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this.queriesUrl = `${environment.project.domain}/${environment.project.service}/queries`;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n public pesquisarItensPedidoVenda(pesquisa: any) {\n return this.http.post(`${this.queriesUrl}/pesquisarItensPedidoVenda`, pesquisa).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PedidoVendaItemService } from \"./pedido-venda-item.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pedidoVendaItem\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pedidoVendaItem`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PedidoVendaItemService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PedidoVendaItemModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { PedidoVendaItemDto } from \"../pedido-venda-item/pedido-venda-item-dto\";\nimport { PedidoVendaDto, PesquisaPedidosVendaDto } from \"./pedido-venda-dto\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PedidoVendaService extends EntityService<PedidoVendaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n protected queriesUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pedidoVenda`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this.queriesUrl = `${environment.project.domain}/${environment.project.service}/queries`;\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n public getItens(pedidoVendaId: any, id: any) {\n return this.http.get<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens/${id}`).pipe(this.defaultCatch());\n }\n\n public pesquisarPedidosVenda(pesquisa: PesquisaPedidosVendaDto) {\n return this.http.post(`${this.queriesUrl}/pesquisarPedidosVenda`, pesquisa).pipe(this.defaultCatch());\n }\n\n public updateItens(pedidoVendaId: any, id: any, pedidoVendaItemDto: PedidoVendaItemDto) {\n return this.http\n .put<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens/${id}`, pedidoVendaItemDto)\n .pipe(this.defaultCatch());\n }\n\n public listItens(pedidoVendaId: any, listParams: ListParams) {\n return this.http\n .get<PedidoVendaItemDto[]>(`${this.entityUrl}/${pedidoVendaId}/itens`, { params: this.getListQueryParams(listParams) })\n .pipe(this.defaultCatch());\n }\n\n public insertItens(pedidoVendaId: any, pedidoVendaItemDto: PedidoVendaItemDto) {\n return this.http.post<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens`, pedidoVendaItemDto).pipe(this.defaultCatch());\n }\n\n public deleteItens(pedidoVendaId: any, id: any) {\n return this.http.delete<PedidoVendaItemDto>(`${this.entityUrl}/${pedidoVendaId}/itens/${id}`).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PedidoVendaService } from \"./pedido-venda.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pedidoVenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pedidoVenda`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PedidoVendaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PedidoVendaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaEnderecoDto } from \"./pessoa-endereco-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaEnderecoService extends EntityService<PessoaEnderecoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoaEndereco`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaEnderecoService } from \"./pessoa-endereco.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoaEndereco\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pessoaEndereco`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaEnderecoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaEnderecoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaFisicaDto } from \"./pessoa-fisica-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaFisicaService extends EntityService<PessoaFisicaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoaFisica`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaFisicaService } from \"./pessoa-fisica.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoaFisica\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pessoaFisica`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaFisicaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaFisicaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaJuridicaDto } from \"./pessoa-juridica-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaJuridicaService extends EntityService<PessoaJuridicaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoaJuridica`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaJuridicaService } from \"./pessoa-juridica.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoaJuridica\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pessoaJuridica`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaJuridicaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaJuridicaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { PessoaDto } from \"./pessoa-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class PessoaService extends EntityService<PessoaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/pessoa`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { PessoaService } from \"./pessoa.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"pessoa\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/pessoa`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n PessoaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class PessoaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { ProdutoDto } from \"./produto-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class ProdutoService extends EntityService<ProdutoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/produto`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n listProdutosRecebimento(params: ProdutoRecebimentoParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarProdutoRecebimento`, params).pipe(this.defaultCatch());\n }\n\n listProdutos(params: ProdutoParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarProduto`, params).pipe(this.defaultCatch());\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\nexport interface ProdutoRecebimentoParams {\n empresaId?: string;\n filialId?: string;\n tipoAgendamentoId?: string;\n codigo?: string;\n descricao?: string;\n pesquisa?: string;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao?: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n };\n}\n\nexport interface ProdutoParams {\n empresaId?: string;\n filialId?: string;\n tipoAgendamentoId?: string;\n codigo?: string;\n descricao?: string;\n pesquisa?: string;\n situacao?: 'ATIVO' | 'INATIVO';\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao?: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n };\n}\n\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ProdutoService } from \"./produto.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"produto\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/produto`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n ProdutoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class ProdutoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class HasChangeService {\n \n private messageSource = new BehaviorSubject<{id, change}>({id:null, change:false});\n current = this.messageSource.asObservable();\n \n constructor() { }\n \n hasChange(idAgenda: string) {\n let message = {\n id: idAgenda,\n change: true\n }\n this.messageSource.next(message);\n }\n\n hasChangeSave(idAgenda: string) {\n let message = {\n id: idAgenda,\n change: false\n }\n this.messageSource.next(message);\n }\n \n get change() {\n return this.messageSource.value;\n }\n}","export class ErpProcessData {\n agendaId: string;\n chaveIntegracao?: string;\n filialId?: string;\n produtoId?: string;\n motoristaId?: string;\n veiculoId?: string;\n eixos?: number;\n transgeniaId?: string;\n transportadoraId?: string;\n fornecedores?: string[];\n recebimentoTemNota?: boolean; \n}","import { elementEventFullName } from '@angular/compiler/src/view_compiler/view_compiler';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ErpProcessData } from './erp-process-data';\r\n\r\n@Injectable()\r\nexport class ErpProcessService {\r\n\r\n private messageSource = new BehaviorSubject<ErpProcessData>(undefined);\r\n current = this.messageSource.asObservable();\r\n \r\n\r\n constructor() { }\r\n\r\n changeData(message: ErpProcessData) {\r\n this.messageSource.next(message)\r\n return message;\r\n }\r\n\r\n getProcessData() {\r\n return this.messageSource.value;\r\n }\r\n\r\n changeDataErp(newMessage: ErpProcessData) {\r\n let message = this.messageSource.value ? this.messageSource.value : newMessage;\r\n message.filialId = newMessage.filialId;\r\n message.chaveIntegracao = newMessage.chaveIntegracao;\r\n message.produtoId = newMessage.produtoId;\r\n message.transgeniaId = newMessage.transgeniaId;\r\n message.transportadoraId = newMessage.transportadoraId;\r\n return this.changeData(message); \r\n }\r\n\r\n changeDataVeiculo(veiculoId: string, eixos: number) {\r\n let message = this.messageSource.value ? this.messageSource.value : new ErpProcessData();\r\n message.veiculoId = veiculoId;\r\n message.eixos = eixos;\r\n return this.changeData(message);\r\n }\r\n\r\n changeDataMotorista(motoristaId: string) {\r\n let message = this.messageSource.value ? this.messageSource.value : new ErpProcessData();\r\n message.motoristaId = motoristaId;\r\n return this.changeData(message);\r\n }\r\n\r\n changeDataAgenda(agendaId: string, motoristaId: string, veiculoId: string, eixos: number) {\r\n let message = this.messageSource.value ? this.messageSource.value : new ErpProcessData();\r\n message.agendaId = agendaId;\r\n message.motoristaId = motoristaId;\r\n message.veiculoId = veiculoId;\r\n message.eixos = eixos;\r\n return this.changeData(message);\r\n }\r\n\r\n builderErpProcessData(erpProcessData: ErpProcessData, formGroup: FormGroup): ErpProcessData {\r\n erpProcessData.chaveIntegracao = formGroup.get(\"chaveNotaFiscal\") != null ? formGroup.get(\"chaveNotaFiscal\").value : null;\r\n erpProcessData.filialId = this.getFieldFormGroup(formGroup, 'filial');\r\n erpProcessData.produtoId = this.getFieldFormGroup(formGroup, 'produto');\r\n erpProcessData.transgeniaId = this.getFieldFormGroup(formGroup, 'transgenia');\r\n erpProcessData.transportadoraId = this.getFieldFormGroup(formGroup, 'transportadora');\r\n erpProcessData.fornecedores = this.listarIdsFornecedores(formGroup.getRawValue().fornecedores);\r\n return erpProcessData;\r\n }\r\n\r\n builderErpProcessDataValidaNotaNoContrato(erpProcessData: ErpProcessData, formGroup: FormGroup) {\r\n erpProcessData = this.builderErpProcessData(erpProcessData, formGroup);\r\n erpProcessData.recebimentoTemNota = this.verificaSeTemNotaNoContratoNoFornecedo(formGroup.getRawValue().fornecedores);\r\n return erpProcessData;\r\n }\r\n\r\n private verificaSeTemNotaNoContratoNoFornecedo(fornecedores: any){\r\n let contratosTemNota = false;\r\n\r\n let listaContratos = []; \r\n if (fornecedores != null) {\r\n fornecedores.filter(element => element.contratos != null && element.contratos != undefined).forEach(element => listaContratos.push(element.contratos));\r\n }\r\n \r\n let listaNotas = []; \r\n if (listaContratos != null) {\r\n listaContratos.filter(contratos => contratos != null && contratos != undefined).forEach(contratos => listaNotas.push(contratosTemNota = this.verificaSeContratosTemNota(contratos)));\r\n }\r\n return contratosTemNota;\r\n }\r\n\r\n private verificaSeContratosTemNota(contratos: any){\r\n let contratosTemNota = true;\r\n contratos.filter(contrato => contrato != null && contrato != undefined).forEach(contrato => contratosTemNota = contratosTemNota && (contrato.notas.length > 0));\r\n return contratosTemNota;\r\n }\r\n\r\n builderErpProcessDataValidaNotaNaOrdemCompra(erpProcessData: ErpProcessData, formGroup: FormGroup) {\r\n erpProcessData = this.builderErpProcessData(erpProcessData, formGroup);\r\n erpProcessData.recebimentoTemNota = this.verificaSeTemNotaNaOrdemCompraDoFornecedo(formGroup.getRawValue().fornecedores);\r\n return erpProcessData;\r\n }\r\n \r\n private verificaSeTemNotaNaOrdemCompraDoFornecedo(fornecedores: any){\r\n let ordemCompraTemNota = false;\r\n\r\n let listaOrdens = []; \r\n if (fornecedores != null) {\r\n fornecedores.filter(element => element.ordens != null && element.ordens != undefined).forEach(element => listaOrdens.push(element.ordens));\r\n }\r\n \r\n let listaNotas = []; \r\n if (listaOrdens != null) {\r\n listaOrdens.filter(ordens => ordens != null && ordens != undefined).forEach(ordens => listaNotas.push(ordemCompraTemNota = this.verificaSeOrdemCompraTemNota(ordens)));\r\n }\r\n return ordemCompraTemNota;\r\n }\r\n\r\n private verificaSeOrdemCompraTemNota(contratos: any){\r\n let ordemCompraTemNota = true;\r\n contratos.filter(ordem => ordem != null && ordem != undefined).forEach(ordem => ordemCompraTemNota = ordemCompraTemNota && (ordem.notas.length > 0));\r\n return ordemCompraTemNota;\r\n }\r\n\r\n private getFieldFormGroup(formGroup: FormGroup, fieldName: string) {\r\n if(formGroup.get(fieldName) == null || formGroup.get(fieldName).value == null) {\r\n return null\r\n }\r\n return formGroup.get(fieldName).value.id;\r\n }\r\n\r\n private listarIdsFornecedores (fornecedores: any) {\r\n let listaFornecedores = []; \r\n if (fornecedores != null) {\r\n fornecedores.filter(element => element.fornecedor != null && element.fornecedor != undefined).forEach(element => listaFornecedores.push(element.fornecedor));\r\n }\r\n return listaFornecedores.map(val => val.id);\r\n\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class ErpFormConfigService {\n\n private messageSource = new BehaviorSubject<boolean>(false);\n current = this.messageSource.asObservable();\n \n constructor() { }\n\n enableRevalidation() {\n this.messageSource.next(true);\n }\n\n get enable() {\n return this.messageSource.value;\n }\n}","import { HasChangeService } from './../../../core/has-change/has-change-service';\nimport { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n\nimport { RecebimentoContratoService } from \"./recebimento.service\";\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"recebimentoContrato\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/recebimentoContrato`,\n },\n {\n name: \"agenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/agenda/entities/agenda`,\n },\n ]),\n ],\n providers: [\n RecebimentoContratoService,\n ErpProcessService,\n ErpFormConfigService,\n HasChangeService\n ],\n declarations: [],\n exports: [],\n})\nexport class RecebimentoContratoModule {}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RoyaltyDto } from \"./royalty-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RoyaltyService extends EntityService<RoyaltyDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/royalty`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { RoyaltyService } from \"./royalty.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"royalty\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/royalty`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n RoyaltyService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class RoyaltyModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { SafraDto } from \"./safra-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class SafraService extends EntityService<SafraDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/safra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { SafraService } from \"./safra.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"safra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/safra`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n SafraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class SafraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { TransportadoraDto } from \"./transportadora-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class TransportadoraService extends EntityService<TransportadoraDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/transportadora`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { TransportadoraService } from \"./transportadora.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"transportadora\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/transportadora`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n TransportadoraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class TransportadoraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { UnidadeMedidaDto } from \"./unidade-medida-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class UnidadeMedidaService extends EntityService<UnidadeMedidaDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/unidadeMedida`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { UnidadeMedidaService } from \"./unidade-medida.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"unidadeMedida\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/unidadeMedida`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n UnidadeMedidaService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class UnidadeMedidaModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { ExpedicaoService } from \"./expedicao.service\";\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"expedicao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/expedicao`,\n },\n ]),\n ],\n providers: [ ExpedicaoService ]\n})\nexport class ExpedicaoModule {\n\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { DevolucaoDto } from \"./devolucao-dto\";\nimport { Devolucao } from \"./devolucao\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class DevolucaoService extends EntityService<DevolucaoDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/devolucao`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n } \n\n public registrarChegadaVeiculoComDevolucao(payload: RegistrarChegadaVeiculoComDevolucaoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComDevolucao`, payload).pipe(this.defaultCatch());\n }\n\n}\n\nexport interface RegistrarChegadaVeiculoComDevolucaoPayload {\n devolucao: Devolucao;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial?: string;\n}\n\n \n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { DevolucaoService } from \"./devolucao.service\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"devolucao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/devolucao`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n DevolucaoService,\n ErpProcessService,\n ErpFormConfigService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class DevolucaoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { OrdemCompraService } from \"./ordem-compra.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"ordemCompra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/ordem-compra`,\n },\n {\n name: \"agenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/agenda/entities/agenda`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n OrdemCompraService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class OrdemCompraModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { TranslateService } from '@ngx-translate/core';\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class BuildFormField {\n constructor( private readonly translate: TranslateService ) { }\n\n public buildForString(name: any, label: any){\n return this.build(name, label, FieldType.String);\n }\n\n public buildForInteger(name: any, label: any){\n return this.build(name, label, FieldType.Integer);\n }\n\n public build(name: any, label: any, type: any){\n return new FormField({\n label: this.translate.instant(label),\n name,\n type\n });\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RecebimentoOrdemCompraDto } from \"./recebimento-ordem-compra-dto\";\nimport { RecebimentoOrdemCompra } from \"./recebimento-ordem-compra\";\n \n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RecebimentoOrdemCompraService extends EntityService<RecebimentoOrdemCompraDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/recebimentoOrdemCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoRecebimentoOrdemCompra(payload: RegistrarChegadaVeiculoRecebimentoOrdemCompraPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComRecebimentoOrdemCompra`, payload).pipe(this.defaultCatch());\n } \n}\n\nexport interface RegistrarChegadaVeiculoRecebimentoOrdemCompraPayload {\n recebimentoOrdemCompra: RecebimentoOrdemCompra,\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}\n","import { BuildFormField } from './../../../../utils/build-form-field';\nimport { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { RecebimentoOrdemCompraService } from \"./recebimento-ordem-compra.service\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"recebimentoOrdemCompra\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/recebimentoOrdemCompra`,\n },\n {\n name: \"agenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/agenda/entities/agenda`,\n },\n ]),\n ],\n providers: [\n RecebimentoOrdemCompraService,\n ErpProcessService,\n ErpFormConfigService,\n BuildFormField,\n ],\n declarations: [\n ],\n exports: [\n ],\n})\nexport class RecebimentoOrdemCompraModule {}\n","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { Transgenia } from \"./transgenia\";\n\n@Injectable()\nexport class TransgeniaService extends EntityService<Transgenia> {\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/transgenia`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n}","import { NgModule } from \"@angular/core\";\nimport { TransgeniaService } from \"./transgenia.service\";\n\n@NgModule({\n providers: [ TransgeniaService ]\n})\nexport class TransgeniaModule { }\n","import { Injectable, Inject } from \"@angular/core\";\nimport { EntityService } from \"../entity-service\";\nimport { ProcessoAvulsoDto } from \"./processo-avulso-dto\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { ProcessoAvulso } from \"./processo-avulso\";\n\n@Injectable()\nexport class ProcessoAvulsoService extends EntityService<ProcessoAvulsoDto> {\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any,\n ) {\n super(\n http, messageService, \n `${environment.project.domain}/${environment.project.service}/entities/processoAvulso`,\n `${environment.project.domain}/${environment.project.service}/actions`\n )\n }\n\n registrarChegada(processo: RegistrarChegadaComProcessoAvulsoPayload) {\n return this.http.post(`${this.actionsUrl}/registrarChegadaDeVeiculoComProcessoAvulso`, processo).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaComProcessoAvulsoPayload {\n processoAvulso: ProcessoAvulso;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}","import { NgModule } from \"@angular/core\";\nimport { ProcessoAvulsoService } from \"./processo-avulso.service\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { ErpProcessService } from \"./../../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from './../../erp-form-config/erp-form-config-service';\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"processoAvulso\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/processoAvulso`,\n },\n {\n name: \"agenda\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/agenda/entities/agenda`,\n },\n ]),\n ],\n providers: [ ProcessoAvulsoService, ErpProcessService, ErpFormConfigService ]\n})\nexport class ProcessoAvulsoModule {\n\n}","import { Inject, Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\nimport { LogIntegracaoDto } from \"./log-integracao-dto\";\nimport { EntityService } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class LogIntegracaoService extends EntityService<LogIntegracaoDto> {\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/erp/entities/logIntegracao`,\n `${environment.project.domain}/erp/actions`\n );\n /*{CA:CONSTRUCTOR_END:START}*/\n /*{CA:CONSTRUCTOR_END:END}*/\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { LogIntegracaoService } from \"./log-integracao.service\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: \"logIntegracao\",\n actions: [\"Visualizar\", \"Incluir\", \"Editar\", \"Excluir\"],\n uri: `res://senior.com.br/yms/erp/entities/logIntegracao`,\n },\n ]),\n /*{CA:MODULE_IMPORTS:START}*/\n /*{CA:MODULE_IMPORTS:END}*/\n ],\n providers: [\n LogIntegracaoService,\n /*{CA:MODULE_PROVIDERS:START}*/\n /*{CA:MODULE_PROVIDERS:END}*/\n ],\n declarations: [\n /*{CA:MODULE_DECLARATIONS:START}*/\n /*{CA:MODULE_DECLARATIONS:END}*/\n ],\n exports: [\n /*{CA:MODULE_EXPORTS:START}*/\n /*{CA:MODULE_EXPORTS:END}*/\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class LogIntegracaoModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { NgModule } from \"@angular/core\";\nimport { AgendaModule } from \"./entities/agenda/agenda.module\";\nimport { CidadeModule } from \"./entities/cidade/cidade.module\";\nimport { ContratoCompraItemModule } from \"./entities/contrato-compra-item/contrato-compra-item.module\";\nimport { ContratoCompraModule } from \"./entities/contrato-compra/contrato-compra.module\";\nimport { DerivacaoModule } from \"./entities/derivacao/derivacao.module\";\nimport { EmpresaModule } from \"./entities/empresa/empresa.module\";\nimport { EstadoModule } from \"./entities/estado/estado.module\";\nimport { FamiliaProdutoModule } from \"./entities/familia-produto/familia-produto.module\";\nimport { FilialModule } from \"./entities/filial/filial.module\";\nimport { PaisModule } from \"./entities/pais/pais.module\";\nimport { PedidoVendaItemModule } from \"./entities/pedido-venda-item/pedido-venda-item.module\";\nimport { PedidoVendaModule } from \"./entities/pedido-venda/pedido-venda.module\";\nimport { PessoaEnderecoModule } from \"./entities/pessoa-endereco/pessoa-endereco.module\";\nimport { PessoaFisicaModule } from \"./entities/pessoa-fisica/pessoa-fisica.module\";\nimport { PessoaJuridicaModule } from \"./entities/pessoa-juridica/pessoa-juridica.module\";\nimport { PessoaModule } from \"./entities/pessoa/pessoa.module\";\nimport { ProdutoModule } from \"./entities/produto/produto.module\";\nimport { RecebimentoContratoModule } from \"./entities/recebimento-contrato/recebimento.module\";\nimport { RoyaltyModule } from \"./entities/royalty/royalty.module\";\nimport { SafraModule } from \"./entities/safra/safra.module\";\nimport { TransportadoraModule } from \"./entities/transportadora/transportadora.module\";\nimport { UnidadeMedidaModule } from \"./entities/unidade-medida/unidade-medida.module\";\nimport { ExpedicaoModule } from \"./entities/expedicao/expedicao.module\";\nimport { IntegrationService } from \"./integration.service\";\nimport { DevolucaoModule } from \"./entities/devolucao/devolucao.module\";\nimport { OrdemCompraModule } from \"./entities/ordem-compra/ordem-compra.module\";\nimport { RecebimentoOrdemCompraModule } from \"./entities/recebimento-ordem-compra/recebimento-ordem-compra.module\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { NotaValidatorService } from \"./nota-validator.service\";\nimport { TransgeniaService } from \"./entities/transgenia/transgenia.service\";\nimport { TransgeniaModule } from \"./entities/transgenia/transgenia.module\";\nimport { ProcessoAvulsoModule } from \"./entities/processo-avulso/processo-avulso.module\";\nimport { LogIntegracaoModule } from \"./entities/log-integracao/log-integracao.module\";\n\n@NgModule({\n imports: [\n EmpresaModule,\n PessoaModule,\n PessoaFisicaModule,\n PessoaJuridicaModule,\n PaisModule,\n EstadoModule,\n CidadeModule,\n PessoaEnderecoModule,\n FilialModule,\n TransportadoraModule,\n ProdutoModule,\n UnidadeMedidaModule,\n RoyaltyModule,\n FamiliaProdutoModule,\n SafraModule,\n PedidoVendaModule,\n PedidoVendaItemModule,\n ContratoCompraModule,\n ContratoCompraItemModule,\n RecebimentoContratoModule,\n AgendaModule,\n DerivacaoModule,\n ExpedicaoModule,\n DevolucaoModule,\n OrdemCompraModule,\n RecebimentoOrdemCompraModule,\n TransgeniaModule,\n PermissionsModule,\n ProcessoAvulsoModule,\n LogIntegracaoModule\n ],\n providers: [\n IntegrationService,\n NotaValidatorService\n ],\n exports: [\n ],\n /*{CA:MODULE_CONFIG:START}*/\n /*{CA:MODULE_CONFIG:END}*/\n})\nexport class CoreModule {}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { Devolucao } from \"../core/entities/devolucao/devolucao\";\nimport { DevolucaoService } from \"../core/entities/devolucao/devolucao.service\";\n\n@Injectable()\nexport class DevolucaoChegadaVeiculoOverride {\n private readonly DEVOLUCAO_KEY = \"ERP_SENIOR_DEVOLUCAO\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private devolucaoService: DevolucaoService\n ){}\n\n public initialize() {\n this.override.addOverride(this.DEVOLUCAO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.DEVOLUCAO_KEY);\n }\n\n private functionToOverride(params: OverrideParams){\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.devolucaoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((devolucao: Devolucao) => {\n if (!devolucao) return throwError(\"Não foi possÃvel encontrar os dados de devolução\");\n\n return this.devolucaoService.registrarChegadaVeiculoComDevolucao({\n devolucao,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { UnidadeMedidaDto } from \"./unidade-medida-dto\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class UnidadeMedida {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public quantidadeDecimais: number;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(unidadeMedidaDto: UnidadeMedidaDto, originEntity?: string): UnidadeMedida {\n const model: any = { ...unidadeMedidaDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"codigo\",\n \"descricao\",\n \"quantidadeDecimais\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n return model as UnidadeMedida;\n }\n\n public static toDto(unidadeMedida: UnidadeMedida, originEntity?: string): UnidadeMedidaDto {\n const dto: any = { ...unidadeMedida };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { RoyaltyDto } from \"./royalty-dto\";\nimport { Empresa } from \"../empresa/empresa\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Royalty {\n public id?: string;\n public empresa: Empresa;\n public codigo: number;\n public descricao: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(royaltyDto: RoyaltyDto, originEntity?: string): Royalty {\n const model: any = { ...royaltyDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"id\", \"codigo\", \"descricao\", \"createdBy\", \"createdDate\", \"lastModifiedBy\", \"lastModifiedDate\"];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Royalty\");\n\n return model as Royalty;\n }\n\n public static toDto(royalty: Royalty, originEntity?: string): RoyaltyDto {\n const dto: any = { ...royalty };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Royalty\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n\nimport { FamiliaProdutoDto } from \"./familia-produto-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Situacao } from \"../../enums/situacao\";\n\nexport class FamiliaProduto {\n public id?: string;\n public empresa: Empresa;\n public codigo: string;\n public descricao: string;\n public situacao: Situacao;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n public static fromDto(familiaProdutoDto: FamiliaProdutoDto, originEntity?: string): FamiliaProduto {\n if(familiaProdutoDto.id === undefined){\n return familiaProdutoDto;\n }\n\n const model: any = { ...familiaProdutoDto };\n\n model.createdDate = model.codigo && moment(model.createdDate).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"id\", \"codigo\", \"descricao\", \"situacao\", \"createdBy\", \"createdDate\", \"lastModifiedBy\", \"lastModifiedDate\"];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"FamiliaProduto\");\n\n return model as FamiliaProduto;\n }\n\n public static toDto(familiaProduto: FamiliaProduto, originEntity?: string): FamiliaProdutoDto {\n const dto: any = { ...familiaProduto };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"FamiliaProduto\");\n\n return dto;\n }\n}","import * as _moment from \"moment\";const moment = _moment\n\nimport { ProdutoDto } from \"./produto-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { UnidadeMedida } from \"../unidade-medida/unidade-medida\";\nimport { Royalty } from \"../royalty/royalty\";\nimport { FamiliaProduto } from \"../familia-produto/familia-produto\";\nimport { TipoProduto } from \"../../enums/tipo-produto\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n\nexport class Produto {\n public id?: string;\n public empresa: Empresa;\n public unidadeMedida: UnidadeMedida;\n public codigo: string;\n public descricao: string;\n public descricaoComplementar: string;\n public tipo: TipoProduto;\n public situacao: Situacao;\n public produtoMisto: boolean = false;\n public comprado: boolean = false;\n public unidadeMedidaAgroG5: UnidadeMedida;\n public royalty?: Royalty;\n public familia?: FamiliaProduto;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n public static fromDto(produtoDto: ProdutoDto, originEntity?: string): Produto {\n const model: any = { ...produtoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n // \"tipo\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && model.unidadeMedida)\n model.unidadeMedida = UnidadeMedida.fromDto(model.unidadeMedida, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && model.unidadeMedidaAgroG5)\n model.unidadeMedidaAgroG5 = UnidadeMedida.fromDto(model.unidadeMedidaAgroG5, \"Produto\");\n if (originEntity !== \"Royalty\" && model.royalty) model.royalty = Royalty.fromDto(model.royalty, \"Produto\");\n if (originEntity !== \"FamiliaProduto\" && model.familia) model.familia = FamiliaProduto.fromDto(model.familia, \"Produto\");\n\n return model as Produto;\n }\n\n public static toDto(produto: Produto, originEntity?: string): ProdutoDto {\n const dto: any = { ...produto };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && dto.unidadeMedida) dto.unidadeMedida = UnidadeMedida.toDto(dto.unidadeMedida, \"Produto\");\n if (originEntity !== \"UnidadeMedida\" && dto.unidadeMedidaAgroG5)\n dto.unidadeMedidaAgroG5 = UnidadeMedida.toDto(dto.unidadeMedidaAgroG5, \"Produto\");\n if (originEntity !== \"Royalty\" && dto.royalty) dto.royalty = Royalty.toDto(dto.royalty, \"Produto\");\n if (originEntity !== \"FamiliaProduto\" && dto.familia) dto.familia = FamiliaProduto.toDto(dto.familia, \"Produto\");\n\n return dto;\n }\n}","import * as _moment from \"moment\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { DerivacaoDto } from \"./derivacao-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Produto } from \"../produto/produto\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\nconst moment = _moment;\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Derivacao {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public empresa: Empresa;\n public produto: Produto;\n public situacao: Situacao;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(derivacaoDto: DerivacaoDto, originEntity?: string): Derivacao {\n const model: any = { ...derivacaoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\"codigo\", \"descricao\"];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Derivacao\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"Derivacao\");\n\n return model as Derivacao;\n }\n\n public static toDto(derivacao: Derivacao, originEntity?: string): DerivacaoDto {\n const dto: any = { ...derivacao };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Derivacao\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"Derivacao\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { TransportadoraDto } from \"./transportadora-dto\";\nimport { PessoaJuridica } from \"../pessoa-juridica/pessoa-juridica\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { SituacaoPessoa } from \"../../enums/situacao-pessoa\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Transportadora {\n public id?: string;\n public codigo: number;\n public placaVeiculo: string;\n public pessoa: Pessoa;\n public endereco: PessoaEndereco;\n public situacao: SituacaoPessoa;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(transportadoraDto: TransportadoraDto, originEntity?: string): Transportadora {\n const model: any = { ...transportadoraDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.pessoa)\n model.pessoa = Pessoa.fromDto(model.pessoa, \"Transportadora\");\n if (originEntity !== \"PessoaEndereco\" && model.endereco) model.endereco = PessoaEndereco.fromDto(model.endereco, \"Transportadora\");\n\n return model as Transportadora;\n }\n\n public static toDto(transportadora: Transportadora, originEntity?: string): TransportadoraDto {\n const dto: any = { ...transportadora };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.pessoa)\n dto.pessoa = Pessoa.toDto(dto.pessoa, \"Transportadora\");\n if (originEntity !== \"PessoaEndereco\" && dto.endereco) dto.endereco = PessoaEndereco.toDto(dto.endereco, \"Transportadora\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { Derivacao } from \"../derivacao/derivacao\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Produto } from \"../produto/produto\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\nimport { DevolucaoDto } from \"./devolucao-dto\";\nimport { Filial } from \"../filial/filial\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nconst moment = _moment\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Devolucao {\n public id: string;\n public fornecedor: Pessoa;\n public origemMercadoria: PessoaEndereco; \n public derivacao: Derivacao;\n public produto: Produto;\n public agenda: Agenda;\n public transportadora: Pessoa;\n public chaveNotaFiscal?: string;\n public numeroNotaFiscal?: string;\n public serieNotaFiscal?: string;\n public numeroNotaFiscalProdutor?: string;\n public serieNotaFiscalProdutor?: string;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public custom?: any;\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(devolucaoDto: DevolucaoDto, originEntity?: string): Devolucao {\n const model: any = { ...devolucaoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n \n\n const lookupSeparator = \" - \";\n const displayFields = [\n ''\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.fornecedor) model.fornecedor = Pessoa.fromDto(model.fornecedor, \"Devolucao\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"Devolucao\");\n if (originEntity !== \"Transportadora\" && model.transportadora) model.transportadora = Transportadora.fromDto(model.transportadora, \"Devolucao\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"Devolucao\");\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"Devolucao\");\n if ((originEntity !== \"PessoaEndereco\" && model.origemMercadoria)) model.origemMercadoria = PessoaEndereco.fromDto(model.origemMercadoria, \"Recebimento\");\n if ((originEntity !== \"Derivacao\" && model.derivacao)) model.derivacao = Derivacao.fromDto(model.derivacao, \"Devolucao\");\n return model as Devolucao;\n }\n\n public static toDto(devolucao: Devolucao, originEntity?: string): DevolucaoDto {\n const dto: any = { ...devolucao };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.fornecedor) dto.fornecedor = Pessoa.toDto(dto.fornecedor, \"Devolucao\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Devolucao\");\n if (originEntity !== \"Transportadora\" && dto.transportadora) dto.transportadora = Transportadora.toDto(dto.transportadora, \"Devolucao\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"Devolucao\");\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"Devolucao\");\n if ((originEntity !== \"PessoaEndereco\" && dto.origemMercadoria)) dto.origemMercadoria = PessoaEndereco.toDto(dto.origemMercadoria, \"Devolucao\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","export enum TipoNotaFiscal {\n EMPRESA_JURIDICA = \"EMPRESA_JURIDICA\",\n PRODUTOR_RURAL = \"PRODUTOR_RURAL\"\n}","export enum Situacao {\n INATIVO = \"INATIVO\",\n ATIVO = \"ATIVO\",\n}\n","import { ErpFormConfigService } from './../../core/erp-form-config/erp-form-config-service';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { ConfirmationService, MessageService, SortMeta } from \"primeng/api\";\nimport { ReplaySubject, Subject } from \"rxjs\";\nimport { concatMap, filter, finalize, mergeMap, takeUntil } from \"rxjs/operators\";\nimport { isValidFilter } from \"../../../utils/utils\";\nimport { onLookupRequest, onSearchRequest } from \"../../../utils/lookup-utils\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { Derivacao } from \"../../core/entities/derivacao/derivacao\";\nimport { DerivacaoService } from \"../../core/entities/derivacao/derivacao.service\";\nimport { Devolucao } from \"../../core/entities/devolucao/devolucao\";\nimport { DevolucaoDto } from \"../../core/entities/devolucao/devolucao-dto\";\nimport { DevolucaoService } from \"../../core/entities/devolucao/devolucao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { FilialService, PesquisarFiliaisInput } from \"../../core/entities/filial/filial.service\";\nimport { PessoaEndereco } from \"../../core/entities/pessoa-endereco/pessoa-endereco\";\nimport { PessoaEnderecoService } from \"../../core/entities/pessoa-endereco/pessoa-endereco.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ProdutoService, ProdutoParams } from \"../../core/entities/produto/produto.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { DevolucaoChegadaVeiculoOverride } from \"../devolucao-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: 'devolucao-form',\n templateUrl: './devolucao-form.component.html'\n})\n\nexport class DevolucaoFormComponent implements OnInit, OnDestroy, AfterViewInit {\n formGroup: FormGroup;\n\n filialSearchFields: FormField[];\n filialSearchGridFields: FormField[];\n filialSearchGridData: Filial[];\n filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n filialLookupSeparator = \" - \";\n filialLookupSuggestions: Filial[];\n filialSearchTotalRecords: number;\n\n fornecedorSearchFields: FormField[];\n fornecedorSearchGridData: Pessoa[];\n fornecedorLookupDisplayFields = [\"codigo\", \"nome\"];\n fornecedorAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n fornecedorLookupSeparator = \" - \";\n fornecedorLookupSuggestions: Pessoa[];\n fornecedorSearchTotalRecords: number;\n\n produtoSearchFields: FormField[];\n produtoSearchGridData: Produto[];\n produtoLookupDisplayFields = [\"codigo\", \"descricao\"];\n produtoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n produtoLookupSeparator = \" - \";\n produtoLookupSuggestions: Produto[];\n produtoSearchTotalRecords: number;\n\n derivacaoSearchFields: FormField[];\n derivacaoSearchGridData: Derivacao[];\n derivacaoLookupDisplayFields = [\"codigo\", \"descricao\"];\n derivacaoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n derivacaoLookupSeparator = \" - \";\n derivacaoLookupSuggestions: Derivacao[];\n derivacaoSearchTotalRecords: number;\n\n origemMercadoriaSearchFields: FormField[];\n origemMercadoriaSearchGridData: PessoaEndereco[];\n origemMercadoriaLookupDisplayFields = [\"codigo\", \"endereco\"];\n origemMercadoriaAdvancedDisplayFields = [\"id\", \"codigo\", \"endereco\", \"numero\"];\n origemMercadoriaLookupSeparator = \" - \";\n origemMercadoriaLookupSuggestions: PessoaEndereco[];\n origemMercadoriaSearchTotalRecords: number;\n\n transportadoraSearchFields: FormField[];\n transportadoraSearchGridFields: FormField[];\n transportadoraSearchGridData: Transportadora[];\n transportadoraLookupDisplayFields = [\"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraAdvancedDisplayFields = [\"id\", \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraLookupSeparator = \" - \";\n transportadoraLookupSuggestions: Transportadora[];\n transportadoraSearchTotalRecords: number;\n\n disableButtonSave: boolean = false;\n\n totalEixosContratados: number = 0;\n totalEixosComposicao: number = 0;\n\n private formCarregado: any;\n\n public saveAndInitButton: any;\n\n public loading: boolean;\n\n public permissions: any = {};\n\n @Input() private agenda: Agenda;\n\n private readonly ngUnsubscribe = new Subject<void>(); \n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private translate: TranslateService,\n private filialService: FilialService,\n private pessoaService: PessoaService,\n private produtoService: ProdutoService,\n private derivacaoService: DerivacaoService,\n private origemMercadoriaService: PessoaEnderecoService,\n private transportadoraService: TransportadoraService,\n private devolucaoService: DevolucaoService,\n private messageService: MessageService,\n private route: ActivatedRoute,\n private override: DevolucaoChegadaVeiculoOverride,\n private confirmationService: ConfirmationService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private hasChangeService: HasChangeService\n ) {\n this.formGroup = this.getFormGroup();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.override.remove();\n }\n\n ngAfterViewInit(): void {\n this.override.initialize();\n this.saveAndInitButton = document.getElementById('init');\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n\n const statusAgenda = [\"AGUARDANDO_CONFIRMACAO_SOLICITANTE\", \"AGENDADO\", \"AGUARDANDO_CONFIRMACAO\", \"REJEITADO_POR_VALIDACAO\"];\n if (this.agenda && !statusAgenda.includes(this.agenda.status) || !this.permissions.editar) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n this.createdByErpDisableForm();\n }\n\n ngOnInit() {\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n this.fornecedorSearchFields = this.getFornecedorSearchFields();\n this.produtoSearchFields = this.getProdutoSearchFields();\n this.derivacaoSearchFields = this.getDerivacaoSearchFields();\n this.origemMercadoriaSearchFields = this.getOrigemMercadoriaSearchFields();\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe(({ agenda }) => {\n if (agenda != 'new') {\n this.getDevolucao(agenda);\n }\n });\n\n this.getEmpresaFilial();\n this.filialValueChanges();\n\n const getFilterQueryProduto = (value: any) => `produto.id eq '${value.id}' and situacao eq 'ATIVO'`;\n this.checkValuesChanges(\"produto\", \"derivacao\", this.derivacaoService,\n getFilterQueryProduto, ['codigo', 'descricao'], 10, true, true\n );\n\n const getFilterQueryFornecedor = (value: any) => `pessoa.id eq '${value.id}'`;\n this.checkValuesChanges(\n \"fornecedor\", \"origemMercadoria\", this.origemMercadoriaService,\n getFilterQueryFornecedor, ['codigo', 'endereco'], 10, false, true\n );\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n }\n\n public onRouteDataChange(data: any) {\n this.permissions = data.allPermissions.agenda;\n }\n\n public createdByErpDisableForm() {\n if (this.agenda && this.agenda.createdByErp) {\n this.formGroup.get('filial').disable();\n this.formGroup.get('fornecedor').disable();\n this.formGroup.get('produto').disable();\n this.formGroup.get('derivacao').disable();\n this.formGroup.get('origemMercadoria').disable();\n this.formGroup.get('transportadora').disable();\n this.formGroup.get('contratos').disable();\n }\n }\n\n private getEmpresaFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length !== 1) return;\n\n this.filialService\n .list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: ['*', 'empresa.nome']\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0]));\n }\n });\n }\n\n private filialValueChanges() {\n this.formGroup.get(\"filial\")\n .valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(value => {\n if (!!value) {\n return this.formGroup.get(\"produto\").enable();\n }\n this.formGroup.get(\"produto\").setValue(undefined);\n this.formGroup.get(\"produto\").disable();\n });\n }\n\n private checkValuesChanges(formControlUpdated: string, formControlDependent: string, service: any, getFilterQuery: any,\n variables: any, querySize: number = 1, isChangeValidators?: boolean, clearFormControlDependent?: boolean) {\n\n this.formGroup.get(formControlUpdated)\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n filter(value => {\n if (isChangeValidators) {\n this.formGroup.get(formControlDependent).setValidators(value ? Validators.required : Validators.nullValidator);\n }\n if (clearFormControlDependent) {\n this.formGroup.get(formControlDependent).setValue(null);\n }\n if (!value) {\n this.formGroup.get(formControlDependent).setValue(undefined);\n this.formGroup.get(formControlDependent).disable();\n return false;\n }\n return true;\n }),\n mergeMap((value: any) => {\n const filterQuery = getFilterQuery(value);\n return service.list({ filterQuery, page: 0, size: querySize });\n })\n )\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.formGroup.get(formControlDependent).enable();\n return;\n }\n if (contents.length === 1) {\n const code = contents[0][variables[0]] ? contents[0][variables[0]].toString() : '';\n const description = contents[0][variables[1]] ? contents[0][variables[1]].toString() : '';\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant('yms.erp.derivacao_sem_descricao');\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n \n this.formGroup.get(formControlDependent).setValue(contents[0]);\n }\n\n if (contents.length > 1) {\n this.formGroup.get(formControlDependent).enable();\n } else {\n this.formGroup.get(formControlDependent).disable();\n }\n });\n }\n\n public getDevolucao(agendaId: string) {\n this.devolucaoService\n .list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (!contents.length) {\n return;\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao = contents[0].agenda && contents[0].agenda.veiculo\n ? contents[0].agenda.veiculo.eixos || 0 : 0;\n\n const devolucao: DevolucaoDto = Devolucao.fromDto(contents[0]);\n this.formGroup.enable();\n this.formGroup.patchValue(devolucao);\n });\n this.formCarregado = true;\n }\n\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) =>\n this.filialLookupSuggestions = list.filiais.map((filial: any) => Filial.fromDto(filial))\n );\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n onFornecedorLookupRequest(value: string) {\n onLookupRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields, this.fornecedorAdvancedDisplayFields,\n this.fornecedorLookupSeparator, this.pessoaService, value, ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.fornecedorLookupSuggestions = list.contents);\n }\n\n onFornecedorSearchRequest(event: any) {\n onSearchRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields,\n this.fornecedorAdvancedDisplayFields, this.fornecedorLookupSeparator, this.pessoaService, event,\n ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.fornecedorSearchGridData = list.contents;\n this.fornecedorSearchTotalRecords = list.totalElements;\n });\n }\n\n onProdutoLookupRequest(value: string) {\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService\n .listProdutos({\n pesquisa: value,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null,\n situacao: 'ATIVO',\n pagina: {\n limit: 100,\n offset: 0\n }\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => this.produtoLookupSuggestions = res.produtos.map(Produto.fromDto));\n }\n\n onProdutoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getProdutoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as ProdutoParams);\n\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService.listProdutos({\n ...filterInput,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n situacao: 'ATIVO',\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => {\n this.produtoSearchTotalRecords = res.qtdTotalRegistros;\n this.produtoSearchGridData = res.produtos.map(Produto.fromDto);\n });\n }\n\n onDerivacaoLookupRequest(value: string) {\n onLookupRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields,\n this.derivacaoLookupSeparator, this.derivacaoService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoLookupSuggestions = list.contents;\n });\n }\n\n onDerivacaoSearchRequest(event: any) {\n onSearchRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields,\n this.derivacaoAdvancedDisplayFields, this.derivacaoLookupSeparator, this.derivacaoService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoSearchGridData = list.contents;\n this.derivacaoSearchTotalRecords = list.totalElements;\n });\n }\n\n onOrigemMercadoriaLookupRequest(value: string) {\n onLookupRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, value,\n ` pessoa.id eq '${this.formGroup.get(\"fornecedor\").value.id}' `\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaLookupSuggestions = list.contents;\n });\n }\n\n onOrigemMercadoriaSearchRequest(event: any) {\n onSearchRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, event,\n ` pessoa.id eq '${this.formGroup.get(\"fornecedor\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaSearchGridData = list.contents;\n this.origemMercadoriaSearchTotalRecords = list.totalElements;\n });\n }\n\n\n onTransportadoraLookupRequest(value: string) {\n onLookupRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n onTransportadoraSearchRequest(event: any) {\n onSearchRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace('.', '').replace('/', '').replace('-', '');\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService.list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const code = contents[0].codigo ? contents[0].codigo.toString() : '';\n const description = contents[0].descricao ? contents[0].descricao.toString() : '';\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant('yms.erp.derivacao_sem_descricao');\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n this.formGroup.get('transportadora').setValue(contents[0]);\n }\n });\n }\n }\n\n onSave(start?: boolean) {\n this.formGroup.get('agenda').setValue(this.agenda);\n if (this.formGroup.invalid) {\n this.validateAllFormFields(this.formGroup);\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false)\n )\n .subscribe((value: any) => {\n this.formGroup.get('id').setValue(value.id || null);\n this.successMessage();\n if (start && this.saveAndInitButton) {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n const devolucaoDto = Devolucao.toDto(value);\n\n if (this.isNew() && !value.id) {\n return this.devolucaoService.insert(devolucaoDto);\n } else {\n return this.devolucaoService.update(this.formGroup.value.id, devolucaoDto);\n }\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n private getFormGroup() {\n return this.fb.group({\n id: [undefined],\n filial: [undefined, Validators.required],\n fornecedor: [undefined, Validators.required],\n produto: [{ value: undefined, disabled: true }, Validators.required],\n derivacao: [{ value: undefined, disabled: true }, Validators.required],\n origemMercadoria: [{ value: undefined, disabled: true }, Validators.required],\n transportadora: [undefined],\n agenda: [undefined, Validators.required],\n chaveNotaFiscal: [undefined],\n numeroNotaFiscal: [undefined],\n serieNotaFiscal: [undefined],\n numeroNotaFiscalProdutor: [undefined],\n serieNotaFiscalProdutor: [undefined]\n });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n });\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n })\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n })\n ];\n }\n\n private getFornecedorSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_codigo\")\n }),\n ];\n }\n\n private getProdutoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_codigo\")\n }),\n ];\n }\n\n private getDerivacaoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_codigo\")\n }),\n ];\n }\n\n private getOrigemMercadoriaSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_codigo\")\n }),\n new FormField({\n name: \"numero\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_numero\")\n }),\n new FormField({\n name: \"endereco\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_endereco\")\n }),\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n}\n","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { Subject, throwError, of } from \"rxjs\";\nimport { takeUntil, switchMap, finalize } from \"rxjs/operators\";\nimport { Devolucao } from \"../../../core/entities/devolucao/devolucao\";\nimport { DevolucaoService } from \"../../../core/entities/devolucao/devolucao.service\";\nimport { DevolucaoDto } from \"../../../core/entities/devolucao/devolucao-dto\";\n\n\n@Component({\n selector: 'devolucao-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_fornecedor' | translate}}</span>\n <span class=\"data\">{{devolucao?.fornecedor?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_transportadora' | translate}}</span>\n <span class=\"data\">{{devolucao?.transportadora?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_produto' | translate}}</span>\n <span class=\"data\">{{devolucao?.produto?.descricao}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_derivacao' | translate}}</span>\n <span class=\"data\">{{devolucao?.derivacao?.descricao}}</span>\n </div>\n \n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_chave_nota_fiscal' | translate}}</span>\n <span class=\"data\">{{devolucao?.chaveNotaFiscal}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_numero_nota_fiscal' | translate}}</span>\n <span class=\"data\">{{devolucao?.numeroNotaFiscal}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_serie_nota_fiscal' | translate}}</span>\n <span class=\"data\">{{devolucao?.serieNotaFiscal}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_numero_nota_fiscal_produtor' | translate}}</span>\n <span class=\"data\">{{devolucao?.numeroNotaFiscalProdutor}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_serie_nota_fiscal_produtor' | translate}}</span>\n <span class=\"data\">{{devolucao?.serieNotaFiscalProdutor}}</span>\n </div> \n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.devolucao_origem_mercadoria' | translate}}</span>\n <span class=\"data\">{{devolucao?.origemMercadoria?.cep}} - {{devolucao?.origemMercadoria?.endereco}}</span>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./devolucao-info.component.scss']\n})\nexport class DevolucaoInfoComponent implements AfterViewInit {\n\n @Input() agenda: any;\n\n devolucao: Devolucao;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private devolucaoService: DevolucaoService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.devolucaoService.list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({ contents }) => {\n if (!contents.length) return throwError(\"Devolução não encontrado.\");\n\n return of(contents[0]);\n }),\n finalize(() => this.loading = false)\n )\n .subscribe((devolucao: DevolucaoDto) => this.devolucao = Devolucao.fromDto(devolucao));\n }\n\n}","import * as _moment from \"moment\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { Filial } from \"../filial/filial\";\nimport { PedidoVenda } from \"../pedido-venda/pedido-venda\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nimport { ExpedicaoDto } from \"./expedicao-dto\";\nimport { PedidoVendaItem } from \"../pedido-venda-item/pedido-venda-item\";\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\nconst moment = _moment\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Expedicao {\n public id: string;\n public clienteFaturamento: Pessoa;\n public clienteRemessa: Pessoa;\n public filial: Filial;\n public transportadora: Transportadora;\n public pedidos: OrdemVenda[];\n public agenda: Agenda;\n public eixos?: number;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(expedicaoDto: ExpedicaoDto, originEntity?: string): Expedicao {\n const model: any = { ...expedicaoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"clienteFaturamento.id\",\n \"clienteFaturamento.codigo\",\n \"clienteFaturamento.nome\",\n \"clienteRemessa.id\",\n \"clienteRemessa.codigo\",\n \"clienteRemessa.nome\",\n \"filial.id\",\n \"filial.codigo\",\n \"filial.nome\",\n \"transportadora.id\",\n \"transportadora.codigo\",\n \"transportadora.placaVeiculo\",\n \"pedidoVenda.id\",\n \"agenda.id\",\n \"agenda.descricao\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Pessoa\" && model.clienteFaturamento) model.clienteFaturamento = Pessoa.fromDto(model.clienteFaturamento, \"Recebimento\");\n if (originEntity !== \"Pessoa\" && model.clienteRemessa) model.clienteRemessa = Pessoa.fromDto(model.clienteRemessa, \"Recebimento\");\n if ((originEntity !== \"Filial\" && model.filial)) model.filial = Filial.fromDto(model.filial, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && model.transportadora)) model.transportadora = Transportadora.fromDto(model.transportadora, \"Recebimento\");\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"Recebimento\");\n\n return model as Expedicao;\n }\n\n public static toDto(expedicao: Expedicao, originEntity?: string): ExpedicaoDto {\n const dto: any = { ...expedicao };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.clienteFaturamento) dto.clienteFaturamento = Pessoa.toDto(dto.clienteFaturamento, \"Recebimento\");\n if (originEntity !== \"Pessoa\" && dto.clienteRemessa) dto.clienteRemessa = Pessoa.toDto(dto.clienteRemessa, \"Recebimento\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && dto.transportadora)) dto.transportadora = Transportadora.toDto(dto.transportadora, \"Recebimento\");\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"Recebimento\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\nexport interface OrdemVenda {\n id?: string;\n expedicao?: Expedicao;\n pedidoVenda: PedidoVenda;\n itens: any[];\n}\n\nexport interface OrdemVendaItem {\n id?: string;\n pedido?: OrdemVenda;\n item: PedidoVendaItem;\n quantidade: number;\n}\n","import { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n FormArray,\n AbstractControl,\n} from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport * as _moment from \"moment\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { forkJoin, of, Subject, throwError } from \"rxjs\";\nimport { catchError, concatMap, finalize, map, takeUntil, } from \"rxjs/operators\";\nimport { FieldCustomizationService } from \"../../../utils/field-customization.service\";\nimport { FocusService } from \"../../../utils/focus.service\";\nimport {\n isValidFilter,\n mergeUnique,\n userCanVisualize,\n} from \"../../../utils/utils\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport {\n Expedicao,\n OrdemVendaItem,\n} from \"../../core/entities/expedicao/expedicao\";\nimport { ExpedicaoService } from \"../../core/entities/expedicao/expedicao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport {\n FilialService,\n PesquisarFiliaisInput,\n} from \"../../core/entities/filial/filial.service\";\nimport { PedidoVendaService } from \"../../core/entities/pedido-venda/pedido-venda.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { ExpedicaoChegadaVeiculoOverride } from \"../expedicao-chegada-veiculo.override\";\nimport { PedidoVenda } from \"../../core/entities/pedido-venda/pedido-venda\";\nimport { PedidoVendaItem } from \"../../core/entities/pedido-venda-item/pedido-venda-item\";\nimport { PedidoVendaItemService } from \"../../core/entities/pedido-venda-item/pedido-venda-item.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport {\n PedidoVendaDto,\n PesquisaPedidosVendaDto,\n} from \"../../core/entities/pedido-venda/pedido-venda-dto\";\nimport { onLookupRequest, onSearchRequest } from \"../../../utils/lookup-utils\";\nimport { ConfirmationService, SortMeta } from \"primeng/api\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from \"../../core/erp-form-config/erp-form-config-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: \"expedicao-form\",\n templateUrl: \"./expedicao-form.component.html\",\n styleUrls: [\"../../erp-senior.scss\"],\n})\nexport class ExpedicaoFormComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n public localeConfig: any = {};\n public currencyLocaleOptions: any = {};\n public permissions: any = {};\n public allPermissions: any = {};\n public pedidoAtual: FormGroup;\n\n public formGroup: FormGroup;\n public pedidoVendaForm: FormGroup;\n public itemFormGroup: FormGroup;\n public loading: boolean;\n public mainPanelCollapsed = false;\n public visibleDialog = false;\n\n private formCarregado = false;\n\n public clienteFaturamentoLookupSuggestions: Pessoa[];\n public clienteFaturamentoLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n public clienteFaturamentoAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n public clienteFaturamentoLookupSeparator = \" - \";\n public clienteFaturamentoSearchFields: FormField[];\n public clienteFaturamentoSearchGridFields: FormField[];\n public clienteFaturamentoSearchGridData: Pessoa[];\n public clienteFaturamentoSearchTotalRecords: number;\n\n public clienteRemessaLookupSuggestions: Pessoa[];\n public clienteRemessaLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n public clienteRemessaAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n public clienteRemessaLookupSeparator = \" - \";\n public clienteRemessaSearchFields: FormField[];\n public clienteRemessaSearchGridFields: FormField[];\n public clienteRemessaSearchGridData: Pessoa[];\n public clienteRemessaSearchTotalRecords: number;\n\n public filialLookupSuggestions: Filial[];\n public filialLookupDisplayFields = [\"codigo\", \"nome\"];\n public filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n public filialLookupSeparator = \" - \";\n public filialSearchFields: FormField[];\n public filialSearchGridFields: FormField[];\n public filialSearchGridData: Filial[];\n public filialSearchTotalRecords: number;\n\n public transportadoraLookupSuggestions: Transportadora[];\n public transportadoraLookupDisplayFields = [\n \"codigo\",\n \"pessoa.nome\",\n \"pessoa.cpfCnpj\",\n ];\n public transportadoraAdvancedDisplayFields = [\n \"id\",\n \"codigo\",\n \"pessoa.nome\",\n \"pessoa.cpfCnpj\",\n ];\n public transportadoraLookupSeparator = \" - \";\n public transportadoraSearchFields: FormField[];\n public transportadoraSearchGridFields: FormField[];\n public transportadoraSearchGridData: Transportadora[];\n public transportadoraSearchTotalRecords: number;\n\n public pedidoVendaLookupSuggestions: PedidoVenda[];\n public pedidoVendaLookupDisplayFields = [\"numero\", \"cliente\"];\n public pedidoVendaAdvancedDisplayFields = [\n \"id\",\n \"numero\",\n \"filial.nome\",\n \"filial.codigo\",\n \"pessoa.id\",\n \"pessoa.codigo\",\n \"pessoa.nome\",\n ];\n public pedidoVendaLookupSeparator = \" - \";\n public pedidoVendaSearchFields: FormField[];\n public pedidoVendaSearchGridFields: FormField[];\n public pedidoVendaSearchGridData: PedidoVenda[];\n public pedidoVendaSearchTotalRecords: number;\n\n public pedidoVendaItemLookupSuggestions: PedidoVendaItem[];\n public pedidoVendaItemLookupDisplayFields = [\"sequencia\", \"sku.descricao\"];\n public pedidoVendaItemAdvancedDisplayFields = [\n \"id\",\n \"sequencia\",\n \"sku.descricao\",\n ];\n public pedidoVendaItemLookupSeparator = \" - \";\n public pedidoVendaItemSearchFields: FormField[];\n public pedidoVendaItemSearchGridFields: FormField[];\n public pedidoVendaItemSearchGridData: PedidoVendaItem[];\n public pedidoVendaItemSearchTotalRecords: number;\n\n public agendaLookupSuggestions: Agenda[];\n public agendaLookupDisplayFields = [\"id\", \"descricao\"];\n public agendaAdvancedDisplayFields = [\"id\", \"descricao\"];\n public agendaLookupSeparator = \" - \";\n public agendaSearchFields: FormField[];\n public agendaSearchGridFields: FormField[];\n public agendaSearchGridData: Agenda[];\n public agendaSearchTotalRecords: number;\n\n public disableButtonSave: boolean = false;\n\n public disableOrdersButtons: boolean = true;\n\n public totalEixosContratados: number = 0;\n public totalEixosComposicao: number = 0;\n\n public ordersValid = true;\n public saveAndInitButton: any;\n\n @Input() private agenda: Agenda;\n @Input() private revalidacao: boolean;\n\n @ViewChild(\"customTemplate\")\n public customTemplate: TemplateRef<any>;\n\n @ViewChild(\"customFormFields\")\n public customFormFields: TemplateRef<any>;\n\n private ngUnsubscribe = new Subject(); \n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n constructor(\n private expedicaoService: ExpedicaoService,\n private router: Router,\n private route: ActivatedRoute,\n private messageService: MessageService,\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private hotkeysService: HotkeysService,\n private fieldCustomization: FieldCustomizationService,\n private focusService: FocusService,\n private pessoaService: PessoaService,\n private filialService: FilialService,\n private transportadoraService: TransportadoraService,\n private pedidoVendaService: PedidoVendaService,\n private pedidoVendaItemService: PedidoVendaItemService,\n private agendaService: AgendaService,\n private override: ExpedicaoChegadaVeiculoOverride,\n private confirmationService: ConfirmationService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private hasChangeService: HasChangeService\n ) {\n this.formGroup = this.getFormGroup();\n this.pedidoVendaForm = this.getPedidoVendaForm();\n this.itemFormGroup = this.getOrdemVendaItemForm();\n }\n\n public ngOnInit() {\n this.route.data\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => this.onRouteDataChange(data));\n\n this.route.params\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ agenda }) => {\n if (agenda != \"new\") {\n this.getExpedicao(agenda);\n } else {\n this.buscarFilial();\n }\n });\n\n this.clienteFaturamentoSearchFields = this.getClienteSearchFields();\n this.clienteFaturamentoSearchGridFields = this.getClienteSearchGridFields();\n\n this.clienteRemessaSearchFields = this.getClienteSearchFields();\n this.clienteRemessaSearchGridFields = this.getClienteSearchGridFields();\n\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n\n this.pedidoVendaSearchFields = this.getPedidoVendaSearchFields();\n this.pedidoVendaSearchGridFields = this.getPedidoVendaSearchGridFields();\n\n this.pedidoVendaItemSearchFields = this.getPedidoVendaItemSearchFields();\n this.pedidoVendaItemSearchGridFields = this.getPedidoVendaItemSearchGridFields();\n\n this.agendaSearchFields = this.getAgendaSearchFields();\n this.agendaSearchGridFields = this.getAgendaSearchGridFields();\n\n this.setHotkeys();\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n this.setPedidosValueChanges();\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message); \n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message); \n\n this.revalidacaoTransportadora ();\n this.verificaSeTemAlteracao();\n }\n \n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n private revalidacaoTransportadora () {\n this.formGroup.get(\"transportadora\").valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((_) => {\n const transp = this.formGroup.get(\"transportadora\").value;\n if (this.erpProcessService && transp) { \n this.erpProcessData.transportadoraId = transp.id; \n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n }); \n }\n\n public abrirPedidoVenda(pedidoVenda?: PedidoVenda) {\n const buttons = document\n .getElementById(\"pedidoVenda\")\n .getElementsByTagName(\"button\");\n\n if (!buttons.length) {\n return;\n }\n\n this.pedidoVendaForm.patchValue({ pedidoVenda });\n buttons[0].click();\n }\n\n public excluirPedidoVenda(index: number) {\n (this.formGroup.get(\"pedidos\") as FormArray).removeAt(index);\n }\n\n public abrirPedidoVendaItem(\n pedido: FormGroup,\n pedidoVendaItem?: OrdemVendaItem\n ) {\n this.itemFormGroup.patchValue(\n pedidoVendaItem || { item: undefined, quantidade: 1 }\n );\n this.pedidoAtual = pedido;\n this.visibleDialog = true;\n }\n\n public excluirPedidoVendaItem(id: string, pedido: FormGroup) {\n const index = (\n (pedido.get(\"itens\") as FormArray).value as OrdemVendaItem[]\n ).findIndex((item) => item.item.id === id);\n if (index >= 0) {\n (pedido.get(\"itens\") as FormArray).removeAt(index);\n }\n }\n\n public setPedidosValueChanges() {\n (this.formGroup.get(\"pedidos\") as FormArray).valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n const pedidosLength = (this.formGroup.get(\"pedidos\") as FormArray)\n .length;\n this.ordersValid = pedidosLength > 0;\n this.formGroup\n .get(\"filial\")\n [pedidosLength >= 1 ? \"disable\" : \"enable\"]();\n });\n }\n\n public selecionarPedidoVenda(pedidoVenda: PedidoVenda) {\n const checkOrders = (order: any) => order.pedidoVenda.id === pedidoVenda.id;\n const pedidos = this.formGroup.get(\"pedidos\").value;\n\n if (pedidos.find(checkOrders)) {\n return this.addMessage(\n \"warn\",\n this.translate.instant(\n \"yms.erp.pedido_venda_search_already_selected_summary\"\n ),\n this.translate.instant(\n \"yms.erp.pedido_venda_search_already_selected_detail\"\n )\n );\n }\n\n (this.formGroup.get(\"pedidos\") as FormArray)\n .push(this.getOrdemVendaForm(pedidoVenda, true));\n\n if (\n !!pedidoVenda &&\n (this.formGroup.get(\"pedidos\") as FormArray).length === 1 &&\n !this.formGroup.get(\"clienteFaturamento\").value\n ) {\n this.buscarClienteAFaturar(pedidoVenda as any);\n }\n }\n\n public selecionarPedidoVendaItem() {\n const item = this.itemFormGroup.value;\n const pedido = this.pedidoAtual.get(\"itens\").value;\n const checkOrderItens = (order: any) => order.item.id === item.item.id;\n if (pedido && item && item.item && pedido.find(checkOrderItens))\n return this.addMessage(\n \"warn\",\n this.translate.instant(\n \"yms.erp.item_pedido_venda_search_already_selected_summary\"\n ),\n this.translate.instant(\n \"yms.erp.item_pedido_venda_search_already_selected_detail\"\n )\n );\n const form = this.getOrdemVendaItemForm();\n form.patchValue({ ...this.itemFormGroup.value });\n if (form.get(\"item\").value == undefined) return;\n (this.pedidoAtual.get(\"itens\") as FormArray).push(form);\n this.visibleDialog = false;\n }\n\n public selecionarPedidoVendaItemAutomaticamente(\n itens: any,\n pedidoVenda: any\n ) {\n if (itens && itens.length === 1) {\n const form = this.getOrdemVendaItemForm();\n const pedidos = this.getPedidos();\n const pedidoAtual: any = pedidos.filter((pedido: any) =>\n pedido && pedido.value.pedidoVenda\n ? pedido.value.pedidoVenda.id === pedidoVenda.id\n : false\n );\n this.itemFormGroup\n .get(\"item\")\n .setValue(itens.length === 1 ? itens[0] : {});\n this.itemFormGroup.get(\"quantidade\").setValue(1);\n form.patchValue({ ...this.itemFormGroup.value });\n (pedidoAtual[0].get(\"itens\") as FormArray).push(form);\n this.visibleDialog = false;\n }\n }\n\n public getPedidos(): AbstractControl[] {\n return (this.formGroup.get(\"pedidos\") as FormArray).controls;\n }\n\n public buildTokens(itens: OrdemVendaItem[]) {\n return itens.map((item: any) => {\n const value = item && item.item ? item.item : item;\n const produto = value.sku ? value.sku : value.produto;\n return {\n id: value.id,\n label: `Produto: ${produto.descricao}, Sequencia: ${value.sequencia}`,\n };\n });\n }\n\n public ngAfterViewInit() {\n const inputList = document.getElementsByTagName(\"input\");\n const selectedInput = Array.from(inputList).find((f: any) => !f.disabled);\n if (selectedInput) {\n selectedInput.focus();\n }\n\n this.override.initialize();\n this.saveAndInitButton = document.getElementById(\"init\");\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n\n const statusAgenda = [\"AGUARDANDO_CONFIRMACAO_SOLICITANTE\", \"AGENDADO\", \"AGUARDANDO_CONFIRMACAO\", \"REJEITADO_POR_VALIDACAO\"];\n if (this.agenda && !statusAgenda.includes(this.agenda.status) || !this.permissions.editar) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n\n if (this.agenda && this.agenda.createdByErp) {\n this.formGroup.get(\"filial\").disable();\n this.formGroup.get(\"transportadora\").disable();\n this.formGroup.get(\"clienteRemessa\").disable();\n this.formGroup.get(\"clienteFaturamento\").disable();\n this.pedidoVendaForm.disable();\n this.itemFormGroup.disable();\n this.disableOrdersButtons = true;\n }\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.override.remove();\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+s\",\n () => {\n if (this.isNew() || this.permissions.editar) this.onSave();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+c\",\n () => {\n this.onCancel();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n public updateSuggestions(value: any) {\n if (value.agenda) {\n value.agenda.label = this.getSuggestionValue(\n [\"id\", \"descricao\"],\n \"agenda\",\n value,\n this.agendaLookupSeparator\n );\n if (value.agenda.label.trim() === this.agendaLookupSeparator.trim()) {\n delete value.agenda.label;\n }\n }\n }\n\n public getSuggestionValue(\n displayFields: string[],\n ownerEntity: string,\n value: any,\n separator: string\n ) {\n return displayFields\n .map((field) => this.getProp(value, `${ownerEntity}.${field}`))\n .reduce((acc: any, val: any) => `${acc}${separator}${val}`);\n }\n\n public onRouteDataChange(data: any) {\n const { currencySymbol, thousandsSeparator, decimalSeparator } =\n data.localeConfig.number;\n\n this.localeConfig = data.localeConfig;\n this.currencyLocaleOptions = {\n align: \"left\",\n prefix: currencySymbol,\n thousands: thousandsSeparator,\n decimal: decimalSeparator,\n };\n this.permissions = data.allPermissions.expedicao;\n this.allPermissions = data.allPermissions;\n //this.validateVisualization();\n if (data.entity) {\n const canEdit = this.permissions.editar;\n if (!canEdit) this.formGroup.disable();\n const value: any = Expedicao.fromDto(data.entity);\n this.updateSuggestions(value);\n this.formGroup.patchValue(value);\n } else {\n this.formGroup.patchValue(new Expedicao());\n }\n }\n\n public onCancel() {\n this.goBack();\n }\n\n public onSendFile(filesToDelete: any, filesToCommit: any[]) {\n const observables: any[] = [];\n\n if (!this.fieldCustomization.isEmpty(filesToDelete)) {\n observables.push(this.fieldCustomization.deleteFiles(filesToDelete));\n }\n if (!this.fieldCustomization.isEmpty(filesToCommit)) {\n observables.push(this.fieldCustomization.commitFiles(filesToCommit));\n }\n\n if (!this.fieldCustomization.isEmpty(observables)) {\n return forkJoin(observables);\n } else {\n return of({});\n }\n }\n\n public setValuesPedidoBiodisel() {\n const numeroPedidoCliente = this.formGroup.get(\"numeroPedidoCliente\").value;\n const itemPedidoCliente = this.formGroup.get(\"itemPedidoCliente\").value;\n const { value: pedidos } = this.formGroup.get(\"pedidos\");\n (pedidos || []).map((e: any) => {\n if (e && e.itens && e.itens.length) {\n e.itens[0].numeroPedidoCliente = numeroPedidoCliente;\n e.itens[0].itemPedidoCliente = itemPedidoCliente;\n }\n });\n this.formGroup.get(\"pedidos\").patchValue(pedidos);\n }\n\n public getValuesPedidoBiodisel() {\n const pedidos = this.formGroup.get(\"pedidos\").value;\n const numeroPedidoCliente = this.formGroup.get(\"numeroPedidoCliente\");\n const itemPedidoCliente = this.formGroup.get(\"itemPedidoCliente\");\n (pedidos || []).map((e: any) => {\n if (numeroPedidoCliente.value && itemPedidoCliente.value) return;\n const pedidosInterno =\n e && e.itens && e.itens.length ? e.itens[0].pedido : null;\n if (\n pedidosInterno &&\n pedidosInterno.itens &&\n pedidosInterno.itens.length\n ) {\n if (pedidosInterno.itens.length === 1) {\n numeroPedidoCliente.patchValue(\n pedidosInterno.itens[0].numeroPedidoCliente\n );\n itemPedidoCliente.patchValue(\n pedidosInterno.itens[0].itemPedidoCliente\n );\n }\n }\n });\n }\n\n public onSave(start?: boolean) {\n this.formGroup.get(\"agenda\").setValue(this.agenda);\n this.ordersValid = (this.formGroup.get(\"pedidos\") as FormArray).length > 0;\n\n if (this.formGroup.invalid || !this.ordersValid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.setValuesPedidoBiodisel();\n\n const { filesToDelete, filesToCommit } = this.fieldCustomization.getFiles(this.formGroup);\n \n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(filesToDelete, filesToCommit, start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(filesToDelete, filesToCommit, start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(filesToDelete: any, filesToCommit: any[], start: boolean) {\n this.atualizaExpedicao(filesToDelete, filesToCommit, () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n private atualizaExpedicao(\n filesToDelete: any,\n filesToCommit: any[],\n onSubscribe?: Function\n ) {\n return this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => (this.loading = false)),\n )\n .subscribe((value: any) => {\n this.formGroup.get(\"id\").setValue(value.id || null);\n\n this.onSendFile(filesToDelete, filesToCommit)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError((err: any) => {\n this.loading = false;\n return throwError(err);\n })\n )\n .subscribe(() => {\n this.addMessage(\n \"success\",\n \"saved_message_title\",\n \"saved_message_content\"\n );\n onSubscribe();\n });\n });\n }\n\n public setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace(\".\", \"\").replace(\"/\", \"\").replace(\"-\", \"\");\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService\n .list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const code = contents[0].codigo\n ? contents[0].codigo.toString()\n : \"\";\n const description = contents[0].descricao\n ? contents[0].descricao.toString()\n : \"\";\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant(\n \"yms.erp.derivacao_sem_descricao\"\n );\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n this.formGroup.get(\"transportadora\").setValue(contents[0]);\n }\n });\n }\n }\n\n public getProp(obj: any, path: any) {\n return path\n .split(\".\")\n .reduce(\n (result: any, prop: any) =>\n result[prop] === undefined ? \"\" : result[prop],\n obj\n );\n }\n\n public getExpedicao(agendaId: string) {\n this.loading = true;\n this.expedicaoService\n .list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0,\n })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => (this.loading = false))\n )\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.buscarFilial();\n return;\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao =\n contents[0].agenda && contents[0].agenda.veiculo\n ? contents[0].agenda.veiculo.eixos || 0\n : 0;\n\n const expedicao = Expedicao.fromDto(contents[0]);\n\n this.formGroup.enable();\n this.formGroup.patchValue(expedicao);\n\n expedicao.pedidos.forEach((pedido) => {\n const form = this.getOrdemVendaForm();\n form.patchValue(pedido);\n pedido.itens.forEach((item) => {\n const itemForm = this.getOrdemVendaItemForm();\n itemForm.patchValue(item);\n (form.get(\"itens\") as FormArray).push(itemForm);\n });\n (this.formGroup.get(\"pedidos\") as FormArray).push(form);\n });\n this.getValuesPedidoBiodisel();\n this.formCarregado = true;\n });\n }\n\n public onClienteFaturamentoLookupRequest(value: string) {\n onLookupRequest(\n this.clienteFaturamentoSearchFields,\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields,\n this.clienteFaturamentoLookupSeparator,\n this.pessoaService,\n value,\n \"cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.clienteFaturamentoLookupSuggestions = list.contents;\n });\n }\n\n public onClienteFaturamentoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getClienteSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = `${filterQuery}${\n filterQuery ? \" and \" : \"\"\n }situacao eq ATIVO and cliente eq true`;\n\n const displayFields = mergeUnique(\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields\n );\n this.pessoaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.clienteFaturamentoLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.clienteFaturamentoLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.clienteFaturamentoSearchGridData = list.contents;\n this.clienteFaturamentoSearchTotalRecords = list.totalElements;\n });\n }\n\n public onClienteRemessaLookupRequest(value: string) {\n onLookupRequest(\n this.clienteRemessaSearchFields,\n this.clienteRemessaLookupDisplayFields,\n this.clienteRemessaAdvancedDisplayFields,\n this.clienteRemessaLookupSeparator,\n this.pessoaService,\n value,\n \"cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.clienteRemessaLookupSuggestions = list.contents;\n });\n }\n\n public onClienteRemessaSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getClienteSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = `${filterQuery}${\n filterQuery ? \" and \" : \"\"\n }situacao eq ATIVO and cliente eq true`;\n\n const displayFields = mergeUnique(\n this.clienteRemessaLookupDisplayFields,\n this.clienteRemessaAdvancedDisplayFields\n );\n this.pessoaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.clienteRemessaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.clienteRemessaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.clienteRemessaSearchGridData = list.contents;\n this.clienteRemessaSearchTotalRecords = list.totalElements;\n });\n }\n\n public onFilialSelect(event: any) {\n this.disableOrdersButtons = !event || this.agenda.createdByErp;\n }\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce(\n (a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n },\n {\n cnpjs: this.agenda.planta.cnpj,\n pagina: { limit: 10, offset: 0 },\n } as PesquisarFiliaisInput\n );\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n (list: any) =>\n (this.filialLookupSuggestions = list.filiais.map((filial: any) =>\n Filial.fromDto(filial)\n ))\n );\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && {\n campo: sort[0].field,\n ordenacao: sort[0].order > 0 ? \"Asc\" : \"Desc\",\n };\n const filterInput = this.getFilialSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .reduce(\n (a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n },\n {\n cnpjs: this.agenda.planta.cnpj,\n pagina: {\n limit: rows,\n offset: page,\n listaOrdenacao: sortFormatted ? [{ ...sortFormatted }] : null,\n },\n } as PesquisarFiliaisInput\n );\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n public onTransportadoraLookupRequest(value: string) {\n onLookupRequest(\n this.transportadoraSearchFields,\n this.transportadoraLookupDisplayFields,\n this.transportadoraAdvancedDisplayFields,\n this.transportadoraLookupSeparator,\n this.transportadoraService,\n value\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n public onTransportadoraSearchRequest(event: any) {\n onSearchRequest(\n this.transportadoraSearchFields,\n this.transportadoraLookupDisplayFields,\n this.transportadoraAdvancedDisplayFields,\n this.transportadoraLookupSeparator,\n this.transportadoraService,\n event\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onPedidoVendaLookupRequest(value: string) {\n const sort = this.pedidoVendaLookupDisplayFields.map((field: any) => ({\n field,\n order: 1,\n }));\n\n let filterQuery = this.getPedidoVendaSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n filterQuery = `${filterQuery}${\n filterQuery ? \" and \" : \"\"\n }situacaoPedido eq ABERTO_TOTAL or situacaoPedido eq ABERTO_PARCIAL`;\n\n const pedidos = this.formGroup.get(\"pedidos\").value || [];\n let pedidosIdsQuery = \"\";\n pedidos.map((e: any) =>\n e && e.pedidoVenda && e.pedidoVenda.id\n ? (pedidosIdsQuery += ` and (id ne '${e.pedidoVenda.id}')`)\n : false\n );\n if (pedidos.length && pedidosIdsQuery) filterQuery += pedidosIdsQuery;\n\n const displayFields = mergeUnique(\n this.pedidoVendaLookupDisplayFields,\n this.pedidoVendaAdvancedDisplayFields\n );\n this.pedidoVendaService\n .list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaLookupSuggestions = list.contents;\n });\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy =\n sort && sort.length\n ? sort.map((s: any) => ({\n campo: s.field,\n ordenacao: s.order === 1 ? \"Asc\" : \"Desc\",\n }))\n : [];\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy,\n };\n }\n\n public onPedidoVendaSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const sort = multiSortMeta || [];\n\n const filial = this.formGroup.get(\"filial\").value;\n\n const pedidos = this.formGroup.get(\"pedidos\").value || [];\n let pedidosSelecionados: any = [];\n pedidos.map((e: any) =>\n e && e.pedidoVenda && e.pedidoVenda.id\n ? pedidosSelecionados.push(e.pedidoVenda.id)\n : false\n );\n\n const pesquisa: PesquisaPedidosVendaDto = {\n pessoaId: filterData[\"cliente\"] ? filterData[\"cliente\"].id : null,\n filialId: filial ? filial.id : null,\n tipoAgendamentoId: this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n filialPedido: filterData[\"filialPedido\"],\n pedidosSelecionados,\n numero: filterData[\"numero\"],\n pagina: this.getRecPagina(first, rows, sort),\n };\n\n this.pedidoVendaService\n .pesquisarPedidosVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaSearchGridData = list.contents;\n this.pedidoVendaSearchTotalRecords = list.totalElements;\n });\n }\n\n public onPedidoVendaItemLookupRequest(value: any) {\n const sort = this.pedidoVendaItemLookupDisplayFields.map((field: any) => ({\n field,\n order: 1,\n }));\n\n const filialId = (this.formGroup.get(\"filial\").value || {}).id;\n const pedidoId = (this.pedidoAtual.get(\"pedidoVenda\").value || {}).id;\n\n const pesquisa = {\n pedidoId,\n filialId,\n sequencia: !isNaN(value) ? value : null,\n tipoAgendamentoId:\n this.agenda && this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n pagina: this.getRecPagina(0, 10, sort),\n };\n\n this.pedidoVendaItemService\n .pesquisarItensPedidoVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaItemLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaItemLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaItemLookupSuggestions = list.contents;\n });\n }\n\n public onPedidoVendaItemSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const sort = multiSortMeta;\n\n const filialId = (this.formGroup.get(\"filial\").value || {}).id;\n const pedidoId = (this.pedidoAtual.get(\"pedidoVenda\").value || {}).id;\n\n const pesquisa = {\n pedidoId,\n filialId,\n sequencia: filterData[\"sequencia\"],\n tipoAgendamentoId:\n this.agenda && this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n pagina: this.getRecPagina(first, rows, sort),\n };\n\n this.pedidoVendaItemService\n .pesquisarItensPedidoVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaItemLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaItemLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.pedidoVendaItemSearchGridData = list.contents;\n this.pedidoVendaItemSearchTotalRecords = list.totalElements;\n });\n }\n\n public getAutomaticItensOrder(pedidoVenda: any) {\n if (pedidoVenda && pedidoVenda.id) {\n const sort = this.pedidoVendaItemLookupDisplayFields.map(\n (field: any) => ({ field, order: 1 })\n );\n const filialId = (this.formGroup.get(\"filial\").value || {}).id;\n\n const pesquisa = {\n pedidoId: pedidoVenda.id,\n filialId,\n tipoAgendamentoId:\n this.agenda && this.agenda.tipoAgendamento\n ? this.agenda.tipoAgendamento.id\n : null,\n pagina: this.getRecPagina(0, 10, sort),\n };\n\n this.pedidoVendaItemService\n .pesquisarItensPedidoVenda(pesquisa)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.pedidoVendaItemLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.pedidoVendaItemLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.selecionarPedidoVendaItemAutomaticamente(\n list.contents,\n pedidoVenda\n );\n });\n }\n }\n\n public onAgendaLookupRequest(value: string) {\n const sort = this.agendaLookupDisplayFields.map((field: any) => ({\n field,\n order: 1,\n }));\n\n const filterQuery = this.getAgendaSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n const displayFields = mergeUnique(\n this.agendaLookupDisplayFields,\n this.agendaAdvancedDisplayFields\n );\n this.agendaService\n .listExternalAgenda({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.agendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.agendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.agendaLookupSuggestions = list.contents;\n });\n\n /*{CA:ON_AGENDA_LOOKUP_REQUEST_END:START}*/\n /*{CA:ON_AGENDA_LOOKUP_REQUEST_END:END}*/\n }\n\n public onAgendaSearchRequest(event: any) {\n /*{CA:ON_AGENDA_SEARCH_REQUEST_START:START}*/\n /*{CA:ON_AGENDA_SEARCH_REQUEST_START:END}*/\n\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getAgendaSearchFields()\n .filter(\n ({ name }) => filterData[name] != undefined && filterData[name] != \"\"\n )\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date)\n return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time)\n return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime)\n return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String)\n return `containing(lower(${name}), lower('${value.replace(\n /'/g,\n \"\\\\'\"\n )}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(\n this.agendaLookupDisplayFields,\n this.agendaAdvancedDisplayFields\n );\n this.agendaService\n .listExternalAgenda({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.agendaLookupDisplayFields\n .map((field) => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.agendaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.agendaSearchGridData = list.contents;\n this.agendaSearchTotalRecords = list.totalElements;\n });\n\n /*{CA:ON_AGENDA_SEARCH_REQUEST_END:START}*/\n /*{CA:ON_AGENDA_SEARCH_REQUEST_END:END}*/\n }\n\n private getFormGroup() {\n const formGroup = this.formBuilder.group({\n id: [{ value: undefined, disabled: true }, Validators.compose([])],\n clienteFaturamento: [\n { value: undefined, disabled: false },\n Validators.compose([Validators.required]),\n ],\n clienteRemessa: [{ value: undefined, disabled: false }],\n filial: [\n { value: undefined, disabled: false },\n Validators.compose([Validators.required]),\n ],\n transportadora: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n pedidos: this.formBuilder.array([]),\n agenda: [\n { value: undefined, disabled: false },\n Validators.compose([Validators.required]),\n ],\n numeroAgendamentoCliente: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n numeroPedidoCliente: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n itemPedidoCliente: [\n { value: undefined, disabled: false },\n Validators.compose([]),\n ],\n createdBy: [{ value: undefined, disabled: true }, Validators.compose([])],\n createdDate: [\n { value: undefined, disabled: true },\n Validators.compose([]),\n ],\n lastModifiedBy: [\n { value: undefined, disabled: true },\n Validators.compose([]),\n ],\n lastModifiedDate: [\n { value: undefined, disabled: true },\n Validators.compose([]),\n ],\n });\n\n /*{CA:GET_FORM_CONTROLS:START}*/\n /*{CA:GET_FORM_CONTROLS:END}*/\n\n return formGroup;\n }\n\n private getClienteSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getClienteSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"site\",\n label: this.translate.instant(\"yms.erp.pessoa_site\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.filial_nome\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.filial_nome\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\"),\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\"),\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\"),\n }),\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\"),\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\"),\n }),\n ];\n }\n\n private getPedidoVendaSearchFields() {\n const clientSuggestions$ = new Subject<any[]>();\n const clientSearch$ = new Subject<any>();\n\n return [\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.pedido_venda_numero\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"filialPedido\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"cliente\",\n label: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n type: FieldType.Lookup,\n searchFields: this.getClienteSearchFields(),\n searchGridFields: this.getClienteSearchGridFields(),\n suggestionsObservable: clientSuggestions$,\n searchObservable: clientSearch$,\n emptyMessage: \"Nenhuma sugestão encontrada\",\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n onLookupRequest: (value: string) => {\n onLookupRequest(\n this.clienteFaturamentoSearchFields,\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields,\n this.clienteFaturamentoLookupSeparator,\n this.pessoaService,\n value,\n \"situacao eq ATIVO and cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => clientSuggestions$.next(list.contents));\n },\n onSearchRequest: (event: any) => {\n onSearchRequest(\n this.clienteFaturamentoSearchFields,\n this.clienteFaturamentoLookupDisplayFields,\n this.clienteFaturamentoAdvancedDisplayFields,\n this.clienteFaturamentoLookupSeparator,\n this.pessoaService,\n event,\n \"situacao eq ATIVO and cliente eq true\"\n )\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n clientSearch$.next({\n totalRecords: list.totalElements,\n gridData: list.contents,\n });\n });\n },\n dataKey: \"id\",\n lookupDisplayField: \"label\",\n searchTitle: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n searchEmptyTitle: this.translate.instant(\"yms.erp.nothing_found\"),\n filterLabel: this.translate.instant(\"yms.erp.filter\"),\n filterTitle: this.translate.instant(\"yms.integration.filters\"),\n clearLabel: this.translate.instant(\"yms.erp.clear\"),\n cancelLabel: this.translate.instant(\"yms.erp.cancel\"),\n selectLabel: this.translate.instant(\"yms.erp.select\"),\n tooltip: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n }),\n ];\n }\n\n private getPedidoVendaSearchGridFields() {\n return [\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.pedido_venda_numero\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"filial.nome\",\n label: this.translate.instant(\"yms.erp.filial\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"filial.codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"pessoa.nome\",\n label: this.translate.instant(\"yms.erp.pessoa_cliente_label\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"pessoa.codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_cliente_codigo_label\"),\n type: FieldType.Integer,\n }),\n ];\n }\n\n private getPedidoVendaItemSearchFields() {\n return [\n new FormField({\n name: \"sequencia\",\n label: this.translate.instant(\"yms.erp.pedido_venda_item_sequencia\"),\n type: FieldType.Integer,\n }),\n ];\n }\n\n private getPedidoVendaItemSearchGridFields() {\n return [\n ...this.getPedidoVendaItemSearchFields(),\n new FormField({\n name: \"sku.descricao\",\n label: this.translate.instant(\"yms.erp.produto\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getAgendaSearchFields() {\n const searchFields = [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_AGENDA_SEARCH_FIELDS:START}*/\n /*{CA:GET_AGENDA_SEARCH_FIELDS:END}*/\n\n return searchFields;\n }\n\n private getAgendaSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_AGENDA_SEARCH_GRID_FIELDS:START}*/\n /*{CA:GET_AGENDA_SEARCH_GRID_FIELDS:END}*/\n\n return searchGridFields;\n }\n\n private getDerivacaoSearchFields() {\n const searchFields = [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_DERIVACAO_SEARCH_FIELDS:START}*/\n /*{CA:GET_DERIVACAO_SEARCH_FIELDS:END}*/\n\n return searchFields;\n }\n\n private getDerivacaoSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n\n /*{CA:GET_DERIVACAO_SEARCH_GRID_FIELDS:START}*/\n /*{CA:GET_DERIVACAO_SEARCH_GRID_FIELDS:END}*/\n\n return searchGridFields;\n }\n\n private goBack() {\n const previousRoute = \"../\";\n this.router.navigate([previousRoute], { relativeTo: this.route.parent });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n if (control instanceof FormControl)\n control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup)\n this.validateAllFormFields(control);\n });\n\n this.focusService.focusFirstInvalidInput();\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n const expedicaoDto = Expedicao.toDto(value);\n\n let observable;\n\n if (this.isNew() && !value.id) {\n observable = this.expedicaoService.insert(expedicaoDto);\n } else {\n const id = value.id;\n observable = this.expedicaoService.update(id, expedicaoDto);\n }\n\n return observable;\n }\n\n private validateVisualization() {\n if (!userCanVisualize(this.formGroup, this.allPermissions)) {\n this.addMessage(\n \"error\",\n \"yms.erp.cannot_visualize_form_summary\",\n \"yms.erp.cannot_visualize_form_detail\"\n );\n }\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private getPedidoVendaForm() {\n return this.formBuilder.group({\n pedidoVenda: [undefined],\n });\n }\n\n private getOrdemVendaForm(\n pedidoVenda?: PedidoVenda,\n getAutomaticItensOrder?: boolean\n ) {\n if (getAutomaticItensOrder) this.getAutomaticItensOrder(pedidoVenda);\n return this.formBuilder.group({\n id: [undefined],\n pedidoVenda: [pedidoVenda],\n itens: this.formBuilder.array([]),\n });\n }\n\n private getOrdemVendaItemForm(pedidoVendaItem?: PedidoVendaItem) {\n return this.formBuilder.group({\n id: [undefined],\n pedido: [undefined],\n item: [pedidoVendaItem],\n quantidade: [undefined],\n numeroPedidoCliente: [undefined],\n itemPedidoCliente: [undefined],\n });\n }\n\n private buscarFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n\n if (planta.cnpj.length !== 1) {\n this.formCarregado = true; \n return;\n } \n \n this.filialService\n .list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: [\"*\", \"empresa.nome\"],\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0]));\n this.disableOrdersButtons = false;\n }\n });\n\n this.formCarregado = true; \n }\n\n private buscarClienteAFaturar(pedidoVenda: PedidoVendaDto) {\n this.pessoaService\n .list({\n size: 1,\n page: 0,\n filterQuery: `id eq '${pedidoVenda.pessoa.id}'`,\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if ((contents || []).length !== 1) return;\n this.formGroup\n .get(\"clienteFaturamento\")\n .setValue(Pessoa.fromDto(contents[0]));\n });\n }\n}\n","import { AfterViewInit, Component, Input } from \"@angular/core\";\nimport { of, Subject, throwError } from \"rxjs\";\nimport { finalize, switchMap, takeUntil } from \"rxjs/operators\";\nimport { Expedicao } from \"../../core/entities/expedicao/expedicao\";\nimport { ExpedicaoDto } from \"../../core/entities/expedicao/expedicao-dto\";\nimport { ExpedicaoService } from \"../../core/entities/expedicao/expedicao.service\";\n\n@Component({\n selector: 'expedicao-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px\">\n <div class=\"detail-pane\" *ngIf=\"agenda && expedicao\">\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_filial' | translate}}</span>\n <span class=\"data\">{{expedicao.filial?.codigo}} - {{expedicao.filial?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_cliente_faturamento' | translate}}</span>\n <span class=\"data\">{{expedicao.clienteFaturamento?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_cliente_remessa' | translate}}</span>\n <span class=\"data\">{{expedicao.clienteRemessa?.nome}}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.expedicao_transportadora' | translate}}</span>\n <span class=\"data\">{{expedicao.transportadora?.pessoa?.nomeFantasia}}</span>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./expedicao-info.component.scss']\n})\nexport class ExpedicaoInfoComponent implements AfterViewInit {\n @Input() agenda: any;\n\n expedicao: Expedicao;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private expedicaoService: ExpedicaoService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.expedicaoService.list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({contents}) => {\n if (!contents.length) return throwError(\"Dados de expedição não encontrados\");\n\n return of (contents[0]);\n }),\n finalize(() => this.loading = false)\n )\n .subscribe((expedicao: ExpedicaoDto) => this.expedicao = Expedicao.fromDto(expedicao));\n }\n}","import { Component, Input, OnDestroy, OnInit, TemplateRef, ViewChild } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CircuitoFinalizado } from \"@seniorsistemas/yms-routines\";\nimport { ConfirmationService, LazyLoadEvent, SortMeta } from \"primeng/components/common/api\";\nimport { Table } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { catchError, finalize, takeUntil } from \"rxjs/operators\";\nimport { Agenda } from \"../core/entities/agenda/agenda\";\n/*{CA:EXTERNAL_IMPORTS:START}*/\n/*{CA:EXTERNAL_IMPORTS:END}*/\nimport { LogIntegracao } from \"../core/entities/log-integracao/log-integracao\";\nimport { LogIntegracaoService } from \"../core/entities/log-integracao/log-integracao.service\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@CircuitoFinalizado({\n header: 'Logs de integração YMS/ERP',\n name: 'yms.integracao.erpagrox'\n})\nexport class LogIntegracaoDescritor {\n\n}\n\n@Component({\n templateUrl: \"./log-integracao.component.html\",\n styleUrls: [\n '../erp-senior.scss'\n ],\n providers: [\n ConfirmationService,\n /*{CA:COMPONENT_PROVIDERS:START}\n /*{CA:COMPONENT_PROVIDERS:END}*/\n ],\n /*{CA:COMPONENT_CONFIG:START}*/\n /*{CA:COMPONENT_CONFIG:END}*/\n})\nexport class LogIntegracaoComponent extends LogIntegracaoDescritor implements OnInit, OnDestroy /*{CA:CLASS_INTERFACES:START}*/ /*{CA:CLASS_INTERFACES:END}*/ {\n @Input() agenda: Agenda\n\n public allPermissions: any = {};\n public permissions: any = {};\n public localeConfig: any = {};\n\n public currentListParams: ListParams = { page: 0, size: 10, sort: [], filterData: {} };\n public gridData: LogIntegracao[];\n public gridColumns: any[];\n public showLoader: boolean;\n public totalRecords: number;\n public selection: LogIntegracao[];\n\n public serverError: boolean = false;\n\n @ViewChild(\"logIntegracaoTable\")\n public table: Table;\n\n @ViewChild(\"customTemplate\")\n public customTemplate: TemplateRef<any>;\n\n @ViewChild(\"customFilterFields\")\n public customFilterFields: TemplateRef<any>;\n\n @ViewChild(\"customGridColgroup\")\n public customGridColgroup: TemplateRef<any>;\n\n @ViewChild(\"customGridHeader\")\n public customGridHeader: TemplateRef<any>;\n\n @ViewChild(\"customGridBody\")\n public customGridBody: TemplateRef<any>;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n private ngUnsubscribe = new Subject();\n private xmlFormatter: any;\n\n constructor(\n /*{CA:INJECTIONS:START}*/\n /*{CA:INJECTIONS:END}*/\n private route: ActivatedRoute,\n private logIntegracaoService: LogIntegracaoService,\n private translate: TranslateService,\n ) {\n super();\n this.xmlFormatter = require('xml-formatter') || ((payload: string, confs?: any) => payload);\n }\n\n public ngOnInit() {\n /*{CA:ON_INIT_START:START}*/\n /*{CA:ON_INIT_START:END}*/\n\n this.gridColumns = this.getGridColumns();\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n /*{CA:ON_INIT_END:START}*/\n /*{CA:ON_INIT_END:END}*/\n }\n\n public ngOnDestroy() {\n /*{CA:ON_DESTROY_START:START}*/\n /*{CA:ON_DESTROY_START:END}*/\n\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n /*{CA:ON_DESTROY_END:START}*/\n /*{CA:ON_DESTROY_END:END}*/\n }\n\n public onRouteDataChange(data: any) {\n /*{CA:ON_ROUTE_DATA_CHANGE_START:START}*/\n /*{CA:ON_ROUTE_DATA_CHANGE_START:END}*/\n\n this.allPermissions = data.allPermissions;\n this.permissions = data.allPermissions.logIntegracao;\n this.localeConfig = data.localeConfig;\n\n /*{CA:ON_ROUTE_DATA_CHANGE_END:START}*/\n /*{CA:ON_ROUTE_DATA_CHANGE_END:END}*/\n }\n\n // Verifica se o objeto possui um valor que foi alterado para \"\" (String vazia) ao inves de null ou undefined\n public onSearch() {\n this.resetGrid();\n }\n \n public onGridChange(event: LazyLoadEvent) {\n /*{CA:ON_GRID_CHANGE_START:START}*/\n /*{CA:ON_GRID_CHANGE_START:END}*/\n\n const size = event.rows;\n const page = event.first / size;\n const sort = event.multiSortMeta;\n\n return this.updateGrid({ page, size, sort });\n\n /*{CA:ON_GRID_CHANGE_END:START}*/\n /*{CA:ON_GRID_CHANGE_END:END}*/\n }\n\n public getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n private getGridColumns() {\n const gridColumns = [\n { field: \"nome\", header: this.translate.instant(\"yms.integration.log_integracao_nome\") },\n { field: \"entradaEm\", header: this.translate.instant(\"yms.integration.log_integracao_entrada_em\") },\n { field: \"saidaEm\", header: this.translate.instant(\"yms.integration.log_integracao_saida_em\") }\n ];\n\n /*{CA:GET_GRID_COLUMNS:START}*/\n /*{CA:GET_GRID_COLUMNS:END}*/\n\n return gridColumns;\n }\n\n private updateGrid(listParams: ListParams = {}) {\n this.showLoader = true;\n\n this.currentListParams = { ...this.currentListParams, ...listParams };\n const { page, size } = this.currentListParams;\n\n const sort: SortMeta[] = [{ field: 'entradaEm', order: -1 }];\n\n this.logIntegracaoService\n .list({ page, size, sort, filterQuery: `agenda eq '${this.agenda.id}'`, displayFields: [\"*\"] })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n catchError(err => {\n this.serverError = true;\n throw err;\n }),\n finalize(() => {\n this.showLoader = false;\n })\n )\n .subscribe((list: any) => {\n this.selection = [];\n this.gridData = list.contents;\n this.totalRecords = list.totalElements;\n this.serverError = false;\n });\n }\n\n getPayload(payload: string) {\n if (payload[0] == \"{\") {\n return JSON.stringify(JSON.parse(payload), null, 2);\n\n }\n else if (payload[0] === \"<\") {\n return this.xmlFormatter(payload);\n } else {\n return payload;\n }\n }\n\n resetGrid(listParams?: ListParams) {\n if (listParams) this.currentListParams = { ...this.currentListParams, ...listParams };\n this.currentListParams = { ...this.currentListParams, page: 0, sort: [] };\n this.table.reset();\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n });\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\ninterface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterData?: any;\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Filial } from \"../filial/filial\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { ProcessoAvulsoDto } from \"./processo-avulso-dto\";\n\nexport class ProcessoAvulso {\n filial: Filial;\n agenda: Agenda;\n\n static fromDto(processoAvulsoDto: ProcessoAvulsoDto) {\n const model: any = { ...processoAvulsoDto };\n model.filial = Filial.fromDto(model.filial);\n return model;\n }\n\n static toDto(processoAvulso: ProcessoAvulso) {\n const dto = { ...processoAvulso };\n dto.filial = Filial.toDto(dto.filial);\n return dto;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { ProcessoAvulso } from \"../core/entities/processo-avulso/processo-avulso\";\nimport { ProcessoAvulsoService } from \"../core/entities/processo-avulso/processo-avulso.service\";\n\n@Injectable()\nexport class ProcessoAvulsoChegadaVeiculoOverride {\n private readonly AVULSO_KEY = \"ERP_SENIOR_PROCESSO_AVULSO\"\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private processoAvulsoService: ProcessoAvulsoService) {\n }\n\n public initialize() {\n this.override.addOverride(this.AVULSO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.AVULSO_KEY);\n } \n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.processoAvulsoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({contents}) => contents.length ? contents[0] : null),\n mergeMap((avulso: ProcessoAvulso) => {\n if (!avulso) return throwError(\"Os dados da guia ERP Senior não foram informados\");\n\n return this.processoAvulsoService.registrarChegada({\n processoAvulso: avulso,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n })\n })\n )\n }\n}","import { Component, OnDestroy, OnInit, Input, AfterViewInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormControl, FormArray, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport { ReplaySubject, Subject } from \"rxjs\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { takeUntil, finalize, concatMap } from \"rxjs/operators\";\nimport { ProcessoAvulso } from \"../../core/entities/processo-avulso/processo-avulso\";\nimport { ProcessoAvulsoService } from \"../../core/entities/processo-avulso/processo-avulso.service\";\nimport { ConfirmationService, MessageService, SortMeta } from \"primeng/api\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { PesquisarFiliaisInput, FilialService } from \"../../core/entities/filial/filial.service\";\nimport { isValidFilter } from \"../../../utils/utils\";\nimport { ProcessoAvulsoChegadaVeiculoOverride } from \"../processo-avulso-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from \"../../core/erp-form-config/erp-form-config-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\n@Component({\n selector: 'processo-avulso-form',\n templateUrl: './processo-avulso-form.component.html'\n})\nexport class ProcessoAvulsoFormComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() agenda: Agenda;\n\n formGroup: FormGroup;\n loading = false;\n saveAndInitButton: HTMLButtonElement;\n\n filialSearchFields: FormField[];\n filialSearchGridFields: FormField[];\n filialSearchGridData: Filial[];\n filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n filialLookupSeparator = \" - \";\n filialLookupSuggestions: Filial[];\n filialSearchTotalRecords: number;\n public permissions: any = {};\n \n private formCarregado = false;\n\n private readonly ngUnsubscribe = new Subject<void>();\n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n constructor(\n private fb: FormBuilder,\n private router: Router,\n private route: ActivatedRoute,\n private filialService: FilialService,\n private processoAvulsoService: ProcessoAvulsoService,\n private messageService: MessageService,\n private processoAvulsoOverride: ProcessoAvulsoChegadaVeiculoOverride,\n private translate: TranslateService,\n private confirmationService: ConfirmationService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private hasChangeService: HasChangeService\n ) { }\n\n ngOnInit() {\n this.formGroup = this.fb.group({\n id: [undefined],\n filial: [undefined, Validators.required],\n agenda: [undefined]\n })\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n\n this.getProcessoAvulso();\n\n this.formGroup.get(\"filial\").valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((_) => {\n const fil = this.formGroup.get(\"filial\").value;\n if (this.erpProcessService && fil) {\n this.erpProcessData.filialId = fil.id;\n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n });\n this.processoAvulsoOverride.initialize();\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message); \n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n\n this.verificaSeTemAlteracao();\n }\n\n public onRouteDataChange(data: any) {\n this.permissions = data.allPermissions.agenda;\n }\n\n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n ngAfterViewInit() {\n this.saveAndInitButton = document.getElementById('init') as HTMLButtonElement;\n\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.processoAvulsoOverride.remove();\n }\n\n onSave(start?: boolean) {\n if (this.formGroup.invalid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n this.formGroup.patchValue({ ...ProcessoAvulso.fromDto(response) });\n this.successMessage();\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) =>\n this.filialLookupSuggestions = list.filiais.map((filial: any) => Filial.fromDto(filial)));\n }\n\n onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [ { ...(sortFormatted) } ] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n\n }\n\n private getSaveObservable() {\n const { value } = this.formGroup;\n value.agenda = this.agenda;\n\n const processoAvulsoDto = ProcessoAvulso.toDto(value);\n\n if (!!value.id) {\n return this.processoAvulsoService.update(value.id, processoAvulsoDto);\n }\n return this.processoAvulsoService.insert(processoAvulsoDto);\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n else if (control instanceof FormArray) control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n });\n }\n\n private getProcessoAvulso() {\n this.processoAvulsoService.list({ \n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n size: 1, \n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (!contents || contents.length <= 0) {\n return this.buscarFilial();\n }\n const processoAvulso = contents[0];\n this.formGroup.patchValue({ ...ProcessoAvulso.fromDto(processoAvulso) });\n this.formCarregado = true;\n });\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n })\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n })\n ];\n }\n\n private buscarFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length === 1) {\n this.filialService.list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: ['*', 'empresa.nome']\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0])); \n }\n });\n }\n this.formCarregado = true;\n }\n}","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { ProcessoAvulso } from \"../../core/entities/processo-avulso/processo-avulso\";\nimport { Subject } from \"rxjs\";\nimport { ProcessoAvulsoService } from \"../../core/entities/processo-avulso/processo-avulso.service\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: 'processo-avulso-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.filial' | translate}}</span>\n <span class=\"data\">{{processoAvulso?.filial?.nome}} - {{processoAvulso?.filial?.codigo}}</span>\n </div>\n </div>\n </div>\n `\n})\nexport class ProcessoAvulsoInfoComponent implements AfterViewInit {\n @Input() agenda: Agenda;\n loading = false;\n processoAvulso: ProcessoAvulso;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(private processoAvulsoService: ProcessoAvulsoService) {\n }\n\n ngAfterViewInit() {\n this.processoAvulsoService.list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents }) => {\n if (!contents || contents.length <= 0) return;\n this.processoAvulso = ProcessoAvulso.fromDto(contents[0]);\n })\n }\n}","import * as _moment from \"moment\";const moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { SafraDto } from \"./safra-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class Safra {\n public id?: string;\n public codigo: string;\n public descricao: string;\n public empresa: Empresa;\n public competenciaInicial?: Date;\n public competenciaFinal?: Date;\n public situacao: Situacao;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(safraDto: SafraDto, originEntity?: string): Safra {\n const model: any = { ...safraDto };\n\n model.competenciaInicial = model.competenciaInicial && moment(model.competenciaInicial).toDate();\n model.competenciaFinal = model.competenciaFinal && moment(model.competenciaFinal).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Safra\");\n\n return model as Safra;\n }\n\n public static toDto(safra: Safra, originEntity?: string): SafraDto {\n const dto: any = { ...safra };\n\n dto.competenciaInicial = dto.competenciaInicial && moment(dto.competenciaInicial).format(\"YYYY-MM-DD\");\n dto.competenciaFinal = dto.competenciaFinal && moment(dto.competenciaFinal).format(\"YYYY-MM-DD\");\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Safra\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Filial } from \"../filial/filial\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Produto } from \"../produto/produto\";\nimport { Derivacao } from \"../derivacao/derivacao\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nimport { Safra } from \"../safra/safra\";\nimport { RecebimentoOrdemCompraDto } from \"./recebimento-ordem-compra-dto\";\nimport { OrdemCompra } from \"../ordem-compra/ordem-compra\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { RecebimentoOrdemCompraFornecedor } from \"../recebimento-ordem-compra-details/recebimento-ordem-compra-fornecedor\";\n\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nconst moment = _moment\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class RecebimentoOrdemCompra {\n public id: string;\n public agenda: Agenda;\n public empresa: Empresa;\n public filial: Filial;\n public fornecedores?: RecebimentoOrdemCompraFornecedor[];\n public produto: Produto;\n public derivacao: Derivacao;\n public transportadora: Transportadora;\n public safra: Safra;\n public ordemCompra: OrdemCompra;\n public serieNotaFiscal: string;\n public numeroNotaFiscal: string;\n public chaveNotaFiscal: string;\n\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public custom?: any;\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(recebimentoOrdemCompraDto: RecebimentoOrdemCompraDto, originEntity?: string): RecebimentoOrdemCompra {\n const model: any = { ...recebimentoOrdemCompraDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n ''];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"PessoaEndereco\" && model.origemMercadoria) model.origemMercadoria = PessoaEndereco.fromDto(model.origemMercadoria, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Derivacao\" && model.derivacao) model.derivacao = Derivacao.fromDto(model.derivacao, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Transportadora\" && model.transportadora) model.transportadora = Transportadora.fromDto(model.transportadora, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Safra\" && model.safra) model.safra = Safra.fromDto(model.safra, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"OrdemCompra\" && model.ordemCompra) model.ordemCompra = OrdemCompra.fromDto(model.ordemCompra, \"RecebimentoOrdemCompra\");\n\n model.fornecedores = model.fornecedores.map((fornecedor: any) => ({ \n ...fornecedor,\n fornecedor: Pessoa.fromDto(fornecedor.fornecedor),\n origemMercadoria: PessoaEndereco.fromDto(fornecedor.origemMercadoria),\n ordens: fornecedor.ordens.map(OrdemCompra.fromDto)\n }));\n\n return model as RecebimentoOrdemCompra;\n }\n\n public static toDto(recebimentoOrdemCompra: RecebimentoOrdemCompra, originEntity?: string): RecebimentoOrdemCompraDto {\n const dto: any = { ...recebimentoOrdemCompra };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Derivacao\" && dto.derivacao) dto.derivacao = Derivacao.toDto(dto.derivacao, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Transportadora\" && dto.transportadora) dto.transportadora = Transportadora.toDto(dto.transportadora, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"Safra\" && dto.safra) dto.safra = Safra.toDto(dto.safra, \"RecebimentoOrdemCompra\");\n if (originEntity !== \"OrdemCompra\" && dto.ordemCompra) dto.ordemCompra = OrdemCompra.toDto(dto.ordemCompra, \"RecebimentoOrdemCompra\");\n\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { RecebimentoOrdemCompraService } from \"../core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service\";\nimport { RecebimentoOrdemCompra } from \"../core/entities/recebimento-ordem-compra/recebimento-ordem-compra\";\n\n@Injectable()\nexport class RecebimentoOrdemCompraChegadaVeiculoOverride {\n private readonly RECEBIMENTO_ORDEMCOMPRA_KEY = \"ERP_SENIOR_RECEBIMENTO_ORDEMCOMPRA_KEY\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private recebimentoOrdemCompraService: RecebimentoOrdemCompraService\n ) { }\n\n public initialize() {\n this.override.addOverride(this.RECEBIMENTO_ORDEMCOMPRA_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.RECEBIMENTO_ORDEMCOMPRA_KEY);\n }\n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.recebimentoOrdemCompraService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((recebimentoOrdemCompra: RecebimentoOrdemCompra) => {\n if (!recebimentoOrdemCompra) return throwError(\"Não foi possÃvel encontrar os dados de Recebimento de ordem de compra\");\n\n return this.recebimentoOrdemCompraService.registrarChegadaVeiculoRecebimentoOrdemCompra({\n recebimentoOrdemCompra,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField, IToken } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { ConfirmationService, DialogService, MessageService, SortMeta } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { concatMap, debounceTime, filter, finalize, map, mergeMap, takeUntil } from \"rxjs/operators\";\nimport { getLookupLabel, onLookupRequest, onSearchRequest } from \"../../../utils/lookup-utils\";\nimport { dialogConfig, isValidFilter } from \"../../../utils/utils\";\nimport { NotaFormComponent } from \"../../components/nota-form/nota-form.component\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { Derivacao } from \"../../core/entities/derivacao/derivacao\";\nimport { DerivacaoService } from \"../../core/entities/derivacao/derivacao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { FilialService, PesquisarFiliaisInput } from \"../../core/entities/filial/filial.service\";\nimport { OrdemCompra } from \"../../core/entities/ordem-compra/ordem-compra\";\nimport { OrdemCompraService } from \"../../core/entities/ordem-compra/ordem-compra.service\";\nimport { PessoaEndereco } from \"../../core/entities/pessoa-endereco/pessoa-endereco\";\nimport { PessoaEnderecoService } from \"../../core/entities/pessoa-endereco/pessoa-endereco.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ProdutoParams, ProdutoService } from \"../../core/entities/produto/produto.service\";\nimport { RecebimentoOrdemCompra } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra\";\nimport { RecebimentoOrdemCompraDto } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra-dto\";\nimport { RecebimentoOrdemCompraService } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service\";\nimport { Safra } from \"../../core/entities/safra/safra\";\nimport { SafraService } from \"../../core/entities/safra/safra.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { NotaValidatorService, PesquisarDocumentoResponse } from \"../../core/nota-validator.service\";\nimport { RecebimentoOrdemCompraChegadaVeiculoOverride } from \"../recebimento-ordem-compra-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { OrdemCompraFormComponent } from './../ordem-compra-form/ordem-compra-form.component';\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { ErpFormConfigService } from \"../../core/erp-form-config/erp-form-config-service\";\nimport { OrdemCompraDto } from \"../../core/entities/ordem-compra/ordem-compra-dto\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\n\nconst moment = _moment;\n\n@Component({\n selector: 'recebimento-ordem-compra-form',\n templateUrl: './recebimento-ordem-compra-form.component.html',\n styleUrls: ['../../erp-senior.scss'],\n providers: [ConfirmationService]\n})\n\nexport class RecebimentoOrdemCompraFormComponent implements OnInit, OnDestroy, AfterViewInit {\n formGroup: FormGroup;\n\n derivacaoSearchFields: FormField[];\n derivacaoSearchGridData: Derivacao[];\n derivacaoLookupDisplayFields = [\"codigo\", \"descricao\"];\n derivacaoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n derivacaoLookupSeparator = \" - \";\n derivacaoLookupSuggestions: Derivacao[];\n derivacaoSearchTotalRecords: number;\n\n filialSearchFields: FormField[];\n filialSearchGridFields: FormField[];\n filialSearchGridData: Filial[];\n filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n filialLookupSeparator = \" - \";\n filialLookupSuggestions: Filial[];\n filialSearchTotalRecords: number;\n\n fornecedorSearchFields: FormField[];\n fornecedorSearchGridData: Pessoa[];\n fornecedorLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n fornecedorAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\"];\n fornecedorLookupSeparator = \" - \";\n fornecedorLookupSuggestions: Pessoa[];\n fornecedorSearchTotalRecords: number;\n\n ordemCompraSearchFields: FormField[];\n ordemCompraSearchGridFields: FormField[];\n ordemCompraSearchGridData: OrdemCompra[];\n ordemCompraLookupDisplayFields = [\"codigo\", \"empresa.nome\"];\n ordemCompraAdvancedDisplayFields = [\"id\", \"codigo\", \"empresa.nome\", \"filial.nome\", \"pessoa.nome\"];\n ordemCompraLookupSeparator = \" - \";\n ordemCompraLookupSuggestions: OrdemCompra[];\n ordemCompraSearchTotalRecords: number;\n\n origemMercadoriaSearchFields: FormField[];\n origemMercadoriaSearchGridData: PessoaEndereco[];\n origemMercadoriaLookupDisplayFields = [\"codigo\", \"endereco\"];\n origemMercadoriaAdvancedDisplayFields = [\"id\", \"codigo\", \"endereco\", \"numero\"];\n origemMercadoriaLookupSeparator = \" - \";\n origemMercadoriaLookupSuggestions: PessoaEndereco[];\n origemMercadoriaSearchTotalRecords: number;\n\n produtoSearchFields: FormField[];\n produtoSearchGridData: Produto[];\n produtoLookupDisplayFields = [\"codigo\", \"descricao\"];\n produtoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n produtoLookupSeparator = \" - \";\n produtoLookupSuggestions: Produto[];\n produtoSearchTotalRecords: number;\n\n safraSearchFields: FormField[];\n safraSearchGridFields: FormField[];\n safraSearchGridData: Safra[];\n safraLookupDisplayFields = [\"codigo\", \"descricao\"];\n safraAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n safraLookupSeparator = \" - \";\n safraLookupSuggestions: Safra[];\n safraSearchTotalRecords: number;\n\n transportadoraSearchFields: FormField[];\n transportadoraSearchGridFields: FormField[];\n transportadoraSearchGridData: Transportadora[];\n transportadoraLookupDisplayFields = [\"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraAdvancedDisplayFields = [\"id\", \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n transportadoraLookupSeparator = \" - \";\n transportadoraLookupSuggestions: Transportadora[];\n transportadoraSearchTotalRecords: number;\n\n disableButtonSave: boolean = false;\n\n chaveNotaFiscal: string;\n\n totalEixosContratados: number = 0;\n totalEixosComposicao: number = 0;\n\n erroChaveNota = false;\n erroFornecedores = false;\n\n public notasTokens: IToken[] = [];\n public fornecedorNotasTokens: IToken[] = [];\n public fornecedorNotas = [];\n\n private formCarregado = false;\n\n ordemCompraSelecionado: any = null;\n\n public loading: boolean;\n public saveAndInitButton: any;\n public createdByErp: boolean;\n public permissions: any = {};\n\n @Input() private agenda: Agenda;\n\n private readonly ngUnsubscribe = new Subject<void>();\n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n private ordens: any;\n\n constructor(\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private filialService: FilialService,\n private pessoaService: PessoaService,\n private produtoService: ProdutoService,\n private derivacaoService: DerivacaoService,\n private transportadoraService: TransportadoraService,\n private ordemCompraService: OrdemCompraService,\n private recebimentoOrdemCompraService: RecebimentoOrdemCompraService,\n private messageService: MessageService,\n private route: ActivatedRoute,\n private router: Router,\n private origemMercadoriaService: PessoaEnderecoService,\n private safraService: SafraService,\n private override: RecebimentoOrdemCompraChegadaVeiculoOverride,\n private notaValidatorService: NotaValidatorService,\n private confirmationService: ConfirmationService,\n private dialogService: DialogService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private verificaNotaFiscal: VerificaNotafiscal,\n private hasChangeService: HasChangeService,\n ) {\n this.formGroup = this.getFormGroup();\n }\n\n public ngOnInit() {\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe(({ agenda }) => {\n if (agenda == \"new\") {\n return this.configureForm();\n }\n this.getRecebimentoOrdemCompra(agenda);\n });\n\n this.formGroup\n .get('filial')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('fornecedores')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('transportadora')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n\n this.derivacaoSearchFields = this.getDerivacaoSearchFields();\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchGridFields();\n this.fornecedorSearchFields = this.getFornecedorSearchFields();\n this.origemMercadoriaSearchFields = this.getOrigemMercadoriaSearchFields();\n this.produtoSearchFields = this.getProdutoSearchFields();\n this.safraSearchFields = this.getSafraSearchFields();\n this.safraSearchGridFields = this.getSafraSearchGridFields();\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n this.ordemCompraSearchFields = this.getOrdemCompraFields();\n this.ordemCompraSearchGridFields = this.getOrdemCompraGridFields();\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.getEmpresaFilial();\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n const statusAgenda = [\"AGUARDANDO_CONFIRMACAO_SOLICITANTE\", \"AGENDADO\", \"AGUARDANDO_CONFIRMACAO\", \"REJEITADO_POR_VALIDACAO\"];\n if (this.agenda && !statusAgenda.includes(this.agenda.status)) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n this.createdByErpDisableForm();\n\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n this.verificaSeTemAlteracao();\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n }\n\n public onRouteDataChange(data: any) {\n this.permissions = data.allPermissions.agenda;\n }\n\n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n this.override.initialize();\n this.saveAndInitButton = document.getElementById('init');\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.override.remove();\n }\n\n public createdByErpDisableForm() {\n if (this.agenda && this.agenda.createdByErp) {\n this.createdByErp = true;\n this.formGroup.get('filial').disable();\n this.formGroup.get('produto').disable();\n this.formGroup.get('derivacao').disable();\n if (!!this.formGroup.get(\"transportadora\").value) {\n this.formGroup.get('transportadora').disable();\n }\n }\n }\n\n private configureForm() {\n this.valueChanges(this.formGroup, \"filial\", this.onFilialValueChange);\n const getFilterQueryProduto = (value: any) => `produto.id eq '${value.id}' and situacao eq 'ATIVO'`;\n this.checkValuesChanges(this.formGroup, \"produto\", \"derivacao\", this.derivacaoService, getFilterQueryProduto,\n ['codigo', 'descricao'], (val) => Derivacao.fromDto(val), 10, true, true\n );\n\n (this.formGroup.get(\"fornecedores\") as FormArray).valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(fornecedores => {\n if (!!fornecedores && fornecedores.length > 0) {\n this.formGroup.get(\"produto\").disable();\n this.formGroup.get(\"derivacao\").disable();\n } else {\n this.formGroup.get(\"produto\").enable();\n this.formGroup.get(\"derivacao\").enable();\n }\n })\n\n this.createdByErpDisableForm();\n this.formCarregado = true;\n }\n\n private getEmpresaFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length !== 1) return;\n\n const filterQuery = `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`;\n this.filialService.list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const filial = contents[0];\n const empresa = contents[0].empresa;\n filial.label = `${filial.codigo} - ${filial.nome}`;\n empresa.label = `${empresa.codigo} - ${empresa.nome}`;\n this.formGroup.get('empresa').setValue(empresa);\n this.formGroup.get('filial').setValue(filial);\n this.formGroup.get('filial').enable();\n this.formGroup.get('produto').enable();\n this.formGroup.get('ordemCompra').enable();\n }\n });\n }\n\n private checkValuesChanges(formGroup: FormGroup, formControlUpdated: string, formControlDependent: string, service: any, getFilterQuery: any,\n variables: any, dtoConverter: (val: any) => any, querySize: number = 1, isChangeValidators?: boolean, clearFormControlDependent?: boolean) {\n formGroup.get(formControlUpdated)\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n debounceTime(500),\n filter(value => {\n if (isChangeValidators) {\n formGroup.get(formControlDependent).setValidators(value ? Validators.required : Validators.nullValidator);\n }\n if (clearFormControlDependent) {\n formGroup.get(formControlDependent).setValue(null);\n }\n if (!value) {\n formGroup.get(formControlDependent).setValue(null);\n formGroup.get(formControlDependent).disable();\n return false;\n }\n return true;\n }),\n mergeMap((value: any) => {\n const filterQuery = getFilterQuery(value);\n return service.list({ filterQuery, page: 0, size: querySize });\n })\n )\n .subscribe(({ contents }) => {\n if (!contents || !contents.length || contents.length > 1) {\n return formGroup.get(formControlDependent).enable();\n }\n if (contents.length === 1) {\n contents[0].label = this.translate.instant(getLookupLabel(contents[0], variables, ' - ', true));\n formGroup.get(formControlDependent).setValue(dtoConverter(contents[0]));\n } \n\n if (contents.length > 1) {\n formGroup.get(formControlDependent).enable();\n } else {\n formGroup.get(formControlDependent).disable();\n }\n });\n }\n\n public onBlurChaveNotaFiscal() {\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(this.chaveNotaFiscal, this.ordens, this.fornecedorNotasTokens)) {\n return;\n }\n\n this.removeNotaError();\n const value = this.chaveNotaFiscal;\n if (!!value) {\n this.loading = true;\n this.mensagemBuscandoNota();\n\n this.notaValidatorService.pesquisarDocumentoValidaNotaEmUso({\n filialId: (this.formGroup.get(\"filial\").value && this.formGroup.get(\"filial\").value.id) || null,\n chaveDocumento: value.trim() || \"\"\n }).pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false)\n ).subscribe((response) => {\n this.addNovaNota(response);\n });\n }\n }\n\n private valueChanges(formGroup: FormGroup, path: string, subscribe: any) {\n formGroup.get(path)\n .valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(value => subscribe(value, formGroup));\n }\n\n /**PRODUTO DEPENDE DE FILIAL. ORDEM COMPRA DEPENDE DE FILIAL */\n private onFilialValueChange = (filial: Filial, formGroup: FormGroup) => {\n this.changeFormGroupValue(filial, \"produto\", formGroup);\n }\n\n private onFornecedorChange = (fornecedor: PessoaEndereco, formGroup: FormGroup) => {\n this.changeFormGroupValue(fornecedor, \"origemMercadoria\", formGroup);\n this.changeFormGroupValue(fornecedor, \"ordens\", formGroup);\n }\n\n private changeFormGroupValue(isAny: any, formControl: string, formGroup: any) {\n if (!isAny) {\n formGroup.get(formControl).setValue(undefined);\n formGroup.get(formControl).disable();\n return;\n }\n\n formGroup.get(formControl).enable();\n }\n\n public getRecebimentoOrdemCompra(agendaId: string) {\n this.loading = true;\n this.recebimentoOrdemCompraService.list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.formCarregado = true;\n return this.configureForm();\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao = contents[0].agenda && contents[0].agenda.veiculo \n ? contents[0].agenda.veiculo.eixos || 0 : 0;\n\n const recebimentoOrdemCompra: RecebimentoOrdemCompraDto = RecebimentoOrdemCompra.fromDto(contents[0]);\n this.formGroup.enable();\n this.formGroup.patchValue(recebimentoOrdemCompra);\n\n recebimentoOrdemCompra.fornecedores.forEach(fornecedor => {\n const form = this.getFornecedorForm(fornecedor);\n this.getFornecedoresForm().push(form);\n\n fornecedor.ordens.forEach(ordemCompra => {\n const ordemCompraForm = this.getOrdemCompraForm(ordemCompra);\n this.getOrdensCompra(form).push(ordemCompraForm);\n ordemCompra.notas.forEach(nota => {\n const notaForm = this.getNotaForm(nota);\n this.getNotas(ordemCompraForm).push(notaForm);\n });\n });\n });\n this.configureForm();\n });\n }\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) =>\n this.filialLookupSuggestions = list.filiais.map((filial: any) => Filial.fromDto(filial))\n );\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [ { ...(sortFormatted) } ] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n /**FILTRA FORNECEDOR EQ TRUE */\n public onFornecedorLookupRequest(value: string) {\n onLookupRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields,\n this.fornecedorAdvancedDisplayFields, this.fornecedorLookupSeparator, this.pessoaService, \n value, ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.fornecedorLookupSuggestions = list.contents);\n }\n\n public onFornecedorSearchRequest(event: any) {\n onSearchRequest(this.fornecedorSearchFields, this.fornecedorLookupDisplayFields,\n this.fornecedorAdvancedDisplayFields, this.fornecedorLookupSeparator, this.pessoaService, \n event, ` fornecedor eq true `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.fornecedorSearchGridData = list.contents;\n this.fornecedorSearchTotalRecords = list.totalElements;\n });\n }\n\n /**FILTRA ORIGEM MERCADORIA PELO FORNECEDOR SELECIONADO */\n public onOrigemMercadoriaLookupRequest(fornecedorForm: FormGroup, value: string) {\n onLookupRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, \n value, ` pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaLookupSuggestions = list.contents;\n });\n }\n\n public onOrigemMercadoriaSearchRequest(fornecedorForm: FormGroup, event: any) {\n onSearchRequest(this.origemMercadoriaSearchFields, this.origemMercadoriaLookupDisplayFields,\n this.origemMercadoriaAdvancedDisplayFields, this.origemMercadoriaLookupSeparator, this.origemMercadoriaService, event,\n ` pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.origemMercadoriaSearchGridData = list.contents;\n this.origemMercadoriaSearchTotalRecords = list.totalElements;\n });\n }\n\n /**FILTRA DERIVACAO PELO PRODUTO */\n public onDerivacaoLookupRequest(value: string) {\n onLookupRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields,\n this.derivacaoLookupSeparator, this.derivacaoService, value,\n ` produto.id eq '${this.formGroup.get(\"produto\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoLookupSuggestions = list.contents;\n });\n }\n\n public onDerivacaoSearchRequest(event: any) {\n onSearchRequest(this.derivacaoSearchFields, this.derivacaoLookupDisplayFields,\n this.derivacaoAdvancedDisplayFields, this.derivacaoLookupSeparator, this.derivacaoService, event,\n ` produto.id eq '${this.formGroup.get(\"produto\").value.id}' `)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.derivacaoSearchGridData = list.contents;\n this.derivacaoSearchTotalRecords = list.totalElements;\n });\n }\n\n public onOrdemCompraLookupRequest(fornecedorForm: FormGroup, value: string) {\n onLookupRequest(this.ordemCompraSearchFields, this.ordemCompraLookupDisplayFields, this.ordemCompraAdvancedDisplayFields,\n this.ordemCompraLookupSeparator, this.ordemCompraService, value,\n `filial.id eq '${this.formGroup.get(\"filial\").value.id}' and pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}'`)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.ordemCompraLookupSuggestions = list.contents;\n });\n }\n\n public onOrdemCompraSearchRequest(fornecedorForm: FormGroup, event: any) {\n onSearchRequest(this.ordemCompraSearchFields, this.ordemCompraLookupDisplayFields,\n this.ordemCompraAdvancedDisplayFields, this.ordemCompraLookupSeparator, this.ordemCompraService, event,\n `filial.id eq '${this.formGroup.get(\"filial\").value.id}' and pessoa.id eq '${fornecedorForm.get(\"fornecedor\").value.id}'`)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.ordemCompraSearchGridData = list.contents;\n this.ordemCompraSearchTotalRecords = list.totalElements;\n });\n }\n\n public addOrdemCompra(fornecedorForm: FormGroup) {\n this.dialogService\n .open(OrdemCompraFormComponent, {\n ...dialogConfig,\n header: 'Adicionar Ordem de Compra',\n data: {\n agenda: this.agenda,\n filial: this.formGroup.get(\"filial\").value,\n fornecedor: fornecedorForm.get(\"fornecedor\").value,\n ordens: fornecedorForm.get(\"ordens\").value,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe((ordemCompra: any) => this.onOrdemCompraSaved(ordemCompra, fornecedorForm));\n }\n\n public onProdutoLookupRequest(value: string) {\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService.listProdutos({\n pesquisa: value,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null,\n situacao: 'ATIVO',\n pagina: {\n limit: 100,\n offset: 0\n }\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => this.produtoLookupSuggestions = res.produtos.map(Produto.fromDto));\n }\n\n public onProdutoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getProdutoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [ { ...(sortFormatted) } ] : null } } as ProdutoParams);\n\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService.listProdutos({\n ...filterInput,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n situacao: 'ATIVO',\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => {\n this.produtoSearchTotalRecords = res.qtdTotalRegistros;\n this.produtoSearchGridData = res.produtos.map(Produto.fromDto);\n });\n }\n\n public onSafraLookupRequest(value: string) {\n onLookupRequest(this.safraSearchFields, this.safraLookupDisplayFields,\n this.safraAdvancedDisplayFields, this.safraLookupSeparator, this.safraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.safraLookupSuggestions = list.contents;\n });\n }\n\n public onSafraSearchRequest(event: any) {\n onSearchRequest(this.safraSearchFields, this.safraLookupDisplayFields,\n this.safraAdvancedDisplayFields, this.safraLookupSeparator, this.safraService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.safraSearchGridData = list.contents;\n this.safraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onTransportadoraLookupRequest(value: string) {\n onLookupRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, \n this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n public onTransportadoraSearchRequest(event: any) {\n onSearchRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, \n this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, event)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n public setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace(/\\./g, '').replace(/\\//g, '').replace(/\\-/g, '');\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService\n .list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n contents[0].label = this.translate.instant(getLookupLabel(contents[0], ['codigo', 'pessoa.nome'], ' - ', true));\n this.formGroup.get('transportadora').setValue(contents[0]);\n }\n });\n }\n }\n\n public onSave(start?: boolean) {\n this.formGroup.get('agenda').setValue(this.agenda);\n \n if (this.formGroup.invalid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n if ((this.formGroup.get(\"fornecedores\") as FormArray).length <= 0) {\n this.erroFornecedores = true;\n return;\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessDataValidaNotaNaOrdemCompra(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((value: any) => {\n this.formGroup.get(\"id\").setValue(value.id || null);\n this.successMessage();\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n public addFornecedor(data?: any) {\n this.erroFornecedores = false;\n const fornecedor = this.getFornecedorForm(data);\n this.getFornecedoresForm().push(fornecedor);\n return fornecedor;\n }\n\n public removeFornecedor(control: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_fornecedor_header\"),\n message: this.translate.instant(\"yms.erp.remove_fornecedor_message\"),\n accept: () => {\n const index = this.getFornecedoresForm().controls.indexOf(control);\n this.getFornecedoresForm().removeAt(index);\n }\n });\n }\n\n public getFornecedorForm(data: any = {}) {\n const formGroup = this.formBuilder.group({\n fornecedor: [data.fornecedor, Validators.required],\n origemMercadoria: [data.origemMercadoria],\n ordens: this.formBuilder.array([]),\n });\n\n this.valueChanges(formGroup, \"fornecedor\", this.onFornecedorChange);\n\n const getFilterQueryFornecedor = (value: any) => `pessoa.id eq '${value.id}'`;\n this.checkValuesChanges(\n formGroup, \"fornecedor\", \"origemMercadoria\", this.origemMercadoriaService,\n getFilterQueryFornecedor, ['codigo', 'endereco'], (val) => PessoaEndereco.fromDto(val), 10, false, true\n );\n\n return formGroup;\n }\n\n public getFornecedoresForm() {\n return (this.formGroup.get(\"fornecedores\") as FormArray);\n }\n\n public getNotas(formGroup: FormGroup) {\n return (formGroup.get(\"notas\") as FormArray);\n }\n\n public addNota(formGroup: FormGroup) {\n this.dialogService.open(NotaFormComponent, {\n header: this.translate.instant(\"yms.erp.adicionar_nota\"),\n ...dialogConfig,\n data: {\n fornecedor: formGroup.get(\"fornecedor\").value,\n produto: this.formGroup.get(\"produto\").value,\n filial: this.formGroup.get(\"filial\").value,\n fornecedorNotasTokens: this.fornecedorNotasTokens,\n ordens: this.ordens,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe(value => this.onNotaSaved(value, formGroup));\n }\n\n public removerNota(fornecedorForm: FormGroup, ordemCompraForm: FormGroup, notaForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_nota_header\"),\n message: this.translate.instant(\"yms.erp.remove_nota_message\"),\n accept: () => {\n const ordemCompraId = ordemCompraForm[\"value\"][\"ordemCompra\"][\"id\"];\n const index = this.getNotasFromOrdens(fornecedorForm, ordemCompraId).controls.indexOf(notaForm);\n this.getNotasFromOrdens(fornecedorForm, ordemCompraId).removeAt(index);\n\n const nota = notaForm[\"value\"];\n this.fornecedorNotasTokens.push({\n id: nota.chaveNotaFiscal,\n label: nota.numeroNotaFiscal\n });\n this.fornecedorNotas.push({\n chaveNotaFiscal: nota.chaveNotaFiscal,\n serieNotaFiscal: nota.serieNotaFiscal,\n serieLegalNotaFiscal: nota.serieLegalNotaFiscal,\n numeroNotaFiscal: nota.numeroNotaFiscal,\n });\n }\n });\n }\n\n public showButtons() {\n if (!this.agenda) {\n return false;\n }\n\n return [\n StatusAgenda.AGENDADO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO_SOLICITANTE,\n StatusAgenda.REJEITADO_POR_VALIDACAO\n ].includes(this.agenda.status as StatusAgenda);\n }\n\n public disableAdicionarNota() {\n if (this.ordemCompraSelecionado === null || this.ordemCompraSelecionado === undefined) {\n return true;\n }\n return false;\n }\n\n public removerOrdemCompra(fornecedorForm: FormGroup, ordemCompraForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_ordem_compra_header\"),\n message: this.translate.instant(\"yms.erp.remove_ordem_compra_message\"),\n accept: () => {\n const ordensCompraForm = this.getOrdensCompra(fornecedorForm);\n const index = ordensCompraForm.controls.indexOf(ordemCompraForm);\n ordensCompraForm.removeAt(index);\n }\n });\n }\n\n private onOrdemCompraSaved(ordemCompra: any, fornecedorForm: FormGroup) {\n const ordemCompraForm = this.getOrdemCompraForm({ ordemCompra : ordemCompra });\n this.getOrdensCompra(fornecedorForm).push(ordemCompraForm);\n this.getFornecedorByOrdemCompra(ordemCompra, fornecedorForm);\n }\n\n private getFornecedorByOrdemCompra(ordemCompra: OrdemCompraDto, fornecedorForm: FormGroup) {\n this.pessoaService.list({ size: 1, page: 0, filterQuery: `id eq '${ordemCompra.pessoa.id}'` })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(({ contents }) => (contents || []).length && contents[0]),\n filter(value => !!value)\n )\n .subscribe(pessoa => {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(pessoa));\n });\n }\n\n getOrdensCompra(fornecedorForm: FormGroup) {\n this.ordens = fornecedorForm.get(\"ordens\");\n return fornecedorForm.get(\"ordens\") as FormArray;\n }\n\n public getNotasFromOrdens(fornecedorForm: AbstractControl, ordemCompraId: any) {\n let ordensFormSelecionado = null;\n const ordensCompraForm = fornecedorForm[\"controls\"][\"ordens\"][\"controls\"];\n\n for (let ordemCompraForm of ordensCompraForm) {\n if (ordemCompraForm[\"controls\"][\"ordemCompra\"][\"value\"].id === ordemCompraId) {\n ordensFormSelecionado = ordemCompraForm[\"controls\"][\"notas\"];\n }\n }\n\n return ordensFormSelecionado as FormArray;\n }\n\n public addFornecedorNotasTokenEmOrdemCompra(fornecedorForm: FormGroup, token: IToken) {\n if (this.ordemCompraSelecionado === null) {\n this.mensagemOrdemCompraNaoSelecionado();\n return;\n }\n\n const notas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal === token.id);\n const notasForm = this.getNotasFromOrdens(fornecedorForm, this.ordemCompraSelecionado.id);\n if (notasForm !== null && notas[0] !== null) {\n notasForm.push(this.getNotaForm(notas[0]));\n }\n\n this.removeFornecedorNotasTokenDaOrdemCompra(token);\n }\n\n public removeFornecedorNotasTokenDaOrdemCompra(token: IToken) {\n this.fornecedorNotasTokens.splice(this.fornecedorNotasTokens.indexOf(token), 1);\n this.fornecedorNotas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal !== token.id);\n }\n\n private getOrdemCompraForm(data: any = {}) {\n return this.formBuilder.group({\n ordemCompra: [data.ordemCompra, Validators.required],\n notas: this.formBuilder.array([]),\n });\n }\n\n private getNotaForm(data: any = {}) {\n return this.formBuilder.group({\n chaveNotaFiscal: [data.chaveNotaFiscal],\n serieNotaFiscal: [data.serieNotaFiscal],\n serieLegalNotaFiscal: [data.serieLegalNotaFiscal],\n numeroNotaFiscal: [data.numeroNotaFiscal],\n });\n }\n\n private mensagemOrdemCompraNaoSelecionado() {\n this.addMessage(\"error\", \"Ordem de compra não selecionado\", \"Nenhum ordem de compra foi selecionado!\");\n }\n\n private onNotaSaved(value: any, fornecedorForm: FormGroup) {\n if (this.ordemCompraSelecionado === null) {\n this.mensagemOrdemCompraNaoSelecionado();\n return;\n }\n\n if (!value.addFornecedor) {\n const notasForm = this.getNotasFromOrdens(fornecedorForm, this.ordemCompraSelecionado.id);\n if (notasForm !== null) {\n notasForm.push(this.getNotaForm(value));\n }\n return;\n }\n\n const existsFornecedor = (this.formGroup.get(\"fornecedores\") as FormArray).controls.find((form) => (form.value.fornecedor || {id: undefined}).id === value.fornecedor.id);\n const { infoNota } = value;\n const notaForm = this.getNotaForm({ \n chaveNotaFiscal: infoNota.chave,\n serieNotaFiscal: infoNota.serie,\n serieLegalNotaFiscal: infoNota.serieLegal,\n numeroNotaFiscal: infoNota.numero,\n });\n\n if (!!existsFornecedor) {\n const notasForm = this.getNotasFromOrdens(existsFornecedor, this.ordemCompraSelecionado.id);\n notasForm.push(notaForm);\n this.disableFields(existsFornecedor, \"fornecedor\", \"origemMercadoria\");\n } else if (!fornecedorForm.get(\"fornecedor\").value) {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(value.fornecedor));\n fornecedorForm.get(\"origemMercadoria\").setValue(PessoaEndereco.fromDto(value.origemMercadoria));\n const notasForm = this.getNotasFromOrdens(fornecedorForm, this.ordemCompraSelecionado.id);\n notasForm.push(notaForm);\n this.disableFields(fornecedorForm, \"fornecedor\", \"origemMercadoria\");\n } else {\n const fornecedor = this.addFornecedor({ fornecedor: Pessoa.fromDto(value.fornecedor), origemMercadoria: PessoaEndereco.fromDto(value.origemMercadoria) });\n const notasForm = this.getNotasFromOrdens(fornecedor, this.ordemCompraSelecionado.id);\n notasForm.push(notaForm);\n this.disableFields(fornecedor, \"fornecedor\", \"origemMercadoria\");\n }\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n value.empresa = value.filial.empresa;\n const recebimentoDto = RecebimentoOrdemCompra.toDto(value);\n\n let fornecedores: any[] = recebimentoDto.fornecedores;\n recebimentoDto.fornecedores.forEach(anterior => {\n recebimentoDto.fornecedores.forEach(posterior => {\n if (anterior.fornecedor.id === posterior.fornecedor.id &&\n anterior.origemMercadoria.id === posterior.origemMercadoria.id) {\n fornecedores = fornecedores.splice(fornecedores.indexOf(posterior), 1);\n }\n });\n });\n recebimentoDto.fornecedores = fornecedores;\n\n\n if (this.isNew() && !value.id) {\n return this.recebimentoOrdemCompraService.insert(recebimentoDto);\n } else {\n return this.recebimentoOrdemCompraService.update(this.formGroup.value.id, recebimentoDto);\n }\n }\n\n private getFormGroup() {\n return this.formBuilder.group({\n id: [undefined],\n filial: [{ value: undefined, disabled: false }, Validators.required],\n fornecedores: this.formBuilder.array([]),\n produto: [{ value: undefined, disabled: true }],\n derivacao: [{ value: undefined, disabled: true }],\n transportadora: [undefined],\n safra: [undefined],\n agenda: [{ value: undefined, disabled: true }, Validators.required],\n });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) {\n control.markAsDirty({ onlySelf: true });\n } else if (control instanceof FormGroup){ \n this.validateAllFormFields(control);\n } else if (control instanceof FormArray) {\n control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n }\n });\n }\n\n private addNovaNota(response: PesquisarDocumentoResponse) {\n const values = (response.documentos || []).length ? response.documentos[0] : undefined;\n if (!values) {\n return;\n }\n\n const fornecedor = Pessoa.fromDto(values.fornecedor);\n const origemMercadoria = PessoaEndereco.fromDto(values.origemMercadoria);\n\n const fornecedorForm = this.getFornecedoresForm().controls.find(({ value }) => value.fornecedor.id === fornecedor.id) as FormGroup;\n if (!fornecedorForm) {\n this.addFornecedor({ fornecedor, origemMercadoria });\n this.addFornecedorNotasToken(values);\n return;\n }\n\n this.addFornecedorNotasToken(values);\n }\n\n private addFornecedorNotasToken(value: any) {\n this.fornecedorNotasTokens.push({\n id: this.chaveNotaFiscal,\n label: value.numero\n });\n \n this.fornecedorNotas.push({\n chaveNotaFiscal: this.chaveNotaFiscal,\n serieNotaFiscal: value.serie,\n serieLegalNotaFiscal: value.serieLegal,\n numeroNotaFiscal: value.numero,\n });\n\n this.chaveNotaFiscal = undefined;\n this.loading = false;\n }\n\n private removeNotaError() {\n this.erroChaveNota = false;\n }\n\n private addNotaError() {\n this.erroChaveNota = true;\n }\n\n private mensagemBuscandoNota() {\n this.messageService.add({\n severity: 'info',\n summary: this.translate.instant(\"yms.erp.nota_search_summary\"),\n detail: this.translate.instant(\"yms.erp.nota_search_detail\"),\n life: 5000\n });\n }\n\n private disableFields(formGroup: AbstractControl, ...keys: string[]) {\n keys.forEach(key => formGroup.get(key).disable());\n }\n\n private getDerivacaoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.derivacao_codigo\")\n }),\n ];\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n })\n ];\n }\n\n private getFilialSearchGridFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.filial_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n })\n ];\n }\n\n private getFornecedorSearchFields() {\n return [\n new FormField({\n name: \"nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_codigo\")\n }),\n new FormField({\n name: \"cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\")\n }),\n ];\n }\n\n private getOrigemMercadoriaSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_codigo\")\n }),\n new FormField({\n name: \"numero\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_numero\")\n }),\n new FormField({\n name: \"endereco\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_endereco_endereco\")\n }),\n ];\n }\n\n private getProdutoSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_descricao\")\n }),\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.produto_codigo\")\n }),\n ];\n }\n\n private getSafraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_descricao\")\n })\n ];\n }\n\n private getSafraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_descricao\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.safra_empresa\")\n })\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getOrdemCompraFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n ];\n }\n\n private getOrdemCompraGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.ordem_compra_codigo\")\n }),\n new FormField({\n name: \"empresa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.empresa\")\n }),\n new FormField({\n name: \"filial.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.filial\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n ];\n }\n\n private onChangeRevalidation = (_) => {\n if (this.erpProcessData && this.formGroup) {\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n }\n\n}\n","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { Subject, throwError, of } from \"rxjs\";\nimport { takeUntil, switchMap, finalize } from \"rxjs/operators\";\nimport { RecebimentoOrdemCompra } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra\";\nimport { RecebimentoOrdemCompraService } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra.service\";\nimport { RecebimentoOrdemCompraDto } from \"../../core/entities/recebimento-ordem-compra/recebimento-ordem-compra-dto\";\n\n@Component({\n selector: 'recebimento-ordem-compra-info',\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_filial' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.filial?.codigo}} - {{recebimentoOrdemCompra?.filial?.nome}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_produto' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.produto?.descricao}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_derivacao' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.derivacao?.descricao}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_transportadora' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.transportadora?.placaVeiculo}}</span>\n </div>\n\n <div class=\"detail-span\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_safra' | translate}}</span>\n <span class=\"data\">{{recebimentoOrdemCompra?.safra?.descricao}}</span>\n </div>\n </div>\n <div *ngFor=\"let fornecedor of recebimentoOrdemCompra?.fornecedores\">\n <div class=\"separator\"></div>\n <h3>Fornecedor - {{fornecedor?.fornecedor?.nome}}</h3>\n <div class=\"detail-pane\">\n <div class=\"detail-span\" *ngFor=\"let ordemCompra of fornecedor.ordens\">\n <span class=\"title\">{{'yms.erp.recebimento_ordem_compra_ordemcompra' | translate}}</span>\n <span class=\"data\">{{ ordemCompra.ordemCompra?.codigo }}</span>\n </div>\n </div>\n\n <div>\n <h4>Ordens de Compra</h4>\n <p-accordion>\n <p-accordionTab *ngFor=\"let ordemCompra of fornecedor.ordens\">\n <p-header>\n Ordem de compra {{ ordemCompra?.ordemCompra?.numero }}, Filial {{ ordemCompra?.ordemCompra?.filial?.codigo }}\n </p-header>\n\n <div *ngFor=\"let nota of ordemCompra.notas\">\n <div class=\"detail-pane\">\n <div class=\"detail-span\">\n <span class=\"title\">Chave nota fiscal</span>\n <span class=\"data\">{{ nota?.chaveNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie nota fiscal</span>\n <span class=\"data\">{{ nota?.serieNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie legal nota fiscal</span>\n <span class=\"data\">{{ nota?.serieLegalNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Número nota fiscal</span>\n <span class=\"data\">{{ nota?.numeroNotaFiscal }}</span>\n </div>\n </div>\n <hr />\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./recebimento-ordem-compra-info.component.scss']\n})\nexport class RecebimentoOrdemCompraInfoComponent implements AfterViewInit {\n\n @Input() agenda: any;\n\n recebimentoOrdemCompra: RecebimentoOrdemCompra;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n\n constructor(private recebimentoOrdemCompraService: RecebimentoOrdemCompraService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.recebimentoOrdemCompraService\n .list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({ contents }) => {\n if (!contents.length) {\n return throwError(\"Recebimento Ordem de Compra não encontrado.\");\n }\n return of(contents[0]);\n }),\n finalize(() => this.loading = false)\n )\n .subscribe((recebimentoOrdemCompra: RecebimentoOrdemCompraDto) => this.recebimentoOrdemCompra = RecebimentoOrdemCompra.fromDto(recebimentoOrdemCompra));\n }\n}","import * as _moment from \"moment\";\nconst moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraDto } from \"./contrato-compra-dto\";\nimport { Empresa } from \"../empresa/empresa\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Filial } from \"../filial/filial\";\nimport { Safra } from \"../safra/safra\";\nimport { ContratoCompraItem } from \"../contrato-compra-item/contrato-compra-item\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { SituacaoAprovacao } from \"../../enums/situacao-aprovacao\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class ContratoCompra {\n public id?: string;\n public empresa: Empresa;\n public pessoa: Pessoa;\n public filial: Filial;\n public numero: number;\n public situacao: Situacao;\n public numeroAprovacao?: number;\n public situacaoAprovacao?: SituacaoAprovacao;\n public dataEmissao: Date;\n public safra?: Safra;\n public contratoPrioritario?: boolean;\n public dataInicioVigencia?: Date;\n public dataFimVigencia?: Date;\n public itens?: ContratoCompraItem[];\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(contratoCompraDto: ContratoCompraDto, originEntity?: string): ContratoCompra {\n const model: any = { ...contratoCompraDto };\n\n model.dataEmissao = model.dataEmissao && moment(model.dataEmissao).toDate();\n model.dataInicioVigencia = model.dataInicioVigencia && moment(model.dataInicioVigencia).toDate();\n model.dataFimVigencia = model.dataFimVigencia && moment(model.dataFimVigencia).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n model.label = `Número: ${model.numero}, Filial: ${model.filial.codigo}`;\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"ContratoCompra\");\n if (originEntity !== \"Pessoa\" && model.pessoa) model.pessoa = Pessoa.fromDto(model.pessoa, \"ContratoCompra\");\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"ContratoCompra\");\n if (originEntity !== \"Safra\" && model.safra) model.safra = Safra.fromDto(model.safra, \"ContratoCompra\");\n if (originEntity !== \"ContratoCompraItem\" && model.itens)\n model.itens = Object.values(model.itens).map((item: any) => ContratoCompraItem.fromDto(item, \"ContratoCompra\"));\n\n return model as ContratoCompra;\n }\n\n public static toDto(contratoCompra: ContratoCompra, originEntity?: string): ContratoCompraDto {\n const dto: any = { ...contratoCompra };\n\n dto.dataEmissao = dto.dataEmissao && moment(dto.dataEmissao).format(\"YYYY-MM-DD\");\n dto.dataInicioVigencia = dto.dataInicioVigencia && moment(dto.dataInicioVigencia).format(\"YYYY-MM-DD\");\n dto.dataFimVigencia = dto.dataFimVigencia && moment(dto.dataFimVigencia).format(\"YYYY-MM-DD\");\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"ContratoCompra\");\n if (originEntity !== \"Pessoa\" && dto.pessoa) dto.pessoa = Pessoa.toDto(dto.pessoa, \"ContratoCompra\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"ContratoCompra\");\n if (originEntity !== \"Safra\" && dto.safra) dto.safra = Safra.toDto(dto.safra, \"ContratoCompra\");\n if (originEntity !== \"ContratoCompraItem\" && dto.itens)\n dto.itens = Object.values(dto.itens)\n .map((item: any) => ContratoCompraItem.toDto(item, \"ContratoCompra\"))\n .filter(item => Object.keys(item).length);\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import * as _moment from \"moment\";\nconst moment = _moment\n/*{CA:PACKAGE_IMPORTS:START}*/\n/*{CA:PACKAGE_IMPORTS:END}*/\n\nimport { ContratoCompraItemDto } from \"./contrato-compra-item-dto\";\nimport { ContratoCompra } from \"../contrato-compra/contrato-compra\";\nimport { Produto } from \"../produto/produto\";\nimport { Situacao } from \"../../enums/situacao\";\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\nexport class ContratoCompraItem {\n public id?: string;\n public contrato?: ContratoCompra;\n public sequencia: number;\n public sku?: Produto;\n public situacao: Situacao;\n public quantidadeContratada: number;\n public quantidadeUtilizada?: number;\n public quantidadeEncerrada?: number;\n public dataCompetencia: Date;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n\n /*{CA:CLASS_ATTRIBUTES:START}*/\n /*{CA:CLASS_ATTRIBUTES:END}*/\n\n public static fromDto(contratoCompraItemDto: ContratoCompraItemDto, originEntity?: string): ContratoCompraItem {\n const model: any = { ...contratoCompraItemDto };\n model.sku = model.sku || {};\n\n model.dataCompetencia = model.dataCompetencia && moment(model.dataCompetencia).toDate();\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n model.label = `${model.sequencia} - ${model.sku.descricao} - ${model.sku.codigo}`\n\n if (originEntity !== \"ContratoCompra\" && model.contrato)\n model.contrato = ContratoCompra.fromDto(model.contrato, \"ContratoCompraItem\");\n if (originEntity !== \"Produto\" && model.sku) model.sku = Produto.fromDto(model.sku, \"ContratoCompraItem\");\n\n return model as ContratoCompraItem;\n }\n\n public static toDto(contratoCompraItem: ContratoCompraItem, originEntity?: string): ContratoCompraItemDto {\n const dto: any = { ...contratoCompraItem };\n\n dto.dataCompetencia = dto.dataCompetencia && moment(dto.dataCompetencia).format(\"YYYY-MM-DD\");\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"ContratoCompra\" && dto.contrato) dto.contrato = ContratoCompra.toDto(dto.contrato, \"ContratoCompraItem\");\n if (originEntity !== \"Produto\" && dto.sku) dto.sku = Produto.toDto(dto.sku, \"ContratoCompraItem\");\n\n return dto;\n }\n\n /*{CA:CLASS_METHODS:START}*/\n /*{CA:CLASS_METHODS:END}*/\n}\n\n/*{CA:FILE_CONTENTS:START}*/\n/*{CA:FILE_CONTENTS:END}*/\n","import { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\nimport { FormGroup, FormBuilder, FormArray, Validators, FormControl } from \"@angular/forms\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { FormField, FieldType } from \"@seniorsistemas/angular-components\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, map } from \"rxjs/operators\";\nimport * as _moment from \"moment\";\nimport { ContratoCompraItem } from \"../../core/entities/contrato-compra-item/contrato-compra-item\";\nimport { ContratoCompraService } from \"../../core/entities/contrato-compra/contrato-compra.service\";\nimport { ContratoCompraItemService } from \"../../core/entities/contrato-compra-item/contrato-compra-item.service\";\nimport { ContratoCompra } from \"../../core/entities/contrato-compra/contrato-compra\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ActivatedRoute } from \"@angular/router\";\nconst moment = _moment;\n\n@Component({\n templateUrl: './contrato-form.component.html'\n})\nexport class ContratoFormComponent implements OnInit, OnDestroy, AfterViewInit {\n public formGroup: FormGroup;\n\n public contratoCompraLookupSuggestions: ContratoCompra[];\n public contratoCompraLookupDisplayFields = [\"numero\"];\n public contratoCompraAdvancedDisplayFields = [\"id\", \"numero\", \"numeroAprovacao\", \"situacaoAprovacao\", \"dataEmissao\", \"contratoPrioritario\", \"dataInicioVigencia\", \"dataFimVigencia\"];\n public contratoCompraLookupSeparator = \" - \";\n public contratoCompraSearchFields: FormField[];\n public contratoCompraSearchGridFields: FormField[];\n public contratoCompraSearchGridData: ContratoCompra[];\n public contratoCompraSearchTotalRecords: number;\n\n public contratoCompraItensLookupSuggestions: ContratoCompraItem[];\n public contratoCompraItensLookupDisplayFields = [\"sequencia\", \"sku.descricao\"];\n public contratoCompraItensAdvancedDisplayFields = [\"id\", \"sequencia\", \"sku.*\", \"situacao\", \"quantidadeContratada\", \"quantidadeUtilizada\", \"quantidadeEncerrada\", \"dataCompetencia\"];\n public contratoCompraItensLookupSeparator = \" - \";\n public contratoCompraItensSearchFields: FormField[];\n public contratoCompraItensSearchGridFields: FormField[];\n public contratoCompraItensSearchGridData: ContratoCompraItem[];\n public contratoCompraItensSearchTotalRecords: number;\n public disableButtonSave = false;\n public permissions: any = {};\n\n private readonly ngUnsubscribe = new Subject<void>();\n private agenda: Agenda;\n private filial: Filial;\n private fornecedor: Pessoa;\n private produto: Produto;\n private contratos: string[];\n\n constructor(\n private dialogRef: DynamicDialogRef,\n private dialogConfig: DynamicDialogConfig,\n private contratoCompraService: ContratoCompraService,\n private contratoCompraItemService: ContratoCompraItemService,\n private translate: TranslateService,\n private readonly fb: FormBuilder,\n private readonly route: ActivatedRoute\n ) { }\n\n ngOnInit() {\n const { data } = this.dialogConfig;\n this.agenda = data.agenda;\n this.filial = data.filial;\n this.fornecedor = data.fornecedor;\n this.produto = data.produto;\n this.contratos = data.contratos.map(({ contrato }: any) => !!contrato ? contrato.id : undefined).filter((val: any) => !!val);\n \n this.formGroup = this.getForm();\n \n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((dataChanges: any) => this.onRouteDataChange(dataChanges));\n this.contratoCompraSearchFields = this.getContratoCompraFields();\n this.contratoCompraSearchGridFields = this.getContratoCompraGridFields();\n \n this.contratoCompraItensSearchFields = this.getContratoCompraItensFields();\n this.contratoCompraItensSearchGridFields = this.getContratoCompraItensGridFields();\n }\n\n public ngAfterViewInit() {\n const statusAgenda = [\"AGUARDANDO_CONFIRMACAO_SOLICITANTE\", \"AGENDADO\", \"AGUARDANDO_CONFIRMACAO\", \"REJEITADO_POR_VALIDACAO\"];\n if ((this.agenda && !statusAgenda.includes(this.agenda.status)) || !this.permissions.editar) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n }\n\n public onRouteDataChange(dataChanges: any) {\n this.permissions = dataChanges.allPermissions.agenda;\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onContratoCompraLookupRequest(value: string) {\n const sort = this.contratoCompraLookupDisplayFields.map((field: any) => ({ field, order: 'Asc' }))[0];\n\n const filter: any = {\n numero: +value.replace(/\\D/g, \"\")\n };\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n this.contratoCompraService\n .listContratosCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n produtoId: (this.produto || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n contratosSelecionados: this.contratos,\n pagina: {\n limit: 30,\n offset: 0,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.contratoCompraLookupSuggestions = list.contents.map(ContratoCompra.fromDto);\n });\n }\n\n public onContratoCompraSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const filter = this.getContratoCompraFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, b: any) => {\n return {\n ...a,\n [b.name]: filterData[b.name]\n };\n }, {} as any);\n\n const filial = this.filial;\n if (filial && filial.empresa && filial.empresa.id) {\n filter.empresaId = filial.empresa.id;\n }\n\n filter.dataEmissao = filter.dataEmissao && moment(filter.dataEmissao).format(\"YYYY-MM-DD\");\n const sort = (multiSortMeta || []).length ? { field: multiSortMeta[0].field, order: multiSortMeta[0].order === 1 ? 'Asc' : 'Desc' } : { field: 'numero', order: 'Asc' };\n\n this.contratoCompraService\n .listContratosCompra({\n ...filter,\n pessoaId: (this.fornecedor || {id: undefined}).id,\n produtoId: (this.produto || {id: undefined}).id,\n filialId: (filial || {id: undefined}).id,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n contratosSelecionados: this.contratos,\n pagina: {\n limit: rows,\n offset: page,\n listaOrdenacao: [\n {\n campo: sort.field,\n ordenacao: sort.order\n }\n ]\n }\n })\n .subscribe((list: any) => {\n this.contratoCompraSearchGridData = list.contents.map(ContratoCompra.fromDto);\n this.contratoCompraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onContratoCompraItensLookupRequest(value: any) {\n const sort = this.contratoCompraItensLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n const filialId = this.filial.id;\n const contratoId = this.formGroup.get(\"contrato\").value.id;\n\n const params = {\n contratoId,\n filialId,\n sequencia: !isNaN(value) ? value : null,\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n pagina: this.getRecPagina(0, 10, sort)\n }\n\n this.contratoCompraItemService\n .pesquisarItensContratoCompra(params)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.contratoCompraItensLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.contratoCompraItensLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.contratoCompraItensLookupSuggestions = list.contents.map(ContratoCompraItem.fromDto);\n });\n }\n\n public onContratoCompraItensSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const sort = multiSortMeta;\n\n const filialId = this.filial.id;\n const contratoId = this.formGroup.get(\"contrato\").value.id;\n\n const params = {\n contratoId,\n filialId,\n sequencia: filterData['sequencia'],\n tipoAgendamentoId: this.agenda && this.agenda.tipoAgendamento ? this.agenda.tipoAgendamento.id : null,\n pagina: this.getRecPagina(first, rows, sort)\n }\n\n this.contratoCompraItemService\n .pesquisarItensContratoCompra(params)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.contratoCompraItensLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.contratoCompraItensLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.contratoCompraItensSearchGridData = list.contents.map(ContratoCompraItem.fromDto);\n this.contratoCompraItensSearchTotalRecords = list.totalElements;\n });\n }\n\n public getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy = sort && sort.length \n ? sort.map((s: any) => ({ campo: s.field, ordenacao: s.order === 1 ? 'Asc' : 'Desc' })) \n : [];\n\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy\n }\n }\n\n public addItemContrato() {\n this.getItensForm().push(this.getItemForm());\n }\n\n public getItensForm(): FormArray {\n return this.formGroup.get(\"itens\") as FormArray;\n }\n\n public save() {\n if (!this.formGroup.valid) return this.validateAllFormFields(this.formGroup);\n this.close({ contrato: this.formGroup.value });\n }\n\n public close(data?: any) {\n this.dialogRef.close(data);\n }\n\n private getForm() {\n return this.fb.group({\n contrato: [undefined, Validators.required],\n itens: this.fb.array([])\n });\n }\n\n private getItemForm() {\n return this.fb.group({\n item: [undefined, Validators.required],\n quantidade: [1]\n });\n }\n\n private getContratoCompraFields() {\n return [\n new FormField({\n name: \"filialContrato\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.contrato_compra_numero\"),\n type: FieldType.Integer\n })\n ];\n }\n\n private getContratoCompraGridFields() {\n return [\n new FormField({\n name: \"numero\",\n label: this.translate.instant(\"yms.erp.contrato_compra_numero\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"filial.pessoa.nomeFantasia\",\n label: this.translate.instant(\"yms.erp.contrato_compra_filial\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"filial.pessoa.codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"dataEmissao\",\n label: this.translate.instant(\"yms.erp.contrato_compra_data_emissao\"),\n type: FieldType.Date\n }),\n ];\n }\n\n private getContratoCompraItensFields() {\n return [\n new FormField({\n name: \"sequencia\",\n label: this.translate.instant(\"yms.erp.contrato_compra_item_sequencia\"),\n type: FieldType.Integer\n })\n ];\n }\n\n private getContratoCompraItensGridFields() {\n return [\n new FormField({\n name: \"sequencia\",\n label: this.translate.instant(\"yms.erp.contrato_compra_item_sequencia\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"sku.descricao\",\n label: this.translate.instant(\"yms.erp.produto\"),\n type: FieldType.String\n })\n ];\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n else if (control instanceof FormArray) control.controls.forEach((form: FormGroup) => this.validateAllFormFields(form));\n });\n }\n\n}","import { FamiliaProduto } from './../familia-produto/familia-produto';\nimport { Empresa } from \"../empresa/empresa\";\nimport { Royalty } from \"../royalty/royalty\";\nimport { Situacao } from \"../../enums/situacao\";\nimport { TipoParticipanteTransgenia } from \"../../enums/tipo-participante-transgenia\";\nimport { TransgeniaDto } from \"./transgenia-dto\";\nimport * as _moment from \"moment\";\nconst moment = _moment;\nimport { getLookupLabel } from \"../../../../utils/lookup-utils\";\n\nexport class Transgenia {\n public id?: string;\n public empresa: Empresa;\n public codigo: string;\n public descricao: string;\n public royalty?: Royalty;\n public situacao: Situacao;\n public tipoParticipante: TipoParticipanteTransgenia;\n public familia: FamiliaProduto;\n\n public static fromDto(transgeniaDto: TransgeniaDto, originEntity?: string): Transgenia {\n const model: any = { ...transgeniaDto };\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"codigo\",\n \"descricao\",\n ];\n\n model.label = getLookupLabel(model, displayFields, lookupSeparator);\n\n if (originEntity !== \"Empresa\" && model.empresa) model.empresa = Empresa.fromDto(model.empresa, \"Transgenia\");\n if (originEntity !== \"Royalty\" && model.royalty) model.royalty = Royalty.fromDto(model.royalty, \"Royalty\");\n\n return model as Transgenia;\n }\n\n public static toDto(transgenia: Transgenia, originEntity?: string): TransgeniaDto {\n const dto: any = { ...transgenia };\n\n delete dto.label;\n\n if (originEntity !== \"Empresa\" && dto.empresa) dto.empresa = Empresa.toDto(dto.empresa, \"Transgenia\");\n if (originEntity !== \"Royalty\" && dto.royalty) dto.roylty = Royalty.toDto(dto.royalty, \"Transgenia\");\n\n return dto;\n }\n}\n","import { Transgenia } from './../transgenia/transgenia';\nimport * as _moment from \"moment\";\nimport { Agenda } from \"../agenda/agenda\";\nimport { ContratoCompraItem } from \"../contrato-compra-item/contrato-compra-item\";\nimport { ContratoCompra } from \"../contrato-compra/contrato-compra\";\nimport { Derivacao } from \"../derivacao/derivacao\";\nimport { PessoaEndereco } from \"../pessoa-endereco/pessoa-endereco\";\nimport { Pessoa } from \"../pessoa/pessoa\";\nimport { Produto } from \"../produto/produto\";\nimport { RecebimentoContratoDto } from \"./recebimento-dto\";\nimport { Filial } from \"../filial/filial\";\nimport { Transportadora } from \"../transportadora/transportadora\";\nimport { TipoNotaFiscal } from \"../../enums/tipo-nota-fiscal\";\nimport { RecebimentoContratoFornecedor } from \"../recebimento-contrato-details/recebimento-contrato-fornecedor\";\nconst moment = _moment\n\nexport class RecebimentoContrato {\n public id: string;\n public filial: Filial;\n public fornecedores: RecebimentoContratoFornecedor[];\n public origemMercadoria: PessoaEndereco;\n public contratos: ContratoRecebimento[];\n public derivacao: Derivacao;\n public produto: Produto;\n public agenda: Agenda;\n public transportadora: Transportadora;\n public transgenia: Transgenia;\n public tipoNotaFiscal: TipoNotaFiscal;\n public eixos?: number;\n public createdBy?: string;\n public createdDate?: Date;\n public lastModifiedBy?: string;\n public lastModifiedDate?: Date;\n public custom?: any;\n\n public static fromDto(recebimentoDto: RecebimentoContratoDto, originEntity?: string): RecebimentoContrato {\n const model: any = { ...recebimentoDto };\n\n model.createdDate = model.createdDate && moment(model.createdDate).toDate();\n model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();\n\n const lookupSeparator = \" - \";\n const displayFields = [\n \"id\",\n \"fornecedor.id\",\n \"fornecedor.codigo\",\n \"fornecedor.nome\",\n \"fornecedor.situacao\",\n \"produto.id\",\n \"produto.codigo\",\n \"produto.comprado\",\n \"produto.descricao\",\n \"produto.produtoMisto\",\n \"produto.situacao\",\n \"produto.tipo\",\n \"agenda.id\",\n \"agenda.descricao\",\n \"transportadora.id\",\n \"transportadora.codigo\",\n \"transportadora.placaVeiculo\",\n \"transgenia.id\",\n \"transgenia.codigo\",\n \"transgenia.descricao\",\n \"tipoNotaFiscal\",\n \"createdBy\",\n \"createdDate\",\n \"lastModifiedBy\",\n \"lastModifiedDate\",\n ];\n\n model.label = displayFields.map(field => model[field]).join(lookupSeparator);\n\n if (originEntity !== \"Filial\" && model.filial) model.filial = Filial.fromDto(model.filial, \"Recebimento\");\n if (originEntity !== \"Produto\" && model.produto) model.produto = Produto.fromDto(model.produto, \"Recebimento\");\n if (originEntity !== \"Agenda\" && model.agenda) model.agenda = Agenda.fromDto(model.agenda, \"Recebimento\");\n if ((originEntity !== \"PessoaEndereco\" && model.origemMercadoria)) model.origemMercadoria = PessoaEndereco.fromDto(model.origemMercadoria, \"Recebimento\");\n if ((originEntity !== \"Derivacao\" && model.derivacao)) model.derivacao = Derivacao.fromDto(model.derivacao, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && model.transportadora)) model.transportadora = Transportadora.fromDto(model.transportadora, \"Recebimento\");\n if ((originEntity !== \"Transgenia\" && model.transgenia)) model.transgenia = Transgenia.fromDto(model.transgenia, \"Transgenia\");\n\n model.fornecedores = model.fornecedores.map((fornecedor: any) => ({\n ...fornecedor,\n fornecedor: Pessoa.fromDto(fornecedor.fornecedor, \"Recebimento\"),\n origemMercadoria: PessoaEndereco.fromDto(fornecedor.origemMercadoria, \"Recebimento\"),\n contratos: fornecedor.contratos.map((contrato: any) => ({ \n ...contrato, \n contrato: ContratoCompra.fromDto(contrato.contrato), \n itens: contrato.itens.map((item: any) => ({\n ...item,\n item: ContratoCompraItem.fromDto(item.item)\n })) \n }))\n }));\n\n return model as RecebimentoContrato;\n }\n\n public static toDto(recebimento: RecebimentoContrato, originEntity?: string): RecebimentoContratoDto {\n const dto: any = { ...recebimento };\n\n dto.createdDate = dto.createdDate && moment(dto.createdDate).format();\n dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();\n\n delete dto.label;\n\n if (originEntity !== \"Pessoa\" && dto.fornecedor) dto.fornecedor = Pessoa.toDto(dto.fornecedor, \"Recebimento\");\n if (originEntity !== \"Filial\" && dto.filial) dto.filial = Filial.toDto(dto.filial, \"Filial\");\n if (originEntity !== \"Produto\" && dto.produto) dto.produto = Produto.toDto(dto.produto, \"Recebimento\");\n if (originEntity !== \"Agenda\" && dto.agenda) dto.agenda = Agenda.toDto(dto.agenda, \"Recebimento\");\n if ((originEntity !== \"PessoaEndereco\" && dto.origemMercadoria)) dto.origemMercadoria = PessoaEndereco.toDto(dto.origemMercadoria, \"Recebimento\");\n if ((originEntity !== \"Transportadora\" && dto.transportadora)) dto.transportadora = Transportadora.toDto(dto.transportadora, \"Recebimento\");\n if ((originEntity !== \"Transgenia\" && dto.transgenia)) dto.transgenia = Transgenia.toDto(dto.transgenia, \"Transgenia\");\n\n dto.fornecedores = recebimento.fornecedores.map((fornecedor) => ({\n ...fornecedor,\n fornecedor: Pessoa.toDto(fornecedor.fornecedor, \"Recebimento\"),\n origemMercadoria: PessoaEndereco.toDto(fornecedor.origemMercadoria, \"Recebimento\"),\n contratos: fornecedor.contratos.map((contrato) => ({ \n ...contrato, \n contrato: ContratoCompra.toDto(contrato.contrato), \n itens: contrato.itens.map(item => ({\n ...item,\n item: ContratoCompraItem.toDto(item.item)\n })) \n }))\n }));\n \n return dto;\n }\n}\n\nexport interface ContratoRecebimento {\n id?: string;\n recebimento?: RecebimentoContrato,\n contrato: ContratoCompra,\n itens: ContratoRecebimentoItem[]\n}\n\nexport interface ContratoRecebimentoItem {\n id?: string,\n contrato?: ContratoCompra,\n item: ContratoCompraItem,\n quantidade: number\n}\n","import { BuildFormField } from '../../../utils/build-form-field';\nimport { AfterViewInit, Component, Input, OnDestroy, OnInit, TemplateRef, ViewChild } from \"@angular/core\";\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField, IToken } from \"@seniorsistemas/angular-components\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport * as _moment from \"moment\";\nimport { ConfirmationService, DialogService, SortMeta } from \"primeng/api\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { empty, forkJoin, of, Subject } from \"rxjs\";\nimport { concatMap, debounceTime, filter, finalize, map, mergeMap, takeUntil, tap } from \"rxjs/operators\";\nimport { FieldCustomizationService } from \"../../../utils/field-customization.service\";\nimport { FocusService } from \"../../../utils/focus.service\";\nimport { onLookupRequest } from \"../../../utils/lookup-utils\";\nimport { dialogConfig, isValidFilter, mergeUnique, userCanVisualize } from \"../../../utils/utils\";\nimport { NotaFormComponent } from \"../../components/nota-form/nota-form.component\";\nimport { Agenda } from \"../../core/entities/agenda/agenda\";\nimport { AgendaService } from \"../../core/entities/agenda/agenda.service\";\nimport { ContratoCompraItem } from \"../../core/entities/contrato-compra-item/contrato-compra-item\";\nimport { ContratoCompraDto } from \"../../core/entities/contrato-compra/contrato-compra-dto\";\nimport { ContratoCompraService } from \"../../core/entities/contrato-compra/contrato-compra.service\";\nimport { Derivacao } from \"../../core/entities/derivacao/derivacao\";\nimport { DerivacaoService } from \"../../core/entities/derivacao/derivacao.service\";\nimport { Filial } from \"../../core/entities/filial/filial\";\nimport { FilialService, PesquisarFiliaisInput } from \"../../core/entities/filial/filial.service\";\nimport { PessoaEndereco } from \"../../core/entities/pessoa-endereco/pessoa-endereco\";\nimport { PessoaEnderecoService } from \"../../core/entities/pessoa-endereco/pessoa-endereco.service\";\nimport { Pessoa } from \"../../core/entities/pessoa/pessoa\";\nimport { PessoaService } from \"../../core/entities/pessoa/pessoa.service\";\nimport { Produto } from \"../../core/entities/produto/produto\";\nimport { ProdutoRecebimentoParams, ProdutoService } from \"../../core/entities/produto/produto.service\";\nimport { RecebimentoContrato } from \"../../core/entities/recebimento-contrato/recebimento\";\nimport { RecebimentoContratoService } from \"../../core/entities/recebimento-contrato/recebimento.service\";\nimport { Transgenia } from \"../../core/entities/transgenia/transgenia\";\nimport { TransgeniaService } from \"../../core/entities/transgenia/transgenia.service\";\nimport { Transportadora } from \"../../core/entities/transportadora/transportadora\";\nimport { TransportadoraService } from \"../../core/entities/transportadora/transportadora.service\";\nimport { TipoNotaFiscal } from \"../../core/enums/tipo-nota-fiscal\";\nimport { ErpProcessData } from \"../../core/erp-process-data/erp-process-data\";\nimport { ErpProcessService } from \"../../core/erp-process-data/erp-process-service\";\nimport { HasChangeService } from '../../core/has-change/has-change-service';\nimport { NotaValidatorService, PesquisarDocumentoResponse } from \"../../core/nota-validator.service\";\nimport { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { ContratoFormComponent } from \"../contrato-form/contrato-form.component\";\nimport { RecebimentoChegadaVeiculoOverride } from \"../recebimento-chegada-veiculo.override\";\nimport { StatusAgenda } from \"./../../core/enums/status-agenda\";\nimport { ErpFormConfigService } from './../../core/erp-form-config/erp-form-config-service';\nimport { Situacao } from '../../core/enums/situacao';\n\nconst moment = _moment;\n@Component({\n selector: 'recebimento-form',\n templateUrl: \"./recebimento-form.component.html\",\n providers: [\n ConfirmationService,\n ],\n styleUrls: ['../../erp-senior.scss']\n})\nexport class RecebimentoFormComponent implements OnInit, OnDestroy, AfterViewInit {\n public localeConfig: any = {};\n public currencyLocaleOptions: any = {};\n public permissions: any = {};\n public allPermissions: any = {};\n\n public visibleDialog = false;\n public quantidadeSelecionada = 1;\n\n public formGroup: FormGroup;\n public itemFormGroup: FormGroup;\n public loading: boolean;\n public mainPanelCollapsed = false;\n\n public filialLookupSuggestions: Filial[];\n public filialLookupDisplayFields = [\"codigo\", \"nome\", \"empresa.nome\"];\n public filialAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"empresa.nome\"];\n public filialLookupSeparator = \" - \";\n public filialSearchFields: FormField[];\n public filialSearchGridFields: FormField[];\n public filialSearchGridData: Filial[];\n public filialSearchTotalRecords: number;\n\n public fornecedorLookupSuggestions: Pessoa[];\n public fornecedorLookupDisplayFields = [\"codigo\", \"nome\", \"cpfCnpj\"];\n public fornecedorAdvancedDisplayFields = [\"id\", \"codigo\", \"nome\", \"situacao\", \"cpfCnpj\", \"tipoParticipante\"];\n public fornecedorLookupSeparator = \" - \";\n public fornecedorSearchFields: FormField[];\n public fornecedorSearchGridFields: FormField[];\n public fornecedorSearchGridData: Pessoa[];\n public fornecedorSearchTotalRecords: number;\n\n public origemMercadoriaLookupSuggestions: PessoaEndereco[];\n public origemMercadoriaLookupDisplayFields = [\"codigo\", \"cep\", \"endereco\", \"empresa.descricao\"];\n public origemMercadoriaAdvancedDisplayFields = [\"id\", \"codigo\", \"cep\", \"endereco\", \"numero\", \"complemento\", \"cidade.*\", \"bairro\", \"situacao\", \"empresa.descricao\",\n \"cnpjCpf\", \"inscricaoEstadual\"];\n public origemMercadoriaLookupSeparator = \" - \";\n public origemMercadoriaSearchFields: FormField[];\n public origemMercadoriaSearchGridFields: FormField[];\n public origemMercadoriaSearchGridData: PessoaEndereco[];\n public origemMercadoriaSearchTotalRecords: number;\n\n public produtoLookupSuggestions: Produto[];\n public produtoLookupDisplayFields = [\"codigo\", \"descricao\", \"tipo\"];\n public produtoAdvancedDisplayFields = [\"id\", \"codigo\", \"comprado\", \"descricao\", \"produtoMisto\", \"situacao\", \"tipo\"];\n public produtoLookupSeparator = \" - \";\n public produtoSearchFields: FormField[];\n public produtoSearchGridFields: FormField[];\n public produtoSearchGridData: Produto[];\n public produtoSearchTotalRecords: number;\n\n public agendaLookupSuggestions: Agenda[];\n public agendaLookupDisplayFields = [\"id\", \"descricao\"];\n public agendaAdvancedDisplayFields = [\"id\", \"descricao\"];\n public agendaLookupSeparator = \" - \";\n public agendaSearchFields: FormField[];\n public agendaSearchGridFields: FormField[];\n public agendaSearchGridData: Agenda[];\n public agendaSearchTotalRecords: number;\n\n public derivacaoLookupSuggestions: Derivacao[];\n public derivacaoLookupDisplayFields = [\"codigo\", \"descricao\"];\n public derivacaoAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\"];\n public derivacaoLookupSeparator = \" - \";\n public derivacaoSearchFields: FormField[];\n public derivacaoSearchGridFields: FormField[];\n public derivacaoSearchGridData: Derivacao[];\n public derivacaoSearchTotalRecords: number;\n\n public transportadoraLookupSuggestions: Transportadora[];\n public transportadoraLookupDisplayFields = [\"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n public transportadoraAdvancedDisplayFields = [\"id\", \"codigo\", \"pessoa.nome\", \"pessoa.cpfCnpj\"];\n public transportadoraLookupSeparator = \" - \";\n public transportadoraSearchFields: FormField[];\n public transportadoraSearchGridFields: FormField[];\n public transportadoraSearchGridData: Transportadora[];\n public transportadoraSearchTotalRecords: number;\n\n public transgeniaLookupSuggestions: Transgenia[];\n public transgeniaLookupDisplayFields = [\"codigo\", \"descricao\"];\n public transgeniaAdvancedDisplayFields = [\"id\", \"codigo\", \"descricao\", \"familia\", \"tipoParticipante\", \"situacao\"];\n public transgeniaLookupSeparator = \" - \";\n public transgeniaSearchFields: FormField[];\n public transgeniaSearchGridFields: FormField[];\n public transgeniaSearchGridData: Transgenia[];\n public transgeniaSearchTotalRecords: number;\n\n public disableButtonSave: boolean = false;\n public disableOrdersButtons: boolean = true;\n public createdByErp: boolean;\n\n public totalEixosContratados: number = 0;\n public totalEixosComposicao: number = 0;\n\n public tiposNota: { label: string; value: TipoNotaFiscal }[] = [\n { label: this.translate.instant(\"yms.erp.tipo_nota_fiscal_empresa_juridica\"), value: TipoNotaFiscal.EMPRESA_JURIDICA },\n { label: this.translate.instant(\"yms.erp.tipo_nota_fiscal_produtor_rural\"), value: TipoNotaFiscal.PRODUTOR_RURAL },\n ];\n\n public saveAndInitButton: any;\n\n @Input() private agenda: Agenda;\n\n @ViewChild(\"customTemplate\")\n public customTemplate: TemplateRef<any>;\n\n @ViewChild(\"customFormFields\")\n public customFormFields: TemplateRef<any>;\n\n public chaveNotaFiscal: string;\n public erroChaveNota = false;\n public erroFornecedores = false;\n public erroFornecedoresNotaDuplicada: string = null;\n\n public notasTokens: IToken[] = [];\n public fornecedorNotasTokens: IToken[] = [];\n public fornecedorNotas = [];\n\n public contratoSelecionado: any = null;\n\n private ngUnsubscribe = new Subject();\n\n private formCarregado: any;\n\n private erpProcessData: ErpProcessData;\n private enableRevalidation: boolean;\n\n private contratos: any;\n\n private carregandoErpFilial = true;\n private carregandoErpRouteData = true;\n private carregandoErpRecebimento = true;\n\n constructor(\n private recebimentoService: RecebimentoContratoService,\n private router: Router,\n private route: ActivatedRoute,\n private messageService: MessageService,\n private confirmationService: ConfirmationService,\n private formBuilder: FormBuilder,\n private translate: TranslateService,\n private hotkeysService: HotkeysService,\n private fieldCustomization: FieldCustomizationService,\n private focusService: FocusService,\n private filialService: FilialService,\n private transportadoraService: TransportadoraService,\n private pessoaEnderecoService: PessoaEnderecoService,\n private contratoCompraService: ContratoCompraService,\n private pessoaService: PessoaService,\n private produtoService: ProdutoService,\n private derivacaoService: DerivacaoService,\n private recebimentoChegadaOverride: RecebimentoChegadaVeiculoOverride,\n private notaValidatorService: NotaValidatorService,\n private transgeniaService: TransgeniaService,\n private dialogService: DialogService,\n private agendaService: AgendaService,\n private erpProcessService: ErpProcessService,\n private erpFormConfigService: ErpFormConfigService,\n private verificaNotaFiscal: VerificaNotafiscal,\n private hasChangeService: HasChangeService,\n private readonly buildFormField: BuildFormField,\n ) { }\n\n public ngOnInit() {\n this.formGroup = this.getFormGroup();\n this.itemFormGroup = this.getItemForm();\n\n this.formGroup.get(\"filial\")\n .valueChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onFilialValueChange);\n\n this.formGroup.get(\"produto\")\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n debounceTime(500),\n filter(value => {\n const derivacao = this.formGroup.get(\"derivacao\").value as Derivacao;\n if (!!derivacao && derivacao.produto.id === value.id) return false;\n if (!value) {\n this.formGroup.get(\"derivacao\").setValue(undefined);\n this.formGroup.get(\"derivacao\").disable();\n return false;\n }\n return true;\n }),\n mergeMap(value => this.derivacaoService.list({\n filterQuery: `produto.id eq '${value.id}' and situacao eq 'ATIVO'`,\n page: 0,\n size: 1\n }))\n )\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.formGroup.get(\"derivacao\").enable();\n return;\n }\n\n this.formGroup.get(\"derivacao\").setValue(contents[0]);\n this.formGroup.get(\"derivacao\").disable();\n });\n\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe(({ agenda }) => {\n if (agenda == 'new') {\n this.buscarFilial();\n } else {\n this.getRecebimento(agenda);\n }\n });\n\n this.formGroup\n .get('transportadora')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('transgenia')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.formGroup\n .get('fornecedores')\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(this.onChangeRevalidation);\n\n this.filialSearchFields = this.getFilialSearchFields();\n this.filialSearchGridFields = this.getFilialSearchFields();\n\n this.fornecedorSearchFields = this.getFornecedorSearchFields();\n this.fornecedorSearchGridFields = this.getFornecedorSearchGridFields();\n\n this.origemMercadoriaSearchFields = this.getOrigemMercadoriaFields();\n this.origemMercadoriaSearchGridFields = this.getOrigemMercadoriaGridFields();\n\n this.produtoSearchFields = this.getProdutoSearchFields();\n this.produtoSearchGridFields = this.getProdutoSearchGridFields();\n\n this.agendaSearchFields = this.getAgendaSearchFields();\n this.agendaSearchGridFields = this.getAgendaSearchGridFields();\n\n this.derivacaoSearchFields = this.getDerivacaoSearchFields();\n this.derivacaoSearchGridFields = this.getDerivacaoSearchGridFields();\n\n this.transportadoraSearchFields = this.getTransportadoraSearchFields();\n this.transportadoraSearchGridFields = this.getTransportadoraSearchGridFields();\n\n this.transgeniaSearchFields = this.getTransgeniaSearchFields();\n this.transgeniaSearchGridFields = this.getTransgeniaSearchGridFields();\n\n this.setHotkeys();\n\n if (this.agenda && this.agenda.externalTenant) {\n this.setTransportadora(this.agenda.externalTenant.cnpj);\n }\n\n this.totalEixosComposicao = this.agenda && this.agenda.veiculo ? this.agenda.veiculo.eixos || 0 : 0;\n\n const statusAgenda = [\"AGUARDANDO_CONFIRMACAO_SOLICITANTE\", \"AGENDADO\", \"AGUARDANDO_CONFIRMACAO\", \"REJEITADO_POR_VALIDACAO\"];\n if (this.agenda && !statusAgenda.includes(this.agenda.status)) {\n this.formGroup.disable();\n this.disableButtonSave = true;\n }\n\n this.erpProcessService.current.subscribe(message => this.erpProcessData = message);\n this.erpFormConfigService.current.subscribe(message => this.enableRevalidation = message);\n\n this.verificaSeTemAlteracao();\n\n this.formGroup.get('produto').valueChanges.subscribe(() => {\n this.validaTransgenia();\n });\n this.formGroup.get('fornecedores').valueChanges.subscribe(() => {\n this.validaTransgenia();\n });\n }\n\n private verificaSeTemAlteracao() {\n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n private onChangeRevalidation = (_) => {\n if (this.erpProcessData && this.formGroup) {\n this.erpProcessData = this.erpProcessService.builderErpProcessData(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeData(this.erpProcessData);\n }\n return;\n }\n\n private validaTransgenia() {\n if (this.erpCarregado()) {\n return;\n }\n\n const transgenia = this.formGroup.get(\"transgenia\").value;\n const produto = this.formGroup.get(\"produto\").value;\n const familiaProduto = this.getFamiliaProduto();\n\n if(!produto || !transgenia) {\n return;\n }\n\n if(!this.validaFamiliaProdutoCorrespondeFamiliaTrangenia(transgenia, familiaProduto)) {\n this.mensagemTransgeniaInvalida();\n return;\n }\n\n this.validaFornecedorCorrespondeTipoPaticipanteDaTransgenia(transgenia);\n }\n\n private erpCarregado(){\n if ( this.carregandoErpFilial ) {\n return true;\n }\n\n if ( this.carregandoErpRouteData ) {\n return true;\n }\n\n if ( this.carregandoErpRecebimento ) {\n return true;\n }\n\n return false;\n }\n\n private mensagemTransgeniaInvalida(){\n this.addMessage(\"error\", \"yms.integration.mensagem_erro_titulo_informar_transgenia\", \"yms.integration.mensagem_erro_conteuto_informar_transgenia\");\n this.formGroup.get(\"transgenia\").setValue(undefined);\n }\n\n private validaFamiliaProdutoCorrespondeFamiliaTrangenia(transgenia: any, familiaProduto: any) {\n if(familiaProduto !== null && transgenia.familia === familiaProduto) {\n return true;\n }\n return false;\n }\n\n private validaFornecedorCorrespondeTipoPaticipanteDaTransgenia(transgenia: any) {\n const tipoParticipanteFornecedores = this.getTipoTransgenia();\n const fornecedores = (this.formGroup.get(\"fornecedores\") as FormArray);\n\n if (fornecedores.length > 0) {\n let fornecedorEstaVazio = true;\n fornecedores.controls.forEach(form => {\n fornecedorEstaVazio = form.value.fornecedor === null;\n });\n \n if (fornecedorEstaVazio) {\n return true;\n }\n\n if(tipoParticipanteFornecedores === null) {\n this.mensagemTransgeniaInvalida();\n return false;\n }\n \n if(tipoParticipanteFornecedores !== transgenia.tipoParticipante) {\n this.mensagemTransgeniaInvalida();\n return false;\n }\n\n if(tipoParticipanteFornecedores === transgenia.tipoParticipante) {\n return true;\n }\n }\n return false;\n }\n\n public ngAfterViewInit() {\n const inputList = document.getElementsByTagName(\"input\");\n const selectedInput = Array.from(inputList).find((f: any) => !f.disabled);\n if (selectedInput) {\n selectedInput.focus();\n }\n \n this.recebimentoChegadaOverride.initialize();\n this.saveAndInitButton = document.getElementById('init');\n this.createdByErpDisableForm();\n \n this.formGroup.valueChanges.subscribe(() => {\n if (this.formCarregado) {\n this.hasChangeService.hasChange(this.agenda.id);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.recebimentoChegadaOverride.remove();\n }\n\n public createdByErpDisableForm() {\n this.disableOrdersButtons = this.agenda.createdByErp;\n if (this.isNew()) {\n this.createdByErp = false;\n this.formGroup.get('filial').enable();\n this.formGroup.get('produto').enable();\n this.formGroup.get('derivacao').enable();\n this.formGroup.get('transportadora').enable();\n (this.formGroup.get(\"fornecedores\") as FormArray).controls.forEach(form => form.get(\"fornecedor\").enable());\n }\n if (this.agenda && this.agenda.createdByErp) {\n this.createdByErp = true;\n this.formGroup.get('filial').disable();\n this.formGroup.get('produto').disable();\n this.formGroup.get('derivacao').disable();\n this.disableFornecedores();\n\n if (!!this.formGroup.get(\"transportadora\").value) {\n this.formGroup.get('transportadora').disable();\n }\n }\n }\n\n public disableFornecedores() { \n (this.formGroup.get(\"fornecedores\") as FormArray).controls.forEach(form => form.get(\"fornecedor\").disable());\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+x\",\n () => {\n if (this.permissions.excluir) this.onDelete();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+s\",\n () => {\n if (this.isNew() || this.permissions.editar) this.onSave();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n\n this.hotkeysService.add(\n new Hotkey(\n \"alt+shift+c\",\n () => {\n this.onCancel();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n )\n );\n }\n\n public onBlurChaveNotaFiscal() {\n if (this.verificaNotaFiscal.verificaSeNotaFiscalEstaDuplicada(this.chaveNotaFiscal, this.contratos, this.fornecedorNotasTokens)) {\n return;\n }\n\n this.removeNotaError();\n const value = this.chaveNotaFiscal;\n if (!!value) {\n this.loading = true;\n this.mensagemBuscandoNota();\n this.notaValidatorService.pesquisarDocumentoValidaNotaEmUso({\n filialId: (this.formGroup.get(\"filial\").value && this.formGroup.get(\"filial\").value.id) || null,\n chaveDocumento: value.trim()\n }).pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false)\n ).subscribe((response) => this.addNovaNota(response));\n }\n }\n\n private addNovaNota(response: PesquisarDocumentoResponse) {\n const value = (response.documentos || []).length ? response.documentos[0] : undefined;\n if (!value) return;\n\n const itemProduto = value.itens[0] || { produto: undefined, derivacao: undefined } as any;\n const produto = Produto.fromDto(itemProduto.produto);\n\n if (!this.formGroup.get(\"produto\").value && !!itemProduto.produto) {\n this.formGroup.get(\"produto\").setValue(produto);\n this.formGroup.get(\"derivacao\").setValue(Derivacao.fromDto(itemProduto.derivacao));\n } else if (!!itemProduto.produto && !this.validateProduto(produto)) {\n this.addNotaError();\n return;\n }\n\n \n const fornecedor = Pessoa.fromDto(value.fornecedor);\n const origemMercadoria = PessoaEndereco.fromDto(value.origemMercadoria);\n\n const fornecedorForm = this.getFornecedoresForm().controls.find(({ value }) => value.fornecedor.id === fornecedor.id) as FormGroup;\n const fornecedorOfGroup = this.validarCnpjFornecedor(fornecedor.cpfCnpj);\n\n if (fornecedorOfGroup) {\n if (!fornecedorForm) {\n this.addFornecedor({ fornecedor, origemMercadoria });\n }\n this.addFornecedorNotasToken(value);\n } else if (!fornecedorForm) {\n this.addFornecedor({ fornecedor, origemMercadoria });\n this.addFornecedorNotasToken(value);\n }\n this.validaRetornoPesquisaDocumentos(response);\n }\n\n private validaRetornoPesquisaDocumentos(response: PesquisarDocumentoResponse) { \n const duplicateFornecedores = this.verificaNotaFiscal.findDuplicateFornecedores(response);\n if (duplicateFornecedores !== null) {\n this.erroFornecedoresNotaDuplicada = this.translate.instant(\"yms.patio.duplicate_supplier\") + duplicateFornecedores;\n }\n }\n\n private addFornecedorNotasToken(value: any) {\n this.fornecedorNotasTokens.push({ id: this.chaveNotaFiscal, label: value.numero });\n\n this.fornecedorNotas.push({\n chaveNotaFiscal: this.chaveNotaFiscal,\n serieNotaFiscal: value.serie,\n serieLegalNotaFiscal: value.serieLegal,\n numeroNotaFiscal: value.numero,\n });\n\n this.chaveNotaFiscal = undefined;\n this.loading = false;\n }\n\n public isNew() {\n return !this.formGroup.value.id;\n }\n\n public updateSuggestions(value: any) {\n if (value.fornecedor) {\n value.fornecedor.label = this.getSuggestionValue(\n [\"id\", \"codigo\", \"nome\", \"situacao\"],\n \"fornecedor\",\n value,\n this.fornecedorLookupSeparator\n );\n if (value.fornecedor.label.trim() === this.fornecedorLookupSeparator.trim()) {\n delete value.fornecedor.label;\n }\n }\n\n if (value.produto) {\n value.produto.label = this.getSuggestionValue(\n [\"id\", \"codigo\", \"comprado\", \"descricao\", \"produtoMisto\", \"situacao\", \"tipo\"],\n \"produto\",\n value,\n this.produtoLookupSeparator\n );\n if (value.produto.label.trim() === this.produtoLookupSeparator.trim()) {\n delete value.produto.label;\n }\n }\n\n if (value.agenda) {\n value.agenda.label = this.getSuggestionValue([\"id\", \"descricao\"], \"agenda\", value, this.agendaLookupSeparator);\n if (value.agenda.label.trim() === this.agendaLookupSeparator.trim()) {\n delete value.agenda.label;\n }\n }\n\n if (value.derivacao) {\n value.derivacao.label = this.getSuggestionValue(\n [\"id\", \"codigo\", \"descricao\"],\n \"derivacao\",\n value,\n this.derivacaoLookupSeparator\n );\n if (value.derivacao.label.trim() === this.derivacaoLookupSeparator.trim()) {\n delete value.derivacao.label;\n }\n }\n }\n\n public getSuggestionValue(displayFields: string[], ownerEntity: string, value: any, separator: string) {\n return displayFields\n .map(field => this.getProp(value, `${ownerEntity}.${field}`))\n .reduce((acc: any, val: any) => `${acc}${separator}${val}`);\n }\n\n public onRouteDataChange(data: any) {\n const { currencySymbol, thousandsSeparator, decimalSeparator } = data.localeConfig.number;\n\n this.localeConfig = data.localeConfig;\n this.currencyLocaleOptions = {\n align: \"left\",\n prefix: currencySymbol,\n thousands: thousandsSeparator,\n decimal: decimalSeparator,\n };\n this.permissions = data.allPermissions.agenda;\n this.allPermissions = data.allPermissions;\n if (data.entity) {\n const canEdit = this.permissions.editar;\n if (!canEdit) this.formGroup.disable();\n const value: any = RecebimentoContrato.fromDto(data.entity);\n this.updateSuggestions(value);\n this.formGroup.patchValue(value);\n } else {\n this.formGroup.patchValue(new RecebimentoContrato());\n }\n\n this.carregandoErpRouteData = false;\n }\n\n public onCancel() {\n this.goBack();\n }\n\n public onSendFile(filesToDelete: any, filesToCommit: any[]) {\n const observables: any[] = [];\n\n if (!this.fieldCustomization.isEmpty(filesToDelete)) {\n observables.push(this.fieldCustomization.deleteFiles(filesToDelete));\n }\n if (!this.fieldCustomization.isEmpty(filesToCommit)) {\n observables.push(this.fieldCustomization.commitFiles(filesToCommit));\n }\n\n if (!this.fieldCustomization.isEmpty(observables)) {\n return forkJoin(observables);\n } else {\n return of({});\n }\n }\n\n public onSave(start?: boolean) {\n \n if ((this.formGroup.get(\"fornecedores\") as FormArray).length <= 0) {\n this.erroFornecedores = true;\n return;\n }\n\n if (this.formGroup.invalid) {\n return this.validateAllFormFields(this.formGroup);\n }\n\n this.loading = true;\n\n if (this.isNew() || !this.enableRevalidation) {\n return this.saveAndInit(start);\n }\n\n this.erpProcessData = this.erpProcessService.builderErpProcessDataValidaNotaNoContrato(this.erpProcessData, this.formGroup);\n this.erpProcessService.changeDataErp(this.erpProcessData);\n return this.agendaService\n .checarRevalidacao(this.erpProcessData)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((response: any) => {\n if (response.requerRevalidacao) {\n this.atualizaAgendaParaRejeitadoPorValidacao();\n }\n else {\n this.saveAndInit(start);\n }\n });\n }\n\n private atualizaAgendaParaRejeitadoPorValidacao() {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.patio.agenda_revalidacao_title\"),\n message: this.translate.instant(\"yms.patio.agenda_revalidacao_message\"),\n accept: () => {\n this.hasChangeService.hasChangeSave(this.agenda.id);\n this.agenda.status = StatusAgenda.REJEITADO_POR_VALIDACAO;\n this.agenda.motorista = {id: this.erpProcessData.motoristaId};\n this.agenda.veiculo = {id: this.erpProcessData.veiculoId};\n this.agendaService\n .atualizarAgenda(this.agenda)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n concatMap((_) => this.getSaveObservable()),\n finalize(() => this.loading = false),\n )\n .subscribe((_) => {\n this.successMessage();\n this.router.navigate([\"/chegada-veiculo\"], { relativeTo: this.route });\n });\n },\n reject: () => this.loading = false,\n });\n }\n\n private saveAndInit(start: boolean) {\n this.getSaveObservable()\n .pipe(\n takeUntil(this.ngUnsubscribe),\n finalize(() => this.loading = false),\n )\n .subscribe((value: any) => {\n this.formGroup.get(\"id\").setValue(value.id || null);\n this.successMessage();\n this.hasChangeService.hasChangeSave(this.agenda.id);\n if (start && this.saveAndInitButton) {\n this.saveAndInitButton.click();\n }\n });\n }\n\n private successMessage() {\n this.messageService.add({\n severity: \"success\",\n summary: this.translate.instant(\"saved_message_title\"),\n detail: this.translate.instant(\"saved_message_content\"),\n });\n }\n\n public onDelete() {\n this.confirmationService.confirm({\n message: this.translate.instant(\"yms.erp.delete_confirmation_message\"),\n header: this.translate.instant(\"yms.erp.delete_confirmation_title\"),\n accept: () =>\n this.getDeleteObservable()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(),\n });\n }\n\n public setTransportadora(value: string) {\n if (value) {\n const cnpj = value.replace('.', '').replace('/', '').replace('-', '');\n const filterQuery = `pessoa.cpfCnpj eq '${cnpj}'`;\n this.transportadoraService.list({ filterQuery, page: 0, size: 10 })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n const code = contents[0].codigo ? contents[0].codigo.toString() : '';\n const description = contents[0].descricao ? contents[0].descricao.toString() : '';\n if (!description.trim() && !code.trim()) {\n contents[0].label = this.translate.instant('yms.erp.derivacao_sem_descricao');\n } else {\n contents[0].label = `${code} - ${description}`;\n }\n this.formGroup.get('transportadora').setValue(contents[0]);\n }\n });\n }\n }\n\n public getProp(obj: any, path: any) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getRecebimento(agendaId: string) {\n this.loading = true;\n this.recebimentoService\n .list({\n filterQuery: `agenda.id eq '${agendaId}'`,\n size: 1,\n page: 0\n })\n .pipe(takeUntil(this.ngUnsubscribe), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n if (!contents.length) {\n this.buscarFilial();\n return;\n }\n\n this.totalEixosContratados = contents[0].eixos || 0;\n this.totalEixosComposicao = contents[0].agenda && contents[0].agenda.veiculo\n ? contents[0].agenda.veiculo.eixos || 0 : 0;\n\n const recebimento = RecebimentoContrato.fromDto(contents[0]);\n this.formGroup.enable();\n this.formGroup.patchValue(recebimento);\n\n recebimento.fornecedores.forEach(fornecedor => {\n const form = this.getFornecedorForm(fornecedor);\n this.getFornecedoresForm().push(form);\n\n fornecedor.contratos.forEach(contrato => {\n const contratoForm = this.getContratoForm(contrato);\n this.getContratos(form).push(contratoForm);\n\n contrato.itens.forEach(item => {\n const itemForm = this.getItemForm(item);\n this.getItensContrato(contratoForm).push(itemForm);\n });\n\n contrato.notas.forEach(nota => {\n const notaForm = this.getNotaForm(nota);\n this.getNotas(contratoForm).push(notaForm);\n });\n });\n });\n \n this.createdByErpDisableForm();\n this.formCarregado = true;\n this.carregandoErpRecebimento = false;\n });\n }\n\n public onFilialLookupRequest(value: string) {\n const filterInput = this.getFilialSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .reduce((a, { name, type }) => {\n if (type === FieldType.Integer) {\n return { ...a, [name]: value.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: 10, offset: 0 } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.filialLookupSuggestions = list.filiais.map(Filial.fromDto));\n }\n\n public onFilialSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getFilialSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { cnpjs: this.agenda.planta.cnpj, pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as PesquisarFiliaisInput);\n\n this.filialService\n .listFiliais(filterInput)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.filialSearchGridData = list.filiais.map(Filial.fromDto);\n this.filialSearchTotalRecords = list.qtdTotalRegistros;\n });\n }\n\n public onFornecedorLookupRequest(value: string) {\n const sort = this.fornecedorLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = this.getFornecedorSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n filterQuery = `(${filterQuery})${!!filterQuery ? ' and ' : \"\"}situacao eq 'ATIVO' and fornecedor eq true`;\n\n const displayFields = mergeUnique(this.fornecedorLookupDisplayFields, this.fornecedorAdvancedDisplayFields);\n this.pessoaService\n .list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.fornecedorLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.fornecedorLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.fornecedorLookupSuggestions = list.contents;\n });\n }\n\n public onFornecedorSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getFornecedorSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = filterQuery.concat(`${!!filterQuery ? ' and ' : \"\"}situacao eq 'ATIVO' and fornecedor eq true`);\n\n const displayFields = mergeUnique(this.fornecedorLookupDisplayFields, this.fornecedorAdvancedDisplayFields);\n this.pessoaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.fornecedorLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.fornecedorLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.fornecedorSearchGridData = list.contents;\n this.fornecedorSearchTotalRecords = list.totalElements;\n });\n }\n \n private montaQueryOrigemMercadoria(pessoaId: any) {\n return `situacao eq 'ATIVO' and origem eq 'true' and pessoa.id eq '${pessoaId}'`;\n }\n \n public onOrigemMercadoriaLookupRequest(value: string, fornecedorForm: FormGroup) {\n const sort = this.origemMercadoriaLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = this.getOrigemMercadoriaFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n filterQuery = `(${filterQuery})${!!filterQuery ? ' and ' : ''}`;\n filterQuery += this.montaQueryOrigemMercadoria(fornecedorForm.get(\"fornecedor\").value.id);\n\n const displayFields = mergeUnique(this.origemMercadoriaLookupDisplayFields, this.origemMercadoriaAdvancedDisplayFields);\n this.pessoaEnderecoService\n .list({ filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.origemMercadoriaLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.origemMercadoriaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.origemMercadoriaLookupSuggestions = list.contents;\n });\n }\n\n public onOrigemMercadoriaSearchRequest(event: any, fornecedorForm: FormGroup) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getOrigemMercadoriaFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n \n filterQuery = filterQuery.concat(`${!!filterQuery ? ' and ' : ''}`);\n filterQuery += this.montaQueryOrigemMercadoria(fornecedorForm.get(\"fornecedor\").value.id);\n\n const displayFields = mergeUnique(this.origemMercadoriaLookupDisplayFields, this.origemMercadoriaAdvancedDisplayFields);\n this.pessoaEnderecoService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.origemMercadoriaLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.origemMercadoriaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.origemMercadoriaSearchGridData = list.contents;\n this.origemMercadoriaSearchTotalRecords = list.totalElements;\n });\n }\n\n public getRecPagina(first: number, rows: number, sort: any) {\n const page = first / rows;\n const orderBy = sort && sort.length \n ? sort.map((s: any) => ({ campo: s.field, ordenacao: s.order === 1 ? 'Asc' : 'Desc' })) \n : [];\n return {\n offset: page,\n limit: rows,\n listaOrdenacao: orderBy\n }\n }\n\n public onProdutoLookupRequest(value: string) {\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService\n .listProdutosRecebimento({\n pesquisa: value,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.produtoLookupSuggestions = (list.produtos || []).map((produto: any) => Produto.fromDto(produto));\n });\n }\n\n public onProdutoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort: SortMeta[] = multiSortMeta;\n const sortFormatted = !!(sort || []).length && { campo: sort[0].field, ordenacao: sort[0].order > 0 ? 'Asc' : 'Desc' };\n const filterInput = this.getProdutoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .reduce((a, { name, type }) => {\n const value = filterData[name];\n if (type === FieldType.Integer) {\n return { ...a, [name]: `${value}`.replace(/\\D/, \"\") };\n }\n return { ...a, [name]: value };\n }, { pagina: { limit: rows, offset: page, listaOrdenacao: sortFormatted ? [{ ...(sortFormatted) }] : null } } as ProdutoRecebimentoParams);\n\n const filial = this.formGroup.get(\"filial\").value;\n const tipoAgendamento = this.agenda.tipoAgendamento;\n\n this.produtoService\n .listProdutosRecebimento({\n ...filterInput,\n empresaId: !!filial ? filial.empresa.id : null,\n filialId: !!filial ? filial.id : null,\n tipoAgendamentoId: !!tipoAgendamento ? tipoAgendamento.id : null\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((res: any) => {\n this.produtoSearchTotalRecords = res.qtdTotalRegistros;\n this.produtoSearchGridData = (res.produtos || []).map((produto: any) => Produto.fromDto(produto));\n });\n }\n\n public onDerivacaoLookupRequest(value: string) {\n const sort = this.derivacaoLookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n const filterQuery = this.getDerivacaoSearchFields()\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n const displayFields = mergeUnique(this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields);\n this.derivacaoService\n .list({ sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.derivacaoLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.derivacaoLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.derivacaoLookupSuggestions = list.contents;\n });\n }\n\n public onDerivacaoSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getDerivacaoSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(this.derivacaoLookupDisplayFields, this.derivacaoAdvancedDisplayFields);\n this.derivacaoService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.derivacaoLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) return this.getProp(item, field);\n return item[field];\n })\n .join(this.derivacaoLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.derivacaoSearchGridData = list.contents;\n this.derivacaoSearchTotalRecords = list.totalElements;\n });\n }\n\n public onTransportadoraLookupRequest(value: string) {\n onLookupRequest(this.transportadoraSearchFields, this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields, this.transportadoraLookupSeparator, this.transportadoraService, value)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => {\n this.transportadoraLookupSuggestions = list.contents;\n });\n }\n\n public onTransportadoraSearchRequest(event: any) {\n\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n const filterQuery = this.getTransportadoraSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const displayFields = mergeUnique(this.transportadoraLookupDisplayFields, this.transportadoraAdvancedDisplayFields);\n this.transportadoraService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.transportadoraLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) {\n return this.getProp(item, field);\n }\n return item[field];\n })\n .join(this.transportadoraLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.transportadoraSearchGridData = list.contents;\n this.transportadoraSearchTotalRecords = list.totalElements;\n });\n }\n\n public onTransgeniaLookupRequest(value: any) {\n onLookupRequest(this.getTransgeniaSearchFields(),\n this.transgeniaLookupDisplayFields,\n this.transgeniaAdvancedDisplayFields,\n this.transgeniaLookupSeparator,\n this.transgeniaService,\n value,\n this.geraFiltroTransgenia())\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((list: any) => this.transgeniaLookupSuggestions = list.contents);\n }\n\n public onTransgeniaSearchRequest(event: any) {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n let filterQuery = this.getTransgeniaSearchFields()\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n if (typeof value == \"number\") return `${name} eq ${value}`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n const filtroTransgenia = this.geraFiltroTransgenia();\n if (filtroTransgenia && filtroTransgenia.trim()) {\n filterQuery = filterQuery ? `(${filterQuery}) and ${filtroTransgenia}` : filtroTransgenia;\n }\n\n const displayFields = mergeUnique(this.transgeniaLookupDisplayFields, this.transgeniaAdvancedDisplayFields);\n this.transgeniaService\n .list({ page, sort, filterQuery, displayFields })\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: this.transgeniaLookupDisplayFields\n .map(field => {\n if (field.indexOf(\".\") > 0) {\n return this.getProp(item, field);\n }\n return item[field];\n })\n .join(this.transgeniaLookupSeparator),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.transgeniaSearchGridData = list.contents;\n this.transgeniaSearchTotalRecords = list.totalElements;\n });\n }\n\n public addFornecedor(data: any = {}) {\n this.erroFornecedores = false;\n const form = this.getFornecedorForm(data);\n this.configureFornecedor(form);\n this.getFornecedoresForm().push(form);\n return form;\n }\n\n public removeFornecedor(control: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_fornecedor_header\"),\n message: this.translate.instant(\"yms.erp.remove_fornecedor_message\"),\n accept: () => {\n const index = this.getFornecedoresForm().controls.indexOf(control);\n this.getFornecedoresForm().removeAt(index);\n }\n });\n }\n\n public getFornecedoresForm() {\n return this.formGroup.get(\"fornecedores\") as FormArray;\n }\n\n public addContrato(fornecedorForm: FormGroup) {\n this.dialogService\n .open(ContratoFormComponent, {\n ...dialogConfig,\n header: 'Adicionar Contrato',\n data: {\n agenda: this.agenda,\n filial: this.formGroup.get(\"filial\").value,\n produto: this.formGroup.get(\"produto\").value,\n fornecedor: fornecedorForm.get(\"fornecedor\").value,\n contratos: fornecedorForm.get(\"contratos\").value,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe(({ contrato }: any) => this.onContratoSaved(contrato, fornecedorForm));\n }\n\n public removerContrato(fornecedorForm: FormGroup, contratoForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_contrato_header\"),\n message: this.translate.instant(\"yms.erp.remove_contrato_message\"),\n accept: () => {\n const index = (fornecedorForm.get(\"contratos\") as FormArray).controls.indexOf(contratoForm);\n (fornecedorForm.get(\"contratos\") as FormArray).removeAt(index);\n }\n });\n }\n\n public getContratos(fornecedorForm: FormGroup) {\n this.contratos = fornecedorForm.get(\"contratos\")\n return this.contratos as FormArray;\n }\n\n public addNota(formGroup: FormGroup) {\n this.dialogService.open(NotaFormComponent, {\n header: this.translate.instant(\"yms.erp.adicionar_nota\"),\n ...dialogConfig,\n data: {\n fornecedor: formGroup.get(\"fornecedor\").value,\n produto: this.formGroup.get(\"produto\").value,\n filial: this.formGroup.get(\"filial\").value,\n fornecedorNotasTokens: this.fornecedorNotasTokens,\n contratos: this.contratos,\n }\n })\n .onClose\n .pipe(takeUntil(this.ngUnsubscribe), filter(value => !!value))\n .subscribe(value => this.onNotaSaved(value, formGroup));\n }\n\n public removerNota(fornecedorForm: FormGroup, contratoForm: FormGroup, notaForm: FormGroup) {\n this.confirmationService.confirm({\n header: this.translate.instant(\"yms.erp.remove_nota_header\"),\n message: this.translate.instant(\"yms.erp.remove_nota_message\"),\n accept: () => {\n const contratoId = contratoForm[\"value\"][\"contrato\"][\"id\"];\n const index = this.getNotasFromContratos(fornecedorForm, contratoId).controls.indexOf(notaForm);\n this.getNotasFromContratos(fornecedorForm, contratoId).removeAt(index);\n\n const nota = notaForm[\"value\"];\n this.fornecedorNotasTokens.push({\n id: nota.chaveNotaFiscal,\n label: nota.numeroNotaFiscal\n });\n this.fornecedorNotas.push({\n chaveNotaFiscal: nota.chaveNotaFiscal,\n serieNotaFiscal: nota.serieNotaFiscal,\n serieLegalNotaFiscal: nota.serieLegalNotaFiscal,\n numeroNotaFiscal: nota.numeroNotaFiscal,\n });\n }\n });\n }\n\n public getNotas(contratoForm: FormGroup) {\n return contratoForm[\"controls\"][\"notas\"] as FormArray;\n }\n\n public getItensContrato(contratoForm: FormGroup) {\n return contratoForm.get(\"itens\") as FormArray;\n }\n\n public showButtons() {\n if (!this.agenda) return false;\n return this.isNew() || [\n StatusAgenda.AGENDADO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO,\n StatusAgenda.AGUARDANDO_CONFIRMACAO_SOLICITANTE,\n StatusAgenda.REJEITADO_POR_VALIDACAO\n ].includes(this.agenda.status as StatusAgenda);\n }\n\n public disableAdicionarNota(): boolean {\n if (this.contratoSelecionado === null) {\n return true;\n }\n return false;\n }\n\n private getTipoTransgenia(): string {\n if ((this.formGroup.get(\"fornecedores\") as FormArray).length <= 0) {\n return null;\n }\n \n let tipoParticipanteTransgeniaGeral = null; \n const recebimentoDto = RecebimentoContrato.toDto(this.formGroup.getRawValue()); \n recebimentoDto.fornecedores.forEach(current => {\n if (current.fornecedor != null && current.fornecedor.tipoParticipante != null) {\n tipoParticipanteTransgeniaGeral = current.fornecedor.tipoParticipante;\n }\n });\n return tipoParticipanteTransgeniaGeral;\n }\n\n private getFamiliaProduto(): string {\n const produto = this.formGroup.get(\"produto\").value;\n\n if(produto && produto.familia && produto.familia.codigo){\n return produto.familia.codigo;\n }\n\n if(produto && produto.familia) {\n return produto.familia;\n }\n\n return null;\n }\n\n private geraFiltroTransgenia(){ \n let buildString = `empresa.id eq '${this.formGroup.get('filial').value.empresa.id}'`;\n\n buildString += `and situacao eq '${Situacao.ATIVO}'`;\n\n const familia = this.getFamiliaProduto();\n if (familia) {\n buildString += ` and `;\n buildString += `familia eq '${familia}'`;\n }\n\n const tipoTransgenia = this.getTipoTransgenia();\n if (tipoTransgenia) {\n buildString += ` and `;\n buildString += `tipoParticipante eq '${tipoTransgenia}'`;\n }\n\n return buildString;\n }\n\n private getNotaForm(data: any = {}) {\n return this.formBuilder.group({\n chaveNotaFiscal: [data.chaveNotaFiscal],\n serieNotaFiscal: [data.serieNotaFiscal],\n serieLegalNotaFiscal: [data.serieLegalNotaFiscal],\n numeroNotaFiscal: [data.numeroNotaFiscal],\n });\n }\n\n private getContratoForm(data: any = {}) {\n return this.formBuilder.group({\n contrato: [data.contrato, Validators.required],\n itens: this.formBuilder.array([]),\n notas: this.formBuilder.array([])\n });\n }\n\n private getItemForm(data: any = {}) {\n return this.formBuilder.group({\n item: [data.item, Validators.required],\n quantidade: [data.quantidade]\n });\n }\n\n private getFornecedorForm(data: any = {}) {\n return this.formBuilder.group({\n fornecedor: [data.fornecedor, Validators.required],\n origemMercadoria: [data.origemMercadoria, Validators.compose([Validators.required])],\n tipoNotaFiscal: [data.tipoNotaFiscal || TipoNotaFiscal.EMPRESA_JURIDICA, Validators.compose([])],\n contratos: this.formBuilder.array([]),\n });\n }\n\n private getFormGroup() {\n return this.formBuilder.group({\n id: [{ value: undefined, disabled: true }, Validators.compose([])],\n filial: [{ value: undefined, disabled: false }, Validators.required],\n produto: [{ value: undefined, disabled: true }, Validators.compose([Validators.required])],\n derivacao: [{ value: undefined, disabled: true }, Validators.compose([])],\n transportadora: [{ value: undefined, disabled: false }, Validators.compose([])],\n agenda: [{ value: this.agenda, disabled: false }, Validators.compose([Validators.required])],\n transgenia: [{ value: undefined, disabled: true }, Validators.compose([])],\n fornecedores: this.formBuilder.array([]),\n createdBy: [{ value: undefined, disabled: true }, Validators.compose([])],\n createdDate: [{ value: undefined, disabled: true }, Validators.compose([])],\n lastModifiedBy: [{ value: undefined, disabled: true }, Validators.compose([])],\n lastModifiedDate: [{ value: undefined, disabled: true }, Validators.compose([])],\n custom: [],\n });\n }\n\n private getFornecedorByContrato(contrato: ContratoCompraDto, fornecedorForm: FormGroup) {\n this.pessoaService.list({ size: 1, page: 0, filterQuery: `id eq '${contrato.pessoa.id}'` })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(({ contents }) => (contents || []).length && contents[0]),\n filter(value => !!value)\n )\n .subscribe(pessoa => {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(pessoa));\n });\n }\n\n private getProdutoByContrato(contrato: ContratoCompraDto) {\n this.contratoCompraService.listItens(contrato.id, { size: 1, page: 0, displayFields: ['sku.id'] })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n mergeMap(({ contents }) => {\n if (contents.length === 1) return this.produtoService.list({ size: 1, page: 0, filterQuery: `id eq '${contents[0].sku.id}'` })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map(({ contents }) => (contents || []).length && contents[0]),\n );\n return empty();\n }),\n filter(value => !!value)\n )\n .subscribe(produto => {\n this.formGroup.get(\"produto\").setValue(Produto.fromDto(produto));\n this.formGroup.get(\"produto\").disable();\n });\n }\n\n private onContratoSaved(contrato: any, fornecedorForm: FormGroup) {\n if (!this.formGroup.get(\"produto\").value) {\n this.getProdutoByContrato(contrato.contrato);\n }\n\n if (!fornecedorForm.get(\"fornecedor\").value) {\n this.getFornecedorByContrato(contrato.contrato, fornecedorForm);\n }\n\n const contratoForm = this.getContratoForm(contrato);\n (contrato.itens || []).forEach((item: any) => (contratoForm.get(\"itens\") as FormArray).push(this.getItemForm(item)));\n\n this.getContratos(fornecedorForm).push(contratoForm);\n }\n\n private mensagemContratoNaoSelecionado() {\n this.addMessage(\"error\", \"Contrato não selecionado\", \"Nenhum contrato foi selecionado!\");\n }\n\n private onNotaSaved(value: any, fornecedorForm: FormGroup) {\n\n if (this.contratoSelecionado === null) {\n this.mensagemContratoNaoSelecionado();\n return;\n }\n\n if (!value.addFornecedor) {\n const notasForm = this.getNotasFromContratos(fornecedorForm, this.contratoSelecionado.id);\n if (notasForm !== null) {\n notasForm.push(this.getNotaForm(value));\n }\n return;\n }\n\n const existsFornecedor = (this.formGroup.get(\"fornecedores\") as FormArray).controls.find((form) => (form.value.fornecedor || { id: undefined }).id === value.fornecedor.id);\n const { infoNota } = value;\n const notaForm = this.getNotaForm({ \n chaveNotaFiscal: infoNota.chave,\n serieNotaFiscal: infoNota.serie,\n serieLegalNotaFiscal: infoNota.serieLegal,\n numeroNotaFiscal: infoNota.numero,\n });\n\n if (!!existsFornecedor) {\n const notasForm = this.getNotasFromContratos(existsFornecedor, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n } else if (!fornecedorForm.get(\"fornecedor\").value) {\n fornecedorForm.get(\"fornecedor\").setValue(Pessoa.fromDto(value.fornecedor));\n fornecedorForm.get(\"origemMercadoria\").setValue(PessoaEndereco.fromDto(value.origemMercadoria));\n const notasForm = this.getNotasFromContratos(fornecedorForm, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n } else {\n const fornecedor = this.addFornecedor({ fornecedor: Pessoa.fromDto(value.fornecedor), origemMercadoria: PessoaEndereco.fromDto(value.origemMercadoria) });\n const notasForm = this.getNotasFromContratos(fornecedor, this.contratoSelecionado.id);\n notasForm.push(notaForm);\n }\n }\n\n public getNotasFromContratos(fornecedorForm: AbstractControl, contratoId: any) {\n let contratosFormSelecionado = null;\n const contratosForm = fornecedorForm[\"controls\"][\"contratos\"][\"controls\"];\n\n for (let contratoForm of contratosForm) {\n if (contratoForm[\"controls\"][\"contrato\"][\"value\"].id === contratoId) {\n contratosFormSelecionado = contratoForm[\"controls\"][\"notas\"];\n }\n }\n return contratosFormSelecionado as FormArray;\n }\n\n public addFornecedorNotasTokenEmContrato(fornecedorForm: FormGroup, token: IToken) {\n if (this.contratoSelecionado === null) {\n this.mensagemContratoNaoSelecionado();\n return;\n }\n\n const notas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal === token.id);\n const notasForm = this.getNotasFromContratos(fornecedorForm, this.contratoSelecionado.id);\n if (notasForm !== null && notas[0] !== null) {\n notasForm.push(this.getNotaForm(notas[0]));\n }\n\n this.removeFornecedorNotasTokenDoContrato(token);\n }\n\n public removeFornecedorNotasTokenDoContrato(token: IToken) {\n this.fornecedorNotasTokens.splice(this.fornecedorNotasTokens.indexOf(token), 1);\n this.fornecedorNotas = this.fornecedorNotas.filter(fornecedorNota => fornecedorNota.chaveNotaFiscal !== token.id);\n }\n\n private removeNotaError() {\n this.erroFornecedoresNotaDuplicada = null;\n this.erroChaveNota = false;\n }\n\n private addNotaError() {\n this.erroChaveNota = true;\n }\n\n private validateProduto(produto: Produto) {\n const { value } = this.formGroup.get(\"produto\");\n if (value.id !== produto.id) {\n return false;\n }\n return true;\n }\n\n private getFilialSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.filial_codigo\"),\n type: FieldType.Integer\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.filial_nome\"),\n type: FieldType.String\n }),\n ];\n }\n\n private getFornecedorSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.pessoa_codigo\"),\n type: FieldType.Integer,\n }),\n new FormField({\n name: \"nome\",\n label: this.translate.instant(\"yms.erp.pessoa_nome\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"cpfCnpj\",\n label: this.translate.instant(\"yms.erp.pessoa_cpfCnpj\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getFornecedorSearchGridFields() {\n return this.getFornecedorSearchFields();\n }\n\n private getOrigemMercadoriaFields() {\n return [\n this.buildFormField.buildForInteger(\"codigo\", \"yms.erp.pessoa_endereco_codigo\"),\n this.buildFormField.buildForString(\"cnpjCpf\", \"yms.erp.pessoa_endereco_cnpj_cpf\"),\n this.buildFormField.buildForString(\"inscricaoEstadual\", \"yms.erp.pessoa_endereco_inscricao_estadual\"),\n this.buildFormField.buildForString(\"cep\", \"yms.erp.pessoa_endereco_cep\"),\n this.buildFormField.buildForString(\"endereco\", \"yms.erp.pessoa_endereco_endereco\"),\n this.buildFormField.buildForString(\"numero\", \"yms.erp.pessoa_endereco_numero\"),\n this.buildFormField.buildForString(\"bairro\", \"yms.erp.pessoa_endereco_bairro\"),\n ];\n }\n \n private getOrigemMercadoriaGridFields() {\n const origemMercadoriaFields = this.getOrigemMercadoriaFields();\n origemMercadoriaFields.push( this.buildFormField.buildForString(\"empresa.descricao\", \"yms.erp.empresa\") );\n return origemMercadoriaFields;\n }\n\n private getProdutoSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.produto_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.produto_descricao\"),\n type: FieldType.String,\n })\n ];\n }\n\n private getProdutoSearchGridFields() {\n const produtoSearchFields = this.getProdutoSearchFields();\n produtoSearchFields.push(\n new FormField({\n name: \"descricaoComplementar\",\n label: this.translate.instant(\"yms.erp.produto_descricao_complementar\"),\n type: FieldType.String,\n })\n );\n return produtoSearchFields;\n }\n\n private getAgendaSearchFields() {\n return [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getAgendaSearchGridFields() {\n return [\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.agenda_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getDerivacaoSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getDerivacaoSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n label: this.translate.instant(\"yms.erp.derivacao_codigo\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"descricao\",\n label: this.translate.instant(\"yms.erp.derivacao_descricao\"),\n type: FieldType.String,\n }),\n ];\n }\n\n private getTransportadoraSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_descricao\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransportadoraSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.transportadora_codigo\")\n }),\n new FormField({\n name: \"pessoa.nome\",\n type: FieldType.Integer,\n label: this.translate.instant(\"yms.erp.pessoa_nome\")\n }),\n new FormField({\n name: \"pessoa.cpfCnpj\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transportadora_cnpj\")\n })\n ];\n }\n\n private getTransgeniaSearchFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_descricao\")\n }),\n ];\n }\n\n private getTransgeniaSearchGridFields() {\n return [\n new FormField({\n name: \"codigo\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_codigo\")\n }),\n new FormField({\n name: \"descricao\",\n type: FieldType.String,\n label: this.translate.instant(\"yms.erp.transgenia_descricao\")\n }),\n ];\n }\n\n private goBack() {\n const previousRoute = \"../\";\n this.router.navigate([previousRoute], { relativeTo: this.route.parent });\n }\n\n private validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFormFields(control);\n else if (control instanceof FormArray) control.controls.forEach(form => this.validateAllFormFields(form as FormGroup));\n });\n\n this.focusService.focusFirstInvalidInput();\n }\n\n private getSaveObservable() {\n const value = this.formGroup.getRawValue();\n value.agenda = this.agenda;\n const recebimentoDto = RecebimentoContrato.toDto(value);\n\n let fornecedores: any[] = recebimentoDto.fornecedores;\n recebimentoDto.fornecedores.forEach(anterior => {\n recebimentoDto.fornecedores.forEach(posterior => {\n if (anterior.fornecedor.id === posterior.fornecedor.id &&\n anterior.origemMercadoria.id === posterior.origemMercadoria.id) {\n posterior.contratos.forEach((contrato: any) => anterior.contratos.push(contrato));\n fornecedores = fornecedores.splice(fornecedores.indexOf(posterior), 1);\n }\n });\n });\n recebimentoDto.fornecedores = fornecedores;\n\n let observable: any;\n\n if (this.isNew() && !value.id) {\n observable = this.recebimentoService.insert(recebimentoDto);\n } else {\n const id = value.id;\n observable = this.recebimentoService.update(id, recebimentoDto);\n }\n\n return observable;\n }\n\n private getDeleteObservable() {\n return this.recebimentoService.delete('').pipe(\n tap(() => {\n this.addMessage(\"success\", \"yms.erp.deleted_message_title\", \"yms.erp.deleted_message_content\");\n this.goBack();\n })\n );\n }\n\n private validateVisualization() {\n if (!userCanVisualize(this.formGroup, this.allPermissions)) {\n this.addMessage(\"error\", \"yms.erp.cannot_visualize_form_summary\", \"yms.erp.cannot_visualize_form_detail\");\n }\n }\n\n private addMessage(severity: string, summary: string, detail: string) {\n this.messageService.add({\n severity,\n summary: this.translate.instant(summary),\n detail: this.translate.instant(detail),\n });\n }\n\n private readonly onFilialValueChange = (filial: Filial) => {\n this.disableOrdersButtons = !filial;\n if (!filial && this.isNew()) {\n this.formGroup.get(\"produto\").setValue(undefined);\n this.formGroup.get(\"produto\").disable();\n this.formGroup.get(\"transgenia\").setValue(undefined);\n this.formGroup.get(\"transgenia\").disable();\n this.carregandoErpFilial = false;\n return;\n }\n\n this.formGroup.get(\"produto\").enable();\n this.formGroup.get(\"transgenia\").enable();\n this.carregandoErpFilial = false;\n }\n\n private buscarFilial() {\n const planta = this.agenda.planta || { cnpj: [] };\n if (planta.cnpj.length !== 1) {\n this.formCarregado = true;\n return;\n }\n\n this.filialService\n .list({\n page: 0,\n size: 1,\n filterQuery: `pessoa.cpfCnpj eq '${planta.cnpj[0]}'`,\n displayFields: ['*', 'empresa.nome']\n })\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(({ contents }) => {\n if (contents.length === 1) {\n this.formGroup.get(\"filial\").setValue(Filial.fromDto(contents[0]));\n }\n this.formCarregado = true;\n });\n }\n\n private configureFornecedor(fornecedorForm: FormGroup) {\n fornecedorForm.get(\"fornecedor\")\n .valueChanges\n .pipe(\n takeUntil(this.ngUnsubscribe),\n debounceTime(500),\n tap(value => {\n if (value) {\n if (this.ehPessoaJuridica(value)) {\n fornecedorForm.get(\"tipoNotaFiscal\").setValue(TipoNotaFiscal.EMPRESA_JURIDICA);\n fornecedorForm.get(\"tipoNotaFiscal\").enable();\n return;\n } else {\n fornecedorForm.get(\"tipoNotaFiscal\").setValue(TipoNotaFiscal.PRODUTOR_RURAL);\n fornecedorForm.get(\"tipoNotaFiscal\").disable();\n return;\n }\n }\n fornecedorForm.get(\"tipoNotaFiscal\").setValue(TipoNotaFiscal.EMPRESA_JURIDICA);\n fornecedorForm.get(\"tipoNotaFiscal\").disable();\n }),\n filter(value => {\n if (!value) {\n\n this.formGroup.get(\"transgenia\").setValue(null);\n this.formGroup.get(\"transgenia\").disable();\n return false;\n }\n return true;\n }),\n mergeMap(value => this.pessoaEnderecoService.list({ size: 10, page: 0, filterQuery: `situacao eq 'ATIVO' and pessoa.id eq '${value.id}'` })\n .pipe(takeUntil(this.ngUnsubscribe))\n )\n )\n .subscribe(({ contents }) => {\n this.formGroup.get(\"transgenia\").enable();\n\n if (contents.length === 1) {\n fornecedorForm.get(\"origemMercadoria\").setValue(PessoaEndereco.fromDto(contents[0]));\n }\n else {\n fornecedorForm.get(\"origemMercadoria\").setValue(undefined);\n fornecedorForm.get(\"origemMercadoria\").enable();\n }\n });\n }\n\n private ehPessoaJuridica(pessoa: Pessoa) {\n const cpfCnpj = (pessoa.cpfCnpj || \"\").replace(/\\D+/g, \"\");\n return cpfCnpj.length > 11;\n }\n\n private mensagemBuscandoNota() {\n this.messageService.add({\n severity: 'info',\n summary: 'Buscando dados da nota',\n detail: 'Aguarde, buscando dados da nota',\n life: 5000\n });\n }\n\n private validarCnpjFornecedor(value: string) {\n if (!this.ehPessoaJuridica({ cpfCnpj: value } as Pessoa)) return false;\n const fornecedor = (this.formGroup.get(\"fornecedores\") as FormArray).controls.find((form) => {\n return ((form.value.fornecedor || { cpfCnpj: '' }).cpfCnpj as string).substring(0, 8) === value.substring(0, 8)\n });\n return fornecedor;\n }\n}\n\nexport interface ContratoItem {\n item: ContratoCompraItem;\n quantidade: number;\n}\n","import { Component, Input, AfterViewInit } from \"@angular/core\";\nimport { RecebimentoContratoService } from \"../../core/entities/recebimento-contrato/recebimento.service\";\nimport { Subject, throwError, of } from \"rxjs\";\nimport { takeUntil, switchMap, finalize } from \"rxjs/operators\";\nimport { RecebimentoContratoDto } from \"../../core/entities/recebimento-contrato/recebimento-dto\";\nimport { RecebimentoContrato } from \"../../core/entities/recebimento-contrato/recebimento\";\n\n@Component({\n selector: \"recebimento-info\",\n template: `\n <div *sLoadingState=\"loading\" style=\"padding: 20px;\">\n <div class=\"detail-pane\" *ngIf=\"agenda\">\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_filial\" | translate }}\n </span>\n <span class=\"data\">\n {{ recebimento?.filial?.codigo }} - {{ recebimento?.filial?.nome }}\n </span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_produto\" | translate }}\n </span>\n <span class=\"data\">{{ recebimento?.produto?.descricao }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_derivacao\" | translate }}\n </span>\n <span class=\"data\">{{ recebimento?.derivacao?.descricao }}</span>\n </div>\n </div>\n <div *ngFor=\"let fornecedor of recebimento?.fornecedores\">\n <div class=\"separator\"></div>\n <h3>Fornecedor - {{ fornecedor?.fornecedor?.nome }}</h3>\n <div class=\"detail-pane\">\n <div class=\"detail-span\">\n <span class=\"title\">\n {{ \"yms.erp.recebimento_origem_mercadoria\" | translate }}\n </span>\n <span class=\"data\">\n {{ fornecedor?.origemMercadoria?.codigo }} - {{ fornecedor?.origemMercadoria?.cep }}\n </span>\n </div>\n </div>\n\n <div>\n <h4>Contratos</h4>\n <p-accordion>\n <p-accordionTab *ngFor=\"let contrato of fornecedor.contratos\">\n <p-header>\n Contrato {{ contrato?.contrato?.numero }}, Filial {{ contrato?.contrato?.filial?.codigo }}\n </p-header>\n\n <div class=\"detail-pane\" *ngFor=\"let item of contrato?.itens\">\n <div class=\"detail-span\">\n <span class=\"title\">Sequência</span>\n <span class=\"data\">{{ item?.item?.sequencia }}</span>\n </div>\n </div>\n\n <div *ngFor=\"let nota of contrato.notas\">\n <div class=\"detail-pane\">\n <div class=\"detail-span\">\n <span class=\"title\">Chave nota fiscal</span>\n <span class=\"data\">{{ nota?.chaveNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie nota fiscal</span>\n <span class=\"data\">{{ nota?.serieNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Serie legal nota fiscal</span>\n <span class=\"data\">{{ nota?.serieLegalNotaFiscal }}</span>\n </div>\n <div class=\"detail-span\">\n <span class=\"title\">Número nota fiscal</span>\n <span class=\"data\">{{ nota?.numeroNotaFiscal }}</span>\n </div>\n </div>\n <hr />\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </div>\n `,\n styleUrls: [\"./recebimento-info.component.scss\"],\n})\nexport class RecebimentoInfoComponent implements AfterViewInit {\n @Input() agenda: any;\n\n recebimento: RecebimentoContrato;\n loading = true;\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private recebimentoService: RecebimentoContratoService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngAfterViewInit() {\n this.recebimentoService\n .list({\n filterQuery: `agenda.id eq '${this.agenda.id}'`,\n page: 0,\n size: 1,\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n switchMap(({ contents }) => {\n if (!contents.length)\n return throwError(\"Recebimento não encontrado.\");\n\n return of(contents[0]);\n }),\n finalize(() => (this.loading = false))\n )\n .subscribe((recebimento: RecebimentoContratoDto) => {\n this.recebimento = RecebimentoContrato.fromDto(recebimento);\n });\n }\n}\n","import { VerificaNotafiscal } from './core/verifica-nota-fiscal/verificaNotaFiscal';\nimport { OrdemCompraFormComponent } from './recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component';\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule, ControlErrorsModule, CustomFieldsModule, DynamicFormModule, EmptyStateModule, LoadingStateModule, LocaleModule, NumberInputModule, TokenListModule } from \"@seniorsistemas/angular-components\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\nimport { IntegrationDispatcher, IntegrationModule } from \"@seniorsistemas/yms-routines\";\nimport { HighlightModule } from \"ngx-highlightjs\";\nimport { AccordionModule } from \"primeng/accordion\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TabViewModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { FieldCustomizationService } from \"../utils/field-customization.service\";\nimport { FocusService } from \"../utils/focus.service\";\nimport { NotaFormModule } from \"./components/nota-form/nota-form.module\";\nimport { CoreModule } from \"./core/core.module\";\nimport { HotkeyModule } from \"angular2-hotkeys\";\nimport { DevolucaoChegadaVeiculoOverride } from \"./devolucao/devolucao-chegada-veiculo.override\";\nimport { DevolucaoFormComponent } from \"./devolucao/form/devolucao-form.component\";\nimport { DevolucaoInfoComponent } from \"./devolucao/info/info/devolucao-info.component\";\nimport { ExpedicaoChegadaVeiculoOverride } from \"./expedicao/expedicao-chegada-veiculo.override\";\nimport { ExpedicaoFormComponent } from \"./expedicao/form/expedicao-form.component\";\nimport { ExpedicaoInfoComponent } from \"./expedicao/info/expedicao-info.component\";\nimport { FormComponent } from \"./form/form.component\";\nimport { InfoComponent } from \"./info/info.component\";\nimport { LogIntegracaoComponent } from \"./log-integracao/log-integracao.component\";\nimport { ProcessoAvulsoFormComponent } from \"./processo-avulso/form/processo-avulso-form.component\";\nimport { ProcessoAvulsoInfoComponent } from \"./processo-avulso/info/processo-avulso-info.component\";\nimport { ProcessoAvulsoChegadaVeiculoOverride } from \"./processo-avulso/processo-avulso-chegada-veiculo.override\";\nimport { RecebimentoOrdemCompraFormComponent } from \"./recebimento-ordem-compra/form/recebimento-ordem-compra-form.component\";\nimport { RecebimentoOrdemCompraInfoComponent } from \"./recebimento-ordem-compra/info/recebimento-ordem-compra-info.component\";\nimport { RecebimentoOrdemCompraChegadaVeiculoOverride } from \"./recebimento-ordem-compra/recebimento-ordem-compra-chegada-veiculo.override\";\nimport { ContratoFormComponent } from \"./recebimento/contrato-form/contrato-form.component\";\nimport { RecebimentoFormComponent } from \"./recebimento/form/recebimento-form.component\";\nimport { RecebimentoInfoComponent } from \"./recebimento/info/recebimento-info.component\";\nimport { RecebimentoChegadaVeiculoOverride } from \"./recebimento/recebimento-chegada-veiculo.override\";\n\nimport jsonx from 'highlight.js/lib/languages/json';\nimport xmlx from 'highlight.js/lib/languages/xml'\n\nexport function highlightLanguages() {\n return [\n { name: 'json', func: jsonx },\n { name: 'xml', func: xmlx }\n ];\n}\n\n@NgModule({\n declarations: [ \n FormComponent, \n RecebimentoFormComponent, \n ExpedicaoFormComponent,\n InfoComponent,\n ExpedicaoInfoComponent,\n RecebimentoInfoComponent,\n DevolucaoFormComponent,\n RecebimentoOrdemCompraFormComponent,\n RecebimentoOrdemCompraInfoComponent,\n DevolucaoInfoComponent,\n ContratoFormComponent,\n OrdemCompraFormComponent,\n ProcessoAvulsoFormComponent,\n ProcessoAvulsoInfoComponent,\n LogIntegracaoComponent\n ],\n entryComponents: [ FormComponent, InfoComponent, ContratoFormComponent, OrdemCompraFormComponent, LogIntegracaoComponent ],\n exports: [ FormComponent, InfoComponent ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n CustomFieldsModule,\n ControlErrorsModule,\n DialogModule,\n EmptyStateModule,\n DynamicFormModule,\n TokenListModule,\n PanelModule,\n AccordionModule,\n InputTextModule,\n DropdownModule,\n ButtonModule,\n LoadingStateModule,\n NumberInputModule,\n ConfirmDialogModule,\n LocaleModule,\n IntegrationModule,\n CoreModule,\n PermissionsModule,\n DynamicDialogModule,\n NotaFormModule,\n AccordionModule,\n TableModule,\n TabViewModule,\n LoadingStateModule,\n HighlightModule.forRoot({\n languages: highlightLanguages\n }),\n HotkeyModule.forRoot(),\n ],\n providers: [ \n FieldCustomizationService, \n FocusService, \n RecebimentoChegadaVeiculoOverride, \n ExpedicaoChegadaVeiculoOverride, \n DevolucaoChegadaVeiculoOverride,\n RecebimentoOrdemCompraChegadaVeiculoOverride, \n ProcessoAvulsoChegadaVeiculoOverride,\n VerificaNotafiscal\n ]\n})\nexport class ErpSeniorModule { \n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher\n .dispatch(FormComponent)\n .dispatch(InfoComponent)\n .dispatch(LogIntegracaoComponent)\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class DockService extends Service {\n\n private readonly url_dock = `yms/dock/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n fallbackCall(plantId: string, vaga: string, plate: string) {\n return this.http.post(`${this.url_dock}actions/setVagaInTransit`, { plantId, vaga, plate }).pipe(this.defaultCatch());\n }\n\n}","import { NgModule } from \"@angular/core\";\nimport { DockService } from \"./dock.service\";\n\n@NgModule({\n providers: [ DockService ]\n})\nexport class DockModule {}"]}
|