@senior-gestao-empresarial/erpx-components 3.3.2 → 3.3.3
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 +28 -3
- package/bundles/senior-gestao-empresarial-erpx-components.umd.js.map +1 -1
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js +1 -1
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -1
- package/components/tributos/erp-tributos.types.d.ts +2 -0
- package/esm2015/components/tributos/erp-tributos.component.js +28 -4
- package/esm2015/components/tributos/erp-tributos.types.js +2 -1
- package/esm5/components/tributos/erp-tributos.component.js +28 -4
- package/esm5/components/tributos/erp-tributos.types.js +2 -1
- package/fesm2015/senior-gestao-empresarial-erpx-components.js +28 -3
- package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -1
- package/fesm5/senior-gestao-empresarial-erpx-components.js +28 -3
- package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-empresarial-erpx-components.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.types.ts","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/components/tributos/erp-tributos.service.ts","ng://@senior-gestao-empresarial/erpx-components/core/enums/enum-tipo-documento-parametros.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/components/lote-serie/erp-lote-serie.component.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.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","e","ar","push","error","__spread","concat","EnumCampoTributo","EnumGrupoTributo","EnumTipoTributo","EnumTipoDocumento","EnumModBc","EnumOriMer","EnumMotDes","EnumTipoItem","EnumTipImpCst","EnumTipOpe","enumTipCredRecup","EnumRegimeTributarioPisCofins","EnumFunruralIndicativoAquisicao","BreadcrumbComponent","activatedRoute","router","_this","ngUnsubscribe","Subject","events","pipe","takeUntil","filter","event","NavigationEnd","subscribe","onNavigationEnd","currentRoute","root","validRoutes","getValidChildren","title","getCurrentTitle","home","getCurrentHome","items","getCurrentItems","route","valid","routeConfig","path","component","outlet","PRIMARY_OUTLET","children","reduce","child","routes","last","getTitle","homeUrl","url","icon","getMenuItem","slice","map","disabled","label","pathFromRoot","routerLink","indexOf","result","item","snapshot","queryParams","routerLinkActiveOptions","exact","data","routeTitle","Error","ngOnDestroy","complete","ActivatedRoute","Router","Input","Component","selector","template","BreadcrumbModule","NgModule","imports","CommonModule","PrimeBreadcrumbModule","RouterModule","declarations","exports","ErpResumoService","Injectable","providedIn","ErpResumoComponent","getProp","obj","split","prop","undefined","ErpResumoModule","providers","Breakpoints","SM_MIN","SM_MAX","MD_MIN","MD_MAX","LG_MIN","LG_MAX","XL_MIN","XL_MAX","Infinity","ExportUtils","exportCSV","columns","csvSeparator","documentName","csv","column","exportable","field","forEach","header","record","cellData","resolveFieldData","String","replace","blob","Blob","type","window","navigator","msSaveOrOpenBlob","link","document","createElement","style","display","body","appendChild","download","setAttribute","URL","createObjectURL","click","open","encodeURI","removeChild","isFunction","fields","len","constructor","isEmpty","isArray","keys","isNotEmpty","FocusService","focusFirstInvalidInput","firstField","from","getElementsByClassName","find","f","nodeName","firstInputId","getAttribute","firstInvalidInput","getElementById","focus","nestedInput","getNestedInput","firstElementChild","element","ErpTributosService","http","messageService","getFrontend","params","post","HttpClient","MessageService","EnumTipoDocumentoParametros","ErpTributosComponent","formBuilder","changeDetector","translate","e027StrLookup","e027eqiLookup","naturezaReceitaLookup","lookupUtils","erpTributosService","gtag","featureToggleService","grupos","tributosValue","reload","indexAccordion","isLoading","menuItemPis","menuItemCofins","menuItemIpi","menuItemIss","menuItemImportacoes","menuItemRetencoes","menuItemRetencoesFunrural","menuItemIcms","menuItemCideTecnologia","requiredItemCideTecnologia","requiredItemPisRecuperar","requiredItemPisDevolvido","requiredItemCofinsRecuperar","requiredItemCofinsDevolvido","requiredItemIpi","requiredItemIpiCreditado","requiredItemIpiDevolvido","requiredItemIpiPresumido","requiredItemIpiOutrasDespesas","requiredItemIss","requiredItemIssRetido","requiredItemImpostoImportacao","requiredItemPisRecuperarImportacao","requiredItemCofinsRecuperarImportacao","requiredItemPisRetido","requiredItemCofinsRetido","requiredItemCsllRetido","requiredItemIrrfRetido","requiredItemInssRetido","requiredItemInssPatronal","requiredItemIcmsSt","requiredItemFcpSt","requiredItemIcmsCobradoAnteriormente","requiredItemFcpCobradoAnteriormente","requiredItemIcms","requiredItemIcmsEfetivamenteCreditado","requiredItemFcp","requiredItemIcmsDiferido","requiredItemIcmsDesonerado","requiredItemDiferencialAlicota","requiredItemPisFaturemento","requiredItemCofinsFaturemento","requiredItemFcpUfDestino","requiredItemIcmsUfDestino","requiredSituacaoTributaria","requiredIcmsFuturo","requiredIcmsSimples","requiredDifalDevolvido","requiredICMS_UF_Destino_Devolvido","requiredFCP_UF_Destino_Devolvido","requiredItemPisFaturamento","requiredImpostoNaoRecuperado","requiredbaseCalculoCredito","requiredPercentualReducao","requiredIcmsStSolidario","requiredIcmsStRetidoAnt","requiredFcpStReditoAnt","camposBloqueados","devolvido","habilitaOpcaoCide","tributosChange","EventEmitter","currencyLocaleOptions","currencySymbol","decimalSeparator","thousandsSeparator","val","ngOnInit","dominio","servico","prefixLabel","ngOnChanges","changes","variaveisAlteradas","includes","clearVariables","getActions","createTributos","setTributos","readOnlyTributos","resetStoredKeys","memoriaCalculo","imposto","tributo","idsTaxesMemoriaCalculo","tipoTributo","name","abrirWindowUrlMemoriaCalculo","makeUrlWindow","response","frontends","embeddedURL","sendButtonClick","impostos","disabledButton","idParametro","hideButton","IPI_DEVOLVIDO","idPerfilTributario","identifiers","domainName","serviceName","appName","validaTela","add","severity","summary","instant","detail","taxes","isStTaxes","idParametroEstado","idParametroSt","getTributoPai","ICMS_ST","ICMS_ST_FUTURO","ICMS_ST_RETIDO_ANT","ICMS_ST_SOLIDARIO","ICMS_COBRADO_ANTERIORMENTE_ST","PIS_RECUPERAR","PIS_DEVOLVIDO","PIS_RECUPERAR_IMPORTACAO","PIS","COFINS_RECUPERAR_IMPORTACAO","COFINS_DEVOLVIDO","COFINS_RECUPERAR","COFINS","IPI","IPI_CREDITADO","IPI_PRESUMIDO","IPI_OUTRAS_DESPESAS","ISS","ISS_RETIDO","IMPOSTO_IMPORTACAO","PIS_RETIDO","COFINS_RETIDO","CSLL","IRRF","INSS","INSS_PATRONAL","FUNRURAL_INSS","FUNRURAL_RAT","FUNRURAL_SENAR","FUNRURAL_TOTAL","ICMS","ICMS_CREDITADO","FCP","ICMS_DIFERIDO","ICMS_DESONERADO","ICMS_EFETIVO","DIFAL","DIFAL_DEVOLVIDO","ICMS_UF_DESTINO_DEVOLVIDO","FCP_UF_DESTINO_DEVOLVIDO","ICMS_SIMPLES","ICMS_FUTURO","ICMS_UF_DESTINO","FCP_UF_DESTINO","FCP_COBRADO_ANTERIORMENTE_ST","FCP_ST_RETIDO_ANT","FCP_ST","CIDE_TECNOLOGIA","it","tipoImposto","montaPis","montaCofins","montaIpi","montaIss","montaImportacoes","montaRetencoes","montaIcms","montaCide","montaRetencoesFunrural","grupo","formGroup","disable","patchValue","setValidators","storageValuesOnLookupValidator","setSubs","hasValue","controls","Validators","compose","required","max","updateValueAndValidity","emitEvent","setRequired","maxLength","clearValidators","validateAllFormFields","control","get","FormControl","markAsDirty","onlySelf","FormGroup","validateAllFieldsTributos","valueValid","invalid","backValue","arrItens","deuMath","getRawValue","emit","novoImpostoManual","singleChange","formField","_a","onBlur","impostoManual","menu","id","command","detectChanges","documento","PEDIDO_VENDA","tipoItem","Servico","NF_ENTRADA_CONTROLADORIA","NF_ENTRADA","PEDIDO_COMPRA","unshift","montaCampos","campo","BaseCalculo","Aliquota","Valor","PercentualReducao","ValorOutras","ValorIsentas","SituacaoTributaria","Origem","MotivoDesoneracaoIcms","PercentualDiferimento","PercentualMargemValorAdicionado","PercentualSuportadoConsumidorFinal","ValorRecolhidoPeloSubstituto","ValorIcmsStRetido","AliquotaInternaDestino","NF_SAIDA","AliquotaInterna","NF_SAIDA_CONTROLADORIA","Observacao","ImpostoNaoRecuperado","CodigoTributacao","CodigoArrecadacao","RETENCOES","IndicativoAquisicao","FUNRURAL","IMPORTACOES","ValorDeducao","baseCalculoCredito","RegimeTributarioPisCofins","NaturezaReceita","EnquadramentoIpi","setVariableRequired","PIS_FATURAMENTO","IMPOSTO_NAO_RECUPERADO","BASE_CALCULO_CREDITO","PERCENTUAL_REDUCAO","impostoCalculado","roundImposto","number","decimals","x","Math","pow","Number","toFixed","calcularValor","baseCalculo","aliquota","situacaoTributaria","codStr","base","valor","_b","floor","controleFunrural","calcularFunruralTotal","baseDiferente","setValue","funBase","funValor","valores","index","funruralImposto","this_1","campos","retorno","movimento","FormField","FieldType","Money","precision","scale","numberLocaleOptions","size","sm","md","lg","xl","errorMessages","getLabelAliquota","aliquotaInterna","aliquotaInternaDestino","valorIsentas","valorOutras","searchGridFields","Enum","options","PIS_COFINS","VSAIDA","VENTRADA","VAMBOS","mountOptions","multiple","domain","service","defaultFilter","operator","EnumLogicalOperator","Eq","values","filterByImposto","enquadramentoIpi","entity","percentualReducao","percentualMargemValorAdicionado","desoneracaoIcms","V0","V1","V2","V3","V4","V5","V6","V7","V8","V9","V10","V11","V12","V16","V90","placeholder","showClear","onChange","origem","percentualSuportadoConsumidorFinal","valorRecolhidoIcmsSt","valorIcmsStRetido","ModalidadeBC","modalidadeBC","naturezaReceita","lookupSort","order","searchSort","observacao","maxlength","valorDeducao","indicativoAquisicao","codigoArrecadacao","codigoTributacao","V13","V14","V15","V17","V18","regimeTributarioPisCofins","CUMULATIVO","NAO_CUMULATIVO","sugestoes","sugestao","entries","atributos","group","controlName","controlObject","formField_1","valueChanges","switchMap","getFormControlSubscriptionValue","LookupField","cancelSubscription","setImpostoManualGroup","fieldValue","isFieldLookup","fieldIdentifier","getValidatedRepeatedLookupValues","of","getTranslateButton","isGroupInvalid","some","FormBuilder","ChangeDetectorRef","TranslateService","E027StrLookup","E027EqiLookup","CplTriNotaSaidaNaturezaReceitaPisCofinsLookup","LookupValidationUtils","GTagService","FeatureToggleService","Output","ErpTributosModule","TranslateModule","ButtonModule","AccordionModule","DynamicFormModule","ErpLookupsModule","LoadingStateModule","EntityService","translateService","entityUrl","entityAction","defaultCatch","bind","getListQueryParams","listParams","page","_c","sort","_d","filterQuery","_e","displayFields","HttpParams","append","join","catchError","err","status","sticky","message","statusText","throwError","list","insert","update","put","delete","QuantidadeDisponivelDemandaService","_super","__","create","__extends","QuantidadeDisponivelDemandaModule","PermissionsModule","forChild","actions","uri","EnumTipoMovimentacao","EnumTipoControleProduto","EnumInvoiceOrigin","ErpLoteSeriesService","foundationEntitiesUrl","supEntitiesUrl","queryUrl","getProductFamily","productID","getProductFamilySupplyInfo","familyID","displayfields","listBatch","listSeries","getBatch","getSerie","consultarSaldoEstoque","balancePayload","getUrl","getUrlInput","obterNecessidades","obterNecessidadesInput","ErpLoteSerieComponent","e210DxpLookup","batchSeriesService","quantidadeDisponivelDemandaService","gridData","selection","localeConfig","locale","blockedFields","showHeader","validateInvalidChars","e200lotLookupSuggestionsObservable","e200lotlookupSearchObservable","e200serLookupSuggestionsObservable","e200serlookupSearchObservable","quantidadeDisponivelDemandaLookupSuggestionsObservable","quantidadeDisponivelDemandalookupSearchObservable","loteLookupDisplayFields","serieLookupDisplayFields","isSerie","qtdAdistribuir","qtdDistribuida","qtdRestante","obrigaValidade","isSaida","disableDataValidade","prefix","sum","a","positions","factor","sub","loteSerieParams","onRouteDataChange","formGroupBatchOrSeries","getFormGroupDados","validaDados","gridColumns","getGridColumns","lote","exec","setErrors","existsInvalidChar","serie","processFamilySupplyInfo","dadosProduto","e012fam","tipoControleProduto","titleLoteOrSerie","titleGridLoteOrSerie","tipoMovimentacao","batchOrSeriesFields","getFieldsEntrada","quantidade","bulkVisible","batchSerieBulk","getFieldsSaida","dataFabricacao","dataValidade","quantidadeDistribuir","lotesOrSeries","getQuantidadeDistribuida","deposito","saldo","dadosFieldsEntrada","e205dep","searchFields","Integer","e070emp","e075der","visible","Boolean","representedBy","Text","rows","onBlurValidaLoteorSerie","Date","appendTo","Double","qtdDec","onBlurQuantity","dadosFieldsSaida","Lookup","searchTitle","searchEmptyTitle","filterLabel","clearLabel","cancelLabel","selectLabel","onSelect","invoiceInformation","origin","validaLoteorSerie","onSearchRequest","onQuantidadeDisponivelDemandaRequest","onE200SerSearchRequest","onLookupRequest","onE200SerLookupRequest","suggestionsObservable","searchObservable","lookupDisplayField","_f","getQuantidadeDisponivelDemandaSearchFields","getE200SerSearchFields","_h","_g","getQuantidadeDisponivelDemandaSearchGridFields","getE200SerSearchGridFields","_k","_j","dataKey","_m","_l","isDistributeSeriesButtonVisible","onE200LotSearchRequest","onE200LotLookupRequest","getE200LotSearchFields","getE200LotSearchGridFields","attributes","EnumColumnFieldType","STRING","first","multiSortMeta","filterData","orderBy","lotLike","lotSal","offset","lotDis","e200lot","codLot","lotes","totalRecords","totalElements","orderInformation","numSep","contents","e200serId","serLike","serSal","serDis","e200ser","series","removeBatchOrSeries","rowData","batchOrSeries","codigo","addBatchOrSeries","convertedArray","linhaAtual_1","msgError","life","currentValue","convertedValue","toCode","line","toDate","toAmount","reset","clear","distributedQuantity","toUpperCase","codLote","isDuplicateBatchSeries","loteOrSerieValues","formatDates","qtdDisponivel","datFabSep","datVltSep","clearBatchSeries","trim","linhaAtual","toNumber","moment","isValid","format","e_3","addedSeries","enable","getDatas","consultaSaldoEstoque","newValue","Serie","dates","formatDatesToCalendar","datFab","datVlt","supplyInfo","ctrVld","qtd","requestBody","properties","prev","translateHtml","text","shortcut","ret","onDistributeSeries","e070empId","company","e070filId","branch","itensId","product","tipo","PedidoVenda","documentoId","numeroDocumentoPai","toString","dataInicial","dataFinal","situacao","codigoDemanda","somenteUrgentes","pageRequest","necessidades","itemId","necessidade","idExterno","getUrlOutput","onDelete","isSerialControlled","E210DxpLookup","ErpLoteSerieModule","LocaleModule","PanelModule","TabViewModule","ConfirmDialogModule","FormsModule","ReactiveFormsModule","StatsCardModule","EmptyStateModule","TableModule","MessagesModule","SidebarModule","STableModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"@seniorsistemas/angular-components\";\n\nexport interface CampoTributo {\n campo: EnumCampoTributo;\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 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 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 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 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}\n\nexport enum EnumGrupoTributo {\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}\n\nexport enum EnumTipoTributo {\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 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}\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","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","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","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 { 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 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 { MenuItem, MessageService } from 'primeng/api';\nimport { Observable, of, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { ErpTributosService } from './erp-tributos.service';\nimport { FeatureToggleService } from '@seniorsistemas/platform-components';\nimport { GTagService } from '@seniorsistemas/platform-utils';\nimport {\n CampoTributo,\n EnumCampoTributo,\n EnumFunruralIndicativoAquisicao,\n EnumGrupoTributo,\n EnumModBc,\n EnumMotDes,\n EnumOriMer,\n EnumRegimeTributarioPisCofins,\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 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 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 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\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 formBuilder: FormBuilder,\n private changeDetector: ChangeDetectorRef,\n private translate: TranslateService,\n private e027StrLookup: E027StrLookup,\n private e027eqiLookup: E027EqiLookup,\n private naturezaReceitaLookup: CplTriNotaSaidaNaturezaReceitaPisCofinsLookup,\n private lookupUtils: LookupValidationUtils,\n protected messageService: MessageService,\n private erpTributosService: ErpTributosService,\n private gtag: GTagService,\n private readonly featureToggleService: FeatureToggleService\n ) { }\n\n ngOnInit() {\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\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 default:\n break;\n }\n }\n\n private clearVariables() {\n if (this.reload) {\n this.indexAccordion = [-1];\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\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.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.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 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 === '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 this.setRequired(tributo, true);\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 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 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 === '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 menu.push(\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 return menu;\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'}`, 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 ], 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 ], 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 ], 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'}`, 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'}`, 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'}`, 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'}`, 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'}`, item });\n return item;\n }\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'}`, 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'}`, 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'}`, item });\n return item;\n }\n }\n\n private setVariableRequired(tributo: EnumTipoTributo) {\n switch (tributo) {\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.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.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 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 ((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 let controleFunrural = this.calcularFunruralTotal(impostos, grupo)\n\n if (controleFunrural.baseDiferente) {\n this.messageService.add({\n severity: \"warn\",\n summary: this.translate.instant(\n \"erpx.tributos.error_base_funrural_diferente_summary\"\n ),\n detail: this.translate.instant(\n \"erpx.tributos.error_base_funrural_diferente_detail\"\n ),\n });\n }\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 calcularFunruralTotal(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 funruralImposto = grupo.item.find(item => item.name === impostos[index]);\n\n if (funruralImposto.formGroup.value.baseCalculo != undefined) {\n if (valores.funBase > 0 && valores.funBase != funruralImposto.formGroup.value.baseCalculo) {\n valores.baseDiferente = true;\n }\n\n valores.funBase = funruralImposto.formGroup.value.baseCalculo > valores.funBase ? funruralImposto.formGroup.value.baseCalculo : valores.funBase;\n }\n\n if (funruralImposto.formGroup.value.valor != undefined) {\n valores.funValor = Number(this.roundImposto(Number(valores.funValor) + Number(funruralImposto.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 },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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.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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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.Valor) {\n formGroup = {\n ...formGroup,\n valor: [\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 + '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 },\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.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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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, aliquota: [{ value: undefined, disabled: false }, Validators.compose([Validators.max(100)])] };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualDiferimento',\n name: 'aliquota',\n label: this.translate.instant('erpx.tributos.fields_percentual_diferimento_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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.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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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 }\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.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","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","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 }),\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, value.qtdDisponivel, this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, 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, 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 { 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 { 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"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@senior-gestao-empresarial/erpx-components/components/tributos/erp-tributos.types.ts","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/components/tributos/erp-tributos.service.ts","ng://@senior-gestao-empresarial/erpx-components/core/enums/enum-tipo-documento-parametros.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/components/lote-serie/erp-lote-serie.component.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.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","e","ar","push","error","__spread","concat","EnumCampoTributo","EnumGrupoTributo","EnumTipoTributo","EnumTipoDocumento","EnumModBc","EnumOriMer","EnumMotDes","EnumTipoItem","EnumTipImpCst","EnumTipOpe","enumTipCredRecup","EnumRegimeTributarioPisCofins","EnumFunruralIndicativoAquisicao","BreadcrumbComponent","activatedRoute","router","_this","ngUnsubscribe","Subject","events","pipe","takeUntil","filter","event","NavigationEnd","subscribe","onNavigationEnd","currentRoute","root","validRoutes","getValidChildren","title","getCurrentTitle","home","getCurrentHome","items","getCurrentItems","route","valid","routeConfig","path","component","outlet","PRIMARY_OUTLET","children","reduce","child","routes","last","getTitle","homeUrl","url","icon","getMenuItem","slice","map","disabled","label","pathFromRoot","routerLink","indexOf","result","item","snapshot","queryParams","routerLinkActiveOptions","exact","data","routeTitle","Error","ngOnDestroy","complete","ActivatedRoute","Router","Input","Component","selector","template","BreadcrumbModule","NgModule","imports","CommonModule","PrimeBreadcrumbModule","RouterModule","declarations","exports","ErpResumoService","Injectable","providedIn","ErpResumoComponent","getProp","obj","split","prop","undefined","ErpResumoModule","providers","Breakpoints","SM_MIN","SM_MAX","MD_MIN","MD_MAX","LG_MIN","LG_MAX","XL_MIN","XL_MAX","Infinity","ExportUtils","exportCSV","columns","csvSeparator","documentName","csv","column","exportable","field","forEach","header","record","cellData","resolveFieldData","String","replace","blob","Blob","type","window","navigator","msSaveOrOpenBlob","link","document","createElement","style","display","body","appendChild","download","setAttribute","URL","createObjectURL","click","open","encodeURI","removeChild","isFunction","fields","len","constructor","isEmpty","isArray","keys","isNotEmpty","FocusService","focusFirstInvalidInput","firstField","from","getElementsByClassName","find","f","nodeName","firstInputId","getAttribute","firstInvalidInput","getElementById","focus","nestedInput","getNestedInput","firstElementChild","element","ErpTributosService","http","messageService","getFrontend","params","post","HttpClient","MessageService","EnumTipoDocumentoParametros","ErpTributosComponent","formBuilder","changeDetector","translate","e027StrLookup","e027eqiLookup","naturezaReceitaLookup","lookupUtils","erpTributosService","gtag","featureToggleService","grupos","tributosValue","reload","indexAccordion","isLoading","menuItemPis","menuItemCofins","menuItemIpi","menuItemIss","menuItemImportacoes","menuItemRetencoes","menuItemRetencoesFunrural","menuItemIcms","menuItemCideTecnologia","requiredItemCideTecnologia","requiredItemPisRecuperar","requiredItemPisDevolvido","requiredItemCofinsRecuperar","requiredItemCofinsDevolvido","requiredItemIpi","requiredItemIpiCreditado","requiredItemIpiDevolvido","requiredItemIpiPresumido","requiredItemIpiOutrasDespesas","requiredItemIss","requiredItemIssRetido","requiredItemImpostoImportacao","requiredItemPisRecuperarImportacao","requiredItemCofinsRecuperarImportacao","requiredItemPisRetido","requiredItemCofinsRetido","requiredItemCsllRetido","requiredItemIrrfRetido","requiredItemInssRetido","requiredItemInssPatronal","requiredItemIcmsSt","requiredItemFcpSt","requiredItemIcmsCobradoAnteriormente","requiredItemFcpCobradoAnteriormente","requiredItemIcms","requiredItemIcmsEfetivamenteCreditado","requiredItemFcp","requiredItemIcmsDiferido","requiredItemIcmsDesonerado","requiredItemDiferencialAlicota","requiredItemPisFaturemento","requiredItemCofinsFaturemento","requiredItemFcpUfDestino","requiredItemIcmsUfDestino","requiredSituacaoTributaria","requiredIcmsFuturo","requiredIcmsSimples","requiredDifalDevolvido","requiredICMS_UF_Destino_Devolvido","requiredFCP_UF_Destino_Devolvido","requiredItemPisFaturamento","requiredImpostoNaoRecuperado","requiredbaseCalculoCredito","requiredPercentualReducao","requiredIcmsStSolidario","requiredIcmsStRetidoAnt","requiredFcpStReditoAnt","camposBloqueados","devolvido","habilitaOpcaoCide","tributosChange","EventEmitter","currencyLocaleOptions","currencySymbol","decimalSeparator","thousandsSeparator","val","ngOnInit","dominio","servico","prefixLabel","ngOnChanges","changes","variaveisAlteradas","includes","clearVariables","getActions","createTributos","setTributos","readOnlyTributos","resetStoredKeys","memoriaCalculo","imposto","tributo","idsTaxesMemoriaCalculo","tipoTributo","name","abrirWindowUrlMemoriaCalculo","makeUrlWindow","response","frontends","embeddedURL","sendButtonClick","impostos","disabledButton","idParametro","hideButton","IPI_DEVOLVIDO","idPerfilTributario","identifiers","domainName","serviceName","appName","validaTela","add","severity","summary","instant","detail","taxes","isStTaxes","idParametroEstado","idParametroSt","getTributoPai","ICMS_ST","ICMS_ST_FUTURO","ICMS_ST_RETIDO_ANT","ICMS_ST_SOLIDARIO","ICMS_COBRADO_ANTERIORMENTE_ST","PIS_RECUPERAR","PIS_DEVOLVIDO","PIS_RECUPERAR_IMPORTACAO","PIS","COFINS_RECUPERAR_IMPORTACAO","COFINS_DEVOLVIDO","COFINS_RECUPERAR","COFINS","IPI","IPI_CREDITADO","IPI_PRESUMIDO","IPI_OUTRAS_DESPESAS","ISS","ISS_RETIDO","IMPOSTO_IMPORTACAO","PIS_RETIDO","COFINS_RETIDO","CSLL","IRRF","INSS","INSS_PATRONAL","FUNRURAL_INSS","FUNRURAL_RAT","FUNRURAL_SENAR","FUNRURAL_TOTAL","ICMS","ICMS_CREDITADO","FCP","ICMS_DIFERIDO","ICMS_DESONERADO","ICMS_EFETIVO","DIFAL","DIFAL_DEVOLVIDO","ICMS_UF_DESTINO_DEVOLVIDO","FCP_UF_DESTINO_DEVOLVIDO","ICMS_SIMPLES","ICMS_FUTURO","ICMS_UF_DESTINO","FCP_UF_DESTINO","FCP_COBRADO_ANTERIORMENTE_ST","FCP_ST_RETIDO_ANT","FCP_ST","CIDE_TECNOLOGIA","it","tipoImposto","montaPis","montaCofins","montaIpi","montaIss","montaImportacoes","montaRetencoes","montaIcms","montaCide","montaRetencoesFunrural","grupo","formGroup","disable","patchValue","setValidators","storageValuesOnLookupValidator","setSubs","hasValue","controls","Validators","compose","required","max","updateValueAndValidity","emitEvent","setRequired","maxLength","clearValidators","validateAllFormFields","control","get","FormControl","markAsDirty","onlySelf","FormGroup","validateAllFieldsTributos","valueValid","invalid","backValue","arrItens","deuMath","getRawValue","emit","novoImpostoManual","singleChange","formField","_a","onBlur","impostoManual","menu","id","command","detectChanges","documento","PEDIDO_VENDA","tipoItem","Servico","NF_ENTRADA_CONTROLADORIA","NF_ENTRADA","PEDIDO_COMPRA","unshift","montaCampos","campo","BaseCalculo","Aliquota","Valor","PercentualReducao","ValorOutras","ValorIsentas","SituacaoTributaria","Origem","MotivoDesoneracaoIcms","PercentualSuspensaoParcial","PercentualDiferimento","PercentualMargemValorAdicionado","PercentualSuportadoConsumidorFinal","ValorRecolhidoPeloSubstituto","ValorIcmsStRetido","AliquotaInternaDestino","NF_SAIDA","AliquotaInterna","NF_SAIDA_CONTROLADORIA","Observacao","ImpostoNaoRecuperado","CodigoTributacao","CodigoArrecadacao","RETENCOES","IndicativoAquisicao","FUNRURAL","IMPORTACOES","ValorDeducao","baseCalculoCredito","RegimeTributarioPisCofins","NaturezaReceita","EnquadramentoIpi","setVariableRequired","PIS_FATURAMENTO","IMPOSTO_NAO_RECUPERADO","BASE_CALCULO_CREDITO","PERCENTUAL_REDUCAO","impostoCalculado","roundImposto","number","decimals","x","Math","pow","Number","toFixed","calcularValor","baseCalculo","aliquota","situacaoTributaria","codStr","base","valor","_b","floor","controleFunrural","calcularFunruralTotal","baseDiferente","setValue","funBase","funValor","valores","index","funruralImposto","this_1","campos","retorno","movimento","FormField","FieldType","Money","precision","scale","numberLocaleOptions","size","sm","md","lg","xl","errorMessages","getLabelAliquota","aliquotaInterna","aliquotaInternaDestino","valorIsentas","valorOutras","searchGridFields","Enum","options","PIS_COFINS","VSAIDA","VENTRADA","VAMBOS","mountOptions","multiple","domain","service","defaultFilter","operator","EnumLogicalOperator","Eq","values","filterByImposto","enquadramentoIpi","entity","percentualReducao","percentualMargemValorAdicionado","desoneracaoIcms","V0","V1","V2","V3","V4","V5","V6","V7","V8","V9","V10","V11","V12","V16","V90","placeholder","showClear","onChange","origem","percentualSuportadoConsumidorFinal","valorRecolhidoIcmsSt","valorIcmsStRetido","ModalidadeBC","modalidadeBC","naturezaReceita","lookupSort","order","searchSort","observacao","maxlength","valorDeducao","indicativoAquisicao","codigoArrecadacao","codigoTributacao","V13","V14","V15","V17","V18","regimeTributarioPisCofins","CUMULATIVO","NAO_CUMULATIVO","percentualSuspensaoParcial","sugestoes","sugestao","entries","atributos","group","controlName","controlObject","formField_1","valueChanges","switchMap","getFormControlSubscriptionValue","LookupField","cancelSubscription","setImpostoManualGroup","fieldValue","isFieldLookup","fieldIdentifier","getValidatedRepeatedLookupValues","of","getTranslateButton","isGroupInvalid","some","FormBuilder","ChangeDetectorRef","TranslateService","E027StrLookup","E027EqiLookup","CplTriNotaSaidaNaturezaReceitaPisCofinsLookup","LookupValidationUtils","GTagService","FeatureToggleService","Output","ErpTributosModule","TranslateModule","ButtonModule","AccordionModule","DynamicFormModule","ErpLookupsModule","LoadingStateModule","EntityService","translateService","entityUrl","entityAction","defaultCatch","bind","getListQueryParams","listParams","page","_c","sort","_d","filterQuery","_e","displayFields","HttpParams","append","join","catchError","err","status","sticky","message","statusText","throwError","list","insert","update","put","delete","QuantidadeDisponivelDemandaService","_super","__","create","__extends","QuantidadeDisponivelDemandaModule","PermissionsModule","forChild","actions","uri","EnumTipoMovimentacao","EnumTipoControleProduto","EnumInvoiceOrigin","ErpLoteSeriesService","foundationEntitiesUrl","supEntitiesUrl","queryUrl","getProductFamily","productID","getProductFamilySupplyInfo","familyID","displayfields","listBatch","listSeries","getBatch","getSerie","consultarSaldoEstoque","balancePayload","getUrl","getUrlInput","obterNecessidades","obterNecessidadesInput","ErpLoteSerieComponent","e210DxpLookup","batchSeriesService","quantidadeDisponivelDemandaService","gridData","selection","localeConfig","locale","blockedFields","showHeader","validateInvalidChars","e200lotLookupSuggestionsObservable","e200lotlookupSearchObservable","e200serLookupSuggestionsObservable","e200serlookupSearchObservable","quantidadeDisponivelDemandaLookupSuggestionsObservable","quantidadeDisponivelDemandalookupSearchObservable","loteLookupDisplayFields","serieLookupDisplayFields","isSerie","qtdAdistribuir","qtdDistribuida","qtdRestante","obrigaValidade","isSaida","disableDataValidade","prefix","sum","a","positions","factor","sub","loteSerieParams","onRouteDataChange","formGroupBatchOrSeries","getFormGroupDados","validaDados","gridColumns","getGridColumns","lote","exec","setErrors","existsInvalidChar","serie","processFamilySupplyInfo","dadosProduto","e012fam","tipoControleProduto","titleLoteOrSerie","titleGridLoteOrSerie","tipoMovimentacao","batchOrSeriesFields","getFieldsEntrada","quantidade","bulkVisible","batchSerieBulk","getFieldsSaida","dataFabricacao","dataValidade","quantidadeDistribuir","lotesOrSeries","getQuantidadeDistribuida","deposito","saldo","dadosFieldsEntrada","e205dep","searchFields","Integer","e070emp","e075der","visible","Boolean","representedBy","Text","rows","onBlurValidaLoteorSerie","Date","appendTo","Double","qtdDec","onBlurQuantity","dadosFieldsSaida","Lookup","searchTitle","searchEmptyTitle","filterLabel","clearLabel","cancelLabel","selectLabel","onSelect","invoiceInformation","origin","validaLoteorSerie","onSearchRequest","onQuantidadeDisponivelDemandaRequest","onE200SerSearchRequest","onLookupRequest","onE200SerLookupRequest","suggestionsObservable","searchObservable","lookupDisplayField","_f","getQuantidadeDisponivelDemandaSearchFields","getE200SerSearchFields","_h","_g","getQuantidadeDisponivelDemandaSearchGridFields","getE200SerSearchGridFields","_k","_j","dataKey","_m","_l","isDistributeSeriesButtonVisible","onE200LotSearchRequest","onE200LotLookupRequest","getE200LotSearchFields","getE200LotSearchGridFields","attributes","EnumColumnFieldType","STRING","first","multiSortMeta","filterData","orderBy","lotLike","lotSal","offset","lotDis","e200lot","codLot","lotes","totalRecords","totalElements","orderInformation","numSep","contents","e200serId","serLike","serSal","serDis","e200ser","series","removeBatchOrSeries","rowData","batchOrSeries","codigo","addBatchOrSeries","convertedArray","linhaAtual_1","msgError","life","currentValue","convertedValue","toCode","line","toDate","toAmount","reset","clear","distributedQuantity","toUpperCase","codLote","isDuplicateBatchSeries","loteOrSerieValues","formatDates","qtdDisponivel","datFabSep","datVltSep","clearBatchSeries","trim","linhaAtual","toNumber","moment","isValid","format","e_3","addedSeries","enable","getDatas","consultaSaldoEstoque","newValue","Serie","dates","formatDatesToCalendar","datFab","datVlt","supplyInfo","ctrVld","qtd","requestBody","properties","prev","translateHtml","text","shortcut","ret","onDistributeSeries","e070empId","company","e070filId","branch","itensId","product","tipo","PedidoVenda","documentoId","numeroDocumentoPai","toString","dataInicial","dataFinal","situacao","codigoDemanda","somenteUrgentes","pageRequest","necessidades","itemId","necessidade","idExterno","getUrlOutput","onDelete","isSerialControlled","E210DxpLookup","ErpLoteSerieModule","LocaleModule","PanelModule","TabViewModule","ConfirmDialogModule","FormsModule","ReactiveFormsModule","StatsCardModule","EmptyStateModule","TableModule","MessagesModule","SidebarModule","STableModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"@seniorsistemas/angular-components\";\n\nexport interface CampoTributo {\n campo: EnumCampoTributo;\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 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 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}\n\nexport enum EnumGrupoTributo {\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}\n\nexport enum EnumTipoTributo {\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 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}\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","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","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","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 { 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 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 { MenuItem, MessageService } from 'primeng/api';\nimport { Observable, of, Subject } from 'rxjs';\nimport { switchMap, takeUntil } from 'rxjs/operators';\nimport { ErpTributosService } from './erp-tributos.service';\nimport { FeatureToggleService } from '@seniorsistemas/platform-components';\nimport { GTagService } from '@seniorsistemas/platform-utils';\nimport {\n CampoTributo,\n EnumCampoTributo,\n EnumFunruralIndicativoAquisicao,\n EnumGrupoTributo,\n EnumModBc,\n EnumMotDes,\n EnumOriMer,\n EnumRegimeTributarioPisCofins,\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 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 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 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\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 formBuilder: FormBuilder,\n private changeDetector: ChangeDetectorRef,\n private translate: TranslateService,\n private e027StrLookup: E027StrLookup,\n private e027eqiLookup: E027EqiLookup,\n private naturezaReceitaLookup: CplTriNotaSaidaNaturezaReceitaPisCofinsLookup,\n private lookupUtils: LookupValidationUtils,\n protected messageService: MessageService,\n private erpTributosService: ErpTributosService,\n private gtag: GTagService,\n private readonly featureToggleService: FeatureToggleService\n ) { }\n\n ngOnInit() {\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\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 default:\n break;\n }\n }\n\n private clearVariables() {\n if (this.reload) {\n this.indexAccordion = [-1];\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\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.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.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 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 === '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 this.setRequired(tributo, true);\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 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 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 === '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 menu.push(\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 return menu;\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'}`, 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'}`, 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'}`, 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'}`, 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'}`, 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'}`, item });\n return item;\n }\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'}`, 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'}`, 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'}`, item });\n return item;\n }\n }\n\n private setVariableRequired(tributo: EnumTipoTributo) {\n switch (tributo) {\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.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.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 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 ((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 let controleFunrural = this.calcularFunruralTotal(impostos, grupo)\n\n if (controleFunrural.baseDiferente) {\n this.messageService.add({\n severity: \"warn\",\n summary: this.translate.instant(\n \"erpx.tributos.error_base_funrural_diferente_summary\"\n ),\n detail: this.translate.instant(\n \"erpx.tributos.error_base_funrural_diferente_detail\"\n ),\n });\n }\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 calcularFunruralTotal(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 funruralImposto = grupo.item.find(item => item.name === impostos[index]);\n\n if (funruralImposto.formGroup.value.baseCalculo != undefined) {\n if (valores.funBase > 0 && valores.funBase != funruralImposto.formGroup.value.baseCalculo) {\n valores.baseDiferente = true;\n }\n\n valores.funBase = funruralImposto.formGroup.value.baseCalculo > valores.funBase ? funruralImposto.formGroup.value.baseCalculo : valores.funBase;\n }\n\n if (funruralImposto.formGroup.value.valor != undefined) {\n valores.funValor = Number(this.roundImposto(Number(valores.funValor) + Number(funruralImposto.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 },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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.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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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.Valor) {\n formGroup = {\n ...formGroup,\n valor: [\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 + '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 },\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.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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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, aliquota: [{ value: undefined, disabled: false }, Validators.compose([Validators.max(100)])] };\n\n formField.push(\n new FormField({\n id: tributo + 'PercentualDiferimento',\n name: 'aliquota',\n label: this.translate.instant('erpx.tributos.fields_percentual_diferimento_label'),\n type: FieldType.Money,\n precision: 7,\n scale: 4,\n numberLocaleOptions: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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.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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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: { currencySymbol: '%', decimalSeparator: ',', thousandsSeparator: '.' },\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 }\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.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","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","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 }),\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, value.qtdDisponivel, this.locale.number.scale)\n this.qtdRestante = this.sub(this.qtdRestante, 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, 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 { 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 { 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"]}
|