@senior-gestao-empresarial/erpx-components 3.5.13 → 3.6.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/senior-gestao-empresarial-erpx-components.umd.js.map +1 -1
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -1
- package/components/lote-serie/erp-lote-serie.component.d.ts +0 -1
- package/esm2015/components/lote-serie/erp-lote-serie.component.js +1 -1
- package/esm5/components/lote-serie/erp-lote-serie.component.js +1 -1
- package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -1
- package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"senior-gestao-empresarial-erpx-components.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@senior-gestao-empresarial/erpx-components/components/breadcrumb/breadcrumb.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/breadcrumb/breadcrumb.module.ts","ng://@senior-gestao-empresarial/erpx-components/components/resumo/erp-resumo.service.ts","ng://@senior-gestao-empresarial/erpx-components/components/resumo/erp-resumo.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/resumo/erp-resumo.module.ts","ng://@senior-gestao-empresarial/erpx-components/components/utils/breakpoints.ts","ng://@senior-gestao-empresarial/erpx-components/components/utils/export-utils.ts","ng://@senior-gestao-empresarial/erpx-components/components/utils/utils.ts","ng://@senior-gestao-empresarial/erpx-components/components/focus/focus.service.ts","ng://@senior-gestao-empresarial/erpx-components/core/enums/enum-classificacao-tributaria.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.service.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.types.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.module.ts","ng://@senior-gestao-empresarial/erpx-components/core/entities/entity-service.ts","ng://@senior-gestao-empresarial/erpx-components/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.ts","ng://@senior-gestao-empresarial/erpx-components/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.ts","ng://@senior-gestao-empresarial/erpx-components/core/enums/enum-tipo-documento-parametros.ts","ng://@senior-gestao-empresarial/erpx-components/components/lote-serie/erp-lote-serie.service.ts","ng://@senior-gestao-empresarial/erpx-components/components/lote-serie/erp-lote-serie.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/lote-serie/erp-lote-serie.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 { Component, Input, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: `s-breadcrumb`,\n templateUrl: `./breadcrumb.component.html`,\n})\nexport class BreadcrumbComponent implements OnDestroy {\n @Input() public homeUrl: string;\n public home: MenuItem;\n public items: MenuItem[];\n public title: string;\n\n private ngUnsubscribe = new Subject<any>();\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router) {\n this.router.events\n .pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd))\n .subscribe(() => this.onNavigationEnd());\n }\n\n private onNavigationEnd() {\n const currentRoute = this.activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this.getValidChildren(currentRoute);\n\n this.title = this.getCurrentTitle(validRoutes);\n this.home = this.getCurrentHome(validRoutes);\n this.items = this.getCurrentItems(validRoutes);\n }\n\n private getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid = route.routeConfig && route.routeConfig.path && route.routeConfig.component && route.outlet === PRIMARY_OUTLET;\n return route.children.reduce((validRoutes, child) => [...validRoutes, ...this.getValidChildren(child)], valid ? [route] : []);\n }\n\n private getCurrentTitle(routes: ActivatedRoute[]) {\n const last = routes[routes.length - 1];\n if (last && last.routeConfig) return this.getTitle(last);\n }\n\n private getCurrentHome(routes: ActivatedRoute[]) {\n let home;\n if (this.homeUrl) home = { url: this.homeUrl, icon: 'far fa-home' };\n else if (routes.length) home = { ...this.getMenuItem(routes[0], routes.length === 1), icon: 'far fa-home' };\n\n return home;\n }\n\n private getCurrentItems(routes: ActivatedRoute[]) {\n if (!routes.length) return;\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) return items.map((route, i) => this.getMenuItem(route, i === routes.length - 1));\n }\n\n private getMenuItem(route: ActivatedRoute, disabled = false) {\n const label = this.getTitle(route);\n const routes = route.pathFromRoot;\n const routerLink = routes\n .slice(0, routes.indexOf(route) + 1)\n .reduce((result, item) => [...result, ...item.snapshot.url.map(url => url.path)], ['/']);\n\n return {\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n routerLinkActiveOptions: { exact: true },\n disabled,\n };\n }\n\n private getTitle(route: ActivatedRoute) {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data.routeTitle;\n if (!title) throw new Error(`No routeTitle defined for the route /${routeConfig.path}`);\n return title;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbModule as PrimeBreadcrumbModule } from 'primeng/breadcrumb';\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, PrimeBreadcrumbModule, RouterModule],\n declarations: [BreadcrumbComponent],\n exports: [BreadcrumbComponent, RouterModule],\n})\nexport class BreadcrumbModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErpResumoService {\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'erp-resumo[summary]',\n templateUrl: './erp-resumo.component.html',\n styleUrls: ['./erp-resumo.component.scss']\n})\nexport class ErpResumoComponent {\n\n @Input() summary: Summary;\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}\n\nexport interface Summary {\n total?: SummaryItem;\n sections: Array<SummarySectionItem>;\n}\n\nexport interface SummarySectionItem {\n title?: string;\n items: Array<Array<SummaryItem>>;\n subtotal?: SummaryItem;\n}\n\nexport interface SummaryItem {\n label?: string;\n value?: string | number;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ErpResumoService } from './erp-resumo.service';\nimport { ErpResumoComponent } from './erp-resumo.component';\n\n@NgModule({\n declarations: [\n ErpResumoComponent\n ],\n imports: [\n CommonModule\n ],\n providers: [\n ErpResumoService\n ],\n exports: [\n ErpResumoComponent\n ]\n})\nexport class ErpResumoModule { }\n","export const Breakpoints = {\n SM_MIN: 0,\n SM_MAX: 640,\n MD_MIN: 641,\n MD_MAX: 1024,\n LG_MIN: 1025,\n LG_MAX: 1440,\n XL_MIN: 1441,\n XL_MAX: Infinity,\n};\n","export class ExportUtils {\n constructor() {\n throw new Error('Classe não deve ser instanciada.');\n }\n\n public static exportCSV(\n columns: Partial<any>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download'\n ) {\n let csv = '\\ufeff';\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += '\\n';\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n let cellData = this.resolveFieldData(record, column.field);\n\n if (cellData != null) cellData = String(cellData).replace(/\"/g, `\"\"`);\n else cellData = '';\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;',\n });\n\n if (window.navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(blob, documentName + '.csv');\n else {\n const link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', documentName + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) return field(data);\n else if (field.indexOf('.') == -1) return data[field];\n else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else return null;\n }\n\n private static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n}\n","export const isEmpty = (target: any) => {\n if (target === null || target === \"\" || target === undefined) {\n return true;\n }\n if (Array.isArray(target) && !target.length) {\n return true;\n }\n if (Object.keys(target).filter((key) => target[key] !== null || target[key] !== \"\" || target[key] !== undefined).length === 0) {\n return true;\n }\n return false;\n};\n\nexport const isNotEmpty = (value: any) => {\n return !isEmpty(value);\n};\n","import { Injectable } from '@angular/core';\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') && (f.nodeName !== 'DIV')));\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","export enum EnumSituacaoClassificacaoTributaria {\n ATIVO = \"ATIVO\",\n INATIVO = \"INATIVO\"\n}","import { HttpClient } from '@angular/common/http';\nimport { Identifiers } from '@angular/compiler';\nimport { Injectable } from '@angular/core';\nimport { MessageService } from 'primeng';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ErpTributosService {\n constructor(protected http: HttpClient, protected messageService: MessageService) { }\n\n public getFrontend(params: Identifiers): Observable<any> {\n const url = `platform/frontend_updater/queries/getFrontend`;\n return this.http.post<any>(url, params).pipe();\n }\n}\n","import { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"@seniorsistemas/angular-components\";\n\nexport interface CampoTributo {\n campo: EnumCampoTributo;\n disabled?: boolean;\n grupo?: EnumGrupoTributo;\n}\n\nexport interface Tributo {\n\n tipoImposto: EnumTipoTributo;\n id?: string;\n baseCalculo?: number;\n aliquota?: number;\n valor?: number;\n valorIsentas?: number;\n valorOutras?: number;\n percentualReducao?: number;\n percentualMargemValorAdicionado: number;\n percentualDiferimento?: number;\n PercentualSuspensaoParcial?: number;\n aliquotaInterna?: number;\n}\n\nexport interface Sugestao {\n [nomeCampo: string]: any;\n tipoTributo: EnumTipoTributo;\n}\n\nexport enum EnumCampoTributo {\n BaseCalculo = 'base_calculo',\n Aliquota = 'aliquota',\n Valor = 'valor',\n ValorBruto = 'valor_bruto',\n SituacaoTributaria = 'situacao_tributaria',\n ValorIsentas = 'valor_isentas',\n ValorOutras = 'valor_outras',\n EnquadramentoIpi = 'enquadramento_ipi',\n PercentualReducao = 'percentual_reducao',\n PercentualMargemValorAdicionado = 'percentual_mva',\n PercentualDiferimento = 'percentual_diferimento',\n PercentualSuportadoConsumidorFinal = 'percentual_suportado_consumidor_final',\n PercentualSuspensaoParcial = 'percentual_suspensao_parcial',\n ValorRecolhidoPeloSubstituto = 'valor_recolhido_pelo_substituto',\n ValorIcmsStRetido = 'valor_icms_retido',\n MotivoDesoneracaoIcms = 'motivo_desoneracao_icms',\n Origem = 'origem',\n ModalidadeBC = 'modalidade_bc',\n AliquotaInterna = 'aliquota_interna',\n AliquotaInternaDestino = 'aliquotaInternaDestino',\n ReducaoAliquota = 'reducao_efetiva',\n AliquotaEfetiva = 'aliquota_efetiva',\n NaturezaReceita = 'natureza_receita',\n Observacao = 'observacao',\n ValorDeducao = 'valor_deducao',\n CodigoArrecadacao = 'codigo_arrecadacao',\n ImpostoNaoRecuperado = 'imposto_nao_recuperado',\n baseCalculoCredito = 'baseCalculoCredito',\n CodigoTributacao = 'codigo_tributacao',\n RegimeTributarioPisCofins = 'regime_tributario_pis_cofins',\n IndicativoAquisicao = 'indicativo_aquisicao',\n BeneficioFiscal = 'beneficio_fiscal',\n ClassificacaoTributaria = 'classificacao_tributaria',\n CstDesoneracao = 'cst_desoneracao',\n ClassificacaoTributariaDesoneracao = 'classificacao_tributaria_desoneracao',\n}\n\nexport enum EnumGrupoTributo {\n CBS = 'cbs',\n IBS_ESTADUAL = 'ibs_estadual',\n IBS_MUNICIPAL = 'ibs_municipal',\n IBS_MUNICIPAL_DESONERADO = 'ibs_municipal_desonerado',\n IBS_MUNICIPAL_DIFERIDO = 'ibs_municipal_diferido',\n IS = 'is',\n ICMS = 'icms',\n ICMS_ST = 'icms_st',\n IPI = 'ipi',\n PIS = 'pis',\n ISS = 'iss',\n COFINS = 'cofins',\n RETENCOES = 'retencoes',\n IMPORTACOES = 'importacoes',\n CIDE_TECNOLOGIA = 'cide_tecnologia',\n FUNRURAL = 'funrural',\n ICMS_CREDITO_PRESUMIDO = 'icms_credito_presumido',\n}\n\nexport enum EnumTipoTributo {\n CBS = 'CBS',\n CBS_DIFERIDO = 'CBS_DIFERIDO',\n CBS_DESONERADO = 'CBS_DESONERADO',\n IBS_ESTADUAL = 'IBS_ESTADUAL',\n IBS_ESTADUAL_DIFERIDO = 'IBS_ESTADUAL_DIFERIDO',\n IBS_ESTADUAL_DESONERADO = 'IBS_ESTADUAL_DESONERADO',\n IBS_MUNICIPAL = 'IBS_MUNICIPAL',\n IBS_MUNICIPAL_DIFERIDO = 'IBS_MUNICIPAL_DIFERIDO',\n IBS_MUNICIPAL_DESONERADO = 'IBS_MUNICIPAL_DESONERADO',\n IS = 'IS',\n PIS_FATURAMENTO = 'PIS_FATURAMENTO',\n PIS_RECUPERAR = 'PIS_RECUPERAR',\n PIS_DEVOLVIDO = 'PIS_DEVOLVIDO',\n COFINS_RECUPERAR = 'COFINS_RECUPERAR',\n COFINS_DEVOLVIDO = 'COFINS_DEVOLVIDO',\n IPI = 'IPI',\n IPI_CREDITADO = 'IPI_CREDITADO',\n IPI_PRESUMIDO = 'IPI_PRESUMIDO',\n IPI_DEVOLVIDO = 'IPI_DEVOLVIDO',\n IPI_OUTRAS_DESPESAS = 'IPI_OUTRAS_DESPESAS',\n ISS = 'ISS',\n ISS_RETIDO = 'ISS_RETIDO',\n IMPOSTO_IMPORTACAO = 'IMPOSTO_IMPORTACAO',\n PIS_RECUPERAR_IMPORTACAO = 'PIS_RECUPERAR_IMPORTACAO',\n COFINS_RECUPERAR_IMPORTACAO = 'COFINS_RECUPERAR_IMPORTACAO',\n PIS_RETIDO = 'PIS_RETIDO',\n COFINS_RETIDO = 'COFINS_RETIDO',\n CSLL = 'CSLL',\n IRRF = 'IRRF',\n INSS = 'INSS',\n INSS_PATRONAL = 'INSS_PATRONAL',\n ICMS_ST = 'ICMS_ST',\n FCP_ST = 'FCP_ST',\n ICMS_COBRADO_ANTERIORMENTE_ST = 'ICMS_COBRADO_ANTERIORMENTE_ST',\n FCP_COBRADO_ANTERIORMENTE_ST = 'FCP_COBRADO_ANTERIORMENTE_ST',\n ICMS = 'ICMS',\n ICMS_FUTURO = 'ICMS_FUTURO',\n ICMS_SIMPLES = 'ICMS_SIMPLES',\n ICMS_CREDITADO = 'ICMS_CREDITADO',\n FCP = 'FCP',\n ICMS_DIFERIDO = 'ICMS_DIFERIDO',\n ICMS_DESONERADO = 'ICMS_DESONERADO',\n ICMS_CREDITO_PRESUMIDO = 'ICMS_CREDITO_PRESUMIDO',\n DIFAL = 'DIFAL',\n ICMS_UF_DESTINO = 'ICMS_UF_DESTINO',\n FCP_UF_DESTINO = 'FCP_UF_DESTINO',\n ICMS_ST_SOLIDARIO = 'ICMS_ST_SOLIDARIO',\n ICMS_ST_FUTURO = 'ICMS_ST_FUTURO',\n ICMS_ST_RETIDO_ANT = 'ICMS_ST_RETIDO_ANT',\n FCP_ST_RETIDO_ANT = 'FCP_ST_RETIDO_ANT',\n ICMS_EFETIVO = 'ICMS_EFETIVO',\n PIS = 'PIS',\n COFINS = 'COFINS',\n CIDE_TECNOLOGIA = 'CIDE_TECNOLOGIA',\n DIFAL_DEVOLVIDO = 'DIFAL_DEVOLVIDO',\n ICMS_UF_DESTINO_DEVOLVIDO = 'ICMS_UF_DESTINO_DEVOLVIDO',\n FCP_UF_DESTINO_DEVOLVIDO = 'FCP_UF_DESTINO_DEVOLVIDO',\n IMPOSTO_NAO_RECUPERADO = 'IMPOSTO_NAO_RECUPERADO',\n BASE_CALCULO_CREDITO = 'BASE_CALCULO_CREDITO',\n PERCENTUAL_REDUCAO = 'PERCENTUAL_REDUCAO',\n FUNRURAL_INSS = 'FUNRURAL_INSS',\n FUNRURAL_RAT = 'FUNRURAL_RAT',\n FUNRURAL_SENAR = 'FUNRURAL_SENAR',\n FUNRURAL_TOTAL = 'FUNRURAL_TOTAL'\n}\n\nexport enum EnumTipoDocumento {\n NF_ENTRADA = 'nf_entrada',\n NF_SAIDA = 'nf_saida',\n PEDIDO_COMPRA = 'pedido_compra',\n PEDIDO_VENDA = 'pedido_venda',\n NF_SAIDA_CONTROLADORIA = 'nf_saida_controladoria',\n NF_ENTRADA_CONTROLADORIA = 'nf_entrada_controladoria'\n}\n\nexport enum EnumModBc {\n\n V0 = 'V0',\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3'\n}\n\nexport enum EnumOriMer {\n\n V0 = 'V0',\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V6 = 'V6',\n V7 = 'V7',\n V8 = 'V8'\n}\n\nexport enum EnumMotDes {\n\n V0 = 'V0',\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V6 = 'V6',\n V7 = 'V7',\n V8 = 'V8',\n V9 = 'V9',\n V10 = 'V10',\n V11 = 'V11',\n V12 = 'V12',\n V16 = 'V16',\n V90 = 'V90'\n}\n\nexport enum EnumTipoItem {\n\n Produto = 'Produto',\n Servico = 'Servico',\n}\n\nexport enum EnumTipImpCst {\n PIS_COFINS = 'PIS_COFINS',\n IPI = 'IPI',\n ICMS = 'ICMS',\n ISS = 'ISS',\n CBS_IBS = 'CBS_IBS',\n IS = 'IS',\n}\n\nexport enum EnumTipOpe {\n VSAIDA = 'VSAIDA',\n VENTRADA = 'VENTRADA',\n VAMBOS = 'VAMBOS'\n}\n\nexport enum enumTipCredRecup {\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V6 = 'V6',\n V7 = 'V7',\n V8 = 'V8',\n V9 = 'V9',\n V10 = 'V10',\n V11 = 'V11',\n V12 = 'V12',\n V13 = 'V13',\n V14 = 'V14',\n V15 = 'V15',\n V16 = 'V16',\n V17 = 'V17',\n V18 = 'V18',\n}\n\nexport interface Item {\n formField: FormField[];\n formGroup: FormGroup;\n label: string;\n name: string;\n}\n\nexport enum EnumRegimeTributarioPisCofins {\n CUMULATIVO = 'CUMULATIVO',\n NAO_CUMULATIVO = 'NAO_CUMULATIVO'\n}\n\n// \"Indicativo de aquisição para o FUNRURAL\"\nexport enum EnumFunruralIndicativoAquisicao {\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral.\"\n V1 = 'V1',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral por entidade executora do Programa de Aquisição de Alimentos PAA.\"\n V2 = 'V2',\n // \"Aquisição de produção de produtor rural pessoa jurÃdica por entidade executora do PAA.\"\n V3 = 'V3',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral Produção isenta (Lei 13.606/2018).\"\n V4 = 'V4',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral por entidade executora do PAA Produção isenta (Lei 13.606/2018).\"\n V5 = 'V5',\n // \"Aquisição de produção de produtor rural pessoa jurÃdica por entidade executora do PAA Produção isenta (Lei 13.606/2018).\"\n V6 = 'V6',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial para fins de exportação.\"\n V7 = 'V7'\n}\n\nexport enum EnumSituacao {\n VATIVO = \"VATIVO\",\n VINATIVO = \"VINATIVO\",\n}\n\n","import { Identifiers } from '@angular/compiler';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n BeneficioFiscalLookup,\n ClassificacaoTributariaLookup,\n CplTriNotaSaidaNaturezaReceitaPisCofinsLookup,\n E027EqiLookup,\n E027StrLookup,\n EnumLogicalOperator,\n LookupRequestValidator,\n LookupValidationUtils\n} from '@senior-gestao-empresarial/angular-components';\nimport { FieldType, FormField, LookupField } from '@seniorsistemas/angular-components';\nimport { FeatureToggleService } from '@seniorsistemas/platform-components';\nimport { GTagService } from '@seniorsistemas/platform-utils';\nimport BigNumber from 'bignumber.js';\nimport { MenuItem, MessageService } from 'primeng/api';\nimport { Observable, of, Subject } from 'rxjs';\nimport { finalize, first, switchMap, takeUntil } from 'rxjs/operators';\nimport { EnumSituacaoClassificacaoTributaria } from '../../core/enums/enum-classificacao-tributaria';\nimport { ErpTributosService } from './erp-tributos.service';\nimport {\n CampoTributo,\n EnumCampoTributo,\n EnumFunruralIndicativoAquisicao,\n EnumGrupoTributo,\n EnumModBc,\n EnumMotDes,\n EnumOriMer,\n EnumRegimeTributarioPisCofins,\n EnumSituacao,\n enumTipCredRecup,\n EnumTipImpCst,\n EnumTipoDocumento,\n EnumTipoItem,\n EnumTipOpe,\n EnumTipoTributo,\n Item,\n Sugestao\n} from './erp-tributos.types';\n\n@Component({\n selector: 'erp-tributos',\n templateUrl: './erp-tributos.component.html'\n})\nexport class ErpTributosComponent implements OnInit, OnChanges, OnDestroy {\n\n public grupos: any[] = [];\n public tributosValue: any[] = [];\n public reload = true;\n public indexAccordion: number[] = [];\n public prefixLabel: string;\n\n isLoading = false;\n\n private featureReformaTributaria = false;\n\n private menuItemPis = false;\n private menuItemCofins = false;\n private menuItemIpi = false;\n private menuItemIss = false;\n private menuItemImportacoes = false;\n private menuItemRetencoes = false;\n private menuItemRetencoesFunrural = false;\n private menuItemIcms = false;\n private menuItemCideTecnologia = false;\n private menuItemCBS = false;\n private menuItemIBSEstadual = false;\n private menuItemIBSMunicipal = false;\n private menuItemIS = false;\n private menuItemIcmsCreditoPresumido = false;\n\n private requiredItemCBS = false;\n private requiredItemCBSDesonerado = false;\n private requiredItemCBSDiferido = false;\n private requiredItemIBSEstadual = false;\n private requiredItemIBSEstadualDesonerado = false;\n private requiredItemIBSEstadualDiferido = false;\n private requiredItemIBSMunicipal = false;\n private requiredItemIBSMunicipalDesonerado = false;\n private requiredItemIBSMunicipalDiferido = false;\n private requiredItemIS = false;\n private requiredItemCideTecnologia = false;\n private requiredItemPisRecuperar = false;\n private requiredItemPisDevolvido = false;\n private requiredItemCofinsRecuperar = false;\n private requiredItemCofinsDevolvido = false;\n private requiredItemIpi = false;\n private requiredItemIpiCreditado = false;\n private requiredItemIpiDevolvido = false;\n private requiredItemIpiPresumido = false;\n private requiredItemIpiOutrasDespesas = false;\n private requiredItemIss = false;\n private requiredItemIssRetido = false;\n private requiredItemImpostoImportacao = false;\n private requiredItemPisRecuperarImportacao = false;\n private requiredItemCofinsRecuperarImportacao = false;\n private requiredItemPisRetido = false;\n private requiredItemCofinsRetido = false;\n private requiredItemCsllRetido = false;\n private requiredItemIrrfRetido = false;\n private requiredItemInssRetido = false;\n private requiredItemInssPatronal = false;\n private requiredItemIcmsSt = false;\n private requiredItemFcpSt = false;\n private requiredItemIcmsCobradoAnteriormente = false;\n private requiredItemFcpCobradoAnteriormente = false;\n private requiredItemIcms = false;\n private requiredItemIcmsEfetivamenteCreditado = false;\n private requiredItemFcp = false;\n private requiredItemIcmsDiferido = false;\n private requiredItemIcmsDesonerado = false;\n private requiredItemDiferencialAlicota = false;\n private requiredItemPisFaturemento = false;\n private requiredItemCofinsFaturemento = false;\n private requiredItemFcpUfDestino = false;\n private requiredItemIcmsUfDestino = false;\n private requiredSituacaoTributaria = false;\n private requiredIcmsFuturo = false;\n private requiredIcmsSimples = false;\n private requiredIcmsCreditoPresumido = true;\n private requiredDifalDevolvido = false;\n private requiredICMS_UF_Destino_Devolvido = false;\n private requiredFCP_UF_Destino_Devolvido = false;\n private requiredItemPisFaturamento = false;\n private requiredImpostoNaoRecuperado = false;\n private requiredbaseCalculoCredito = true;\n private requiredPercentualReducao = true;\n private requiredIcmsStSolidario = false;\n private requiredIcmsStRetidoAnt = false;\n private requiredFcpStReditoAnt = false;\n private percentageLocaleOptions?: any;\n\n private ngUnsubscribe = new Subject();\n\n @Input() sugestoes!: Sugestao[];\n @Input() camposBloqueados = false;\n @Input() devolvido = false;\n @Input() documento: EnumTipoDocumento;\n @Input() tipoItem: EnumTipoItem;\n @Input() habilitaOpcaoCide = false;\n @Output() tributosChange = new EventEmitter<any>();\n @Input()\n get tributos() {\n return this.tributosValue;\n }\n @Input() dominio?: string;\n @Input() servico?: string;\n @Input() currencyLocaleOptions?: any = { currencySymbol: '', decimalSeparator: ',', thousandsSeparator: '.' };\n @Input() idsTaxesMemoriaCalculo?: [{ idParametro: string, idParametroEstado: string, idPerfilTributario: string, tipoTributo: EnumTipoTributo, fromScreen?: string, idParametroSt: string }];\n @Input() permissionMemoriaCalculo?: boolean;\n\n set tributos(val) {\n this.tributosValue = val;\n }\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly e027StrLookup: E027StrLookup,\n private readonly beneficioFiscalLookup: BeneficioFiscalLookup,\n private readonly e027eqiLookup: E027EqiLookup,\n private readonly naturezaReceitaLookup: CplTriNotaSaidaNaturezaReceitaPisCofinsLookup,\n private readonly classificacaoTributariaLookup: ClassificacaoTributariaLookup,\n private readonly lookupUtils: LookupValidationUtils,\n private readonly erpTributosService: ErpTributosService,\n private readonly gtag: GTagService,\n private readonly featureToggleService: FeatureToggleService,\n protected readonly messageService: MessageService\n ) { }\n\n ngOnInit() {\n this.getEnabledFeatures();\n\n this.grupos = [];\n this.menuItemPis = false;\n this.menuItemCofins = false;\n this.menuItemIpi = false;\n this.menuItemIss = false;\n this.menuItemImportacoes = false;\n this.menuItemRetencoes = false;\n this.menuItemIcms = false;\n this.menuItemCideTecnologia = false;\n\n this.dominio = this.dominio ? this.dominio : 'erpx_cpl_imp';\n this.servico = this.servico ? this.servico : 'cadastros';\n\n this.prefixLabel = `${this.dominio}.${this.servico}`\n if (Object.keys(this.currencyLocaleOptions).length == 0)\n this.currencyLocaleOptions = { currencySymbol: '', decimalSeparator: ',', thousandsSeparator: '.' };\n\n this.percentageLocaleOptions = {\n currencySymbol: '%', \n decimalSeparator: this.currencyLocaleOptions.decimalSeparator, \n thousandsSeparator: this.currencyLocaleOptions.thousandsSeparator\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const variaveisAlteradas = Object.keys(changes);\n if (!variaveisAlteradas.includes('sugestoes') || variaveisAlteradas.length > 1) {\n this.clearVariables();\n this.getActions();\n if ((this.tributosValue == undefined) || (this.tributosValue.length == 0)) {\n this.grupos = [];\n this.tributosValue = [];\n } else if (this.reload) {\n this.grupos = [];\n this.createTributos();\n this.setTributos();\n } else {\n this.reload = true;\n }\n\n if (this.camposBloqueados == true) {\n this.readOnlyTributos();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.lookupUtils.resetStoredKeys();\n }\n\n public memoriaCalculo(imposto: any) {\n let tributo = this.idsTaxesMemoriaCalculo.find((element: any) => { return element.tipoTributo == imposto.name });\n this.abrirWindowUrlMemoriaCalculo(tributo);\n }\n\n private makeUrlWindow(params: Identifiers, tributo?: any) {\n this.erpTributosService.getFrontend(params).subscribe((response: any) => {\n window.open(`${response.frontends[0].embeddedURL}`, '_blank');\n })\n\n this.gtag.sendButtonClick('Botão acessar parametrização' , {impostos: tributo.tipoTributo})\n }\n\n public disabledButton(imposto: EnumTipoTributo) {\n return this.idsTaxesMemoriaCalculo == undefined || !this.idsTaxesMemoriaCalculo.find((element: any) => {\n return element.tipoTributo == imposto && element.idParametro != undefined;\n });\n }\n\n public hideButton(imposto: any) {\n switch (imposto) {\n case EnumTipoTributo.IPI_DEVOLVIDO:\n return false;\n default:\n return true;\n }\n }\n\n private abrirWindowUrlMemoriaCalculo(tributo: any) {\n if (!tributo?.idPerfilTributario && !tributo?.idParametro) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant('error_memoria_calculo_message_title'),\n detail: this.translate.instant('error_memoria_calculo_message_content')\n });\n return;\n };\n const params = {\n identifiers: [{\n \"domainName\": \"erpx_cpl_imp\",\n \"serviceName\": \"impostos\",\n \"appName\": \"erpx-cpl-imp-impostos\",\n \"route\": `${this.validaTela(tributo)}`\n }]\n };\n\n this.makeUrlWindow(params, tributo);\n }\n\n validaTela(taxes: any) {\n if (this.isStTaxes(taxes.tipoTributo)) {\n if(taxes.idParametroEstado){\n return `icmsst/${taxes.idParametroSt}/icmsst-parametros/${taxes.idParametroEstado}?perfilTributarioId=${taxes.idPerfilTributario}¶metroImpostosId=${taxes.idParametro}`\n } else {\n return `icmsst/${taxes.idParametro}/icmsst-parametros/${taxes.idParametroSt}`\n }\n }\n return `perfil-tributario/${taxes.idPerfilTributario}/parametrizacao-impostos/${this.getTributoPai(taxes.tipoTributo)}/${taxes.idParametro}`\n }\n\n private isStTaxes(taxes: any) {\n switch (taxes) {\n case EnumTipoTributo.ICMS_ST:\n case EnumTipoTributo.ICMS_ST_FUTURO:\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT:\n case EnumTipoTributo.ICMS_ST_SOLIDARIO:\n case EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST:\n return true;\n default:\n break;\n }\n }\n\n private getTributoPai(tributo: EnumTipoTributo) {\n switch (tributo) {\n case EnumTipoTributo.PIS_RECUPERAR:\n case EnumTipoTributo.PIS_DEVOLVIDO:\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO:\n case EnumTipoTributo.PIS:\n return 'pis';\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO:\n case EnumTipoTributo.COFINS_DEVOLVIDO:\n case EnumTipoTributo.COFINS_RECUPERAR:\n case EnumTipoTributo.COFINS:\n return 'cofins';\n case EnumTipoTributo.IPI:\n case EnumTipoTributo.IPI_CREDITADO:\n case EnumTipoTributo.IPI_PRESUMIDO:\n case EnumTipoTributo.IPI_DEVOLVIDO:\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS:\n return 'ipi';\n case EnumTipoTributo.ISS:\n case EnumTipoTributo.ISS_RETIDO:\n return 'iss';\n case EnumTipoTributo.IMPOSTO_IMPORTACAO:\n return 'ii';\n case EnumTipoTributo.PIS_RETIDO:\n case EnumTipoTributo.COFINS_RETIDO:\n case EnumTipoTributo.CSLL:\n case EnumTipoTributo.IRRF:\n case EnumTipoTributo.INSS:\n case EnumTipoTributo.INSS_PATRONAL:\n case EnumTipoTributo.FUNRURAL_INSS:\n case EnumTipoTributo.FUNRURAL_RAT:\n case EnumTipoTributo.FUNRURAL_SENAR:\n case EnumTipoTributo.FUNRURAL_TOTAL:\n return 'retencoes';\n case EnumTipoTributo.ICMS:\n case EnumTipoTributo.ICMS_CREDITADO:\n case EnumTipoTributo.FCP:\n case EnumTipoTributo.ICMS_DIFERIDO:\n case EnumTipoTributo.ICMS_DESONERADO:\n case EnumTipoTributo.ICMS_EFETIVO:\n case EnumTipoTributo.DIFAL:\n case EnumTipoTributo.DIFAL_DEVOLVIDO:\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.ICMS_SIMPLES:\n case EnumTipoTributo.ICMS_FUTURO:\n case EnumTipoTributo.ICMS_UF_DESTINO:\n case EnumTipoTributo.FCP_UF_DESTINO:\n case EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST:\n case EnumTipoTributo.FCP_ST_RETIDO_ANT:\n case EnumTipoTributo.FCP_ST:\n return 'icms';\n case EnumTipoTributo.CIDE_TECNOLOGIA:\n return 'cide';\n case EnumTipoTributo.CBS:\n case EnumTipoTributo.CBS_DESONERADO:\n case EnumTipoTributo.CBS_DIFERIDO:\n return 'cbs';\n case EnumTipoTributo.IBS_ESTADUAL:\n case EnumTipoTributo.IBS_ESTADUAL_DESONERADO:\n case EnumTipoTributo.IBS_ESTADUAL_DIFERIDO:\n return 'ibs-estadual';\n case EnumTipoTributo.IBS_MUNICIPAL:\n case EnumTipoTributo.IBS_MUNICIPAL_DESONERADO:\n case EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO:\n return 'ibs-municipal';\n case EnumTipoTributo.IS:\n return 'is';\n default:\n break;\n }\n }\n\n private clearVariables() {\n if (this.reload) {\n this.indexAccordion = [-1];\n this.menuItemCBS = false;\n this.menuItemIBSEstadual = false;\n this.menuItemIBSMunicipal = false;\n this.menuItemIS = false;\n this.menuItemPis = false;\n this.menuItemCofins = false;\n this.menuItemIpi = false;\n this.menuItemIss = false;\n this.menuItemImportacoes = false;\n this.menuItemRetencoes = false;\n this.menuItemIcms = false;\n this.menuItemCideTecnologia = false;\n this.menuItemRetencoesFunrural = false;\n this.menuItemIcmsCreditoPresumido = false;\n\n this.requiredItemCBS = false;\n this.requiredItemCideTecnologia = false;\n this.requiredItemPisRecuperar = false;\n this.requiredItemPisDevolvido = false;\n this.requiredItemCofinsRecuperar = false;\n this.requiredItemCofinsDevolvido = false;\n this.requiredItemIpi = false;\n this.requiredItemIpiCreditado = false;\n this.requiredItemIpiDevolvido = false;\n this.requiredItemIpiPresumido = false;\n this.requiredItemIpiOutrasDespesas = false;\n this.requiredItemIss = false;\n this.requiredItemIssRetido = false;\n this.requiredItemImpostoImportacao = false;\n this.requiredItemPisRecuperarImportacao = false;\n this.requiredItemCofinsRecuperarImportacao = false;\n this.requiredItemPisRetido = false;\n this.requiredItemCofinsRetido = false;\n this.requiredItemCsllRetido = false;\n this.requiredItemIrrfRetido = false;\n this.requiredItemInssRetido = false;\n this.requiredItemInssPatronal = false;\n this.requiredItemIcmsSt = false;\n this.requiredItemFcpSt = false;\n this.requiredItemIcmsCobradoAnteriormente = false;\n this.requiredItemFcpCobradoAnteriormente = false;\n this.requiredItemIcms = false;\n this.requiredItemIcmsEfetivamenteCreditado = false;\n this.requiredItemFcp = false;\n this.requiredItemIcmsDiferido = false;\n this.requiredItemIcmsDesonerado = false;\n this.requiredItemDiferencialAlicota = false;\n this.requiredItemPisFaturemento = false;\n this.requiredItemCofinsFaturemento = false;\n this.requiredItemIcmsUfDestino = false;\n this.requiredItemFcpUfDestino = false;\n this.requiredSituacaoTributaria = false;\n this.requiredIcmsFuturo = false;\n this.requiredIcmsSimples = false;\n this.requiredItemPisFaturamento = false;\n this.requiredIcmsStSolidario = false;\n this.requiredIcmsStRetidoAnt = false;\n this.requiredFcpStReditoAnt = false;\n }\n }\n\n private createTributos() {\n\n this.tributosValue.map(it => {\n\n switch (it.tipoImposto) {\n case EnumTipoTributo.CBS:\n case EnumTipoTributo.CBS_DESONERADO:\n case EnumTipoTributo.CBS_DIFERIDO:\n this.montaCBS();\n break\n case EnumTipoTributo.IBS_ESTADUAL:\n case EnumTipoTributo.IBS_ESTADUAL_DESONERADO:\n case EnumTipoTributo.IBS_ESTADUAL_DIFERIDO:\n this.montaIBSEstadual();\n break\n case EnumTipoTributo.IBS_MUNICIPAL:\n case EnumTipoTributo.IBS_MUNICIPAL_DESONERADO:\n case EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO:\n this.montaIBSMunicipal();\n break\n case EnumTipoTributo.IS:\n this.montaIS();\n break\n case EnumTipoTributo.PIS_RECUPERAR:\n case EnumTipoTributo.PIS_DEVOLVIDO:\n case EnumTipoTributo.PIS:\n this.montaPis();\n break;\n case EnumTipoTributo.COFINS_DEVOLVIDO:\n case EnumTipoTributo.COFINS_RECUPERAR:\n case EnumTipoTributo.COFINS:\n this.montaCofins();\n break;\n case EnumTipoTributo.IPI:\n case EnumTipoTributo.IPI_CREDITADO:\n case EnumTipoTributo.IPI_PRESUMIDO:\n case EnumTipoTributo.IPI_DEVOLVIDO:\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS:\n this.montaIpi();\n break;\n case EnumTipoTributo.ISS:\n case EnumTipoTributo.ISS_RETIDO:\n this.montaIss();\n break;\n case EnumTipoTributo.IMPOSTO_IMPORTACAO:\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO:\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO:\n this.montaImportacoes();\n break;\n case EnumTipoTributo.PIS_RETIDO:\n case EnumTipoTributo.COFINS_RETIDO:\n case EnumTipoTributo.CSLL:\n case EnumTipoTributo.IRRF:\n case EnumTipoTributo.INSS:\n case EnumTipoTributo.INSS_PATRONAL:\n this.montaRetencoes();\n break;\n case EnumTipoTributo.ICMS:\n case EnumTipoTributo.ICMS_CREDITADO:\n case EnumTipoTributo.FCP:\n case EnumTipoTributo.ICMS_DIFERIDO:\n case EnumTipoTributo.ICMS_DESONERADO:\n case EnumTipoTributo.ICMS_ST_FUTURO:\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT:\n case EnumTipoTributo.ICMS_ST_SOLIDARIO:\n case EnumTipoTributo.ICMS_EFETIVO:\n case EnumTipoTributo.DIFAL:\n case EnumTipoTributo.DIFAL_DEVOLVIDO:\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.ICMS_SIMPLES:\n case EnumTipoTributo.ICMS_FUTURO:\n this.montaIcms();\n break;\n case EnumTipoTributo.ICMS_CREDITO_PRESUMIDO:\n this.montaIcmsCreditoPresumido();\n break;\n case EnumTipoTributo.CIDE_TECNOLOGIA:\n this.montaCide();\n break;\n case EnumTipoTributo.FUNRURAL_INSS:\n case EnumTipoTributo.FUNRURAL_RAT:\n case EnumTipoTributo.FUNRURAL_SENAR:\n case EnumTipoTributo.FUNRURAL_TOTAL:\n this.montaRetencoesFunrural();\n break;\n default:\n break;\n }\n\n });\n\n }\n\n private readOnlyTributos() {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(grupo => grupo.item.map(\n (item: any) => {\n item.formGroup.disable();\n })\n );\n }\n }\n\n private setTributos() {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(grupo => grupo.item.map(\n (item: Item) => {\n this.tributosValue.map(it => {\n if (item.name === it.tipoImposto) {\n item.formGroup.patchValue(it);\n this.setValidators(it.tipoImposto);\n this.storageValuesOnLookupValidator(item);\n }\n });\n })\n );\n\n this.grupos.map(grupo => grupo.item.map(\n (item: any) => {\n this.setSubs(item);\n })\n );\n }\n }\n\n private setValidators(tributo: EnumTipoTributo) {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item\n .filter((it: any) => it.name == tributo)\n .map((it: any) => {\n let hasValue = false;\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if (item != 'impostoManual') {\n if (it.formGroup.value[item] != undefined && it.formGroup.value[item] !== '') {\n hasValue = true;\n return;\n }\n }\n });\n\n if (hasValue)\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if ((item == 'percentualReducao') ||\n (item == 'percentualDiferimento') ||\n (item == 'percentualMargemValorAdicionado') ||\n (item === 'percentualSuspensaoParcial')) {\n it.formGroup.controls[item].setValidators(Validators.compose(\n [\n Validators.required\n , Validators.max(1000)\n ]\n ));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'valor') {\n it.formGroup.controls[item].setValidators(Validators.compose([\n Validators.required,\n Validators.max(9999999999999.99)\n ]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'observacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(120)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'codigoArrecadacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(5)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'beneficioFiscal') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.required]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'indicativoAquisicao') {\n it.formGroup.controls[item].setValidators(Validators.compose([]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'codigoTributacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(5)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'ImpostoNaoRecuperado') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(9999999999999.99)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'baseCalculoCredito') {\n it.formGroup.controls[item].clearValidators();\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item !== 'impostoManual'\n && item !== 'naturezaReceita'\n && item !== 'valorDeducao'\n && item !== 'regimeTributarioPisCofins'\n && item !== 'reducaoAliquota') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.required]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n }\n });\n else\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if ((item == 'percentualReducao') ||\n (item == 'percentualDiferimento') ||\n (item == 'percentualMargemValorAdicionado') ||\n (item === 'percentualSuspensaoParcial')) {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(1000)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n\n } else if (item === 'valor') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(9999999999999.99)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'observacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(120)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n\n } else if (item === 'codigoArrecadacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(6)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n\n } else if (item === 'beneficioFiscal') {\n it.formGroup.controls[item].setValidators(Validators.compose([]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'indicativoAquisicao') {\n it.formGroup.controls[item].setValidators(Validators.compose([]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'ImpostoNaoRecuperado') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(9999999999999.99)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else {\n it.formGroup.controls[item].clearValidators();\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, false);\n }\n });\n });\n }\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 });\n }\n\n public validateAllFieldsTributos(): boolean {\n let valueValid = true;\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item\n .map((it: any) => {\n Object.keys(it.formGroup.controls).forEach(field => {\n const control = it.formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFieldsTributos();\n });\n\n if (it.formGroup.invalid) {\n valueValid = false;\n }\n });\n }\n );\n }\n return valueValid;\n }\n\n private backValue() {\n const arrItens: any = [];\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item.map(\n (item: any) => {\n this.validateAllFormFields(item.formGroup);\n if (this.tributosValue.length > 0) {\n const deuMath = this.tributosValue\n .filter(tributo => tributo.tipoImposto == item.name)\n .map((tributo: any) => {\n return {\n ...tributo,\n ...item.formGroup.getRawValue()\n };\n });\n if (deuMath && deuMath.length) {\n arrItens.push(deuMath[0]);\n } else {\n arrItens.push({ 'tipoImposto': item.name, ...item.formGroup.getRawValue() });\n }\n } else {\n arrItens.push({ 'tipoImposto': item.name, ...item.formGroup.getRawValue() });\n }\n }\n );\n }\n );\n }\n\n this.reload = false;\n this.tributosChange.emit(arrItens);\n }\n\n private novoImpostoManual(value: any, singleChange?: boolean) {\n value.formField.forEach((field: FormField) => field.onBlur?.call(this));\n value.formGroup.controls.impostoManual.patchValue(true);\n if (!singleChange) { this.setSubs(value); }\n }\n\n public getActions(): MenuItem[] {\n const menu: MenuItem[] = [];\n\n menu.push(\n {\n label: this.translate.instant('erpx.tributos.actions_cbs_label'),\n disabled: this.menuItemCBS,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaCBS().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n label: this.translate.instant('erpx.tributos.actions_ibs_estadual_label'),\n disabled: this.menuItemIBSEstadual,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaIBSEstadual().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n label: this.translate.instant('erpx.tributos.actions_ibs_municipal_label'),\n disabled: this.menuItemIBSMunicipal,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaIBSMunicipal().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n label: this.translate.instant('erpx.tributos.actions_is_label'),\n disabled: this.menuItemIS,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaIS().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n id: 'retencaoFunrural',\n label: this.translate.instant('erpx.tributos.actions_retencao_funrural_label'),\n disabled: this.menuItemRetencoesFunrural,\n command: () => {\n this.montaRetencoesFunrural().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n id: 'pis',\n label: this.translate.instant('erpx.tributos.actions_pis_label'),\n disabled: this.menuItemPis,\n command: () => {\n this.montaPis().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }, {\n id: 'cofins',\n label: this.translate.instant('erpx.tributos.actions_cofins_label'),\n disabled: this.menuItemCofins,\n command: () => {\n this.montaCofins().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }, {\n id: 'ipi',\n label: this.translate.instant('erpx.tributos.actions_ipi_label'),\n disabled: this.menuItemIpi,\n command: () => {\n this.montaIpi().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }, {\n id: 'icms',\n label: this.translate.instant('erpx.tributos.actions_icms_label'),\n disabled: this.menuItemIcms,\n command: () => {\n this.montaIcms().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }\n );\n\n if (this.documento != EnumTipoDocumento.PEDIDO_VENDA) {\n menu.push(\n {\n id: 'importacoes',\n label: this.translate.instant('erpx.tributos.actions_importacoes_label'),\n disabled: this.menuItemImportacoes,\n command: () => {\n this.montaImportacoes().forEach(value => {\n this.novoImpostoManual(value, true);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }\n );\n }\n\n if (this.tipoItem == EnumTipoItem.Servico || this.documento == EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA) {\n menu.push(\n {\n id: 'iss',\n label: this.translate.instant('erpx.tributos.actions_iss_label'),\n disabled: this.menuItemIss,\n command: () => {\n this.montaIss().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n id: 'retencoes',\n label: this.translate.instant('erpx.tributos.actions_retencoes_label'),\n disabled: this.menuItemRetencoes,\n command: () => {\n this.montaRetencoes().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n );\n }\n\n if (this.tipoItem == EnumTipoItem.Servico && this.habilitaOpcaoCide) {\n menu.push(\n {\n id: 'cide',\n label: this.translate.instant('erpx.tributos.actions_cide_label'),\n disabled: this.menuItemCideTecnologia,\n command: () => {\n this.montaCide().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }\n );\n }\n\n if (\n this.documento === EnumTipoDocumento.NF_ENTRADA ||\n this.documento === EnumTipoDocumento.NF_SAIDA\n )\n menu.push({\n label: this.translate.instant(\n 'erpx.tributos.actions_icms_credito_presumido_label'\n ),\n disabled: this.menuItemIcmsCreditoPresumido,\n command: () => {\n this.montaIcmsCreditoPresumido().forEach((value) => {\n this.novoImpostoManual(value);\n }),\n (this.indexAccordion = [0]);\n\n this.changeDetector.detectChanges();\n }\n });\n\n return menu;\n }\n\n private montaIcmsCreditoPresumido() {\n if (this.menuItemIcmsCreditoPresumido) return;\n\n this.menuItemIcmsCreditoPresumido = true;\n\n const item = [\n {\n name: EnumTipoTributo.ICMS_CREDITO_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_credito_presumido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.BeneficioFiscal }\n ],\n EnumTipoTributo.ICMS_CREDITO_PRESUMIDO\n )\n }\n ];\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.ICMS_CREDITO_PRESUMIDO +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.ICMS_CREDITO_PRESUMIDO,\n item\n });\n\n return item;\n }\n\n private montaCide(): any[] {\n if (this.menuItemCideTecnologia == false) {\n this.menuItemCideTecnologia = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.CIDE_TECNOLOGIA,\n label: 'erpx.tributos.enum_tipo_tributo_cide_tecnologia',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CIDE_TECNOLOGIA)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.CIDE_TECNOLOGIA,\n label: 'erpx.tributos.enum_tipo_tributo_cide_tecnologia',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CIDE_TECNOLOGIA)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.CIDE_TECNOLOGIA + '_label'}`, \n grupoTributo: EnumGrupoTributo.CIDE_TECNOLOGIA,\n item\n });\n return item;\n }\n }\n\n private montaIcms(): any[] {\n if (this.menuItemIcms == false) {\n this.menuItemIcms = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n ], EnumTipoTributo.ICMS)\n }, {\n name: EnumTipoTributo.ICMS_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_CREDITADO)\n }, {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_FUTURO)\n }, {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.PercentualSuspensaoParcial }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n }, {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.DIFAL)\n },\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n },\n /* DIFAL DEVOLVIDO */\n {\n name: EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInternaDestino },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO)\n },\n {\n name: EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS)\n }, {\n name: EnumTipoTributo.ICMS_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_CREDITADO)\n }, {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_FUTURO)\n }, {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.PercentualSuspensaoParcial }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n }, {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.DIFAL)\n },\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n ], EnumTipoTributo.ICMS)\n },\n {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_FUTURO)\n },\n {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.PercentualSuspensaoParcial }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n },\n {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.DIFAL)\n }, {\n name: EnumTipoTributo.ICMS_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInterna },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_UF_DESTINO)\n }, {\n name: EnumTipoTributo.FCP_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO)\n },\n\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.ICMS_EFETIVO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_efetivo',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_EFETIVO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS)\n }, {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_FUTURO)\n }, {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n }, {\n name: EnumTipoTributo.ICMS_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInterna },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_UF_DESTINO)\n }, {\n name: EnumTipoTributo.FCP_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO)\n },\n\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.ICMS)\n },\n {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n },\n {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DESONERADO)\n },\n {\n name: EnumTipoTributo.ICMS_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInterna },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_UF_DESTINO)\n },\n {\n name: EnumTipoTributo.FCP_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO)\n },\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.ICMS)\n },\n {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_SIMPLES)\n },\n {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n },\n {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DESONERADO)\n },\n {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.DIFAL)\n },\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ImpostoNaoRecuperado },\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInternaDestino },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO)\n },\n {\n name: EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO)\n },\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ICMS + '_label'}`, \n grupoTributo: EnumGrupoTributo.ICMS,\n item });\n return item;\n }\n }\n\n private montaRetencoes(): any[] {\n if (this.menuItemRetencoes == false) {\n this.menuItemRetencoes = true;\n const item: any[] = [];\n\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }, {\n name: EnumTipoTributo.INSS_PATRONAL,\n label: 'erpx.tributos.enum_tipo_tributo_inss_patronal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS_PATRONAL)\n }\n );\n break;\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }, {\n name: EnumTipoTributo.INSS_PATRONAL,\n label: 'erpx.tributos.enum_tipo_tributo_inss_patronal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS_PATRONAL)\n }\n );\n break;\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }\n );\n break;\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.PIS_RETIDO)\n },\n {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n },\n {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.CSLL)\n },\n {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.IRRF)\n },\n {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.PIS_RETIDO)\n },\n {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n },\n {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.CSLL)\n },\n {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.IRRF)\n },\n {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n },\n {\n name: EnumTipoTributo.INSS_PATRONAL,\n label: 'erpx.tributos.enum_tipo_tributo_inss_patronal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS_PATRONAL)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.RETENCOES + '_label'}`, \n grupoTriuto: EnumGrupoTributo.RETENCOES,\n item\n });\n return item;\n }\n }\n\n private montaRetencoesFunrural(): any[] {\n if (this.menuItemRetencoesFunrural == false) {\n this.menuItemRetencoesFunrural = true;\n const item: any[] = [];\n\n item.unshift(\n {\n name: EnumTipoTributo.FUNRURAL_INSS,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_inss',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.IndicativoAquisicao },\n { campo: EnumCampoTributo.CodigoArrecadacao },\n ],\n EnumTipoTributo.FUNRURAL_INSS\n )\n },\n {\n name: EnumTipoTributo.FUNRURAL_RAT,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_rat',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.IndicativoAquisicao },\n { campo: EnumCampoTributo.CodigoArrecadacao },\n ],\n EnumTipoTributo.FUNRURAL_RAT\n )\n },\n {\n name: EnumTipoTributo.FUNRURAL_SENAR,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_senar',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.IndicativoAquisicao },\n { campo: EnumCampoTributo.CodigoArrecadacao },\n ],\n EnumTipoTributo.FUNRURAL_SENAR\n )\n },\n {\n name: EnumTipoTributo.FUNRURAL_TOTAL,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_total',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Valor }\n ],\n EnumTipoTributo.FUNRURAL_TOTAL\n )\n }\n );\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.FUNRURAL + '_label'}`, \n grupoTributo: EnumGrupoTributo.FUNRURAL,\n item\n });\n\n const funruralTotal = item.find(item => item.name === \"FUNRURAL_TOTAL\");\n funruralTotal.formGroup.disable({ emitEvent: false });\n\n return item;\n }\n }\n\n private montaImportacoes(): any[] {\n if (this.menuItemImportacoes == false) {\n this.menuItemImportacoes = true;\n const item: any[] = [];\n\n switch (this.documento) {\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IMPOSTO_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_imposto_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IMPOSTO_IMPORTACAO)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IMPOSTO_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_imposto_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IMPOSTO_IMPORTACAO)\n },\n {\n name: EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO)\n },\n {\n name: EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO)\n }\n );\n break;\n default:\n item.unshift({\n name: EnumTipoTributo.IMPOSTO_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_imposto_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IMPOSTO_IMPORTACAO)\n }, {\n name: EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO)\n }, {\n name: EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO)\n }\n );\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IMPORTACOES + '_label'}`, \n grupoTributo: EnumGrupoTributo.IMPORTACOES,\n item\n });\n return item;\n }\n }\n\n private montaIss(): any[] {\n if (this.menuItemIss == false) {\n this.menuItemIss = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n case EnumTipoDocumento.PEDIDO_COMPRA:\n case EnumTipoDocumento.NF_SAIDA:\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.ISS,\n label: 'erpx.tributos.enum_tipo_tributo_iss',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS)\n }, {\n name: EnumTipoTributo.ISS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_iss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS_RETIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ISS,\n label: 'erpx.tributos.enum_tipo_tributo_iss',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS)\n },\n {\n name: EnumTipoTributo.ISS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_iss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS_RETIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ISS,\n label: 'erpx.tributos.enum_tipo_tributo_iss',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS)\n },\n {\n name: EnumTipoTributo.ISS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_iss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS_RETIDO)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ISS + '_label'}`, \n grupoTributo: EnumGrupoTributo.ISS,\n item });\n return item;\n }\n }\n\n private montaCBS() {\n if (this.menuItemCBS) return;\n\n this.menuItemCBS = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.CBS,\n label: 'erpx.tributos.enum_tipo_tributo_cbs',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo, grupo: EnumGrupoTributo.CBS },\n { campo: EnumCampoTributo.Aliquota, grupo: EnumGrupoTributo.CBS },\n { campo: EnumCampoTributo.ValorBruto, disabled: true },\n { campo: EnumCampoTributo.ReducaoAliquota },\n { campo: EnumCampoTributo.AliquotaEfetiva, disabled: true },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.ClassificacaoTributaria }\n ],\n EnumTipoTributo.CBS\n )\n },{\n name: EnumTipoTributo.CBS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cbs_diferido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true }\n ],\n EnumTipoTributo.CBS_DIFERIDO\n )\n }, {\n name: EnumTipoTributo.CBS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_cbs_desonerado',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CstDesoneracao},\n { campo: EnumCampoTributo.ClassificacaoTributariaDesoneracao },\n ],\n EnumTipoTributo.CBS_DESONERADO\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.CBS +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.CBS,\n item\n });\n\n return item;\n }\n\n private montaIBSEstadual() {\n if (this.menuItemIBSEstadual) return;\n\n this.menuItemIBSEstadual = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.IBS_ESTADUAL,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_estadual',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo, grupo: EnumGrupoTributo.IBS_ESTADUAL },\n { campo: EnumCampoTributo.Aliquota, grupo: EnumGrupoTributo.IBS_ESTADUAL },\n { campo: EnumCampoTributo.ValorBruto, disabled: true },\n { campo: EnumCampoTributo.ReducaoAliquota },\n { campo: EnumCampoTributo.AliquotaEfetiva, disabled: true },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.ClassificacaoTributaria }\n ],\n EnumTipoTributo.IBS_ESTADUAL\n )\n },{\n name: EnumTipoTributo.IBS_ESTADUAL_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_estadual_diferido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true }\n ],\n EnumTipoTributo.IBS_ESTADUAL_DIFERIDO\n )\n }, {\n name: EnumTipoTributo.IBS_ESTADUAL_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_estadual_desonerado',\n ...this.montaCampos(\n [{ campo: EnumCampoTributo.Valor, grupo: EnumGrupoTributo.IBS_ESTADUAL }],\n EnumTipoTributo.IBS_ESTADUAL_DESONERADO\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.IBS_ESTADUAL +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.IBS_ESTADUAL,\n item\n });\n\n return item;\n }\n\n private montaIBSMunicipal() {\n if (this.menuItemIBSMunicipal) return;\n\n this.menuItemIBSMunicipal = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.IBS_MUNICIPAL,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_municipal',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo, grupo: EnumGrupoTributo.IBS_MUNICIPAL },\n { campo: EnumCampoTributo.Aliquota, grupo: EnumGrupoTributo.IBS_MUNICIPAL },\n { campo: EnumCampoTributo.ValorBruto, disabled: true },\n { campo: EnumCampoTributo.ReducaoAliquota },\n { campo: EnumCampoTributo.AliquotaEfetiva, disabled: true },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.ClassificacaoTributaria }\n ],\n EnumTipoTributo.IBS_MUNICIPAL\n )\n }, {\n name: EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_municipal_diferido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true }\n ],\n EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO\n )\n }, {\n name: EnumTipoTributo.IBS_MUNICIPAL_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_municipal_desonerado',\n ...this.montaCampos(\n [{ campo: EnumCampoTributo.Valor, grupo: EnumGrupoTributo.IBS_MUNICIPAL }],\n EnumTipoTributo.IBS_MUNICIPAL_DESONERADO\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.IBS_MUNICIPAL +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.IBS_MUNICIPAL,\n item\n });\n\n return item;\n }\n\n private montaIS() {\n if (this.menuItemIS) return;\n\n this.menuItemIS = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.IS,\n label: 'erpx.tributos.enum_tipo_tributo_is',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n ],\n EnumTipoTributo.IS\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.IS +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.IS,\n item\n });\n\n return item;\n }\n\n private montaPis(): any[] {\n if (this.menuItemPis == false) {\n this.menuItemPis = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.PIS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS_RECUPERAR)\n }, {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.PIS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.PIS_RECUPERAR)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift({\n name: EnumTipoTributo.PIS,\n label: 'erpx.tributos.enum_tipo_tributo_pis',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS)\n }, {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.PIS,\n label: 'erpx.tributos.enum_tipo_tributo_pis',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS,\n label: 'erpx.tributos.enum_tipo_tributo_pis_faturamento',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n\n ], EnumTipoTributo.PIS)\n },\n {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n\n ], EnumTipoTributo.PIS_RECUPERAR)\n },\n {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.PIS + '_label'}`, \n grupoTributo: EnumGrupoTributo.PIS,\n item });\n return item;\n }\n }\n\n private montaCofins(): any[] {\n if (this.menuItemCofins == false) {\n this.menuItemCofins = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.COFINS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_RECUPERAR)\n }, {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.COFINS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.COFINS_RECUPERAR)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift({\n name: EnumTipoTributo.COFINS,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS)\n }, {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.COFINS,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.COFINS,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS)\n },\n {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.COFINS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_RECUPERAR)\n },\n {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.COFINS + '_label'}`, \n grupoTributo: EnumGrupoTributo.COFINS,\n item\n });\n return item;\n }\n\n }\n\n private montaIpi(): any[] {\n if (this.menuItemIpi == false) {\n this.menuItemIpi = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi }\n ], EnumTipoTributo.IPI)\n }, {\n name: EnumTipoTributo.IPI_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_CREDITADO)\n }, {\n name: EnumTipoTributo.IPI_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_DEVOLVIDO)\n }, {\n name: EnumTipoTributo.IPI_OUTRAS_DESPESAS,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_outras_despesas',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_OUTRAS_DESPESAS)\n }, {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI)\n }, {\n name: EnumTipoTributo.IPI_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_CREDITADO)\n }, {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n if (this.devolvido)\n item.unshift({\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n });\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi }\n ], EnumTipoTributo.IPI)\n }, {\n name: EnumTipoTributo.IPI_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.IPI)\n },\n {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n },\n {\n name: EnumTipoTributo.IPI_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ImpostoNaoRecuperado },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.IPI)\n },\n {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n },\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IPI + '_label'}`, \n grupoTributo: EnumGrupoTributo.IPI,\n item });\n return item;\n }\n }\n\n private setVariableRequired(tributo: EnumTipoTributo) {\n switch (tributo) {\n case EnumTipoTributo.CBS:\n return this.requiredItemCBS;\n case EnumTipoTributo.CBS_DIFERIDO:\n return this.requiredItemCBSDiferido;\n case EnumTipoTributo.CBS_DESONERADO:\n return this.requiredItemCBSDesonerado;\n case EnumTipoTributo.IBS_ESTADUAL:\n return this.requiredItemIBSEstadual;\n case EnumTipoTributo.IBS_ESTADUAL_DIFERIDO:\n return this.requiredItemIBSEstadualDiferido;\n case EnumTipoTributo.IBS_ESTADUAL_DESONERADO:\n return this.requiredItemIBSEstadualDesonerado;\n case EnumTipoTributo.IBS_MUNICIPAL:\n return this.requiredItemIBSMunicipal;\n case EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO:\n return this.requiredItemIBSMunicipalDiferido;\n case EnumTipoTributo.IBS_MUNICIPAL_DESONERADO:\n return this.requiredItemIBSMunicipalDesonerado;\n case EnumTipoTributo.IS:\n return this.requiredItemIS;\n case EnumTipoTributo.CIDE_TECNOLOGIA:\n return this.requiredItemCideTecnologia;\n case EnumTipoTributo.PIS_RECUPERAR:\n return this.requiredItemPisRecuperar;\n case EnumTipoTributo.PIS_DEVOLVIDO:\n return this.requiredItemPisDevolvido;\n case EnumTipoTributo.COFINS_RECUPERAR:\n return this.requiredItemCofinsRecuperar;\n case EnumTipoTributo.COFINS_DEVOLVIDO:\n return this.requiredItemCofinsDevolvido;\n case EnumTipoTributo.IPI:\n return this.requiredItemIpi;\n case EnumTipoTributo.IPI_CREDITADO:\n return this.requiredItemIpiCreditado;\n case EnumTipoTributo.IPI_DEVOLVIDO:\n return this.requiredItemIpiDevolvido;\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS:\n return this.requiredItemIpiOutrasDespesas;\n case EnumTipoTributo.IPI_PRESUMIDO:\n return this.requiredItemIpiPresumido;\n case EnumTipoTributo.ISS:\n return this.requiredItemIss;\n case EnumTipoTributo.ISS_RETIDO:\n return this.requiredItemIssRetido;\n case EnumTipoTributo.IMPOSTO_IMPORTACAO:\n return this.requiredItemImpostoImportacao;\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO:\n return this.requiredItemPisRecuperarImportacao;\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO:\n return this.requiredItemCofinsRecuperarImportacao;\n case EnumTipoTributo.PIS_RETIDO:\n return this.requiredItemPisRetido;\n case EnumTipoTributo.COFINS_RETIDO:\n return this.requiredItemCofinsRetido;\n case EnumTipoTributo.CSLL:\n return this.requiredItemCsllRetido;\n case EnumTipoTributo.IRRF:\n return this.requiredItemIrrfRetido;\n case EnumTipoTributo.INSS:\n return this.requiredItemInssRetido;\n case EnumTipoTributo.INSS_PATRONAL:\n return this.requiredItemInssPatronal;\n case EnumTipoTributo.ICMS_ST:\n return this.requiredItemIcmsSt;\n case EnumTipoTributo.FCP_ST:\n return this.requiredItemFcpSt;\n case EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST:\n return this.requiredItemIcmsCobradoAnteriormente;\n case EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST:\n return this.requiredItemFcpCobradoAnteriormente;\n case EnumTipoTributo.ICMS:\n return this.requiredItemIcms;\n case EnumTipoTributo.ICMS_CREDITADO:\n return this.requiredItemIcmsEfetivamenteCreditado;\n case EnumTipoTributo.FCP:\n return this.requiredItemFcp;\n case EnumTipoTributo.ICMS_DIFERIDO:\n return this.requiredItemIcmsDiferido;\n case EnumTipoTributo.ICMS_DESONERADO:\n return this.requiredItemIcmsDesonerado;\n case EnumTipoTributo.DIFAL:\n return this.requiredItemDiferencialAlicota;\n case EnumTipoTributo.PIS:\n return this.requiredItemPisFaturemento;\n case EnumTipoTributo.COFINS:\n return this.requiredItemCofinsFaturemento;\n case EnumTipoTributo.ICMS_UF_DESTINO:\n return this.requiredItemIcmsUfDestino;\n case EnumTipoTributo.FCP_UF_DESTINO:\n return this.requiredItemFcpUfDestino;\n case EnumTipoTributo.ICMS_ST:\n return this.requiredSituacaoTributaria;\n case EnumTipoTributo.ICMS_FUTURO:\n return this.requiredIcmsFuturo;\n case EnumTipoTributo.ICMS_SIMPLES:\n return this.requiredIcmsSimples;\n case EnumTipoTributo.ICMS_CREDITO_PRESUMIDO:\n return this.requiredIcmsCreditoPresumido;\n case EnumTipoTributo.DIFAL_DEVOLVIDO:\n return this.requiredDifalDevolvido;\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO:\n return this.requiredICMS_UF_Destino_Devolvido;\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO:\n return this.requiredFCP_UF_Destino_Devolvido;\n case EnumTipoTributo.PIS_FATURAMENTO:\n return this.requiredItemPisFaturamento;\n case EnumTipoTributo.IMPOSTO_NAO_RECUPERADO:\n return this.requiredImpostoNaoRecuperado;\n case EnumTipoTributo.BASE_CALCULO_CREDITO:\n return this.requiredbaseCalculoCredito;\n case EnumTipoTributo.PERCENTUAL_REDUCAO:\n return this.requiredPercentualReducao;\n case EnumTipoTributo.ICMS_ST_SOLIDARIO:\n return this.requiredIcmsStSolidario;\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT:\n return this.requiredIcmsStRetidoAnt;\n case EnumTipoTributo.FCP_ST_RETIDO_ANT:\n return this.requiredFcpStReditoAnt;\n default:\n break;\n }\n }\n\n private setRequired(tributo: EnumTipoTributo, value: boolean) {\n switch (tributo) {\n case EnumTipoTributo.CBS:\n this.requiredItemCBS = value;\n break;\n case EnumTipoTributo.IBS_ESTADUAL:\n this.requiredItemIBSEstadual = value;\n break;\n case EnumTipoTributo.IBS_MUNICIPAL:\n this.requiredItemIBSMunicipal = value;\n break;\n case EnumTipoTributo.IS:\n this.requiredItemIS = value;\n break;\n case EnumTipoTributo.CIDE_TECNOLOGIA: {\n this.requiredItemCideTecnologia = value;\n break;\n }\n case EnumTipoTributo.PIS_RECUPERAR: {\n this.requiredItemPisRecuperar = value;\n break;\n }\n case EnumTipoTributo.PIS_DEVOLVIDO: {\n this.requiredItemPisDevolvido = value;\n break;\n }\n case EnumTipoTributo.COFINS_RECUPERAR: {\n this.requiredItemCofinsRecuperar = value;\n break;\n }\n case EnumTipoTributo.COFINS_DEVOLVIDO: {\n this.requiredItemCofinsDevolvido = value;\n break;\n }\n case EnumTipoTributo.IPI: {\n this.requiredItemIpi = value;\n break;\n }\n case EnumTipoTributo.IPI_CREDITADO: {\n this.requiredItemIpiCreditado = value;\n break;\n }\n case EnumTipoTributo.IPI_DEVOLVIDO: {\n this.requiredItemIpiDevolvido = value;\n break;\n }\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS: {\n this.requiredItemIpiOutrasDespesas = value;\n break;\n }\n case EnumTipoTributo.IPI_PRESUMIDO: {\n this.requiredItemIpiPresumido = value;\n break;\n }\n case EnumTipoTributo.ISS: {\n this.requiredItemIss = value;\n break;\n }\n case EnumTipoTributo.ISS_RETIDO: {\n this.requiredItemIssRetido = value;\n break;\n }\n case EnumTipoTributo.IMPOSTO_IMPORTACAO: {\n this.requiredItemImpostoImportacao = value;\n break;\n }\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO: {\n this.requiredItemPisRecuperarImportacao = value;\n break;\n }\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO: {\n this.requiredItemCofinsRecuperarImportacao = value;\n break;\n }\n case EnumTipoTributo.PIS_RETIDO: {\n this.requiredItemPisRetido = value;\n break;\n }\n case EnumTipoTributo.COFINS_RETIDO: {\n this.requiredItemCofinsRetido = value;\n break;\n }\n case EnumTipoTributo.CSLL: {\n this.requiredItemCsllRetido = value;\n break;\n }\n case EnumTipoTributo.IRRF: {\n this.requiredItemIrrfRetido = value;\n break;\n }\n case EnumTipoTributo.INSS: {\n this.requiredItemInssRetido = value;\n break;\n }\n case EnumTipoTributo.INSS_PATRONAL: {\n this.requiredItemInssPatronal = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST: {\n this.requiredItemIcmsSt = value;\n break;\n }\n case EnumTipoTributo.FCP_ST: {\n this.requiredItemFcpSt = value;\n break;\n }\n case EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST: {\n this.requiredItemIcmsCobradoAnteriormente = value;\n break;\n }\n case EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST: {\n this.requiredItemFcpCobradoAnteriormente = value;\n break;\n }\n case EnumTipoTributo.ICMS: {\n this.requiredItemIcms = value;\n break;\n }\n case EnumTipoTributo.ICMS_CREDITADO: {\n this.requiredItemIcmsEfetivamenteCreditado = value;\n break;\n }\n case EnumTipoTributo.FCP: {\n this.requiredItemFcp = value;\n break;\n }\n case EnumTipoTributo.ICMS_DIFERIDO: {\n this.requiredItemIcmsDiferido = value;\n break;\n }\n case EnumTipoTributo.ICMS_DESONERADO: {\n this.requiredItemIcmsDesonerado = value;\n break;\n }\n case EnumTipoTributo.DIFAL: {\n this.requiredItemDiferencialAlicota = value;\n break;\n }\n case EnumTipoTributo.PIS: {\n this.requiredItemPisFaturemento = value;\n break;\n }\n case EnumTipoTributo.COFINS: {\n this.requiredItemCofinsFaturemento = value;\n break;\n }\n case EnumTipoTributo.FCP_UF_DESTINO: {\n this.requiredItemFcpUfDestino = value;\n break;\n }\n case EnumTipoTributo.ICMS_UF_DESTINO: {\n this.requiredItemIcmsUfDestino = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST: {\n this.requiredSituacaoTributaria = value;\n break;\n }\n case EnumTipoTributo.ICMS_FUTURO: {\n this.requiredIcmsFuturo = value;\n break;\n }\n case EnumTipoTributo.ICMS_SIMPLES: {\n this.requiredIcmsSimples = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST_SOLIDARIO: {\n this.requiredIcmsStSolidario = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT: {\n this.requiredIcmsStRetidoAnt = value;\n break;\n }\n case EnumTipoTributo.FCP_ST_RETIDO_ANT: {\n this.requiredFcpStReditoAnt = value;\n break;\n }\n case EnumTipoTributo.DIFAL_DEVOLVIDO: {\n this.requiredDifalDevolvido = value;\n break;\n }\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO: {\n this.requiredICMS_UF_Destino_Devolvido = value;\n break;\n }\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO: {\n this.requiredFCP_UF_Destino_Devolvido = value;\n break;\n }\n case EnumTipoTributo.PIS_FATURAMENTO: {\n this.requiredItemPisFaturamento = value;\n break;\n }\n\n default:\n break;\n }\n this.requiredSituacaoTributaria = value;\n }\n\n private impostoCalculado(imposto: EnumTipoTributo): boolean {\n return imposto != EnumTipoTributo.DIFAL &&\n imposto != EnumTipoTributo.ICMS_ST &&\n imposto != EnumTipoTributo.ICMS_ST_SOLIDARIO &&\n imposto != EnumTipoTributo.FCP_ST &&\n imposto != EnumTipoTributo.ICMS_ST_FUTURO &&\n imposto != EnumTipoTributo.DIFAL_DEVOLVIDO &&\n imposto != EnumTipoTributo.ICMS_DIFERIDO &&\n imposto != EnumTipoTributo.ICMS_UF_DESTINO &&\n imposto != EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST &&\n imposto != EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST &&\n imposto != EnumTipoTributo.FCP_ST_RETIDO_ANT &&\n imposto != EnumTipoTributo.FUNRURAL_TOTAL;\n }\n\n private roundImposto(number: any, decimals: any) {\n const x = Math.pow(10, Number(decimals) + 1);\n return (Number(number) + (1 / x)).toFixed(decimals);\n }\n\n private addPathCalculoValorRounded(it: any, baseCalulo: string, aliquota: string, valor: string){\n const baseValue = it.formGroup.get(baseCalulo).value ?? null;\n const aliquotaValue = it.formGroup.get(aliquota).value ?? null;\n\n it.formGroup.get(valor).patchValue(this.roundImposto((baseValue * aliquotaValue) / 100, 2));\n }\n\n private addMessageErrorBaseDiferente(impostos: string[], grupo: any, summaryMessage: string, detailMessage: string) {\n let controleFunrural = this.calcularImpostosTotal(impostos, grupo)\n\n if (controleFunrural.baseDiferente) {\n this.messageService.add({\n severity: \"warn\",\n summary: this.translate.instant(summaryMessage),\n detail: this.translate.instant(detailMessage),\n });\n }\n\n return controleFunrural;\n }\n\n private calcularValor(tributo: EnumTipoTributo) {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item\n .filter((it: any) => it.name == tributo)\n .map((it: any) => {\n let hasValue = false;\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if (it.formGroup.value[item] != undefined) {\n hasValue = true;\n return;\n }\n });\n\n if (hasValue && this.impostoCalculado(tributo)) {\n if([EnumGrupoTributo.CBS, EnumGrupoTributo.IBS_ESTADUAL, EnumGrupoTributo.IBS_MUNICIPAL].includes(grupo.grupoTributo)){\n \n if ([EnumTipoTributo.CBS, EnumTipoTributo.IBS_ESTADUAL, EnumTipoTributo.IBS_MUNICIPAL].includes(tributo)) {\n it.formGroup.get('aliquotaEfetiva').patchValue(\n this.roundImposto(\n new BigNumber(1)\n .minus(\n it.formGroup.get('reducaoAliquota').value\n ? new BigNumber(\n it.formGroup.get('reducaoAliquota').value\n ).dividedBy(100)\n : 0\n )\n .multipliedBy(it.formGroup.get('aliquota').value)\n .toNumber(),\n 2\n )\n );\n\n this.addPathCalculoValorRounded(it, 'baseCalculo', 'aliquota', 'valorBrutoImposto');\n }\n\n let impostos = [grupo.grupoTributo.toUpperCase(), `${grupo.grupoTributo.toUpperCase()}_DIFERIDO`];\n\n this.addMessageErrorBaseDiferente(impostos, grupo, \n `erpx.tributos.error_base_${grupo.grupoTributo}_diferente_summary`, \n `erpx.tributos.error_base_${grupo.grupoTributo}_diferente_detail`);\t\n\n this.addPathCalculoValorRounded(it, 'baseCalculo', tributo.search('_DIFERIDO')>0 ? 'aliquota' : 'aliquotaEfetiva', 'valor' );\n \n return;\n }\n\n if ((it.formGroup.controls.baseCalculo != undefined) &&\n (it.formGroup.controls.aliquota != undefined)) {\n\n if (tributo != EnumTipoTributo.ICMS_UF_DESTINO) {\n if ((tributo == EnumTipoTributo.ICMS) &&\n ((it.formGroup.controls.situacaoTributaria == undefined) ||\n (it.formGroup.controls.situacaoTributaria.value == undefined))) {\n\n const base = it.formGroup.controls.baseCalculo.value;\n const aliquota = it.formGroup.controls.aliquota.value;\n\n if ((base != undefined) && (aliquota != undefined))\n it.formGroup.controls.valor.patchValue(this.roundImposto(((base * aliquota) / 100), 2));\n\n } else if ((tributo == EnumTipoTributo.ICMS) &&\n (it.formGroup.controls.situacaoTributaria.value.codStr != '51')) {\n\n const base = it.formGroup.controls.baseCalculo.value;\n const aliquota = it.formGroup.controls.aliquota.value;\n\n if ((base != undefined) && (aliquota != undefined))\n it.formGroup.controls.valor.patchValue(this.roundImposto(((base * aliquota) / 100), 2));\n\n } else if (\n tributo === EnumTipoTributo.FUNRURAL_INSS ||\n tributo === EnumTipoTributo.FUNRURAL_RAT ||\n tributo === EnumTipoTributo.FUNRURAL_SENAR\n ) {\n const base = it.formGroup.get(\"baseCalculo\").value ?? null;\n const aliquota = it.formGroup.get(\"aliquota\").value ?? null;\n\n it.formGroup.controls.valor.patchValue(Math.floor((base * aliquota)) / 100);\n\n } else if (tributo != EnumTipoTributo.ICMS) {\n const base = it.formGroup.controls.baseCalculo.value;\n const aliquota = it.formGroup.controls.aliquota.value;\n\n if ((base != undefined) && (aliquota != undefined))\n it.formGroup.controls.valor.patchValue(this.roundImposto(((base * aliquota) / 100), 2));\n\n }\n }\n\n if (\n tributo === EnumTipoTributo.FUNRURAL_INSS ||\n tributo === EnumTipoTributo.FUNRURAL_RAT ||\n tributo === EnumTipoTributo.FUNRURAL_SENAR\n ) {\n let impostos = ['FUNRURAL_INSS', 'FUNRURAL_RAT', 'FUNRURAL_SENAR'];\n\n const controleFunrural = this.addMessageErrorBaseDiferente(impostos, grupo, \n \"erpx.tributos.error_base_funrural_diferente_summary\", \n \"erpx.tributos.error_base_funrural_diferente_detail\");\n \n const funruralTotal = grupo.item.find(\n (item) => item.name === \"FUNRURAL_TOTAL\"\n );\n\n funruralTotal.formGroup.setValue(\n {\n baseCalculo: controleFunrural.funBase,\n valor: controleFunrural.funValor,\n impostoManual: true\n },\n { emitEvent: false }\n );\n }\n\n }\n }\n });\n }\n );\n }\n }\n\n private verificarValorDesonerado(grupo){\n\n if(![EnumGrupoTributo.CBS, EnumGrupoTributo.IBS_ESTADUAL, EnumGrupoTributo.IBS_MUNICIPAL].includes(grupo)){\n return;\n }\n\n let impostos = [grupo.toUpperCase(), `${grupo.toUpperCase()}_DESONERADO`];\n\n const valorVsDesonerado = this.grupos.filter(g => g.grupoTributo === grupo)\n .reduce((acc, grupo) => {\n grupo.item.filter(i => impostos.includes(i.name))\n .forEach(item => {\n const isDesonerado = item.name.search('DESONERADO') > 0;\n\n if (item.formGroup.controls?.valorBrutoImposto?.value != undefined && !isDesonerado) {\n acc.valorBruto = item.formGroup.controls.valorBrutoImposto.value;\n }\n\n if (isDesonerado && item.formGroup.value?.valor != undefined) {\n acc.valorDesonerado = item.formGroup.value.valor;\n }\n });\n return acc;\n }, { valorBruto: null, valorDesonerado: null });\n\n const tolerance = 0.0001;\n if(valorVsDesonerado.valorBruto && valorVsDesonerado.valorDesonerado && \n Math.abs(valorVsDesonerado.valorBruto - valorVsDesonerado.valorDesonerado) > tolerance){\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant('erpx.tributos.error_valor_desonerado_invalido_summary'),\n detail: this.translate.instant('erpx.tributos.error_valor_desonerado_detail')\n });\n }\n }\n\n private calcularImpostosTotal(impostos: any, grupo) {\n let valores = {\n funBase: 0,\n funValor: 0,\n baseDiferente: false,\n };\n\n for (let index = 0; index < impostos.length; index++) {\n const imposto = grupo.item.find(item => item.name === impostos[index]);\n\n if (imposto.formGroup.value.baseCalculo != undefined) {\n if (valores.funBase > 0 && valores.funBase != imposto.formGroup.value.baseCalculo) {\n valores.baseDiferente = true;\n }\n\n valores.funBase = imposto.formGroup.value.baseCalculo > valores.funBase ? imposto.formGroup.value.baseCalculo : valores.funBase;\n }\n\n if (imposto.formGroup.value.valor != undefined) {\n valores.funValor = Number(this.roundImposto(Number(valores.funValor) + Number(imposto.formGroup.value.valor), 2));\n }\n }\n\n return valores;\n }\n\n private montaCampos(campos: CampoTributo[], tributo: EnumTipoTributo) {\n const retorno: any = {};\n const formField: FormField[] = [];\n let formGroup: any = {};\n let movimento = '';\n\n if (this.documento == EnumTipoDocumento.NF_ENTRADA ||\n this.documento == EnumTipoDocumento.PEDIDO_COMPRA ||\n this.documento == EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA)\n movimento = 'VENTRADA';\n else\n movimento = 'VSAIDA';\n\n campos.map(it => {\n\n if (it.campo == EnumCampoTributo.BaseCalculo) {\n formGroup = {\n ...formGroup,\n baseCalculo: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'BaseCalculo',\n name: 'baseCalculo',\n label: this.translate.instant('erpx.tributos.fields_base_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n this.verificarValorDesonerado(it.grupo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.Aliquota) {\n formGroup = {\n ...formGroup,\n aliquota: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(999.9999)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'Aliquota',\n name: 'aliquota',\n label: this.getLabelAliquota(tributo),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.verificarValorDesonerado(it.grupo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo === EnumCampoTributo.ReducaoAliquota) {\n formGroup = {\n ...formGroup,\n reducaoAliquota: [\n {\n value: null,\n disabled: false\n }, Validators.compose([Validators.max(100)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ReducaoAliquota',\n name: 'reducaoAliquota',\n label: this.translate.instant('erpx.tributos.fields_reducao_aliquota_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n }),\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.AliquotaEfetiva) {\n formGroup = {\n ...formGroup,\n aliquotaEfetiva: [\n {\n value: null,\n disabled: it.disabled\n }, Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'AliquotaEfetiva',\n name: 'aliquotaEfetiva',\n label: this.translate.instant('erpx.tributos.fields_aliquota_efetiva_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => false\n })\n );\n } else if (it.campo == EnumCampoTributo.AliquotaInterna) {\n formGroup = {\n ...formGroup,\n aliquotaInterna: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(999.9999)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'AliquotaInterna',\n name: 'aliquotaInterna',\n label: this.translate.instant('erpx.tributos.fields_aliquota_interna_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n // this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.AliquotaInternaDestino) {\n formGroup = {\n ...formGroup,\n aliquotaInternaDestino: [\n {\n value: undefined, disabled: false\n }, Validators.compose([Validators.max(999.9999)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'AliquotaInternaDestino',\n name: 'aliquotaInternaDestino',\n label: this.translate.instant('erpx.tributos.fields_aliquota_interna_destino_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.Valor) {\n formGroup = {\n ...formGroup,\n valor: [\n {\n value: undefined,\n disabled: it.disabled\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'Valor',\n name: 'valor',\n label: this.translate.instant('erpx.tributos.fields_valor_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n this.verificarValorDesonerado(it.grupo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator'),\n max: this.translate.instant('erpx.tributos.fields_max_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorBruto) {\n formGroup = {\n ...formGroup,\n valorBrutoImposto: [\n {\n value: undefined,\n disabled: it.disabled\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorBrutoImposto',\n name: 'valorBrutoImposto',\n label: this.translate.instant('erpx.tributos.fields_valor_bruto_imposto_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator'),\n max: this.translate.instant('erpx.tributos.fields_max_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorIsentas) {\n formGroup = {\n ...formGroup,\n valorIsentas: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorIsentas',\n name: 'valorIsentas',\n label: this.translate.instant('erpx.tributos.fields_valor_isentas_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorOutras) {\n formGroup = {\n ...formGroup,\n valorOutras: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorOutras',\n name: 'valorOutras',\n label: this.translate.instant('erpx.tributos.fields_valor_outras_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.SituacaoTributaria) {\n formGroup = { ...formGroup, situacaoTributaria: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n let searchGridFields!: FormField[];\n if (this.documento === EnumTipoDocumento.NF_SAIDA_CONTROLADORIA) {\n searchGridFields = [\n {\n name: 'codStr',\n type: FieldType.String\n }, {\n name: 'desStr',\n type: FieldType.String\n },\n {\n name: 'tipImp',\n type: FieldType.Enum,\n options: [\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_pis_cofins'),\n value: EnumTipImpCst.PIS_COFINS\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_ipi'),\n value: EnumTipImpCst.IPI\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_icms'),\n value: EnumTipImpCst.ICMS\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_iss'),\n value: EnumTipImpCst.ISS\n }\n ]\n },\n {\n name: 'tipOpe',\n type: FieldType.Enum,\n options: [\n {\n label: this.translate.instant('erpx.tributos.enum.tip_ope_v_saida'),\n value: EnumTipOpe.VSAIDA\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_ope_v_entrada'),\n value: EnumTipOpe.VENTRADA\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_ope_v_ambos'),\n value: EnumTipOpe.VAMBOS\n }\n ]\n }\n ];\n }\n\n formField.push(\n new FormField({\n ...this.e027StrLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n searchGridFields,\n formGroup: 'situacaoTributaria',\n defaultFilter: [{ field: 'excluido', operator: EnumLogicalOperator.Eq, values: ['false'] },\n { field: 'tipImp', operator: EnumLogicalOperator.Eq, values: [this.filterByImposto(tributo)] },\n { field: 'tipOpe', operator: EnumLogicalOperator.Eq, values: [movimento, 'VAMBOS'] },\n { field: 'situacao', operator: EnumLogicalOperator.Eq, values: ['VATIVO'] }]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + 'SituacaoTributaria',\n label: this.translate.instant('erpx.tributos.fields_situacao_tributaria_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n required: () => this.setVariableRequired(tributo)\n }),\n\n );\n }else if (it.campo == EnumCampoTributo.ClassificacaoTributaria) {\n formGroup = { ...formGroup, classificacaoTributaria: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n ...this.classificacaoTributariaLookup.mountOptions({\n multiple: false,\n prefix: \"erpx_cpl_imp.impostos\",\n entity: 'classificacaoTributaria',\n formGroup: 'classificacaoTributaria',\n defaultFilter: [{ field: 'situacao', operator: EnumLogicalOperator.Eq, values: ['ATIVO'] }]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + 'ClassificacaoTributaria',\n label: this.translate.instant('erpx.tributos.fields_classificacao_tributaria_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n required: () => this.setVariableRequired(tributo)\n }),\n\n );\n } else if (it.campo == EnumCampoTributo.EnquadramentoIpi) {\n formGroup = { ...formGroup, enquadramentoIpi: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n ...this.e027eqiLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n entity: 'e027eqi',\n formGroup: 'enquadramentoIpi',\n defaultFilter: [{ field: 'situacao', operator: EnumLogicalOperator.Eq, values: ['VATIVO'] },\n { field: 'excluido', operator: EnumLogicalOperator.Eq, values: ['false'] },\n ]\n }),\n id: tributo + 'EnquadramentoIpi',\n label: this.translate.instant('erpx.tributos.fields_enquadramento_ipi_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.PercentualReducao) {\n formGroup = {\n ...formGroup,\n percentualReducao: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(100)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualReducao',\n name: 'percentualReducao',\n label: this.translate.instant('erpx.tributos.fields_percentual_reducao_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.PercentualMargemValorAdicionado) {\n formGroup = {\n ...formGroup,\n percentualMargemValorAdicionado: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(1000)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualMargemValorAdicionado',\n name: 'percentualMargemValorAdicionado',\n label: this.translate.instant('erpx.tributos.fields_percentual_mva_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 1000 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.MotivoDesoneracaoIcms) {\n formGroup = { ...formGroup, desoneracaoIcms: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'MotivoDesoneracaoIcms',\n name: 'desoneracaoIcms',\n label: this.translate.instant('erpx.tributos.fields_desoneracao_icms_label'),\n type: FieldType.Enum,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n options: [\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_0'), value: EnumMotDes.V0 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_1'), value: EnumMotDes.V1 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_2'), value: EnumMotDes.V2 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_3'), value: EnumMotDes.V3 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_4'), value: EnumMotDes.V4 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_5'), value: EnumMotDes.V5 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_6'), value: EnumMotDes.V6 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_7'), value: EnumMotDes.V7 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_8'), value: EnumMotDes.V8 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_9'), value: EnumMotDes.V9 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_10'), value: EnumMotDes.V10 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_11'), value: EnumMotDes.V11 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_12'), value: EnumMotDes.V12 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_16'), value: EnumMotDes.V16 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_90'), value: EnumMotDes.V90 },\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_desoneracao_icms_placeholder'),\n showClear: true,\n multiple: false,\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n }),\n );\n } else if (it.campo == EnumCampoTributo.Origem) {\n formGroup = { ...formGroup, origem: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'Origem',\n name: 'origem',\n type: FieldType.Enum,\n options: [\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_0'), value: EnumOriMer.V0 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_1'), value: EnumOriMer.V1 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_2'), value: EnumOriMer.V2 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_3'), value: EnumOriMer.V3 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_4'), value: EnumOriMer.V4 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_5'), value: EnumOriMer.V5 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_6'), value: EnumOriMer.V6 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_7'), value: EnumOriMer.V7 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_8'), value: EnumOriMer.V8 },\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_origem_icms_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_origem_icms_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n }),\n );\n } else if (it.campo == EnumCampoTributo.PercentualDiferimento) {\n formGroup = { ...formGroup, aliquotaDiferimento: [{ value: undefined, disabled: false }, Validators.compose([Validators.max(100)])] };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualDiferimento',\n name: 'aliquotaDiferimento',\n label: this.translate.instant('erpx.tributos.fields_percentual_diferimento_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.PercentualSuportadoConsumidorFinal) {\n formGroup = {\n ...formGroup,\n percentualSuportadoConsumidorFinal: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(100)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualSuportadoConsumidorFinal',\n name: 'percentualSuportadoConsumidorFinal',\n label: this.translate.instant('erpx.tributos.fields_percentual_suportado_consumidor_final_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorRecolhidoPeloSubstituto) {\n formGroup = {\n ...formGroup,\n valorRecolhidoIcmsSt: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorRecolhidoPeloSubstituto',\n name: 'valorRecolhidoIcmsSt',\n label: this.translate.instant('erpx.tributos.fields_valor_recolhido_pelo_substituto_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorIcmsStRetido) {\n formGroup = {\n ...formGroup,\n valorIcmsStRetido: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(99999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorIcmsStRetido',\n name: 'valorIcmsStRetido',\n label: this.translate.instant('erpx.tributos.fields_valor_icms_st_retido_label'),\n type: FieldType.Money,\n precision: 13,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ModalidadeBC) {\n formGroup = { ...formGroup, modalidadeBC: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'ModalidadeBc',\n name: 'modalidadeBC',\n type: FieldType.Enum,\n options: [\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_0'), value: EnumModBc.V0 },\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_1'), value: EnumModBc.V1 },\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_2'), value: EnumModBc.V2 },\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_3'), value: EnumModBc.V3 }\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_modalidade_bc_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_modalidade_bc_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n }),\n );\n } else if (it.campo === EnumCampoTributo.NaturezaReceita) {\n formGroup = { ...formGroup, naturezaReceita: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n ...this.naturezaReceitaLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n formGroup: 'naturezaReceita',\n lookupSort: [\n { field: 'codigo', order: 1 }\n ],\n searchSort: [\n { field: 'codigo', order: 1 }\n ],\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + 'NaturezaReceita',\n label: this.translate.instant('erpx.tributos.fields_natureza_receita_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.Observacao) {\n formGroup = {\n ...formGroup, observacao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.maxLength(120)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'Observacao',\n name: 'observacao',\n label: this.translate.instant('erpx.tributos.fields_observacao_label'),\n type: FieldType.String,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n maxlength: this.translate.instant('erpx.tributos.fields_max_length_validator')\n }),\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.ValorDeducao) {\n formGroup = {\n ...formGroup, valorDeducao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.max(9999999999999.99)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'valorDeducao',\n name: 'valorDeducao',\n label: this.translate.instant('erpx.tributos.fields_valor_deducao_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.IndicativoAquisicao) {\n formGroup = {\n ...formGroup,\n indicativoAquisicao: [\n { value: null, disabled: false },\n Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'IndicativoAquisicao',\n name: 'indicativoAquisicao',\n label: this.translate.instant(\n 'erpx.tributos.fields_indicativo_aquisicao_label'\n ),\n showClear: true,\n type: FieldType.Enum,\n options: [\n {\n value: EnumFunruralIndicativoAquisicao.V1,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v1'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V2,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v2'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V3,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v3'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V4,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v4'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V5,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v5'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V6,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v6'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V7,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v7'\n )\n }\n ],\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onChange: () => {\n this.backValue();\n this.setValidators(tributo);\n }\n })\n );\n } else if (it.campo === EnumCampoTributo.CodigoArrecadacao) {\n formGroup = {\n ...formGroup, codigoArrecadacao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.maxLength(6)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'CodigoArrecadacao',\n name: 'codigoArrecadacao',\n label: this.translate.instant('erpx.tributos.fields_codigo_arrecadacao_label'),\n type: FieldType.String,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n maxlength: this.translate.instant('erpx.tributos.fields_max_length_validator')\n }),\n required: () => false,\n })\n );\n } else if (it.campo === EnumCampoTributo.CodigoTributacao) {\n formGroup = {\n ...formGroup, codigoTributacao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.maxLength(5)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'CodigoTributacao',\n name: 'codigoTributacao',\n label: this.translate.instant('erpx.tributos.fields_codigo_tributacao_label'),\n type: FieldType.String,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n maxlength: this.translate.instant('erpx.tributos.fields_max_length_validator')\n }),\n required: () => false,\n })\n );\n } else if (it.campo == EnumCampoTributo.ImpostoNaoRecuperado) {\n formGroup = {\n ...formGroup,\n ImpostoNaoRecuperado: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ImpostoNaoRecuperado',\n name: 'ImpostoNaoRecuperado',\n label: this.translate.instant('erpx.tributos.fields_imposto_nao_recuperado'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n }\n })\n );\n } else if (it.campo == EnumCampoTributo.baseCalculoCredito) {\n formGroup = { ...formGroup, baseCalculoCredito: [{ value: undefined, disabled: false }] };\n formField.push(\n new FormField({\n id: tributo + 'baseCalculoCredito',\n name: 'baseCalculoCredito',\n type: FieldType.Enum,\n options: [\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_1'), value: enumTipCredRecup.V1 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_2'), value: enumTipCredRecup.V2 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_3'), value: enumTipCredRecup.V3 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_4'), value: enumTipCredRecup.V4 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_5'), value: enumTipCredRecup.V5 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_6'), value: enumTipCredRecup.V6 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_7'), value: enumTipCredRecup.V7 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_8'), value: enumTipCredRecup.V8 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_9'), value: enumTipCredRecup.V9 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_10'), value: enumTipCredRecup.V10 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_11'), value: enumTipCredRecup.V11 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_12'), value: enumTipCredRecup.V12 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_13'), value: enumTipCredRecup.V13 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_14'), value: enumTipCredRecup.V14 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_15'), value: enumTipCredRecup.V15 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_16'), value: enumTipCredRecup.V16 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_17'), value: enumTipCredRecup.V17 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_18'), value: enumTipCredRecup.V18 },\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_base_calculo_credito_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_base_calculo_credito_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n required: false\n }),\n );\n } else if (it.campo === EnumCampoTributo.RegimeTributarioPisCofins) {\n formGroup = { ...formGroup, regimeTributarioPisCofins: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'regimeTributarioPisCofins',\n name: 'regimeTributarioPisCofins',\n type: FieldType.Enum,\n options: [\n {\n label: this.translate.instant('erpx.tributos.enum_reg_tribut_pis_cofins_cumulativo'),\n value: EnumRegimeTributarioPisCofins.CUMULATIVO\n },\n {\n label: this.translate.instant('erpx.tributos.enum_reg_tribut_pis_cofins_nao_cumulativo'),\n value: EnumRegimeTributarioPisCofins.NAO_CUMULATIVO\n }\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_regime_tributario_pis_cofins_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_regime_tributario_pis_cofins_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n required: () => false\n }),\n );\n } else if (it.campo == EnumCampoTributo.PercentualSuspensaoParcial) {\n formGroup = { ...formGroup, percentualSuspensaoParcial: [{ value: null, disabled: false }, Validators.compose([Validators.max(100)])] };\n\n formField.push(\n new FormField({\n id: tributo + 'percentualSuspensaoParcial',\n name: 'percentualSuspensaoParcial',\n label: this.translate.instant('erpx.tributos.fields_percentual_suspensao_parcial_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 })\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo === EnumCampoTributo.BeneficioFiscal) {\n formGroup = {\n ...formGroup,\n beneficioFiscal: [\n { value: null, disabled: false },\n Validators.compose([Validators.required])\n ]\n };\n\n formField.push(\n new FormField({\n ...this.beneficioFiscalLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n formGroup: 'beneficioFiscal',\n defaultFilter: [{ field: 'excluido', operator: EnumLogicalOperator.Eq, values: ['false'] }]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n required: () => true,\n label: this.translate.instant('erpx.tributos.fields_beneficio_fiscal_label'),\n size: { sm: 12, md: 4, lg: 4, xl: 3 }\n }),\n\n );\n } else if (it.campo === EnumCampoTributo.CstDesoneracao) {\n formGroup = {\n ...formGroup,\n cstDesoneracao: [\n { value: null, disabled: false },\n Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n ...this.e027StrLookup.mountOptions({\n prefix: \"erpx_cpl_imp.impostos\",\n defaultFilter: [\n {\n field: \"tipOpe\",\n operator: EnumLogicalOperator.Eq,\n values: [\n EnumTipOpe.VENTRADA,\n EnumTipOpe.VSAIDA,\n EnumTipOpe.VAMBOS\n ],\n },\n {\n field: \"situacao\",\n operator: EnumLogicalOperator.Eq,\n values: [EnumSituacao.VATIVO],\n },\n {\n field: \"excluido\",\n operator: EnumLogicalOperator.Eq,\n values: [\"false\"],\n },\n {\n field: \"tipImp\",\n operator: EnumLogicalOperator.Eq,\n values: [EnumTipImpCst.CBS_IBS],\n },\n ],\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + \"cstDesoneracao\",\n name: \"cstDesoneracao\",\n infoSign: this.translate.instant(\n \"erpx_cpl_imp.impostos.cst_desoneracao_info_sign\"\n ),\n required: () => false,\n label: this.translate.instant(\"erpx_cpl_imp.impostos.cst_desoneracao\"),\n multiple: false,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n }),\n );\n } else if (it.campo === EnumCampoTributo.ClassificacaoTributariaDesoneracao) {\n formGroup = {\n ...formGroup,\n classificacaoTributariaDesoneracao: [\n { value: null, disabled: false },\n Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n ...this.classificacaoTributariaLookup.mountOptions({\n prefix: \"erpx_cpl_imp.impostos\",\n defaultFilter: [\n {\n field: \"situacao\",\n operator: EnumLogicalOperator.Eq,\n values: [EnumSituacaoClassificacaoTributaria.ATIVO],\n }\n ],\n lookupSort: [\n {\n field: 'codigo',\n order: 1\n }\n ],\n searchSort: [\n {\n field: 'codigo',\n order: 1\n }\n ]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + \"classificacaoTributariaDesoneracao\",\n name: \"classificacaoTributariaDesoneracao\",\n infoSign: this.translate.instant(\n \"erpx_cpl_imp.impostos.classificacao_tributaria_desoneracao_info_sign\"\n ),\n label: this.translate.instant(\"erpx_cpl_imp.impostos.classificacao_tributaria_desoneracao\"),\n required: () => false,\n multiple: false,\n size: { sm: 12, md: 6, lg: 4, xl: 3 },\n }),\n );\n }\n });\n\n if (this.sugestoes) {\n this.sugestoes\n .filter(sugestao => sugestao.tipoTributo === tributo)\n .forEach(sugestao => {\n Object\n .entries(sugestao)\n .filter(atributos => atributos[0] !== 'tipoTributo')\n .forEach(atributos => {\n formGroup[atributos[0]][0].value = atributos[1];\n });\n });\n }\n\n formGroup = { ...formGroup, impostoManual: [{ value: undefined, disabled: false }, Validators.compose([])] };\n retorno.formField = formField;\n retorno.formGroup = this.formBuilder.group({\n ...formGroup\n });\n\n return retorno;\n }\n\n private setSubs(item: Item) {\n Object\n .entries(item.formGroup.controls)\n .forEach(control => {\n const [controlName, controlObject] = control;\n if (controlName !== 'impostoManual' && !item.formGroup.controls.impostoManual.value) {\n const formField = item.formField.find(field => field.name === controlName);\n controlObject\n .valueChanges\n .pipe(\n switchMap(val => this.getFormControlSubscriptionValue(val, formField instanceof LookupField, `${item.name}_${formField.name}`)),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((val: LookupRequestValidator) => {\n if (!val.cancelSubscription) {\n item.formGroup.controls.impostoManual.patchValue(true);\n this.setImpostoManualGroup();\n }\n });\n }\n });\n }\n\n private getFormControlSubscriptionValue(fieldValue: any, isFieldLookup: boolean, fieldIdentifier: string): Observable<LookupRequestValidator> {\n if (isFieldLookup) {\n return this.lookupUtils.getValidatedRepeatedLookupValues(fieldValue, fieldIdentifier);\n }\n return of({\n cancelSubscription: false,\n value: fieldValue\n });\n }\n\n private storageValuesOnLookupValidator(item: Item): void {\n Object\n .entries(item.formGroup.controls)\n .forEach(control => {\n const [controlName, controlObject] = control;\n const formField = item.formField.find(field => field.name === controlName);\n if (formField) {\n this.getFormControlSubscriptionValue(controlObject.value, formField instanceof LookupField, `${item.name}_${formField.name}`);\n }\n });\n }\n\n private setImpostoManualGroup() {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos\n .filter((it: any) => (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ICMS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ICMS_ST + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.PIS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.COFINS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.RETENCOES + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.FUNRURAL + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ISS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.CIDE_TECNOLOGIA + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.CBS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IBS_ESTADUAL + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IBS_MUNICIPAL + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IPI + '_label'))\n .map(grupo => grupo.item.map(\n (item: any) => {\n if (item.formGroup.controls.impostoManual.value == true) {\n grupo.item.map(\n (it: any) => {\n it.formGroup.controls.impostoManual.patchValue(true);\n }\n );\n }\n })\n );\n }\n }\n\n private filterByImposto(imposto: EnumTipoTributo): string {\n if (imposto) {\n switch (imposto) {\n case EnumTipoTributo.PIS:\n return 'PIS_COFINS';\n case EnumTipoTributo.IPI:\n return 'IPI';\n case EnumTipoTributo.ICMS:\n return 'ICMS';\n case EnumTipoTributo.COFINS:\n return 'PIS_COFINS';\n default:\n return 'PIS_COFINS';\n }\n }\n }\n\n private getLabelAliquota(tributo: EnumTipoTributo) {\n if (tributo == EnumTipoTributo.ICMS_UF_DESTINO || tributo == EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO)\n return this.translate.instant('erpx.tributos.fields_aliquota_interestadual_label');\n\n return this.translate.instant('erpx.tributos.fields_aliquota_label');\n }\n\n public getTranslateButton(value: any) {\n let translate = '.button_memoria_calculo_empty_label';\n if (this.idsTaxesMemoriaCalculo.find((element: any) => { return element.tipoTributo == value && element.idParametro != undefined })) {\n translate = '.button_memoria_calculo_label';\n }\n\n return this.prefixLabel + translate;\n }\n\n isGroupInvalid(group: {\n grupo: string;\n item: {\n formField: FormField[];\n formGroup: FormGroup;\n label: string;\n name: string;\n }[];\n }): boolean {\n return group?.item?.some((item) => item?.formGroup?.invalid);\n }\n\n private getEnabledFeatures(): void {\n this.isLoading = true;\n\n this.featureToggleService\n .isEnabled({\n domain: 'erpx_cpl_imp',\n service: 'cadastros',\n name: 'featureReformaTributaria'\n })\n .pipe(first(), finalize(() => this.isLoading = false))\n .subscribe({\n next: (featureReformaTributaria) => {\n this.featureReformaTributaria = featureReformaTributaria;\n }\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { ErpLookupsModule, LookupValidationUtils } from \"@senior-gestao-empresarial/angular-components\";\r\nimport { ButtonModule, DynamicFormModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\r\nimport { AccordionModule } from \"primeng/accordion\";\r\nimport { FocusService } from \"../focus/focus.service\";\r\nimport { ErpTributosComponent } from \"./erp-tributos.component\";\r\nimport { ErpTributosService } from \"./erp-tributos.service\";\r\n\r\n@NgModule({\r\n declarations: [ErpTributosComponent],\r\n imports: [CommonModule, TranslateModule, ButtonModule, AccordionModule, DynamicFormModule, ErpLookupsModule, LoadingStateModule],\r\n providers: [ErpTributosService, FocusService, LookupValidationUtils],\r\n exports: [ErpTributosComponent],\r\n})\r\nexport class ErpTributosModule {}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService, SortMeta } from 'primeng/api';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport class EntityService<T> {\n constructor(\n protected http: HttpClient,\n protected translateService: TranslateService,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected entityAction?: string\n ) {\n this.http = http;\n this.translateService = translateService;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\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) {\n params = params.append('displayfields', displayFields.join());\n }\n\n return params;\n }\n\n public defaultCatch(): any {\n return catchError((err: any) => {\n if (err) {\n if (err.status === 401) {\n const summary = this.translateService.instant('erpx_com_ven.pedido.error_unauthorized_title');\n const detail = this.translateService.instant('erpx_com_ven.pedido.error_unauthorized_description');\n\n this.messageService.add({\n severity: 'error',\n summary,\n detail,\n sticky: true\n });\n } else {\n const summary = err.status ? String(err.status) : 'Error';\n const detail =\n (err.error && err.error.message) || err.statusText || err.message || 'Error';\n\n this.messageService.add({\n severity: 'error',\n summary,\n detail,\n sticky: true\n });\n }\n }\n\n return throwError(err);\n });\n }\n\n public list(listParams: ListParams) {\n return this.http\n .get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) })\n .pipe(this.defaultCatch());\n }\n\n public get(id: any, displayFields?: string) {\n if (displayFields) {\n return this.http.get<T>(`${this.entityUrl}/${id}?displayfields=${displayFields}`).pipe(this.defaultCatch());\n }\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\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface TotalElements {\n totalElements: number;\n}\n\nexport class LookupForm {\n id?: string;\n label?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { MessageService } from 'primeng/api';\nimport { TranslateService } from '@ngx-translate/core';\nimport { QuantidadeDisponivelDemandaDto } from './quantidade-disponivel-demanda-dto';\nimport { EntityService } from '../entity-service';\n\n@Injectable()\nexport class QuantidadeDisponivelDemandaService extends EntityService<QuantidadeDisponivelDemandaDto> {\n constructor(protected http: HttpClient, protected translateService: TranslateService, protected messageService: MessageService) {\n super(\n http,\n translateService,\n messageService,\n `erpx_sup/demandas/entities/quantidadeDisponivelDemanda`,\n `erpx_sup/demandas/actions`\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PermissionsModule } from '@seniorsistemas/platform-components';\nimport { QuantidadeDisponivelDemandaService } from './quantidade-disponivel-demanda.service';\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: 'quantidadeDisponivelDemanda',\n actions: ['Visualizar', 'Incluir', 'Editar', 'Excluir'],\n uri: `res://senior.com.br/erpx_sup/demandas/entities/quantidadeDisponivelDemanda`,\n },\n ]),\n ],\n providers: [QuantidadeDisponivelDemandaService],\n declarations: [],\n exports: [],\n})\nexport class QuantidadeDisponivelDemandaModule {}\n","export enum EnumTipoDocumentoParametros {\r\n PedidoVenda = 'PedidoVenda',\r\n AnaliseReposicao = 'AnaliseReposicao',\r\n RequisicaoMateriais = 'RequisicaoMateriais',\r\n DemandaDependente = 'DemandaDependente',\r\n AcertoInventario = 'AcertoInventario',\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { catchError, take } from \"rxjs/operators\";\nimport { Observable, throwError } from \"rxjs\";\nimport { MessageService } from \"primeng/api\";\nimport { Injectable } from \"@angular/core\";\nimport { SortMeta } from \"primeng/api\";\n\nexport interface ObterNecessidadesInput {\n e070empId?: string;\n e070filId?: string;\n e012famId?: string[];\n itensId?: string[];\n tipo?: string;\n documentoId?: string;\n dataInicial?: string;\n dataFinal?: string;\n situacao?: string[];\n numeroDocumentoPai?: string[];\n codigoDemanda?: number;\n somenteUrgentes?: boolean;\n pageRequest?: {\n offset?: number;\n size?: number;\n orderyBy?: [\n {\n field: string;\n order: string;\n }\n ];\n };\n}\n\nexport interface ObterNecessidadesOutput {\n total: number;\n necessidades: {\n documento: {\n id: string;\n e070emp: {\n id: string;\n codigo: number;\n descricao: string;\n label: string;\n };\n e070fil: {\n id: string;\n codigo: number;\n descricao: string;\n label: string;\n };\n idExterno: string;\n numeroDocumento: string;\n tipoDocumento: string;\n numeroDocumentoPai: number;\n };\n filial: {\n id: string;\n codigo: number;\n descricao: string;\n label: string;\n };\n id: string;\n item: {\n id: string;\n codigo: string;\n descricao: string;\n label: string;\n tipoItem: string;\n unidadeMedida: {\n id: string;\n uniMed: string;\n desMed: string;\n qtdDec: number;\n familia: {\n id: string;\n codigo: string;\n descricao: string;\n label: string;\n };\n };\n quantidadeOriginal: number;\n quantidadePlanejada: number;\n quantidadeAtendida: number;\n dataEntregaPrevista: string;\n situacao: string;\n demanda: {\n id: string;\n codigo: number;\n empresa: string;\n filial: string;\n quantidade: number;\n dataEntregaPrevista: string;\n documento: string;\n situacao: string;\n realizarReserva: boolean;\n };\n };\n }[];\n}\nexport interface GetUrlInput {\n identifiers: {\n domainName: string;\n serviceName: string;\n appName: string;\n route: string;\n }[];\n}\n\nexport interface GetUrlOutput {\n frontends: {\n appName: string;\n currentVersion: string;\n domainName: string;\n embeddedURL: string;\n route: string;\n serviceName: string;\n url: string;\n }[];\n}\n\n@Injectable()\nexport class ErpLoteSeriesService {\n constructor(protected http: HttpClient, protected messageService: MessageService) {}\n\n private foundationEntitiesUrl = \"erpx_sup/foundation/entities\";\n private supEntitiesUrl = \"erpx_sup/estoque/entities\";\n private queryUrl = \"erpx_sup/estoque/queries\";\n\n public getProductFamily(productID: string) {\n return this.http.get(`${this.foundationEntitiesUrl}/e075der/${productID}`).pipe(this.defaultCatch());\n }\n\n public getProductFamilySupplyInfo(familyID: string) {\n const filter = `id eq '${familyID}'`;\n return this.http\n .get(`${this.foundationEntitiesUrl}/e012famSupGer`, { params: { filter, displayfields: \"ctrVld\" } })\n .pipe(this.defaultCatch());\n }\n\n public listBatch(params: any) {\n return this.http.post(`${this.queryUrl}/consultarSaldoPorLote`, params).pipe(this.defaultCatch());\n }\n\n public listSeries(params: any) {\n return this.http.post(`${this.queryUrl}/consultarSaldoPorSerie`, params).pipe(this.defaultCatch());\n }\n\n public getBatch(listParams: ListParams) {\n return this.http.get(`${this.supEntitiesUrl}/e200lot`, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public getSerie(listParams: ListParams) {\n return this.http.get(`${this.supEntitiesUrl}/e200ser`, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public consultarSaldoEstoque(balancePayload: any) {\n return this.http.post(`${this.queryUrl}/consultarSaldoEstoque`, balancePayload);\n }\n\n public defaultCatch(): any {\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 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) {\n params = params.append(\"displayfields\", displayFields.join());\n }\n\n return params;\n }\n\n public getUrl(getUrlInput: GetUrlInput) {\n const url = `platform/frontend_updater/queries/getFrontend`;\n return this.http.post<any>(url, getUrlInput).pipe(this.defaultCatch());\n }\n\n public obterNecessidades(obterNecessidadesInput: ObterNecessidadesInput): Observable<ObterNecessidadesOutput> {\n const url = `erpx_sup/demandas/queries/obterNecessidades`;\n return this.http.post(url, obterNecessidadesInput).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","import { Component, Input, OnChanges } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { E210DxpLookup, EnumLogicalOperator } from '@senior-gestao-empresarial/angular-components';\nimport { EnumColumnFieldType, FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment from 'moment';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { first, map, takeUntil } from 'rxjs/operators';\nimport {\n QuantidadeDisponivelDemanda\n} from '../../core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda';\nimport {\n QuantidadeDisponivelDemandaService\n} from '../../core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service';\nimport { EnumTipoDocumentoParametros } from '../../core/enums/enum-tipo-documento-parametros';\nimport { ErpLoteSeriesService, GetUrlInput, GetUrlOutput, ListParams } from './erp-lote-serie.service';\nimport { isNotEmpty, isEmpty } from \"../utils/utils\";\nimport { compare } from \"@seniorsistemas/platform-components/modules/advanced-filter/utils/comparator\";\n\n@Component({\n selector: 'erp-lote-serie',\n templateUrl: './erp-lote-serie.component.html'\n})\n\nexport class ErpLoteSerieComponent implements OnChanges {\n\n public readonly EnumTipoMovimentacao = EnumTipoMovimentacao;\n\n public gridData: any = [];\n public selection: any = [];\n public gridColumns: any[];\n public localeConfig: any = {};\n public locale: any = {};\n\n @Input() loteSerieParams: LoteSerieParams;\n @Input() blockedFields = false;\n @Input() showHeader = true;\n @Input() validateInvalidChars = false;\n\n private e200lotLookupSuggestionsObservable = new Subject<any>();\n private e200lotlookupSearchObservable = new Subject<any>();\n private e200serLookupSuggestionsObservable = new Subject<any>();\n private e200serlookupSearchObservable = new Subject<any>();\n private ngUnsubscribe = new Subject<any>();\n\n private quantidadeDisponivelDemandaLookupSuggestionsObservable = new Subject<QuantidadeDisponivelDemanda>();\n private quantidadeDisponivelDemandalookupSearchObservable = new Subject<QuantidadeDisponivelDemanda>();\n\n public formGroupBatchOrSeries: FormGroup;\n public batchOrSeriesFields: any[];\n public loteLookupDisplayFields = [ 'e200lot.codLote' ];\n public serieLookupDisplayFields = [ 'e200ser.numSep' ];\n\n public titleLoteOrSerie: string;\n public titleGridLoteOrSerie: string;\n public isSerie = false;\n public qtdAdistribuir = 0;\n public qtdDistribuida = 0;\n public qtdRestante = 0;\n public maxLength = 50;\n public obrigaValidade = false;\n public isSaida = false;\n public disableDataValidade = false;\n public prefix = 'erpx.lote_serie.';\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private e210DxpLookup: E210DxpLookup,\n private formBuilder: FormBuilder,\n private messageService: MessageService,\n private batchSeriesService: ErpLoteSeriesService,\n private quantidadeDisponivelDemandaService: QuantidadeDisponivelDemandaService\n ) {\n }\n\n ngOnChanges() {\n if (this.loteSerieParams) {\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n this.formGroupBatchOrSeries = this.getFormGroupDados();\n this.validaDados();\n this.gridColumns = this.getGridColumns();\n }\n\n if (this.blockedFields == true)\n this.formGroupBatchOrSeries.disable();\n\n this.formGroupBatchOrSeries.controls.lote.valueChanges.subscribe(value => {\n if (value) {\n if (this.validateInvalidChars && /\\t|\\r|\\n/g.exec(value)) {\n this.formGroupBatchOrSeries.controls.lote.setErrors({ 'existsInvalidChar': true });\n return;\n }\n }\n });\n\n this.formGroupBatchOrSeries.controls.serie.valueChanges.subscribe(value => {\n if (value) {\n if (this.validateInvalidChars && /\\t|\\r|\\n/g.exec(value)) {\n this.formGroupBatchOrSeries.controls.serie.setErrors({ 'existsInvalidChar': true });\n return;\n }\n }\n });\n }\n\n private validaDados() {\n\n this.processFamilySupplyInfo(this.loteSerieParams.dadosProduto.e012fam);\n\n if (this.loteSerieParams.tipoControleProduto == 'Serie') {\n this.titleLoteOrSerie = this.translate.instant(`${ this.prefix }serie_title`);\n this.titleGridLoteOrSerie = this.translate.instant(`${ this.prefix }serie_title_grid`);\n this.isSerie = true;\n\n } else {\n this.titleLoteOrSerie = this.translate.instant(`${ this.prefix }lote_title`);\n this.titleGridLoteOrSerie = this.translate.instant(`${ this.prefix }lote_title_grid`);\n this.isSerie = false;\n }\n\n if (this.loteSerieParams.tipoMovimentacao == 'Entrada') {\n this.batchOrSeriesFields = this.getFieldsEntrada();\n\n if (this.isSerie) {\n this.formGroupBatchOrSeries.controls.serie.clearValidators();\n this.formGroupBatchOrSeries.controls.serie.setValidators([\n Validators.required, Validators.maxLength(50)\n ]);\n this.formGroupBatchOrSeries.controls.serie.updateValueAndValidity({ emitEvent: false });\n\n } else {\n this.formGroupBatchOrSeries.controls.lote.clearValidators();\n this.formGroupBatchOrSeries.controls.quantidade.clearValidators();\n\n this.formGroupBatchOrSeries.controls.lote.setValidators([\n Validators.required, Validators.maxLength(50)\n ]);\n\n this.formGroupBatchOrSeries.controls.quantidade.setValidators([\n Validators.required\n ]);\n\n this.formGroupBatchOrSeries.controls.lote.updateValueAndValidity({ emitEvent: false });\n this.formGroupBatchOrSeries.controls.quantidade.updateValueAndValidity({ emitEvent: false });\n }\n\n this.formGroupBatchOrSeries.controls.bulkVisible.valueChanges.subscribe(value => {\n if (value) {\n this.formGroupBatchOrSeries.controls.batchSerieBulk.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.batchSerieBulk.updateValueAndValidity({ emitEvent: false });\n return;\n }\n this.formGroupBatchOrSeries.controls.batchSerieBulk.clearValidators();\n this.formGroupBatchOrSeries.controls.batchSerieBulk.updateValueAndValidity({ emitEvent: false });\n });\n\n } else {\n this.isSaida = true;\n\n if (this.isSerie) {\n this.formGroupBatchOrSeries.controls.serie.clearValidators();\n this.formGroupBatchOrSeries.controls.serie.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.serie.updateValueAndValidity({ emitEvent: false });\n } else {\n this.formGroupBatchOrSeries.controls.lote.clearValidators();\n this.formGroupBatchOrSeries.controls.lote.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.lote.updateValueAndValidity({ emitEvent: false });\n this.formGroupBatchOrSeries.controls.quantidade.clearValidators();\n this.formGroupBatchOrSeries.controls.quantidade.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.quantidade.updateValueAndValidity({ emitEvent: false });\n }\n this.batchOrSeriesFields = this.getFieldsSaida();\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n }\n\n this.formGroupBatchOrSeries.controls.dataFabricacao.valueChanges.subscribe(val => {\n if (val) {\n this.formGroupBatchOrSeries.controls.dataValidade.clearValidators();\n this.formGroupBatchOrSeries.controls.dataValidade.setValidators([]);\n this.formGroupBatchOrSeries.controls.dataValidade.updateValueAndValidity({ emitEvent: false });\n } else {\n this.formGroupBatchOrSeries.controls.dataValidade.clearValidators();\n this.formGroupBatchOrSeries.controls.dataValidade.updateValueAndValidity({ emitEvent: false });\n }\n\n });\n\n this.qtdDistribuida = 0;\n this.qtdAdistribuir = this.loteSerieParams.quantidadeDistribuir;\n\n if (this.loteSerieParams.lotesOrSeries) {\n this.gridData = this.loteSerieParams.lotesOrSeries;\n this.qtdDistribuida = this.getQuantidadeDistribuida();\n this.qtdRestante = this.qtdAdistribuir - this.qtdDistribuida;\n } else {\n this.qtdRestante = this.qtdAdistribuir;\n }\n }\n\n private getFormGroupDados() {\n const formGroup = this.formBuilder.group({\n deposito: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n lote: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n dataValidade: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n dataFabricacao: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n serie: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n saldo: [ { value: undefined, disabled: true }, Validators.compose([]) ],\n quantidade: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n batchSerieBulk: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n bulkVisible: [ { value: false, disabled: false }, Validators.compose([]) ],\n });\n\n return formGroup;\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 getFieldsEntrada() {\n\n let dadosFieldsEntrada: any[] = [];\n\n if (!this.loteSerieParams.dadosProduto.e205dep) {\n dadosFieldsEntrada = [\n new FormField({\n ...this.e210DxpLookup.mountOptions({\n multiple: false,\n domain: 'erpx_sup',\n service: 'estoque',\n formGroup: 'deposito',\n searchFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n }\n ],\n\n searchGridFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n },\n { name: 'e205dep.e070fil.nomFil', type: FieldType.String }\n ],\n\n defaultFilter: [ { field: 'excluido', operator: EnumLogicalOperator.Eq, values: [ 'false' ] },\n {\n field: 'e070emp.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e070emp ]\n },\n { field: 'sitEst', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n { field: 'e205dep.sitDep', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n {\n field: 'e075der.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e075der ]\n } ]\n\n }),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n })\n ];\n }\n\n\n dadosFieldsEntrada.push(\n new FormField({\n name: 'bulkVisible',\n label: this.translate.instant(`${ this.prefix }bulk_visible`),\n size: { sm: 12, md: 4, lg: 4, xl: 12 },\n type: FieldType.Boolean,\n representedBy: \"switch\"\n }),\n new FormField({\n name: 'batchSerieBulk',\n label: this.translate.instant(`${ this.prefix }batch_serie_bulk`),\n size: { sm: 12, md: 4, lg: 4, xl: 6 },\n type: FieldType.Text,\n rows: 5,\n onBlur: (event: any) => this.onBlurValidaLoteorSerie(event.target.value),\n required: () => true,\n errorMessages: () => ({\n existsInvalidChar: this.translate.instant(`${ this.prefix }exists_invalid_char`)\n }),\n visible: () => this.formGroupBatchOrSeries.controls.bulkVisible.value\n }),\n new FormField({\n name: this.isSerie ? 'serie' : 'lote',\n label: this.isSerie ? this.translate.instant(`${ this.prefix }serie`) : this.translate.instant(`${ this.prefix }lote`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.String,\n onBlur: (event: any) => this.onBlurValidaLoteorSerie(event.target.value),\n required: () => true,\n errorMessages: () => ({\n existsInvalidChar: this.translate.instant(`${ this.prefix }exists_invalid_char`)\n }),\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n new FormField({\n name: 'dataFabricacao',\n label: this.translate.instant(`${ this.prefix }data_fabricacao`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n new FormField({\n name: 'dataValidade',\n label: this.translate.instant(`${ this.prefix }data_validade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n required: () => this.obrigaValidade,\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n new FormField({\n name: 'saldo',\n label: this.translate.instant(`${ this.prefix }saldo`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n );\n\n if (!this.isSerie) {\n dadosFieldsEntrada.push(\n new FormField({\n name: 'quantidade',\n label: this.translate.instant(`${ this.prefix }quantidade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n required: () => true,\n onBlur: () => this.onBlurQuantity(),\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n numberLocaleOptions: this.localeConfig.number\n }),\n );\n }\n\n return dadosFieldsEntrada;\n }\n\n private getFieldsSaida() {\n let dadosFieldsSaida: any[] = [];\n\n if (!this.loteSerieParams.dadosProduto.e205dep) {\n dadosFieldsSaida = [\n\n new FormField({\n ...this.e210DxpLookup.mountOptions({\n multiple: false,\n domain: 'erpx_sup',\n service: 'estoque',\n formGroup: 'deposito',\n searchFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n }\n ],\n\n searchGridFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n },\n { name: 'e205dep.e070fil.nomFil', type: FieldType.String }\n ],\n\n defaultFilter: [ { field: 'excluido', operator: EnumLogicalOperator.Eq, values: [ 'false' ] },\n {\n field: 'e070emp.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e070emp ]\n },\n { field: 'sitEst', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n { field: 'e205dep.sitDep', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n {\n field: 'e075der.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e075der ]\n } ]\n\n }),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n }),\n ];\n }\n\n if (this.isSerie) {\n dadosFieldsSaida.push(\n new FormField({\n name: 'serie',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser`),\n type: FieldType.Lookup,\n searchTitle: this.translate.instant(\n `${ this.prefix }lookup_e200ser_search_title`\n ),\n searchEmptyTitle: this.translate.instant(\n `${ this.prefix }nothing_found`\n ),\n filterLabel: this.translate.instant(`${ this.prefix }filter`),\n clearLabel: this.translate.instant(`${ this.prefix }clear`),\n cancelLabel: this.translate.instant(`${ this.prefix }cancel`),\n selectLabel: this.translate.instant(`${ this.prefix }select`),\n onSelect: (event: any) => {\n if (\n this.loteSerieParams?.invoiceInformation?.origin !==\n EnumInvoiceOrigin.V2\n )\n this.validaLoteorSerie(event);\n },\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onSearchRequest: (event: any) =>\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.onQuantidadeDisponivelDemandaRequest(event)\n : this.onE200SerSearchRequest(event),\n onLookupRequest: (value: string) =>\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.onQuantidadeDisponivelDemandaRequest(value)\n : this.onE200SerLookupRequest(value),\n suggestionsObservable:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this\n .quantidadeDisponivelDemandaLookupSuggestionsObservable\n : this.e200serLookupSuggestionsObservable,\n searchObservable:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.quantidadeDisponivelDemandalookupSearchObservable\n : this.e200serlookupSearchObservable,\n lookupDisplayField: 'label',\n searchFields:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.getQuantidadeDisponivelDemandaSearchFields()\n : this.getE200SerSearchFields(),\n searchGridFields:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.getQuantidadeDisponivelDemandaSearchGridFields()\n : this.getE200SerSearchGridFields(),\n multiple:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2,\n dataKey:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? 'id'\n : 'e200ser.id',\n required: () => true\n }),\n\n new FormField({\n name: 'dataFabricacao',\n label: this.translate.instant(`${ this.prefix }data_fabricacao`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n visible: () => !this.isDistributeSeriesButtonVisible()\n }),\n\n new FormField({\n name: 'dataValidade',\n label: this.translate.instant(`${ this.prefix }data_validade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n required: () => this.obrigaValidade,\n visible: () => !this.isDistributeSeriesButtonVisible()\n }),\n\n new FormField({\n name: 'saldo',\n label: this.translate.instant(`${ this.prefix }saldo`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n visible: () => !this.isDistributeSeriesButtonVisible()\n }),\n );\n } else {\n dadosFieldsSaida.push(\n new FormField({\n name: 'lote',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot`),\n type: FieldType.Lookup,\n searchTitle: this.translate.instant(`${ this.prefix }lookup_e200lot_search_title`),\n searchEmptyTitle: this.translate.instant(`${ this.prefix }nothing_found`),\n filterLabel: this.translate.instant(`${ this.prefix }filter`),\n clearLabel: this.translate.instant(`${ this.prefix }clear`),\n cancelLabel: this.translate.instant(`${ this.prefix }cancel`),\n selectLabel: this.translate.instant(`${ this.prefix }select`),\n onSelect: (event: any) => this.validaLoteorSerie(event),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onSearchRequest: (event: any) => this.onE200LotSearchRequest(event),\n onLookupRequest: (value: string) => this.onE200LotLookupRequest(value),\n suggestionsObservable: this.e200lotLookupSuggestionsObservable,\n searchObservable: this.e200lotlookupSearchObservable,\n lookupDisplayField: 'label',\n searchFields: this.getE200LotSearchFields(),\n searchGridFields: this.getE200LotSearchGridFields(),\n required: () => true\n }),\n\n new FormField({\n name: 'dataFabricacao',\n label: this.translate.instant(`${ this.prefix }data_fabricacao`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body'\n }),\n\n new FormField({\n name: 'dataValidade',\n label: this.translate.instant(`${ this.prefix }data_validade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n required: () => this.obrigaValidade\n }),\n\n new FormField({\n name: 'saldo',\n label: this.translate.instant(`${ this.prefix }saldo`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec\n }),\n\n new FormField({\n name: 'quantidade',\n label: this.translate.instant(`${ this.prefix }quantidade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n required: () => true,\n onBlur: () => this.onBlurQuantity()\n }),\n );\n }\n return dadosFieldsSaida;\n }\n\n private getGridColumns() {\n\n let gridColumns: any;\n\n if (this.isSerie) {\n gridColumns = [\n {\n field: 'serie',\n header: this.translate.instant(`${ this.prefix }serie`),\n attributes: [ \"codigo\" ],\n type: EnumColumnFieldType.STRING,\n },\n { field: 'dataFabricacao', header: this.translate.instant(`${ this.prefix }data_fabricacao`) },\n { field: 'dataValidade', header: this.translate.instant(`${ this.prefix }data_validade`) },\n ];\n } else {\n gridColumns = [\n {\n field: 'lote',\n header: this.translate.instant(`${ this.prefix }lote`),\n attributes: [ \"codigo\" ],\n type: EnumColumnFieldType.STRING,\n },\n { field: 'quantidade', header: this.translate.instant(`${ this.prefix }quantidade`) },\n { field: 'dataFabricacao', header: this.translate.instant(`${ this.prefix }data_fabricacao`) },\n { field: 'dataValidade', header: this.translate.instant(`${ this.prefix }data_validade`) }\n ];\n }\n\n return gridColumns;\n }\n\n public getE200LotSearchFields() {\n const searchFields = [\n new FormField({\n name: 'e200lot.codLote',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_cod_dep`),\n type: FieldType.String,\n })\n ];\n\n return searchFields;\n }\n\n public getE200SerSearchFields() {\n const searchFields = [\n new FormField({\n name: 'e200ser.numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n })\n ];\n\n return searchFields;\n }\n\n private onE200LotSearchRequest(event: any) {\n\n let filterQuery: any;\n let deposito = '';\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const displayFields = [ 'e200lot.codLote' ];\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const orderBy: any = multiSortMeta ? multiSortMeta.map((s: any) => ({\n field: s.field == 'e200lot.codLote' ? 'e200lot.codLot' : s.field,\n order: s.order == 1 ? 'ASC' : 'DESC'\n })) : [ { field: 'e200lot.codLot', order: 'ASC' } ];\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n lotLike: true,\n lotSal: true,\n offset: page,\n lotDis: true,\n size: rows\n };\n\n if (filterData['e200lot.codLote']) {\n filterQuery.e200lot = [ {\n codLot: filterData['e200lot.codLote']\n } ];\n }\n\n if (orderBy) {\n filterQuery.orderBy = orderBy;\n }\n\n this.batchSeriesService\n .listBatch(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n gridData: list.lotes.map((item: any) => ({\n ...item,\n label: displayFields\n .map((field: any) => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n totalRecords: list.totalElements\n\n }))\n )\n .subscribe((data: any) => {\n this.e200lotlookupSearchObservable.next(data);\n });\n }\n\n public getQuantidadeDisponivelDemandaSearchFields(): FormField[] {\n return [\n new FormField({\n name: 'numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n })\n ];\n }\n\n public getQuantidadeDisponivelDemandaSearchGridFields() {\n return [\n new FormField({\n name: 'numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n }),\n new FormField({\n name: 'datFabSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_fab`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'datVltSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_vlt`),\n type: FieldType.Date,\n })\n ];\n }\n\n private onQuantidadeDisponivelDemandaRequest(event: any): void {\n const listParams: ListParams = {\n filterQuery: `idExterno eq '${ this.loteSerieParams.orderInformation.item.id }' and qtdDisponivel > 0 and numSep is not null`\n };\n\n if (event instanceof String || typeof event === 'string') {\n listParams.page = 0;\n listParams.size = 10;\n listParams.filterQuery += ` and containing(lower(numSep), lower('${ event\n .replace(/\\\\/g, '')\n .replace(/'/g, '\\\\\\'') }'))`;\n } else {\n const { filterData, rows, multiSortMeta } = event;\n\n listParams.page = event.first / rows;\n listParams.sort = multiSortMeta ? multiSortMeta : null;\n\n if (filterData.numSep !== null && filterData.numSep !== undefined) {\n listParams.filterQuery += ` and containing(lower(numSep), lower('${ filterData.numSep\n .replace(/\\\\/g, '')\n .replace(/'/g, '\\\\\\'') }'))`;\n }\n }\n\n this.quantidadeDisponivelDemandaService\n .list(listParams)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((list: any) => ({\n gridData: list.contents.map((item: QuantidadeDisponivelDemanda) => ({\n ...item,\n id: item.e200serId,\n label: `${ item.numSep }`\n })),\n totalRecords: list.totalElements\n })))\n .subscribe((data: any) => {\n this.quantidadeDisponivelDemandaLookupSuggestionsObservable.next(data.gridData);\n this.quantidadeDisponivelDemandalookupSearchObservable.next(data);\n });\n }\n\n private onE200SerSearchRequest(event: any) {\n\n let filterQuery: any;\n let deposito = '';\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const displayFields = [ 'e200ser.numSep' ];\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const orderBy: any = multiSortMeta ? multiSortMeta.map((s: any) => ({\n ...s,\n order: s.order == 1 ? 'ASC' : 'DESC'\n })) : [ { field: 'e200ser.numSep', order: 'ASC' } ];\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n serLike: true,\n serSal: true,\n offset: page,\n serDis: true,\n size: rows\n };\n\n if (filterData['e200ser.numSep']) {\n filterQuery.e200ser = [ {\n numSep: filterData['e200ser.numSep']\n } ];\n }\n\n if (orderBy) {\n filterQuery.orderBy = orderBy;\n }\n\n this.batchSeriesService\n .listSeries(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n gridData: list.series.map((item: any) => ({\n ...item,\n label: displayFields\n .map((field: any) => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n totalRecords: list.totalElements\n\n }))\n )\n .subscribe((data: any) => {\n this.e200serlookupSearchObservable.next(data);\n });\n }\n\n public removeBatchOrSeries(rowData: any) {\n if (this.blockedFields == false) {\n this.qtdDistribuida -= this.isSerie ? 1 : Number(rowData.quantidade);\n this.qtdRestante += this.isSerie ? 1 : Number(rowData.quantidade);\n\n this.gridData = this.gridData.filter((batchOrSeries: any) => {\n return batchOrSeries.codigo != rowData.codigo;\n });\n\n this.loteSerieParams.lotesOrSeries = this.gridData;\n }\n }\n\n private sum = (a, b, positions) => { const factor = Math.pow(10, positions); return (a.toFixed(positions) * factor + b.toFixed(positions) * factor) / factor}\n private sub = (a, b, positions) => { const factor = Math.pow(10, positions); return (a.toFixed(positions) * factor - b.toFixed(positions) * factor) / factor}\n\n public addBatchOrSeries() {\n let codigo: string;\n let id = '';\n\n this.validateAllFormFields(this.formGroupBatchOrSeries);\n\n if (this.formGroupBatchOrSeries.controls.bulkVisible.value) {\n if (isEmpty(this.formGroupBatchOrSeries.controls.batchSerieBulk.value)) {\n return;\n }\n const convertedArray = this.formGroupBatchOrSeries.controls.batchSerieBulk.value.split('\\n');\n this.gridData = [];\n this.qtdDistribuida = 0;\n this.qtdAdistribuir = this.loteSerieParams.quantidadeDistribuir;\n this.qtdRestante = 0;\n let linhaAtual = 0;\n if (convertedArray.length == 0) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_layout`);\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }invalid_layout`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n convertedArray.forEach((value: any) => {\n linhaAtual++;\n const currentValue = value.split(';');\n if ((this.isSerie && currentValue.length > 3) || (!this.isSerie && currentValue.length > 4)) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_layout`);\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }invalid_layout`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n const convertedValue: BulkImport = (this.isSerie) ? {\n codigo: this.toCode(currentValue[0], this.translate.instant(`${ this.prefix }codigo_not_informed_batch`, { line: linhaAtual })),\n dataFabricacao: this.toDate(currentValue[1], this.translate.instant(`${ this.prefix }manufacturing_date_invalid_batch`, { line: linhaAtual })),\n dataValidade: this.toDate(currentValue[2], this.translate.instant(`${ this.prefix }validate_date_invalid_batch`, { line: linhaAtual })),\n quantidade: 1\n } : {\n codigo: this.toCode(currentValue[0], this.translate.instant(`${ this.prefix }codigo_not_informed_batch`, { line: linhaAtual })),\n quantidade: this.toAmount(currentValue[1], linhaAtual),\n dataFabricacao: this.toDate(currentValue[2], this.translate.instant(`${ this.prefix }manufacturing_date_invalid_batch`, { line: linhaAtual })),\n dataValidade: this.toDate(currentValue[3], this.translate.instant(`${ this.prefix }validate_date_invalid_batch`, { line: linhaAtual }))\n };\n\n // valida se a familia obriga a informar validade\n if (this.obrigaValidade && !convertedValue.dataValidade) {\n const msgError = this.translate.instant(`${ this.prefix }error_selected_dates_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_expiry_date`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n // valida se existe código duplicado\n if (this.gridData.some((value: BulkImport) => value.codigo === convertedValue.codigo)) {\n const msgError = (this.isSerie) ? this.translate.instant(`${ this.prefix }duplicated_series_msg_batch`, { line: linhaAtual }) : this.translate.instant(`${ this.prefix }duplicated_batch_msg_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }batch_distribution_error`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n // valida se a data de fabricação é maior que a validade\n if (convertedValue.dataValidade && convertedValue.dataFabricacao &&\n convertedValue.dataValidade < convertedValue.dataFabricacao) {\n const msgError = this.translate.instant(`${ this.prefix }expiry_lower_than_manufacturing_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_selected_dates`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n this.qtdDistribuida += convertedValue.quantidade;\n // valida se a quantidade distribuida é maior que a quantidade a distribuir\n if (this.qtdDistribuida > this.qtdAdistribuir) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_qty_msg_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }distribution_error`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n this.gridData.push(convertedValue);\n this.qtdRestante = this.qtdAdistribuir - this.qtdDistribuida;\n });\n this.loteSerieParams.lotesOrSeries = this.gridData;\n this.formGroupBatchOrSeries.controls.batchSerieBulk.reset();\n this.messageService.clear();\n return;\n }\n\n if (this.formGroupBatchOrSeries.valid &&\n (this.formGroupBatchOrSeries.controls.serie.value || this.formGroupBatchOrSeries.controls.lote.value)) {\n\n if (this.isSerie)\n this.formGroupBatchOrSeries.controls.quantidade.patchValue(1);\n\n if (this.formGroupBatchOrSeries.controls.dataValidade.value && this.formGroupBatchOrSeries.controls.dataFabricacao.value &&\n this.formGroupBatchOrSeries.controls.dataValidade.value < this.formGroupBatchOrSeries.controls.dataFabricacao.value) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_selected_dates`),\n detail: this.translate.instant(`${ this.prefix }expiry_lower_than_manufacturing`)\n });\n return;\n }\n\n if (this.obrigaValidade) {\n if (!this.formGroupBatchOrSeries.controls.dataValidade.value) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_selected_dates`),\n detail: this.translate.instant(`${ this.prefix }error_expiry_date`)\n });\n return;\n }\n }\n\n const distributedQuantity = this.formGroupBatchOrSeries.get('quantidade').value ? Number(this.formGroupBatchOrSeries.get('quantidade').value) : 0;\n \n if (distributedQuantity > 0) {\n if (this.sum(this.qtdDistribuida, distributedQuantity, this.locale.number.scale) > this.qtdAdistribuir) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }distribution_error`),\n detail: this.translate.instant(`${ this.prefix }invalid_qty_msg`)\n });\n return;\n }\n } else {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }distribution_error`),\n detail: this.translate.instant(`${ this.prefix }invalid_qtd`)\n });\n return;\n }\n\n if (this.isSerie) {\n if (this.isSaida) {\n if (this.formGroupBatchOrSeries.controls.serie.value.e200ser) {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.e200ser.numSep;\n id = this.formGroupBatchOrSeries.controls.serie.value.e200ser.id;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.numSep;\n id = this.formGroupBatchOrSeries.controls.serie.value.id;\n }\n } else {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.toUpperCase();\n this.formGroupBatchOrSeries.controls.serie.patchValue(this.formGroupBatchOrSeries.controls.serie.value.toUpperCase());\n }\n } else {\n if (this.isSaida) {\n if (this.formGroupBatchOrSeries.controls.lote.value.e200lot) {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.e200lot.codLote;\n id = this.formGroupBatchOrSeries.controls.lote.value.e200lot.id;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.codLot;\n id = this.formGroupBatchOrSeries.controls.lote.value.id;\n }\n } else {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.toUpperCase();\n this.formGroupBatchOrSeries.controls.lote.patchValue(this.formGroupBatchOrSeries.controls.lote.value.toUpperCase());\n }\n }\n\n if (this.isDuplicateBatchSeries()) {\n if (!this.isSerie) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }batch_distribution_error`),\n detail: this.translate.instant(`${ this.prefix }duplicated_batch_msg`)\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }series_distribution_error`),\n detail: this.translate.instant(`${ this.prefix }duplicated_series_msg`)\n });\n }\n return;\n }\n\n let loteOrSerieValues = this.formGroupBatchOrSeries.getRawValue();\n\n loteOrSerieValues = this.formatDates(loteOrSerieValues, [ 'dataFabricacao', 'dataValidade' ]);\n\n if (this.loteSerieParams?.invoiceInformation?.origin === EnumInvoiceOrigin.V2 && loteOrSerieValues.serie) {\n if (Array.isArray(loteOrSerieValues.serie)) {\n for (const value of loteOrSerieValues.serie) {\n this.gridData.push({\n id: value.id,\n codigo: value.numSep,\n quantidade: value.qtdDisponivel,\n dataFabricacao: value.datFabSep,\n dataValidade: value.datVltSep\n });\n this.qtdDistribuida = this.sum(this.qtdDistribuida, Number(value.qtdDisponivel), this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, Number(value.qtdDisponivel), this.locale.number.scale) \n }\n } else {\n this.gridData.push({\n id: loteOrSerieValues.serie.id,\n codigo: loteOrSerieValues.serie.numSep,\n quantidade: loteOrSerieValues.serie.qtdDisponivel,\n dataFabricacao: loteOrSerieValues.serie.datFabSep,\n dataValidade: loteOrSerieValues.serie.datVltSep\n });\n\n this.qtdDistribuida = this.sum(this.qtdDistribuida, Number(loteOrSerieValues.serie.qtdDisponivel), this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, Number(loteOrSerieValues.serie.qtdDisponivel), this.locale.number.scale)\n\n }\n } else {\n this.gridData.push({\n id: id,\n codigo: codigo,\n quantidade: loteOrSerieValues.quantidade,\n dataFabricacao: loteOrSerieValues.dataFabricacao,\n dataValidade: loteOrSerieValues.dataValidade\n });\n\n this.qtdDistribuida = this.sum(this.qtdDistribuida, Number(loteOrSerieValues.quantidade), this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, Number(loteOrSerieValues.quantidade), this.locale.number.scale)\n }\n\n this.clearBatchSeries();\n this.loteSerieParams.lotesOrSeries = this.gridData;\n } else {\n return this.validateAllFormFields(this.formGroupBatchOrSeries);\n }\n }\n\n private toCode(currentValue: string, msgError: string) {\n currentValue = String(currentValue).trim().toUpperCase()\n if (isEmpty(currentValue)) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }codigo_not_informed`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n return currentValue;\n }\n\n private toAmount(currentValue: string, linhaAtual: number) {\n const convertedValue = this.toNumber(currentValue);\n if (!currentValue || !convertedValue && convertedValue != 0) {\n const msgError = this.translate.instant(`${ this.prefix }amount_not_informed_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_not_informed`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n if (String(currentValue).indexOf(this.locale.number.thousandsSeparator) > 0) {\n const msgError = this.translate.instant(`${ this.prefix }format_number_invalid_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_invalid_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n\n if (convertedValue <= 0) {\n const msgError = this.translate.instant(`${ this.prefix }amount_quantity_that_zero_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_invalid_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n const temDecimal = String(convertedValue).split('.');\n\n if (temDecimal.length > 1 && this.locale.number.scale != String(convertedValue).split('.')[1].length) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_decimals_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_invalid_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n return convertedValue;\n }\n\n private toNumber(currentValue: string) {\n return (isNotEmpty(currentValue)) ? Number(currentValue.replace(this.locale.number.thousandsSeparator, '').replace(this.locale.number.decimalSeparator, '.')) : undefined;\n }\n\n private toDate(currentValue: string, msgError: string) {\n if (isNotEmpty(currentValue) && !moment(currentValue.trim(), 'L', true).isValid()) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }invalid_date_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n return (isNotEmpty(currentValue)) ? moment(currentValue.trim(), 'L', true).format('YYYY-MM-DD') : undefined;\n }\n\n private isDuplicateBatchSeries(): boolean {\n let codigo: string;\n\n if (!this.isSerie) {\n if (this.isSaida) {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.e200lot ?\n this.formGroupBatchOrSeries.controls.lote.value.e200lot.codLote :\n this.formGroupBatchOrSeries.controls.lote.value.codLot;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.toUpperCase();\n }\n return this.gridData.find((element: any) => {\n if (element.codigo === codigo)\n return true;\n\n return false;\n });\n } else {\n if (this.isSaida && Array.isArray(this.formGroupBatchOrSeries?.controls?.serie?.value)) {\n for (const series of this.formGroupBatchOrSeries?.controls?.serie?.value) {\n for (const addedSeries of this.gridData) {\n if (series.numSep === addedSeries.codigo) return true;\n }\n }\n\n return false;\n }\n return this.gridData.find((element: any) => {\n if (this.isSaida) {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.e200ser ?\n this.formGroupBatchOrSeries.controls.serie.value.e200ser.numSep :\n this.formGroupBatchOrSeries.controls.serie.value.numSep;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.toUpperCase();\n }\n\n if (element.codigo === codigo)\n return true;\n\n return false;\n });\n }\n }\n\n private clearBatchSeries() {\n this.formGroupBatchOrSeries.reset();\n if (this.isSaida) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n } else {\n if (this.blockedFields == false)\n this.formGroupBatchOrSeries.controls.dataFabricacao.enable();\n if ((!this.disableDataValidade) && (this.blockedFields == false)) {\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n }\n }\n }\n\n private validaLoteorSerie(event: any) {\n\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n\n if (!this.isSerie) {\n this.getDatas(event.codLot ? event.codLot : event.e200lot.codLote);\n this.consultaSaldoEstoque(event.codLot ? event.codLot : event.e200lot.codLote);\n } else {\n this.getDatas(event.numSep ? event.numSep : event.e200ser.numSep);\n this.consultaSaldoEstoque(event.numSep ? event.numSep : event.e200ser.numSep);\n }\n }\n\n private onBlurValidaLoteorSerie(value: any) {\n // Quando realiza o tab, abre o calendar, por isso é necessário desabilitar antes\n if (value) {\n if (this.validateInvalidChars) {\n const newValue = value.trim();\n if (value !== newValue) {\n if (this.loteSerieParams.tipoControleProduto == EnumTipoControleProduto.Serie) {\n this.formGroupBatchOrSeries.controls.serie.patchValue(newValue);\n } else {\n this.formGroupBatchOrSeries.controls.lote.patchValue(newValue);\n }\n }\n\n }\n this.getDatas(value.toUpperCase());\n this.consultaSaldoEstoque(value.toUpperCase());\n }\n }\n\n private getDatas(value: any) {\n\n this.formGroupBatchOrSeries.controls.dataFabricacao.reset();\n this.formGroupBatchOrSeries.controls.dataValidade.reset();\n this.formGroupBatchOrSeries.controls.saldo.reset();\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n\n let filterQuery: any;\n let deposito = '';\n\n if (this.isSerie) {\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n serLike: false,\n serSal: true,\n serDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200ser.numSep',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200ser = [ {\n numSep: value\n } ];\n }\n\n this.batchSeriesService\n .listSeries(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (response.series.length > 0) {\n const dates = this.formatDatesToCalendar(response.series[0], [ 'datFab', 'datVlt' ]);\n\n if (dates.e200ser.datFab) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.patchValue(moment(dates.e200ser.datFab).toDate());\n }\n if (dates.e200ser.datVlt) {\n this.formGroupBatchOrSeries.controls.dataValidade.patchValue(moment(dates.e200ser.datVlt).toDate());\n }\n } else {\n if (!this.isSaida) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.enable();\n }\n\n if ((!this.disableDataValidade) && (this.blockedFields == false) && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n }\n });\n } else {\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n lotLike: false,\n lotSal: true,\n lotDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200lot.codLot',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200lot = [ {\n codLot: value\n } ];\n }\n\n this.batchSeriesService\n .listBatch(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (response.lotes.length > 0) {\n const dates = this.formatDatesToCalendar(response.lotes[0], [ 'datFab', 'datVlt' ]);\n\n if (dates.e200lot.datFab) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.patchValue(moment(dates.e200lot.datFab).toDate());\n }\n if (dates.e200lot.datVlt) {\n this.formGroupBatchOrSeries.controls.dataValidade.patchValue(moment(dates.e200lot.datVlt).toDate());\n }\n } else {\n if (!this.isSaida) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.enable();\n }\n\n if ((!this.disableDataValidade) && (this.blockedFields == false) && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n }\n });\n }\n }\n\n private processFamilySupplyInfo(familyID: string) {\n this.batchSeriesService\n .getProductFamilySupplyInfo(familyID)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n const supplyInfo = response.contents[0];\n\n this.obrigaValidade = false;\n this.formGroupBatchOrSeries.controls.dataValidade.setValidators([]);\n\n switch (supplyInfo?.ctrVld) {\n case 'VO':\n this.formGroupBatchOrSeries.controls.dataValidade.clearValidators();\n this.formGroupBatchOrSeries.controls.dataValidade.setValidators([ Validators.required ]);\n if (this.blockedFields == false && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n this.obrigaValidade = true;\n break;\n case 'VD':\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n this.disableDataValidade = true;\n break;\n case 'VL':\n if (this.blockedFields == false && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n break;\n }\n });\n\n this.formGroupBatchOrSeries.controls.dataValidade.updateValueAndValidity({ emitEvent: false });\n }\n\n public consultaSaldoEstoque(value: string) {\n\n let balancePayload = {};\n\n if (this.isSerie) {\n balancePayload = {\n e205dep: {\n id: this.loteSerieParams.dadosProduto.e205dep ?\n this.loteSerieParams.dadosProduto.e205dep :\n this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id\n },\n e075der: { id: this.loteSerieParams.dadosProduto.e075der },\n e200ser: { numSep: value }\n };\n } else {\n balancePayload = {\n e205dep: {\n id: this.loteSerieParams.dadosProduto.e205dep ?\n this.loteSerieParams.dadosProduto.e205dep :\n this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id\n },\n e075der: { id: this.loteSerieParams.dadosProduto.e075der },\n e200lot: { codLot: value }\n };\n }\n\n this.batchSeriesService\n .consultarSaldoEstoque(balancePayload)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (!response.saldo) {\n this.formGroupBatchOrSeries.controls.saldo.patchValue(0);\n } else {\n this.formGroupBatchOrSeries.controls.saldo.patchValue(response.saldo);\n }\n });\n }\n\n public getQuantidadeDistribuida() {\n let qtd = 0;\n\n this.loteSerieParams.lotesOrSeries.forEach((val: any) => {\n if (!this.isSerie)\n qtd = this.sum(qtd, Number(val.quantidade), this.locale.number.scale);\n else\n qtd = this.sum(qtd, 1, this.locale.number.scale);\n });\n\n return qtd;\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 public onRouteDataChange(data: any) {\n this.localeConfig = data.localeConfig;\n this.locale = this.localeConfig;\n this.locale.number.scale = this.loteSerieParams.dadosProduto.qtdDec ? this.loteSerieParams.dadosProduto.qtdDec : 0;\n }\n\n public getE200LotSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: 'e200lot.codLote',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_cod_dep`),\n type: FieldType.String,\n }),\n new FormField({\n name: 'e200lot.datFab',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_dat_fab`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'e200lot.datVlt',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_dat_vlt`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'qtdDis',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_qtd_dis`),\n type: FieldType.Double,\n }),\n ];\n\n return searchGridFields;\n }\n\n public getE200SerSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: 'e200ser.numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n }),\n new FormField({\n name: 'e200ser.datFab',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_fab`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'e200ser.datVlt',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_vlt`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'qtdDis',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_qtd_dis`),\n type: FieldType.Double,\n }),\n ];\n\n return searchGridFields;\n }\n\n public onE200LotLookupRequest(value: string) {\n let deposito = '';\n const displayFields = this.loteLookupDisplayFields;\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const filterQuery: any = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n lotLike: true,\n lotSal: true,\n lotDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200lot.codLot',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200lot = [ {\n codLot: value\n } ];\n }\n\n this.batchSeriesService\n .listBatch(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n lotes: list.lotes.map((item: any) => ({\n ...item,\n label: displayFields\n .map(field => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.e200lotLookupSuggestionsObservable.next(list.lotes);\n });\n\n }\n\n public onE200SerLookupRequest(value: string) {\n let deposito = '';\n const displayFields = this.serieLookupDisplayFields;\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const filterQuery: any = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n serLike: true,\n serSal: true,\n serDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200ser.numSep',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200ser = [ {\n numSep: value\n } ];\n }\n\n this.batchSeriesService\n .listSeries(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n series: list.series.map((item: any) => ({\n ...item,\n label: displayFields\n .map(field => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.e200serLookupSuggestionsObservable.next(list.series);\n });\n\n }\n\n public formatDates(requestBody: any, properties: string[]) {\n return Object.keys(requestBody).reduce((prev: any, value: any) => {\n if (properties.indexOf(value) > -1 && requestBody[value]) {\n prev[value] = moment(requestBody[value]).format('YYYY-MM-DD');\n } else {\n prev[value] = requestBody[value];\n }\n return prev;\n }, {});\n }\n\n public formatDatesToCalendar(requestBody: any, properties: string[]) {\n return Object.keys(requestBody).reduce((prev: any, value: any) => {\n if (properties.indexOf(value) > -1 && requestBody[value]) {\n if ((requestBody[value] != undefined) && (requestBody[value] != null)) {\n prev[value] = moment(requestBody[value]).toDate();\n } else {\n prev[value] = '';\n }\n } else {\n prev[value] = requestBody[value];\n }\n return prev;\n }, {});\n }\n\n public translateHtml(text: string, value: any = null, shortcut: string = null): string {\n const ret = this.translate.instant(`${ this.prefix }${ text }`, { value: value });\n return shortcut ? `${ ret } ${ shortcut }` : ret;\n }\n\n public onDistributeSeries(): void {\n this.batchSeriesService\n .obterNecessidades({\n e070empId: this.loteSerieParams.invoiceInformation.company.id,\n e070filId: this.loteSerieParams.invoiceInformation.branch.id,\n itensId: [\n this.loteSerieParams.invoiceInformation.item.product.id\n ],\n tipo: EnumTipoDocumentoParametros.PedidoVenda,\n documentoId: null,\n numeroDocumentoPai: [\n this.loteSerieParams?.orderInformation?.number.toString()\n ],\n dataInicial: null,\n dataFinal: null,\n situacao: null,\n codigoDemanda: null,\n somenteUrgentes: false,\n pageRequest: {\n offset: 0,\n size: 10\n }\n })\n .pipe(first())\n .subscribe(({ necessidades }) => {\n const itemId =\n this.loteSerieParams?.orderInformation?.item.id;\n const atendimento = necessidades.find(\n (necessidade) => necessidade.documento?.idExterno === itemId\n );\n\n const getUrlInput: GetUrlInput = {\n identifiers: [\n {\n domainName: 'erpx_sup',\n serviceName: 'demandas',\n appName: 'erpx-sup-demandas',\n route: `demandas/atendimentos/${ atendimento.id }?isSeriesDistributionVisible=true`\n }\n ]\n };\n\n this.batchSeriesService\n .getUrl(getUrlInput)\n .pipe(first())\n .subscribe((getUrlOutput: GetUrlOutput) => {\n window.open(\n `${ getUrlOutput.frontends[0].embeddedURL }`,\n '_blank'\n );\n });\n });\n }\n\n public onDelete() {\n this.selection.forEach(value => this.removeBatchOrSeries(value));\n this.selection = [];\n }\n\n public isDistributeSeriesButtonVisible(): boolean {\n return (\n this.loteSerieParams?.invoiceInformation?.item?.product\n ?.isSerialControlled &&\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n );\n }\n\n private onBlurQuantity(): void {\n if (!this.isSaida) return;\n\n const quantity = Number(this.formGroupBatchOrSeries.controls.quantidade.value);\n const balance = Number(this.formGroupBatchOrSeries.controls.saldo.value);\n\n if (quantity > balance)\n this.messageService.add({\n severity: 'warn',\n summary: this.translate.instant(`${ this.prefix }warn`),\n detail: this.translate.instant(`${ this.prefix }invalid_batch_distribution_quantity`)\n });\n }\n}\n\n/*Parâmetros para utilizar o componente de lote-série */\nexport interface LoteSerieParams {\n\n /* Informa se a movimentação é do tipo entrada ou saida. */\n tipoMovimentacao: EnumTipoMovimentacao;\n\n /* Informa se o produto é controlado por lote ou série. */\n tipoControleProduto: EnumTipoControleProduto;\n\n /* Informa a quantidade a ser distribuÃda. */\n quantidadeDistribuir: number;\n\n /* Informa os dados do produto. */\n dadosProduto: DadosProduto;\n\n /* Informa os lotes ou séries ja distribuÃdos.*/\n lotesOrSeries?: Array<LotesOrSeries>;\n\n /* Informações da nota .*/\n invoiceInformation?: InvoiceInformation;\n\n /* Informações do pedido de venda .*/\n orderInformation?: OrderInformation;\n}\n\n/** Enum para tipo de movimento */\nexport enum EnumTipoMovimentacao {\n /** Tipo movimentação igual a Entrada */\n Entrada = 'Entrada',\n /** Tipo movimentação igual a SaÃda */\n Saida = 'Saida'\n}\n\n/** Enum para tipo de controle de produto */\nexport enum EnumTipoControleProduto {\n /** Tipo de controle igual a Lote */\n Lote = 'Lote',\n /** Tipo de controle igual a Série */\n Serie = 'Serie'\n}\n\n/** Interface para dados do produto */\nexport interface DadosProduto {\n /** ID do produto */\n e075der: string;\n\n /** ID do depósito */\n e205dep?: string;\n\n /** ID da famÃlia do produto */\n e012fam: string;\n\n /** Entidade empresa */\n e070emp: string;\n\n /** Quantidade de casas decimais */\n qtdDec?: number;\n}\n\n/** Interface para dados da grid dos lotes/séries distribuÃdos */\nexport interface LotesOrSeries {\n /** ID do Lote ou Série */\n id?: string;\n\n /** Código do Lote ou Série */\n codigo: string;\n\n /** Data de validade do lote/série */\n dataValidade?: string;\n\n /** Data de fabricação do lote/série */\n dataFabricacao?: string;\n\n /** Quantidade **/\n quantidade?: number;\n\n}\n\nexport enum EnumInvoiceOrigin {\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V99 = 'V99'\n}\n\nexport interface InvoiceItem {\n id: string;\n product: {\n id: string;\n isSerialControlled: boolean;\n };\n}\n\nexport interface InvoiceInformation {\n company: {\n id: string;\n };\n branch: {\n id: string;\n };\n origin: EnumInvoiceOrigin;\n item?: InvoiceItem;\n}\n\nexport interface OrderItem {\n id: string;\n}\n\nexport interface OrderInformation {\n number: number;\n item: OrderItem;\n}\n\ninterface BulkImport {\n codigo: string,\n dataFabricacao: string,\n dataValidade: string,\n quantidade?: number\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ErpLookupsModule } from '@senior-gestao-empresarial/angular-components';\nimport {\n ButtonModule,\n DynamicFormModule,\n EmptyStateModule,\n LoadingStateModule,\n LocaleModule,\n SidebarModule,\n StatsCardModule, TableModule as STableModule,\n} from '@seniorsistemas/angular-components';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { MessagesModule } from 'primeng/messages';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule } from 'primeng/table';\nimport { TabViewModule } from 'primeng/tabview';\nimport { QuantidadeDisponivelDemandaModule } from '../../core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module';\nimport { ErpLoteSerieComponent } from './erp-lote-serie.component';\nimport { ErpLoteSeriesService } from './erp-lote-serie.service';\n\n@NgModule({\n declarations: [ErpLoteSerieComponent],\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n DynamicFormModule,\n LocaleModule.forChild(),\n ErpLookupsModule,\n PanelModule,\n TabViewModule,\n ConfirmDialogModule,\n FormsModule,\n ReactiveFormsModule,\n StatsCardModule,\n EmptyStateModule,\n TableModule,\n LoadingStateModule,\n MessagesModule,\n SidebarModule,\n QuantidadeDisponivelDemandaModule,\n STableModule\n ],\n providers: [ErpLoteSeriesService],\n exports: [ErpLoteSerieComponent],\n})\nexport class ErpLoteSerieModule {}\n"],"names":["router","Subject","takeUntil","filter","NavigationEnd","PRIMARY_OUTLET","ActivatedRoute","Router","Input","Component","NgModule","CommonModule","PrimeBreadcrumbModule","RouterModule","Injectable","HttpClient","MessageService","EnumCampoTributo","EnumGrupoTributo","EnumTipoTributo","EnumTipoDocumento","EnumModBc","EnumOriMer","EnumMotDes","EnumTipoItem","EnumTipImpCst","EnumTipOpe","enumTipCredRecup","EnumRegimeTributarioPisCofins","EnumFunruralIndicativoAquisicao","EnumSituacao","EventEmitter","Validators","FormControl","FormGroup","FormField","FieldType","EnumLogicalOperator","switchMap","LookupField","of","first","finalize","FormBuilder","ChangeDetectorRef","TranslateService","E027StrLookup","BeneficioFiscalLookup","E027EqiLookup","CplTriNotaSaidaNaturezaReceitaPisCofinsLookup","ClassificacaoTributariaLookup","LookupValidationUtils","GTagService","FeatureToggleService","Output","TranslateModule","ButtonModule","AccordionModule","DynamicFormModule","ErpLookupsModule","LoadingStateModule","HttpParams","catchError","throwError","PermissionsModule","EnumTipoMovimentacao","EnumInvoiceOrigin","EnumColumnFieldType","map","EnumTipoControleProduto","E210DxpLookup","LocaleModule","PanelModule","TabViewModule","ConfirmDialogModule","FormsModule","ReactiveFormsModule","StatsCardModule","EmptyStateModule","TableModule","MessagesModule","SidebarModule","STableModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"senior-gestao-empresarial-erpx-components.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@senior-gestao-empresarial/erpx-components/components/breadcrumb/breadcrumb.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/breadcrumb/breadcrumb.module.ts","ng://@senior-gestao-empresarial/erpx-components/components/resumo/erp-resumo.service.ts","ng://@senior-gestao-empresarial/erpx-components/components/resumo/erp-resumo.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/resumo/erp-resumo.module.ts","ng://@senior-gestao-empresarial/erpx-components/components/utils/breakpoints.ts","ng://@senior-gestao-empresarial/erpx-components/components/utils/export-utils.ts","ng://@senior-gestao-empresarial/erpx-components/components/utils/utils.ts","ng://@senior-gestao-empresarial/erpx-components/components/focus/focus.service.ts","ng://@senior-gestao-empresarial/erpx-components/core/enums/enum-classificacao-tributaria.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.service.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.types.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.module.ts","ng://@senior-gestao-empresarial/erpx-components/core/entities/entity-service.ts","ng://@senior-gestao-empresarial/erpx-components/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.ts","ng://@senior-gestao-empresarial/erpx-components/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.ts","ng://@senior-gestao-empresarial/erpx-components/core/enums/enum-tipo-documento-parametros.ts","ng://@senior-gestao-empresarial/erpx-components/components/lote-serie/erp-lote-serie.service.ts","ng://@senior-gestao-empresarial/erpx-components/components/lote-serie/erp-lote-serie.component.ts","ng://@senior-gestao-empresarial/erpx-components/components/lote-serie/erp-lote-serie.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 { Component, Input, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: `s-breadcrumb`,\n templateUrl: `./breadcrumb.component.html`,\n})\nexport class BreadcrumbComponent implements OnDestroy {\n @Input() public homeUrl: string;\n public home: MenuItem;\n public items: MenuItem[];\n public title: string;\n\n private ngUnsubscribe = new Subject<any>();\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router) {\n this.router.events\n .pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd))\n .subscribe(() => this.onNavigationEnd());\n }\n\n private onNavigationEnd() {\n const currentRoute = this.activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this.getValidChildren(currentRoute);\n\n this.title = this.getCurrentTitle(validRoutes);\n this.home = this.getCurrentHome(validRoutes);\n this.items = this.getCurrentItems(validRoutes);\n }\n\n private getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid = route.routeConfig && route.routeConfig.path && route.routeConfig.component && route.outlet === PRIMARY_OUTLET;\n return route.children.reduce((validRoutes, child) => [...validRoutes, ...this.getValidChildren(child)], valid ? [route] : []);\n }\n\n private getCurrentTitle(routes: ActivatedRoute[]) {\n const last = routes[routes.length - 1];\n if (last && last.routeConfig) return this.getTitle(last);\n }\n\n private getCurrentHome(routes: ActivatedRoute[]) {\n let home;\n if (this.homeUrl) home = { url: this.homeUrl, icon: 'far fa-home' };\n else if (routes.length) home = { ...this.getMenuItem(routes[0], routes.length === 1), icon: 'far fa-home' };\n\n return home;\n }\n\n private getCurrentItems(routes: ActivatedRoute[]) {\n if (!routes.length) return;\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) return items.map((route, i) => this.getMenuItem(route, i === routes.length - 1));\n }\n\n private getMenuItem(route: ActivatedRoute, disabled = false) {\n const label = this.getTitle(route);\n const routes = route.pathFromRoot;\n const routerLink = routes\n .slice(0, routes.indexOf(route) + 1)\n .reduce((result, item) => [...result, ...item.snapshot.url.map(url => url.path)], ['/']);\n\n return {\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n routerLinkActiveOptions: { exact: true },\n disabled,\n };\n }\n\n private getTitle(route: ActivatedRoute) {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data.routeTitle;\n if (!title) throw new Error(`No routeTitle defined for the route /${routeConfig.path}`);\n return title;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbModule as PrimeBreadcrumbModule } from 'primeng/breadcrumb';\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, PrimeBreadcrumbModule, RouterModule],\n declarations: [BreadcrumbComponent],\n exports: [BreadcrumbComponent, RouterModule],\n})\nexport class BreadcrumbModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErpResumoService {\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'erp-resumo[summary]',\n templateUrl: './erp-resumo.component.html',\n styleUrls: ['./erp-resumo.component.scss']\n})\nexport class ErpResumoComponent {\n\n @Input() summary: Summary;\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}\n\nexport interface Summary {\n total?: SummaryItem;\n sections: Array<SummarySectionItem>;\n}\n\nexport interface SummarySectionItem {\n title?: string;\n items: Array<Array<SummaryItem>>;\n subtotal?: SummaryItem;\n}\n\nexport interface SummaryItem {\n label?: string;\n value?: string | number;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ErpResumoService } from './erp-resumo.service';\nimport { ErpResumoComponent } from './erp-resumo.component';\n\n@NgModule({\n declarations: [\n ErpResumoComponent\n ],\n imports: [\n CommonModule\n ],\n providers: [\n ErpResumoService\n ],\n exports: [\n ErpResumoComponent\n ]\n})\nexport class ErpResumoModule { }\n","export const Breakpoints = {\n SM_MIN: 0,\n SM_MAX: 640,\n MD_MIN: 641,\n MD_MAX: 1024,\n LG_MIN: 1025,\n LG_MAX: 1440,\n XL_MIN: 1441,\n XL_MAX: Infinity,\n};\n","export class ExportUtils {\n constructor() {\n throw new Error('Classe não deve ser instanciada.');\n }\n\n public static exportCSV(\n columns: Partial<any>[] = [],\n data: any[] = [],\n csvSeparator: string = ';',\n documentName: string = 'download'\n ) {\n let csv = '\\ufeff';\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += '\\n';\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n let cellData = this.resolveFieldData(record, column.field);\n\n if (cellData != null) cellData = String(cellData).replace(/\"/g, `\"\"`);\n else cellData = '';\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;',\n });\n\n if (window.navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(blob, documentName + '.csv');\n else {\n const link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', documentName + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) return field(data);\n else if (field.indexOf('.') == -1) return data[field];\n else {\n const fields: string[] = field.split('.');\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else return null;\n }\n\n private static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n}\n","export const isEmpty = (target: any) => {\n if (target === null || target === \"\" || target === undefined) {\n return true;\n }\n if (Array.isArray(target) && !target.length) {\n return true;\n }\n if (Object.keys(target).filter((key) => target[key] !== null || target[key] !== \"\" || target[key] !== undefined).length === 0) {\n return true;\n }\n return false;\n};\n\nexport const isNotEmpty = (value: any) => {\n return !isEmpty(value);\n};\n","import { Injectable } from '@angular/core';\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') && (f.nodeName !== 'DIV')));\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","export enum EnumSituacaoClassificacaoTributaria {\n ATIVO = \"ATIVO\",\n INATIVO = \"INATIVO\"\n}","import { HttpClient } from '@angular/common/http';\nimport { Identifiers } from '@angular/compiler';\nimport { Injectable } from '@angular/core';\nimport { MessageService } from 'primeng';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ErpTributosService {\n constructor(protected http: HttpClient, protected messageService: MessageService) { }\n\n public getFrontend(params: Identifiers): Observable<any> {\n const url = `platform/frontend_updater/queries/getFrontend`;\n return this.http.post<any>(url, params).pipe();\n }\n}\n","import { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"@seniorsistemas/angular-components\";\n\nexport interface CampoTributo {\n campo: EnumCampoTributo;\n disabled?: boolean;\n grupo?: EnumGrupoTributo;\n}\n\nexport interface Tributo {\n\n tipoImposto: EnumTipoTributo;\n id?: string;\n baseCalculo?: number;\n aliquota?: number;\n valor?: number;\n valorIsentas?: number;\n valorOutras?: number;\n percentualReducao?: number;\n percentualMargemValorAdicionado: number;\n percentualDiferimento?: number;\n PercentualSuspensaoParcial?: number;\n aliquotaInterna?: number;\n}\n\nexport interface Sugestao {\n [nomeCampo: string]: any;\n tipoTributo: EnumTipoTributo;\n}\n\nexport enum EnumCampoTributo {\n BaseCalculo = 'base_calculo',\n Aliquota = 'aliquota',\n Valor = 'valor',\n ValorBruto = 'valor_bruto',\n SituacaoTributaria = 'situacao_tributaria',\n ValorIsentas = 'valor_isentas',\n ValorOutras = 'valor_outras',\n EnquadramentoIpi = 'enquadramento_ipi',\n PercentualReducao = 'percentual_reducao',\n PercentualMargemValorAdicionado = 'percentual_mva',\n PercentualDiferimento = 'percentual_diferimento',\n PercentualSuportadoConsumidorFinal = 'percentual_suportado_consumidor_final',\n PercentualSuspensaoParcial = 'percentual_suspensao_parcial',\n ValorRecolhidoPeloSubstituto = 'valor_recolhido_pelo_substituto',\n ValorIcmsStRetido = 'valor_icms_retido',\n MotivoDesoneracaoIcms = 'motivo_desoneracao_icms',\n Origem = 'origem',\n ModalidadeBC = 'modalidade_bc',\n AliquotaInterna = 'aliquota_interna',\n AliquotaInternaDestino = 'aliquotaInternaDestino',\n ReducaoAliquota = 'reducao_efetiva',\n AliquotaEfetiva = 'aliquota_efetiva',\n NaturezaReceita = 'natureza_receita',\n Observacao = 'observacao',\n ValorDeducao = 'valor_deducao',\n CodigoArrecadacao = 'codigo_arrecadacao',\n ImpostoNaoRecuperado = 'imposto_nao_recuperado',\n baseCalculoCredito = 'baseCalculoCredito',\n CodigoTributacao = 'codigo_tributacao',\n RegimeTributarioPisCofins = 'regime_tributario_pis_cofins',\n IndicativoAquisicao = 'indicativo_aquisicao',\n BeneficioFiscal = 'beneficio_fiscal',\n ClassificacaoTributaria = 'classificacao_tributaria',\n CstDesoneracao = 'cst_desoneracao',\n ClassificacaoTributariaDesoneracao = 'classificacao_tributaria_desoneracao',\n}\n\nexport enum EnumGrupoTributo {\n CBS = 'cbs',\n IBS_ESTADUAL = 'ibs_estadual',\n IBS_MUNICIPAL = 'ibs_municipal',\n IBS_MUNICIPAL_DESONERADO = 'ibs_municipal_desonerado',\n IBS_MUNICIPAL_DIFERIDO = 'ibs_municipal_diferido',\n IS = 'is',\n ICMS = 'icms',\n ICMS_ST = 'icms_st',\n IPI = 'ipi',\n PIS = 'pis',\n ISS = 'iss',\n COFINS = 'cofins',\n RETENCOES = 'retencoes',\n IMPORTACOES = 'importacoes',\n CIDE_TECNOLOGIA = 'cide_tecnologia',\n FUNRURAL = 'funrural',\n ICMS_CREDITO_PRESUMIDO = 'icms_credito_presumido',\n}\n\nexport enum EnumTipoTributo {\n CBS = 'CBS',\n CBS_DIFERIDO = 'CBS_DIFERIDO',\n CBS_DESONERADO = 'CBS_DESONERADO',\n IBS_ESTADUAL = 'IBS_ESTADUAL',\n IBS_ESTADUAL_DIFERIDO = 'IBS_ESTADUAL_DIFERIDO',\n IBS_ESTADUAL_DESONERADO = 'IBS_ESTADUAL_DESONERADO',\n IBS_MUNICIPAL = 'IBS_MUNICIPAL',\n IBS_MUNICIPAL_DIFERIDO = 'IBS_MUNICIPAL_DIFERIDO',\n IBS_MUNICIPAL_DESONERADO = 'IBS_MUNICIPAL_DESONERADO',\n IS = 'IS',\n PIS_FATURAMENTO = 'PIS_FATURAMENTO',\n PIS_RECUPERAR = 'PIS_RECUPERAR',\n PIS_DEVOLVIDO = 'PIS_DEVOLVIDO',\n COFINS_RECUPERAR = 'COFINS_RECUPERAR',\n COFINS_DEVOLVIDO = 'COFINS_DEVOLVIDO',\n IPI = 'IPI',\n IPI_CREDITADO = 'IPI_CREDITADO',\n IPI_PRESUMIDO = 'IPI_PRESUMIDO',\n IPI_DEVOLVIDO = 'IPI_DEVOLVIDO',\n IPI_OUTRAS_DESPESAS = 'IPI_OUTRAS_DESPESAS',\n ISS = 'ISS',\n ISS_RETIDO = 'ISS_RETIDO',\n IMPOSTO_IMPORTACAO = 'IMPOSTO_IMPORTACAO',\n PIS_RECUPERAR_IMPORTACAO = 'PIS_RECUPERAR_IMPORTACAO',\n COFINS_RECUPERAR_IMPORTACAO = 'COFINS_RECUPERAR_IMPORTACAO',\n PIS_RETIDO = 'PIS_RETIDO',\n COFINS_RETIDO = 'COFINS_RETIDO',\n CSLL = 'CSLL',\n IRRF = 'IRRF',\n INSS = 'INSS',\n INSS_PATRONAL = 'INSS_PATRONAL',\n ICMS_ST = 'ICMS_ST',\n FCP_ST = 'FCP_ST',\n ICMS_COBRADO_ANTERIORMENTE_ST = 'ICMS_COBRADO_ANTERIORMENTE_ST',\n FCP_COBRADO_ANTERIORMENTE_ST = 'FCP_COBRADO_ANTERIORMENTE_ST',\n ICMS = 'ICMS',\n ICMS_FUTURO = 'ICMS_FUTURO',\n ICMS_SIMPLES = 'ICMS_SIMPLES',\n ICMS_CREDITADO = 'ICMS_CREDITADO',\n FCP = 'FCP',\n ICMS_DIFERIDO = 'ICMS_DIFERIDO',\n ICMS_DESONERADO = 'ICMS_DESONERADO',\n ICMS_CREDITO_PRESUMIDO = 'ICMS_CREDITO_PRESUMIDO',\n DIFAL = 'DIFAL',\n ICMS_UF_DESTINO = 'ICMS_UF_DESTINO',\n FCP_UF_DESTINO = 'FCP_UF_DESTINO',\n ICMS_ST_SOLIDARIO = 'ICMS_ST_SOLIDARIO',\n ICMS_ST_FUTURO = 'ICMS_ST_FUTURO',\n ICMS_ST_RETIDO_ANT = 'ICMS_ST_RETIDO_ANT',\n FCP_ST_RETIDO_ANT = 'FCP_ST_RETIDO_ANT',\n ICMS_EFETIVO = 'ICMS_EFETIVO',\n PIS = 'PIS',\n COFINS = 'COFINS',\n CIDE_TECNOLOGIA = 'CIDE_TECNOLOGIA',\n DIFAL_DEVOLVIDO = 'DIFAL_DEVOLVIDO',\n ICMS_UF_DESTINO_DEVOLVIDO = 'ICMS_UF_DESTINO_DEVOLVIDO',\n FCP_UF_DESTINO_DEVOLVIDO = 'FCP_UF_DESTINO_DEVOLVIDO',\n IMPOSTO_NAO_RECUPERADO = 'IMPOSTO_NAO_RECUPERADO',\n BASE_CALCULO_CREDITO = 'BASE_CALCULO_CREDITO',\n PERCENTUAL_REDUCAO = 'PERCENTUAL_REDUCAO',\n FUNRURAL_INSS = 'FUNRURAL_INSS',\n FUNRURAL_RAT = 'FUNRURAL_RAT',\n FUNRURAL_SENAR = 'FUNRURAL_SENAR',\n FUNRURAL_TOTAL = 'FUNRURAL_TOTAL'\n}\n\nexport enum EnumTipoDocumento {\n NF_ENTRADA = 'nf_entrada',\n NF_SAIDA = 'nf_saida',\n PEDIDO_COMPRA = 'pedido_compra',\n PEDIDO_VENDA = 'pedido_venda',\n NF_SAIDA_CONTROLADORIA = 'nf_saida_controladoria',\n NF_ENTRADA_CONTROLADORIA = 'nf_entrada_controladoria'\n}\n\nexport enum EnumModBc {\n\n V0 = 'V0',\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3'\n}\n\nexport enum EnumOriMer {\n\n V0 = 'V0',\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V6 = 'V6',\n V7 = 'V7',\n V8 = 'V8'\n}\n\nexport enum EnumMotDes {\n\n V0 = 'V0',\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V6 = 'V6',\n V7 = 'V7',\n V8 = 'V8',\n V9 = 'V9',\n V10 = 'V10',\n V11 = 'V11',\n V12 = 'V12',\n V16 = 'V16',\n V90 = 'V90'\n}\n\nexport enum EnumTipoItem {\n\n Produto = 'Produto',\n Servico = 'Servico',\n}\n\nexport enum EnumTipImpCst {\n PIS_COFINS = 'PIS_COFINS',\n IPI = 'IPI',\n ICMS = 'ICMS',\n ISS = 'ISS',\n CBS_IBS = 'CBS_IBS',\n IS = 'IS',\n}\n\nexport enum EnumTipOpe {\n VSAIDA = 'VSAIDA',\n VENTRADA = 'VENTRADA',\n VAMBOS = 'VAMBOS'\n}\n\nexport enum enumTipCredRecup {\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V6 = 'V6',\n V7 = 'V7',\n V8 = 'V8',\n V9 = 'V9',\n V10 = 'V10',\n V11 = 'V11',\n V12 = 'V12',\n V13 = 'V13',\n V14 = 'V14',\n V15 = 'V15',\n V16 = 'V16',\n V17 = 'V17',\n V18 = 'V18',\n}\n\nexport interface Item {\n formField: FormField[];\n formGroup: FormGroup;\n label: string;\n name: string;\n}\n\nexport enum EnumRegimeTributarioPisCofins {\n CUMULATIVO = 'CUMULATIVO',\n NAO_CUMULATIVO = 'NAO_CUMULATIVO'\n}\n\n// \"Indicativo de aquisição para o FUNRURAL\"\nexport enum EnumFunruralIndicativoAquisicao {\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral.\"\n V1 = 'V1',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral por entidade executora do Programa de Aquisição de Alimentos PAA.\"\n V2 = 'V2',\n // \"Aquisição de produção de produtor rural pessoa jurÃdica por entidade executora do PAA.\"\n V3 = 'V3',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral Produção isenta (Lei 13.606/2018).\"\n V4 = 'V4',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial em geral por entidade executora do PAA Produção isenta (Lei 13.606/2018).\"\n V5 = 'V5',\n // \"Aquisição de produção de produtor rural pessoa jurÃdica por entidade executora do PAA Produção isenta (Lei 13.606/2018).\"\n V6 = 'V6',\n // \"Aquisição de produção de produtor rural pessoa fÃsica ou segurado especial para fins de exportação.\"\n V7 = 'V7'\n}\n\nexport enum EnumSituacao {\n VATIVO = \"VATIVO\",\n VINATIVO = \"VINATIVO\",\n}\n\n","import { Identifiers } from '@angular/compiler';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n BeneficioFiscalLookup,\n ClassificacaoTributariaLookup,\n CplTriNotaSaidaNaturezaReceitaPisCofinsLookup,\n E027EqiLookup,\n E027StrLookup,\n EnumLogicalOperator,\n LookupRequestValidator,\n LookupValidationUtils\n} from '@senior-gestao-empresarial/angular-components';\nimport { FieldType, FormField, LookupField } from '@seniorsistemas/angular-components';\nimport { FeatureToggleService } from '@seniorsistemas/platform-components';\nimport { GTagService } from '@seniorsistemas/platform-utils';\nimport BigNumber from 'bignumber.js';\nimport { MenuItem, MessageService } from 'primeng/api';\nimport { Observable, of, Subject } from 'rxjs';\nimport { finalize, first, switchMap, takeUntil } from 'rxjs/operators';\nimport { EnumSituacaoClassificacaoTributaria } from '../../core/enums/enum-classificacao-tributaria';\nimport { ErpTributosService } from './erp-tributos.service';\nimport {\n CampoTributo,\n EnumCampoTributo,\n EnumFunruralIndicativoAquisicao,\n EnumGrupoTributo,\n EnumModBc,\n EnumMotDes,\n EnumOriMer,\n EnumRegimeTributarioPisCofins,\n EnumSituacao,\n enumTipCredRecup,\n EnumTipImpCst,\n EnumTipoDocumento,\n EnumTipoItem,\n EnumTipOpe,\n EnumTipoTributo,\n Item,\n Sugestao\n} from './erp-tributos.types';\n\n@Component({\n selector: 'erp-tributos',\n templateUrl: './erp-tributos.component.html'\n})\nexport class ErpTributosComponent implements OnInit, OnChanges, OnDestroy {\n\n public grupos: any[] = [];\n public tributosValue: any[] = [];\n public reload = true;\n public indexAccordion: number[] = [];\n public prefixLabel: string;\n\n isLoading = false;\n\n private featureReformaTributaria = false;\n\n private menuItemPis = false;\n private menuItemCofins = false;\n private menuItemIpi = false;\n private menuItemIss = false;\n private menuItemImportacoes = false;\n private menuItemRetencoes = false;\n private menuItemRetencoesFunrural = false;\n private menuItemIcms = false;\n private menuItemCideTecnologia = false;\n private menuItemCBS = false;\n private menuItemIBSEstadual = false;\n private menuItemIBSMunicipal = false;\n private menuItemIS = false;\n private menuItemIcmsCreditoPresumido = false;\n\n private requiredItemCBS = false;\n private requiredItemCBSDesonerado = false;\n private requiredItemCBSDiferido = false;\n private requiredItemIBSEstadual = false;\n private requiredItemIBSEstadualDesonerado = false;\n private requiredItemIBSEstadualDiferido = false;\n private requiredItemIBSMunicipal = false;\n private requiredItemIBSMunicipalDesonerado = false;\n private requiredItemIBSMunicipalDiferido = false;\n private requiredItemIS = false;\n private requiredItemCideTecnologia = false;\n private requiredItemPisRecuperar = false;\n private requiredItemPisDevolvido = false;\n private requiredItemCofinsRecuperar = false;\n private requiredItemCofinsDevolvido = false;\n private requiredItemIpi = false;\n private requiredItemIpiCreditado = false;\n private requiredItemIpiDevolvido = false;\n private requiredItemIpiPresumido = false;\n private requiredItemIpiOutrasDespesas = false;\n private requiredItemIss = false;\n private requiredItemIssRetido = false;\n private requiredItemImpostoImportacao = false;\n private requiredItemPisRecuperarImportacao = false;\n private requiredItemCofinsRecuperarImportacao = false;\n private requiredItemPisRetido = false;\n private requiredItemCofinsRetido = false;\n private requiredItemCsllRetido = false;\n private requiredItemIrrfRetido = false;\n private requiredItemInssRetido = false;\n private requiredItemInssPatronal = false;\n private requiredItemIcmsSt = false;\n private requiredItemFcpSt = false;\n private requiredItemIcmsCobradoAnteriormente = false;\n private requiredItemFcpCobradoAnteriormente = false;\n private requiredItemIcms = false;\n private requiredItemIcmsEfetivamenteCreditado = false;\n private requiredItemFcp = false;\n private requiredItemIcmsDiferido = false;\n private requiredItemIcmsDesonerado = false;\n private requiredItemDiferencialAlicota = false;\n private requiredItemPisFaturemento = false;\n private requiredItemCofinsFaturemento = false;\n private requiredItemFcpUfDestino = false;\n private requiredItemIcmsUfDestino = false;\n private requiredSituacaoTributaria = false;\n private requiredIcmsFuturo = false;\n private requiredIcmsSimples = false;\n private requiredIcmsCreditoPresumido = true;\n private requiredDifalDevolvido = false;\n private requiredICMS_UF_Destino_Devolvido = false;\n private requiredFCP_UF_Destino_Devolvido = false;\n private requiredItemPisFaturamento = false;\n private requiredImpostoNaoRecuperado = false;\n private requiredbaseCalculoCredito = true;\n private requiredPercentualReducao = true;\n private requiredIcmsStSolidario = false;\n private requiredIcmsStRetidoAnt = false;\n private requiredFcpStReditoAnt = false;\n private percentageLocaleOptions?: any;\n\n private ngUnsubscribe = new Subject();\n\n @Input() sugestoes!: Sugestao[];\n @Input() camposBloqueados = false;\n @Input() devolvido = false;\n @Input() documento: EnumTipoDocumento;\n @Input() tipoItem: EnumTipoItem;\n @Input() habilitaOpcaoCide = false;\n @Output() tributosChange = new EventEmitter<any>();\n @Input()\n get tributos() {\n return this.tributosValue;\n }\n @Input() dominio?: string;\n @Input() servico?: string;\n @Input() currencyLocaleOptions?: any = { currencySymbol: '', decimalSeparator: ',', thousandsSeparator: '.' };\n @Input() idsTaxesMemoriaCalculo?: [{ idParametro: string, idParametroEstado: string, idPerfilTributario: string, tipoTributo: EnumTipoTributo, fromScreen?: string, idParametroSt: string }];\n @Input() permissionMemoriaCalculo?: boolean;\n\n set tributos(val) {\n this.tributosValue = val;\n }\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly e027StrLookup: E027StrLookup,\n private readonly beneficioFiscalLookup: BeneficioFiscalLookup,\n private readonly e027eqiLookup: E027EqiLookup,\n private readonly naturezaReceitaLookup: CplTriNotaSaidaNaturezaReceitaPisCofinsLookup,\n private readonly classificacaoTributariaLookup: ClassificacaoTributariaLookup,\n private readonly lookupUtils: LookupValidationUtils,\n private readonly erpTributosService: ErpTributosService,\n private readonly gtag: GTagService,\n private readonly featureToggleService: FeatureToggleService,\n protected readonly messageService: MessageService\n ) { }\n\n ngOnInit() {\n this.getEnabledFeatures();\n\n this.grupos = [];\n this.menuItemPis = false;\n this.menuItemCofins = false;\n this.menuItemIpi = false;\n this.menuItemIss = false;\n this.menuItemImportacoes = false;\n this.menuItemRetencoes = false;\n this.menuItemIcms = false;\n this.menuItemCideTecnologia = false;\n\n this.dominio = this.dominio ? this.dominio : 'erpx_cpl_imp';\n this.servico = this.servico ? this.servico : 'cadastros';\n\n this.prefixLabel = `${this.dominio}.${this.servico}`\n if (Object.keys(this.currencyLocaleOptions).length == 0)\n this.currencyLocaleOptions = { currencySymbol: '', decimalSeparator: ',', thousandsSeparator: '.' };\n\n this.percentageLocaleOptions = {\n currencySymbol: '%', \n decimalSeparator: this.currencyLocaleOptions.decimalSeparator, \n thousandsSeparator: this.currencyLocaleOptions.thousandsSeparator\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const variaveisAlteradas = Object.keys(changes);\n if (!variaveisAlteradas.includes('sugestoes') || variaveisAlteradas.length > 1) {\n this.clearVariables();\n this.getActions();\n if ((this.tributosValue == undefined) || (this.tributosValue.length == 0)) {\n this.grupos = [];\n this.tributosValue = [];\n } else if (this.reload) {\n this.grupos = [];\n this.createTributos();\n this.setTributos();\n } else {\n this.reload = true;\n }\n\n if (this.camposBloqueados == true) {\n this.readOnlyTributos();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.lookupUtils.resetStoredKeys();\n }\n\n public memoriaCalculo(imposto: any) {\n let tributo = this.idsTaxesMemoriaCalculo.find((element: any) => { return element.tipoTributo == imposto.name });\n this.abrirWindowUrlMemoriaCalculo(tributo);\n }\n\n private makeUrlWindow(params: Identifiers, tributo?: any) {\n this.erpTributosService.getFrontend(params).subscribe((response: any) => {\n window.open(`${response.frontends[0].embeddedURL}`, '_blank');\n })\n\n this.gtag.sendButtonClick('Botão acessar parametrização' , {impostos: tributo.tipoTributo})\n }\n\n public disabledButton(imposto: EnumTipoTributo) {\n return this.idsTaxesMemoriaCalculo == undefined || !this.idsTaxesMemoriaCalculo.find((element: any) => {\n return element.tipoTributo == imposto && element.idParametro != undefined;\n });\n }\n\n public hideButton(imposto: any) {\n switch (imposto) {\n case EnumTipoTributo.IPI_DEVOLVIDO:\n return false;\n default:\n return true;\n }\n }\n\n private abrirWindowUrlMemoriaCalculo(tributo: any) {\n if (!tributo?.idPerfilTributario && !tributo?.idParametro) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant('error_memoria_calculo_message_title'),\n detail: this.translate.instant('error_memoria_calculo_message_content')\n });\n return;\n };\n const params = {\n identifiers: [{\n \"domainName\": \"erpx_cpl_imp\",\n \"serviceName\": \"impostos\",\n \"appName\": \"erpx-cpl-imp-impostos\",\n \"route\": `${this.validaTela(tributo)}`\n }]\n };\n\n this.makeUrlWindow(params, tributo);\n }\n\n validaTela(taxes: any) {\n if (this.isStTaxes(taxes.tipoTributo)) {\n if(taxes.idParametroEstado){\n return `icmsst/${taxes.idParametroSt}/icmsst-parametros/${taxes.idParametroEstado}?perfilTributarioId=${taxes.idPerfilTributario}¶metroImpostosId=${taxes.idParametro}`\n } else {\n return `icmsst/${taxes.idParametro}/icmsst-parametros/${taxes.idParametroSt}`\n }\n }\n return `perfil-tributario/${taxes.idPerfilTributario}/parametrizacao-impostos/${this.getTributoPai(taxes.tipoTributo)}/${taxes.idParametro}`\n }\n\n private isStTaxes(taxes: any) {\n switch (taxes) {\n case EnumTipoTributo.ICMS_ST:\n case EnumTipoTributo.ICMS_ST_FUTURO:\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT:\n case EnumTipoTributo.ICMS_ST_SOLIDARIO:\n case EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST:\n return true;\n default:\n break;\n }\n }\n\n private getTributoPai(tributo: EnumTipoTributo) {\n switch (tributo) {\n case EnumTipoTributo.PIS_RECUPERAR:\n case EnumTipoTributo.PIS_DEVOLVIDO:\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO:\n case EnumTipoTributo.PIS:\n return 'pis';\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO:\n case EnumTipoTributo.COFINS_DEVOLVIDO:\n case EnumTipoTributo.COFINS_RECUPERAR:\n case EnumTipoTributo.COFINS:\n return 'cofins';\n case EnumTipoTributo.IPI:\n case EnumTipoTributo.IPI_CREDITADO:\n case EnumTipoTributo.IPI_PRESUMIDO:\n case EnumTipoTributo.IPI_DEVOLVIDO:\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS:\n return 'ipi';\n case EnumTipoTributo.ISS:\n case EnumTipoTributo.ISS_RETIDO:\n return 'iss';\n case EnumTipoTributo.IMPOSTO_IMPORTACAO:\n return 'ii';\n case EnumTipoTributo.PIS_RETIDO:\n case EnumTipoTributo.COFINS_RETIDO:\n case EnumTipoTributo.CSLL:\n case EnumTipoTributo.IRRF:\n case EnumTipoTributo.INSS:\n case EnumTipoTributo.INSS_PATRONAL:\n case EnumTipoTributo.FUNRURAL_INSS:\n case EnumTipoTributo.FUNRURAL_RAT:\n case EnumTipoTributo.FUNRURAL_SENAR:\n case EnumTipoTributo.FUNRURAL_TOTAL:\n return 'retencoes';\n case EnumTipoTributo.ICMS:\n case EnumTipoTributo.ICMS_CREDITADO:\n case EnumTipoTributo.FCP:\n case EnumTipoTributo.ICMS_DIFERIDO:\n case EnumTipoTributo.ICMS_DESONERADO:\n case EnumTipoTributo.ICMS_EFETIVO:\n case EnumTipoTributo.DIFAL:\n case EnumTipoTributo.DIFAL_DEVOLVIDO:\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.ICMS_SIMPLES:\n case EnumTipoTributo.ICMS_FUTURO:\n case EnumTipoTributo.ICMS_UF_DESTINO:\n case EnumTipoTributo.FCP_UF_DESTINO:\n case EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST:\n case EnumTipoTributo.FCP_ST_RETIDO_ANT:\n case EnumTipoTributo.FCP_ST:\n return 'icms';\n case EnumTipoTributo.CIDE_TECNOLOGIA:\n return 'cide';\n case EnumTipoTributo.CBS:\n case EnumTipoTributo.CBS_DESONERADO:\n case EnumTipoTributo.CBS_DIFERIDO:\n return 'cbs';\n case EnumTipoTributo.IBS_ESTADUAL:\n case EnumTipoTributo.IBS_ESTADUAL_DESONERADO:\n case EnumTipoTributo.IBS_ESTADUAL_DIFERIDO:\n return 'ibs-estadual';\n case EnumTipoTributo.IBS_MUNICIPAL:\n case EnumTipoTributo.IBS_MUNICIPAL_DESONERADO:\n case EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO:\n return 'ibs-municipal';\n case EnumTipoTributo.IS:\n return 'is';\n default:\n break;\n }\n }\n\n private clearVariables() {\n if (this.reload) {\n this.indexAccordion = [-1];\n this.menuItemCBS = false;\n this.menuItemIBSEstadual = false;\n this.menuItemIBSMunicipal = false;\n this.menuItemIS = false;\n this.menuItemPis = false;\n this.menuItemCofins = false;\n this.menuItemIpi = false;\n this.menuItemIss = false;\n this.menuItemImportacoes = false;\n this.menuItemRetencoes = false;\n this.menuItemIcms = false;\n this.menuItemCideTecnologia = false;\n this.menuItemRetencoesFunrural = false;\n this.menuItemIcmsCreditoPresumido = false;\n\n this.requiredItemCBS = false;\n this.requiredItemCideTecnologia = false;\n this.requiredItemPisRecuperar = false;\n this.requiredItemPisDevolvido = false;\n this.requiredItemCofinsRecuperar = false;\n this.requiredItemCofinsDevolvido = false;\n this.requiredItemIpi = false;\n this.requiredItemIpiCreditado = false;\n this.requiredItemIpiDevolvido = false;\n this.requiredItemIpiPresumido = false;\n this.requiredItemIpiOutrasDespesas = false;\n this.requiredItemIss = false;\n this.requiredItemIssRetido = false;\n this.requiredItemImpostoImportacao = false;\n this.requiredItemPisRecuperarImportacao = false;\n this.requiredItemCofinsRecuperarImportacao = false;\n this.requiredItemPisRetido = false;\n this.requiredItemCofinsRetido = false;\n this.requiredItemCsllRetido = false;\n this.requiredItemIrrfRetido = false;\n this.requiredItemInssRetido = false;\n this.requiredItemInssPatronal = false;\n this.requiredItemIcmsSt = false;\n this.requiredItemFcpSt = false;\n this.requiredItemIcmsCobradoAnteriormente = false;\n this.requiredItemFcpCobradoAnteriormente = false;\n this.requiredItemIcms = false;\n this.requiredItemIcmsEfetivamenteCreditado = false;\n this.requiredItemFcp = false;\n this.requiredItemIcmsDiferido = false;\n this.requiredItemIcmsDesonerado = false;\n this.requiredItemDiferencialAlicota = false;\n this.requiredItemPisFaturemento = false;\n this.requiredItemCofinsFaturemento = false;\n this.requiredItemIcmsUfDestino = false;\n this.requiredItemFcpUfDestino = false;\n this.requiredSituacaoTributaria = false;\n this.requiredIcmsFuturo = false;\n this.requiredIcmsSimples = false;\n this.requiredItemPisFaturamento = false;\n this.requiredIcmsStSolidario = false;\n this.requiredIcmsStRetidoAnt = false;\n this.requiredFcpStReditoAnt = false;\n }\n }\n\n private createTributos() {\n\n this.tributosValue.map(it => {\n\n switch (it.tipoImposto) {\n case EnumTipoTributo.CBS:\n case EnumTipoTributo.CBS_DESONERADO:\n case EnumTipoTributo.CBS_DIFERIDO:\n this.montaCBS();\n break\n case EnumTipoTributo.IBS_ESTADUAL:\n case EnumTipoTributo.IBS_ESTADUAL_DESONERADO:\n case EnumTipoTributo.IBS_ESTADUAL_DIFERIDO:\n this.montaIBSEstadual();\n break\n case EnumTipoTributo.IBS_MUNICIPAL:\n case EnumTipoTributo.IBS_MUNICIPAL_DESONERADO:\n case EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO:\n this.montaIBSMunicipal();\n break\n case EnumTipoTributo.IS:\n this.montaIS();\n break\n case EnumTipoTributo.PIS_RECUPERAR:\n case EnumTipoTributo.PIS_DEVOLVIDO:\n case EnumTipoTributo.PIS:\n this.montaPis();\n break;\n case EnumTipoTributo.COFINS_DEVOLVIDO:\n case EnumTipoTributo.COFINS_RECUPERAR:\n case EnumTipoTributo.COFINS:\n this.montaCofins();\n break;\n case EnumTipoTributo.IPI:\n case EnumTipoTributo.IPI_CREDITADO:\n case EnumTipoTributo.IPI_PRESUMIDO:\n case EnumTipoTributo.IPI_DEVOLVIDO:\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS:\n this.montaIpi();\n break;\n case EnumTipoTributo.ISS:\n case EnumTipoTributo.ISS_RETIDO:\n this.montaIss();\n break;\n case EnumTipoTributo.IMPOSTO_IMPORTACAO:\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO:\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO:\n this.montaImportacoes();\n break;\n case EnumTipoTributo.PIS_RETIDO:\n case EnumTipoTributo.COFINS_RETIDO:\n case EnumTipoTributo.CSLL:\n case EnumTipoTributo.IRRF:\n case EnumTipoTributo.INSS:\n case EnumTipoTributo.INSS_PATRONAL:\n this.montaRetencoes();\n break;\n case EnumTipoTributo.ICMS:\n case EnumTipoTributo.ICMS_CREDITADO:\n case EnumTipoTributo.FCP:\n case EnumTipoTributo.ICMS_DIFERIDO:\n case EnumTipoTributo.ICMS_DESONERADO:\n case EnumTipoTributo.ICMS_ST_FUTURO:\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT:\n case EnumTipoTributo.ICMS_ST_SOLIDARIO:\n case EnumTipoTributo.ICMS_EFETIVO:\n case EnumTipoTributo.DIFAL:\n case EnumTipoTributo.DIFAL_DEVOLVIDO:\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO:\n case EnumTipoTributo.ICMS_SIMPLES:\n case EnumTipoTributo.ICMS_FUTURO:\n this.montaIcms();\n break;\n case EnumTipoTributo.ICMS_CREDITO_PRESUMIDO:\n this.montaIcmsCreditoPresumido();\n break;\n case EnumTipoTributo.CIDE_TECNOLOGIA:\n this.montaCide();\n break;\n case EnumTipoTributo.FUNRURAL_INSS:\n case EnumTipoTributo.FUNRURAL_RAT:\n case EnumTipoTributo.FUNRURAL_SENAR:\n case EnumTipoTributo.FUNRURAL_TOTAL:\n this.montaRetencoesFunrural();\n break;\n default:\n break;\n }\n\n });\n\n }\n\n private readOnlyTributos() {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(grupo => grupo.item.map(\n (item: any) => {\n item.formGroup.disable();\n })\n );\n }\n }\n\n private setTributos() {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(grupo => grupo.item.map(\n (item: Item) => {\n this.tributosValue.map(it => {\n if (item.name === it.tipoImposto) {\n item.formGroup.patchValue(it);\n this.setValidators(it.tipoImposto);\n this.storageValuesOnLookupValidator(item);\n }\n });\n })\n );\n\n this.grupos.map(grupo => grupo.item.map(\n (item: any) => {\n this.setSubs(item);\n })\n );\n }\n }\n\n private setValidators(tributo: EnumTipoTributo) {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item\n .filter((it: any) => it.name == tributo)\n .map((it: any) => {\n let hasValue = false;\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if (item != 'impostoManual') {\n if (it.formGroup.value[item] != undefined && it.formGroup.value[item] !== '') {\n hasValue = true;\n return;\n }\n }\n });\n\n if (hasValue)\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if ((item == 'percentualReducao') ||\n (item == 'percentualDiferimento') ||\n (item == 'percentualMargemValorAdicionado') ||\n (item === 'percentualSuspensaoParcial')) {\n it.formGroup.controls[item].setValidators(Validators.compose(\n [\n Validators.required\n , Validators.max(1000)\n ]\n ));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'valor') {\n it.formGroup.controls[item].setValidators(Validators.compose([\n Validators.required,\n Validators.max(9999999999999.99)\n ]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'observacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(120)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'codigoArrecadacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(5)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'beneficioFiscal') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.required]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'indicativoAquisicao') {\n it.formGroup.controls[item].setValidators(Validators.compose([]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'codigoTributacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(5)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'ImpostoNaoRecuperado') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(9999999999999.99)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'baseCalculoCredito') {\n it.formGroup.controls[item].clearValidators();\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item !== 'impostoManual'\n && item !== 'naturezaReceita'\n && item !== 'valorDeducao'\n && item !== 'regimeTributarioPisCofins'\n && item !== 'reducaoAliquota') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.required]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n }\n });\n else\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if ((item == 'percentualReducao') ||\n (item == 'percentualDiferimento') ||\n (item == 'percentualMargemValorAdicionado') ||\n (item === 'percentualSuspensaoParcial')) {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(1000)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n\n } else if (item === 'valor') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(9999999999999.99)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else if (item === 'observacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(120)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n\n } else if (item === 'codigoArrecadacao') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.maxLength(6)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n\n } else if (item === 'beneficioFiscal') {\n it.formGroup.controls[item].setValidators(Validators.compose([]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'indicativoAquisicao') {\n it.formGroup.controls[item].setValidators(Validators.compose([]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n } else if (item === 'ImpostoNaoRecuperado') {\n it.formGroup.controls[item].setValidators(Validators.compose([Validators.max(9999999999999.99)]));\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, true);\n } else {\n it.formGroup.controls[item].clearValidators();\n it.formGroup.controls[item].updateValueAndValidity({ emitEvent: false });\n this.setRequired(tributo, false);\n }\n });\n });\n }\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 });\n }\n\n public validateAllFieldsTributos(): boolean {\n let valueValid = true;\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item\n .map((it: any) => {\n Object.keys(it.formGroup.controls).forEach(field => {\n const control = it.formGroup.get(field);\n if (control instanceof FormControl) control.markAsDirty({ onlySelf: true });\n else if (control instanceof FormGroup) this.validateAllFieldsTributos();\n });\n\n if (it.formGroup.invalid) {\n valueValid = false;\n }\n });\n }\n );\n }\n return valueValid;\n }\n\n private backValue() {\n const arrItens: any = [];\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item.map(\n (item: any) => {\n this.validateAllFormFields(item.formGroup);\n if (this.tributosValue.length > 0) {\n const deuMath = this.tributosValue\n .filter(tributo => tributo.tipoImposto == item.name)\n .map((tributo: any) => {\n return {\n ...tributo,\n ...item.formGroup.getRawValue()\n };\n });\n if (deuMath && deuMath.length) {\n arrItens.push(deuMath[0]);\n } else {\n arrItens.push({ 'tipoImposto': item.name, ...item.formGroup.getRawValue() });\n }\n } else {\n arrItens.push({ 'tipoImposto': item.name, ...item.formGroup.getRawValue() });\n }\n }\n );\n }\n );\n }\n\n this.reload = false;\n this.tributosChange.emit(arrItens);\n }\n\n private novoImpostoManual(value: any, singleChange?: boolean) {\n value.formField.forEach((field: FormField) => field.onBlur?.call(this));\n value.formGroup.controls.impostoManual.patchValue(true);\n if (!singleChange) { this.setSubs(value); }\n }\n\n public getActions(): MenuItem[] {\n const menu: MenuItem[] = [];\n\n menu.push(\n {\n label: this.translate.instant('erpx.tributos.actions_cbs_label'),\n disabled: this.menuItemCBS,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaCBS().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n label: this.translate.instant('erpx.tributos.actions_ibs_estadual_label'),\n disabled: this.menuItemIBSEstadual,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaIBSEstadual().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n label: this.translate.instant('erpx.tributos.actions_ibs_municipal_label'),\n disabled: this.menuItemIBSMunicipal,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaIBSMunicipal().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n label: this.translate.instant('erpx.tributos.actions_is_label'),\n disabled: this.menuItemIS,\n visible: this.featureReformaTributaria,\n command: () => {\n this.montaIS().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n id: 'retencaoFunrural',\n label: this.translate.instant('erpx.tributos.actions_retencao_funrural_label'),\n disabled: this.menuItemRetencoesFunrural,\n command: () => {\n this.montaRetencoesFunrural().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n id: 'pis',\n label: this.translate.instant('erpx.tributos.actions_pis_label'),\n disabled: this.menuItemPis,\n command: () => {\n this.montaPis().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }, {\n id: 'cofins',\n label: this.translate.instant('erpx.tributos.actions_cofins_label'),\n disabled: this.menuItemCofins,\n command: () => {\n this.montaCofins().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }, {\n id: 'ipi',\n label: this.translate.instant('erpx.tributos.actions_ipi_label'),\n disabled: this.menuItemIpi,\n command: () => {\n this.montaIpi().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }, {\n id: 'icms',\n label: this.translate.instant('erpx.tributos.actions_icms_label'),\n disabled: this.menuItemIcms,\n command: () => {\n this.montaIcms().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }\n );\n\n if (this.documento != EnumTipoDocumento.PEDIDO_VENDA) {\n menu.push(\n {\n id: 'importacoes',\n label: this.translate.instant('erpx.tributos.actions_importacoes_label'),\n disabled: this.menuItemImportacoes,\n command: () => {\n this.montaImportacoes().forEach(value => {\n this.novoImpostoManual(value, true);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }\n );\n }\n\n if (this.tipoItem == EnumTipoItem.Servico || this.documento == EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA) {\n menu.push(\n {\n id: 'iss',\n label: this.translate.instant('erpx.tributos.actions_iss_label'),\n disabled: this.menuItemIss,\n command: () => {\n this.montaIss().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n {\n id: 'retencoes',\n label: this.translate.instant('erpx.tributos.actions_retencoes_label'),\n disabled: this.menuItemRetencoes,\n command: () => {\n this.montaRetencoes().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n },\n );\n }\n\n if (this.tipoItem == EnumTipoItem.Servico && this.habilitaOpcaoCide) {\n menu.push(\n {\n id: 'cide',\n label: this.translate.instant('erpx.tributos.actions_cide_label'),\n disabled: this.menuItemCideTecnologia,\n command: () => {\n this.montaCide().forEach(value => {\n this.novoImpostoManual(value);\n }), this.indexAccordion = [0];\n\n this.changeDetector.detectChanges();\n }\n }\n );\n }\n\n if (\n this.documento === EnumTipoDocumento.NF_ENTRADA ||\n this.documento === EnumTipoDocumento.NF_SAIDA\n )\n menu.push({\n label: this.translate.instant(\n 'erpx.tributos.actions_icms_credito_presumido_label'\n ),\n disabled: this.menuItemIcmsCreditoPresumido,\n command: () => {\n this.montaIcmsCreditoPresumido().forEach((value) => {\n this.novoImpostoManual(value);\n }),\n (this.indexAccordion = [0]);\n\n this.changeDetector.detectChanges();\n }\n });\n\n return menu;\n }\n\n private montaIcmsCreditoPresumido() {\n if (this.menuItemIcmsCreditoPresumido) return;\n\n this.menuItemIcmsCreditoPresumido = true;\n\n const item = [\n {\n name: EnumTipoTributo.ICMS_CREDITO_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_credito_presumido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.BeneficioFiscal }\n ],\n EnumTipoTributo.ICMS_CREDITO_PRESUMIDO\n )\n }\n ];\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.ICMS_CREDITO_PRESUMIDO +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.ICMS_CREDITO_PRESUMIDO,\n item\n });\n\n return item;\n }\n\n private montaCide(): any[] {\n if (this.menuItemCideTecnologia == false) {\n this.menuItemCideTecnologia = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.CIDE_TECNOLOGIA,\n label: 'erpx.tributos.enum_tipo_tributo_cide_tecnologia',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CIDE_TECNOLOGIA)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.CIDE_TECNOLOGIA,\n label: 'erpx.tributos.enum_tipo_tributo_cide_tecnologia',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CIDE_TECNOLOGIA)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.CIDE_TECNOLOGIA + '_label'}`, \n grupoTributo: EnumGrupoTributo.CIDE_TECNOLOGIA,\n item\n });\n return item;\n }\n }\n\n private montaIcms(): any[] {\n if (this.menuItemIcms == false) {\n this.menuItemIcms = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n ], EnumTipoTributo.ICMS)\n }, {\n name: EnumTipoTributo.ICMS_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_CREDITADO)\n }, {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_FUTURO)\n }, {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.PercentualSuspensaoParcial }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n }, {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.DIFAL)\n },\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n },\n /* DIFAL DEVOLVIDO */\n {\n name: EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInternaDestino },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO)\n },\n {\n name: EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS)\n }, {\n name: EnumTipoTributo.ICMS_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_CREDITADO)\n }, {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_FUTURO)\n }, {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.PercentualSuspensaoParcial }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n }, {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.DIFAL)\n },\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n ], EnumTipoTributo.ICMS)\n },\n {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_FUTURO)\n },\n {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.PercentualSuspensaoParcial }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n },\n {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.DIFAL)\n }, {\n name: EnumTipoTributo.ICMS_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInterna },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_UF_DESTINO)\n }, {\n name: EnumTipoTributo.FCP_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO)\n },\n\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.ICMS_EFETIVO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_efetivo',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_EFETIVO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS)\n }, {\n name: EnumTipoTributo.ICMS_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_FUTURO)\n }, {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_SIMPLES)\n }, {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n }, {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DESONERADO)\n }, {\n name: EnumTipoTributo.ICMS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_diferido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualDiferimento },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DIFERIDO)\n }, {\n name: EnumTipoTributo.ICMS_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInterna },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_UF_DESTINO)\n }, {\n name: EnumTipoTributo.FCP_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO)\n },\n\n /** @ICMS_ST */\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.ICMS_ST_FUTURO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_futuro',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_FUTURO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualSuportadoConsumidorFinal },\n { campo: EnumCampoTributo.ValorRecolhidoPeloSubstituto },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.ICMS)\n },\n {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n },\n {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DESONERADO)\n },\n {\n name: EnumTipoTributo.ICMS_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInterna },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ICMS_UF_DESTINO)\n },\n {\n name: EnumTipoTributo.FCP_UF_DESTINO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO)\n },\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ICMS,\n label: 'erpx.tributos.enum_tipo_tributo_icms',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.Origem },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.ICMS)\n },\n {\n name: EnumTipoTributo.ICMS_SIMPLES,\n label: 'erpx.tributos.enum_tipo_tributo_icms_simples',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_SIMPLES)\n },\n {\n name: EnumTipoTributo.FCP,\n label: 'erpx.tributos.enum_tipo_tributo_fcp',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP)\n },\n {\n name: EnumTipoTributo.ICMS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_desonerado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.MotivoDesoneracaoIcms },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_DESONERADO)\n },\n {\n name: EnumTipoTributo.DIFAL,\n label: 'erpx.tributos.enum_tipo_tributo_difal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.DIFAL)\n },\n {\n name: EnumTipoTributo.ICMS_ST,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.PercentualMargemValorAdicionado },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ImpostoNaoRecuperado },\n ], EnumTipoTributo.ICMS_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_SOLIDARIO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_solidario',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_ST_SOLIDARIO)\n },\n {\n name: EnumTipoTributo.FCP_ST,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST)\n },\n {\n name: EnumTipoTributo.ICMS_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_icms_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.ValorIcmsStRetido }\n ], EnumTipoTributo.ICMS_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.FCP_ST_RETIDO_ANT,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_st_retido_ant',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_ST_RETIDO_ANT)\n },\n {\n name: EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_icms_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.AliquotaInternaDestino },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO)\n },\n {\n name: EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_fcp_uf_destino_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO)\n },\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ICMS + '_label'}`, \n grupoTributo: EnumGrupoTributo.ICMS,\n item });\n return item;\n }\n }\n\n private montaRetencoes(): any[] {\n if (this.menuItemRetencoes == false) {\n this.menuItemRetencoes = true;\n const item: any[] = [];\n\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }, {\n name: EnumTipoTributo.INSS_PATRONAL,\n label: 'erpx.tributos.enum_tipo_tributo_inss_patronal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS_PATRONAL)\n }\n );\n break;\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }, {\n name: EnumTipoTributo.INSS_PATRONAL,\n label: 'erpx.tributos.enum_tipo_tributo_inss_patronal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS_PATRONAL)\n }\n );\n break;\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoTributacao }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RETIDO)\n }, {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RETIDO)\n }, {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.CSLL)\n }, {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IRRF)\n }, {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }\n );\n break;\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.PIS_RETIDO)\n },\n {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n },\n {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.CSLL)\n },\n {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.IRRF)\n },\n {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.PIS_RETIDO)\n },\n {\n name: EnumTipoTributo.COFINS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.COFINS_RETIDO)\n },\n {\n name: EnumTipoTributo.CSLL,\n label: 'erpx.tributos.enum_tipo_tributo_csll_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.CSLL)\n },\n {\n name: EnumTipoTributo.IRRF,\n label: 'erpx.tributos.enum_tipo_tributo_irrf_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CodigoArrecadacao }\n ], EnumTipoTributo.IRRF)\n },\n {\n name: EnumTipoTributo.INSS,\n label: 'erpx.tributos.enum_tipo_tributo_inss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS)\n },\n {\n name: EnumTipoTributo.INSS_PATRONAL,\n label: 'erpx.tributos.enum_tipo_tributo_inss_patronal',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.INSS_PATRONAL)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.RETENCOES + '_label'}`, \n grupoTriuto: EnumGrupoTributo.RETENCOES,\n item\n });\n return item;\n }\n }\n\n private montaRetencoesFunrural(): any[] {\n if (this.menuItemRetencoesFunrural == false) {\n this.menuItemRetencoesFunrural = true;\n const item: any[] = [];\n\n item.unshift(\n {\n name: EnumTipoTributo.FUNRURAL_INSS,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_inss',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.IndicativoAquisicao },\n { campo: EnumCampoTributo.CodigoArrecadacao },\n ],\n EnumTipoTributo.FUNRURAL_INSS\n )\n },\n {\n name: EnumTipoTributo.FUNRURAL_RAT,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_rat',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.IndicativoAquisicao },\n { campo: EnumCampoTributo.CodigoArrecadacao },\n ],\n EnumTipoTributo.FUNRURAL_RAT\n )\n },\n {\n name: EnumTipoTributo.FUNRURAL_SENAR,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_senar',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.IndicativoAquisicao },\n { campo: EnumCampoTributo.CodigoArrecadacao },\n ],\n EnumTipoTributo.FUNRURAL_SENAR\n )\n },\n {\n name: EnumTipoTributo.FUNRURAL_TOTAL,\n label: 'erpx.tributos.enum_tipo_tributo_funrural_total',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Valor }\n ],\n EnumTipoTributo.FUNRURAL_TOTAL\n )\n }\n );\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.FUNRURAL + '_label'}`, \n grupoTributo: EnumGrupoTributo.FUNRURAL,\n item\n });\n\n const funruralTotal = item.find(item => item.name === \"FUNRURAL_TOTAL\");\n funruralTotal.formGroup.disable({ emitEvent: false });\n\n return item;\n }\n }\n\n private montaImportacoes(): any[] {\n if (this.menuItemImportacoes == false) {\n this.menuItemImportacoes = true;\n const item: any[] = [];\n\n switch (this.documento) {\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IMPOSTO_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_imposto_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IMPOSTO_IMPORTACAO)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IMPOSTO_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_imposto_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IMPOSTO_IMPORTACAO)\n },\n {\n name: EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO)\n },\n {\n name: EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO)\n }\n );\n break;\n default:\n item.unshift({\n name: EnumTipoTributo.IMPOSTO_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_imposto_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IMPOSTO_IMPORTACAO)\n }, {\n name: EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO)\n }, {\n name: EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar_importacao',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO)\n }\n );\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IMPORTACOES + '_label'}`, \n grupoTributo: EnumGrupoTributo.IMPORTACOES,\n item\n });\n return item;\n }\n }\n\n private montaIss(): any[] {\n if (this.menuItemIss == false) {\n this.menuItemIss = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n case EnumTipoDocumento.PEDIDO_COMPRA:\n case EnumTipoDocumento.NF_SAIDA:\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.ISS,\n label: 'erpx.tributos.enum_tipo_tributo_iss',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS)\n }, {\n name: EnumTipoTributo.ISS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_iss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS_RETIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ISS,\n label: 'erpx.tributos.enum_tipo_tributo_iss',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS)\n },\n {\n name: EnumTipoTributo.ISS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_iss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS_RETIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.ISS,\n label: 'erpx.tributos.enum_tipo_tributo_iss',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS)\n },\n {\n name: EnumTipoTributo.ISS_RETIDO,\n label: 'erpx.tributos.enum_tipo_tributo_iss_retido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.PercentualReducao },\n { campo: EnumCampoTributo.ValorDeducao },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.ISS_RETIDO)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ISS + '_label'}`, \n grupoTributo: EnumGrupoTributo.ISS,\n item });\n return item;\n }\n }\n\n private montaCBS() {\n if (this.menuItemCBS) return;\n\n this.menuItemCBS = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.CBS,\n label: 'erpx.tributos.enum_tipo_tributo_cbs',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo, grupo: EnumGrupoTributo.CBS },\n { campo: EnumCampoTributo.Aliquota, grupo: EnumGrupoTributo.CBS },\n { campo: EnumCampoTributo.ValorBruto, disabled: true },\n { campo: EnumCampoTributo.ReducaoAliquota },\n { campo: EnumCampoTributo.AliquotaEfetiva, disabled: true },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.ClassificacaoTributaria }\n ],\n EnumTipoTributo.CBS\n )\n },{\n name: EnumTipoTributo.CBS_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cbs_diferido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true }\n ],\n EnumTipoTributo.CBS_DIFERIDO\n )\n }, {\n name: EnumTipoTributo.CBS_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_cbs_desonerado',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.CstDesoneracao},\n { campo: EnumCampoTributo.ClassificacaoTributariaDesoneracao },\n ],\n EnumTipoTributo.CBS_DESONERADO\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.CBS +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.CBS,\n item\n });\n\n return item;\n }\n\n private montaIBSEstadual() {\n if (this.menuItemIBSEstadual) return;\n\n this.menuItemIBSEstadual = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.IBS_ESTADUAL,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_estadual',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo, grupo: EnumGrupoTributo.IBS_ESTADUAL },\n { campo: EnumCampoTributo.Aliquota, grupo: EnumGrupoTributo.IBS_ESTADUAL },\n { campo: EnumCampoTributo.ValorBruto, disabled: true },\n { campo: EnumCampoTributo.ReducaoAliquota },\n { campo: EnumCampoTributo.AliquotaEfetiva, disabled: true },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.ClassificacaoTributaria }\n ],\n EnumTipoTributo.IBS_ESTADUAL\n )\n },{\n name: EnumTipoTributo.IBS_ESTADUAL_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_estadual_diferido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true }\n ],\n EnumTipoTributo.IBS_ESTADUAL_DIFERIDO\n )\n }, {\n name: EnumTipoTributo.IBS_ESTADUAL_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_estadual_desonerado',\n ...this.montaCampos(\n [{ campo: EnumCampoTributo.Valor, grupo: EnumGrupoTributo.IBS_ESTADUAL }],\n EnumTipoTributo.IBS_ESTADUAL_DESONERADO\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.IBS_ESTADUAL +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.IBS_ESTADUAL,\n item\n });\n\n return item;\n }\n\n private montaIBSMunicipal() {\n if (this.menuItemIBSMunicipal) return;\n\n this.menuItemIBSMunicipal = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.IBS_MUNICIPAL,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_municipal',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo, grupo: EnumGrupoTributo.IBS_MUNICIPAL },\n { campo: EnumCampoTributo.Aliquota, grupo: EnumGrupoTributo.IBS_MUNICIPAL },\n { campo: EnumCampoTributo.ValorBruto, disabled: true },\n { campo: EnumCampoTributo.ReducaoAliquota },\n { campo: EnumCampoTributo.AliquotaEfetiva, disabled: true },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.ClassificacaoTributaria }\n ],\n EnumTipoTributo.IBS_MUNICIPAL\n )\n }, {\n name: EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_municipal_diferido',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true }\n ],\n EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO\n )\n }, {\n name: EnumTipoTributo.IBS_MUNICIPAL_DESONERADO,\n label: 'erpx.tributos.enum_tipo_tributo_ibs_municipal_desonerado',\n ...this.montaCampos(\n [{ campo: EnumCampoTributo.Valor, grupo: EnumGrupoTributo.IBS_MUNICIPAL }],\n EnumTipoTributo.IBS_MUNICIPAL_DESONERADO\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.IBS_MUNICIPAL +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.IBS_MUNICIPAL,\n item\n });\n\n return item;\n }\n\n private montaIS() {\n if (this.menuItemIS) return;\n\n this.menuItemIS = true;\n\n const item = [];\n\n item.unshift({\n name: EnumTipoTributo.IS,\n label: 'erpx.tributos.enum_tipo_tributo_is',\n ...this.montaCampos(\n [\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor, disabled: true },\n { campo: EnumCampoTributo.SituacaoTributaria },\n ],\n EnumTipoTributo.IS\n )\n });\n\n this.grupos.unshift({\n grupo: `${\n 'erpx.tributos.enum_grupo_tributo_' +\n EnumGrupoTributo.IS +\n '_label'\n }`,\n grupoTributo: EnumGrupoTributo.IS,\n item\n });\n\n return item;\n }\n\n private montaPis(): any[] {\n if (this.menuItemPis == false) {\n this.menuItemPis = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.PIS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS_RECUPERAR)\n }, {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.PIS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.PIS_RECUPERAR)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift({\n name: EnumTipoTributo.PIS,\n label: 'erpx.tributos.enum_tipo_tributo_pis',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS)\n }, {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.PIS,\n label: 'erpx.tributos.enum_tipo_tributo_pis',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.PIS)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS,\n label: 'erpx.tributos.enum_tipo_tributo_pis_faturamento',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n\n ], EnumTipoTributo.PIS)\n },\n {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.PIS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_pis_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n\n ], EnumTipoTributo.PIS_RECUPERAR)\n },\n {\n name: EnumTipoTributo.PIS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_pis_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.PIS_DEVOLVIDO)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.PIS + '_label'}`, \n grupoTributo: EnumGrupoTributo.PIS,\n item });\n return item;\n }\n }\n\n private montaCofins(): any[] {\n if (this.menuItemCofins == false) {\n this.menuItemCofins = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.COFINS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_RECUPERAR)\n }, {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.COFINS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_recuperar',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.COFINS_RECUPERAR)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n item.unshift({\n name: EnumTipoTributo.COFINS,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS)\n }, {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.COFINS,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.COFINS)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.COFINS,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.NaturezaReceita },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS)\n },\n {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.COFINS_RECUPERAR,\n label: 'erpx.tributos.enum_tipo_tributo_cofins',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.baseCalculoCredito },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_RECUPERAR)\n },\n {\n name: EnumTipoTributo.COFINS_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_cofins_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.RegimeTributarioPisCofins }\n ], EnumTipoTributo.COFINS_DEVOLVIDO)\n }\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift(\n {\n grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.COFINS + '_label'}`, \n grupoTributo: EnumGrupoTributo.COFINS,\n item\n });\n return item;\n }\n\n }\n\n private montaIpi(): any[] {\n if (this.menuItemIpi == false) {\n this.menuItemIpi = true;\n const item: any[] = [];\n switch (this.documento) {\n case EnumTipoDocumento.NF_ENTRADA:\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi }\n ], EnumTipoTributo.IPI)\n }, {\n name: EnumTipoTributo.IPI_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_CREDITADO)\n }, {\n name: EnumTipoTributo.IPI_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_DEVOLVIDO)\n }, {\n name: EnumTipoTributo.IPI_OUTRAS_DESPESAS,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_outras_despesas',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_OUTRAS_DESPESAS)\n }, {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_COMPRA:\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI)\n }, {\n name: EnumTipoTributo.IPI_CREDITADO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_creditado',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_CREDITADO)\n }, {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA:\n if (this.devolvido)\n item.unshift({\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n });\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi }\n ], EnumTipoTributo.IPI)\n }, {\n name: EnumTipoTributo.IPI_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.PEDIDO_VENDA:\n item.unshift({\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_SAIDA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.IPI)\n },\n {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n },\n {\n name: EnumTipoTributo.IPI_DEVOLVIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_devolvido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_DEVOLVIDO)\n }\n );\n break;\n\n case EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA:\n item.unshift(\n {\n name: EnumTipoTributo.IPI,\n label: 'erpx.tributos.enum_tipo_tributo_ipi',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor },\n { campo: EnumCampoTributo.ValorIsentas },\n { campo: EnumCampoTributo.ValorOutras },\n { campo: EnumCampoTributo.ImpostoNaoRecuperado },\n { campo: EnumCampoTributo.SituacaoTributaria },\n { campo: EnumCampoTributo.EnquadramentoIpi },\n { campo: EnumCampoTributo.Observacao }\n ], EnumTipoTributo.IPI)\n },\n {\n name: EnumTipoTributo.IPI_PRESUMIDO,\n label: 'erpx.tributos.enum_tipo_tributo_ipi_presumido',\n ...this.montaCampos([\n { campo: EnumCampoTributo.BaseCalculo },\n { campo: EnumCampoTributo.Aliquota },\n { campo: EnumCampoTributo.Valor }\n ], EnumTipoTributo.IPI_PRESUMIDO)\n },\n );\n break;\n\n default:\n break;\n }\n\n this.grupos.unshift({ grupo: `${'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IPI + '_label'}`, \n grupoTributo: EnumGrupoTributo.IPI,\n item });\n return item;\n }\n }\n\n private setVariableRequired(tributo: EnumTipoTributo) {\n switch (tributo) {\n case EnumTipoTributo.CBS:\n return this.requiredItemCBS;\n case EnumTipoTributo.CBS_DIFERIDO:\n return this.requiredItemCBSDiferido;\n case EnumTipoTributo.CBS_DESONERADO:\n return this.requiredItemCBSDesonerado;\n case EnumTipoTributo.IBS_ESTADUAL:\n return this.requiredItemIBSEstadual;\n case EnumTipoTributo.IBS_ESTADUAL_DIFERIDO:\n return this.requiredItemIBSEstadualDiferido;\n case EnumTipoTributo.IBS_ESTADUAL_DESONERADO:\n return this.requiredItemIBSEstadualDesonerado;\n case EnumTipoTributo.IBS_MUNICIPAL:\n return this.requiredItemIBSMunicipal;\n case EnumTipoTributo.IBS_MUNICIPAL_DIFERIDO:\n return this.requiredItemIBSMunicipalDiferido;\n case EnumTipoTributo.IBS_MUNICIPAL_DESONERADO:\n return this.requiredItemIBSMunicipalDesonerado;\n case EnumTipoTributo.IS:\n return this.requiredItemIS;\n case EnumTipoTributo.CIDE_TECNOLOGIA:\n return this.requiredItemCideTecnologia;\n case EnumTipoTributo.PIS_RECUPERAR:\n return this.requiredItemPisRecuperar;\n case EnumTipoTributo.PIS_DEVOLVIDO:\n return this.requiredItemPisDevolvido;\n case EnumTipoTributo.COFINS_RECUPERAR:\n return this.requiredItemCofinsRecuperar;\n case EnumTipoTributo.COFINS_DEVOLVIDO:\n return this.requiredItemCofinsDevolvido;\n case EnumTipoTributo.IPI:\n return this.requiredItemIpi;\n case EnumTipoTributo.IPI_CREDITADO:\n return this.requiredItemIpiCreditado;\n case EnumTipoTributo.IPI_DEVOLVIDO:\n return this.requiredItemIpiDevolvido;\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS:\n return this.requiredItemIpiOutrasDespesas;\n case EnumTipoTributo.IPI_PRESUMIDO:\n return this.requiredItemIpiPresumido;\n case EnumTipoTributo.ISS:\n return this.requiredItemIss;\n case EnumTipoTributo.ISS_RETIDO:\n return this.requiredItemIssRetido;\n case EnumTipoTributo.IMPOSTO_IMPORTACAO:\n return this.requiredItemImpostoImportacao;\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO:\n return this.requiredItemPisRecuperarImportacao;\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO:\n return this.requiredItemCofinsRecuperarImportacao;\n case EnumTipoTributo.PIS_RETIDO:\n return this.requiredItemPisRetido;\n case EnumTipoTributo.COFINS_RETIDO:\n return this.requiredItemCofinsRetido;\n case EnumTipoTributo.CSLL:\n return this.requiredItemCsllRetido;\n case EnumTipoTributo.IRRF:\n return this.requiredItemIrrfRetido;\n case EnumTipoTributo.INSS:\n return this.requiredItemInssRetido;\n case EnumTipoTributo.INSS_PATRONAL:\n return this.requiredItemInssPatronal;\n case EnumTipoTributo.ICMS_ST:\n return this.requiredItemIcmsSt;\n case EnumTipoTributo.FCP_ST:\n return this.requiredItemFcpSt;\n case EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST:\n return this.requiredItemIcmsCobradoAnteriormente;\n case EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST:\n return this.requiredItemFcpCobradoAnteriormente;\n case EnumTipoTributo.ICMS:\n return this.requiredItemIcms;\n case EnumTipoTributo.ICMS_CREDITADO:\n return this.requiredItemIcmsEfetivamenteCreditado;\n case EnumTipoTributo.FCP:\n return this.requiredItemFcp;\n case EnumTipoTributo.ICMS_DIFERIDO:\n return this.requiredItemIcmsDiferido;\n case EnumTipoTributo.ICMS_DESONERADO:\n return this.requiredItemIcmsDesonerado;\n case EnumTipoTributo.DIFAL:\n return this.requiredItemDiferencialAlicota;\n case EnumTipoTributo.PIS:\n return this.requiredItemPisFaturemento;\n case EnumTipoTributo.COFINS:\n return this.requiredItemCofinsFaturemento;\n case EnumTipoTributo.ICMS_UF_DESTINO:\n return this.requiredItemIcmsUfDestino;\n case EnumTipoTributo.FCP_UF_DESTINO:\n return this.requiredItemFcpUfDestino;\n case EnumTipoTributo.ICMS_ST:\n return this.requiredSituacaoTributaria;\n case EnumTipoTributo.ICMS_FUTURO:\n return this.requiredIcmsFuturo;\n case EnumTipoTributo.ICMS_SIMPLES:\n return this.requiredIcmsSimples;\n case EnumTipoTributo.ICMS_CREDITO_PRESUMIDO:\n return this.requiredIcmsCreditoPresumido;\n case EnumTipoTributo.DIFAL_DEVOLVIDO:\n return this.requiredDifalDevolvido;\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO:\n return this.requiredICMS_UF_Destino_Devolvido;\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO:\n return this.requiredFCP_UF_Destino_Devolvido;\n case EnumTipoTributo.PIS_FATURAMENTO:\n return this.requiredItemPisFaturamento;\n case EnumTipoTributo.IMPOSTO_NAO_RECUPERADO:\n return this.requiredImpostoNaoRecuperado;\n case EnumTipoTributo.BASE_CALCULO_CREDITO:\n return this.requiredbaseCalculoCredito;\n case EnumTipoTributo.PERCENTUAL_REDUCAO:\n return this.requiredPercentualReducao;\n case EnumTipoTributo.ICMS_ST_SOLIDARIO:\n return this.requiredIcmsStSolidario;\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT:\n return this.requiredIcmsStRetidoAnt;\n case EnumTipoTributo.FCP_ST_RETIDO_ANT:\n return this.requiredFcpStReditoAnt;\n default:\n break;\n }\n }\n\n private setRequired(tributo: EnumTipoTributo, value: boolean) {\n switch (tributo) {\n case EnumTipoTributo.CBS:\n this.requiredItemCBS = value;\n break;\n case EnumTipoTributo.IBS_ESTADUAL:\n this.requiredItemIBSEstadual = value;\n break;\n case EnumTipoTributo.IBS_MUNICIPAL:\n this.requiredItemIBSMunicipal = value;\n break;\n case EnumTipoTributo.IS:\n this.requiredItemIS = value;\n break;\n case EnumTipoTributo.CIDE_TECNOLOGIA: {\n this.requiredItemCideTecnologia = value;\n break;\n }\n case EnumTipoTributo.PIS_RECUPERAR: {\n this.requiredItemPisRecuperar = value;\n break;\n }\n case EnumTipoTributo.PIS_DEVOLVIDO: {\n this.requiredItemPisDevolvido = value;\n break;\n }\n case EnumTipoTributo.COFINS_RECUPERAR: {\n this.requiredItemCofinsRecuperar = value;\n break;\n }\n case EnumTipoTributo.COFINS_DEVOLVIDO: {\n this.requiredItemCofinsDevolvido = value;\n break;\n }\n case EnumTipoTributo.IPI: {\n this.requiredItemIpi = value;\n break;\n }\n case EnumTipoTributo.IPI_CREDITADO: {\n this.requiredItemIpiCreditado = value;\n break;\n }\n case EnumTipoTributo.IPI_DEVOLVIDO: {\n this.requiredItemIpiDevolvido = value;\n break;\n }\n case EnumTipoTributo.IPI_OUTRAS_DESPESAS: {\n this.requiredItemIpiOutrasDespesas = value;\n break;\n }\n case EnumTipoTributo.IPI_PRESUMIDO: {\n this.requiredItemIpiPresumido = value;\n break;\n }\n case EnumTipoTributo.ISS: {\n this.requiredItemIss = value;\n break;\n }\n case EnumTipoTributo.ISS_RETIDO: {\n this.requiredItemIssRetido = value;\n break;\n }\n case EnumTipoTributo.IMPOSTO_IMPORTACAO: {\n this.requiredItemImpostoImportacao = value;\n break;\n }\n case EnumTipoTributo.PIS_RECUPERAR_IMPORTACAO: {\n this.requiredItemPisRecuperarImportacao = value;\n break;\n }\n case EnumTipoTributo.COFINS_RECUPERAR_IMPORTACAO: {\n this.requiredItemCofinsRecuperarImportacao = value;\n break;\n }\n case EnumTipoTributo.PIS_RETIDO: {\n this.requiredItemPisRetido = value;\n break;\n }\n case EnumTipoTributo.COFINS_RETIDO: {\n this.requiredItemCofinsRetido = value;\n break;\n }\n case EnumTipoTributo.CSLL: {\n this.requiredItemCsllRetido = value;\n break;\n }\n case EnumTipoTributo.IRRF: {\n this.requiredItemIrrfRetido = value;\n break;\n }\n case EnumTipoTributo.INSS: {\n this.requiredItemInssRetido = value;\n break;\n }\n case EnumTipoTributo.INSS_PATRONAL: {\n this.requiredItemInssPatronal = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST: {\n this.requiredItemIcmsSt = value;\n break;\n }\n case EnumTipoTributo.FCP_ST: {\n this.requiredItemFcpSt = value;\n break;\n }\n case EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST: {\n this.requiredItemIcmsCobradoAnteriormente = value;\n break;\n }\n case EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST: {\n this.requiredItemFcpCobradoAnteriormente = value;\n break;\n }\n case EnumTipoTributo.ICMS: {\n this.requiredItemIcms = value;\n break;\n }\n case EnumTipoTributo.ICMS_CREDITADO: {\n this.requiredItemIcmsEfetivamenteCreditado = value;\n break;\n }\n case EnumTipoTributo.FCP: {\n this.requiredItemFcp = value;\n break;\n }\n case EnumTipoTributo.ICMS_DIFERIDO: {\n this.requiredItemIcmsDiferido = value;\n break;\n }\n case EnumTipoTributo.ICMS_DESONERADO: {\n this.requiredItemIcmsDesonerado = value;\n break;\n }\n case EnumTipoTributo.DIFAL: {\n this.requiredItemDiferencialAlicota = value;\n break;\n }\n case EnumTipoTributo.PIS: {\n this.requiredItemPisFaturemento = value;\n break;\n }\n case EnumTipoTributo.COFINS: {\n this.requiredItemCofinsFaturemento = value;\n break;\n }\n case EnumTipoTributo.FCP_UF_DESTINO: {\n this.requiredItemFcpUfDestino = value;\n break;\n }\n case EnumTipoTributo.ICMS_UF_DESTINO: {\n this.requiredItemIcmsUfDestino = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST: {\n this.requiredSituacaoTributaria = value;\n break;\n }\n case EnumTipoTributo.ICMS_FUTURO: {\n this.requiredIcmsFuturo = value;\n break;\n }\n case EnumTipoTributo.ICMS_SIMPLES: {\n this.requiredIcmsSimples = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST_SOLIDARIO: {\n this.requiredIcmsStSolidario = value;\n break;\n }\n case EnumTipoTributo.ICMS_ST_RETIDO_ANT: {\n this.requiredIcmsStRetidoAnt = value;\n break;\n }\n case EnumTipoTributo.FCP_ST_RETIDO_ANT: {\n this.requiredFcpStReditoAnt = value;\n break;\n }\n case EnumTipoTributo.DIFAL_DEVOLVIDO: {\n this.requiredDifalDevolvido = value;\n break;\n }\n case EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO: {\n this.requiredICMS_UF_Destino_Devolvido = value;\n break;\n }\n case EnumTipoTributo.FCP_UF_DESTINO_DEVOLVIDO: {\n this.requiredFCP_UF_Destino_Devolvido = value;\n break;\n }\n case EnumTipoTributo.PIS_FATURAMENTO: {\n this.requiredItemPisFaturamento = value;\n break;\n }\n\n default:\n break;\n }\n this.requiredSituacaoTributaria = value;\n }\n\n private impostoCalculado(imposto: EnumTipoTributo): boolean {\n return imposto != EnumTipoTributo.DIFAL &&\n imposto != EnumTipoTributo.ICMS_ST &&\n imposto != EnumTipoTributo.ICMS_ST_SOLIDARIO &&\n imposto != EnumTipoTributo.FCP_ST &&\n imposto != EnumTipoTributo.ICMS_ST_FUTURO &&\n imposto != EnumTipoTributo.DIFAL_DEVOLVIDO &&\n imposto != EnumTipoTributo.ICMS_DIFERIDO &&\n imposto != EnumTipoTributo.ICMS_UF_DESTINO &&\n imposto != EnumTipoTributo.ICMS_COBRADO_ANTERIORMENTE_ST &&\n imposto != EnumTipoTributo.FCP_COBRADO_ANTERIORMENTE_ST &&\n imposto != EnumTipoTributo.FCP_ST_RETIDO_ANT &&\n imposto != EnumTipoTributo.FUNRURAL_TOTAL;\n }\n\n private roundImposto(number: any, decimals: any) {\n const x = Math.pow(10, Number(decimals) + 1);\n return (Number(number) + (1 / x)).toFixed(decimals);\n }\n\n private addPathCalculoValorRounded(it: any, baseCalulo: string, aliquota: string, valor: string){\n const baseValue = it.formGroup.get(baseCalulo).value ?? null;\n const aliquotaValue = it.formGroup.get(aliquota).value ?? null;\n\n it.formGroup.get(valor).patchValue(this.roundImposto((baseValue * aliquotaValue) / 100, 2));\n }\n\n private addMessageErrorBaseDiferente(impostos: string[], grupo: any, summaryMessage: string, detailMessage: string) {\n let controleFunrural = this.calcularImpostosTotal(impostos, grupo)\n\n if (controleFunrural.baseDiferente) {\n this.messageService.add({\n severity: \"warn\",\n summary: this.translate.instant(summaryMessage),\n detail: this.translate.instant(detailMessage),\n });\n }\n\n return controleFunrural;\n }\n\n private calcularValor(tributo: EnumTipoTributo) {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos.map(\n grupo => {\n grupo.item\n .filter((it: any) => it.name == tributo)\n .map((it: any) => {\n let hasValue = false;\n Object.keys(it.formGroup.value).forEach((item: any) => {\n if (it.formGroup.value[item] != undefined) {\n hasValue = true;\n return;\n }\n });\n\n if (hasValue && this.impostoCalculado(tributo)) {\n if([EnumGrupoTributo.CBS, EnumGrupoTributo.IBS_ESTADUAL, EnumGrupoTributo.IBS_MUNICIPAL].includes(grupo.grupoTributo)){\n \n if ([EnumTipoTributo.CBS, EnumTipoTributo.IBS_ESTADUAL, EnumTipoTributo.IBS_MUNICIPAL].includes(tributo)) {\n it.formGroup.get('aliquotaEfetiva').patchValue(\n this.roundImposto(\n new BigNumber(1)\n .minus(\n it.formGroup.get('reducaoAliquota').value\n ? new BigNumber(\n it.formGroup.get('reducaoAliquota').value\n ).dividedBy(100)\n : 0\n )\n .multipliedBy(it.formGroup.get('aliquota').value)\n .toNumber(),\n 2\n )\n );\n\n this.addPathCalculoValorRounded(it, 'baseCalculo', 'aliquota', 'valorBrutoImposto');\n }\n\n let impostos = [grupo.grupoTributo.toUpperCase(), `${grupo.grupoTributo.toUpperCase()}_DIFERIDO`];\n\n this.addMessageErrorBaseDiferente(impostos, grupo, \n `erpx.tributos.error_base_${grupo.grupoTributo}_diferente_summary`, \n `erpx.tributos.error_base_${grupo.grupoTributo}_diferente_detail`);\t\n\n this.addPathCalculoValorRounded(it, 'baseCalculo', tributo.search('_DIFERIDO')>0 ? 'aliquota' : 'aliquotaEfetiva', 'valor' );\n \n return;\n }\n\n if ((it.formGroup.controls.baseCalculo != undefined) &&\n (it.formGroup.controls.aliquota != undefined)) {\n\n if (tributo != EnumTipoTributo.ICMS_UF_DESTINO) {\n if ((tributo == EnumTipoTributo.ICMS) &&\n ((it.formGroup.controls.situacaoTributaria == undefined) ||\n (it.formGroup.controls.situacaoTributaria.value == undefined))) {\n\n const base = it.formGroup.controls.baseCalculo.value;\n const aliquota = it.formGroup.controls.aliquota.value;\n\n if ((base != undefined) && (aliquota != undefined))\n it.formGroup.controls.valor.patchValue(this.roundImposto(((base * aliquota) / 100), 2));\n\n } else if ((tributo == EnumTipoTributo.ICMS) &&\n (it.formGroup.controls.situacaoTributaria.value.codStr != '51')) {\n\n const base = it.formGroup.controls.baseCalculo.value;\n const aliquota = it.formGroup.controls.aliquota.value;\n\n if ((base != undefined) && (aliquota != undefined))\n it.formGroup.controls.valor.patchValue(this.roundImposto(((base * aliquota) / 100), 2));\n\n } else if (\n tributo === EnumTipoTributo.FUNRURAL_INSS ||\n tributo === EnumTipoTributo.FUNRURAL_RAT ||\n tributo === EnumTipoTributo.FUNRURAL_SENAR\n ) {\n const base = it.formGroup.get(\"baseCalculo\").value ?? null;\n const aliquota = it.formGroup.get(\"aliquota\").value ?? null;\n\n it.formGroup.controls.valor.patchValue(Math.floor((base * aliquota)) / 100);\n\n } else if (tributo != EnumTipoTributo.ICMS) {\n const base = it.formGroup.controls.baseCalculo.value;\n const aliquota = it.formGroup.controls.aliquota.value;\n\n if ((base != undefined) && (aliquota != undefined))\n it.formGroup.controls.valor.patchValue(this.roundImposto(((base * aliquota) / 100), 2));\n\n }\n }\n\n if (\n tributo === EnumTipoTributo.FUNRURAL_INSS ||\n tributo === EnumTipoTributo.FUNRURAL_RAT ||\n tributo === EnumTipoTributo.FUNRURAL_SENAR\n ) {\n let impostos = ['FUNRURAL_INSS', 'FUNRURAL_RAT', 'FUNRURAL_SENAR'];\n\n const controleFunrural = this.addMessageErrorBaseDiferente(impostos, grupo, \n \"erpx.tributos.error_base_funrural_diferente_summary\", \n \"erpx.tributos.error_base_funrural_diferente_detail\");\n \n const funruralTotal = grupo.item.find(\n (item) => item.name === \"FUNRURAL_TOTAL\"\n );\n\n funruralTotal.formGroup.setValue(\n {\n baseCalculo: controleFunrural.funBase,\n valor: controleFunrural.funValor,\n impostoManual: true\n },\n { emitEvent: false }\n );\n }\n\n }\n }\n });\n }\n );\n }\n }\n\n private verificarValorDesonerado(grupo){\n\n if(![EnumGrupoTributo.CBS, EnumGrupoTributo.IBS_ESTADUAL, EnumGrupoTributo.IBS_MUNICIPAL].includes(grupo)){\n return;\n }\n\n let impostos = [grupo.toUpperCase(), `${grupo.toUpperCase()}_DESONERADO`];\n\n const valorVsDesonerado = this.grupos.filter(g => g.grupoTributo === grupo)\n .reduce((acc, grupo) => {\n grupo.item.filter(i => impostos.includes(i.name))\n .forEach(item => {\n const isDesonerado = item.name.search('DESONERADO') > 0;\n\n if (item.formGroup.controls?.valorBrutoImposto?.value != undefined && !isDesonerado) {\n acc.valorBruto = item.formGroup.controls.valorBrutoImposto.value;\n }\n\n if (isDesonerado && item.formGroup.value?.valor != undefined) {\n acc.valorDesonerado = item.formGroup.value.valor;\n }\n });\n return acc;\n }, { valorBruto: null, valorDesonerado: null });\n\n const tolerance = 0.0001;\n if(valorVsDesonerado.valorBruto && valorVsDesonerado.valorDesonerado && \n Math.abs(valorVsDesonerado.valorBruto - valorVsDesonerado.valorDesonerado) > tolerance){\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant('erpx.tributos.error_valor_desonerado_invalido_summary'),\n detail: this.translate.instant('erpx.tributos.error_valor_desonerado_detail')\n });\n }\n }\n\n private calcularImpostosTotal(impostos: any, grupo) {\n let valores = {\n funBase: 0,\n funValor: 0,\n baseDiferente: false,\n };\n\n for (let index = 0; index < impostos.length; index++) {\n const imposto = grupo.item.find(item => item.name === impostos[index]);\n\n if (imposto.formGroup.value.baseCalculo != undefined) {\n if (valores.funBase > 0 && valores.funBase != imposto.formGroup.value.baseCalculo) {\n valores.baseDiferente = true;\n }\n\n valores.funBase = imposto.formGroup.value.baseCalculo > valores.funBase ? imposto.formGroup.value.baseCalculo : valores.funBase;\n }\n\n if (imposto.formGroup.value.valor != undefined) {\n valores.funValor = Number(this.roundImposto(Number(valores.funValor) + Number(imposto.formGroup.value.valor), 2));\n }\n }\n\n return valores;\n }\n\n private montaCampos(campos: CampoTributo[], tributo: EnumTipoTributo) {\n const retorno: any = {};\n const formField: FormField[] = [];\n let formGroup: any = {};\n let movimento = '';\n\n if (this.documento == EnumTipoDocumento.NF_ENTRADA ||\n this.documento == EnumTipoDocumento.PEDIDO_COMPRA ||\n this.documento == EnumTipoDocumento.NF_ENTRADA_CONTROLADORIA)\n movimento = 'VENTRADA';\n else\n movimento = 'VSAIDA';\n\n campos.map(it => {\n\n if (it.campo == EnumCampoTributo.BaseCalculo) {\n formGroup = {\n ...formGroup,\n baseCalculo: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'BaseCalculo',\n name: 'baseCalculo',\n label: this.translate.instant('erpx.tributos.fields_base_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n this.verificarValorDesonerado(it.grupo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.Aliquota) {\n formGroup = {\n ...formGroup,\n aliquota: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(999.9999)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'Aliquota',\n name: 'aliquota',\n label: this.getLabelAliquota(tributo),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.verificarValorDesonerado(it.grupo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo === EnumCampoTributo.ReducaoAliquota) {\n formGroup = {\n ...formGroup,\n reducaoAliquota: [\n {\n value: null,\n disabled: false\n }, Validators.compose([Validators.max(100)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ReducaoAliquota',\n name: 'reducaoAliquota',\n label: this.translate.instant('erpx.tributos.fields_reducao_aliquota_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n }),\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.AliquotaEfetiva) {\n formGroup = {\n ...formGroup,\n aliquotaEfetiva: [\n {\n value: null,\n disabled: it.disabled\n }, Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'AliquotaEfetiva',\n name: 'aliquotaEfetiva',\n label: this.translate.instant('erpx.tributos.fields_aliquota_efetiva_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => false\n })\n );\n } else if (it.campo == EnumCampoTributo.AliquotaInterna) {\n formGroup = {\n ...formGroup,\n aliquotaInterna: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(999.9999)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'AliquotaInterna',\n name: 'aliquotaInterna',\n label: this.translate.instant('erpx.tributos.fields_aliquota_interna_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n // this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.AliquotaInternaDestino) {\n formGroup = {\n ...formGroup,\n aliquotaInternaDestino: [\n {\n value: undefined, disabled: false\n }, Validators.compose([Validators.max(999.9999)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'AliquotaInternaDestino',\n name: 'aliquotaInternaDestino',\n label: this.translate.instant('erpx.tributos.fields_aliquota_interna_destino_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.Valor) {\n formGroup = {\n ...formGroup,\n valor: [\n {\n value: undefined,\n disabled: it.disabled\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'Valor',\n name: 'valor',\n label: this.translate.instant('erpx.tributos.fields_valor_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n this.verificarValorDesonerado(it.grupo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator'),\n max: this.translate.instant('erpx.tributos.fields_max_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorBruto) {\n formGroup = {\n ...formGroup,\n valorBrutoImposto: [\n {\n value: undefined,\n disabled: it.disabled\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorBrutoImposto',\n name: 'valorBrutoImposto',\n label: this.translate.instant('erpx.tributos.fields_valor_bruto_imposto_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator'),\n max: this.translate.instant('erpx.tributos.fields_max_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorIsentas) {\n formGroup = {\n ...formGroup,\n valorIsentas: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorIsentas',\n name: 'valorIsentas',\n label: this.translate.instant('erpx.tributos.fields_valor_isentas_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorOutras) {\n formGroup = {\n ...formGroup,\n valorOutras: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorOutras',\n name: 'valorOutras',\n label: this.translate.instant('erpx.tributos.fields_valor_outras_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.SituacaoTributaria) {\n formGroup = { ...formGroup, situacaoTributaria: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n let searchGridFields!: FormField[];\n if (this.documento === EnumTipoDocumento.NF_SAIDA_CONTROLADORIA) {\n searchGridFields = [\n {\n name: 'codStr',\n type: FieldType.String\n }, {\n name: 'desStr',\n type: FieldType.String\n },\n {\n name: 'tipImp',\n type: FieldType.Enum,\n options: [\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_pis_cofins'),\n value: EnumTipImpCst.PIS_COFINS\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_ipi'),\n value: EnumTipImpCst.IPI\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_icms'),\n value: EnumTipImpCst.ICMS\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_imp_iss'),\n value: EnumTipImpCst.ISS\n }\n ]\n },\n {\n name: 'tipOpe',\n type: FieldType.Enum,\n options: [\n {\n label: this.translate.instant('erpx.tributos.enum.tip_ope_v_saida'),\n value: EnumTipOpe.VSAIDA\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_ope_v_entrada'),\n value: EnumTipOpe.VENTRADA\n },\n {\n label: this.translate.instant('erpx.tributos.enum.tip_ope_v_ambos'),\n value: EnumTipOpe.VAMBOS\n }\n ]\n }\n ];\n }\n\n formField.push(\n new FormField({\n ...this.e027StrLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n searchGridFields,\n formGroup: 'situacaoTributaria',\n defaultFilter: [{ field: 'excluido', operator: EnumLogicalOperator.Eq, values: ['false'] },\n { field: 'tipImp', operator: EnumLogicalOperator.Eq, values: [this.filterByImposto(tributo)] },\n { field: 'tipOpe', operator: EnumLogicalOperator.Eq, values: [movimento, 'VAMBOS'] },\n { field: 'situacao', operator: EnumLogicalOperator.Eq, values: ['VATIVO'] }]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + 'SituacaoTributaria',\n label: this.translate.instant('erpx.tributos.fields_situacao_tributaria_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n required: () => this.setVariableRequired(tributo)\n }),\n\n );\n }else if (it.campo == EnumCampoTributo.ClassificacaoTributaria) {\n formGroup = { ...formGroup, classificacaoTributaria: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n ...this.classificacaoTributariaLookup.mountOptions({\n multiple: false,\n prefix: \"erpx_cpl_imp.impostos\",\n entity: 'classificacaoTributaria',\n formGroup: 'classificacaoTributaria',\n defaultFilter: [{ field: 'situacao', operator: EnumLogicalOperator.Eq, values: ['ATIVO'] }]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + 'ClassificacaoTributaria',\n label: this.translate.instant('erpx.tributos.fields_classificacao_tributaria_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n required: () => this.setVariableRequired(tributo)\n }),\n\n );\n } else if (it.campo == EnumCampoTributo.EnquadramentoIpi) {\n formGroup = { ...formGroup, enquadramentoIpi: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n ...this.e027eqiLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n entity: 'e027eqi',\n formGroup: 'enquadramentoIpi',\n defaultFilter: [{ field: 'situacao', operator: EnumLogicalOperator.Eq, values: ['VATIVO'] },\n { field: 'excluido', operator: EnumLogicalOperator.Eq, values: ['false'] },\n ]\n }),\n id: tributo + 'EnquadramentoIpi',\n label: this.translate.instant('erpx.tributos.fields_enquadramento_ipi_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.PercentualReducao) {\n formGroup = {\n ...formGroup,\n percentualReducao: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(100)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualReducao',\n name: 'percentualReducao',\n label: this.translate.instant('erpx.tributos.fields_percentual_reducao_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.PercentualMargemValorAdicionado) {\n formGroup = {\n ...formGroup,\n percentualMargemValorAdicionado: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(1000)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualMargemValorAdicionado',\n name: 'percentualMargemValorAdicionado',\n label: this.translate.instant('erpx.tributos.fields_percentual_mva_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 1000 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.MotivoDesoneracaoIcms) {\n formGroup = { ...formGroup, desoneracaoIcms: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'MotivoDesoneracaoIcms',\n name: 'desoneracaoIcms',\n label: this.translate.instant('erpx.tributos.fields_desoneracao_icms_label'),\n type: FieldType.Enum,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n options: [\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_0'), value: EnumMotDes.V0 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_1'), value: EnumMotDes.V1 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_2'), value: EnumMotDes.V2 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_3'), value: EnumMotDes.V3 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_4'), value: EnumMotDes.V4 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_5'), value: EnumMotDes.V5 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_6'), value: EnumMotDes.V6 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_7'), value: EnumMotDes.V7 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_8'), value: EnumMotDes.V8 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_9'), value: EnumMotDes.V9 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_10'), value: EnumMotDes.V10 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_11'), value: EnumMotDes.V11 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_12'), value: EnumMotDes.V12 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_16'), value: EnumMotDes.V16 },\n { label: this.translate.instant('erpx.tributos.enum_mot_des_v_90'), value: EnumMotDes.V90 },\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_desoneracao_icms_placeholder'),\n showClear: true,\n multiple: false,\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n }),\n );\n } else if (it.campo == EnumCampoTributo.Origem) {\n formGroup = { ...formGroup, origem: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'Origem',\n name: 'origem',\n type: FieldType.Enum,\n options: [\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_0'), value: EnumOriMer.V0 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_1'), value: EnumOriMer.V1 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_2'), value: EnumOriMer.V2 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_3'), value: EnumOriMer.V3 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_4'), value: EnumOriMer.V4 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_5'), value: EnumOriMer.V5 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_6'), value: EnumOriMer.V6 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_7'), value: EnumOriMer.V7 },\n { label: this.translate.instant('erpx.tributos.enum_ori_mer_v_8'), value: EnumOriMer.V8 },\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_origem_icms_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_origem_icms_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n }),\n );\n } else if (it.campo == EnumCampoTributo.PercentualDiferimento) {\n formGroup = { ...formGroup, aliquotaDiferimento: [{ value: undefined, disabled: false }, Validators.compose([Validators.max(100)])] };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualDiferimento',\n name: 'aliquotaDiferimento',\n label: this.translate.instant('erpx.tributos.fields_percentual_diferimento_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.calcularValor(tributo);\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.PercentualSuportadoConsumidorFinal) {\n formGroup = {\n ...formGroup,\n percentualSuportadoConsumidorFinal: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(100)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualSuportadoConsumidorFinal',\n name: 'percentualSuportadoConsumidorFinal',\n label: this.translate.instant('erpx.tributos.fields_percentual_suportado_consumidor_final_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 }),\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorRecolhidoPeloSubstituto) {\n formGroup = {\n ...formGroup,\n valorRecolhidoIcmsSt: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorRecolhidoPeloSubstituto',\n name: 'valorRecolhidoIcmsSt',\n label: this.translate.instant('erpx.tributos.fields_valor_recolhido_pelo_substituto_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ValorIcmsStRetido) {\n formGroup = {\n ...formGroup,\n valorIcmsStRetido: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(99999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ValorIcmsStRetido',\n name: 'valorIcmsStRetido',\n label: this.translate.instant('erpx.tributos.fields_valor_icms_st_retido_label'),\n type: FieldType.Money,\n precision: 13,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo == EnumCampoTributo.ModalidadeBC) {\n formGroup = { ...formGroup, modalidadeBC: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'ModalidadeBc',\n name: 'modalidadeBC',\n type: FieldType.Enum,\n options: [\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_0'), value: EnumModBc.V0 },\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_1'), value: EnumModBc.V1 },\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_2'), value: EnumModBc.V2 },\n { label: this.translate.instant('erpx.tributos.enum_modalidade_bc_v_3'), value: EnumModBc.V3 }\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_modalidade_bc_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_modalidade_bc_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n required: this.translate.instant('erpx.tributos.fields_required_validator')\n }),\n required: () => this.setVariableRequired(tributo)\n }),\n );\n } else if (it.campo === EnumCampoTributo.NaturezaReceita) {\n formGroup = { ...formGroup, naturezaReceita: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n ...this.naturezaReceitaLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n formGroup: 'naturezaReceita',\n lookupSort: [\n { field: 'codigo', order: 1 }\n ],\n searchSort: [\n { field: 'codigo', order: 1 }\n ],\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + 'NaturezaReceita',\n label: this.translate.instant('erpx.tributos.fields_natureza_receita_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.Observacao) {\n formGroup = {\n ...formGroup, observacao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.maxLength(120)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'Observacao',\n name: 'observacao',\n label: this.translate.instant('erpx.tributos.fields_observacao_label'),\n type: FieldType.String,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n maxlength: this.translate.instant('erpx.tributos.fields_max_length_validator')\n }),\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.ValorDeducao) {\n formGroup = {\n ...formGroup, valorDeducao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.max(9999999999999.99)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'valorDeducao',\n name: 'valorDeducao',\n label: this.translate.instant('erpx.tributos.fields_valor_deducao_label'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n required: () => false\n })\n );\n } else if (it.campo === EnumCampoTributo.IndicativoAquisicao) {\n formGroup = {\n ...formGroup,\n indicativoAquisicao: [\n { value: null, disabled: false },\n Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'IndicativoAquisicao',\n name: 'indicativoAquisicao',\n label: this.translate.instant(\n 'erpx.tributos.fields_indicativo_aquisicao_label'\n ),\n showClear: true,\n type: FieldType.Enum,\n options: [\n {\n value: EnumFunruralIndicativoAquisicao.V1,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v1'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V2,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v2'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V3,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v3'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V4,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v4'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V5,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v5'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V6,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v6'\n )\n },\n {\n value: EnumFunruralIndicativoAquisicao.V7,\n label: this.translate.instant(\n 'erpx.tributos.enum_funrural_indicativo_aquisicao_v7'\n )\n }\n ],\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onChange: () => {\n this.backValue();\n this.setValidators(tributo);\n }\n })\n );\n } else if (it.campo === EnumCampoTributo.CodigoArrecadacao) {\n formGroup = {\n ...formGroup, codigoArrecadacao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.maxLength(6)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'CodigoArrecadacao',\n name: 'codigoArrecadacao',\n label: this.translate.instant('erpx.tributos.fields_codigo_arrecadacao_label'),\n type: FieldType.String,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n maxlength: this.translate.instant('erpx.tributos.fields_max_length_validator')\n }),\n required: () => false,\n })\n );\n } else if (it.campo === EnumCampoTributo.CodigoTributacao) {\n formGroup = {\n ...formGroup, codigoTributacao: [{ value: undefined, disabled: false }, Validators.compose([\n Validators.maxLength(5)\n ])]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'CodigoTributacao',\n name: 'codigoTributacao',\n label: this.translate.instant('erpx.tributos.fields_codigo_tributacao_label'),\n type: FieldType.String,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n maxlength: this.translate.instant('erpx.tributos.fields_max_length_validator')\n }),\n required: () => false,\n })\n );\n } else if (it.campo == EnumCampoTributo.ImpostoNaoRecuperado) {\n formGroup = {\n ...formGroup,\n ImpostoNaoRecuperado: [\n {\n value: undefined,\n disabled: false\n }, Validators.compose([Validators.max(9999999999999.99)])\n ]\n };\n\n formField.push(\n new FormField({\n id: tributo + 'ImpostoNaoRecuperado',\n name: 'ImpostoNaoRecuperado',\n label: this.translate.instant('erpx.tributos.fields_imposto_nao_recuperado'),\n type: FieldType.Money,\n precision: 15,\n scale: 2,\n numberLocaleOptions: this.currencyLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n }\n })\n );\n } else if (it.campo == EnumCampoTributo.baseCalculoCredito) {\n formGroup = { ...formGroup, baseCalculoCredito: [{ value: undefined, disabled: false }] };\n formField.push(\n new FormField({\n id: tributo + 'baseCalculoCredito',\n name: 'baseCalculoCredito',\n type: FieldType.Enum,\n options: [\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_1'), value: enumTipCredRecup.V1 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_2'), value: enumTipCredRecup.V2 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_3'), value: enumTipCredRecup.V3 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_4'), value: enumTipCredRecup.V4 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_5'), value: enumTipCredRecup.V5 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_6'), value: enumTipCredRecup.V6 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_7'), value: enumTipCredRecup.V7 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_8'), value: enumTipCredRecup.V8 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_9'), value: enumTipCredRecup.V9 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_10'), value: enumTipCredRecup.V10 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_11'), value: enumTipCredRecup.V11 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_12'), value: enumTipCredRecup.V12 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_13'), value: enumTipCredRecup.V13 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_14'), value: enumTipCredRecup.V14 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_15'), value: enumTipCredRecup.V15 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_16'), value: enumTipCredRecup.V16 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_17'), value: enumTipCredRecup.V17 },\n { label: this.translate.instant('erpx.tributos.enum_tip_cred_recup_v_18'), value: enumTipCredRecup.V18 },\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_base_calculo_credito_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_base_calculo_credito_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n required: false\n }),\n );\n } else if (it.campo === EnumCampoTributo.RegimeTributarioPisCofins) {\n formGroup = { ...formGroup, regimeTributarioPisCofins: [{ value: undefined, disabled: false }, Validators.compose([])] };\n\n formField.push(\n new FormField({\n id: tributo + 'regimeTributarioPisCofins',\n name: 'regimeTributarioPisCofins',\n type: FieldType.Enum,\n options: [\n {\n label: this.translate.instant('erpx.tributos.enum_reg_tribut_pis_cofins_cumulativo'),\n value: EnumRegimeTributarioPisCofins.CUMULATIVO\n },\n {\n label: this.translate.instant('erpx.tributos.enum_reg_tribut_pis_cofins_nao_cumulativo'),\n value: EnumRegimeTributarioPisCofins.NAO_CUMULATIVO\n }\n ],\n placeholder: this.translate.instant('erpx.tributos.fields_regime_tributario_pis_cofins_placeholder'),\n showClear: true,\n multiple: false,\n label: this.translate.instant('erpx.tributos.fields_regime_tributario_pis_cofins_label'),\n size: { sm: 12, md: 6, lg: 6, xl: 3 },\n onChange: (event: any) => {\n if (!event)\n return;\n this.backValue();\n this.setValidators(tributo);\n },\n required: () => false\n }),\n );\n } else if (it.campo == EnumCampoTributo.PercentualSuspensaoParcial) {\n formGroup = { ...formGroup, percentualSuspensaoParcial: [{ value: null, disabled: false }, Validators.compose([Validators.max(100)])] };\n\n formField.push(\n new FormField({\n id: tributo + 'percentualSuspensaoParcial',\n name: 'percentualSuspensaoParcial',\n label: this.translate.instant('erpx.tributos.fields_percentual_suspensao_parcial_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: this.percentageLocaleOptions,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n errorMessages: () => ({\n max: this.translate.instant('erpx.tributos.fields_max_validator', { value: 100 })\n }),\n required: () => this.setVariableRequired(tributo)\n })\n );\n } else if (it.campo === EnumCampoTributo.BeneficioFiscal) {\n formGroup = {\n ...formGroup,\n beneficioFiscal: [\n { value: null, disabled: false },\n Validators.compose([Validators.required])\n ]\n };\n\n formField.push(\n new FormField({\n ...this.beneficioFiscalLookup.mountOptions({\n multiple: false,\n domain: this.dominio,\n service: this.servico,\n formGroup: 'beneficioFiscal',\n defaultFilter: [{ field: 'excluido', operator: EnumLogicalOperator.Eq, values: ['false'] }]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n required: () => true,\n label: this.translate.instant('erpx.tributos.fields_beneficio_fiscal_label'),\n size: { sm: 12, md: 4, lg: 4, xl: 3 }\n }),\n\n );\n } else if (it.campo === EnumCampoTributo.CstDesoneracao) {\n formGroup = {\n ...formGroup,\n cstDesoneracao: [\n { value: null, disabled: false },\n Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n ...this.e027StrLookup.mountOptions({\n prefix: \"erpx_cpl_imp.impostos\",\n defaultFilter: [\n {\n field: \"tipOpe\",\n operator: EnumLogicalOperator.Eq,\n values: [\n EnumTipOpe.VENTRADA,\n EnumTipOpe.VSAIDA,\n EnumTipOpe.VAMBOS\n ],\n },\n {\n field: \"situacao\",\n operator: EnumLogicalOperator.Eq,\n values: [EnumSituacao.VATIVO],\n },\n {\n field: \"excluido\",\n operator: EnumLogicalOperator.Eq,\n values: [\"false\"],\n },\n {\n field: \"tipImp\",\n operator: EnumLogicalOperator.Eq,\n values: [EnumTipImpCst.CBS_IBS],\n },\n ],\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + \"cstDesoneracao\",\n name: \"cstDesoneracao\",\n infoSign: this.translate.instant(\n \"erpx_cpl_imp.impostos.cst_desoneracao_info_sign\"\n ),\n required: () => false,\n label: this.translate.instant(\"erpx_cpl_imp.impostos.cst_desoneracao\"),\n multiple: false,\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n }),\n );\n } else if (it.campo === EnumCampoTributo.ClassificacaoTributariaDesoneracao) {\n formGroup = {\n ...formGroup,\n classificacaoTributariaDesoneracao: [\n { value: null, disabled: false },\n Validators.compose([])\n ]\n };\n\n formField.push(\n new FormField({\n ...this.classificacaoTributariaLookup.mountOptions({\n prefix: \"erpx_cpl_imp.impostos\",\n defaultFilter: [\n {\n field: \"situacao\",\n operator: EnumLogicalOperator.Eq,\n values: [EnumSituacaoClassificacaoTributaria.ATIVO],\n }\n ],\n lookupSort: [\n {\n field: 'codigo',\n order: 1\n }\n ],\n searchSort: [\n {\n field: 'codigo',\n order: 1\n }\n ]\n }),\n onBlur: () => {\n this.backValue();\n this.setValidators(tributo);\n },\n id: tributo + \"classificacaoTributariaDesoneracao\",\n name: \"classificacaoTributariaDesoneracao\",\n infoSign: this.translate.instant(\n \"erpx_cpl_imp.impostos.classificacao_tributaria_desoneracao_info_sign\"\n ),\n label: this.translate.instant(\"erpx_cpl_imp.impostos.classificacao_tributaria_desoneracao\"),\n required: () => false,\n multiple: false,\n size: { sm: 12, md: 6, lg: 4, xl: 3 },\n }),\n );\n }\n });\n\n if (this.sugestoes) {\n this.sugestoes\n .filter(sugestao => sugestao.tipoTributo === tributo)\n .forEach(sugestao => {\n Object\n .entries(sugestao)\n .filter(atributos => atributos[0] !== 'tipoTributo')\n .forEach(atributos => {\n formGroup[atributos[0]][0].value = atributos[1];\n });\n });\n }\n\n formGroup = { ...formGroup, impostoManual: [{ value: undefined, disabled: false }, Validators.compose([])] };\n retorno.formField = formField;\n retorno.formGroup = this.formBuilder.group({\n ...formGroup\n });\n\n return retorno;\n }\n\n private setSubs(item: Item) {\n Object\n .entries(item.formGroup.controls)\n .forEach(control => {\n const [controlName, controlObject] = control;\n if (controlName !== 'impostoManual' && !item.formGroup.controls.impostoManual.value) {\n const formField = item.formField.find(field => field.name === controlName);\n controlObject\n .valueChanges\n .pipe(\n switchMap(val => this.getFormControlSubscriptionValue(val, formField instanceof LookupField, `${item.name}_${formField.name}`)),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((val: LookupRequestValidator) => {\n if (!val.cancelSubscription) {\n item.formGroup.controls.impostoManual.patchValue(true);\n this.setImpostoManualGroup();\n }\n });\n }\n });\n }\n\n private getFormControlSubscriptionValue(fieldValue: any, isFieldLookup: boolean, fieldIdentifier: string): Observable<LookupRequestValidator> {\n if (isFieldLookup) {\n return this.lookupUtils.getValidatedRepeatedLookupValues(fieldValue, fieldIdentifier);\n }\n return of({\n cancelSubscription: false,\n value: fieldValue\n });\n }\n\n private storageValuesOnLookupValidator(item: Item): void {\n Object\n .entries(item.formGroup.controls)\n .forEach(control => {\n const [controlName, controlObject] = control;\n const formField = item.formField.find(field => field.name === controlName);\n if (formField) {\n this.getFormControlSubscriptionValue(controlObject.value, formField instanceof LookupField, `${item.name}_${formField.name}`);\n }\n });\n }\n\n private setImpostoManualGroup() {\n if (this.grupos && this.grupos != undefined && this.grupos.length > 0) {\n this.grupos\n .filter((it: any) => (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ICMS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ICMS_ST + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.PIS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.COFINS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.RETENCOES + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.FUNRURAL + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.ISS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.CIDE_TECNOLOGIA + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.CBS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IBS_ESTADUAL + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IBS_MUNICIPAL + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IS + '_label')\n || (it.grupo == 'erpx.tributos.enum_grupo_tributo_' + EnumGrupoTributo.IPI + '_label'))\n .map(grupo => grupo.item.map(\n (item: any) => {\n if (item.formGroup.controls.impostoManual.value == true) {\n grupo.item.map(\n (it: any) => {\n it.formGroup.controls.impostoManual.patchValue(true);\n }\n );\n }\n })\n );\n }\n }\n\n private filterByImposto(imposto: EnumTipoTributo): string {\n if (imposto) {\n switch (imposto) {\n case EnumTipoTributo.PIS:\n return 'PIS_COFINS';\n case EnumTipoTributo.IPI:\n return 'IPI';\n case EnumTipoTributo.ICMS:\n return 'ICMS';\n case EnumTipoTributo.COFINS:\n return 'PIS_COFINS';\n default:\n return 'PIS_COFINS';\n }\n }\n }\n\n private getLabelAliquota(tributo: EnumTipoTributo) {\n if (tributo == EnumTipoTributo.ICMS_UF_DESTINO || tributo == EnumTipoTributo.ICMS_UF_DESTINO_DEVOLVIDO)\n return this.translate.instant('erpx.tributos.fields_aliquota_interestadual_label');\n\n return this.translate.instant('erpx.tributos.fields_aliquota_label');\n }\n\n public getTranslateButton(value: any) {\n let translate = '.button_memoria_calculo_empty_label';\n if (this.idsTaxesMemoriaCalculo.find((element: any) => { return element.tipoTributo == value && element.idParametro != undefined })) {\n translate = '.button_memoria_calculo_label';\n }\n\n return this.prefixLabel + translate;\n }\n\n isGroupInvalid(group: {\n grupo: string;\n item: {\n formField: FormField[];\n formGroup: FormGroup;\n label: string;\n name: string;\n }[];\n }): boolean {\n return group?.item?.some((item) => item?.formGroup?.invalid);\n }\n\n private getEnabledFeatures(): void {\n this.isLoading = true;\n\n this.featureToggleService\n .isEnabled({\n domain: 'erpx_cpl_imp',\n service: 'cadastros',\n name: 'featureReformaTributaria'\n })\n .pipe(first(), finalize(() => this.isLoading = false))\n .subscribe({\n next: (featureReformaTributaria) => {\n this.featureReformaTributaria = featureReformaTributaria;\n }\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { ErpLookupsModule, LookupValidationUtils } from \"@senior-gestao-empresarial/angular-components\";\r\nimport { ButtonModule, DynamicFormModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\r\nimport { AccordionModule } from \"primeng/accordion\";\r\nimport { FocusService } from \"../focus/focus.service\";\r\nimport { ErpTributosComponent } from \"./erp-tributos.component\";\r\nimport { ErpTributosService } from \"./erp-tributos.service\";\r\n\r\n@NgModule({\r\n declarations: [ErpTributosComponent],\r\n imports: [CommonModule, TranslateModule, ButtonModule, AccordionModule, DynamicFormModule, ErpLookupsModule, LoadingStateModule],\r\n providers: [ErpTributosService, FocusService, LookupValidationUtils],\r\n exports: [ErpTributosComponent],\r\n})\r\nexport class ErpTributosModule {}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService, SortMeta } from 'primeng/api';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport class EntityService<T> {\n constructor(\n protected http: HttpClient,\n protected translateService: TranslateService,\n protected messageService: MessageService,\n protected entityUrl: string,\n protected entityAction?: string\n ) {\n this.http = http;\n this.translateService = translateService;\n this.messageService = messageService;\n this.entityUrl = entityUrl;\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) {\n params = params.append('displayfields', displayFields.join());\n }\n\n return params;\n }\n\n public defaultCatch(): any {\n return catchError((err: any) => {\n if (err) {\n if (err.status === 401) {\n const summary = this.translateService.instant('erpx_com_ven.pedido.error_unauthorized_title');\n const detail = this.translateService.instant('erpx_com_ven.pedido.error_unauthorized_description');\n\n this.messageService.add({\n severity: 'error',\n summary,\n detail,\n sticky: true\n });\n } else {\n const summary = err.status ? String(err.status) : 'Error';\n const detail =\n (err.error && err.error.message) || err.statusText || err.message || 'Error';\n\n this.messageService.add({\n severity: 'error',\n summary,\n detail,\n sticky: true\n });\n }\n }\n\n return throwError(err);\n });\n }\n\n public list(listParams: ListParams) {\n return this.http\n .get<T[]>(this.entityUrl, { params: this.getListQueryParams(listParams) })\n .pipe(this.defaultCatch());\n }\n\n public get(id: any, displayFields?: string) {\n if (displayFields) {\n return this.http.get<T>(`${this.entityUrl}/${id}?displayfields=${displayFields}`).pipe(this.defaultCatch());\n }\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\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface TotalElements {\n totalElements: number;\n}\n\nexport class LookupForm {\n id?: string;\n label?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { MessageService } from 'primeng/api';\nimport { TranslateService } from '@ngx-translate/core';\nimport { QuantidadeDisponivelDemandaDto } from './quantidade-disponivel-demanda-dto';\nimport { EntityService } from '../entity-service';\n\n@Injectable()\nexport class QuantidadeDisponivelDemandaService extends EntityService<QuantidadeDisponivelDemandaDto> {\n constructor(protected http: HttpClient, protected translateService: TranslateService, protected messageService: MessageService) {\n super(\n http,\n translateService,\n messageService,\n `erpx_sup/demandas/entities/quantidadeDisponivelDemanda`,\n `erpx_sup/demandas/actions`\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PermissionsModule } from '@seniorsistemas/platform-components';\nimport { QuantidadeDisponivelDemandaService } from './quantidade-disponivel-demanda.service';\n\n@NgModule({\n imports: [\n PermissionsModule.forChild([\n {\n name: 'quantidadeDisponivelDemanda',\n actions: ['Visualizar', 'Incluir', 'Editar', 'Excluir'],\n uri: `res://senior.com.br/erpx_sup/demandas/entities/quantidadeDisponivelDemanda`,\n },\n ]),\n ],\n providers: [QuantidadeDisponivelDemandaService],\n declarations: [],\n exports: [],\n})\nexport class QuantidadeDisponivelDemandaModule {}\n","export enum EnumTipoDocumentoParametros {\r\n PedidoVenda = 'PedidoVenda',\r\n AnaliseReposicao = 'AnaliseReposicao',\r\n RequisicaoMateriais = 'RequisicaoMateriais',\r\n DemandaDependente = 'DemandaDependente',\r\n AcertoInventario = 'AcertoInventario',\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { catchError, take } from \"rxjs/operators\";\nimport { Observable, throwError } from \"rxjs\";\nimport { MessageService } from \"primeng/api\";\nimport { Injectable } from \"@angular/core\";\nimport { SortMeta } from \"primeng/api\";\n\nexport interface ObterNecessidadesInput {\n e070empId?: string;\n e070filId?: string;\n e012famId?: string[];\n itensId?: string[];\n tipo?: string;\n documentoId?: string;\n dataInicial?: string;\n dataFinal?: string;\n situacao?: string[];\n numeroDocumentoPai?: string[];\n codigoDemanda?: number;\n somenteUrgentes?: boolean;\n pageRequest?: {\n offset?: number;\n size?: number;\n orderyBy?: [\n {\n field: string;\n order: string;\n }\n ];\n };\n}\n\nexport interface ObterNecessidadesOutput {\n total: number;\n necessidades: {\n documento: {\n id: string;\n e070emp: {\n id: string;\n codigo: number;\n descricao: string;\n label: string;\n };\n e070fil: {\n id: string;\n codigo: number;\n descricao: string;\n label: string;\n };\n idExterno: string;\n numeroDocumento: string;\n tipoDocumento: string;\n numeroDocumentoPai: number;\n };\n filial: {\n id: string;\n codigo: number;\n descricao: string;\n label: string;\n };\n id: string;\n item: {\n id: string;\n codigo: string;\n descricao: string;\n label: string;\n tipoItem: string;\n unidadeMedida: {\n id: string;\n uniMed: string;\n desMed: string;\n qtdDec: number;\n familia: {\n id: string;\n codigo: string;\n descricao: string;\n label: string;\n };\n };\n quantidadeOriginal: number;\n quantidadePlanejada: number;\n quantidadeAtendida: number;\n dataEntregaPrevista: string;\n situacao: string;\n demanda: {\n id: string;\n codigo: number;\n empresa: string;\n filial: string;\n quantidade: number;\n dataEntregaPrevista: string;\n documento: string;\n situacao: string;\n realizarReserva: boolean;\n };\n };\n }[];\n}\nexport interface GetUrlInput {\n identifiers: {\n domainName: string;\n serviceName: string;\n appName: string;\n route: string;\n }[];\n}\n\nexport interface GetUrlOutput {\n frontends: {\n appName: string;\n currentVersion: string;\n domainName: string;\n embeddedURL: string;\n route: string;\n serviceName: string;\n url: string;\n }[];\n}\n\n@Injectable()\nexport class ErpLoteSeriesService {\n constructor(protected http: HttpClient, protected messageService: MessageService) {}\n\n private foundationEntitiesUrl = \"erpx_sup/foundation/entities\";\n private supEntitiesUrl = \"erpx_sup/estoque/entities\";\n private queryUrl = \"erpx_sup/estoque/queries\";\n\n public getProductFamily(productID: string) {\n return this.http.get(`${this.foundationEntitiesUrl}/e075der/${productID}`).pipe(this.defaultCatch());\n }\n\n public getProductFamilySupplyInfo(familyID: string) {\n const filter = `id eq '${familyID}'`;\n return this.http\n .get(`${this.foundationEntitiesUrl}/e012famSupGer`, { params: { filter, displayfields: \"ctrVld\" } })\n .pipe(this.defaultCatch());\n }\n\n public listBatch(params: any) {\n return this.http.post(`${this.queryUrl}/consultarSaldoPorLote`, params).pipe(this.defaultCatch());\n }\n\n public listSeries(params: any) {\n return this.http.post(`${this.queryUrl}/consultarSaldoPorSerie`, params).pipe(this.defaultCatch());\n }\n\n public getBatch(listParams: ListParams) {\n return this.http.get(`${this.supEntitiesUrl}/e200lot`, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public getSerie(listParams: ListParams) {\n return this.http.get(`${this.supEntitiesUrl}/e200ser`, { params: this.getListQueryParams(listParams) }).pipe(this.defaultCatch());\n }\n\n public consultarSaldoEstoque(balancePayload: any) {\n return this.http.post(`${this.queryUrl}/consultarSaldoEstoque`, balancePayload);\n }\n\n public defaultCatch(): any {\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 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) {\n params = params.append(\"displayfields\", displayFields.join());\n }\n\n return params;\n }\n\n public getUrl(getUrlInput: GetUrlInput) {\n const url = `platform/frontend_updater/queries/getFrontend`;\n return this.http.post<any>(url, getUrlInput).pipe(this.defaultCatch());\n }\n\n public obterNecessidades(obterNecessidadesInput: ObterNecessidadesInput): Observable<ObterNecessidadesOutput> {\n const url = `erpx_sup/demandas/queries/obterNecessidades`;\n return this.http.post(url, obterNecessidadesInput).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","import { Component, Input, OnChanges } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { E210DxpLookup, EnumLogicalOperator } from '@senior-gestao-empresarial/angular-components';\nimport { EnumColumnFieldType, FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment from 'moment';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { first, map, takeUntil } from 'rxjs/operators';\nimport {\n QuantidadeDisponivelDemanda\n} from '../../core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda';\nimport {\n QuantidadeDisponivelDemandaService\n} from '../../core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service';\nimport { EnumTipoDocumentoParametros } from '../../core/enums/enum-tipo-documento-parametros';\nimport { ErpLoteSeriesService, GetUrlInput, GetUrlOutput, ListParams } from './erp-lote-serie.service';\nimport { isNotEmpty, isEmpty } from \"../utils/utils\";\nimport { compare } from \"@seniorsistemas/platform-components/modules/advanced-filter/utils/comparator\";\n\n@Component({\n selector: 'erp-lote-serie',\n templateUrl: './erp-lote-serie.component.html'\n})\n\nexport class ErpLoteSerieComponent implements OnChanges {\n\n public readonly EnumTipoMovimentacao = EnumTipoMovimentacao;\n\n public gridData: any = [];\n public selection: any = [];\n public gridColumns: any[];\n public localeConfig: any = {};\n public locale: any = {};\n\n @Input() loteSerieParams: LoteSerieParams;\n @Input() blockedFields = false;\n @Input() showHeader = true;\n @Input() validateInvalidChars = false;\n\n private e200lotLookupSuggestionsObservable = new Subject<any>();\n private e200lotlookupSearchObservable = new Subject<any>();\n private e200serLookupSuggestionsObservable = new Subject<any>();\n private e200serlookupSearchObservable = new Subject<any>();\n private ngUnsubscribe = new Subject<any>();\n\n private quantidadeDisponivelDemandaLookupSuggestionsObservable = new Subject<QuantidadeDisponivelDemanda>();\n private quantidadeDisponivelDemandalookupSearchObservable = new Subject<QuantidadeDisponivelDemanda>();\n\n public formGroupBatchOrSeries: FormGroup;\n public batchOrSeriesFields: any[];\n public loteLookupDisplayFields = [ 'e200lot.codLote' ];\n public serieLookupDisplayFields = [ 'e200ser.numSep' ];\n\n public titleLoteOrSerie: string;\n public titleGridLoteOrSerie: string;\n public isSerie = false;\n public qtdAdistribuir = 0;\n public qtdDistribuida = 0;\n public qtdRestante = 0;\n public maxLength = 50;\n public obrigaValidade = false;\n public isSaida = false;\n public disableDataValidade = false;\n public prefix = 'erpx.lote_serie.';\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private e210DxpLookup: E210DxpLookup,\n private formBuilder: FormBuilder,\n private messageService: MessageService,\n private batchSeriesService: ErpLoteSeriesService,\n private quantidadeDisponivelDemandaService: QuantidadeDisponivelDemandaService\n ) {\n }\n\n ngOnChanges() {\n if (this.loteSerieParams) {\n this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data: any) => this.onRouteDataChange(data));\n this.formGroupBatchOrSeries = this.getFormGroupDados();\n this.validaDados();\n this.gridColumns = this.getGridColumns();\n }\n\n if (this.blockedFields == true)\n this.formGroupBatchOrSeries.disable();\n\n this.formGroupBatchOrSeries.controls.lote.valueChanges.subscribe(value => {\n if (value) {\n if (this.validateInvalidChars && /\\t|\\r|\\n/g.exec(value)) {\n this.formGroupBatchOrSeries.controls.lote.setErrors({ 'existsInvalidChar': true });\n return;\n }\n }\n });\n\n this.formGroupBatchOrSeries.controls.serie.valueChanges.subscribe(value => {\n if (value) {\n if (this.validateInvalidChars && /\\t|\\r|\\n/g.exec(value)) {\n this.formGroupBatchOrSeries.controls.serie.setErrors({ 'existsInvalidChar': true });\n return;\n }\n }\n });\n }\n\n private validaDados() {\n\n this.processFamilySupplyInfo(this.loteSerieParams.dadosProduto.e012fam);\n\n if (this.loteSerieParams.tipoControleProduto == 'Serie') {\n this.titleLoteOrSerie = this.translate.instant(`${ this.prefix }serie_title`);\n this.titleGridLoteOrSerie = this.translate.instant(`${ this.prefix }serie_title_grid`);\n this.isSerie = true;\n\n } else {\n this.titleLoteOrSerie = this.translate.instant(`${ this.prefix }lote_title`);\n this.titleGridLoteOrSerie = this.translate.instant(`${ this.prefix }lote_title_grid`);\n this.isSerie = false;\n }\n\n if (this.loteSerieParams.tipoMovimentacao == 'Entrada') {\n this.batchOrSeriesFields = this.getFieldsEntrada();\n\n if (this.isSerie) {\n this.formGroupBatchOrSeries.controls.serie.clearValidators();\n this.formGroupBatchOrSeries.controls.serie.setValidators([\n Validators.required, Validators.maxLength(50)\n ]);\n this.formGroupBatchOrSeries.controls.serie.updateValueAndValidity({ emitEvent: false });\n\n } else {\n this.formGroupBatchOrSeries.controls.lote.clearValidators();\n this.formGroupBatchOrSeries.controls.quantidade.clearValidators();\n\n this.formGroupBatchOrSeries.controls.lote.setValidators([\n Validators.required, Validators.maxLength(50)\n ]);\n\n this.formGroupBatchOrSeries.controls.quantidade.setValidators([\n Validators.required\n ]);\n\n this.formGroupBatchOrSeries.controls.lote.updateValueAndValidity({ emitEvent: false });\n this.formGroupBatchOrSeries.controls.quantidade.updateValueAndValidity({ emitEvent: false });\n }\n\n this.formGroupBatchOrSeries.controls.bulkVisible.valueChanges.subscribe(value => {\n if (value) {\n this.formGroupBatchOrSeries.controls.batchSerieBulk.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.batchSerieBulk.updateValueAndValidity({ emitEvent: false });\n return;\n }\n this.formGroupBatchOrSeries.controls.batchSerieBulk.clearValidators();\n this.formGroupBatchOrSeries.controls.batchSerieBulk.updateValueAndValidity({ emitEvent: false });\n });\n\n } else {\n this.isSaida = true;\n\n if (this.isSerie) {\n this.formGroupBatchOrSeries.controls.serie.clearValidators();\n this.formGroupBatchOrSeries.controls.serie.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.serie.updateValueAndValidity({ emitEvent: false });\n } else {\n this.formGroupBatchOrSeries.controls.lote.clearValidators();\n this.formGroupBatchOrSeries.controls.lote.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.lote.updateValueAndValidity({ emitEvent: false });\n this.formGroupBatchOrSeries.controls.quantidade.clearValidators();\n this.formGroupBatchOrSeries.controls.quantidade.setValidators([ Validators.required ]);\n this.formGroupBatchOrSeries.controls.quantidade.updateValueAndValidity({ emitEvent: false });\n }\n this.batchOrSeriesFields = this.getFieldsSaida();\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n }\n\n this.formGroupBatchOrSeries.controls.dataFabricacao.valueChanges.subscribe(val => {\n if (val) {\n this.formGroupBatchOrSeries.controls.dataValidade.clearValidators();\n this.formGroupBatchOrSeries.controls.dataValidade.setValidators([]);\n this.formGroupBatchOrSeries.controls.dataValidade.updateValueAndValidity({ emitEvent: false });\n } else {\n this.formGroupBatchOrSeries.controls.dataValidade.clearValidators();\n this.formGroupBatchOrSeries.controls.dataValidade.updateValueAndValidity({ emitEvent: false });\n }\n\n });\n\n this.qtdDistribuida = 0;\n this.qtdAdistribuir = this.loteSerieParams.quantidadeDistribuir;\n\n if (this.loteSerieParams.lotesOrSeries) {\n this.gridData = this.loteSerieParams.lotesOrSeries;\n this.qtdDistribuida = this.getQuantidadeDistribuida();\n this.qtdRestante = this.qtdAdistribuir - this.qtdDistribuida;\n } else {\n this.qtdRestante = this.qtdAdistribuir;\n }\n }\n\n private getFormGroupDados() {\n const formGroup = this.formBuilder.group({\n deposito: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n lote: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n dataValidade: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n dataFabricacao: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n serie: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n saldo: [ { value: undefined, disabled: true }, Validators.compose([]) ],\n quantidade: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n batchSerieBulk: [ { value: undefined, disabled: false }, Validators.compose([]) ],\n bulkVisible: [ { value: false, disabled: false }, Validators.compose([]) ],\n });\n\n return formGroup;\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 getFieldsEntrada() {\n\n let dadosFieldsEntrada: any[] = [];\n\n if (!this.loteSerieParams.dadosProduto.e205dep) {\n dadosFieldsEntrada = [\n new FormField({\n ...this.e210DxpLookup.mountOptions({\n multiple: false,\n domain: 'erpx_sup',\n service: 'estoque',\n formGroup: 'deposito',\n searchFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n }\n ],\n\n searchGridFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n },\n { name: 'e205dep.e070fil.nomFil', type: FieldType.String }\n ],\n\n defaultFilter: [ { field: 'excluido', operator: EnumLogicalOperator.Eq, values: [ 'false' ] },\n {\n field: 'e070emp.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e070emp ]\n },\n { field: 'sitEst', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n { field: 'e205dep.sitDep', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n {\n field: 'e075der.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e075der ]\n } ]\n\n }),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n })\n ];\n }\n\n\n dadosFieldsEntrada.push(\n new FormField({\n name: 'bulkVisible',\n label: this.translate.instant(`${ this.prefix }bulk_visible`),\n size: { sm: 12, md: 4, lg: 4, xl: 12 },\n type: FieldType.Boolean,\n representedBy: \"switch\"\n }),\n new FormField({\n name: 'batchSerieBulk',\n label: this.translate.instant(`${ this.prefix }batch_serie_bulk`),\n size: { sm: 12, md: 4, lg: 4, xl: 6 },\n type: FieldType.Text,\n rows: 5,\n onBlur: (event: any) => this.onBlurValidaLoteorSerie(event.target.value),\n required: () => true,\n errorMessages: () => ({\n existsInvalidChar: this.translate.instant(`${ this.prefix }exists_invalid_char`)\n }),\n visible: () => this.formGroupBatchOrSeries.controls.bulkVisible.value\n }),\n new FormField({\n name: this.isSerie ? 'serie' : 'lote',\n label: this.isSerie ? this.translate.instant(`${ this.prefix }serie`) : this.translate.instant(`${ this.prefix }lote`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.String,\n onBlur: (event: any) => this.onBlurValidaLoteorSerie(event.target.value),\n required: () => true,\n errorMessages: () => ({\n existsInvalidChar: this.translate.instant(`${ this.prefix }exists_invalid_char`)\n }),\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n new FormField({\n name: 'dataFabricacao',\n label: this.translate.instant(`${ this.prefix }data_fabricacao`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n new FormField({\n name: 'dataValidade',\n label: this.translate.instant(`${ this.prefix }data_validade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n required: () => this.obrigaValidade,\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n new FormField({\n name: 'saldo',\n label: this.translate.instant(`${ this.prefix }saldo`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n }),\n );\n\n if (!this.isSerie) {\n dadosFieldsEntrada.push(\n new FormField({\n name: 'quantidade',\n label: this.translate.instant(`${ this.prefix }quantidade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n required: () => true,\n onBlur: () => this.onBlurQuantity(),\n visible: () => !this.formGroupBatchOrSeries.controls.bulkVisible.value,\n numberLocaleOptions: this.localeConfig.number\n }),\n );\n }\n\n return dadosFieldsEntrada;\n }\n\n private getFieldsSaida() {\n let dadosFieldsSaida: any[] = [];\n\n if (!this.loteSerieParams.dadosProduto.e205dep) {\n dadosFieldsSaida = [\n\n new FormField({\n ...this.e210DxpLookup.mountOptions({\n multiple: false,\n domain: 'erpx_sup',\n service: 'estoque',\n formGroup: 'deposito',\n searchFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n }\n ],\n\n searchGridFields: [\n { name: 'e205dep.codDep', type: FieldType.String }, {\n name: 'e205dep.desDep',\n type: FieldType.String\n },\n { name: 'e205dep.abrDep', type: FieldType.String }, {\n name: 'e205dep.e070fil.codFil',\n type: FieldType.Integer\n },\n { name: 'e205dep.e070fil.nomFil', type: FieldType.String }\n ],\n\n defaultFilter: [ { field: 'excluido', operator: EnumLogicalOperator.Eq, values: [ 'false' ] },\n {\n field: 'e070emp.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e070emp ]\n },\n { field: 'sitEst', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n { field: 'e205dep.sitDep', operator: EnumLogicalOperator.Eq, values: [ 'VA' ] },\n {\n field: 'e075der.id',\n operator: EnumLogicalOperator.Eq,\n values: [ this.loteSerieParams.dadosProduto.e075der ]\n } ]\n\n }),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n }),\n ];\n }\n\n if (this.isSerie) {\n dadosFieldsSaida.push(\n new FormField({\n name: 'serie',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser`),\n type: FieldType.Lookup,\n searchTitle: this.translate.instant(\n `${ this.prefix }lookup_e200ser_search_title`\n ),\n searchEmptyTitle: this.translate.instant(\n `${ this.prefix }nothing_found`\n ),\n filterLabel: this.translate.instant(`${ this.prefix }filter`),\n clearLabel: this.translate.instant(`${ this.prefix }clear`),\n cancelLabel: this.translate.instant(`${ this.prefix }cancel`),\n selectLabel: this.translate.instant(`${ this.prefix }select`),\n onSelect: (event: any) => {\n if (\n this.loteSerieParams?.invoiceInformation?.origin !==\n EnumInvoiceOrigin.V2\n )\n this.validaLoteorSerie(event);\n },\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onSearchRequest: (event: any) =>\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.onQuantidadeDisponivelDemandaRequest(event)\n : this.onE200SerSearchRequest(event),\n onLookupRequest: (value: string) =>\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.onQuantidadeDisponivelDemandaRequest(value)\n : this.onE200SerLookupRequest(value),\n suggestionsObservable:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this\n .quantidadeDisponivelDemandaLookupSuggestionsObservable\n : this.e200serLookupSuggestionsObservable,\n searchObservable:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.quantidadeDisponivelDemandalookupSearchObservable\n : this.e200serlookupSearchObservable,\n lookupDisplayField: 'label',\n searchFields:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.getQuantidadeDisponivelDemandaSearchFields()\n : this.getE200SerSearchFields(),\n searchGridFields:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? this.getQuantidadeDisponivelDemandaSearchGridFields()\n : this.getE200SerSearchGridFields(),\n multiple:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2,\n dataKey:\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n ? 'id'\n : 'e200ser.id',\n required: () => true\n }),\n\n new FormField({\n name: 'dataFabricacao',\n label: this.translate.instant(`${ this.prefix }data_fabricacao`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n visible: () => !this.isDistributeSeriesButtonVisible()\n }),\n\n new FormField({\n name: 'dataValidade',\n label: this.translate.instant(`${ this.prefix }data_validade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n required: () => this.obrigaValidade,\n visible: () => !this.isDistributeSeriesButtonVisible()\n }),\n\n new FormField({\n name: 'saldo',\n label: this.translate.instant(`${ this.prefix }saldo`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n visible: () => !this.isDistributeSeriesButtonVisible()\n }),\n );\n } else {\n dadosFieldsSaida.push(\n new FormField({\n name: 'lote',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot`),\n type: FieldType.Lookup,\n searchTitle: this.translate.instant(`${ this.prefix }lookup_e200lot_search_title`),\n searchEmptyTitle: this.translate.instant(`${ this.prefix }nothing_found`),\n filterLabel: this.translate.instant(`${ this.prefix }filter`),\n clearLabel: this.translate.instant(`${ this.prefix }clear`),\n cancelLabel: this.translate.instant(`${ this.prefix }cancel`),\n selectLabel: this.translate.instant(`${ this.prefix }select`),\n onSelect: (event: any) => this.validaLoteorSerie(event),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n onSearchRequest: (event: any) => this.onE200LotSearchRequest(event),\n onLookupRequest: (value: string) => this.onE200LotLookupRequest(value),\n suggestionsObservable: this.e200lotLookupSuggestionsObservable,\n searchObservable: this.e200lotlookupSearchObservable,\n lookupDisplayField: 'label',\n searchFields: this.getE200LotSearchFields(),\n searchGridFields: this.getE200LotSearchGridFields(),\n required: () => true\n }),\n\n new FormField({\n name: 'dataFabricacao',\n label: this.translate.instant(`${ this.prefix }data_fabricacao`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body'\n }),\n\n new FormField({\n name: 'dataValidade',\n label: this.translate.instant(`${ this.prefix }data_validade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Date,\n appendTo: 'body',\n required: () => this.obrigaValidade\n }),\n\n new FormField({\n name: 'saldo',\n label: this.translate.instant(`${ this.prefix }saldo`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec\n }),\n\n new FormField({\n name: 'quantidade',\n label: this.translate.instant(`${ this.prefix }quantidade`),\n size: { sm: 12, md: 4, lg: 4, xl: 3 },\n type: FieldType.Double,\n scale: this.loteSerieParams.dadosProduto.qtdDec,\n required: () => true,\n onBlur: () => this.onBlurQuantity()\n }),\n );\n }\n return dadosFieldsSaida;\n }\n\n private getGridColumns() {\n\n let gridColumns: any;\n\n if (this.isSerie) {\n gridColumns = [\n {\n field: 'serie',\n header: this.translate.instant(`${ this.prefix }serie`),\n attributes: [ \"codigo\" ],\n type: EnumColumnFieldType.STRING,\n },\n { field: 'dataFabricacao', header: this.translate.instant(`${ this.prefix }data_fabricacao`) },\n { field: 'dataValidade', header: this.translate.instant(`${ this.prefix }data_validade`) },\n ];\n } else {\n gridColumns = [\n {\n field: 'lote',\n header: this.translate.instant(`${ this.prefix }lote`),\n attributes: [ \"codigo\" ],\n type: EnumColumnFieldType.STRING,\n },\n { field: 'quantidade', header: this.translate.instant(`${ this.prefix }quantidade`) },\n { field: 'dataFabricacao', header: this.translate.instant(`${ this.prefix }data_fabricacao`) },\n { field: 'dataValidade', header: this.translate.instant(`${ this.prefix }data_validade`) }\n ];\n }\n\n return gridColumns;\n }\n\n public getE200LotSearchFields() {\n const searchFields = [\n new FormField({\n name: 'e200lot.codLote',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_cod_dep`),\n type: FieldType.String,\n })\n ];\n\n return searchFields;\n }\n\n public getE200SerSearchFields() {\n const searchFields = [\n new FormField({\n name: 'e200ser.numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n })\n ];\n\n return searchFields;\n }\n\n private onE200LotSearchRequest(event: any) {\n\n let filterQuery: any;\n let deposito = '';\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const displayFields = [ 'e200lot.codLote' ];\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const orderBy: any = multiSortMeta ? multiSortMeta.map((s: any) => ({\n field: s.field == 'e200lot.codLote' ? 'e200lot.codLot' : s.field,\n order: s.order == 1 ? 'ASC' : 'DESC'\n })) : [ { field: 'e200lot.codLot', order: 'ASC' } ];\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n lotLike: true,\n lotSal: true,\n offset: page,\n lotDis: true,\n size: rows\n };\n\n if (filterData['e200lot.codLote']) {\n filterQuery.e200lot = [ {\n codLot: filterData['e200lot.codLote']\n } ];\n }\n\n if (orderBy) {\n filterQuery.orderBy = orderBy;\n }\n\n this.batchSeriesService\n .listBatch(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n gridData: list.lotes.map((item: any) => ({\n ...item,\n label: displayFields\n .map((field: any) => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n totalRecords: list.totalElements\n\n }))\n )\n .subscribe((data: any) => {\n this.e200lotlookupSearchObservable.next(data);\n });\n }\n\n public getQuantidadeDisponivelDemandaSearchFields(): FormField[] {\n return [\n new FormField({\n name: 'numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n })\n ];\n }\n\n public getQuantidadeDisponivelDemandaSearchGridFields() {\n return [\n new FormField({\n name: 'numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n }),\n new FormField({\n name: 'datFabSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_fab`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'datVltSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_vlt`),\n type: FieldType.Date,\n })\n ];\n }\n\n private onQuantidadeDisponivelDemandaRequest(event: any): void {\n const listParams: ListParams = {\n filterQuery: `idExterno eq '${ this.loteSerieParams.orderInformation.item.id }' and qtdDisponivel > 0 and numSep is not null`\n };\n\n if (event instanceof String || typeof event === 'string') {\n listParams.page = 0;\n listParams.size = 10;\n listParams.filterQuery += ` and containing(lower(numSep), lower('${ event\n .replace(/\\\\/g, '')\n .replace(/'/g, '\\\\\\'') }'))`;\n } else {\n const { filterData, rows, multiSortMeta } = event;\n\n listParams.page = event.first / rows;\n listParams.sort = multiSortMeta ? multiSortMeta : null;\n\n if (filterData.numSep !== null && filterData.numSep !== undefined) {\n listParams.filterQuery += ` and containing(lower(numSep), lower('${ filterData.numSep\n .replace(/\\\\/g, '')\n .replace(/'/g, '\\\\\\'') }'))`;\n }\n }\n\n this.quantidadeDisponivelDemandaService\n .list(listParams)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((list: any) => ({\n gridData: list.contents.map((item: QuantidadeDisponivelDemanda) => ({\n ...item,\n id: item.e200serId,\n label: `${ item.numSep }`\n })),\n totalRecords: list.totalElements\n })))\n .subscribe((data: any) => {\n this.quantidadeDisponivelDemandaLookupSuggestionsObservable.next(data.gridData);\n this.quantidadeDisponivelDemandalookupSearchObservable.next(data);\n });\n }\n\n private onE200SerSearchRequest(event: any) {\n\n let filterQuery: any;\n let deposito = '';\n const { first, rows, multiSortMeta, filterData } = event;\n const page = first / rows;\n const displayFields = [ 'e200ser.numSep' ];\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const orderBy: any = multiSortMeta ? multiSortMeta.map((s: any) => ({\n ...s,\n order: s.order == 1 ? 'ASC' : 'DESC'\n })) : [ { field: 'e200ser.numSep', order: 'ASC' } ];\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n serLike: true,\n serSal: true,\n offset: page,\n serDis: true,\n size: rows\n };\n\n if (filterData['e200ser.numSep']) {\n filterQuery.e200ser = [ {\n numSep: filterData['e200ser.numSep']\n } ];\n }\n\n if (orderBy) {\n filterQuery.orderBy = orderBy;\n }\n\n this.batchSeriesService\n .listSeries(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n gridData: list.series.map((item: any) => ({\n ...item,\n label: displayFields\n .map((field: any) => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n totalRecords: list.totalElements\n\n }))\n )\n .subscribe((data: any) => {\n this.e200serlookupSearchObservable.next(data);\n });\n }\n\n public removeBatchOrSeries(rowData: any) {\n if (this.blockedFields == false) {\n this.qtdDistribuida -= this.isSerie ? 1 : Number(rowData.quantidade);\n this.qtdRestante += this.isSerie ? 1 : Number(rowData.quantidade);\n\n this.gridData = this.gridData.filter((batchOrSeries: any) => {\n return batchOrSeries.codigo != rowData.codigo;\n });\n\n this.loteSerieParams.lotesOrSeries = this.gridData;\n }\n }\n\n private sum = (a, b, positions) => { const factor = Math.pow(10, positions); return (a.toFixed(positions) * factor + b.toFixed(positions) * factor) / factor}\n private sub = (a, b, positions) => { const factor = Math.pow(10, positions); return (a.toFixed(positions) * factor - b.toFixed(positions) * factor) / factor}\n\n public addBatchOrSeries() {\n let codigo: string;\n let id = '';\n\n this.validateAllFormFields(this.formGroupBatchOrSeries);\n\n if (this.formGroupBatchOrSeries.controls.bulkVisible.value) {\n if (isEmpty(this.formGroupBatchOrSeries.controls.batchSerieBulk.value)) {\n return;\n }\n const convertedArray = this.formGroupBatchOrSeries.controls.batchSerieBulk.value.split('\\n');\n this.gridData = [];\n this.qtdDistribuida = 0;\n this.qtdAdistribuir = this.loteSerieParams.quantidadeDistribuir;\n this.qtdRestante = 0;\n let linhaAtual = 0;\n if (convertedArray.length == 0) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_layout`);\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }invalid_layout`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n convertedArray.forEach((value: any) => {\n linhaAtual++;\n const currentValue = value.split(';');\n if ((this.isSerie && currentValue.length > 3) || (!this.isSerie && currentValue.length > 4)) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_layout`);\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }invalid_layout`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n const convertedValue: BulkImport = (this.isSerie) ? {\n codigo: this.toCode(currentValue[0], this.translate.instant(`${ this.prefix }codigo_not_informed_batch`, { line: linhaAtual })),\n dataFabricacao: this.toDate(currentValue[1], this.translate.instant(`${ this.prefix }manufacturing_date_invalid_batch`, { line: linhaAtual })),\n dataValidade: this.toDate(currentValue[2], this.translate.instant(`${ this.prefix }validate_date_invalid_batch`, { line: linhaAtual })),\n quantidade: 1\n } : {\n codigo: this.toCode(currentValue[0], this.translate.instant(`${ this.prefix }codigo_not_informed_batch`, { line: linhaAtual })),\n quantidade: this.toAmount(currentValue[1], linhaAtual),\n dataFabricacao: this.toDate(currentValue[2], this.translate.instant(`${ this.prefix }manufacturing_date_invalid_batch`, { line: linhaAtual })),\n dataValidade: this.toDate(currentValue[3], this.translate.instant(`${ this.prefix }validate_date_invalid_batch`, { line: linhaAtual }))\n };\n\n // valida se a familia obriga a informar validade\n if (this.obrigaValidade && !convertedValue.dataValidade) {\n const msgError = this.translate.instant(`${ this.prefix }error_selected_dates_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_expiry_date`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n // valida se existe código duplicado\n if (this.gridData.some((value: BulkImport) => value.codigo === convertedValue.codigo)) {\n const msgError = (this.isSerie) ? this.translate.instant(`${ this.prefix }duplicated_series_msg_batch`, { line: linhaAtual }) : this.translate.instant(`${ this.prefix }duplicated_batch_msg_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }batch_distribution_error`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n // valida se a data de fabricação é maior que a validade\n if (convertedValue.dataValidade && convertedValue.dataFabricacao &&\n convertedValue.dataValidade < convertedValue.dataFabricacao) {\n const msgError = this.translate.instant(`${ this.prefix }expiry_lower_than_manufacturing_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_selected_dates`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n this.qtdDistribuida += convertedValue.quantidade;\n // valida se a quantidade distribuida é maior que a quantidade a distribuir\n if (this.qtdDistribuida > this.qtdAdistribuir) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_qty_msg_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }distribution_error`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n this.gridData.push(convertedValue);\n this.qtdRestante = this.qtdAdistribuir - this.qtdDistribuida;\n });\n this.loteSerieParams.lotesOrSeries = this.gridData;\n this.formGroupBatchOrSeries.controls.batchSerieBulk.reset();\n this.messageService.clear();\n return;\n }\n\n if (this.formGroupBatchOrSeries.valid &&\n (this.formGroupBatchOrSeries.controls.serie.value || this.formGroupBatchOrSeries.controls.lote.value)) {\n\n if (this.isSerie)\n this.formGroupBatchOrSeries.controls.quantidade.patchValue(1);\n\n if (this.formGroupBatchOrSeries.controls.dataValidade.value && this.formGroupBatchOrSeries.controls.dataFabricacao.value &&\n this.formGroupBatchOrSeries.controls.dataValidade.value < this.formGroupBatchOrSeries.controls.dataFabricacao.value) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_selected_dates`),\n detail: this.translate.instant(`${ this.prefix }expiry_lower_than_manufacturing`)\n });\n return;\n }\n\n if (this.obrigaValidade) {\n if (!this.formGroupBatchOrSeries.controls.dataValidade.value) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }error_selected_dates`),\n detail: this.translate.instant(`${ this.prefix }error_expiry_date`)\n });\n return;\n }\n }\n\n const distributedQuantity = this.formGroupBatchOrSeries.get('quantidade').value ? Number(this.formGroupBatchOrSeries.get('quantidade').value) : 0;\n\n if (distributedQuantity > 0) {\n if (this.sum(this.qtdDistribuida, distributedQuantity, this.locale.number.scale) > this.qtdAdistribuir) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }distribution_error`),\n detail: this.translate.instant(`${ this.prefix }invalid_qty_msg`)\n });\n return;\n }\n } else {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }distribution_error`),\n detail: this.translate.instant(`${ this.prefix }invalid_qtd`)\n });\n return;\n }\n\n if (this.isSerie) {\n if (this.isSaida) {\n if (this.formGroupBatchOrSeries.controls.serie.value.e200ser) {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.e200ser.numSep;\n id = this.formGroupBatchOrSeries.controls.serie.value.e200ser.id;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.numSep;\n id = this.formGroupBatchOrSeries.controls.serie.value.id;\n }\n } else {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.toUpperCase();\n this.formGroupBatchOrSeries.controls.serie.patchValue(this.formGroupBatchOrSeries.controls.serie.value.toUpperCase());\n }\n } else {\n if (this.isSaida) {\n if (this.formGroupBatchOrSeries.controls.lote.value.e200lot) {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.e200lot.codLote;\n id = this.formGroupBatchOrSeries.controls.lote.value.e200lot.id;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.codLot;\n id = this.formGroupBatchOrSeries.controls.lote.value.id;\n }\n } else {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.toUpperCase();\n this.formGroupBatchOrSeries.controls.lote.patchValue(this.formGroupBatchOrSeries.controls.lote.value.toUpperCase());\n }\n }\n\n if (this.isDuplicateBatchSeries()) {\n if (!this.isSerie) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }batch_distribution_error`),\n detail: this.translate.instant(`${ this.prefix }duplicated_batch_msg`)\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }series_distribution_error`),\n detail: this.translate.instant(`${ this.prefix }duplicated_series_msg`)\n });\n }\n return;\n }\n\n let loteOrSerieValues = this.formGroupBatchOrSeries.getRawValue();\n\n loteOrSerieValues = this.formatDates(loteOrSerieValues, [ 'dataFabricacao', 'dataValidade' ]);\n\n if (this.loteSerieParams?.invoiceInformation?.origin === EnumInvoiceOrigin.V2 && loteOrSerieValues.serie) {\n if (Array.isArray(loteOrSerieValues.serie)) {\n for (const value of loteOrSerieValues.serie) {\n this.gridData.push({\n id: value.id,\n codigo: value.numSep,\n quantidade: value.qtdDisponivel,\n dataFabricacao: value.datFabSep,\n dataValidade: value.datVltSep\n });\n this.qtdDistribuida = this.sum(this.qtdDistribuida, Number(value.qtdDisponivel), this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, Number(value.qtdDisponivel), this.locale.number.scale)\n }\n } else {\n this.gridData.push({\n id: loteOrSerieValues.serie.id,\n codigo: loteOrSerieValues.serie.numSep,\n quantidade: loteOrSerieValues.serie.qtdDisponivel,\n dataFabricacao: loteOrSerieValues.serie.datFabSep,\n dataValidade: loteOrSerieValues.serie.datVltSep\n });\n\n this.qtdDistribuida = this.sum(this.qtdDistribuida, Number(loteOrSerieValues.serie.qtdDisponivel), this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, Number(loteOrSerieValues.serie.qtdDisponivel), this.locale.number.scale)\n\n }\n } else {\n this.gridData.push({\n id: id,\n codigo: codigo,\n quantidade: loteOrSerieValues.quantidade,\n dataFabricacao: loteOrSerieValues.dataFabricacao,\n dataValidade: loteOrSerieValues.dataValidade\n });\n\n this.qtdDistribuida = this.sum(this.qtdDistribuida, Number(loteOrSerieValues.quantidade), this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, Number(loteOrSerieValues.quantidade), this.locale.number.scale)\n }\n\n this.clearBatchSeries();\n this.loteSerieParams.lotesOrSeries = this.gridData;\n } else {\n return this.validateAllFormFields(this.formGroupBatchOrSeries);\n }\n }\n\n private toCode(currentValue: string, msgError: string) {\n currentValue = String(currentValue).trim().toUpperCase()\n if (isEmpty(currentValue)) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }codigo_not_informed`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n return currentValue;\n }\n\n private toAmount(currentValue: string, linhaAtual: number) {\n const convertedValue = this.toNumber(currentValue);\n if (!currentValue || !convertedValue && convertedValue != 0) {\n const msgError = this.translate.instant(`${ this.prefix }amount_not_informed_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_not_informed`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n if (String(currentValue).indexOf(this.locale.number.thousandsSeparator) > 0) {\n const msgError = this.translate.instant(`${ this.prefix }format_number_invalid_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_invalid_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n\n if (convertedValue <= 0) {\n const msgError = this.translate.instant(`${ this.prefix }amount_quantity_that_zero_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_invalid_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n const temDecimal = String(convertedValue).split('.');\n\n if (temDecimal.length > 1 && this.locale.number.scale != String(convertedValue).split('.')[1].length) {\n const msgError = this.translate.instant(`${ this.prefix }invalid_decimals_batch`, { line: linhaAtual });\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }amount_invalid_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n return convertedValue;\n }\n\n private toNumber(currentValue: string) {\n return (isNotEmpty(currentValue)) ? Number(currentValue.replace(this.locale.number.thousandsSeparator, '').replace(this.locale.number.decimalSeparator, '.')) : undefined;\n }\n\n private toDate(currentValue: string, msgError: string) {\n if (isNotEmpty(currentValue) && !moment(currentValue.trim(), 'L', true).isValid()) {\n this.messageService.add({\n severity: 'error',\n summary: this.translate.instant(`${ this.prefix }invalid_date_batch`),\n detail: msgError,\n life: 20000\n });\n this.gridData = [];\n throw msgError;\n }\n return (isNotEmpty(currentValue)) ? moment(currentValue.trim(), 'L', true).format('YYYY-MM-DD') : undefined;\n }\n\n private isDuplicateBatchSeries(): boolean {\n let codigo: string;\n\n if (!this.isSerie) {\n if (this.isSaida) {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.e200lot ?\n this.formGroupBatchOrSeries.controls.lote.value.e200lot.codLote :\n this.formGroupBatchOrSeries.controls.lote.value.codLot;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.lote.value.toUpperCase();\n }\n return this.gridData.find((element: any) => {\n if (element.codigo === codigo)\n return true;\n\n return false;\n });\n } else {\n if (this.isSaida && Array.isArray(this.formGroupBatchOrSeries?.controls?.serie?.value)) {\n for (const series of this.formGroupBatchOrSeries?.controls?.serie?.value) {\n for (const addedSeries of this.gridData) {\n if (series.numSep === addedSeries.codigo) return true;\n }\n }\n\n return false;\n }\n return this.gridData.find((element: any) => {\n if (this.isSaida) {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.e200ser ?\n this.formGroupBatchOrSeries.controls.serie.value.e200ser.numSep :\n this.formGroupBatchOrSeries.controls.serie.value.numSep;\n } else {\n codigo = this.formGroupBatchOrSeries.controls.serie.value.toUpperCase();\n }\n\n if (element.codigo === codigo)\n return true;\n\n return false;\n });\n }\n }\n\n private clearBatchSeries() {\n this.formGroupBatchOrSeries.reset();\n if (this.isSaida) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n } else {\n if (this.blockedFields == false)\n this.formGroupBatchOrSeries.controls.dataFabricacao.enable();\n if ((!this.disableDataValidade) && (this.blockedFields == false)) {\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n }\n }\n }\n\n private validaLoteorSerie(event: any) {\n\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n\n if (!this.isSerie) {\n this.getDatas(event.codLot ? event.codLot : event.e200lot.codLote);\n this.consultaSaldoEstoque(event.codLot ? event.codLot : event.e200lot.codLote);\n } else {\n this.getDatas(event.numSep ? event.numSep : event.e200ser.numSep);\n this.consultaSaldoEstoque(event.numSep ? event.numSep : event.e200ser.numSep);\n }\n }\n\n private onBlurValidaLoteorSerie(value: any) {\n // Quando realiza o tab, abre o calendar, por isso é necessário desabilitar antes\n if (value) {\n if (this.validateInvalidChars) {\n const newValue = value.trim();\n if (value !== newValue) {\n if (this.loteSerieParams.tipoControleProduto == EnumTipoControleProduto.Serie) {\n this.formGroupBatchOrSeries.controls.serie.patchValue(newValue);\n } else {\n this.formGroupBatchOrSeries.controls.lote.patchValue(newValue);\n }\n }\n\n }\n this.getDatas(value.toUpperCase());\n this.consultaSaldoEstoque(value.toUpperCase());\n }\n }\n\n private getDatas(value: any) {\n\n this.formGroupBatchOrSeries.controls.dataFabricacao.reset();\n this.formGroupBatchOrSeries.controls.dataValidade.reset();\n this.formGroupBatchOrSeries.controls.saldo.reset();\n this.formGroupBatchOrSeries.controls.dataFabricacao.disable();\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n\n let filterQuery: any;\n let deposito = '';\n\n if (this.isSerie) {\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n serLike: false,\n serSal: true,\n serDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200ser.numSep',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200ser = [ {\n numSep: value\n } ];\n }\n\n this.batchSeriesService\n .listSeries(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (response.series.length > 0) {\n const dates = this.formatDatesToCalendar(response.series[0], [ 'datFab', 'datVlt' ]);\n\n if (dates.e200ser.datFab) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.patchValue(moment(dates.e200ser.datFab).toDate());\n }\n if (dates.e200ser.datVlt) {\n this.formGroupBatchOrSeries.controls.dataValidade.patchValue(moment(dates.e200ser.datVlt).toDate());\n }\n } else {\n if (!this.isSaida) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.enable();\n }\n\n if ((!this.disableDataValidade) && (this.blockedFields == false) && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n }\n });\n } else {\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n filterQuery = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n lotLike: false,\n lotSal: true,\n lotDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200lot.codLot',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200lot = [ {\n codLot: value\n } ];\n }\n\n this.batchSeriesService\n .listBatch(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (response.lotes.length > 0) {\n const dates = this.formatDatesToCalendar(response.lotes[0], [ 'datFab', 'datVlt' ]);\n\n if (dates.e200lot.datFab) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.patchValue(moment(dates.e200lot.datFab).toDate());\n }\n if (dates.e200lot.datVlt) {\n this.formGroupBatchOrSeries.controls.dataValidade.patchValue(moment(dates.e200lot.datVlt).toDate());\n }\n } else {\n if (!this.isSaida) {\n this.formGroupBatchOrSeries.controls.dataFabricacao.enable();\n }\n\n if ((!this.disableDataValidade) && (this.blockedFields == false) && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n }\n });\n }\n }\n\n private processFamilySupplyInfo(familyID: string) {\n this.batchSeriesService\n .getProductFamilySupplyInfo(familyID)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n const supplyInfo = response.contents[0];\n\n this.obrigaValidade = false;\n this.formGroupBatchOrSeries.controls.dataValidade.setValidators([]);\n\n switch (supplyInfo?.ctrVld) {\n case 'VO':\n this.formGroupBatchOrSeries.controls.dataValidade.clearValidators();\n this.formGroupBatchOrSeries.controls.dataValidade.setValidators([ Validators.required ]);\n if (this.blockedFields == false && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n this.obrigaValidade = true;\n break;\n case 'VD':\n this.formGroupBatchOrSeries.controls.dataValidade.disable();\n this.disableDataValidade = true;\n break;\n case 'VL':\n if (this.blockedFields == false && !this.isSaida)\n this.formGroupBatchOrSeries.controls.dataValidade.enable();\n break;\n }\n });\n\n this.formGroupBatchOrSeries.controls.dataValidade.updateValueAndValidity({ emitEvent: false });\n }\n\n public consultaSaldoEstoque(value: string) {\n\n let balancePayload = {};\n\n if (this.isSerie) {\n balancePayload = {\n e205dep: {\n id: this.loteSerieParams.dadosProduto.e205dep ?\n this.loteSerieParams.dadosProduto.e205dep :\n this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id\n },\n e075der: { id: this.loteSerieParams.dadosProduto.e075der },\n e200ser: { numSep: value }\n };\n } else {\n balancePayload = {\n e205dep: {\n id: this.loteSerieParams.dadosProduto.e205dep ?\n this.loteSerieParams.dadosProduto.e205dep :\n this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id\n },\n e075der: { id: this.loteSerieParams.dadosProduto.e075der },\n e200lot: { codLot: value }\n };\n }\n\n this.batchSeriesService\n .consultarSaldoEstoque(balancePayload)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((response: any) => {\n if (!response.saldo) {\n this.formGroupBatchOrSeries.controls.saldo.patchValue(0);\n } else {\n this.formGroupBatchOrSeries.controls.saldo.patchValue(response.saldo);\n }\n });\n }\n\n public getQuantidadeDistribuida() {\n let qtd = 0;\n\n this.loteSerieParams.lotesOrSeries.forEach((val: any) => {\n if (!this.isSerie)\n qtd = this.sum(qtd, Number(val.quantidade), this.locale.number.scale);\n else\n qtd = this.sum(qtd, 1, this.locale.number.scale);\n });\n\n return qtd;\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 public onRouteDataChange(data: any) {\n this.localeConfig = data.localeConfig;\n this.locale = this.localeConfig;\n this.locale.number.scale = this.loteSerieParams.dadosProduto.qtdDec ? this.loteSerieParams.dadosProduto.qtdDec : 0;\n }\n\n public getE200LotSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: 'e200lot.codLote',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_cod_dep`),\n type: FieldType.String,\n }),\n new FormField({\n name: 'e200lot.datFab',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_dat_fab`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'e200lot.datVlt',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_dat_vlt`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'qtdDis',\n label: this.translate.instant(`${ this.prefix }lookup_e200lot_qtd_dis`),\n type: FieldType.Double,\n }),\n ];\n\n return searchGridFields;\n }\n\n public getE200SerSearchGridFields() {\n const searchGridFields = [\n new FormField({\n name: 'e200ser.numSep',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_num_sep`),\n type: FieldType.String,\n }),\n new FormField({\n name: 'e200ser.datFab',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_fab`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'e200ser.datVlt',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_dat_vlt`),\n type: FieldType.Date,\n }),\n new FormField({\n name: 'qtdDis',\n label: this.translate.instant(`${ this.prefix }lookup_e200ser_qtd_dis`),\n type: FieldType.Double,\n }),\n ];\n\n return searchGridFields;\n }\n\n public onE200LotLookupRequest(value: string) {\n let deposito = '';\n const displayFields = this.loteLookupDisplayFields;\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const filterQuery: any = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n lotLike: true,\n lotSal: true,\n lotDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200lot.codLot',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200lot = [ {\n codLot: value\n } ];\n }\n\n this.batchSeriesService\n .listBatch(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n lotes: list.lotes.map((item: any) => ({\n ...item,\n label: displayFields\n .map(field => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.e200lotLookupSuggestionsObservable.next(list.lotes);\n });\n\n }\n\n public onE200SerLookupRequest(value: string) {\n let deposito = '';\n const displayFields = this.serieLookupDisplayFields;\n\n if (this.loteSerieParams.dadosProduto.e205dep) {\n deposito = this.loteSerieParams.dadosProduto.e205dep;\n } else {\n if (this.formGroupBatchOrSeries.controls.deposito.value)\n deposito = this.formGroupBatchOrSeries.controls.deposito.value.e205dep.id;\n }\n\n const filterQuery: any = {\n e070emp: {\n id: this.loteSerieParams.dadosProduto.e070emp\n },\n e205dep: {\n id: deposito\n },\n e075der: {\n id: this.loteSerieParams.dadosProduto.e075der\n },\n serLike: true,\n serSal: true,\n serDis: true,\n offset: 0,\n size: 10,\n orderBy: [ {\n field: 'e200ser.numSep',\n order: 'ASC'\n } ]\n };\n\n if (value) {\n filterQuery.e200ser = [ {\n numSep: value\n } ];\n }\n\n this.batchSeriesService\n .listSeries(filterQuery)\n .pipe(takeUntil(this.ngUnsubscribe))\n .pipe(\n map((list: any) => ({\n ...list,\n series: list.series.map((item: any) => ({\n ...item,\n label: displayFields\n .map(field => {\n if (field.indexOf('.') > 0) return this.getProp(item, field);\n return item[field];\n }),\n })),\n }))\n )\n .subscribe((list: any) => {\n this.e200serLookupSuggestionsObservable.next(list.series);\n });\n\n }\n\n public formatDates(requestBody: any, properties: string[]) {\n return Object.keys(requestBody).reduce((prev: any, value: any) => {\n if (properties.indexOf(value) > -1 && requestBody[value]) {\n prev[value] = moment(requestBody[value]).format('YYYY-MM-DD');\n } else {\n prev[value] = requestBody[value];\n }\n return prev;\n }, {});\n }\n\n public formatDatesToCalendar(requestBody: any, properties: string[]) {\n return Object.keys(requestBody).reduce((prev: any, value: any) => {\n if (properties.indexOf(value) > -1 && requestBody[value]) {\n if ((requestBody[value] != undefined) && (requestBody[value] != null)) {\n prev[value] = moment(requestBody[value]).toDate();\n } else {\n prev[value] = '';\n }\n } else {\n prev[value] = requestBody[value];\n }\n return prev;\n }, {});\n }\n\n public translateHtml(text: string, value: any = null, shortcut: string = null): string {\n const ret = this.translate.instant(`${ this.prefix }${ text }`, { value: value });\n return shortcut ? `${ ret } ${ shortcut }` : ret;\n }\n\n public onDistributeSeries(): void {\n this.batchSeriesService\n .obterNecessidades({\n e070empId: this.loteSerieParams.invoiceInformation.company.id,\n e070filId: this.loteSerieParams.invoiceInformation.branch.id,\n itensId: [\n this.loteSerieParams.invoiceInformation.item.product.id\n ],\n tipo: EnumTipoDocumentoParametros.PedidoVenda,\n documentoId: null,\n numeroDocumentoPai: [\n this.loteSerieParams?.orderInformation?.number.toString()\n ],\n dataInicial: null,\n dataFinal: null,\n situacao: null,\n codigoDemanda: null,\n somenteUrgentes: false,\n pageRequest: {\n offset: 0,\n size: 10\n }\n })\n .pipe(first())\n .subscribe(({ necessidades }) => {\n const itemId =\n this.loteSerieParams?.orderInformation?.item.id;\n const atendimento = necessidades.find(\n (necessidade) => necessidade.documento?.idExterno === itemId\n );\n\n const getUrlInput: GetUrlInput = {\n identifiers: [\n {\n domainName: 'erpx_sup',\n serviceName: 'demandas',\n appName: 'erpx-sup-demandas',\n route: `demandas/atendimentos/${ atendimento.id }?isSeriesDistributionVisible=true`\n }\n ]\n };\n\n this.batchSeriesService\n .getUrl(getUrlInput)\n .pipe(first())\n .subscribe((getUrlOutput: GetUrlOutput) => {\n window.open(\n `${ getUrlOutput.frontends[0].embeddedURL }`,\n '_blank'\n );\n });\n });\n }\n\n public onDelete() {\n this.selection.forEach(value => this.removeBatchOrSeries(value));\n this.selection = [];\n }\n\n public isDistributeSeriesButtonVisible(): boolean {\n return (\n this.loteSerieParams?.invoiceInformation?.item?.product\n ?.isSerialControlled &&\n this.loteSerieParams?.invoiceInformation?.origin ===\n EnumInvoiceOrigin.V2\n );\n }\n\n private onBlurQuantity(): void {\n if (!this.isSaida) return;\n\n const quantity = Number(this.formGroupBatchOrSeries.controls.quantidade.value);\n const balance = Number(this.formGroupBatchOrSeries.controls.saldo.value);\n\n if (quantity > balance)\n this.messageService.add({\n severity: 'warn',\n summary: this.translate.instant(`${ this.prefix }warn`),\n detail: this.translate.instant(`${ this.prefix }invalid_batch_distribution_quantity`)\n });\n }\n}\n\n/*Parâmetros para utilizar o componente de lote-série */\nexport interface LoteSerieParams {\n\n /* Informa se a movimentação é do tipo entrada ou saida. */\n tipoMovimentacao: EnumTipoMovimentacao;\n\n /* Informa se o produto é controlado por lote ou série. */\n tipoControleProduto: EnumTipoControleProduto;\n\n /* Informa a quantidade a ser distribuÃda. */\n quantidadeDistribuir: number;\n\n /* Informa os dados do produto. */\n dadosProduto: DadosProduto;\n\n /* Informa os lotes ou séries ja distribuÃdos.*/\n lotesOrSeries?: Array<LotesOrSeries>;\n\n /* Informações da nota .*/\n invoiceInformation?: InvoiceInformation;\n\n /* Informações do pedido de venda .*/\n orderInformation?: OrderInformation;\n}\n\n/** Enum para tipo de movimento */\nexport enum EnumTipoMovimentacao {\n /** Tipo movimentação igual a Entrada */\n Entrada = 'Entrada',\n /** Tipo movimentação igual a SaÃda */\n Saida = 'Saida'\n}\n\n/** Enum para tipo de controle de produto */\nexport enum EnumTipoControleProduto {\n /** Tipo de controle igual a Lote */\n Lote = 'Lote',\n /** Tipo de controle igual a Série */\n Serie = 'Serie'\n}\n\n/** Interface para dados do produto */\nexport interface DadosProduto {\n /** ID do produto */\n e075der: string;\n\n /** ID do depósito */\n e205dep?: string;\n\n /** ID da famÃlia do produto */\n e012fam: string;\n\n /** Entidade empresa */\n e070emp: string;\n\n /** Quantidade de casas decimais */\n qtdDec?: number;\n}\n\n/** Interface para dados da grid dos lotes/séries distribuÃdos */\nexport interface LotesOrSeries {\n /** ID do Lote ou Série */\n id?: string;\n\n /** Código do Lote ou Série */\n codigo: string;\n\n /** Data de validade do lote/série */\n dataValidade?: string;\n\n /** Data de fabricação do lote/série */\n dataFabricacao?: string;\n\n /** Quantidade **/\n quantidade?: number;\n\n}\n\nexport enum EnumInvoiceOrigin {\n V1 = 'V1',\n V2 = 'V2',\n V3 = 'V3',\n V4 = 'V4',\n V5 = 'V5',\n V99 = 'V99'\n}\n\nexport interface InvoiceItem {\n product: {\n id: string;\n isSerialControlled: boolean;\n };\n}\n\nexport interface InvoiceInformation {\n company: {\n id: string;\n };\n branch: {\n id: string;\n };\n origin: EnumInvoiceOrigin;\n item?: InvoiceItem;\n}\n\nexport interface OrderItem {\n id: string;\n}\n\nexport interface OrderInformation {\n number: number;\n item: OrderItem;\n}\n\ninterface BulkImport {\n codigo: string,\n dataFabricacao: string,\n dataValidade: string,\n quantidade?: number\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ErpLookupsModule } from '@senior-gestao-empresarial/angular-components';\nimport {\n ButtonModule,\n DynamicFormModule,\n EmptyStateModule,\n LoadingStateModule,\n LocaleModule,\n SidebarModule,\n StatsCardModule, TableModule as STableModule,\n} from '@seniorsistemas/angular-components';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { MessagesModule } from 'primeng/messages';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule } from 'primeng/table';\nimport { TabViewModule } from 'primeng/tabview';\nimport { QuantidadeDisponivelDemandaModule } from '../../core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module';\nimport { ErpLoteSerieComponent } from './erp-lote-serie.component';\nimport { ErpLoteSeriesService } from './erp-lote-serie.service';\n\n@NgModule({\n declarations: [ErpLoteSerieComponent],\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n DynamicFormModule,\n LocaleModule.forChild(),\n ErpLookupsModule,\n PanelModule,\n TabViewModule,\n ConfirmDialogModule,\n FormsModule,\n ReactiveFormsModule,\n StatsCardModule,\n EmptyStateModule,\n TableModule,\n LoadingStateModule,\n MessagesModule,\n SidebarModule,\n QuantidadeDisponivelDemandaModule,\n STableModule\n ],\n providers: [ErpLoteSeriesService],\n exports: [ErpLoteSerieComponent],\n})\nexport class ErpLoteSerieModule {}\n"],"names":["router","Subject","takeUntil","filter","NavigationEnd","PRIMARY_OUTLET","ActivatedRoute","Router","Input","Component","NgModule","CommonModule","PrimeBreadcrumbModule","RouterModule","Injectable","HttpClient","MessageService","EnumCampoTributo","EnumGrupoTributo","EnumTipoTributo","EnumTipoDocumento","EnumModBc","EnumOriMer","EnumMotDes","EnumTipoItem","EnumTipImpCst","EnumTipOpe","enumTipCredRecup","EnumRegimeTributarioPisCofins","EnumFunruralIndicativoAquisicao","EnumSituacao","EventEmitter","Validators","FormControl","FormGroup","FormField","FieldType","EnumLogicalOperator","switchMap","LookupField","of","first","finalize","FormBuilder","ChangeDetectorRef","TranslateService","E027StrLookup","BeneficioFiscalLookup","E027EqiLookup","CplTriNotaSaidaNaturezaReceitaPisCofinsLookup","ClassificacaoTributariaLookup","LookupValidationUtils","GTagService","FeatureToggleService","Output","TranslateModule","ButtonModule","AccordionModule","DynamicFormModule","ErpLookupsModule","LoadingStateModule","HttpParams","catchError","throwError","PermissionsModule","EnumTipoMovimentacao","EnumInvoiceOrigin","EnumColumnFieldType","map","EnumTipoControleProduto","E210DxpLookup","LocaleModule","PanelModule","TabViewModule","ConfirmDialogModule","FormsModule","ReactiveFormsModule","StatsCardModule","EmptyStateModule","TableModule","MessagesModule","SidebarModule","STableModule"],"mappings":"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"}
|