@senior-gestao-empresarial/erpx-components 0.0.0-develop-3bab051d
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 +37665 -0
- package/bundles/senior-gestao-empresarial-erpx-components.umd.js.map +1 -0
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js +17 -0
- package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -0
- package/components/breadcrumb/breadcrumb.component.d.ts +21 -0
- package/components/breadcrumb/breadcrumb.module.d.ts +2 -0
- package/components/breadcrumb/index.d.ts +2 -0
- package/components/focus/focus.service.d.ts +4 -0
- package/components/lote-serie/erp-lote-serie.component.d.ts +183 -0
- package/components/lote-serie/erp-lote-serie.module.d.ts +2 -0
- package/components/lote-serie/erp-lote-serie.service.d.ts +137 -0
- package/components/lote-serie/index.d.ts +2 -0
- package/components/rateio-editor/erp-rateio-editor.component.d.ts +202 -0
- package/components/rateio-editor/erp-rateio-editor.converter.d.ts +18 -0
- package/components/rateio-editor/erp-rateio-editor.module.d.ts +2 -0
- package/components/rateio-editor/erp-rateio-editor.service.d.ts +17 -0
- package/components/rateio-editor/erp-rateio-editor.types.d.ts +171 -0
- package/components/rateio-editor/index.d.ts +4 -0
- package/components/resumo/erp-resumo.component.d.ts +17 -0
- package/components/resumo/erp-resumo.module.d.ts +2 -0
- package/components/resumo/erp-resumo.service.d.ts +2 -0
- package/components/resumo/index.d.ts +2 -0
- package/components/tributos/calculators/effective-tax-rate-calculator.d.ts +34 -0
- package/components/tributos/calculators/gross-amount-calculator.d.ts +20 -0
- package/components/tributos/calculators/tax-amount-calculator.d.ts +54 -0
- package/components/tributos/erp-tributos.component.d.ts +215 -0
- package/components/tributos/erp-tributos.module.d.ts +2 -0
- package/components/tributos/erp-tributos.service.d.ts +10 -0
- package/components/tributos/erp-tributos.types.d.ts +286 -0
- package/components/tributos/index.d.ts +12 -0
- package/components/tributos/mappings/enum-tip-imp-cst-mapping.d.ts +2 -0
- package/components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry.d.ts +15 -0
- package/components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry.d.ts +28 -0
- package/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.d.ts +30 -0
- package/components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry.d.ts +22 -0
- package/components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry.d.ts +22 -0
- package/components/tributos/rules/calculation/rules/apply-net-value-to-document-calculation-rule.d.ts +5 -0
- package/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.d.ts +5 -0
- package/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.d.ts +8 -0
- package/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.d.ts +8 -0
- package/components/tributos/rules/calculation/rules/manual-tax-calculation-rule.d.ts +5 -0
- package/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.d.ts +8 -0
- package/components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule.d.ts +5 -0
- package/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.d.ts +6 -0
- package/components/tributos/rules/calculation/rules/tax-rate-calculation-rule.d.ts +5 -0
- package/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.d.ts +5 -0
- package/components/tributos/rules/calculation/rules/taxable-base-calculation-rule.d.ts +8 -0
- package/components/tributos/rules/rules.service.d.ts +19 -0
- package/components/tributos/rules/status/registries/incoming-invoice-status-rules.registry.d.ts +16 -0
- package/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.d.ts +12 -0
- package/components/tributos/rules/status/registries/purchase-order-status-rules.registry.d.ts +12 -0
- package/components/tributos/rules/status/registries/sale-order-status-rules.registry.d.ts +8 -0
- package/components/tributos/rules/status/registries/status-rules.registry.d.ts +15 -0
- package/components/tributos/rules/status/rules/apply-net-value-to-document-status-rule.d.ts +5 -0
- package/components/tributos/rules/status/rules/tax-classification-status-rule.d.ts +5 -0
- package/components/tributos/rules/status/rules/tax-rate-status-rule.d.ts +5 -0
- package/components/tributos/rules/status/rules/taxable-base-status-rule.d.ts +5 -0
- package/components/tributos/rules/types/available-fields.d.ts +2 -0
- package/components/tributos/rules/types/available-taxes.d.ts +1 -0
- package/components/tributos/rules/types/field-calculation-rule-mapping.d.ts +6 -0
- package/components/tributos/rules/types/field-rule-mapping.d.ts +6 -0
- package/components/tributos/rules/types/field-status-rule-mapping.d.ts +6 -0
- package/components/tributos/rules/types/rule-payload.d.ts +9 -0
- package/components/tributos/rules/types/schemas/incoming-invoice.schema.d.ts +235 -0
- package/components/tributos/rules/types/schemas/outgoing-invoice.schema.d.ts +349 -0
- package/components/tributos/rules/types/schemas/purchase-order.schema.d.ts +26 -0
- package/components/tributos/rules/types/schemas/sale-order.schema.d.ts +131 -0
- package/components/tributos/rules/types/strategies-by-document.d.ts +12 -0
- package/components/tributos/rules/types/strategies.d.ts +4 -0
- package/components/tributos/rules/types/tax-rule.d.ts +4 -0
- package/components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry.d.ts +20 -0
- package/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.d.ts +22 -0
- package/components/tributos/rules/validation/registries/purchase-order-validation-rules.registry.d.ts +14 -0
- package/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.d.ts +14 -0
- package/components/tributos/rules/validation/registries/validation-rules.registry.d.ts +15 -0
- package/components/tributos/rules/validation/rules/required/apply-net-value-to-document-required-validation-rule.d.ts +5 -0
- package/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.d.ts +5 -0
- package/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.d.ts +5 -0
- package/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.d.ts +5 -0
- package/components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule.d.ts +6 -0
- package/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.d.ts +6 -0
- package/components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule.d.ts +6 -0
- package/components/tributos/services/tax-rounding.service.d.ts +5 -0
- package/components/tributos/stores/tax.store.d.ts +10 -0
- package/components/tributos/tax-reform-utilities.d.ts +36 -0
- package/components/tributos/types/context.d.ts +7 -0
- package/components/tributos/types/controllership-incoming-invoice-context.d.ts +5 -0
- package/components/tributos/types/controllership-incoming-invoice.d.ts +3 -0
- package/components/tributos/types/controllership-outgoing-invoice-context.d.ts +5 -0
- package/components/tributos/types/controllership-outgoing-invoice.d.ts +3 -0
- package/components/tributos/types/credit-invoice-type.d.ts +1 -0
- package/components/tributos/types/debit-invoice-type.d.ts +1 -0
- package/components/tributos/types/group.d.ts +6 -0
- package/components/tributos/types/incoming-invoice-context.d.ts +5 -0
- package/components/tributos/types/incoming-invoice-item.d.ts +4 -0
- package/components/tributos/types/incoming-invoice-type.d.ts +1 -0
- package/components/tributos/types/incoming-invoice.d.ts +11 -0
- package/components/tributos/types/item-type.d.ts +1 -0
- package/components/tributos/types/outgoing-Invoice.d.ts +11 -0
- package/components/tributos/types/outgoing-invoice-context.d.ts +5 -0
- package/components/tributos/types/outgoing-invoice-item.d.ts +4 -0
- package/components/tributos/types/outgoing-invoice-type.d.ts +1 -0
- package/components/tributos/types/purchase-order-context.d.ts +5 -0
- package/components/tributos/types/purchase-order-type.d.ts +1 -0
- package/components/tributos/types/purchase-order.d.ts +8 -0
- package/components/tributos/types/sale-order-context.d.ts +5 -0
- package/components/tributos/types/sale-order-type.d.ts +1 -0
- package/components/tributos/types/sale-order.d.ts +8 -0
- package/components/tributos/types/tax.d.ts +8 -0
- package/components/utils/breakpoints.d.ts +10 -0
- package/components/utils/export-utils.d.ts +6 -0
- package/components/utils/index.d.ts +3 -0
- package/components/utils/loading-context.d.ts +7 -0
- package/components/utils/utils.d.ts +4 -0
- package/core/entities/entity-service.d.ts +32 -0
- package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda-dto.d.ts +36 -0
- package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.d.ts +40 -0
- package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.d.ts +2 -0
- package/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.d.ts +11 -0
- package/core/enums/enum-classificacao-tributaria.d.ts +4 -0
- package/core/enums/enum-tipo-calculo-imposto.d.ts +5 -0
- package/core/enums/enum-tipo-documento-parametros.d.ts +7 -0
- package/core/enums/enum-tipo-documento.d.ts +10 -0
- package/core/enums/erpx-com-processo-faturamento-backend/enum-indicativo-padrao.d.ts +5 -0
- package/core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao.d.ts +8 -0
- package/esm2015/components/breadcrumb/breadcrumb.component.js +86 -0
- package/esm2015/components/breadcrumb/breadcrumb.module.js +17 -0
- package/esm2015/components/breadcrumb/index.js +3 -0
- package/esm2015/components/focus/focus.service.js +32 -0
- package/esm2015/components/lote-serie/erp-lote-serie.component.js +1772 -0
- package/esm2015/components/lote-serie/erp-lote-serie.module.js +47 -0
- package/esm2015/components/lote-serie/erp-lote-serie.service.js +94 -0
- package/esm2015/components/lote-serie/index.js +3 -0
- package/esm2015/components/rateio-editor/erp-rateio-editor.component.js +794 -0
- package/esm2015/components/rateio-editor/erp-rateio-editor.converter.js +52 -0
- package/esm2015/components/rateio-editor/erp-rateio-editor.module.js +40 -0
- package/esm2015/components/rateio-editor/erp-rateio-editor.service.js +49 -0
- package/esm2015/components/rateio-editor/erp-rateio-editor.types.js +5 -0
- package/esm2015/components/rateio-editor/index.js +4 -0
- package/esm2015/components/resumo/erp-resumo.component.js +19 -0
- package/esm2015/components/resumo/erp-resumo.module.js +25 -0
- package/esm2015/components/resumo/erp-resumo.service.js +13 -0
- package/esm2015/components/resumo/index.js +2 -0
- package/esm2015/components/tributos/calculators/effective-tax-rate-calculator.js +53 -0
- package/esm2015/components/tributos/calculators/gross-amount-calculator.js +37 -0
- package/esm2015/components/tributos/calculators/tax-amount-calculator.js +87 -0
- package/esm2015/components/tributos/erp-tributos.component.js +5176 -0
- package/esm2015/components/tributos/erp-tributos.module.js +33 -0
- package/esm2015/components/tributos/erp-tributos.service.js +23 -0
- package/esm2015/components/tributos/erp-tributos.types.js +268 -0
- package/esm2015/components/tributos/index.js +4 -0
- package/esm2015/components/tributos/mappings/enum-tip-imp-cst-mapping.js +33 -0
- package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry.js +45 -0
- package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry.js +3102 -0
- package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.js +4516 -0
- package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry.js +294 -0
- package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry.js +1464 -0
- package/esm2015/components/tributos/rules/calculation/rules/apply-net-value-to-document-calculation-rule.js +48 -0
- package/esm2015/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js +55 -0
- package/esm2015/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.js +83 -0
- package/esm2015/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.js +74 -0
- package/esm2015/components/tributos/rules/calculation/rules/manual-tax-calculation-rule.js +72 -0
- package/esm2015/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.js +244 -0
- package/esm2015/components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule.js +74 -0
- package/esm2015/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.js +170 -0
- package/esm2015/components/tributos/rules/calculation/rules/tax-rate-calculation-rule.js +100 -0
- package/esm2015/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.js +124 -0
- package/esm2015/components/tributos/rules/calculation/rules/taxable-base-calculation-rule.js +292 -0
- package/esm2015/components/tributos/rules/rules.service.js +61 -0
- package/esm2015/components/tributos/rules/status/registries/incoming-invoice-status-rules.registry.js +1076 -0
- package/esm2015/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.js +1317 -0
- package/esm2015/components/tributos/rules/status/registries/purchase-order-status-rules.registry.js +62 -0
- package/esm2015/components/tributos/rules/status/registries/sale-order-status-rules.registry.js +18 -0
- package/esm2015/components/tributos/rules/status/registries/status-rules.registry.js +45 -0
- package/esm2015/components/tributos/rules/status/rules/apply-net-value-to-document-status-rule.js +39 -0
- package/esm2015/components/tributos/rules/status/rules/tax-classification-status-rule.js +94 -0
- package/esm2015/components/tributos/rules/status/rules/tax-rate-status-rule.js +61 -0
- package/esm2015/components/tributos/rules/status/rules/taxable-base-status-rule.js +65 -0
- package/esm2015/components/tributos/rules/types/available-fields.js +1 -0
- package/esm2015/components/tributos/rules/types/available-taxes.js +1 -0
- package/esm2015/components/tributos/rules/types/field-calculation-rule-mapping.js +1 -0
- package/esm2015/components/tributos/rules/types/field-rule-mapping.js +1 -0
- package/esm2015/components/tributos/rules/types/field-status-rule-mapping.js +1 -0
- package/esm2015/components/tributos/rules/types/rule-payload.js +1 -0
- package/esm2015/components/tributos/rules/types/schemas/incoming-invoice.schema.js +1816 -0
- package/esm2015/components/tributos/rules/types/schemas/outgoing-invoice.schema.js +2750 -0
- package/esm2015/components/tributos/rules/types/schemas/purchase-order.schema.js +150 -0
- package/esm2015/components/tributos/rules/types/schemas/sale-order.schema.js +879 -0
- package/esm2015/components/tributos/rules/types/strategies-by-document.js +1 -0
- package/esm2015/components/tributos/rules/types/strategies.js +1 -0
- package/esm2015/components/tributos/rules/types/tax-rule.js +1 -0
- package/esm2015/components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry.js +3606 -0
- package/esm2015/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.js +5452 -0
- package/esm2015/components/tributos/rules/validation/registries/purchase-order-validation-rules.registry.js +270 -0
- package/esm2015/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.js +1392 -0
- package/esm2015/components/tributos/rules/validation/registries/validation-rules.registry.js +45 -0
- package/esm2015/components/tributos/rules/validation/rules/required/apply-net-value-to-document-required-validation-rule.js +73 -0
- package/esm2015/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.js +78 -0
- package/esm2015/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.js +902 -0
- package/esm2015/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.js +401 -0
- package/esm2015/components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule.js +719 -0
- package/esm2015/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.js +300 -0
- package/esm2015/components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule.js +717 -0
- package/esm2015/components/tributos/services/tax-rounding.service.js +18 -0
- package/esm2015/components/tributos/stores/tax.store.js +19 -0
- package/esm2015/components/tributos/tax-reform-utilities.js +243 -0
- package/esm2015/components/tributos/types/context.js +1 -0
- package/esm2015/components/tributos/types/controllership-incoming-invoice-context.js +1 -0
- package/esm2015/components/tributos/types/controllership-incoming-invoice.js +1 -0
- package/esm2015/components/tributos/types/controllership-outgoing-invoice-context.js +1 -0
- package/esm2015/components/tributos/types/controllership-outgoing-invoice.js +1 -0
- package/esm2015/components/tributos/types/credit-invoice-type.js +1 -0
- package/esm2015/components/tributos/types/debit-invoice-type.js +1 -0
- package/esm2015/components/tributos/types/group.js +1 -0
- package/esm2015/components/tributos/types/incoming-invoice-context.js +1 -0
- package/esm2015/components/tributos/types/incoming-invoice-item.js +1 -0
- package/esm2015/components/tributos/types/incoming-invoice-type.js +1 -0
- package/esm2015/components/tributos/types/incoming-invoice.js +1 -0
- package/esm2015/components/tributos/types/item-type.js +1 -0
- package/esm2015/components/tributos/types/outgoing-Invoice.js +1 -0
- package/esm2015/components/tributos/types/outgoing-invoice-context.js +1 -0
- package/esm2015/components/tributos/types/outgoing-invoice-item.js +1 -0
- package/esm2015/components/tributos/types/outgoing-invoice-type.js +1 -0
- package/esm2015/components/tributos/types/purchase-order-context.js +1 -0
- package/esm2015/components/tributos/types/purchase-order-type.js +1 -0
- package/esm2015/components/tributos/types/purchase-order.js +1 -0
- package/esm2015/components/tributos/types/sale-order-context.js +1 -0
- package/esm2015/components/tributos/types/sale-order-type.js +1 -0
- package/esm2015/components/tributos/types/sale-order.js +1 -0
- package/esm2015/components/tributos/types/tax.js +2 -0
- package/esm2015/components/utils/breakpoints.js +11 -0
- package/esm2015/components/utils/export-utils.js +71 -0
- package/esm2015/components/utils/index.js +4 -0
- package/esm2015/components/utils/loading-context.js +20 -0
- package/esm2015/components/utils/utils.js +18 -0
- package/esm2015/core/entities/entity-service.js +91 -0
- package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda-dto.js +1 -0
- package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.js +62 -0
- package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.js +24 -0
- package/esm2015/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.js +24 -0
- package/esm2015/core/enums/enum-classificacao-tributaria.js +6 -0
- package/esm2015/core/enums/enum-tipo-calculo-imposto.js +7 -0
- package/esm2015/core/enums/enum-tipo-documento-parametros.js +9 -0
- package/esm2015/core/enums/enum-tipo-documento.js +12 -0
- package/esm2015/core/enums/erpx-com-processo-faturamento-backend/enum-indicativo-padrao.js +7 -0
- package/esm2015/core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao.js +10 -0
- package/esm2015/locale/fallback.js +56 -0
- package/esm2015/public-api.js +8 -0
- package/esm2015/senior-gestao-empresarial-erpx-components.js +58 -0
- package/esm5/components/breadcrumb/breadcrumb.component.js +91 -0
- package/esm5/components/breadcrumb/breadcrumb.module.js +20 -0
- package/esm5/components/breadcrumb/index.js +3 -0
- package/esm5/components/focus/focus.service.js +35 -0
- package/esm5/components/lote-serie/erp-lote-serie.component.js +1830 -0
- package/esm5/components/lote-serie/erp-lote-serie.module.js +50 -0
- package/esm5/components/lote-serie/erp-lote-serie.service.js +96 -0
- package/esm5/components/lote-serie/index.js +3 -0
- package/esm5/components/rateio-editor/erp-rateio-editor.component.js +861 -0
- package/esm5/components/rateio-editor/erp-rateio-editor.converter.js +68 -0
- package/esm5/components/rateio-editor/erp-rateio-editor.module.js +43 -0
- package/esm5/components/rateio-editor/erp-rateio-editor.service.js +51 -0
- package/esm5/components/rateio-editor/erp-rateio-editor.types.js +5 -0
- package/esm5/components/rateio-editor/index.js +4 -0
- package/esm5/components/resumo/erp-resumo.component.js +22 -0
- package/esm5/components/resumo/erp-resumo.module.js +28 -0
- package/esm5/components/resumo/erp-resumo.service.js +16 -0
- package/esm5/components/resumo/index.js +2 -0
- package/esm5/components/tributos/calculators/effective-tax-rate-calculator.js +58 -0
- package/esm5/components/tributos/calculators/gross-amount-calculator.js +39 -0
- package/esm5/components/tributos/calculators/tax-amount-calculator.js +91 -0
- package/esm5/components/tributos/erp-tributos.component.js +5296 -0
- package/esm5/components/tributos/erp-tributos.module.js +36 -0
- package/esm5/components/tributos/erp-tributos.service.js +24 -0
- package/esm5/components/tributos/erp-tributos.types.js +268 -0
- package/esm5/components/tributos/index.js +4 -0
- package/esm5/components/tributos/mappings/enum-tip-imp-cst-mapping.js +33 -0
- package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry.js +46 -0
- package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry.js +3104 -0
- package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.js +4518 -0
- package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry.js +296 -0
- package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry.js +1466 -0
- package/esm5/components/tributos/rules/calculation/rules/apply-net-value-to-document-calculation-rule.js +60 -0
- package/esm5/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js +77 -0
- package/esm5/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.js +92 -0
- package/esm5/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.js +83 -0
- package/esm5/components/tributos/rules/calculation/rules/manual-tax-calculation-rule.js +87 -0
- package/esm5/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.js +286 -0
- package/esm5/components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule.js +89 -0
- package/esm5/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.js +241 -0
- package/esm5/components/tributos/rules/calculation/rules/tax-rate-calculation-rule.js +118 -0
- package/esm5/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.js +200 -0
- package/esm5/components/tributos/rules/calculation/rules/taxable-base-calculation-rule.js +330 -0
- package/esm5/components/tributos/rules/rules.service.js +139 -0
- package/esm5/components/tributos/rules/status/registries/incoming-invoice-status-rules.registry.js +1078 -0
- package/esm5/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.js +1319 -0
- package/esm5/components/tributos/rules/status/registries/purchase-order-status-rules.registry.js +64 -0
- package/esm5/components/tributos/rules/status/registries/sale-order-status-rules.registry.js +19 -0
- package/esm5/components/tributos/rules/status/registries/status-rules.registry.js +46 -0
- package/esm5/components/tributos/rules/status/rules/apply-net-value-to-document-status-rule.js +43 -0
- package/esm5/components/tributos/rules/status/rules/tax-classification-status-rule.js +106 -0
- package/esm5/components/tributos/rules/status/rules/tax-rate-status-rule.js +68 -0
- package/esm5/components/tributos/rules/status/rules/taxable-base-status-rule.js +72 -0
- package/esm5/components/tributos/rules/types/available-fields.js +1 -0
- package/esm5/components/tributos/rules/types/available-taxes.js +1 -0
- package/esm5/components/tributos/rules/types/field-calculation-rule-mapping.js +1 -0
- package/esm5/components/tributos/rules/types/field-rule-mapping.js +1 -0
- package/esm5/components/tributos/rules/types/field-status-rule-mapping.js +1 -0
- package/esm5/components/tributos/rules/types/rule-payload.js +1 -0
- package/esm5/components/tributos/rules/types/schemas/incoming-invoice.schema.js +1817 -0
- package/esm5/components/tributos/rules/types/schemas/outgoing-invoice.schema.js +2751 -0
- package/esm5/components/tributos/rules/types/schemas/purchase-order.schema.js +151 -0
- package/esm5/components/tributos/rules/types/schemas/sale-order.schema.js +880 -0
- package/esm5/components/tributos/rules/types/strategies-by-document.js +1 -0
- package/esm5/components/tributos/rules/types/strategies.js +1 -0
- package/esm5/components/tributos/rules/types/tax-rule.js +1 -0
- package/esm5/components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry.js +3608 -0
- package/esm5/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.js +5454 -0
- package/esm5/components/tributos/rules/validation/registries/purchase-order-validation-rules.registry.js +272 -0
- package/esm5/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.js +1394 -0
- package/esm5/components/tributos/rules/validation/registries/validation-rules.registry.js +46 -0
- package/esm5/components/tributos/rules/validation/rules/required/apply-net-value-to-document-required-validation-rule.js +77 -0
- package/esm5/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.js +86 -0
- package/esm5/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.js +968 -0
- package/esm5/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.js +433 -0
- package/esm5/components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule.js +774 -0
- package/esm5/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.js +323 -0
- package/esm5/components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule.js +772 -0
- package/esm5/components/tributos/services/tax-rounding.service.js +23 -0
- package/esm5/components/tributos/stores/tax.store.js +26 -0
- package/esm5/components/tributos/tax-reform-utilities.js +249 -0
- package/esm5/components/tributos/types/context.js +1 -0
- package/esm5/components/tributos/types/controllership-incoming-invoice-context.js +1 -0
- package/esm5/components/tributos/types/controllership-incoming-invoice.js +1 -0
- package/esm5/components/tributos/types/controllership-outgoing-invoice-context.js +1 -0
- package/esm5/components/tributos/types/controllership-outgoing-invoice.js +1 -0
- package/esm5/components/tributos/types/credit-invoice-type.js +1 -0
- package/esm5/components/tributos/types/debit-invoice-type.js +1 -0
- package/esm5/components/tributos/types/group.js +1 -0
- package/esm5/components/tributos/types/incoming-invoice-context.js +1 -0
- package/esm5/components/tributos/types/incoming-invoice-item.js +1 -0
- package/esm5/components/tributos/types/incoming-invoice-type.js +1 -0
- package/esm5/components/tributos/types/incoming-invoice.js +1 -0
- package/esm5/components/tributos/types/item-type.js +1 -0
- package/esm5/components/tributos/types/outgoing-Invoice.js +1 -0
- package/esm5/components/tributos/types/outgoing-invoice-context.js +1 -0
- package/esm5/components/tributos/types/outgoing-invoice-item.js +1 -0
- package/esm5/components/tributos/types/outgoing-invoice-type.js +1 -0
- package/esm5/components/tributos/types/purchase-order-context.js +1 -0
- package/esm5/components/tributos/types/purchase-order-type.js +1 -0
- package/esm5/components/tributos/types/purchase-order.js +1 -0
- package/esm5/components/tributos/types/sale-order-context.js +1 -0
- package/esm5/components/tributos/types/sale-order-type.js +1 -0
- package/esm5/components/tributos/types/sale-order.js +1 -0
- package/esm5/components/tributos/types/tax.js +2 -0
- package/esm5/components/utils/breakpoints.js +11 -0
- package/esm5/components/utils/export-utils.js +78 -0
- package/esm5/components/utils/index.js +4 -0
- package/esm5/components/utils/loading-context.js +22 -0
- package/esm5/components/utils/utils.js +20 -0
- package/esm5/core/entities/entity-service.js +98 -0
- package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda-dto.js +1 -0
- package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.js +67 -0
- package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module.js +27 -0
- package/esm5/core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service.js +27 -0
- package/esm5/core/enums/enum-classificacao-tributaria.js +6 -0
- package/esm5/core/enums/enum-tipo-calculo-imposto.js +7 -0
- package/esm5/core/enums/enum-tipo-documento-parametros.js +9 -0
- package/esm5/core/enums/enum-tipo-documento.js +12 -0
- package/esm5/core/enums/erpx-com-processo-faturamento-backend/enum-indicativo-padrao.js +7 -0
- package/esm5/core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao.js +10 -0
- package/esm5/locale/fallback.js +56 -0
- package/esm5/public-api.js +8 -0
- package/esm5/senior-gestao-empresarial-erpx-components.js +58 -0
- package/fesm2015/senior-gestao-empresarial-erpx-components.js +36350 -0
- package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -0
- package/fesm5/senior-gestao-empresarial-erpx-components.js +37396 -0
- package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -0
- package/locale/fallback.d.ts +55 -0
- package/package.json +23 -0
- package/public-api.d.ts +7 -0
- package/senior-gestao-empresarial-erpx-components.d.ts +57 -0
- package/senior-gestao-empresarial-erpx-components.metadata.json +1 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { combineLatest } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, map, skip, startWith } from 'rxjs/operators';
|
|
5
|
+
import { EnumIndicativoPadrao } from '../../../../../core/enums/erpx-cpl-imp-cadastros-backend/enum-indicativo-padrao';
|
|
6
|
+
import { EnumAplicarValorLiquidoDocumento, EnumCampoTributo, EnumTipoTributo } from '../../../erp-tributos.types';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
let ApplyNetValueToDocumentCalculationRule = class ApplyNetValueToDocumentCalculationRule {
|
|
9
|
+
apply({ context: { document }, item: { name: taxType, formGroup, formField } }) {
|
|
10
|
+
switch (taxType) {
|
|
11
|
+
case EnumTipoTributo.IBS_CREDITO_PRESUMIDO:
|
|
12
|
+
{
|
|
13
|
+
switch (document) {
|
|
14
|
+
case 'Incoming Invoice':
|
|
15
|
+
case 'Outgoing Invoice':
|
|
16
|
+
{
|
|
17
|
+
const { dataKey } = formField.find(({ name }) => name === 'classificacaoTributaria');
|
|
18
|
+
combineLatest([
|
|
19
|
+
formGroup
|
|
20
|
+
.get('classificacaoTributaria')
|
|
21
|
+
.valueChanges.pipe(startWith(formGroup.get('classificacaoTributaria').value), distinctUntilChanged((old, current) => (old === null || old === void 0 ? void 0 : old[dataKey]) === (current === null || current === void 0 ? void 0 : current[dataKey])))
|
|
22
|
+
])
|
|
23
|
+
.pipe(skip(1), map(([taxClassification]) => (taxClassification === null || taxClassification === void 0 ? void 0 : taxClassification['credPresIndDeduzCredPres']) === EnumIndicativoPadrao.EXIGE
|
|
24
|
+
? EnumAplicarValorLiquidoDocumento.SUBTRAIR
|
|
25
|
+
: EnumAplicarValorLiquidoDocumento.NENHUM))
|
|
26
|
+
.subscribe((applyNetValue) => {
|
|
27
|
+
formGroup
|
|
28
|
+
.get(EnumCampoTributo.AplicarValorLiquidoDocumento)
|
|
29
|
+
.setValue(applyNetValue);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
throw new Error(`Regra ApplyNetValueToDocumentCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`Regra ApplyNetValueToDocumentCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
ApplyNetValueToDocumentCalculationRule.ɵprov = i0.ɵɵdefineInjectable({ factory: function ApplyNetValueToDocumentCalculationRule_Factory() { return new ApplyNetValueToDocumentCalculationRule(); }, token: ApplyNetValueToDocumentCalculationRule, providedIn: "root" });
|
|
44
|
+
ApplyNetValueToDocumentCalculationRule = __decorate([
|
|
45
|
+
Injectable({ providedIn: 'root' })
|
|
46
|
+
], ApplyNetValueToDocumentCalculationRule);
|
|
47
|
+
export { ApplyNetValueToDocumentCalculationRule };
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktbmV0LXZhbHVlLXRvLWRvY3VtZW50LWNhbGN1bGF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3J1bGVzL2FwcGx5LW5ldC12YWx1ZS10by1kb2N1bWVudC1jYWxjdWxhdGlvbi1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUZBQWlGLENBQUM7QUFDdkgsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNsQixNQUFNLDZCQUE2QixDQUFDOztBQUtyQyxJQUFhLHNDQUFzQyxHQUFuRCxNQUFhLHNDQUFzQztJQUMvQyxLQUFLLENBQUMsRUFDRixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFDckIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQ25DO1FBQ1YsUUFBUSxPQUFPLEVBQUU7WUFDYixLQUFLLGVBQWUsQ0FBQyxxQkFBcUI7Z0JBQ3RDO29CQUNJLFFBQVEsUUFBUSxFQUFFO3dCQUNkLEtBQUssa0JBQWtCLENBQUM7d0JBQ3hCLEtBQUssa0JBQWtCOzRCQUNuQjtnQ0FDSSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FDOUIsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDVCxJQUFJLEtBQUsseUJBQXlCLENBQzFCLENBQUM7Z0NBRWpCLGFBQWEsQ0FBQztvQ0FDVixTQUFTO3lDQUNKLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBRTt5Q0FDL0IsWUFBWSxDQUFDLElBQUksQ0FDZCxTQUFTLENBQ0wsU0FBUyxDQUFDLEdBQUcsQ0FDVCx5QkFBeUIsQ0FDM0IsQ0FBQyxLQUFLLENBQ1gsRUFDRCxvQkFBb0IsQ0FDaEIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDYixDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRyxPQUFPLFFBQ2IsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLE9BQU8sRUFBQyxDQUN6QixDQUNKO2lDQUNSLENBQUM7cUNBQ0csSUFBSSxDQUNELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxDQUN4QixDQUFBLGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUNiLDBCQUEwQixPQUN4QixvQkFBb0IsQ0FBQyxLQUFLO29DQUM1QixDQUFDLENBQUMsZ0NBQWdDLENBQUMsUUFBUTtvQ0FDM0MsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FDaEQsQ0FDSjtxQ0FDQSxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQ0FDekIsU0FBUzt5Q0FDSixHQUFHLENBQ0EsZ0JBQWdCLENBQUMsNEJBQTRCLENBQy9DO3lDQUNELFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQ0FDakMsQ0FBQyxDQUFDLENBQUM7NkJBQ1Y7NEJBQ0QsTUFBTTt3QkFDVjs0QkFDSSxNQUFNLElBQUksS0FBSyxDQUNYLGdGQUFnRixPQUFPLGVBQWUsUUFBUSxHQUFHLENBQ3BILENBQUM7cUJBQ1Q7aUJBQ0o7Z0JBQ0QsTUFBTTtZQUNWO2dCQUNJLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0ZBQWdGLE9BQU8sZUFBZSxRQUFRLEdBQUcsQ0FDcEgsQ0FBQztTQUNUO0lBQ0wsQ0FBQztDQUNKLENBQUE7O0FBakVZLHNDQUFzQztJQURsRCxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7R0FDdEIsc0NBQXNDLENBaUVsRDtTQWpFWSxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb29rdXBGaWVsZCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2tpcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW51bUluZGljYXRpdm9QYWRyYW8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL2VudW1zL2VycHgtY3BsLWltcC1jYWRhc3Ryb3MtYmFja2VuZC9lbnVtLWluZGljYXRpdm8tcGFkcmFvJztcbmltcG9ydCB7XG4gICAgRW51bUFwbGljYXJWYWxvckxpcXVpZG9Eb2N1bWVudG8sXG4gICAgRW51bUNhbXBvVHJpYnV0byxcbiAgICBFbnVtVGlwb1RyaWJ1dG9cbn0gZnJvbSAnLi4vLi4vLi4vZXJwLXRyaWJ1dG9zLnR5cGVzJztcbmltcG9ydCB7IFJ1bGVQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMvcnVsZS1wYXlsb2FkJztcbmltcG9ydCB7IFRheFJ1bGUgfSBmcm9tICcuLi8uLi90eXBlcy90YXgtcnVsZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXBwbHlOZXRWYWx1ZVRvRG9jdW1lbnRDYWxjdWxhdGlvblJ1bGUgaW1wbGVtZW50cyBUYXhSdWxlIHtcbiAgICBhcHBseSh7XG4gICAgICAgIGNvbnRleHQ6IHsgZG9jdW1lbnQgfSxcbiAgICAgICAgaXRlbTogeyBuYW1lOiB0YXhUeXBlLCBmb3JtR3JvdXAsIGZvcm1GaWVsZCB9XG4gICAgfTogUnVsZVBheWxvYWQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0YXhUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE86XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJbmNvbWluZyBJbnZvaWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ091dGdvaW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhS2V5IH0gPSBmb3JtRmllbGQuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7IG5hbWUgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09PSAnY2xhc3NpZmljYWNhb1RyaWJ1dGFyaWEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgYXMgTG9va3VwRmllbGQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdjbGFzc2lmaWNhY2FvVHJpYnV0YXJpYScpIVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3NpZmljYWNhb1RyaWJ1dGFyaWEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbGQsIGN1cnJlbnQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkPy5bZGF0YUtleV0gPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudD8uW2RhdGFLZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoW3RheENsYXNzaWZpY2F0aW9uXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpZmljYXRpb24/LltcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcmVkUHJlc0luZERlZHV6Q3JlZFByZXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gPT09IEVudW1JbmRpY2F0aXZvUGFkcmFvLkVYSUdFXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEVudW1BcGxpY2FyVmFsb3JMaXF1aWRvRG9jdW1lbnRvLlNVQlRSQUlSXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEVudW1BcGxpY2FyVmFsb3JMaXF1aWRvRG9jdW1lbnRvLk5FTkhVTVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGFwcGx5TmV0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1DYW1wb1RyaWJ1dG8uQXBsaWNhclZhbG9yTGlxdWlkb0RvY3VtZW50b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsdWUoYXBwbHlOZXRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIEFwcGx5TmV0VmFsdWVUb0RvY3VtZW50Q2FsY3VsYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgUmVncmEgQXBwbHlOZXRWYWx1ZVRvRG9jdW1lbnRDYWxjdWxhdGlvblJ1bGUgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGltcG9zdG8gJHt0YXhUeXBlfSwgZG9jdW1lbnRvICR7ZG9jdW1lbnR9LmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
package/esm2015/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import * as moment from 'moment';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import { debounceTime, distinctUntilChanged, map, skip, startWith } from 'rxjs/operators';
|
|
6
|
+
import { EnumCampoTributo, EnumTipoTributo } from '../../../erp-tributos.types';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
let AssessmentPeriodCalculationRule = class AssessmentPeriodCalculationRule {
|
|
9
|
+
apply({ context: { document }, group, item: { name: taxType, formGroup } }) {
|
|
10
|
+
switch (taxType) {
|
|
11
|
+
case EnumTipoTributo.CBS_AJUSTE:
|
|
12
|
+
{
|
|
13
|
+
const { formGroup: ibsAjusteFormGroup } = group.item.find(({ name }) => name === EnumTipoTributo.IBS_AJUSTE);
|
|
14
|
+
combineLatest([
|
|
15
|
+
ibsAjusteFormGroup
|
|
16
|
+
.get(EnumCampoTributo.PeriodoApuracao)
|
|
17
|
+
.valueChanges.pipe(startWith(ibsAjusteFormGroup.get(EnumCampoTributo.PeriodoApuracao).value), distinctUntilChanged((old, current) => old === current ||
|
|
18
|
+
moment(old).isSame(current, 'day')), debounceTime(100))
|
|
19
|
+
])
|
|
20
|
+
.pipe(skip(1), map(([taxSituation]) => [taxSituation]))
|
|
21
|
+
.subscribe(([taxSituation]) => {
|
|
22
|
+
formGroup
|
|
23
|
+
.get(EnumCampoTributo.PeriodoApuracao)
|
|
24
|
+
.setValue(taxSituation);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
break;
|
|
28
|
+
case EnumTipoTributo.IBS_AJUSTE:
|
|
29
|
+
{
|
|
30
|
+
const { formGroup: cbsAjusteFormGroup } = group.item.find(({ name }) => name === EnumTipoTributo.CBS_AJUSTE);
|
|
31
|
+
combineLatest([
|
|
32
|
+
cbsAjusteFormGroup
|
|
33
|
+
.get(EnumCampoTributo.PeriodoApuracao)
|
|
34
|
+
.valueChanges.pipe(startWith(cbsAjusteFormGroup.get(EnumCampoTributo.PeriodoApuracao).value), distinctUntilChanged((old, current) => old === current ||
|
|
35
|
+
moment(old).isSame(current, 'day')), debounceTime(100))
|
|
36
|
+
])
|
|
37
|
+
.pipe(skip(1), map(([taxSituation]) => [taxSituation]))
|
|
38
|
+
.subscribe(([taxSituation]) => {
|
|
39
|
+
formGroup
|
|
40
|
+
.get(EnumCampoTributo.PeriodoApuracao)
|
|
41
|
+
.setValue(taxSituation);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
default:
|
|
46
|
+
throw new Error(`Regra AssessmentPeriodCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
AssessmentPeriodCalculationRule.ɵprov = i0.ɵɵdefineInjectable({ factory: function AssessmentPeriodCalculationRule_Factory() { return new AssessmentPeriodCalculationRule(); }, token: AssessmentPeriodCalculationRule, providedIn: "root" });
|
|
51
|
+
AssessmentPeriodCalculationRule = __decorate([
|
|
52
|
+
Injectable({ providedIn: 'root' })
|
|
53
|
+
], AssessmentPeriodCalculationRule);
|
|
54
|
+
export { AssessmentPeriodCalculationRule };
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1wZXJpb2QtY2FsY3VsYXRpb24tcnVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLWVtcHJlc2FyaWFsL2VycHgtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvYXNzZXNzbWVudC1wZXJpb2QtY2FsY3VsYXRpb24tcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFDSCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtoRixJQUFhLCtCQUErQixHQUE1QyxNQUFhLCtCQUErQjtJQUN4QyxLQUFLLENBQUMsRUFDRixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFDckIsS0FBSyxFQUNMLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQ3hCO1FBQ1YsUUFBUSxPQUFPLEVBQUU7WUFDYixLQUFLLGVBQWUsQ0FBQyxVQUFVO2dCQUMzQjtvQkFDSSxNQUFNLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3JELENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQ3BELENBQUM7b0JBRUYsYUFBYSxDQUFDO3dCQUNWLGtCQUFrQjs2QkFDYixHQUFHLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDOzZCQUNyQyxZQUFZLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FDTCxrQkFBa0IsQ0FBQyxHQUFHLENBQ2xCLGdCQUFnQixDQUFDLGVBQWUsQ0FDbkMsQ0FBQyxLQUFLLENBQ1YsRUFDRCxvQkFBb0IsQ0FDaEIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDYixHQUFHLEtBQUssT0FBTzs0QkFDZixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FDekMsRUFDRCxZQUFZLENBQUMsR0FBRyxDQUFDLENBQ3BCO3FCQUNSLENBQUM7eUJBQ0csSUFBSSxDQUNELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBVSxDQUFDLENBQ25EO3lCQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTt3QkFDMUIsU0FBUzs2QkFDSixHQUFHLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDOzZCQUNyQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2lCQUNWO2dCQUNELE1BQU07WUFDVixLQUFLLGVBQWUsQ0FBQyxVQUFVO2dCQUMzQjtvQkFDSSxNQUFNLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3JELENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQ3BELENBQUM7b0JBRUYsYUFBYSxDQUFDO3dCQUNWLGtCQUFrQjs2QkFDYixHQUFHLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDOzZCQUNyQyxZQUFZLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FDTCxrQkFBa0IsQ0FBQyxHQUFHLENBQ2xCLGdCQUFnQixDQUFDLGVBQWUsQ0FDbkMsQ0FBQyxLQUFLLENBQ1YsRUFDRCxvQkFBb0IsQ0FDaEIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDYixHQUFHLEtBQUssT0FBTzs0QkFDZixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FDekMsRUFDRCxZQUFZLENBQUMsR0FBRyxDQUFDLENBQ3BCO3FCQUNSLENBQUM7eUJBQ0csSUFBSSxDQUNELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBVSxDQUFDLENBQ25EO3lCQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTt3QkFDMUIsU0FBUzs2QkFDSixHQUFHLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDOzZCQUNyQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2lCQUNWO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUNYLHlFQUF5RSxPQUFPLGVBQWUsUUFBUSxHQUFHLENBQzdHLENBQUM7U0FDVDtJQUNMLENBQUM7Q0FDSixDQUFBOztBQWpGWSwrQkFBK0I7SUFEM0MsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLCtCQUErQixDQWlGM0M7U0FqRlksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGRlYm91bmNlVGltZSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgICBtYXAsXG4gICAgc2tpcCxcbiAgICBzdGFydFdpdGhcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW51bUNhbXBvVHJpYnV0bywgRW51bVRpcG9UcmlidXRvIH0gZnJvbSAnLi4vLi4vLi4vZXJwLXRyaWJ1dG9zLnR5cGVzJztcbmltcG9ydCB7IFJ1bGVQYXlsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMvcnVsZS1wYXlsb2FkJztcbmltcG9ydCB7IFRheFJ1bGUgfSBmcm9tICcuLi8uLi90eXBlcy90YXgtcnVsZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXNzZXNzbWVudFBlcmlvZENhbGN1bGF0aW9uUnVsZSBpbXBsZW1lbnRzIFRheFJ1bGUge1xuICAgIGFwcGx5KHtcbiAgICAgICAgY29udGV4dDogeyBkb2N1bWVudCB9LFxuICAgICAgICBncm91cCxcbiAgICAgICAgaXRlbTogeyBuYW1lOiB0YXhUeXBlLCBmb3JtR3JvdXAgfVxuICAgIH06IFJ1bGVQYXlsb2FkKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGF4VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0FKVVNURTpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZm9ybUdyb3VwOiBpYnNBanVzdGVGb3JtR3JvdXAgfSA9IGdyb3VwLml0ZW0uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gRW51bVRpcG9UcmlidXRvLklCU19BSlVTVEVcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlic0FqdXN0ZUZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoRW51bUNhbXBvVHJpYnV0by5QZXJpb2RvQXB1cmFjYW8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnNBanVzdGVGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1DYW1wb1RyaWJ1dG8uUGVyaW9kb0FwdXJhY2FvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9sZCwgY3VycmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQob2xkKS5pc1NhbWUoY3VycmVudCwgJ2RheScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKFt0YXhTaXR1YXRpb25dKSA9PiBbdGF4U2l0dWF0aW9uXSBhcyBjb25zdClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKFt0YXhTaXR1YXRpb25dKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoRW51bUNhbXBvVHJpYnV0by5QZXJpb2RvQXB1cmFjYW8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRWYWx1ZSh0YXhTaXR1YXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0FKVVNURTpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZm9ybUdyb3VwOiBjYnNBanVzdGVGb3JtR3JvdXAgfSA9IGdyb3VwLml0ZW0uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gRW51bVRpcG9UcmlidXRvLkNCU19BSlVTVEVcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNic0FqdXN0ZUZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoRW51bUNhbXBvVHJpYnV0by5QZXJpb2RvQXB1cmFjYW8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYnNBanVzdGVGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1DYW1wb1RyaWJ1dG8uUGVyaW9kb0FwdXJhY2FvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9sZCwgY3VycmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQob2xkKS5pc1NhbWUoY3VycmVudCwgJ2RheScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKFt0YXhTaXR1YXRpb25dKSA9PiBbdGF4U2l0dWF0aW9uXSBhcyBjb25zdClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKFt0YXhTaXR1YXRpb25dKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoRW51bUNhbXBvVHJpYnV0by5QZXJpb2RvQXB1cmFjYW8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRWYWx1ZSh0YXhTaXR1YXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBSZWdyYSBBc3Nlc3NtZW50UGVyaW9kQ2FsY3VsYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
package/esm2015/components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import BigNumber from 'bignumber.js';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import { distinctUntilChanged, filter, map, skip, startWith } from 'rxjs/operators';
|
|
6
|
+
import { EffectiveTaxRateCalculator } from '../../../calculators/effective-tax-rate-calculator';
|
|
7
|
+
import { EnumTipoTributo } from '../../../erp-tributos.types';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../calculators/effective-tax-rate-calculator";
|
|
10
|
+
let EffectiveTaxRateCalculationRule = class EffectiveTaxRateCalculationRule {
|
|
11
|
+
constructor(effectiveTaxRateCalculator) {
|
|
12
|
+
this.effectiveTaxRateCalculator = effectiveTaxRateCalculator;
|
|
13
|
+
}
|
|
14
|
+
apply({ context: { document }, item: { name: taxType, formGroup } }) {
|
|
15
|
+
switch (taxType) {
|
|
16
|
+
case EnumTipoTributo.CBS:
|
|
17
|
+
case EnumTipoTributo.IBS_ESTADUAL:
|
|
18
|
+
case EnumTipoTributo.IBS_MUNICIPAL:
|
|
19
|
+
{
|
|
20
|
+
switch (document) {
|
|
21
|
+
case 'Incoming Invoice':
|
|
22
|
+
case 'Outgoing Invoice':
|
|
23
|
+
case 'Purchase Order':
|
|
24
|
+
case 'Sale Order':
|
|
25
|
+
{
|
|
26
|
+
combineLatest([
|
|
27
|
+
formGroup
|
|
28
|
+
.get('aliquota')
|
|
29
|
+
.valueChanges.pipe(startWith(formGroup.get('aliquota').value), distinctUntilChanged()),
|
|
30
|
+
formGroup
|
|
31
|
+
.get('reducaoAliquota')
|
|
32
|
+
.valueChanges.pipe(startWith(formGroup.get('reducaoAliquota')
|
|
33
|
+
.value), distinctUntilChanged()),
|
|
34
|
+
formGroup
|
|
35
|
+
.get('reducaoAliquotaGovernamental')
|
|
36
|
+
.valueChanges.pipe(startWith(formGroup.get('reducaoAliquotaGovernamental').value), distinctUntilChanged())
|
|
37
|
+
])
|
|
38
|
+
.pipe(skip(1), map(([taxRate, taxRateReduction, governamentalTaxRateReduction]) => [
|
|
39
|
+
new BigNumber(taxRate),
|
|
40
|
+
new BigNumber(taxRateReduction),
|
|
41
|
+
new BigNumber(governamentalTaxRateReduction)
|
|
42
|
+
]), map(([taxRate, taxRateReduction, governamentalTaxRateReduction]) => {
|
|
43
|
+
if (taxRate.isNaN() ||
|
|
44
|
+
(taxRateReduction.isNaN() &&
|
|
45
|
+
governamentalTaxRateReduction.isNaN()))
|
|
46
|
+
return null;
|
|
47
|
+
const effectiveTaxRate = this.effectiveTaxRateCalculator.calculateEffectiveTaxRate({
|
|
48
|
+
taxRate,
|
|
49
|
+
taxRateReduction,
|
|
50
|
+
governamentalTaxRateReduction
|
|
51
|
+
});
|
|
52
|
+
return effectiveTaxRate
|
|
53
|
+
.decimalPlaces(4)
|
|
54
|
+
.toNumber();
|
|
55
|
+
}), filter((effectiveTaxRate) => effectiveTaxRate !==
|
|
56
|
+
formGroup.get('aliquotaEfetiva')
|
|
57
|
+
.value))
|
|
58
|
+
.subscribe((effectiveTaxRate) => {
|
|
59
|
+
formGroup
|
|
60
|
+
.get('aliquotaEfetiva')
|
|
61
|
+
.setValue(effectiveTaxRate);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
throw new Error(`Regra EffectiveTaxRateCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
throw new Error(`Regra EffectiveTaxRateCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
EffectiveTaxRateCalculationRule.ctorParameters = () => [
|
|
76
|
+
{ type: EffectiveTaxRateCalculator }
|
|
77
|
+
];
|
|
78
|
+
EffectiveTaxRateCalculationRule.ɵprov = i0.ɵɵdefineInjectable({ factory: function EffectiveTaxRateCalculationRule_Factory() { return new EffectiveTaxRateCalculationRule(i0.ɵɵinject(i1.EffectiveTaxRateCalculator)); }, token: EffectiveTaxRateCalculationRule, providedIn: "root" });
|
|
79
|
+
EffectiveTaxRateCalculationRule = __decorate([
|
|
80
|
+
Injectable({ providedIn: 'root' })
|
|
81
|
+
], EffectiveTaxRateCalculationRule);
|
|
82
|
+
export { EffectiveTaxRateCalculationRule };
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0aXZlLXRheC1yYXRlLWNhbGN1bGF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3J1bGVzL2VmZmVjdGl2ZS10YXgtcmF0ZS1jYWxjdWxhdGlvbi1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFLOUQsSUFBYSwrQkFBK0IsR0FBNUMsTUFBYSwrQkFBK0I7SUFDeEMsWUFDcUIsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7SUFDeEUsQ0FBQztJQUVKLEtBQUssQ0FBQyxFQUNGLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUNyQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUN4QjtRQUNWLFFBQVEsT0FBTyxFQUFFO1lBQ2IsS0FBSyxlQUFlLENBQUMsR0FBRyxDQUFDO1lBQ3pCLEtBQUssZUFBZSxDQUFDLFlBQVksQ0FBQztZQUNsQyxLQUFLLGVBQWUsQ0FBQyxhQUFhO2dCQUM5QjtvQkFDSSxRQUFRLFFBQVEsRUFBRTt3QkFDZCxLQUFLLGtCQUFrQixDQUFDO3dCQUN4QixLQUFLLGtCQUFrQixDQUFDO3dCQUN4QixLQUFLLGdCQUFnQixDQUFDO3dCQUN0QixLQUFLLFlBQVk7NEJBQ2I7Z0NBQ0ksYUFBYSxDQUFDO29DQUNWLFNBQVM7eUNBQ0osR0FBRyxDQUFDLFVBQVUsQ0FBQzt5Q0FDZixZQUFZLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FDTCxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FDbEMsRUFDRCxvQkFBb0IsRUFBRSxDQUN6QjtvQ0FDTCxTQUFTO3lDQUNKLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQzt5Q0FDdEIsWUFBWSxDQUFDLElBQUksQ0FDZCxTQUFTLENBQ0wsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQzt5Q0FDM0IsS0FBSyxDQUNiLEVBQ0Qsb0JBQW9CLEVBQUUsQ0FDekI7b0NBQ0wsU0FBUzt5Q0FDSixHQUFHLENBQUMsOEJBQThCLENBQUM7eUNBQ25DLFlBQVksQ0FBQyxJQUFJLENBQ2QsU0FBUyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQ1QsOEJBQThCLENBQ2pDLENBQUMsS0FBSyxDQUNWLEVBQ0Qsb0JBQW9CLEVBQUUsQ0FDekI7aUNBQ1IsQ0FBQztxQ0FDRyxJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FDQyxDQUFDLENBQ0csT0FBTyxFQUNQLGdCQUFnQixFQUNoQiw2QkFBNkIsQ0FDaEMsRUFBRSxFQUFFLENBQ0Q7b0NBQ0ksSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDO29DQUN0QixJQUFJLFNBQVMsQ0FDVCxnQkFBZ0IsQ0FDbkI7b0NBQ0QsSUFBSSxTQUFTLENBQ1QsNkJBQTZCLENBQ2hDO2lDQUNLLENBQ2pCLEVBQ0QsR0FBRyxDQUNDLENBQUMsQ0FDRyxPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLDZCQUE2QixDQUNoQyxFQUFFLEVBQUU7b0NBQ0QsSUFDSSxPQUFPLENBQUMsS0FBSyxFQUFFO3dDQUNmLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFOzRDQUNyQiw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3Q0FFMUMsT0FBTyxJQUFJLENBQUM7b0NBRWhCLE1BQU0sZ0JBQWdCLEdBQ2xCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyx5QkFBeUIsQ0FDckQ7d0NBQ0ksT0FBTzt3Q0FDUCxnQkFBZ0I7d0NBQ2hCLDZCQUE2QjtxQ0FDaEMsQ0FDSixDQUFDO29DQUVOLE9BQU8sZ0JBQWdCO3lDQUNsQixhQUFhLENBQUMsQ0FBQyxDQUFDO3lDQUNoQixRQUFRLEVBQUUsQ0FBQztnQ0FDcEIsQ0FBQyxDQUNKLEVBQ0QsTUFBTSxDQUNGLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUNqQixnQkFBZ0I7b0NBQ2hCLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7eUNBQzNCLEtBQUssQ0FDakIsQ0FDSjtxQ0FDQSxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO29DQUM1QixTQUFTO3lDQUNKLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQzt5Q0FDdEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0NBQ3BDLENBQUMsQ0FBQyxDQUFDOzZCQUNWOzRCQUNELE1BQU07d0JBQ1Y7NEJBQ0ksTUFBTSxJQUFJLEtBQUssQ0FDWCx5RUFBeUUsT0FBTyxlQUFlLFFBQVEsR0FBRyxDQUM3RyxDQUFDO3FCQUNUO2lCQUNKO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUNYLHlFQUF5RSxPQUFPLGVBQWUsUUFBUSxHQUFHLENBQzdHLENBQUM7U0FDVDtJQUNMLENBQUM7Q0FDSixDQUFBOztZQXZIb0QsMEJBQTBCOzs7QUFGbEUsK0JBQStCO0lBRDNDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztHQUN0QiwrQkFBK0IsQ0F5SDNDO1NBekhZLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBza2lwLFxuICAgIHN0YXJ0V2l0aFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRvciB9IGZyb20gJy4uLy4uLy4uL2NhbGN1bGF0b3JzL2VmZmVjdGl2ZS10YXgtcmF0ZS1jYWxjdWxhdG9yJztcbmltcG9ydCB7IEVudW1UaXBvVHJpYnV0byB9IGZyb20gJy4uLy4uLy4uL2VycC10cmlidXRvcy50eXBlcyc7XG5pbXBvcnQgeyBSdWxlUGF5bG9hZCB9IGZyb20gJy4uLy4uL3R5cGVzL3J1bGUtcGF5bG9hZCc7XG5pbXBvcnQgeyBUYXhSdWxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGF4LXJ1bGUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGUgaW1wbGVtZW50cyBUYXhSdWxlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRvcjogRWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0b3JcbiAgICApIHt9XG5cbiAgICBhcHBseSh7XG4gICAgICAgIGNvbnRleHQ6IHsgZG9jdW1lbnQgfSxcbiAgICAgICAgaXRlbTogeyBuYW1lOiB0YXhUeXBlLCBmb3JtR3JvdXAgfVxuICAgIH06IFJ1bGVQYXlsb2FkKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGF4VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luY29taW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3V0Z29pbmcgSW52b2ljZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdQdXJjaGFzZSBPcmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdTYWxlIE9yZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnYWxpcXVvdGEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnYWxpcXVvdGEnKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3JlZHVjYW9BbGlxdW90YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdyZWR1Y2FvQWxpcXVvdGEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3JlZHVjYW9BbGlxdW90YUdvdmVybmFtZW50YWwnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVkdWNhb0FsaXF1b3RhR292ZXJuYW1lbnRhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFJhdGVSZWR1Y3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Zlcm5hbWVudGFsVGF4UmF0ZVJlZHVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4UmF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZVJlZHVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbFRheFJhdGVSZWR1Y3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIGFzIGNvbnN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZVJlZHVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybmFtZW50YWxUYXhSYXRlUmVkdWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhSYXRlLmlzTmFOKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGF4UmF0ZVJlZHVjdGlvbi5pc05hTigpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybmFtZW50YWxUYXhSYXRlUmVkdWN0aW9uLmlzTmFOKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVRheFJhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0b3IuY2FsY3VsYXRlRWZmZWN0aXZlVGF4UmF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFJhdGVSZWR1Y3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Zlcm5hbWVudGFsVGF4UmF0ZVJlZHVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVmZmVjdGl2ZVRheFJhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVjaW1hbFBsYWNlcyg0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b051bWJlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZmZlY3RpdmVUYXhSYXRlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0aXZlVGF4UmF0ZSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2FsaXF1b3RhRWZldGl2YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZWZmZWN0aXZlVGF4UmF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdhbGlxdW90YUVmZXRpdmEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsdWUoZWZmZWN0aXZlVGF4UmF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIEVmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdGlvblJ1bGUgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGltcG9zdG8gJHt0YXhUeXBlfSwgZG9jdW1lbnRvICR7ZG9jdW1lbnR9LmBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBSZWdyYSBFZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import BigNumber from 'bignumber.js';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import { distinctUntilChanged, filter, map, skip, startWith } from 'rxjs/operators';
|
|
6
|
+
import { GrossAmountCalculator } from '../../../calculators/gross-amount-calculator';
|
|
7
|
+
import { EnumTipoTributo } from '../../../erp-tributos.types';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../calculators/gross-amount-calculator";
|
|
10
|
+
let GrossAmountCalculationRule = class GrossAmountCalculationRule {
|
|
11
|
+
constructor(grossAmountCalculator) {
|
|
12
|
+
this.grossAmountCalculator = grossAmountCalculator;
|
|
13
|
+
}
|
|
14
|
+
apply({ context: { document }, item: { name: taxType, formGroup } }) {
|
|
15
|
+
switch (taxType) {
|
|
16
|
+
case EnumTipoTributo.CBS:
|
|
17
|
+
case EnumTipoTributo.IBS_ESTADUAL:
|
|
18
|
+
case EnumTipoTributo.IBS_MUNICIPAL:
|
|
19
|
+
{
|
|
20
|
+
switch (document) {
|
|
21
|
+
case 'Incoming Invoice':
|
|
22
|
+
case 'Outgoing Invoice':
|
|
23
|
+
case 'Purchase Order':
|
|
24
|
+
case 'Sale Order':
|
|
25
|
+
{
|
|
26
|
+
combineLatest([
|
|
27
|
+
formGroup
|
|
28
|
+
.get('baseCalculo')
|
|
29
|
+
.valueChanges.pipe(startWith(formGroup.get('baseCalculo')
|
|
30
|
+
.value), distinctUntilChanged()),
|
|
31
|
+
formGroup
|
|
32
|
+
.get('aliquota')
|
|
33
|
+
.valueChanges.pipe(startWith(formGroup.get('aliquota').value), distinctUntilChanged())
|
|
34
|
+
])
|
|
35
|
+
.pipe(skip(1), map(([taxRate, taxableBase]) => [
|
|
36
|
+
new BigNumber(taxRate),
|
|
37
|
+
new BigNumber(taxableBase)
|
|
38
|
+
]), map(([taxRate, taxableBase]) => {
|
|
39
|
+
if (taxableBase.isNaN() ||
|
|
40
|
+
taxRate.isNaN())
|
|
41
|
+
return null;
|
|
42
|
+
const grossAmount = this.grossAmountCalculator.calculateGrossAmount({
|
|
43
|
+
taxableBase,
|
|
44
|
+
taxRate
|
|
45
|
+
});
|
|
46
|
+
return grossAmount.toNumber();
|
|
47
|
+
}), filter((grossAmount) => grossAmount !==
|
|
48
|
+
formGroup.get('valorBrutoImposto').value))
|
|
49
|
+
.subscribe((grossAmount) => {
|
|
50
|
+
formGroup
|
|
51
|
+
.get('valorBrutoImposto')
|
|
52
|
+
.setValue(grossAmount);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Regra GrossAmountCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
throw new Error(`Regra GrossAmountCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
GrossAmountCalculationRule.ctorParameters = () => [
|
|
67
|
+
{ type: GrossAmountCalculator }
|
|
68
|
+
];
|
|
69
|
+
GrossAmountCalculationRule.ɵprov = i0.ɵɵdefineInjectable({ factory: function GrossAmountCalculationRule_Factory() { return new GrossAmountCalculationRule(i0.ɵɵinject(i1.GrossAmountCalculator)); }, token: GrossAmountCalculationRule, providedIn: "root" });
|
|
70
|
+
GrossAmountCalculationRule = __decorate([
|
|
71
|
+
Injectable({ providedIn: 'root' })
|
|
72
|
+
], GrossAmountCalculationRule);
|
|
73
|
+
export { GrossAmountCalculationRule };
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jvc3MtYW1vdW50LWNhbGN1bGF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3J1bGVzL2dyb3NzLWFtb3VudC1jYWxjdWxhdGlvbi1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFLOUQsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7SUFDbkMsWUFDcUIscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFDOUQsQ0FBQztJQUVKLEtBQUssQ0FBQyxFQUNGLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUNyQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUN4QjtRQUNWLFFBQVEsT0FBTyxFQUFFO1lBQ2IsS0FBSyxlQUFlLENBQUMsR0FBRyxDQUFDO1lBQ3pCLEtBQUssZUFBZSxDQUFDLFlBQVksQ0FBQztZQUNsQyxLQUFLLGVBQWUsQ0FBQyxhQUFhO2dCQUM5QjtvQkFDSSxRQUFRLFFBQVEsRUFBRTt3QkFDZCxLQUFLLGtCQUFrQixDQUFDO3dCQUN4QixLQUFLLGtCQUFrQixDQUFDO3dCQUN4QixLQUFLLGdCQUFnQixDQUFDO3dCQUN0QixLQUFLLFlBQVk7NEJBQ2I7Z0NBQ0ksYUFBYSxDQUFDO29DQUNWLFNBQVM7eUNBQ0osR0FBRyxDQUFDLGFBQWEsQ0FBQzt5Q0FDbEIsWUFBWSxDQUFDLElBQUksQ0FDZCxTQUFTLENBQ0wsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7eUNBQ3ZCLEtBQUssQ0FDYixFQUNELG9CQUFvQixFQUFFLENBQ3pCO29DQUNMLFNBQVM7eUNBQ0osR0FBRyxDQUFDLFVBQVUsQ0FBQzt5Q0FDZixZQUFZLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FDTCxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FDbEMsRUFDRCxvQkFBb0IsRUFBRSxDQUN6QjtpQ0FDUixDQUFDO3FDQUNHLElBQUksQ0FDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUNDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUN2QjtvQ0FDSSxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUM7b0NBQ3RCLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQztpQ0FDcEIsQ0FDakIsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO29DQUMzQixJQUNJLFdBQVcsQ0FBQyxLQUFLLEVBQUU7d0NBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUU7d0NBRWYsT0FBTyxJQUFJLENBQUM7b0NBRWhCLE1BQU0sV0FBVyxHQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FDM0M7d0NBQ0ksV0FBVzt3Q0FDWCxPQUFPO3FDQUNWLENBQ0osQ0FBQztvQ0FFTixPQUFPLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQ0FDbEMsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUNGLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDWixXQUFXO29DQUNYLFNBQVMsQ0FBQyxHQUFHLENBQ1QsbUJBQW1CLENBQ3RCLENBQUMsS0FBSyxDQUNkLENBQ0o7cUNBQ0EsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7b0NBQ3ZCLFNBQVM7eUNBQ0osR0FBRyxDQUFDLG1CQUFtQixDQUFDO3lDQUN4QixRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7Z0NBQy9CLENBQUMsQ0FBQyxDQUFDOzZCQUNWOzRCQUNELE1BQU07d0JBQ1Y7NEJBQ0ksTUFBTSxJQUFJLEtBQUssQ0FDWCxvRUFBb0UsT0FBTyxlQUFlLFFBQVEsR0FBRyxDQUN4RyxDQUFDO3FCQUNUO2lCQUNKO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUNYLG9FQUFvRSxPQUFPLGVBQWUsUUFBUSxHQUFHLENBQ3hHLENBQUM7U0FDVDtJQUNMLENBQUM7Q0FDSixDQUFBOztZQTNGK0MscUJBQXFCOzs7QUFGeEQsMEJBQTBCO0lBRHRDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztHQUN0QiwwQkFBMEIsQ0E2RnRDO1NBN0ZZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBza2lwLFxuICAgIHN0YXJ0V2l0aFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHcm9zc0Ftb3VudENhbGN1bGF0b3IgfSBmcm9tICcuLi8uLi8uLi9jYWxjdWxhdG9ycy9ncm9zcy1hbW91bnQtY2FsY3VsYXRvcic7XG5pbXBvcnQgeyBFbnVtVGlwb1RyaWJ1dG8gfSBmcm9tICcuLi8uLi8uLi9lcnAtdHJpYnV0b3MudHlwZXMnO1xuaW1wb3J0IHsgUnVsZVBheWxvYWQgfSBmcm9tICcuLi8uLi90eXBlcy9ydWxlLXBheWxvYWQnO1xuaW1wb3J0IHsgVGF4UnVsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3RheC1ydWxlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBHcm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZSBpbXBsZW1lbnRzIFRheFJ1bGUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdyb3NzQW1vdW50Q2FsY3VsYXRvcjogR3Jvc3NBbW91bnRDYWxjdWxhdG9yXG4gICAgKSB7fVxuXG4gICAgYXBwbHkoe1xuICAgICAgICBjb250ZXh0OiB7IGRvY3VtZW50IH0sXG4gICAgICAgIGl0ZW06IHsgbmFtZTogdGF4VHlwZSwgZm9ybUdyb3VwIH1cbiAgICB9OiBSdWxlUGF5bG9hZCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRheFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJbmNvbWluZyBJbnZvaWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ091dGdvaW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnUHVyY2hhc2UgT3JkZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnU2FsZSBPcmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2Jhc2VDYWxjdWxvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2Jhc2VDYWxjdWxvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdhbGlxdW90YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdhbGlxdW90YScpLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt0YXhSYXRlLCB0YXhhYmxlQmFzZV0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhSYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKHRheGFibGVCYXNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSBhcyBjb25zdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChbdGF4UmF0ZSwgdGF4YWJsZUJhc2VdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLmlzTmFOKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFJhdGUuaXNOYU4oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncm9zc0Ftb3VudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3NzQW1vdW50Q2FsY3VsYXRvci5jYWxjdWxhdGVHcm9zc0Ftb3VudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhSYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ3Jvc3NBbW91bnQudG9OdW1iZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncm9zc0Ftb3VudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3NzQW1vdW50ICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsb3JCcnV0b0ltcG9zdG8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZ3Jvc3NBbW91bnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgndmFsb3JCcnV0b0ltcG9zdG8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsdWUoZ3Jvc3NBbW91bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSZWdyYSBHcm9zc0Ftb3VudENhbGN1bGF0aW9uUnVsZSBuw6NvIGltcGxlbWVudGFkYSBwYXJhIG8gaW1wb3N0byAke3RheFR5cGV9LCBkb2N1bWVudG8gJHtkb2N1bWVudH0uYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIEdyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { FieldType } from '@seniorsistemas/angular-components';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import { filter, map, skip } from 'rxjs/operators';
|
|
6
|
+
import { EnumCampoTributo, EnumTipoTributo } from '../../../erp-tributos.types';
|
|
7
|
+
import { getGovernamentalTaxItemFromGroup } from '../../../tax-reform-utilities';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
let ManualTaxCalculationRule = class ManualTaxCalculationRule {
|
|
10
|
+
apply({ context: { document }, group, item: { name: taxType, formGroup } }) {
|
|
11
|
+
switch (taxType) {
|
|
12
|
+
case EnumTipoTributo.CBS:
|
|
13
|
+
case EnumTipoTributo.IBS_ESTADUAL:
|
|
14
|
+
case EnumTipoTributo.IBS_MUNICIPAL:
|
|
15
|
+
{
|
|
16
|
+
switch (document) {
|
|
17
|
+
case 'Incoming Invoice':
|
|
18
|
+
case 'Outgoing Invoice':
|
|
19
|
+
case 'Purchase Order':
|
|
20
|
+
case 'Sale Order':
|
|
21
|
+
{
|
|
22
|
+
const { formGroup: governamentalFormGroup, formField: governamentalFormFields } = getGovernamentalTaxItemFromGroup({ group });
|
|
23
|
+
const governamentalStartingValue = governamentalFormGroup.getRawValue();
|
|
24
|
+
combineLatest([
|
|
25
|
+
governamentalFormGroup.valueChanges
|
|
26
|
+
])
|
|
27
|
+
.pipe(skip(1), map(([currentValue]) => Object.keys(currentValue)
|
|
28
|
+
.filter((key) => key !==
|
|
29
|
+
'impostoManual' &&
|
|
30
|
+
key !==
|
|
31
|
+
EnumCampoTributo.TipoCalculoImposto)
|
|
32
|
+
.every((key) => {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
const formField = governamentalFormFields.find((field) => field.name ===
|
|
35
|
+
key);
|
|
36
|
+
if ((formField === null || formField === void 0 ? void 0 : formField.type) ===
|
|
37
|
+
FieldType.Lookup) {
|
|
38
|
+
const { dataKey } = governamentalFormFields.find((field) => field.name ===
|
|
39
|
+
key);
|
|
40
|
+
return (((_a = governamentalStartingValue === null || governamentalStartingValue === void 0 ? void 0 : governamentalStartingValue[key]) === null || _a === void 0 ? void 0 : _a[dataKey]) === ((_b = currentValue === null || currentValue === void 0 ? void 0 : currentValue[key]) === null || _b === void 0 ? void 0 : _b[dataKey]));
|
|
41
|
+
}
|
|
42
|
+
return (governamentalStartingValue[key] === currentValue[key]);
|
|
43
|
+
})
|
|
44
|
+
? governamentalStartingValue[EnumCampoTributo
|
|
45
|
+
.ImpostoManual]
|
|
46
|
+
: true), filter((manualTax) => manualTax !==
|
|
47
|
+
formGroup.get(EnumCampoTributo.ImpostoManual).value))
|
|
48
|
+
.subscribe((manualTax) => {
|
|
49
|
+
formGroup
|
|
50
|
+
.get(EnumCampoTributo.ImpostoManual)
|
|
51
|
+
.setValue(manualTax, {
|
|
52
|
+
emitEvent: false
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
throw new Error(`Regra ManualTaxCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
throw new Error(`Regra ManualTaxCalculationRule não implementada para o imposto ${taxType}, documento ${document}.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
ManualTaxCalculationRule.ɵprov = i0.ɵɵdefineInjectable({ factory: function ManualTaxCalculationRule_Factory() { return new ManualTaxCalculationRule(); }, token: ManualTaxCalculationRule, providedIn: "root" });
|
|
68
|
+
ManualTaxCalculationRule = __decorate([
|
|
69
|
+
Injectable({ providedIn: 'root' })
|
|
70
|
+
], ManualTaxCalculationRule);
|
|
71
|
+
export { ManualTaxCalculationRule };
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFudWFsLXRheC1jYWxjdWxhdGlvbi1ydWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvZXJweC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy9tYW51YWwtdGF4LWNhbGN1bGF0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUtqRixJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUNqQyxLQUFLLENBQUMsRUFDRixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFDckIsS0FBSyxFQUNMLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQ3hCO1FBQ1YsUUFBUSxPQUFPLEVBQUU7WUFDYixLQUFLLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDekIsS0FBSyxlQUFlLENBQUMsWUFBWSxDQUFDO1lBQ2xDLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQzlCO29CQUNJLFFBQVEsUUFBUSxFQUFFO3dCQUNkLEtBQUssa0JBQWtCLENBQUM7d0JBQ3hCLEtBQUssa0JBQWtCLENBQUM7d0JBQ3hCLEtBQUssZ0JBQWdCLENBQUM7d0JBQ3RCLEtBQUssWUFBWTs0QkFDYjtnQ0FDSSxNQUFNLEVBQ0YsU0FBUyxFQUFFLHNCQUFzQixFQUNqQyxTQUFTLEVBQUUsdUJBQXVCLEVBQ3JDLEdBQUcsZ0NBQWdDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dDQUVoRCxNQUFNLDBCQUEwQixHQUM1QixzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQ0FFekMsYUFBYSxDQUFDO29DQUNWLHNCQUFzQixDQUFDLFlBQVk7aUNBQ3RDLENBQUM7cUNBQ0csSUFBSSxDQUNELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7cUNBQ3BCLE1BQU0sQ0FDSCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ0osR0FBRztvQ0FDQyxlQUFlO29DQUNuQixHQUFHO3dDQUNDLGdCQUFnQixDQUFDLGtCQUFrQixDQUM5QztxQ0FDQSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTs7b0NBQ1gsTUFBTSxTQUFTLEdBQ1gsdUJBQXVCLENBQUMsSUFBSSxDQUN4QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQ04sS0FBSyxDQUFDLElBQUk7d0NBQ1YsR0FBRyxDQUNWLENBQUM7b0NBRU4sSUFDSSxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxJQUFJO3dDQUNmLFNBQVMsQ0FBQyxNQUFNLEVBQ2xCO3dDQUNFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FDYix1QkFBdUIsQ0FBQyxJQUFJLENBQ3hCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDTixLQUFLLENBQUMsSUFBSTs0Q0FDVixHQUFHLENBQ0ssQ0FBQzt3Q0FFckIsT0FBTyxDQUNILE9BQUEsMEJBQTBCLGFBQTFCLDBCQUEwQix1QkFBMUIsMEJBQTBCLENBQ3RCLEdBQUcsMkNBQ0gsT0FBTyxjQUNYLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FDUixHQUFHLDJDQUNILE9BQU8sRUFBQyxDQUNmLENBQUM7cUNBQ0w7b0NBRUQsT0FBTyxDQUNILDBCQUEwQixDQUN0QixHQUFHLENBQ04sS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQzFCLENBQUM7Z0NBQ04sQ0FBQyxDQUFDO29DQUNGLENBQUMsQ0FBQywwQkFBMEIsQ0FDdEIsZ0JBQWdCO3lDQUNYLGFBQWEsQ0FDckI7b0NBQ0gsQ0FBQyxDQUFDLElBQUksQ0FDYixFQUNELE1BQU0sQ0FDRixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ1YsU0FBUztvQ0FDVCxTQUFTLENBQUMsR0FBRyxDQUNULGdCQUFnQixDQUFDLGFBQWEsQ0FDakMsQ0FBQyxLQUFLLENBQ2QsQ0FDSjtxQ0FDQSxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQ0FDckIsU0FBUzt5Q0FDSixHQUFHLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO3lDQUNuQyxRQUFRLENBQUMsU0FBUyxFQUFFO3dDQUNqQixTQUFTLEVBQUUsS0FBSztxQ0FDbkIsQ0FBQyxDQUFDO2dDQUNYLENBQUMsQ0FBQyxDQUFDOzZCQUNWOzRCQUNELE1BQU07d0JBQ1Y7NEJBQ0ksTUFBTSxJQUFJLEtBQUssQ0FDWCxrRUFBa0UsT0FBTyxlQUFlLFFBQVEsR0FBRyxDQUN0RyxDQUFDO3FCQUNUO2lCQUNKO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUNYLGtFQUFrRSxPQUFPLGVBQWUsUUFBUSxHQUFHLENBQ3RHLENBQUM7U0FDVDtJQUNMLENBQUM7Q0FDSixDQUFBOztBQTlHWSx3QkFBd0I7SUFEcEMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLHdCQUF3QixDQThHcEM7U0E5R1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBMb29rdXBGaWVsZCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnVtQ2FtcG9UcmlidXRvLCBFbnVtVGlwb1RyaWJ1dG8gfSBmcm9tICcuLi8uLi8uLi9lcnAtdHJpYnV0b3MudHlwZXMnO1xuaW1wb3J0IHsgZ2V0R292ZXJuYW1lbnRhbFRheEl0ZW1Gcm9tR3JvdXAgfSBmcm9tICcuLi8uLi8uLi90YXgtcmVmb3JtLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBSdWxlUGF5bG9hZCB9IGZyb20gJy4uLy4uL3R5cGVzL3J1bGUtcGF5bG9hZCc7XG5pbXBvcnQgeyBUYXhSdWxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGF4LXJ1bGUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1hbnVhbFRheENhbGN1bGF0aW9uUnVsZSBpbXBsZW1lbnRzIFRheFJ1bGUge1xuICAgIGFwcGx5KHtcbiAgICAgICAgY29udGV4dDogeyBkb2N1bWVudCB9LFxuICAgICAgICBncm91cCxcbiAgICAgICAgaXRlbTogeyBuYW1lOiB0YXhUeXBlLCBmb3JtR3JvdXAgfVxuICAgIH06IFJ1bGVQYXlsb2FkKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGF4VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luY29taW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3V0Z29pbmcgSW52b2ljZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdQdXJjaGFzZSBPcmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdTYWxlIE9yZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cDogZ292ZXJuYW1lbnRhbEZvcm1Hcm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZDogZ292ZXJuYW1lbnRhbEZvcm1GaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSA9IGdldEdvdmVybmFtZW50YWxUYXhJdGVtRnJvbUdyb3VwKHsgZ3JvdXAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ292ZXJuYW1lbnRhbFN0YXJ0aW5nVmFsdWUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbEZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbEZvcm1Hcm91cC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChbY3VycmVudFZhbHVlXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wb3N0b01hbnVhbCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bUNhbXBvVHJpYnV0by5UaXBvQ2FsY3Vsb0ltcG9zdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5ldmVyeSgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbEZvcm1GaWVsZHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5uYW1lID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQ/LnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkVHlwZS5Mb29rdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhS2V5IH0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbEZvcm1GaWVsZHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmllbGQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm5hbWUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBMb29rdXBGaWVsZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbFN0YXJ0aW5nVmFsdWU/LltcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0/LltkYXRhS2V5XSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZT8uW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXT8uW2RhdGFLZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbFN0YXJ0aW5nVmFsdWVbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSA9PT0gY3VycmVudFZhbHVlW2tleV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZ292ZXJuYW1lbnRhbFN0YXJ0aW5nVmFsdWVbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnVtQ2FtcG9UcmlidXRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkltcG9zdG9NYW51YWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYW51YWxUYXgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW51YWxUYXggIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKG1hbnVhbFRheCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KEVudW1DYW1wb1RyaWJ1dG8uSW1wb3N0b01hbnVhbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldFZhbHVlKG1hbnVhbFRheCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUmVncmEgTWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgUmVncmEgTWFudWFsVGF4Q2FsY3VsYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|