@seniorsistemas/yms-integration 1.9.0 → 2.0.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 +48 -2
- 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/src/erp-senior/core/erp-process-data/erp-process-data.js +1 -1
- package/esm2015/src/erp-senior/core/erp-process-data/erp-process-service.js +45 -1
- package/esm2015/src/erp-senior/recebimento/form/recebimento-form.component.js +2 -2
- package/esm2015/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.js +2 -2
- package/esm5/src/erp-senior/core/erp-process-data/erp-process-data.js +1 -1
- package/esm5/src/erp-senior/core/erp-process-data/erp-process-service.js +47 -1
- package/esm5/src/erp-senior/recebimento/form/recebimento-form.component.js +2 -2
- package/esm5/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.js +2 -2
- package/fesm2015/seniorsistemas-yms-integration.js +46 -2
- package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
- package/fesm5/seniorsistemas-yms-integration.js +48 -2
- package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-yms-integration.metadata.json +1 -1
- package/src/erp-senior/core/erp-process-data/erp-process-data.d.ts +1 -0
- package/src/erp-senior/core/erp-process-data/erp-process-service.d.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-yms-integration.js","sources":["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/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/status-agenda.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/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/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"],"sourcesContent":["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","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}","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 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 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 { 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.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 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","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 { 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.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 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}"],"names":["tslib_1.__extends","tslib_1.__decorate","tslib_1.__param","MessageService","moment","ConfirmationService","tslib_1.__values"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-yms-integration.js","sources":["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/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/status-agenda.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/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/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"],"sourcesContent":["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","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 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 { 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","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 { 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}"],"names":["tslib_1.__extends","tslib_1.__decorate","tslib_1.__param","MessageService","moment","ConfirmationService","tslib_1.__values"],"mappings":"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"}
|