@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.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/yms-integration/src/websocket.ts","ng://@seniorsistemas/yms-integration/src/service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/controlador-cancela/controlador-cancela.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.ts","ng://@seniorsistemas/yms-integration/src/stomp.config.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/view-image/view-image.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/snapshot/snapshot.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.module.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.service.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.module.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.service.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.component.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.module.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.service.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/agendas/agendas.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/confirmacao/confirmacao.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/entrada/entrada.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/entity-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/injectors.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/recebimento-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/expedicao-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/integration.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/form/form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/info/info.component.ts","ng://@seniorsistemas/yms-integration/src/utils/field-customization.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.service.ts","ng://@seniorsistemas/yms-integration/src/utils/utils.ts","ng://@seniorsistemas/yms-integration/src/utils/lookup-utils.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/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":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { StompService, StompState } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nexport class IntegrationWebSocket {\n private _subscriptionUrl: string;\n private _unsubscribe$: Subject<void>;\n constructor(private _client: StompService, _cookieService: CookieService, _service: string) {\n const tokenObject = JSON.parse(_cookieService.get(\"com.senior.token\")); \n const token = tokenObject.access_token;\n const tenant = tokenObject.username.split(\"@\")[1];\n this._subscriptionUrl = `/topic/${tenant}/${token}/yms/${_service}/`;\n this._unsubscribe$ = new Subject();\n }\n\n public connect(callback: (url: string, client: StompService, state?: StompState) => void): void {\n this._client.connectObservable\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((state) => callback(this._subscriptionUrl, this._client, state));\n }\n\n public dispose() {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n}","import { catchError } from \"rxjs/operators\";\nimport { HttpParams } from \"@angular/common/http\";\nimport { throwError } from \"rxjs\";\nimport { MessageService } from \"primeng/api\";\nexport class Service {\n constructor(protected messageService: MessageService) {}\n protected getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n return params;\n }\n protected defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n return throwError(err);\n });\n }\n}\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: any[];\n filterQuery?: string;\n displayFields?: string[];\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Service } from \"../../service\";\n\n@Injectable()\nexport class ControladorCancelasService extends Service {\n private readonly url = 'yms/integration/';\n \n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n public listGateByArea(areaId: string) {\n const params = this.getListQueryParams({\n size: 1000,\n page: 0,\n displayFields: [\"*\"],\n filterQuery: `area.id eq '${areaId}'`\n });\n return this.http.get(`${this.url}entities/gate`, { params })\n }\n public openGate(ip: string) {\n return this.http.post(`${this.url}actions/openGate`, { ip }).pipe(this.defaultCatch());\n }\n public closeGate(ip: string) {\n return this.http.post(`${this.url}actions/closeGate`, { ip }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, OnDestroy } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { ControladorCancelasService } from \"../cancelas.service\";\nimport { Gate } from \"../gate\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\nimport { PermissionsService } from \"@seniorsistemas/platform-components\";\n@ControleCircuito({\n header: \"Cancelas\",\n name: \"yms.integracao.devices\"\n})\n@ControleOperacao({\n header: 'Cancelas',\n name: 'yms.integracao.devices'\n})\nexport class ControladorCancelaDescritor{}\n@Component({\n selector: 'controlador-cancela-component',\n templateUrl: \"./controlador-cancela.component.html\",\n animations: [\n trigger('success', [\n state('*', style({\n backgroundColor: '#0C9348',\n opacity: 0.5\n })),\n state('default', style({\n backgroundColor: '#FFF',\n opacity: 1\n })),\n transition('* => default', animate('1.2s ease-in')),\n transition('default => *', animate('0s'))\n ])\n ]\n})\nexport class ControladorCancelaComponent extends ControladorCancelaDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n gates$: Subject<Gate[]>;\n loading: string;\n successState: string = 'default';\n canOpenGate:boolean = false;\n canCloseGate:boolean = false;\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: ControladorCancelasService, private translate: TranslateService, private permissionsService: PermissionsService) {\n super();\n this.unsubscribe$ = new Subject();\n this.gates$ = new Subject();\n }\n public ngOnInit() {\n this.service\n .listGateByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((res: any) => this.gates$.next(res.contents));\n\n this.permissionsService\n .get(\"gate\")\n .pipe(map((permissions: any) => {\n if (permissions.Open) {\n this.canOpenGate = true;\n }\n if (permissions.Close) {\n this.canCloseGate = true;\n }\n }))\n .toPromise();\n\n }\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n public model(gate: Gate) {\n return [\n {\n label: this.translate.instant('yms.integration.open_gate'),\n visible: this.canOpenGate,\n command: () => this.openGate(gate)\n },\n {\n label: this.translate.instant('yms.integration.close_gate'),\n visible: this.canCloseGate,\n command: () => this.closeGate(gate)\n }\n ]\n }\n private openGate(gate: Gate) {\n this.loading = gate.id;\n this.service.openGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(_ => this.successState = gate.id);\n }\n private closeGate(gate: Gate) {\n this.loading = gate.id;\n this.service.closeGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(res => this.successState = gate.id);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { MessageModule } from \"primeng/message\";\nimport { TableModule } from \"primeng/table\";\nimport { ControladorCancelasService } from \"./cancelas.service\";\nimport { ControladorCancelaComponent } from \"./controlador-cancela/controlador-cancela.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n@NgModule({\n imports: [\n CommonModule, \n TableModule, \n TranslateModule,\n MessageModule,\n ButtonModule,\n LoadingStateModule,\n PermissionsModule.forChild([\n {\n name: \"gate\",\n actions: [\"Open\", \"Close\"],\n uri: `res://senior.com.br/yms/devices/gate`,\n },\n ]),\n\n ],\n declarations: [ControladorCancelaComponent],\n entryComponents: [ControladorCancelaComponent],\n exports: [ControladorCancelaComponent],\n providers: [ControladorCancelasService]\n})\nexport class CancelasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(ControladorCancelaComponent);\n }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class BalancasService extends Service {\n private readonly urlIntegration = `yms/integration/`;\n private readonly urlBalanca = `yms/balanca/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n getWeightScaleByArea(areaId: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`\n }\n return this.http.get(`${this.urlIntegration}entities/weightScale`,\n { params: this.getListQueryParams(params) }).pipe(this.defaultCatch())\n }\n\n fallbackCall(balanca: string, peso: number) {\n return this.http.post(`${this.urlBalanca}actions/manualWeight`, { code: balanca, weight: peso }).pipe(this.defaultCatch());\n }\n\n getWeightScaleByCode(code: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 10,\n filterQuery: `code eq '${code}'`\n };\n return this.http.get(`${this.urlIntegration}entities/weightScale`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { BalancasService } from \"../balancas.service\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { WeightScale } from \"../weightScale\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Message } from \"@stomp/stompjs\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\n\n@ControleCircuito({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\n@ControleOperacao({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\nexport class VisualizarBalancaDescritor {}\n\n@Component({\n selector: 'visualizar-balanca-component',\n templateUrl: './visualizar-balanca.component.html'\n})\nexport class VisualizarBalancaComponent extends VisualizarBalancaDescritor \n implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n loading = false;\n weightScales$: BehaviorSubject<WeightScale[]>;\n weightScaleValues: Map<string, number>;\n private readonly unsubscribe$: Subject<void>;\n private websocket: IntegrationWebSocket;\n\n constructor(private service: BalancasService, \n private client: StompService, \n private cookieService: CookieService) {\n super();\n this.websocket = new IntegrationWebSocket(this.client, this.cookieService, 'integration');\n this.unsubscribe$ = new Subject();\n this.weightScales$ = new BehaviorSubject([]);\n this.weightScaleValues = new Map();\n }\n ngOnInit() {\n if (!this.sequenciaCircuito) return;\n this.loading = true;\n this.service.getWeightScaleByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }: any) => {\n this.weightScales$.next(contents);\n contents.forEach((value: WeightScale) => {\n this.weightScaleValues.set(value.id, 0);\n });\n });\n\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsWeightScale`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((payload: WsWeightScalePayload) => {\n if (!this.weightScales$.value.length) return;\n \n const index = this.weightScales$.value.findIndex(value => value.id === payload.weightScale.id);\n if (index < 0) return;\n const find = this.weightScales$.value[index];\n this.weightScaleValues.set(find.id, payload.weight);\n });\n });\n }\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n \n}\nexport interface WsWeightScalePayload {\n weight: number;\n weightScale: WeightScale;\n}","import * as SockJS from \"sockjs-client\";\nimport { StompConfig } from \"@stomp/ng2-stompjs\";\n\nexport class CustomStompConfig extends StompConfig {\n socketProvider: any;\n \n constructor() {\n super();\n const token = this.getCookieObject('com.senior.token').access_token;\n const url = `${this.getCookie('com.senior.base.url')}/websocket/subscription`;\n this.socketProvider = () => new SockJS(url);\n this.configureConfig(token);\n }\n private getCookieObject(cname: string) {\n const cookie = this.getCookie(cname);\n if (!cookie) return cookie;\n return JSON.parse(cookie);\n }\n private getCookie(cname: string) {\n try {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return null;\n } catch(e) {\n return null;\n }\n }\n private configureConfig (token: string) {\n this.url = this.socketProvider,\n this.headers = {\n \"content-type\": \"application/json\",\n \"Authorization\": \"Bearer \" + token,\n \"Access-Control-Allow-Origin\": \"*\"\n },\n this.heartbeat_in = 10000,\n this.heartbeat_out = 10000,\n this.reconnect_delay = 15000, \n this.debug = false\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { VisualizarBalancaComponent } from \"./visualiar-balanca/visualizar-balanca.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableModule } from \"primeng/table\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { BalancasService } from \"./balancas.service\";\nimport { MessageModule } from \"primeng/message\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { StompConfig, StompService } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\nimport { CookieService } from \"ngx-cookie-service\";\n@NgModule({\n imports: [\n CommonModule,\n TableModule,\n MessageModule,\n LoadingStateModule,\n ],\n declarations: [VisualizarBalancaComponent],\n entryComponents: [VisualizarBalancaComponent],\n exports: [VisualizarBalancaComponent],\n providers: [\n BalancasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class BalancaModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(VisualizarBalancaComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Camera } from \"./camera\";\n\n@Injectable()\nexport class CamerasService extends Service {\n\n private readonly url = 'yms/integration/';\n private readonly patioUrl = 'yms/patio/'\n\n constructor(private http: HttpClient, messageService: MessageService) { \n super(messageService);\n }\n\n public getCamerasByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"description\", \"ip\"]\n }\n\n return this.http\n .get(`${this.url}entities/camera`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n public takeSnapshot(camera: Camera) {\n return this.http.get(`${this.url}queries/fetchSnapshot`, { params: {ip: camera.ip }}).pipe(this.defaultCatch());\n }\n\n public saveSnapshotInCircuit(payload: SaveSnapshotInCircuitPayload) {\n return this.http.post(`${this.patioUrl}actions/adicionaImagemExecucaoCircuito`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface SaveSnapshotInCircuitPayload {\n execucaoCircuitoId: string;\n alvoId: string;\n cameraIp: string;\n imagemUrl: string;\n}","import { Component, OnInit } from \"@angular/core\";\nimport { DynamicDialogConfig, DynamicDialogRef, MessageService } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { finalize, takeUntil } from \"rxjs/operators\";\nimport { CamerasService } from \"../cameras.service\";\n\n@Component({\n selector: 'view-image-component',\n template: `\n <s-loading-state [loading]=\"loading\">\n <img [src]=\"imageUrl\" width=\"100%\">\n <br>\n </s-loading-state>\n\n <div style=\"position: absolute; bottom: 0; width: 670px; padding-top: 10px; border-top: 1px solid #ccc;\" [style.pointer-events]=\"loading ? 'none' : 'all'\">\n <s-button priority=\"primary\" label=\"Salvar\" (onClick)=\"save()\"></s-button>\n <s-button priority=\"link\" label=\"Cancelar\" (onClick)=\"close()\"></s-button>\n </div> \n `,\n})\nexport class ViewImageComponent implements OnInit {\n imageUrl: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<boolean>;\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private service: CamerasService,\n private messageService: MessageService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngOnInit() {\n this.imageUrl = this.dialogConfig.data.url;\n }\n\n save() {\n this.loading = true;\n const execucaoCircuito = this.dialogConfig.data.execucaoCircuito;\n let cameraIp = this.dialogConfig.data.cameraIp;\n\n this.service.saveSnapshotInCircuit({\n execucaoCircuitoId: execucaoCircuito.id,\n alvoId: execucaoCircuito.sequenciaCircuito.id,\n cameraIp,\n imagemUrl: this.imageUrl\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(() => {\n this.messageService.add({\n severity: 'success',\n summary: 'Salvo com sucesso!',\n detail: 'Imagem salva com sucesso'\n });\n this.dialogRef.close();\n });\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleOperacao, ControleCircuito } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { Camera } from \"../camera\";\nimport { CamerasService } from \"../cameras.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { DialogService } from \"primeng/api\";\nimport { ViewImageComponent } from \"../view-image/view-image.component\";\n\n@ControleOperacao({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\n@ControleCircuito({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\nexport class SnapshotDescritor {}\n\n@Component({\n selector: 'snapshot-component',\n templateUrl: './snapshot.component.html',\n styleUrls: ['./snapshot.component.scss'],\n providers: [DialogService]\n})\nexport class SnapshotComponent extends SnapshotDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n @Input() execucaoCircuito: any;\n cameras$: Subject<Camera>;\n\n loadingAll = false;\n loading: string[] = [];\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: CamerasService, private dialogService: DialogService) {\n super();\n this.unsubscribe$ = new Subject();\n this.cameras$ = new Subject();\n }\n\n public ngOnInit() {\n this.loadingAll = true;\n this.service.getCamerasByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loadingAll = false))\n .subscribe(({ contents }: any) => this.cameras$.next(contents));\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public takeSnapshot(camera: Camera) {\n this.loading.push(camera.id);\n this.service.takeSnapshot(camera)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => {\n const index = this.loading.indexOf(camera.id);\n this.loading.splice(index, 1);\n })\n )\n .subscribe(({ url }: any) => {\n this.dialogService.open(ViewImageComponent, {\n header: camera.description,\n width: \"700px\",\n height: \"600px\",\n contentStyle: {\n 'height': '500px',\n overflow: 'hidden'\n },\n data: { \n url,\n cameraIp: camera.ip,\n execucaoCircuito: this.execucaoCircuito\n }\n });\n });\n }\n\n}","import { NgModule } from \"@angular/core\";\nimport { SnapshotComponent } from \"./snapshot/snapshot.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { LoadingStateModule, ButtonModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { CamerasService } from \"./cameras.service\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { ViewImageComponent } from \"./view-image/view-image.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n LoadingStateModule,\n DynamicDialogModule\n ],\n declarations: [SnapshotComponent, ViewImageComponent],\n entryComponents: [SnapshotComponent, ViewImageComponent],\n exports: [SnapshotComponent],\n providers: [CamerasService]\n})\nexport class CamerasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(SnapshotComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class LprService extends Service {\n\n private readonly url = `yms/integration/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n getLprByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"area.*\"]\n }\n\n return this.http\n .get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n fallbackCall(stream: string, licencePlate: string) {\n return this.http.post(`${this.url}actions/lprEventPublish`, { stream, licencePlate }).pipe(this.defaultCatch());\n }\n\n getLprByCode(code: string) {\n const params: ListParams = {\n page: 0,\n size: 10,\n filterQuery: `stream eq '${code}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"locked\"]\n };\n\n return this.http.get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { NgModule } from \"@angular/core\";\nimport { LprService } from \"./lpr.service\";\n\n@NgModule({\n providers: [ LprService ]\n})\nexport class LprModule {}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { ListParams, Service } from \"../../service\";\n\n@Injectable()\nexport class LogsService extends Service {\n private readonly url = `yms/integration/`;\n constructor (private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n listLogByCircuit(execucaoCircuitoId: string, params: ListParams) {\n params.filterQuery = `execucaoCircuitoId eq '${execucaoCircuitoId}'`;\n return this.http.get(`${this.url}entities/logCircuit`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CircuitoFinalizado } from \"@seniorsistemas/yms-routines\";\nimport { LazyLoadEvent, SortMeta } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { LogCircuit } from \"./log-circuit\";\nimport { LogsService } from \"./logs.service\";\n\n@CircuitoFinalizado({\n header: 'Logs com dispositivos',\n name: \"yms.integracao.devices\"\n})\nexport class LogDescritor { }\n\n@Component({\n templateUrl: './logs.component.html'\n})\nexport class LogsComponent extends LogDescritor implements OnInit, OnDestroy {\n @Input() execucaoCircuito: any;\n columns: any[];\n logsData: LogCircuit[];\n totalRecords: number;\n\n loading: boolean;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(\n private logsService: LogsService,\n private translate: TranslateService\n ) {\n super();\n }\n\n ngOnInit() {\n this.columns = [\n { field: \"username\", header: this.translate.instant(\"yms.integration.usuario\") },\n { field: \"log\", header: this.translate.instant(\"yms.integration.log\") },\n { field: \"createdDate\", header: this.translate.instant(\"yms.integration.created_date\") }\n ];\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n onGridChange(event: LazyLoadEvent) {\n const size = event.rows;\n const page = event.first / size;\n const sort: SortMeta[] = [{ field: 'createdDate', order: -1 }];\n this.updateGrid({ size, page, sort });\n }\n\n private updateGrid(params: { size: number, page: number, sort: any[] }) {\n this.loading = true;\n const { page, size, sort } = params;\n\n this.logsService.listLogByCircuit(this.execucaoCircuito.id, { page, size, sort })\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents, totalElements }: any) => {\n this.logsData = contents;\n this.totalRecords = totalElements;\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { TooltipModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { LogsComponent } from \"./logs.component\";\nimport { LogsService } from \"./logs.service\";\n\n@NgModule({\n declarations: [ LogsComponent ],\n entryComponents: [ LogsComponent ],\n providers: [ LogsService ],\n imports: [\n CommonModule,\n TableModule,\n TranslateModule,\n TooltipModule,\n LoadingStateModule\n ]\n})\nexport class LogsModule {\n constructor(integrationDispatcher: IntegrationDispatcher) {\n integrationDispatcher.dispatch(LogsComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class PortariasService extends Service {\n constructor(private http: HttpClient, messageService: MessageService) {\n super(messageService);\n }\n\n agendas(params: ListParams) {\n return this.http.get(`yms/patio/entities/agenda`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n \n ultimaPlacaLida(stream: string) {\n return this.http.post(`yms/integration/queries/getLastValidPlateByLpr`, { stream }).pipe(this.defaultCatch());\n }\n\n getPortarias(plantaId: string) {\n return this.http.get(`yms/integration/entities/lobby`, { params: this.getListQueryParams({ page: 0, size: 100, filterQuery: `planta.id eq '${plantaId}'`, displayFields: [ 'description', 'entranceLpr.*', 'lprs.*', 'planta.*' ] }) }).pipe(this.defaultCatch());\n }\n\n executarEntrada(lobbyId: string, placa: string) {\n return this.http.post(`yms/integration/actions/executeLobby`, { lobbyId, plate: placa }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleUnificado } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { SelectPlantService } from \"@seniorsistemas/yms-components\";\nimport { PortariasService } from \"./portarias.service\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@ControleUnificado({\n header: 'Periféricos',\n name: \"yms.integracao.devices\"\n})\nexport class PortariasDescritor {}\n\n@Component({\n selector: 'portarias',\n template: `\n <h3>Portarias</h3>\n <div class=\"separator\"></div>\n <div class=\"ui-g\">\n <portaria-entrada *ngFor=\"let portaria of portarias\" class=\"ui-md-4\" [portaria]=\"portaria\"></portaria-entrada>\n </div>\n `,\n\n})\nexport class PortariasComponent extends PortariasDescritor implements OnInit, OnDestroy {\n portarias: any[];\n unsubscribe$ = new Subject<void>();\n constructor(private selectPlantService: SelectPlantService, private portariaService: PortariasService) {\n super();\n }\n\n ngOnInit() {\n const planta = this.selectPlantService.getPlant();\n this.portariaService.getPortarias(planta.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents }) => this.portarias = contents);\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n template: `\n <div style=\"width: 100%; height: calc(100% - 50px); overflow: auto;\">\n <div *sLoadingState=\"loading\">\n <p-table [value]=\"agendas\" [columns]=\"getColumns()\" selectionMode=\"single\" [(selection)]=\"selected\" dataKey=\"id\">\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 50px;\"></th>\n <th *ngFor=\"let column of columns\">{{column.label}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData>\n <tr [pSelectableRow]=\"rowData\">\n <td style=\"width: 50px;\">\n <p-tableRadioButton [value]=\"rowData\"></p-tableRadioButton>\n </td>\n <td>{{rowData['descricao']}}</td>\n <td>{{rowData['dataEsperadaAgendamento'] | date: 'dd/MM/yyyy HH:mm'}}</td>\n <td>{{rowData['tipoAgendamento']?.descricao}}</td>\n <td>{{rowData['externalTenant']?.descricao}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Registrar chegada\" [disabled]=\"!selected\" (onClick)=\"chegada()\"></s-button>\n <s-button priority=\"primary\" label=\"Registrar chegada simplificada\" (onClick)=\"chegadaSimplificada()\"></s-button>\n </div>\n `\n})\nexport class AgendasComponent implements OnInit, OnDestroy {\n agendas: any;\n selected: any;\n veiculo: string;\n portaria: any;\n loading: boolean;\n private readonly unsubscribe$ = new Subject<void>();\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private portariaService: PortariasService,\n private router: Router) { }\n\n ngOnInit() {\n this.veiculo = this.dialogConfig.data.veiculo;\n this.portaria = this.dialogConfig.data.portaria;\n this.loading = true;\n this.portariaService\n .agendas({ \n size: 100, \n page: 0, \n displayFields: ['veiculo.primario.*', 'tipoAgendamento.*', 'descricao', 'externalTenant', 'dataEsperadaAgendamento'], \n filterQuery: `veiculo.primario.placa eq '${this.veiculo}' and status eq 'AGENDADO' and planta eq '${this.portaria.planta.id}'` \n })\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n this.agendas = contents;\n if (!this.agendas.length) {\n this.chegadaSimplificada();\n return;\n }\n if (this.agendas.length === 1) {\n this.selected = this.agendas[0];\n }\n });\n \n }\n\n chegadaSimplificada() {\n this.router.navigate(['execucao-circuito/new'], { queryParams: { veiculo: this.veiculo, navigateTo: \"processo-entrada\" } });\n this.dialogRef.close();\n }\n\n chegada() {\n if (!this.selected) return;\n this.router.navigate([`execucao-circuito/${this.selected.id}`]);\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n getColumns() {\n return [\n { field: 'descricao', label: 'Descrição' },\n { field: 'dataEsperadaAgendamento', label: 'Data' },\n { field: 'tipoAgendamento', label: 'Tipo de Agendamento' },\n { field: 'externalTenant', label: 'Parceiro' }\n ]\n }\n}","import { Component } from \"@angular/core\";\nimport { DynamicDialogRef } from \"primeng/api\";\n\n@Component({\n template: `\n <p>Não foi encontrada uma leitura de placa. Deseja informar a placa para realizar a entrada?</p>\n <div class=\"separator\"></div>\n <input pInputText type=\"text\" pattern=\"[A-Z0-9]{6,10}\" maxlength=\"10\" placeholder=\"Digite a placa\" [(ngModel)]=\"placa\" #placaInput>\n \n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Continuar\" [disabled]=\"!placa || !placaInput.validity.valid\" (onClick)=\"continue()\"></s-button>\n </div>\n `\n})\nexport class ConfirmacaoComponent {\n placa: string;\n\n constructor(private dialogRef: DynamicDialogRef) {}\n\n continue() {\n this.dialogRef.close({ placa: this.placa });\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { DialogService } from \"primeng/api\";\nimport { filter, map, takeUntil, finalize, catchError, mergeMap } from \"rxjs/operators\";\nimport { AgendasComponent } from \"../agendas/agendas.component\";\nimport { ConfirmacaoComponent } from \"../confirmacao/confirmacao.component\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject, throwError } from \"rxjs\";\nimport { Message } from \"@stomp/stompjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { Lpr } from \"../../lpr/lpr\";\n\n@Component({\n selector: 'portaria-entrada',\n template: `\n <div class=\"card-entrada\" *sLoadingState=\"loading\">\n <div class=\"portaria-card\">\n <h4>{{portaria?.description}}</h4>\n <s-button style=\"float: right\" [auxiliary]=\"true\" iconClass=\"fas fa-camera\" priority=\"default\" (onClick)=\"readPlaque()\"></s-button>\n </div>\n <div class=\"portaria-card\" *ngFor=\"let lpr of portaria.lprs\">\n <h4>{{lpr.description || lpr.stream}}</h4>\n <p-inputSwitch styleClass=\"lprInputSwitch\" [ngModel]=\"lpr.locked\" [readonly]=\"true\"></p-inputSwitch>\n </div>\n </div>\n `,\n styleUrls: ['./entrada.component.scss'],\n providers: [ DialogService ]\n})\nexport class EntradaComponent implements OnInit, OnDestroy {\n\n @Input() portaria: any;\n\n loading = false;\n\n websocket: IntegrationWebSocket;\n unsubscribe$ = new Subject<void>();\n constructor(private dialogService: DialogService, private portariaService: PortariasService, stompService: StompService, cookieService: CookieService) {\n this.websocket = new IntegrationWebSocket(stompService, cookieService, 'integration');\n }\n\n ngOnInit() {\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsLprLockUnlocked`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((response: WsLprLockUnlocked) => this.portaria.lprs = this.portaria.lprs.map((lpr: Lpr) => lpr.stream === response.stream ? { ...lpr, locked: response.locked } : lpr ))\n })\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n readPlaque() {\n this.loading = true;\n this.portariaService.ultimaPlacaLida(this.portaria.entranceLpr.stream)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(({ plate }) => {\n if (!plate) {\n return this.placaNaoEncontrada();\n }\n this.openAgendas(plate);\n })\n }\n\n placaNaoEncontrada() {\n this.dialogService.open(ConfirmacaoComponent, {\n header: 'Placa não encontrada',\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n }\n })\n .onClose\n .pipe(\n filter(data => !!data),\n )\n .subscribe(data => this.openAgendas(data.placa))\n }\n\n openAgendas(placa: string) {\n this.portariaService.executarEntrada(this.portaria.id, placa)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.dialogService.open(AgendasComponent, {\n header: `Agendamentos | ${placa.toUpperCase()}`,\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n },\n data: {\n veiculo: placa,\n portaria: this.portaria\n }\n })\n });\n }\n\n}\n\nexport interface WsLprLockUnlocked {\n stream: string;\n locked: boolean;\n}","import { NgModule } from \"@angular/core\";\nimport { PortariasComponent } from \"./portarias.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { EntradaComponent } from \"./entrada/entrada.component\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AgendasComponent } from \"./agendas/agendas.component\";\nimport { TableModule } from \"primeng/table\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { MessageModule } from \"primeng/message\";\nimport { InputSwitchModule } from \"primeng/inputswitch\";\nimport { PortariasService } from \"./portarias.service\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { SelectPlantModule } from \"@seniorsistemas/yms-components\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { ConfirmacaoComponent } from \"./confirmacao/confirmacao.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { StompService, StompConfig } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ButtonModule,\n TableModule,\n LoadingStateModule,\n InputSwitchModule,\n InputTextModule,\n DynamicDialogModule,\n HttpClientModule,\n SelectPlantModule,\n MessageModule\n ],\n declarations: [ PortariasComponent, EntradaComponent, AgendasComponent, ConfirmacaoComponent ],\n entryComponents: [ PortariasComponent, AgendasComponent, ConfirmacaoComponent ],\n providers: [ \n PortariasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class PortariasModule {\n constructor(dispatcher: IntegrationDispatcher) {\n dispatcher.dispatch(PortariasComponent);\n }\n}","import { HttpParams, HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { SortMeta } from \"primeng/components/common/api\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nexport class EntityService<T> {\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected actionsUrl: string\n ) {\n this.http = http;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\n this.actionsUrl = actionsUrl;\n\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n\n return params;\n }\n\n private getBodyParams(listParams: ListParams): BodyParams {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n const bodyParams: BodyParams = {};\n\n bodyParams.size = size;\n bodyParams.offset = page;\n\n if (sort && sort.length) {\n bodyParams.orderBy = sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \");\n }\n\n if (filterQuery) bodyParams.filter = filterQuery;\n\n if (displayFields && displayFields.length) bodyParams.displayfields = displayFields.join();\n\n return bodyParams;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n\n public list(listParams: ListParams) {\n return this.http.get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public get(id: any) {\n return this.http.get<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public insert(entity: T) {\n return this.http.post<T>(`${this.entityUrl}`, entity).pipe(this.defaultCatch());\n }\n\n public update(id: any, entity: T) {\n return this.http.put<T>(`${this.entityUrl}/${id}`, entity).pipe(this.defaultCatch());\n }\n\n public delete(id: any) {\n return this.http.delete<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public listCustomFilter(listParams: ListParams, action: string) {\n return this.http.post<T[]>(`${this.actionsUrl}/${action}`, this.getBodyParams(listParams)).pipe(this.defaultCatch());\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const ERP_ENVIRONMENT = new InjectionToken('integration_environment');","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n\nimport { AgendaDto } from \"./agenda-dto\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { ErpProcessData } from \"../../erp-process-data/erp-process-data\";\n\n@Injectable()\nexport class AgendaService extends EntityService<AgendaDto> {\n private readonly _agendaUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService, \n @Inject(ERP_ENVIRONMENT) environment: any ) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/agenda`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this._agendaUrl = `${environment.project.domain}/patio`;\n }\n\n public atualizarAgenda(agenda: any) {\n return this.http.post(`${this._agendaUrl}/actions/atualizarAgenda`, {agenda}).pipe(this.defaultCatch());\n }\n\n public retornaModelosValidacao(tipoAgendamentoId: string) {\n return this.http.post(`yms/agenda/queries/retornaModelosDeValidacao`, {tipoAgendamentoId}).pipe(this.defaultCatch());\n }\n\n public checarRevalidacao(erpProcessData: ErpProcessData) {\n return this.http.post(`yms/agenda/actions/checarRevalidacao`, erpProcessData).pipe(this.defaultCatch());\n }\n\n public listExternalAgenda(listParams: ListParams) {\n return this.http\n .get<AgendaDto>(\"yms/agenda/entities/agenda\", {\n params: this.getListQueryParams(listParams),\n })\n .pipe(this.defaultCatch());\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RecebimentoContratoDto, ContratoRecebimento, ContratoRecebimentoItem } from \"./recebimento-dto\";\nimport { RecebimentoContrato } from \"./recebimento\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RecebimentoContratoService extends EntityService<RecebimentoContratoDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/recebimentoContrato`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComRecebimento(payload: RegistrarChegadaVeiculoComRecebimentoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComRecebimento`, payload).pipe(this.defaultCatch());\n } \n\n public insertContratoRecebimento(recebimentoId: string, contratoRecebimento: ContratoRecebimento) {\n return this.http.post(`${this.entityUrl}/recebimento/${recebimentoId}/contratos`, contratoRecebimento).pipe(this.defaultCatch());\n }\n\n public insertContratoRecebimentoItem(contratoRecebimentoId: string, contratoRecebimentoItem: ContratoRecebimentoItem) {\n return this.http.post(`${this.entityUrl}/contratoRecebimento/${contratoRecebimentoId}/itens`, contratoRecebimentoItem).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComRecebimentoPayload {\n recebimento: RecebimentoContrato,\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { RecebimentoContrato } from \"../core/entities/recebimento-contrato/recebimento\";\nimport { RecebimentoContratoService } from \"../core/entities/recebimento-contrato/recebimento.service\";\n\n@Injectable()\nexport class RecebimentoChegadaVeiculoOverride {\n private readonly RECEBIMENTO_KEY = \"ERP_SENIOR_RECEBIMENTO\"\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private recebimentoService: RecebimentoContratoService) {\n }\n\n public initialize() {\n this.override.addOverride(this.RECEBIMENTO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.RECEBIMENTO_KEY);\n } \n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.recebimentoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({contents}) => contents.length ? contents[0] : null),\n mergeMap((recebimento: RecebimentoContrato) => {\n if (!recebimento) return throwError(\"Os dados da guia ERP Senior não foram informados\");\n\n return this.recebimentoService.registrarChegadaVeiculoComRecebimento({\n recebimento: recebimento,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n })\n })\n )\n }\n}","import { Injectable, Inject } from \"@angular/core\";\nimport { EntityService } from \"../entity-service\";\nimport { ExpedicaoDto } from \"./expedicao-dto\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { Expedicao } from \"./expedicao\";\n\n@Injectable()\nexport class ExpedicaoService extends EntityService<ExpedicaoDto> {\n\n private readonly _baseUrl: string;\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) environment: any) {\n super(http, \n messageService, \n `${environment.project.domain}/${environment.project.service}/entities/expedicao`, \n `${environment.project.domain}/${environment.project.service}/actions`);\n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComExpedicao(payload: RegistrarChegadaVeiculoComExpedicaoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComExpedicao`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComExpedicaoPayload {\n expedicao: Expedicao;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial?: string;\n}","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { Expedicao } from \"../core/entities/expedicao/expedicao\";\nimport { ExpedicaoService } from \"../core/entities/expedicao/expedicao.service\";\n\n@Injectable()\nexport class ExpedicaoChegadaVeiculoOverride {\n private readonly EXPEDICAO_KEY = \"ERP_SENIOR_EXPEDICAO\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private expedicaoService: ExpedicaoService\n ){}\n\n public initialize() {\n this.override.addOverride(this.EXPEDICAO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.EXPEDICAO_KEY);\n }\n\n private functionToOverride(params: OverrideParams){\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.expedicaoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((expedicao: Expedicao) => {\n if (!expedicao) return throwError(\"Não foi possÃvel encontrar os dados de expedição\");\n\n return this.expedicaoService.registrarChegadaVeiculoComExpedicao({\n expedicao,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { catchError } from \"rxjs/operators\";\nimport { MessageService } from \"primeng/api\";\nimport { throwError } from \"rxjs\";\n\n@Injectable()\nexport class IntegrationService {\n private readonly baseUrl: string = `yms/integration/`;\n constructor(private http: HttpClient, private messageService: MessageService) { }\n\n getProcessConfigurationErp(idTipoAgendamento: string) {\n return this.http.get(`${this.baseUrl}queries/getErpProcessConfigurationByTipoAgendamento`, { params: { idTipoAgendamento } }).pipe(this.defaultCatch());\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { Agendamento, ChegadaVeiculo, IntegrationEventsCallback } from \"@seniorsistemas/yms-routines\";\nimport { takeUntil, mergeMap, finalize } from \"rxjs/operators\";\nimport { Agenda } from \"../core/entities/agenda/agenda\";\nimport { Subject, empty } from \"rxjs\";\nimport { IntegrationService } from \"../core/integration.service\";\n\nexport const ERP_SENIOR_HEADER = \"ERP Senior\";\n\n@Agendamento({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ChegadaVeiculo({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox',\n icon: 'fal fa-book'\n})\nexport class FormDescritor { }\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-form *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-form>\n <expedicao-form *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-form>\n <devolucao-form *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-form>\n <recebimento-ordem-compra-form *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-form>\n <processo-avulso-form *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-form>\n <div *ngSwitchDefault>\n <s-loading-state [loading]=\"loading\">\n <h3 *ngIf=\"!loading\" style=\"text-align: center;\">\n ATENÃÃO, não existe Tipo de Processo configurado para esse tipo de agendamento.\n </h3>\n <h3 *ngIf=\"loading\" style=\"text-align: center;\"> Carregando configurações </h3>\n </s-loading-state>\n </div>\n </div>\n </div>\n `\n})\nexport class FormComponent extends FormDescritor implements OnInit, OnDestroy {\n header: string = ERP_SENIOR_HEADER;\n agenda: Agenda;\n tipoProcessoErpAtual: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<void> = new Subject();\n constructor(private integrationCallback: IntegrationEventsCallback, private integrationService: IntegrationService) { \n super();\n }\n\n ngOnInit() {\n this.integrationCallback.onAgendamentoSaved()\n .pipe(\n takeUntil(this.unsubscribe$),\n mergeMap(agenda => {\n this.agenda = agenda;\n this.loading = true;\n if (!!this.agenda) {\n return this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id).pipe(finalize(() => this.loading = false))\n }\n return empty();\n })\n )\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n\n ngOnChanges() {\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { CircuitoFinalizado, ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { IntegrationService } from \"../core/integration.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nconst HEADER = 'Informações fiscais';\n\n@ControleCircuito({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ControleOperacao({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@CircuitoFinalizado({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\nexport class InfoDescritor {\n\n}\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-info *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-info>\n <expedicao-info *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-info>\n <devolucao-info *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-info> \n <recebimento-ordem-compra-info *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-info>\n <processo-avulso-info *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-info>\n </div>\n </div>\n `,\n})\nexport class InfoComponent extends InfoDescritor implements OnInit, OnDestroy {\n @Input() agenda: any;\n\n tipoProcessoErpAtual: string;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private integrationService: IntegrationService\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngOnInit(): void {\n this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { FormGroup } from \"@angular/forms\";\n\n@Injectable()\nexport class FieldCustomizationService {\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n this.http = http;\n this.messageService = messageService;\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public commitFiles(objects: any[]) {\n return this.http.post(\"platform/field_customization/actions/commitObject\", { objects }).pipe(this.defaultCatch());\n }\n\n public deleteFiles(objects: any) {\n return this.http.post(\"platform/field_customization/actions/deleteObjects\", objects).pipe(this.defaultCatch());\n }\n\n public getFiles(formGroup: FormGroup) {\n let fieldCustomization = [];\n\n if (formGroup.value.custom) {\n fieldCustomization = formGroup.value.custom.fieldCustomization || [];\n delete formGroup.value.custom.fieldCustomization;\n }\n\n const filesToCommit: any[] = [];\n let filesToDelete: any = {};\n\n fieldCustomization.forEach(({ domain, service, entity, toDelete, toInsert }: any) => {\n if (!this.isEmpty(toInsert)) {\n const files = Object.keys(toInsert).map((key: string) => {\n const version = toInsert[key].version;\n const fileName = toInsert[key].name;\n const objectId = toInsert[key].objectId;\n return { version, fileName, objectId };\n });\n\n if (!this.isEmpty(files)) {\n filesToCommit.push(...files);\n }\n }\n\n if (!this.isEmpty(toDelete)) {\n const objects: any[] = [];\n Object.keys(toDelete).forEach((key: string) => {\n const fields = toDelete[key] || [];\n const files = fields.map((file: string) => {\n return {\n field: key,\n objectId: file,\n };\n });\n objects.push(...files);\n });\n filesToDelete = { domain, service, entityName: entity, objects };\n }\n });\n\n return { filesToCommit, filesToDelete };\n }\n\n public isEmpty(object: any) {\n if (Array.isArray(object)) {\n return object.length === 0;\n }\n return Object.entries(object).length === 0 && object.constructor === Object;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Injectable } from '@angular/core';\n@Injectable()\nexport class VerificaNotafiscal{\n constructor (\n private messageService: MessageService,\n private translate: TranslateService\n ) {}\n\n public verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal: any, contratos: any, fornecedorNotasTokens: any) {\n if (chaveNotaFiscal == \"\") {\n return false;\n }\n \n let notaFicalDuplicadas = fornecedorNotasTokens.filter(nota => {\n return nota.id == chaveNotaFiscal;\n });\n\n if (typeof contratos !== \"undefined\" && notaFicalDuplicadas.length <= 0) {\n contratos = contratos.value;\n \n if (contratos.length > 0) {\n notaFicalDuplicadas = contratos.filter(contrato => {\n if (contrato.notas.length <= 0) {\n return false;\n }\n let result = contrato.notas.filter(nota => {\n return nota.chaveNotaFiscal == chaveNotaFiscal;\n })\n return result.length > 0;\n });\n }\n }\n\n if (notaFicalDuplicadas.length > 0){\n this.messageService.add({\n severity: \"error\",\n summary: this.translate.instant(\"yms.integration.titulo_nota_fical_ja_exite\"),\n detail: this.translate.instant(\"yms.integration.conteudo_nota_fical_ja_exite\"),\n });\n\n return true;\n }\n return false;\n }\n\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { OrdemCompraDto } from \"./ordem-compra-dto\";\n\n@Injectable()\nexport class OrdemCompraService extends EntityService<OrdemCompraDto> {\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/ordemCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n }\n\n public listOrdensCompra(params: PesquisaOrdensCompraParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarOrdensCompra`, params).pipe(this.defaultCatch());\n }\n}\n\nexport interface PesquisaOrdensCompraParams {\n pessoaId?: string;\n codigo?: number;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n }\n}\n","import { FieldType } from \"@seniorsistemas/angular-components\";\nimport { FormGroup } from \"@angular/forms\";\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\nconst numberPattern = /^\\d+\\b$/;\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) =>\n array.concat(otherArray.filter(item => !array.includes(item)));\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const { isValidValue, typeExists } = getTypeInformation(type, value);\n return !(typeExists && !isValidValue);\n};\n\nexport const getTypeInformation = (type: FieldType, value: any) => {\n switch (type) {\n case FieldType.Time:\n case FieldType.Date:\n case FieldType.DateTime:\n return { isValidValue: false, typeExists: true };\n case FieldType.Integer:\n case FieldType.Double:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n default:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n }\n};\n\nexport const userCanVisualize = (formGroup: FormGroup, allPermissions: any) => {\n return (\n Object.keys(formGroup.controls).filter(field => {\n const errors = formGroup.get(field).errors ? formGroup.get(field).errors.required : formGroup.get(field).errors;\n return allPermissions[field] && !allPermissions[field].visualizar && errors;\n }).length === 0\n );\n};\n\nexport const getProp = (obj: any, path: any) => \n path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n\nexport const dialogConfig = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-4\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"auto\",\n \"max-height\": \"none\",\n \"margin-bottom\": \"0\",\n \"flex\": 1\n },\n};","import { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { map } from \"rxjs/operators\";\nimport { EntityService } from \"../erp-senior/core/entities/entity-service\";\nimport { getProp, isValidFilter, mergeUnique } from \"./utils\";\nconst moment = _moment;\n\nexport function getLookupLabel(data: any = {}, fields: any = [], separator: string, translation?: boolean) {\n const concatenateLabelsLookup = (texto: string) => {\n const splitedLabel = texto.split('-');\n const concatenate = (p: string = ' ', c: string = ' ') => {\n if (p.trim() && c.trim()) return `${p} - ${c}`;\n if (p.trim() && !c.trim()) return `${p}`;\n if (!p.trim() && c.trim()) return `${c}`;\n };\n return splitedLabel.reduce(concatenate);\n };\n return concatenateLabelsLookup(fields.map((field: any) => {\n if (field.indexOf(\".\") > 0) return getProp(data, field);\n return data[field];\n }).join(separator))\n || (translation ? 'yms.erp.sem_descricao' : ' - ');\n}\n\nexport const onLookupRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, value: string, customFilter = '') => {\n const sort = lookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = (searchFields)\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n if (customFilter && customFilter.trim()) {\n filterQuery = filterQuery ? `(${filterQuery}) and ${customFilter}` : customFilter;\n }\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n\nexport const onSearchRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, event: any, customFilter = '') => {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n\n let filterQuery = searchFields\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else if (type == FieldType.String && name.indexOf('.') !== -1) {\n return `containing(${name}, '${value.replace(/'/g, \"\\\\'\")}')`;\n } else if (type == FieldType.String && name.indexOf('.') === -1) {\n return `containing(lower(${name}),lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n } else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = customFilter && customFilter.trim() ? filterQuery.concat(filterQuery ? ' and ' : '').concat(customFilter) : filterQuery;\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ page, sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n","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":["Subject","takeUntil","HttpParams","catchError","throwError","tslib_1.__extends","Injectable","HttpClient","MessageService","ControleCircuito","ControleOperacao","map","finalize","tslib_1.__decorate","Input","Component","trigger","state","style","transition","animate","TranslateService","PermissionsService","NgModule","CommonModule","TableModule","TranslateModule","MessageModule","ButtonModule","LoadingStateModule","PermissionsModule","IntegrationDispatcher","BehaviorSubject","StompService","CookieService","StompConfig","DynamicDialogRef","DynamicDialogConfig","DialogService","DynamicDialogModule","CircuitoFinalizado","TooltipModule","ControleUnificado","SelectPlantService","Router","filter","FormsModule","RouterModule","InputSwitchModule","InputTextModule","HttpClientModule","SelectPlantModule","InjectionToken","tslib_1.__param","Inject","mergeMap","ChegadaVeiculoOverride","Agendamento","ChegadaVeiculo","empty","IntegrationEventsCallback","FieldType","moment","FormControl","FormGroup","FormArray","Validators","FormField","FormBuilder","ConfirmationService","ReactiveFormsModule","ControlErrorsModule","ConfirmDialogModule","concatMap","ActivatedRoute","switchMap","of","Hotkey","forkJoin","ViewChild","TemplateRef","HotkeysService","Table","debounceTime","tslib_1.__values","tap","CustomFieldsModule","DialogModule","EmptyStateModule","DynamicFormModule","TokenListModule","PanelModule","AccordionModule","DropdownModule","NumberInputModule","LocaleModule","IntegrationModule","TabViewModule","HighlightModule","HotkeyModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-yms-integration.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/yms-integration/src/websocket.ts","ng://@seniorsistemas/yms-integration/src/service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/controlador-cancela/controlador-cancela.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cancelas/cancelas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.service.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.ts","ng://@seniorsistemas/yms-integration/src/stomp.config.ts","ng://@seniorsistemas/yms-integration/src/devices/balancas/balancas.module.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.service.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/view-image/view-image.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/snapshot/snapshot.component.ts","ng://@seniorsistemas/yms-integration/src/devices/cameras/cameras.module.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.service.ts","ng://@seniorsistemas/yms-integration/src/devices/lpr/lpr.module.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.service.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.component.ts","ng://@seniorsistemas/yms-integration/src/devices/logs/logs.module.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.service.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/agendas/agendas.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/confirmacao/confirmacao.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/entrada/entrada.component.ts","ng://@seniorsistemas/yms-integration/src/devices/portarias/portarias.module.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/entity-service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/injectors.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/agenda/agenda.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/recebimento-contrato/recebimento.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/recebimento/recebimento-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/expedicao/expedicao.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/expedicao/expedicao-chegada-veiculo.override.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/integration.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/form/form.component.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/info/info.component.ts","ng://@seniorsistemas/yms-integration/src/utils/field-customization.service.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/entities/ordem-compra/ordem-compra.service.ts","ng://@seniorsistemas/yms-integration/src/utils/utils.ts","ng://@seniorsistemas/yms-integration/src/utils/lookup-utils.ts","ng://@seniorsistemas/yms-integration/src/erp-senior/core/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":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { StompService, StompState } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nexport class IntegrationWebSocket {\n private _subscriptionUrl: string;\n private _unsubscribe$: Subject<void>;\n constructor(private _client: StompService, _cookieService: CookieService, _service: string) {\n const tokenObject = JSON.parse(_cookieService.get(\"com.senior.token\")); \n const token = tokenObject.access_token;\n const tenant = tokenObject.username.split(\"@\")[1];\n this._subscriptionUrl = `/topic/${tenant}/${token}/yms/${_service}/`;\n this._unsubscribe$ = new Subject();\n }\n\n public connect(callback: (url: string, client: StompService, state?: StompState) => void): void {\n this._client.connectObservable\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((state) => callback(this._subscriptionUrl, this._client, state));\n }\n\n public dispose() {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n}","import { catchError } from \"rxjs/operators\";\nimport { HttpParams } from \"@angular/common/http\";\nimport { throwError } from \"rxjs\";\nimport { MessageService } from \"primeng/api\";\nexport class Service {\n constructor(protected messageService: MessageService) {}\n protected getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n return params;\n }\n protected defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n return throwError(err);\n });\n }\n}\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: any[];\n filterQuery?: string;\n displayFields?: string[];\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Service } from \"../../service\";\n\n@Injectable()\nexport class ControladorCancelasService extends Service {\n private readonly url = 'yms/integration/';\n \n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n public listGateByArea(areaId: string) {\n const params = this.getListQueryParams({\n size: 1000,\n page: 0,\n displayFields: [\"*\"],\n filterQuery: `area.id eq '${areaId}'`\n });\n return this.http.get(`${this.url}entities/gate`, { params })\n }\n public openGate(ip: string) {\n return this.http.post(`${this.url}actions/openGate`, { ip }).pipe(this.defaultCatch());\n }\n public closeGate(ip: string) {\n return this.http.post(`${this.url}actions/closeGate`, { ip }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, OnDestroy } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { ControladorCancelasService } from \"../cancelas.service\";\nimport { Gate } from \"../gate\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\nimport { PermissionsService } from \"@seniorsistemas/platform-components\";\n@ControleCircuito({\n header: \"Cancelas\",\n name: \"yms.integracao.devices\"\n})\n@ControleOperacao({\n header: 'Cancelas',\n name: 'yms.integracao.devices'\n})\nexport class ControladorCancelaDescritor{}\n@Component({\n selector: 'controlador-cancela-component',\n templateUrl: \"./controlador-cancela.component.html\",\n animations: [\n trigger('success', [\n state('*', style({\n backgroundColor: '#0C9348',\n opacity: 0.5\n })),\n state('default', style({\n backgroundColor: '#FFF',\n opacity: 1\n })),\n transition('* => default', animate('1.2s ease-in')),\n transition('default => *', animate('0s'))\n ])\n ]\n})\nexport class ControladorCancelaComponent extends ControladorCancelaDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n gates$: Subject<Gate[]>;\n loading: string;\n successState: string = 'default';\n canOpenGate:boolean = false;\n canCloseGate:boolean = false;\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: ControladorCancelasService, private translate: TranslateService, private permissionsService: PermissionsService) {\n super();\n this.unsubscribe$ = new Subject();\n this.gates$ = new Subject();\n }\n public ngOnInit() {\n this.service\n .listGateByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((res: any) => this.gates$.next(res.contents));\n\n this.permissionsService\n .get(\"gate\")\n .pipe(map((permissions: any) => {\n if (permissions.Open) {\n this.canOpenGate = true;\n }\n if (permissions.Close) {\n this.canCloseGate = true;\n }\n }))\n .toPromise();\n\n }\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n public model(gate: Gate) {\n return [\n {\n label: this.translate.instant('yms.integration.open_gate'),\n visible: this.canOpenGate,\n command: () => this.openGate(gate)\n },\n {\n label: this.translate.instant('yms.integration.close_gate'),\n visible: this.canCloseGate,\n command: () => this.closeGate(gate)\n }\n ]\n }\n private openGate(gate: Gate) {\n this.loading = gate.id;\n this.service.openGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(_ => this.successState = gate.id);\n }\n private closeGate(gate: Gate) {\n this.loading = gate.id;\n this.service.closeGate(gate.ip)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = undefined))\n .subscribe(res => this.successState = gate.id);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { MessageModule } from \"primeng/message\";\nimport { TableModule } from \"primeng/table\";\nimport { ControladorCancelasService } from \"./cancelas.service\";\nimport { ControladorCancelaComponent } from \"./controlador-cancela/controlador-cancela.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { PermissionsModule } from \"@seniorsistemas/platform-components\";\n@NgModule({\n imports: [\n CommonModule, \n TableModule, \n TranslateModule,\n MessageModule,\n ButtonModule,\n LoadingStateModule,\n PermissionsModule.forChild([\n {\n name: \"gate\",\n actions: [\"Open\", \"Close\"],\n uri: `res://senior.com.br/yms/devices/gate`,\n },\n ]),\n\n ],\n declarations: [ControladorCancelaComponent],\n entryComponents: [ControladorCancelaComponent],\n exports: [ControladorCancelaComponent],\n providers: [ControladorCancelasService]\n})\nexport class CancelasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(ControladorCancelaComponent);\n }\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class BalancasService extends Service {\n private readonly urlIntegration = `yms/integration/`;\n private readonly urlBalanca = `yms/balanca/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n getWeightScaleByArea(areaId: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`\n }\n return this.http.get(`${this.urlIntegration}entities/weightScale`,\n { params: this.getListQueryParams(params) }).pipe(this.defaultCatch())\n }\n\n fallbackCall(balanca: string, peso: number) {\n return this.http.post(`${this.urlBalanca}actions/manualWeight`, { code: balanca, weight: peso }).pipe(this.defaultCatch());\n }\n\n getWeightScaleByCode(code: string) {\n const params: ListParams = {\n displayFields: [\"description\", \"code\"],\n page: 0,\n size: 10,\n filterQuery: `code eq '${code}'`\n };\n return this.http.get(`${this.urlIntegration}entities/weightScale`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { BalancasService } from \"../balancas.service\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil, finalize, map } from \"rxjs/operators\";\nimport { WeightScale } from \"../weightScale\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Message } from \"@stomp/stompjs\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\n\n@ControleCircuito({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\n@ControleOperacao({\n header: 'Balanças',\n name: 'yms.integracao.devices'\n})\nexport class VisualizarBalancaDescritor {}\n\n@Component({\n selector: 'visualizar-balanca-component',\n templateUrl: './visualizar-balanca.component.html'\n})\nexport class VisualizarBalancaComponent extends VisualizarBalancaDescritor \n implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n loading = false;\n weightScales$: BehaviorSubject<WeightScale[]>;\n weightScaleValues: Map<string, number>;\n private readonly unsubscribe$: Subject<void>;\n private websocket: IntegrationWebSocket;\n\n constructor(private service: BalancasService, \n private client: StompService, \n private cookieService: CookieService) {\n super();\n this.websocket = new IntegrationWebSocket(this.client, this.cookieService, 'integration');\n this.unsubscribe$ = new Subject();\n this.weightScales$ = new BehaviorSubject([]);\n this.weightScaleValues = new Map();\n }\n ngOnInit() {\n if (!this.sequenciaCircuito) return;\n this.loading = true;\n this.service.getWeightScaleByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }: any) => {\n this.weightScales$.next(contents);\n contents.forEach((value: WeightScale) => {\n this.weightScaleValues.set(value.id, 0);\n });\n });\n\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsWeightScale`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((payload: WsWeightScalePayload) => {\n if (!this.weightScales$.value.length) return;\n \n const index = this.weightScales$.value.findIndex(value => value.id === payload.weightScale.id);\n if (index < 0) return;\n const find = this.weightScales$.value[index];\n this.weightScaleValues.set(find.id, payload.weight);\n });\n });\n }\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n \n}\nexport interface WsWeightScalePayload {\n weight: number;\n weightScale: WeightScale;\n}","import * as SockJS from \"sockjs-client\";\nimport { StompConfig } from \"@stomp/ng2-stompjs\";\n\nexport class CustomStompConfig extends StompConfig {\n socketProvider: any;\n \n constructor() {\n super();\n const token = this.getCookieObject('com.senior.token').access_token;\n const url = `${this.getCookie('com.senior.base.url')}/websocket/subscription`;\n this.socketProvider = () => new SockJS(url);\n this.configureConfig(token);\n }\n private getCookieObject(cname: string) {\n const cookie = this.getCookie(cname);\n if (!cookie) return cookie;\n return JSON.parse(cookie);\n }\n private getCookie(cname: string) {\n try {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return null;\n } catch(e) {\n return null;\n }\n }\n private configureConfig (token: string) {\n this.url = this.socketProvider,\n this.headers = {\n \"content-type\": \"application/json\",\n \"Authorization\": \"Bearer \" + token,\n \"Access-Control-Allow-Origin\": \"*\"\n },\n this.heartbeat_in = 10000,\n this.heartbeat_out = 10000,\n this.reconnect_delay = 15000, \n this.debug = false\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { VisualizarBalancaComponent } from \"./visualiar-balanca/visualizar-balanca.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TableModule } from \"primeng/table\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { BalancasService } from \"./balancas.service\";\nimport { MessageModule } from \"primeng/message\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { StompConfig, StompService } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\nimport { CookieService } from \"ngx-cookie-service\";\n@NgModule({\n imports: [\n CommonModule,\n TableModule,\n MessageModule,\n LoadingStateModule,\n ],\n declarations: [VisualizarBalancaComponent],\n entryComponents: [VisualizarBalancaComponent],\n exports: [VisualizarBalancaComponent],\n providers: [\n BalancasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class BalancaModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(VisualizarBalancaComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Service, ListParams } from \"../../service\";\nimport { MessageService } from \"primeng/api\";\nimport { Camera } from \"./camera\";\n\n@Injectable()\nexport class CamerasService extends Service {\n\n private readonly url = 'yms/integration/';\n private readonly patioUrl = 'yms/patio/'\n\n constructor(private http: HttpClient, messageService: MessageService) { \n super(messageService);\n }\n\n public getCamerasByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"description\", \"ip\"]\n }\n\n return this.http\n .get(`${this.url}entities/camera`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n public takeSnapshot(camera: Camera) {\n return this.http.get(`${this.url}queries/fetchSnapshot`, { params: {ip: camera.ip }}).pipe(this.defaultCatch());\n }\n\n public saveSnapshotInCircuit(payload: SaveSnapshotInCircuitPayload) {\n return this.http.post(`${this.patioUrl}actions/adicionaImagemExecucaoCircuito`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface SaveSnapshotInCircuitPayload {\n execucaoCircuitoId: string;\n alvoId: string;\n cameraIp: string;\n imagemUrl: string;\n}","import { Component, OnInit } from \"@angular/core\";\nimport { DynamicDialogConfig, DynamicDialogRef, MessageService } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { finalize, takeUntil } from \"rxjs/operators\";\nimport { CamerasService } from \"../cameras.service\";\n\n@Component({\n selector: 'view-image-component',\n template: `\n <s-loading-state [loading]=\"loading\">\n <img [src]=\"imageUrl\" width=\"100%\">\n <br>\n </s-loading-state>\n\n <div style=\"position: absolute; bottom: 0; width: 670px; padding-top: 10px; border-top: 1px solid #ccc;\" [style.pointer-events]=\"loading ? 'none' : 'all'\">\n <s-button priority=\"primary\" label=\"Salvar\" (onClick)=\"save()\"></s-button>\n <s-button priority=\"link\" label=\"Cancelar\" (onClick)=\"close()\"></s-button>\n </div> \n `,\n})\nexport class ViewImageComponent implements OnInit {\n imageUrl: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<boolean>;\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private service: CamerasService,\n private messageService: MessageService) {\n this.unsubscribe$ = new Subject();\n }\n\n ngOnInit() {\n this.imageUrl = this.dialogConfig.data.url;\n }\n\n save() {\n this.loading = true;\n const execucaoCircuito = this.dialogConfig.data.execucaoCircuito;\n let cameraIp = this.dialogConfig.data.cameraIp;\n\n this.service.saveSnapshotInCircuit({\n execucaoCircuitoId: execucaoCircuito.id,\n alvoId: execucaoCircuito.sequenciaCircuito.id,\n cameraIp,\n imagemUrl: this.imageUrl\n })\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(() => {\n this.messageService.add({\n severity: 'success',\n summary: 'Salvo com sucesso!',\n detail: 'Imagem salva com sucesso'\n });\n this.dialogRef.close();\n });\n }\n\n close(data?: any) {\n this.dialogRef.close(data);\n }\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleOperacao, ControleCircuito } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { Camera } from \"../camera\";\nimport { CamerasService } from \"../cameras.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { DialogService } from \"primeng/api\";\nimport { ViewImageComponent } from \"../view-image/view-image.component\";\n\n@ControleOperacao({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\n@ControleCircuito({\n header: 'Câmeras',\n name: 'yms.integracao.devices'\n})\nexport class SnapshotDescritor {}\n\n@Component({\n selector: 'snapshot-component',\n templateUrl: './snapshot.component.html',\n styleUrls: ['./snapshot.component.scss'],\n providers: [DialogService]\n})\nexport class SnapshotComponent extends SnapshotDescritor implements OnInit, OnDestroy {\n @Input() sequenciaCircuito: any;\n @Input() execucaoCircuito: any;\n cameras$: Subject<Camera>;\n\n loadingAll = false;\n loading: string[] = [];\n\n private readonly unsubscribe$: Subject<void>;\n constructor(private service: CamerasService, private dialogService: DialogService) {\n super();\n this.unsubscribe$ = new Subject();\n this.cameras$ = new Subject();\n }\n\n public ngOnInit() {\n this.loadingAll = true;\n this.service.getCamerasByArea(this.sequenciaCircuito.area.id)\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loadingAll = false))\n .subscribe(({ contents }: any) => this.cameras$.next(contents));\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public takeSnapshot(camera: Camera) {\n this.loading.push(camera.id);\n this.service.takeSnapshot(camera)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => {\n const index = this.loading.indexOf(camera.id);\n this.loading.splice(index, 1);\n })\n )\n .subscribe(({ url }: any) => {\n this.dialogService.open(ViewImageComponent, {\n header: camera.description,\n width: \"700px\",\n height: \"600px\",\n contentStyle: {\n 'height': '500px',\n overflow: 'hidden'\n },\n data: { \n url,\n cameraIp: camera.ip,\n execucaoCircuito: this.execucaoCircuito\n }\n });\n });\n }\n\n}","import { NgModule } from \"@angular/core\";\nimport { SnapshotComponent } from \"./snapshot/snapshot.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { LoadingStateModule, ButtonModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { CamerasService } from \"./cameras.service\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { ViewImageComponent } from \"./view-image/view-image.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n LoadingStateModule,\n DynamicDialogModule\n ],\n declarations: [SnapshotComponent, ViewImageComponent],\n entryComponents: [SnapshotComponent, ViewImageComponent],\n exports: [SnapshotComponent],\n providers: [CamerasService]\n})\nexport class CamerasModule {\n constructor(private dispatcher: IntegrationDispatcher) {\n this.dispatcher.dispatch(SnapshotComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class LprService extends Service {\n\n private readonly url = `yms/integration/`;\n constructor(private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n getLprByArea(areaId: string) {\n const params: ListParams = {\n page: 0,\n size: 1000,\n filterQuery: `area.id eq '${areaId}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"area.*\"]\n }\n\n return this.http\n .get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) })\n .pipe(this.defaultCatch());\n }\n\n fallbackCall(stream: string, licencePlate: string) {\n return this.http.post(`${this.url}actions/lprEventPublish`, { stream, licencePlate }).pipe(this.defaultCatch());\n }\n\n getLprByCode(code: string) {\n const params: ListParams = {\n page: 0,\n size: 10,\n filterQuery: `stream eq '${code}'`,\n displayFields: [\"id\", \"stream\", \"description\", \"locked\"]\n };\n\n return this.http.get(`${this.url}entities/lprConfiguration`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}","import { NgModule } from \"@angular/core\";\nimport { LprService } from \"./lpr.service\";\n\n@NgModule({\n providers: [ LprService ]\n})\nexport class LprModule {}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/api\";\nimport { ListParams, Service } from \"../../service\";\n\n@Injectable()\nexport class LogsService extends Service {\n private readonly url = `yms/integration/`;\n constructor (private http: HttpClient, protected messageService: MessageService) {\n super(messageService);\n }\n\n listLogByCircuit(execucaoCircuitoId: string, params: ListParams) {\n params.filterQuery = `execucaoCircuitoId eq '${execucaoCircuitoId}'`;\n return this.http.get(`${this.url}entities/logCircuit`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CircuitoFinalizado } from \"@seniorsistemas/yms-routines\";\nimport { LazyLoadEvent, SortMeta } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { LogCircuit } from \"./log-circuit\";\nimport { LogsService } from \"./logs.service\";\n\n@CircuitoFinalizado({\n header: 'Logs com dispositivos',\n name: \"yms.integracao.devices\"\n})\nexport class LogDescritor { }\n\n@Component({\n templateUrl: './logs.component.html'\n})\nexport class LogsComponent extends LogDescritor implements OnInit, OnDestroy {\n @Input() execucaoCircuito: any;\n columns: any[];\n logsData: LogCircuit[];\n totalRecords: number;\n\n loading: boolean;\n\n private readonly unsubscribe$ = new Subject<void>();\n constructor(\n private logsService: LogsService,\n private translate: TranslateService\n ) {\n super();\n }\n\n ngOnInit() {\n this.columns = [\n { field: \"username\", header: this.translate.instant(\"yms.integration.usuario\") },\n { field: \"log\", header: this.translate.instant(\"yms.integration.log\") },\n { field: \"createdDate\", header: this.translate.instant(\"yms.integration.created_date\") }\n ];\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n onGridChange(event: LazyLoadEvent) {\n const size = event.rows;\n const page = event.first / size;\n const sort: SortMeta[] = [{ field: 'createdDate', order: -1 }];\n this.updateGrid({ size, page, sort });\n }\n\n private updateGrid(params: { size: number, page: number, sort: any[] }) {\n this.loading = true;\n const { page, size, sort } = params;\n\n this.logsService.listLogByCircuit(this.execucaoCircuito.id, { page, size, sort })\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents, totalElements }: any) => {\n this.logsData = contents;\n this.totalRecords = totalElements;\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { TooltipModule } from \"primeng/primeng\";\nimport { TableModule } from \"primeng/table\";\nimport { LogsComponent } from \"./logs.component\";\nimport { LogsService } from \"./logs.service\";\n\n@NgModule({\n declarations: [ LogsComponent ],\n entryComponents: [ LogsComponent ],\n providers: [ LogsService ],\n imports: [\n CommonModule,\n TableModule,\n TranslateModule,\n TooltipModule,\n LoadingStateModule\n ]\n})\nexport class LogsModule {\n constructor(integrationDispatcher: IntegrationDispatcher) {\n integrationDispatcher.dispatch(LogsComponent);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Service, ListParams } from \"../../service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\n\n@Injectable()\nexport class PortariasService extends Service {\n constructor(private http: HttpClient, messageService: MessageService) {\n super(messageService);\n }\n\n agendas(params: ListParams) {\n return this.http.get(`yms/patio/entities/agenda`, { params: this.getListQueryParams(params) }).pipe(this.defaultCatch());\n }\n \n ultimaPlacaLida(stream: string) {\n return this.http.post(`yms/integration/queries/getLastValidPlateByLpr`, { stream }).pipe(this.defaultCatch());\n }\n\n getPortarias(plantaId: string) {\n return this.http.get(`yms/integration/entities/lobby`, { params: this.getListQueryParams({ page: 0, size: 100, filterQuery: `planta.id eq '${plantaId}'`, displayFields: [ 'description', 'entranceLpr.*', 'lprs.*', 'planta.*' ] }) }).pipe(this.defaultCatch());\n }\n\n executarEntrada(lobbyId: string, placa: string) {\n return this.http.post(`yms/integration/actions/executeLobby`, { lobbyId, plate: placa }).pipe(this.defaultCatch());\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { ControleUnificado } from \"@seniorsistemas/yms-routines\";\nimport { Subject } from \"rxjs\";\nimport { SelectPlantService } from \"@seniorsistemas/yms-components\";\nimport { PortariasService } from \"./portarias.service\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@ControleUnificado({\n header: 'Periféricos',\n name: \"yms.integracao.devices\"\n})\nexport class PortariasDescritor {}\n\n@Component({\n selector: 'portarias',\n template: `\n <h3>Portarias</h3>\n <div class=\"separator\"></div>\n <div class=\"ui-g\">\n <portaria-entrada *ngFor=\"let portaria of portarias\" class=\"ui-md-4\" [portaria]=\"portaria\"></portaria-entrada>\n </div>\n `,\n\n})\nexport class PortariasComponent extends PortariasDescritor implements OnInit, OnDestroy {\n portarias: any[];\n unsubscribe$ = new Subject<void>();\n constructor(private selectPlantService: SelectPlantService, private portariaService: PortariasService) {\n super();\n }\n\n ngOnInit() {\n const planta = this.selectPlantService.getPlant();\n this.portariaService.getPortarias(planta.id)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ contents }) => this.portarias = contents);\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { DynamicDialogRef, DynamicDialogConfig } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { takeUntil, finalize } from \"rxjs/operators\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n template: `\n <div style=\"width: 100%; height: calc(100% - 50px); overflow: auto;\">\n <div *sLoadingState=\"loading\">\n <p-table [value]=\"agendas\" [columns]=\"getColumns()\" selectionMode=\"single\" [(selection)]=\"selected\" dataKey=\"id\">\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th style=\"width: 50px;\"></th>\n <th *ngFor=\"let column of columns\">{{column.label}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData>\n <tr [pSelectableRow]=\"rowData\">\n <td style=\"width: 50px;\">\n <p-tableRadioButton [value]=\"rowData\"></p-tableRadioButton>\n </td>\n <td>{{rowData['descricao']}}</td>\n <td>{{rowData['dataEsperadaAgendamento'] | date: 'dd/MM/yyyy HH:mm'}}</td>\n <td>{{rowData['tipoAgendamento']?.descricao}}</td>\n <td>{{rowData['externalTenant']?.descricao}}</td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Registrar chegada\" [disabled]=\"!selected\" (onClick)=\"chegada()\"></s-button>\n <s-button priority=\"primary\" label=\"Registrar chegada simplificada\" (onClick)=\"chegadaSimplificada()\"></s-button>\n </div>\n `\n})\nexport class AgendasComponent implements OnInit, OnDestroy {\n agendas: any;\n selected: any;\n veiculo: string;\n portaria: any;\n loading: boolean;\n private readonly unsubscribe$ = new Subject<void>();\n constructor(private dialogRef: DynamicDialogRef, \n private dialogConfig: DynamicDialogConfig,\n private portariaService: PortariasService,\n private router: Router) { }\n\n ngOnInit() {\n this.veiculo = this.dialogConfig.data.veiculo;\n this.portaria = this.dialogConfig.data.portaria;\n this.loading = true;\n this.portariaService\n .agendas({ \n size: 100, \n page: 0, \n displayFields: ['veiculo.primario.*', 'tipoAgendamento.*', 'descricao', 'externalTenant', 'dataEsperadaAgendamento'], \n filterQuery: `veiculo.primario.placa eq '${this.veiculo}' and status eq 'AGENDADO' and planta eq '${this.portaria.planta.id}'` \n })\n .pipe(takeUntil(this.unsubscribe$), finalize(() => this.loading = false))\n .subscribe(({ contents }) => {\n this.agendas = contents;\n if (!this.agendas.length) {\n this.chegadaSimplificada();\n return;\n }\n if (this.agendas.length === 1) {\n this.selected = this.agendas[0];\n }\n });\n \n }\n\n chegadaSimplificada() {\n this.router.navigate(['execucao-circuito/new'], { queryParams: { veiculo: this.veiculo, navigateTo: \"processo-entrada\" } });\n this.dialogRef.close();\n }\n\n chegada() {\n if (!this.selected) return;\n this.router.navigate([`execucao-circuito/${this.selected.id}`]);\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n getColumns() {\n return [\n { field: 'descricao', label: 'Descrição' },\n { field: 'dataEsperadaAgendamento', label: 'Data' },\n { field: 'tipoAgendamento', label: 'Tipo de Agendamento' },\n { field: 'externalTenant', label: 'Parceiro' }\n ]\n }\n}","import { Component } from \"@angular/core\";\nimport { DynamicDialogRef } from \"primeng/api\";\n\n@Component({\n template: `\n <p>Não foi encontrada uma leitura de placa. Deseja informar a placa para realizar a entrada?</p>\n <div class=\"separator\"></div>\n <input pInputText type=\"text\" pattern=\"[A-Z0-9]{6,10}\" maxlength=\"10\" placeholder=\"Digite a placa\" [(ngModel)]=\"placa\" #placaInput>\n \n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; height: 40px; align-items: center;\">\n <s-button priority=\"primary\" label=\"Continuar\" [disabled]=\"!placa || !placaInput.validity.valid\" (onClick)=\"continue()\"></s-button>\n </div>\n `\n})\nexport class ConfirmacaoComponent {\n placa: string;\n\n constructor(private dialogRef: DynamicDialogRef) {}\n\n continue() {\n this.dialogRef.close({ placa: this.placa });\n }\n}","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\nimport { DialogService } from \"primeng/api\";\nimport { filter, map, takeUntil, finalize, catchError, mergeMap } from \"rxjs/operators\";\nimport { AgendasComponent } from \"../agendas/agendas.component\";\nimport { ConfirmacaoComponent } from \"../confirmacao/confirmacao.component\";\nimport { IntegrationWebSocket } from \"../../../websocket\";\nimport { StompService } from \"@stomp/ng2-stompjs\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Subject, throwError } from \"rxjs\";\nimport { Message } from \"@stomp/stompjs\";\nimport { PortariasService } from \"../portarias.service\";\nimport { Lpr } from \"../../lpr/lpr\";\n\n@Component({\n selector: 'portaria-entrada',\n template: `\n <div class=\"card-entrada\" *sLoadingState=\"loading\">\n <div class=\"portaria-card\">\n <h4>{{portaria?.description}}</h4>\n <s-button style=\"float: right\" [auxiliary]=\"true\" iconClass=\"fas fa-camera\" priority=\"default\" (onClick)=\"readPlaque()\"></s-button>\n </div>\n <div class=\"portaria-card\" *ngFor=\"let lpr of portaria.lprs\">\n <h4>{{lpr.description || lpr.stream}}</h4>\n <p-inputSwitch styleClass=\"lprInputSwitch\" [ngModel]=\"lpr.locked\" [readonly]=\"true\"></p-inputSwitch>\n </div>\n </div>\n `,\n styleUrls: ['./entrada.component.scss'],\n providers: [ DialogService ]\n})\nexport class EntradaComponent implements OnInit, OnDestroy {\n\n @Input() portaria: any;\n\n loading = false;\n\n websocket: IntegrationWebSocket;\n unsubscribe$ = new Subject<void>();\n constructor(private dialogService: DialogService, private portariaService: PortariasService, stompService: StompService, cookieService: CookieService) {\n this.websocket = new IntegrationWebSocket(stompService, cookieService, 'integration');\n }\n\n ngOnInit() {\n this.websocket.connect((url, client) => {\n client.subscribe(`${url}wsLprLockUnlocked`)\n .pipe(\n map((message: Message) => message.body),\n map((body: string) => JSON.parse(body).data),\n takeUntil(this.unsubscribe$)\n )\n .subscribe((response: WsLprLockUnlocked) => this.portaria.lprs = this.portaria.lprs.map((lpr: Lpr) => lpr.stream === response.stream ? { ...lpr, locked: response.locked } : lpr ))\n })\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n readPlaque() {\n this.loading = true;\n this.portariaService.ultimaPlacaLida(this.portaria.entranceLpr.stream)\n .pipe(\n takeUntil(this.unsubscribe$),\n finalize(() => this.loading = false)\n )\n .subscribe(({ plate }) => {\n if (!plate) {\n return this.placaNaoEncontrada();\n }\n this.openAgendas(plate);\n })\n }\n\n placaNaoEncontrada() {\n this.dialogService.open(ConfirmacaoComponent, {\n header: 'Placa não encontrada',\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n }\n })\n .onClose\n .pipe(\n filter(data => !!data),\n )\n .subscribe(data => this.openAgendas(data.placa))\n }\n\n openAgendas(placa: string) {\n this.portariaService.executarEntrada(this.portaria.id, placa)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.dialogService.open(AgendasComponent, {\n header: `Agendamentos | ${placa.toUpperCase()}`,\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-8\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"100%\",\n \"max-height\": \"100%\",\n \"flex\": 1\n },\n data: {\n veiculo: placa,\n portaria: this.portaria\n }\n })\n });\n }\n\n}\n\nexport interface WsLprLockUnlocked {\n stream: string;\n locked: boolean;\n}","import { NgModule } from \"@angular/core\";\nimport { PortariasComponent } from \"./portarias.component\";\nimport { IntegrationDispatcher } from \"@seniorsistemas/yms-routines\";\nimport { EntradaComponent } from \"./entrada/entrada.component\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AgendasComponent } from \"./agendas/agendas.component\";\nimport { TableModule } from \"primeng/table\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { DynamicDialogModule } from \"primeng/components/dynamicdialog/dynamicdialog\";\nimport { MessageModule } from \"primeng/message\";\nimport { InputSwitchModule } from \"primeng/inputswitch\";\nimport { PortariasService } from \"./portarias.service\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { SelectPlantModule } from \"@seniorsistemas/yms-components\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { ConfirmacaoComponent } from \"./confirmacao/confirmacao.component\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { StompService, StompConfig } from \"@stomp/ng2-stompjs\";\nimport { CustomStompConfig } from \"../../stomp.config\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ButtonModule,\n TableModule,\n LoadingStateModule,\n InputSwitchModule,\n InputTextModule,\n DynamicDialogModule,\n HttpClientModule,\n SelectPlantModule,\n MessageModule\n ],\n declarations: [ PortariasComponent, EntradaComponent, AgendasComponent, ConfirmacaoComponent ],\n entryComponents: [ PortariasComponent, AgendasComponent, ConfirmacaoComponent ],\n providers: [ \n PortariasService,\n CookieService,\n StompService,\n {\n provide: StompConfig,\n useClass: CustomStompConfig\n }\n ]\n})\nexport class PortariasModule {\n constructor(dispatcher: IntegrationDispatcher) {\n dispatcher.dispatch(PortariasComponent);\n }\n}","import { HttpParams, HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { SortMeta } from \"primeng/components/common/api\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nexport class EntityService<T> {\n\n constructor(\n protected http: HttpClient,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected actionsUrl: string\n ) {\n this.http = http;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\n this.actionsUrl = actionsUrl;\n\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public getListQueryParams(listParams: ListParams) {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n\n let params = new HttpParams();\n params = params.append(\"size\", String(size));\n params = params.append(\"offset\", String(page));\n\n if (sort && sort.length) {\n params = params.append(\n \"orderby\",\n sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \")\n );\n }\n\n if (filterQuery) params = params.append(\"filter\", filterQuery);\n\n if (displayFields && displayFields.length) params = params.append(\"displayfields\", displayFields.join());\n\n return params;\n }\n\n private getBodyParams(listParams: ListParams): BodyParams {\n const { page = 0, size = 10, sort = [], filterQuery = \"\", displayFields = [] } = listParams;\n const bodyParams: BodyParams = {};\n\n bodyParams.size = size;\n bodyParams.offset = page;\n\n if (sort && sort.length) {\n bodyParams.orderBy = sort\n .map(s => {\n let order = \"\";\n if (s.order === 1) order = \" asc\";\n else if (s.order === -1) order = \" desc\";\n return `${s.field}${order}`;\n })\n .join(\", \");\n }\n\n if (filterQuery) bodyParams.filter = filterQuery;\n\n if (displayFields && displayFields.length) bodyParams.displayfields = displayFields.join();\n\n return bodyParams;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n\n public list(listParams: ListParams) {\n return this.http.get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public get(id: any) {\n return this.http.get<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public insert(entity: T) {\n return this.http.post<T>(`${this.entityUrl}`, entity).pipe(this.defaultCatch());\n }\n\n public update(id: any, entity: T) {\n return this.http.put<T>(`${this.entityUrl}/${id}`, entity).pipe(this.defaultCatch());\n }\n\n public delete(id: any) {\n return this.http.delete<T>(`${this.entityUrl}/${id}`).pipe(this.defaultCatch());\n }\n\n public listCustomFilter(listParams: ListParams, action: string) {\n return this.http.post<T[]>(`${this.actionsUrl}/${action}`, this.getBodyParams(listParams)).pipe(this.defaultCatch());\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const ERP_ENVIRONMENT = new InjectionToken('integration_environment');","import { Injectable, Inject } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\n\nimport { AgendaDto } from \"./agenda-dto\";\nimport { EntityService, ListParams } from \"../entity-service\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { ErpProcessData } from \"../../erp-process-data/erp-process-data\";\n\n@Injectable()\nexport class AgendaService extends EntityService<AgendaDto> {\n private readonly _agendaUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService, \n @Inject(ERP_ENVIRONMENT) environment: any ) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/agenda`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n this._agendaUrl = `${environment.project.domain}/patio`;\n }\n\n public atualizarAgenda(agenda: any) {\n return this.http.post(`${this._agendaUrl}/actions/atualizarAgenda`, {agenda}).pipe(this.defaultCatch());\n }\n\n public retornaModelosValidacao(tipoAgendamentoId: string) {\n return this.http.post(`yms/agenda/queries/retornaModelosDeValidacao`, {tipoAgendamentoId}).pipe(this.defaultCatch());\n }\n\n public checarRevalidacao(erpProcessData: ErpProcessData) {\n return this.http.post(`yms/agenda/actions/checarRevalidacao`, erpProcessData).pipe(this.defaultCatch());\n }\n\n public listExternalAgenda(listParams: ListParams) {\n return this.http\n .get<AgendaDto>(\"yms/agenda/entities/agenda\", {\n params: this.getListQueryParams(listParams),\n })\n .pipe(this.defaultCatch());\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { RecebimentoContratoDto, ContratoRecebimento, ContratoRecebimentoItem } from \"./recebimento-dto\";\nimport { RecebimentoContrato } from \"./recebimento\";\n\n/*{CA:PROJECT_IMPORTS:START}*/\n/*{CA:PROJECT_IMPORTS:END}*/\n\n@Injectable()\nexport class RecebimentoContratoService extends EntityService<RecebimentoContratoDto> {\n private readonly _baseUrl: string;\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/recebimentoContrato`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n \n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComRecebimento(payload: RegistrarChegadaVeiculoComRecebimentoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComRecebimento`, payload).pipe(this.defaultCatch());\n } \n\n public insertContratoRecebimento(recebimentoId: string, contratoRecebimento: ContratoRecebimento) {\n return this.http.post(`${this.entityUrl}/recebimento/${recebimentoId}/contratos`, contratoRecebimento).pipe(this.defaultCatch());\n }\n\n public insertContratoRecebimentoItem(contratoRecebimentoId: string, contratoRecebimentoItem: ContratoRecebimentoItem) {\n return this.http.post(`${this.entityUrl}/contratoRecebimento/${contratoRecebimentoId}/itens`, contratoRecebimentoItem).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComRecebimentoPayload {\n recebimento: RecebimentoContrato,\n circuito: string;\n sequenciaInicial: string;\n vagaInicial: string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { RecebimentoContrato } from \"../core/entities/recebimento-contrato/recebimento\";\nimport { RecebimentoContratoService } from \"../core/entities/recebimento-contrato/recebimento.service\";\n\n@Injectable()\nexport class RecebimentoChegadaVeiculoOverride {\n private readonly RECEBIMENTO_KEY = \"ERP_SENIOR_RECEBIMENTO\"\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private recebimentoService: RecebimentoContratoService) {\n }\n\n public initialize() {\n this.override.addOverride(this.RECEBIMENTO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.RECEBIMENTO_KEY);\n } \n\n private functionToOverride(params: OverrideParams) {\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.recebimentoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({contents}) => contents.length ? contents[0] : null),\n mergeMap((recebimento: RecebimentoContrato) => {\n if (!recebimento) return throwError(\"Os dados da guia ERP Senior não foram informados\");\n\n return this.recebimentoService.registrarChegadaVeiculoComRecebimento({\n recebimento: recebimento,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n })\n })\n )\n }\n}","import { Injectable, Inject } from \"@angular/core\";\nimport { EntityService } from \"../entity-service\";\nimport { ExpedicaoDto } from \"./expedicao-dto\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/api\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { Expedicao } from \"./expedicao\";\n\n@Injectable()\nexport class ExpedicaoService extends EntityService<ExpedicaoDto> {\n\n private readonly _baseUrl: string;\n constructor(protected http: HttpClient, protected messageService: MessageService, @Inject(ERP_ENVIRONMENT) environment: any) {\n super(http, \n messageService, \n `${environment.project.domain}/${environment.project.service}/entities/expedicao`, \n `${environment.project.domain}/${environment.project.service}/actions`);\n this._baseUrl = `${environment.project.domain}/${environment.project.service}`;\n }\n\n public registrarChegadaVeiculoComExpedicao(payload: RegistrarChegadaVeiculoComExpedicaoPayload) {\n return this.http.post(`${this._baseUrl}/actions/registrarChegadaDeVeiculoComExpedicao`, payload).pipe(this.defaultCatch());\n }\n}\n\nexport interface RegistrarChegadaVeiculoComExpedicaoPayload {\n expedicao: Expedicao;\n circuito: string;\n sequenciaInicial: string;\n vagaInicial?: string;\n}","import { Injectable } from \"@angular/core\";\nimport { ChegadaVeiculoOverride, OverrideParams } from \"@seniorsistemas/yms-routines\";\nimport { throwError } from \"rxjs\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { AgendaService } from \"../core/entities/agenda/agenda.service\";\nimport { Expedicao } from \"../core/entities/expedicao/expedicao\";\nimport { ExpedicaoService } from \"../core/entities/expedicao/expedicao.service\";\n\n@Injectable()\nexport class ExpedicaoChegadaVeiculoOverride {\n private readonly EXPEDICAO_KEY = \"ERP_SENIOR_EXPEDICAO\";\n constructor(\n private override: ChegadaVeiculoOverride,\n private agendaService: AgendaService,\n private expedicaoService: ExpedicaoService\n ){}\n\n public initialize() {\n this.override.addOverride(this.EXPEDICAO_KEY, (params) => this.functionToOverride(params));\n }\n\n public remove() {\n this.override.disposeOverride(this.EXPEDICAO_KEY);\n }\n\n private functionToOverride(params: OverrideParams){\n return this.agendaService.atualizarAgenda(params.agenda)\n .pipe(\n mergeMap(_ => this.expedicaoService.list({\n filterQuery: `agenda.id eq '${params.agenda.id}'`,\n page: 0,\n size: 1\n })),\n map(({ contents }) => contents.length ? contents[0] : null),\n mergeMap((expedicao: Expedicao) => {\n if (!expedicao) return throwError(\"Não foi possÃvel encontrar os dados de expedição\");\n\n return this.expedicaoService.registrarChegadaVeiculoComExpedicao({\n expedicao,\n circuito: params.circuito.id,\n sequenciaInicial: params.sequencia.id,\n vagaInicial: (params.vaga || {}).id\n });\n })\n );\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { catchError } from \"rxjs/operators\";\nimport { MessageService } from \"primeng/api\";\nimport { throwError } from \"rxjs\";\n\n@Injectable()\nexport class IntegrationService {\n private readonly baseUrl: string = `yms/integration/`;\n constructor(private http: HttpClient, private messageService: MessageService) { }\n\n getProcessConfigurationErp(idTipoAgendamento: string) {\n return this.http.get(`${this.baseUrl}queries/getErpProcessConfigurationByTipoAgendamento`, { params: { idTipoAgendamento } }).pipe(this.defaultCatch());\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { Agendamento, ChegadaVeiculo, IntegrationEventsCallback } from \"@seniorsistemas/yms-routines\";\nimport { takeUntil, mergeMap, finalize } from \"rxjs/operators\";\nimport { Agenda } from \"../core/entities/agenda/agenda\";\nimport { Subject, empty } from \"rxjs\";\nimport { IntegrationService } from \"../core/integration.service\";\n\nexport const ERP_SENIOR_HEADER = \"ERP Senior\";\n\n@Agendamento({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ChegadaVeiculo({\n header: ERP_SENIOR_HEADER,\n name: 'yms.integracao.erpagrox',\n icon: 'fal fa-book'\n})\nexport class FormDescritor { }\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-form *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-form>\n <expedicao-form *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-form>\n <devolucao-form *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-form>\n <recebimento-ordem-compra-form *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-form>\n <processo-avulso-form *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-form>\n <div *ngSwitchDefault>\n <s-loading-state [loading]=\"loading\">\n <h3 *ngIf=\"!loading\" style=\"text-align: center;\">\n ATENÃÃO, não existe Tipo de Processo configurado para esse tipo de agendamento.\n </h3>\n <h3 *ngIf=\"loading\" style=\"text-align: center;\"> Carregando configurações </h3>\n </s-loading-state>\n </div>\n </div>\n </div>\n `\n})\nexport class FormComponent extends FormDescritor implements OnInit, OnDestroy {\n header: string = ERP_SENIOR_HEADER;\n agenda: Agenda;\n tipoProcessoErpAtual: string;\n loading = false;\n\n private readonly unsubscribe$: Subject<void> = new Subject();\n constructor(private integrationCallback: IntegrationEventsCallback, private integrationService: IntegrationService) { \n super();\n }\n\n ngOnInit() {\n this.integrationCallback.onAgendamentoSaved()\n .pipe(\n takeUntil(this.unsubscribe$),\n mergeMap(agenda => {\n this.agenda = agenda;\n this.loading = true;\n if (!!this.agenda) {\n return this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id).pipe(finalize(() => this.loading = false))\n }\n return empty();\n })\n )\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n\n ngOnChanges() {\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n}","import { Component, Input, OnInit, OnDestroy } from \"@angular/core\";\nimport { CircuitoFinalizado, ControleCircuito, ControleOperacao } from \"@seniorsistemas/yms-routines\";\nimport { IntegrationService } from \"../core/integration.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nconst HEADER = 'Informações fiscais';\n\n@ControleCircuito({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@ControleOperacao({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\n@CircuitoFinalizado({\n header: HEADER,\n name: 'yms.integracao.erpagrox'\n})\nexport class InfoDescritor {\n\n}\n\n@Component({\n template: `\n <div *ngIf=\"agenda\">\n <div [ngSwitch]=\"tipoProcessoErpAtual\">\n <recebimento-info *ngSwitchCase=\"'RECEBIMENTO_CONTRATO'\" [agenda]=\"agenda\"></recebimento-info>\n <expedicao-info *ngSwitchCase=\"'EXPEDICAO'\" [agenda]=\"agenda\"></expedicao-info>\n <devolucao-info *ngSwitchCase=\"'DEVOLUCAO'\" [agenda]=\"agenda\"></devolucao-info> \n <recebimento-ordem-compra-info *ngSwitchCase=\"'RECEBIMENTO_ORDEM_COMPRA'\" [agenda]=\"agenda\"></recebimento-ordem-compra-info>\n <processo-avulso-info *ngSwitchCase=\"'PROCESSO_AVULSO'\" [agenda]=\"agenda\"></processo-avulso-info>\n </div>\n </div>\n `,\n})\nexport class InfoComponent extends InfoDescritor implements OnInit, OnDestroy {\n @Input() agenda: any;\n\n tipoProcessoErpAtual: string;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private integrationService: IntegrationService\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngOnInit(): void {\n this.integrationService.getProcessConfigurationErp(this.agenda.tipoAgendamento.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((erpProcessConfiguration: any) => this.tipoProcessoErpAtual = erpProcessConfiguration.id);\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { FormGroup } from \"@angular/forms\";\n\n@Injectable()\nexport class FieldCustomizationService {\n constructor(protected http: HttpClient, protected messageService: MessageService) {\n this.http = http;\n this.messageService = messageService;\n this.defaultCatch = this.defaultCatch.bind(this);\n }\n\n public commitFiles(objects: any[]) {\n return this.http.post(\"platform/field_customization/actions/commitObject\", { objects }).pipe(this.defaultCatch());\n }\n\n public deleteFiles(objects: any) {\n return this.http.post(\"platform/field_customization/actions/deleteObjects\", objects).pipe(this.defaultCatch());\n }\n\n public getFiles(formGroup: FormGroup) {\n let fieldCustomization = [];\n\n if (formGroup.value.custom) {\n fieldCustomization = formGroup.value.custom.fieldCustomization || [];\n delete formGroup.value.custom.fieldCustomization;\n }\n\n const filesToCommit: any[] = [];\n let filesToDelete: any = {};\n\n fieldCustomization.forEach(({ domain, service, entity, toDelete, toInsert }: any) => {\n if (!this.isEmpty(toInsert)) {\n const files = Object.keys(toInsert).map((key: string) => {\n const version = toInsert[key].version;\n const fileName = toInsert[key].name;\n const objectId = toInsert[key].objectId;\n return { version, fileName, objectId };\n });\n\n if (!this.isEmpty(files)) {\n filesToCommit.push(...files);\n }\n }\n\n if (!this.isEmpty(toDelete)) {\n const objects: any[] = [];\n Object.keys(toDelete).forEach((key: string) => {\n const fields = toDelete[key] || [];\n const files = fields.map((file: string) => {\n return {\n field: key,\n objectId: file,\n };\n });\n objects.push(...files);\n });\n filesToDelete = { domain, service, entityName: entity, objects };\n }\n });\n\n return { filesToCommit, filesToDelete };\n }\n\n public isEmpty(object: any) {\n if (Array.isArray(object)) {\n return object.length === 0;\n }\n return Object.entries(object).length === 0 && object.constructor === Object;\n }\n\n public defaultCatch() {\n return catchError((err: any) => {\n if (err) {\n const summary = err.status ? String(err.status) : \"Error\";\n const detail = (err.error && err.error.message) || err.statusText || err.message || \"Error\";\n\n this.messageService.add({\n severity: \"error\",\n summary,\n detail,\n });\n }\n\n return throwError(err);\n });\n }\n}\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Injectable } from '@angular/core';\n@Injectable()\nexport class VerificaNotafiscal{\n constructor (\n private messageService: MessageService,\n private translate: TranslateService\n ) {}\n\n public verificaSeNotaFiscalEstaDuplicada(chaveNotaFiscal: any, contratos: any, fornecedorNotasTokens: any) {\n if (chaveNotaFiscal == \"\") {\n return false;\n }\n \n let notaFicalDuplicadas = fornecedorNotasTokens.filter(nota => {\n return nota.id == chaveNotaFiscal;\n });\n\n if (typeof contratos !== \"undefined\" && notaFicalDuplicadas.length <= 0) {\n contratos = contratos.value;\n \n if (contratos.length > 0) {\n notaFicalDuplicadas = contratos.filter(contrato => {\n if (contrato.notas.length <= 0) {\n return false;\n }\n let result = contrato.notas.filter(nota => {\n return nota.chaveNotaFiscal == chaveNotaFiscal;\n })\n return result.length > 0;\n });\n }\n }\n\n if (notaFicalDuplicadas.length > 0){\n this.messageService.add({\n severity: \"error\",\n summary: this.translate.instant(\"yms.integration.titulo_nota_fical_ja_exite\"),\n detail: this.translate.instant(\"yms.integration.conteudo_nota_fical_ja_exite\"),\n });\n\n return true;\n }\n return false;\n }\n\n}","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MessageService } from \"primeng/components/common/messageservice\";\nimport { ERP_ENVIRONMENT } from \"../../injectors\";\nimport { EntityService } from \"../entity-service\";\nimport { OrdemCompraDto } from \"./ordem-compra-dto\";\n\n@Injectable()\nexport class OrdemCompraService extends EntityService<OrdemCompraDto> {\n\n constructor(\n protected http: HttpClient, \n protected messageService: MessageService,\n @Inject(ERP_ENVIRONMENT) private environment: any) {\n super(\n http,\n messageService,\n `${environment.project.domain}/${environment.project.service}/entities/ordemCompra`,\n `${environment.project.domain}/${environment.project.service}/actions`\n );\n }\n\n public listOrdensCompra(params: PesquisaOrdensCompraParams) {\n return this.http.post(`${this.environment.project.domain}/${this.environment.project.service}/queries/pesquisarOrdensCompra`, params).pipe(this.defaultCatch());\n }\n}\n\nexport interface PesquisaOrdensCompraParams {\n pessoaId?: string;\n codigo?: number;\n pagina?: {\n offset?: number;\n limit?: number;\n listaOrdenacao: {\n campo: string;\n ordenacao: 'Asc' | 'Desc'\n }[]\n }\n}\n","import { FieldType } from \"@seniorsistemas/angular-components\";\nimport { FormGroup } from \"@angular/forms\";\n\nconst numberTypes = [FieldType.Integer, FieldType.Double];\nconst numberPattern = /^\\d+\\b$/;\n\nexport const mergeUnique = (array: Array<string>, otherArray: Array<string>) =>\n array.concat(otherArray.filter(item => !array.includes(item)));\n\nexport const isValidFilter = (type: FieldType, value: any) => {\n const { isValidValue, typeExists } = getTypeInformation(type, value);\n return !(typeExists && !isValidValue);\n};\n\nexport const getTypeInformation = (type: FieldType, value: any) => {\n switch (type) {\n case FieldType.Time:\n case FieldType.Date:\n case FieldType.DateTime:\n return { isValidValue: false, typeExists: true };\n case FieldType.Integer:\n case FieldType.Double:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n default:\n return {\n isValidValue: value.match(numberPattern),\n typeExists: numberTypes.includes(type),\n };\n }\n};\n\nexport const userCanVisualize = (formGroup: FormGroup, allPermissions: any) => {\n return (\n Object.keys(formGroup.controls).filter(field => {\n const errors = formGroup.get(field).errors ? formGroup.get(field).errors.required : formGroup.get(field).errors;\n return allPermissions[field] && !allPermissions[field].visualizar && errors;\n }).length === 0\n );\n};\n\nexport const getProp = (obj: any, path: any) => \n path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n\nexport const dialogConfig = {\n style: {\n \"display\": \"flex\",\n \"flex-direction\": \"column\",\n },\n height: \"80%\",\n styleClass: \"ui-g-12 ui-md-4\",\n contentStyle: {\n \"overflow-y\": \"auto\",\n \"height\": \"auto\",\n \"max-height\": \"none\",\n \"margin-bottom\": \"0\",\n \"flex\": 1\n },\n};","import { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { map } from \"rxjs/operators\";\nimport { EntityService } from \"../erp-senior/core/entities/entity-service\";\nimport { getProp, isValidFilter, mergeUnique } from \"./utils\";\nconst moment = _moment;\n\nexport function getLookupLabel(data: any = {}, fields: any = [], separator: string, translation?: boolean) {\n const concatenateLabelsLookup = (texto: string) => {\n const splitedLabel = texto.split('-');\n const concatenate = (p: string = ' ', c: string = ' ') => {\n if (p.trim() && c.trim()) return `${p} - ${c}`;\n if (p.trim() && !c.trim()) return `${p}`;\n if (!p.trim() && c.trim()) return `${c}`;\n };\n return splitedLabel.reduce(concatenate);\n };\n return concatenateLabelsLookup(fields.map((field: any) => {\n if (field.indexOf(\".\") > 0) return getProp(data, field);\n return data[field];\n }).join(separator))\n || (translation ? 'yms.erp.sem_descricao' : ' - ');\n}\n\nexport const onLookupRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, value: string, customFilter = '') => {\n const sort = lookupDisplayFields.map((field: any) => ({ field, order: 1 }));\n\n let filterQuery = (searchFields)\n .filter(({ type }) => isValidFilter(type, value))\n .map(({ name, type }) => {\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.String) return `containing(lower(${name}), lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n else return `${name} eq '${value}'`;\n })\n .join(\" or \");\n\n if (customFilter && customFilter.trim()) {\n filterQuery = filterQuery ? `(${filterQuery}) and ${customFilter}` : customFilter;\n }\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n\nexport const onSearchRequest = <T> (searchFields: FormField[], lookupDisplayFields: string[], advancedDisplayFields: string[], lookupSeparator: string, service: EntityService<T>, event: any, customFilter = '') => {\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const sort = multiSortMeta;\n\n let filterQuery = searchFields\n .filter(({ name }) => filterData[name] != undefined && filterData[name] != \"\")\n .map(({ name, type }) => {\n const value = filterData[name];\n\n if (typeof value == \"number\" || type === FieldType.Integer) return `${name} eq ${value}`;\n else if (type == FieldType.Date) return `${name} eq '${moment(value).format(\"YYYY-MM-DD\")}'`;\n else if (type == FieldType.Time) return `${name} eq '${moment(value).format(\"HH:mm:ss\")}'`;\n else if (type == FieldType.DateTime) return `${name} eq '${moment(value).format()}'`;\n else if (type == FieldType.Enum) return `${name} eq '${value}'`;\n else if (type == FieldType.Lookup) return `${name} eq '${value.id}'`;\n else if (type == FieldType.String && name.indexOf('.') !== -1) {\n return `containing(${name}, '${value.replace(/'/g, \"\\\\'\")}')`;\n } else if (type == FieldType.String && name.indexOf('.') === -1) {\n return `containing(lower(${name}),lower('${value.replace(/'/g, \"\\\\'\")}'))`;\n } else return `${name} eq '${value}'`;\n })\n .join(\" and \");\n\n filterQuery = customFilter && customFilter.trim() ? filterQuery.concat(filterQuery ? ' and ' : '').concat(customFilter) : filterQuery;\n\n const displayFields = mergeUnique(lookupDisplayFields, advancedDisplayFields);\n return service\n .list({ page, sort, filterQuery, displayFields })\n .pipe(\n map((list: any) => ({\n ...list,\n contents: list.contents.map((item: any) => ({\n ...item,\n label: getLookupLabel(item, lookupDisplayFields, lookupSeparator),\n })),\n }))\n );\n};\n","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":["Subject","takeUntil","HttpParams","catchError","throwError","tslib_1.__extends","Injectable","HttpClient","MessageService","ControleCircuito","ControleOperacao","map","finalize","tslib_1.__decorate","Input","Component","trigger","state","style","transition","animate","TranslateService","PermissionsService","NgModule","CommonModule","TableModule","TranslateModule","MessageModule","ButtonModule","LoadingStateModule","PermissionsModule","IntegrationDispatcher","BehaviorSubject","StompService","CookieService","StompConfig","DynamicDialogRef","DynamicDialogConfig","DialogService","DynamicDialogModule","CircuitoFinalizado","TooltipModule","ControleUnificado","SelectPlantService","Router","filter","FormsModule","RouterModule","InputSwitchModule","InputTextModule","HttpClientModule","SelectPlantModule","InjectionToken","tslib_1.__param","Inject","mergeMap","ChegadaVeiculoOverride","Agendamento","ChegadaVeiculo","empty","IntegrationEventsCallback","FieldType","moment","FormControl","FormGroup","FormArray","Validators","FormField","FormBuilder","ConfirmationService","ReactiveFormsModule","ControlErrorsModule","ConfirmDialogModule","concatMap","ActivatedRoute","switchMap","of","Hotkey","forkJoin","ViewChild","TemplateRef","HotkeysService","Table","debounceTime","tslib_1.__values","tap","CustomFieldsModule","DialogModule","EmptyStateModule","DynamicFormModule","TokenListModule","PanelModule","AccordionModule","DropdownModule","NumberInputModule","LocaleModule","IntegrationModule","TabViewModule","HighlightModule","HotkeyModule"],"mappings":"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"}
|