Files
Investidor-V2/resources/js/lib/iva-import-exemptions.ts
T

1360 lines
62 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { inputText } from './input-text.ts';
import { acquisitionScope } from './iva-acquisitions.ts';
import {
internationalShipEligibility,
internationalAircraftEligibility,
} from './iva-international-assets.ts';
type Choice = '' | 'yes' | 'no';
export const importExemptionVersion = 'import-exemptions/1';
export const importExemptionSource =
'CIVA republicado pela Lei13/2016, BR156/10.º suplemento, art.12(1)(d/f),PDF11/p.1426(269). Lei22/2022,PDF2/p.2252(26),mantém d/f; Lei10/2025,PDF12–13/p.2180(12–13),mantém d/f. Cobertura2026/MZN; classificação do IVA na importação,sem cálculo de direitos aduaneiros ou dedução no campo11.';
export const importBeneficiaryVersion = 'import-beneficiaries/1';
export const importBeneficiarySource =
'CIVA republicado pela Lei13/2016, BR156/10.º suplemento, art.12(1)(j/l),PDF11/p.1426(269). Lei22/2022,PDF2/p.2252(26),e Lei10/2025,PDF13/p.2180(13),mantêm j/l. Cobertura2026/MZN; importação de objectos de arte e veículo de combate a incêndios nas condições próprias,sem dedução no campo11 nem cálculo de direitos aduaneiros.';
export const importAssetVersion = 'import-assets/1';
export const importAssetSource =
'CIVA republicado pela Lei13/2016, BR156/10.º suplemento, art.12(1)(h/i),PDF11/p.1426(269),por referência a13(1)(f/g),PDF12/p.1426(270),e actividades de13(1)(c/d). Lei22/2022,PDF2/p.2252(26),e Lei10/2025,PDF13/p.2180(13),mantêm h/i;13 não alterado nesses diplomas. Cobertura2026/MZN; importação de embarcação/avião elegível ou objecto incorporado/utilizado na respectiva exploração,sem dedução no campo11,base aduaneira ou cálculo de direitos aduaneiros.';
export const importCustomsVersion = 'import-customs-regimes/1';
export const importCustomsSource =
'CIVA republicado pela Lei13/2016, BR156/10.º suplemento, art.12(1)(c),PDF11/p.1426(269): importações de bens nos regimes de trânsito, importação temporária ou draubaque que sejam isentas totalmente de direitos aduaneiros. Lei22/2022,PDF2/p.2252(26),e Lei10/2025,PDF13/p.2180(13),mantêm c) por remissão,sem nova redacção expandida neste recorte. Cobertura2026/MZN; classificação de IVA na importação,sem cálculo de direitos,base aduaneira,saída de regime ou dedução no campo11.';
export const importSpecialRegimeVersion = 'import-special-regimes/1';
export const importSpecialRegimeSource =
'CIVA republicado pela Lei13/2016, BR156/10.º suplemento, art.14(1)(a) e condição inicial14(1),PDF13/p.1426(271). Lei22/2022 e Lei10/2025 não alteram14 neste acervo. Importações sob controlo alfandegário e disposições especificamente aplicáveis, enquanto os bens permanecem nos regimes enumerados, sem utilização nem consumo finais nas áreas mencionadas. Cobertura2026/MZN; sem dedução/campo11, cálculo de direitos ou saída do regime.';
export const importSupplyVersion = 'import-onboard-supplies/1';
export const importSupplySource =
'CIVA republicado pela Lei13/2016,BR156/10.º suplemento,12(1)(g),12(3)(a)(i–iv)/(b),PDF11–12/p.1426(269–270),e definição13(3). Lei22/2022PDF2/p.2252(26) e Lei10/2025PDF13/p.2180(13) mantêm g/3 por remissão. Cobertura2026/MZN; abastecimentos importados na janela própria,consumidos ou a bordo de embarcação de navegação internacional marítima/fluvial/lacustre ou avião de navegação aérea internacional;exclusões próprias de provisões e depósitos normais. Sem exigir companhia principalmente internacional,sem dedução/campo11,direitos ou base aduaneira.';
export const importServiceVersion = 'import-included-services/1';
export const importInvestmentVersion = 'import-investment-equipment/1';
export const importDevelopmentVersion = 'import-un-development/1';
export const importDevelopmentSource =
'CIVA republicado Lei13/2016,12(2)(c),PDF11/p.1426(269): materiais/equipamentos de projectos de desenvolvimento financiados pelas agências e instituições especializadas das Nações Unidas,devidamente acreditadas junto do Governo Moçambicano,destinados exclusivamente à implementação dos projectos;isenção ou redução de IVA na mesma proporção da redução de direitos. Art12(4),PDF12/p.1426(270): despacho favorável do Ministro que superintende Finanças,requerimento prévio da entidade promotora com lista discriminada e plano de importações;concessão pelos serviços aduaneiros segundo o plano e após confronto com a lista aprovada. Lei22/2022PDF2–3 eLei10/2025PDF13 mantêm12(2)/4 por remissão. Cobertura2026/MZN;sem calcular direitos/base aduaneira/taxa normal ou dedução/campo11;pedido não equivale a concessão.';
export const importDevelopmentFields = [
['developmentProject', 'Projecto de desenvolvimento identificado'],
[
'developmentAgency',
'Agência ou instituição especializada das Nações Unidas e referência da acreditação',
],
[
'developmentDecisionRef',
'Despacho favorável / pressuposto expresso da projecção',
],
[
'developmentListRef',
'Lista discriminada aprovada / referência da previsão',
],
['developmentPlanRef', 'Plano de importações / referência da previsão'],
[
'developmentScope',
'Âmbito nesta importação: bens, operação, período e condições abrangidos',
],
[
'developmentRightsRef',
'Fundamento da isenção ou redução de direitos / pressuposto expresso',
],
] as const;
const developmentConditions = [
[
'developmentMaterials',
'Os bens desta importação são materiais ou equipamentos do projecto de desenvolvimento identificado',
],
[
'developmentUNFunding',
'O projecto é financiado pela agência ou instituição especializada das Nações Unidas identificada; não basta financiamento externo genérico',
],
[
'developmentAccredited',
'A agência ou instituição especializada identificada está devidamente acreditada junto do Governo Moçambicano',
],
[
'developmentExclusiveUse',
'Os materiais ou equipamentos destinam-se exclusivamente à implementação deste projecto',
],
[
'developmentFavourableDecision',
'Existe despacho favorável do Ministro que superintende a área de Finanças para este âmbito, ou esse despacho é pressuposto expresso da projecção; requerimento apresentado não equivale a decisão favorável',
],
[
'developmentPriorRequest',
'A entidade promotora apresentou requerimento prévio acompanhado de lista discriminada dos bens a importar e respectivo plano de importações, ou estes elementos são pressupostos expressos da projecção',
],
[
'developmentCustomsConformity',
'A concessão pelos serviços aduaneiros para esta importação segue o plano e o confronto com a lista aprovada no despacho, ou tal conformidade é pressuposto expresso da projecção; não se estende a outros bens ou operações',
],
] as const;
export const importInvestmentSource =
'CIVA republicado Lei13/2016,12(1)(k),PDF11/p.1426(269): importações de bens de equipamento classificados na classe K da Pauta Aduaneira destinados a investimentos em empreendimentos autorizados ao abrigo da Lei de Investimentos e respectivo Regulamento. Lei22/2022,PDF2/p.2252(26),e Lei10/2025,PDF13/p.2180(13),mantêm k por remissão. Cobertura2026/MZN; classificação do IVA desta importação nas condições próprias,sem conceder autorização de investimento,classificar automaticamente mercadorias,estender o âmbito da autorização,calcular direitos/base aduaneira ou dedução/campo11.';
export const importServiceSource =
'CIVA republicado Lei13/2016,12(1)(e),PDF11/p.1426(269): prestações de serviços cujo valor esteja incluído na base tributável da importação de bens,conforme16. Art16(1)/16(1)(b)/16(2),PDF14/p.1426(272): valor aduaneiro e despesas acessórias até primeiro destino,do documento de transporte ou,na falta,primeira ruptura de carga no interior do País. Lei22/2022PDF1–2 e Lei10/2025PDF12–13 mantêm e por remissão e não alteram16. Cobertura2026/MZN; IVA do serviço,sem calcular base aduaneira,direitos,IVA dos bens,dedução/campo11 ou rectificação automática de factura.';
export const importExemptionRules = [
{
id: 'un_development_exemption',
branch: 'P060',
label: 'Projecto de desenvolvimento ONU — isenção integral',
article: '12(2)(c)/12(4)',
conditions: [
...developmentConditions,
[
'developmentFullRightsExemption',
'Esta importação beneficia de isenção integral de direitos no fundamento identificado; uma redução parcial não equivale a isenção integral de IVA',
],
],
},
{
id: 'un_development_reduction',
branch: 'P060',
label: 'Projecto de desenvolvimento ONU — redução proporcional',
article: '12(2)(c)/12(4)',
conditions: [
...developmentConditions,
[
'developmentRightsReduction',
'Esta importação beneficia da redução parcial de direitos na percentagem identificada; não é uma taxa aduaneira nem a fracção de direitos ainda a pagar',
],
],
},
{
id: 'authorized_investment_equipment',
branch: 'P056',
label: 'Equipamento classe K para empreendimento autorizado',
article: '12(1)(k)',
conditions: [
[
'investmentEquipment',
'Os bens importados são bens de equipamento; não basta uma compra de materiais, consumíveis ou serviços para um investimento',
],
[
'investmentClassK',
'Os bens de equipamento identificados estão classificados na classe K da Pauta Aduaneira; uma descrição genérica ou código isolado não é classificação automática pelo portal',
],
[
'investmentAuthorized',
'O empreendimento está autorizado ao abrigo da Lei de Investimentos e respectivo Regulamento; a referência identifica a autorização aplicável ou o pressuposto expresso da projecção, não apenas um pedido apresentado',
],
[
'investmentDestination',
'Estes bens destinam-se ao investimento no empreendimento autorizado identificado; a operação, período e condições correspondem ao âmbito aplicável da autorização, sem o estender automaticamente a outros bens ou operações',
],
],
},
{
id: 'service_in_customs_value',
branch: 'P050',
label: 'Serviço já compreendido no valor aduaneiro',
article: '12(1)(e)',
conditions: [
[
'serviceImportLinked',
'A prestação está ligada à importação de bens identificada na referência própria; não basta tratar-se de serviço prestado a um importador',
],
[
'serviceFullValueIncluded',
'O valor integral do serviço desta linha está incluído na base tributável da importação identificada, nos termos do artigo16; documento ou pressuposto discrimina a inclusão, não apenas a intenção de a incluir',
],
[
'serviceInCustomsValue',
'O valor deste serviço já está compreendido no valor aduaneiro que integra a base do artigo16(1); não é uma nova parcela a somar pelo simulador',
],
],
},
{
id: 'accessory_service_first_destination',
branch: 'P050',
label: 'Serviço acessório até ao primeiro destino',
article: '12(1)(e)',
conditions: [
[
'serviceImportLinked',
'A prestação está ligada à importação de bens identificada na referência própria; não basta tratar-se de serviço prestado a um importador',
],
[
'serviceFullValueIncluded',
'O valor integral do serviço desta linha está incluído na base tributável da importação identificada, nos termos do artigo16; documento ou pressuposto discrimina a inclusão, não apenas a intenção de a incluir',
],
[
'serviceAccessoryCost',
'O serviço é uma despesa acessória da importação (embalagem, transporte, seguro ou outro encargo) adicionada à base por ainda não estar compreendida no valor aduaneiro, conforme16(1)(b)',
],
[
'serviceToFirstDestination',
'A despesa verifica-se até ao primeiro lugar de destino no interior do País: o constante do documento de transporte ou, na sua falta, o local da primeira ruptura de carga no interior do País, conforme16(2); destino e percurso identificados no fundamento',
],
],
},
{
id: 'ship_provisions_import',
branch: 'P052',
label: 'Embarcação internacional — Provisões de bordo',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalShip',
'A embarcação identificada efectua navegação marítima, fluvial ou lacustre internacional; não basta pertencer a uma empresa marítima',
],
[
'supplyProvisions',
'São provisões de bordo: produtos destinados exclusivamente ao consumo da tripulação e dos passageiros',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
[
'supplyNoDismantleOtherUse',
'As provisões não se encontram em embarcação a desmantelar ou utilizada para fins diferentes da navegação internacional, durante essa situação',
],
[
'supplyNoFloatingHospitality',
'As provisões não se encontram em embarcação utilizada em hotel, restaurante, sala de jogos flutuante ou fim semelhante, durante permanência em porto ou águas territoriais/interiores nacionais',
],
[
'supplyNoRecreation',
'As provisões não se encontram em embarcação de recreio durante permanência em porto ou águas territoriais/interiores nacionais',
],
[
'supplyNoCoastalFishing',
'As provisões não se encontram em embarcação de pesca costeira',
],
],
},
{
id: 'ship_fuel_import',
branch: 'P052',
label: 'Embarcação internacional — Combustíveis ou carburantes',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalShip',
'A embarcação identificada efectua navegação marítima, fluvial ou lacustre internacional; não basta pertencer a uma empresa marítima',
],
[
'supplyFuel',
'São combustíveis ou carburantes destinados ao funcionamento das máquinas de propulsão ou de outros aparelhos de uso técnico instalados a bordo',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
[
'supplyNormalTanks',
'Os combustíveis/carburantes importados são os contidos nos depósitos normais; depósitos suplementares ou externos não cumprem esta condição',
],
],
},
{
id: 'ship_technical_products_import',
branch: 'P052',
label: 'Embarcação internacional — Lubrificantes e outros produtos de funcionamento técnico',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalShip',
'A embarcação identificada efectua navegação marítima, fluvial ou lacustre internacional; não basta pertencer a uma empresa marítima',
],
[
'supplyTechnicalProducts',
'São lubrificantes ou outros produtos, distintos dos combustíveis/carburantes, destinados ao funcionamento das máquinas de propulsão ou de outros aparelhos de uso técnico instalados a bordo',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
],
},
{
id: 'ship_cargo_accessories_import',
branch: 'P052',
label: 'Embarcação internacional — Produtos acessórios para mercadorias transportadas',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalShip',
'A embarcação identificada efectua navegação marítima, fluvial ou lacustre internacional; não basta pertencer a uma empresa marítima',
],
[
'supplyCargoAccessories',
'São produtos acessórios destinados à preparação, tratamento e conservação das mercadorias transportadas a bordo',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
],
},
{
id: 'aircraft_provisions_import',
branch: 'P052',
label: 'Avião internacional — Provisões de bordo',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalAircraft',
'O avião identificado efectua navegação aérea internacional; não se exige que a companhia se dedique principalmente ao tráfego internacional neste ramo',
],
[
'supplyProvisions',
'São provisões de bordo: produtos destinados exclusivamente ao consumo da tripulação e dos passageiros',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
],
},
{
id: 'aircraft_fuel_import',
branch: 'P052',
label: 'Avião internacional — Combustíveis ou carburantes',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalAircraft',
'O avião identificado efectua navegação aérea internacional; não se exige que a companhia se dedique principalmente ao tráfego internacional neste ramo',
],
[
'supplyFuel',
'São combustíveis ou carburantes destinados ao funcionamento das máquinas de propulsão ou de outros aparelhos de uso técnico instalados a bordo',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
[
'supplyNormalTanks',
'Os combustíveis/carburantes importados são os contidos nos depósitos normais; depósitos suplementares ou externos não cumprem esta condição',
],
],
},
{
id: 'aircraft_technical_products_import',
branch: 'P052',
label: 'Avião internacional — Lubrificantes e outros produtos de funcionamento técnico',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalAircraft',
'O avião identificado efectua navegação aérea internacional; não se exige que a companhia se dedique principalmente ao tráfego internacional neste ramo',
],
[
'supplyTechnicalProducts',
'São lubrificantes ou outros produtos, distintos dos combustíveis/carburantes, destinados ao funcionamento das máquinas de propulsão ou de outros aparelhos de uso técnico instalados a bordo',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
],
},
{
id: 'aircraft_cargo_accessories_import',
branch: 'P052',
label: 'Avião internacional — Produtos acessórios para mercadorias transportadas',
article: '12(1)(g)',
conditions: [
[
'supplyInternationalAircraft',
'O avião identificado efectua navegação aérea internacional; não se exige que a companhia se dedique principalmente ao tráfego internacional neste ramo',
],
[
'supplyCargoAccessories',
'São produtos acessórios destinados à preparação, tratamento e conservação das mercadorias transportadas a bordo',
],
[
'supplyImportWindow',
'Os bens são importados desde a entrada no território nacional até à chegada ao porto ou aeroporto nacionais de destino, ou durante a permanência nesses locais pelo período normal necessário ao cumprimento das tarefas; trajecto e datas constam do fundamento',
],
[
'supplyOnboard',
'Os bens importados são consumidos ou encontram-se a bordo da embarcação ou avião identificados no fundamento factual',
],
],
},
{
id: 'special_economic_zone_import',
branch: 'P080',
label: 'Importação — Zona económica especial',
article: '14(1)(a)',
conditions: [
[
'specialEconomicZone',
'Os bens importados são colocados no regime de zona económica especial identificado no documento; a localização geográfica, por si só, não comprova o regime',
],
[
'specialCustomsControl',
'Esta importação encontra-se sob controlo alfandegário',
],
[
'specialApplicableProvisions',
'A importação está sujeita às disposições especificamente aplicáveis ao regime identificado; indicar no fundamento factual o regime e documento aplicáveis',
],
[
'specialRegimePermanence',
'Os bens permanecem sob o regime identificado no período desta classificação',
],
[
'specialNoFinalUseConsumption',
'Os bens não têm utilização nem consumo finais nas áreas mencionadas no regime',
],
],
},
{
id: 'free_zone_import',
branch: 'P080',
label: 'Importação — Zona franca',
article: '14(1)(a)',
conditions: [
[
'freeZone',
'Os bens importados são colocados no regime de zona franca identificado no documento',
],
[
'specialCustomsControl',
'Esta importação encontra-se sob controlo alfandegário',
],
[
'specialApplicableProvisions',
'A importação está sujeita às disposições especificamente aplicáveis ao regime identificado; indicar no fundamento factual o regime e documento aplicáveis',
],
[
'specialRegimePermanence',
'Os bens permanecem sob o regime identificado no período desta classificação',
],
[
'specialNoFinalUseConsumption',
'Os bens não têm utilização nem consumo finais nas áreas mencionadas no regime',
],
],
},
{
id: 'free_warehouse_import',
branch: 'P080',
label: 'Importação — Depósito franco',
article: '14(1)(a)',
conditions: [
[
'freeWarehouse',
'Os bens importados são colocados no regime de depósito franco identificado no documento',
],
[
'specialCustomsControl',
'Esta importação encontra-se sob controlo alfandegário',
],
[
'specialApplicableProvisions',
'A importação está sujeita às disposições especificamente aplicáveis ao regime identificado; indicar no fundamento factual o regime e documento aplicáveis',
],
[
'specialRegimePermanence',
'Os bens permanecem sob o regime identificado no período desta classificação',
],
[
'specialNoFinalUseConsumption',
'Os bens não têm utilização nem consumo finais nas áreas mencionadas no regime',
],
],
},
{
id: 'general_free_warehouse_import',
branch: 'P080',
label: 'Importação — Depósito geral franco',
article: '14(1)(a)',
conditions: [
[
'generalFreeWarehouse',
'Os bens importados são colocados no regime de depósito geral franco identificado no documento',
],
[
'specialCustomsControl',
'Esta importação encontra-se sob controlo alfandegário',
],
[
'specialApplicableProvisions',
'A importação está sujeita às disposições especificamente aplicáveis ao regime identificado; indicar no fundamento factual o regime e documento aplicáveis',
],
[
'specialRegimePermanence',
'Os bens permanecem sob o regime identificado no período desta classificação',
],
[
'specialNoFinalUseConsumption',
'Os bens não têm utilização nem consumo finais nas áreas mencionadas no regime',
],
],
},
{
id: 'customs_warehouse_import',
branch: 'P080',
label: 'Importação — Depósito de regime aduaneiro',
article: '14(1)(a)',
conditions: [
[
'customsWarehouse',
'Os bens importados são introduzidos no depósito de regime aduaneiro identificado no documento',
],
[
'specialCustomsControl',
'Esta importação encontra-se sob controlo alfandegário',
],
[
'specialApplicableProvisions',
'A importação está sujeita às disposições especificamente aplicáveis ao regime identificado; indicar no fundamento factual o regime e documento aplicáveis',
],
[
'specialRegimePermanence',
'Os bens permanecem sob o regime identificado no período desta classificação',
],
[
'specialNoFinalUseConsumption',
'Os bens não têm utilização nem consumo finais nas áreas mencionadas no regime',
],
],
},
{
id: 'duty_free_shop_import',
branch: 'P080',
label: 'Importação — Loja franca',
article: '14(1)(a)',
conditions: [
[
'dutyFreeShop',
'Os bens importados são introduzidos na loja franca identificada no documento',
],
[
'specialCustomsControl',
'Esta importação encontra-se sob controlo alfandegário',
],
[
'specialApplicableProvisions',
'A importação está sujeita às disposições especificamente aplicáveis ao regime identificado; indicar no fundamento factual o regime e documento aplicáveis',
],
[
'specialRegimePermanence',
'Os bens permanecem sob o regime identificado no período desta classificação',
],
[
'specialNoFinalUseConsumption',
'Os bens não têm utilização nem consumo finais nas áreas mencionadas no regime',
],
],
},
{
id: 'reimport_same_state',
branch: 'P049',
label: 'Reimportação por quem exportou, no mesmo estado',
article: '12(1)(d)',
conditions: [
[
'sameExporter',
'A reimportação é efectuada por quem exportou os bens',
],
[
'sameState',
'Os bens regressam no mesmo estado em que foram exportados',
],
[
'customsExempt',
'Esta reimportação beneficia de isenção de direitos aduaneiros',
],
],
},
{
id: 'central_bank_gold',
branch: 'P051',
label: 'Importação de ouro pelo Banco de Moçambique',
article: '12(1)(f)',
conditions: [
['gold', 'Os bens importados são ouro'],
[
'centralBank',
'A importação é efectuada pelo Banco de Moçambique',
],
],
},
{
id: 'author_art_import',
branch: 'P055',
label: 'Objectos de arte pelos artistas-autores, herdeiros ou legatários',
article: '12(1)(j)',
conditions: [
['artObjects', 'Os bens importados são objectos de arte'],
[
'eligibleArtImporter',
'A importação é efectuada pelos próprios artistas-autores, residentes no território nacional, seus herdeiros ou legatários; a identidade, residência e relação aplicáveis estão identificadas no fundamento factual',
],
],
},
{
id: 'fire_brigade_vehicle',
branch: 'P057',
label: 'Veículo de combate a incêndios por corporação de bombeiros',
article: '12(1)(l)',
conditions: [
[
'fireVehicle',
'O bem importado é um veículo de combate a incêndios',
],
[
'fireBrigade',
'A importação é efectuada por uma corporação de bombeiros',
],
[
'exclusiveOwnUse',
'O veículo destina-se exclusivamente a ser utilizado na actividade própria da corporação',
],
],
},
{
id: 'eligible_ship_import',
branch: 'P053',
label: 'Importação de embarcação elegível',
article: '12(1)(h)',
conditions: [
['eligibleShip', internationalShipEligibility],
[
'importedShip',
'O bem importado é a própria embarcação elegível identificada; não um serviço nem qualquer bem adquirido pelo operador',
],
],
},
{
id: 'ship_operation_object_import',
branch: 'P053',
label: 'Importação de objecto incorporado ou utilizado na exploração de embarcação elegível',
article: '12(1)(h)',
conditions: [
['eligibleShip', internationalShipEligibility],
[
'shipObjectLink',
'O objecto importado está incorporado na embarcação elegível identificada ou é utilizado na sua exploração; objecto, embarcação e ligação concreta identificados no documento ou pressuposto, não um fornecimento genérico ao operador',
],
],
},
{
id: 'eligible_aircraft_import',
branch: 'P054',
label: 'Importação de avião de companhia principalmente internacional',
article: '12(1)(i)',
conditions: [
['eligibleAircraft', internationalAircraftEligibility],
[
'importedAircraft',
'O bem importado é o próprio avião elegível identificado; não um serviço nem qualquer bem adquirido pela companhia',
],
],
},
{
id: 'aircraft_operation_object_import',
branch: 'P054',
label: 'Importação de objecto incorporado ou utilizado na exploração de avião elegível',
article: '12(1)(i)',
conditions: [
['eligibleAircraft', internationalAircraftEligibility],
[
'aircraftObjectLink',
'O objecto importado está incorporado no avião elegível identificado ou é utilizado na sua exploração; objecto, avião e ligação concreta identificados no documento ou pressuposto, não um fornecimento genérico à companhia',
],
],
},
{
id: 'customs_transit_import',
branch: 'P048',
label: 'Importação de bens em trânsito com isenção total de direitos',
article: '12(1)(c)',
conditions: [
[
'customsTransit',
'Os bens identificados são importados sob regime de trânsito; regime e operação constam do documento ou pressuposto expresso, não apenas passagem geográfica',
],
[
'fullCustomsExemption',
'Esta importação beneficia de isenção total de direitos aduaneiros, identificada no fundamento factual; redução parcial ou mera suspensão não comprovam esta condição',
],
],
},
{
id: 'customs_temporary_import',
branch: 'P048',
label: 'Importação temporária de bens com isenção total de direitos',
article: '12(1)(c)',
conditions: [
[
'customsTemporary',
'Os bens identificados são importados sob regime de importação temporária; regime e operação constam do documento ou pressuposto expresso, não apenas intenção de utilização temporária',
],
[
'fullCustomsExemption',
'Esta importação beneficia de isenção total de direitos aduaneiros, identificada no fundamento factual; redução parcial ou mera suspensão não comprovam esta condição',
],
],
},
{
id: 'customs_drawback_import',
branch: 'P048',
label: 'Importação de bens em draubaque com isenção total de direitos',
article: '12(1)(c)',
conditions: [
[
'customsDrawback',
'Os bens identificados são importados sob regime de draubaque; regime e operação constam do documento ou pressuposto expresso, não qualquer promessa de restituição futura',
],
[
'fullCustomsExemption',
'Esta importação beneficia de isenção total de direitos aduaneiros, identificada no fundamento factual; redução parcial ou mera suspensão não comprovam esta condição',
],
],
},
] as const;
type Condition =
| 'developmentMaterials'
| 'developmentUNFunding'
| 'developmentAccredited'
| 'developmentExclusiveUse'
| 'developmentFavourableDecision'
| 'developmentPriorRequest'
| 'developmentCustomsConformity'
| 'developmentFullRightsExemption'
| 'developmentRightsReduction'
| 'investmentEquipment'
| 'investmentClassK'
| 'investmentAuthorized'
| 'investmentDestination'
| 'serviceImportLinked'
| 'serviceFullValueIncluded'
| 'serviceInCustomsValue'
| 'serviceAccessoryCost'
| 'serviceToFirstDestination'
| 'supplyCargoAccessories'
| 'supplyFuel'
| 'supplyImportWindow'
| 'supplyInternationalAircraft'
| 'supplyInternationalShip'
| 'supplyNoCoastalFishing'
| 'supplyNoDismantleOtherUse'
| 'supplyNoFloatingHospitality'
| 'supplyNoRecreation'
| 'supplyNormalTanks'
| 'supplyOnboard'
| 'supplyProvisions'
| 'supplyTechnicalProducts'
| 'specialEconomicZone'
| 'freeZone'
| 'freeWarehouse'
| 'generalFreeWarehouse'
| 'customsWarehouse'
| 'dutyFreeShop'
| 'specialCustomsControl'
| 'specialApplicableProvisions'
| 'specialRegimePermanence'
| 'specialNoFinalUseConsumption'
| 'sameExporter'
| 'sameState'
| 'customsExempt'
| 'gold'
| 'centralBank'
| 'artObjects'
| 'eligibleArtImporter'
| 'fireVehicle'
| 'fireBrigade'
| 'exclusiveOwnUse'
| 'eligibleShip'
| 'importedShip'
| 'shipObjectLink'
| 'eligibleAircraft'
| 'importedAircraft'
| 'aircraftObjectLink'
| 'customsTransit'
| 'customsTemporary'
| 'customsDrawback'
| 'fullCustomsExemption';
function beneficiaryImport(id: string): boolean {
return id === 'author_art_import' || id === 'fire_brigade_vehicle';
}
function assetImport(id: string): boolean {
return [
'eligible_ship_import',
'ship_operation_object_import',
'eligible_aircraft_import',
'aircraft_operation_object_import',
].includes(id);
}
function customsImport(id: string): boolean {
return [
'customs_transit_import',
'customs_temporary_import',
'customs_drawback_import',
].includes(id);
}
function specialRegimeImport(id: string): boolean {
return [
'special_economic_zone_import',
'free_zone_import',
'free_warehouse_import',
'general_free_warehouse_import',
'customs_warehouse_import',
'duty_free_shop_import',
].includes(id);
}
function supplyImport(id: string): boolean {
return [
'ship_provisions_import',
'ship_fuel_import',
'ship_technical_products_import',
'ship_cargo_accessories_import',
'aircraft_provisions_import',
'aircraft_fuel_import',
'aircraft_technical_products_import',
'aircraft_cargo_accessories_import',
].includes(id);
}
export function isImportService(id: string): boolean {
return [
'service_in_customs_value',
'accessory_service_first_destination',
].includes(id);
}
export function isDevelopmentImport(id: string): boolean {
return ['un_development_exemption', 'un_development_reduction'].includes(
id,
);
}
export function importRuleSource(id: string): string {
return isDevelopmentImport(id)
? importDevelopmentSource
: id === 'authorized_investment_equipment'
? importInvestmentSource
: isImportService(id)
? importServiceSource
: supplyImport(id)
? importSupplySource
: specialRegimeImport(id)
? importSpecialRegimeSource
: customsImport(id)
? importCustomsSource
: assetImport(id)
? importAssetSource
: beneficiaryImport(id)
? importBeneficiarySource
: importExemptionSource;
}
export type ImportExemptionRow = {
id: string;
treatment: string;
description: string;
period: string;
origin: 'projected' | 'effective';
currency: string;
declaredValue: string;
goodsCode: string;
originCountry: string;
importer: string;
documentRef: string;
documentDate: string;
evidence: string;
conditions: Partial<Record<Condition, Choice>>;
serviceImportRef?: string;
serviceBaseRef?: string;
serviceFirstDestination?: string;
serviceProvider?: string;
investmentAuthorizationRef?: string;
investmentScope?: string;
} & Partial<
Record<
| (typeof importDevelopmentFields)[number][0]
| 'developmentReductionPercent'
| 'developmentNormalVat'
| 'developmentNormalVatRef',
string
>
>;
type ImportResult = {
id: string;
status: 'exempt' | 'reduced' | 'not_applicable' | 'indeterminate';
importVat: string | null;
serviceVat?: string | null;
reason: string;
};
export type ImportExemptionCalculation = {
version: string;
revision: number;
calculatedAt: string;
opportunity: string;
location: string;
sourceKey: string;
source: string;
inputs: ImportExemptionRow[];
rows: ImportResult[];
};
export type ImportExemptionBook = {
rows: ImportExemptionRow[];
result?: ImportExemptionCalculation;
history?: ImportExemptionCalculation[];
};
type Store = {
version: 1;
books: Record<string, unknown>;
importExemptions?: Record<string, ImportExemptionBook>;
[key: string]: unknown;
};
function store(draft: Record<string, unknown>): Store {
const value: Store = draft.modelo_a_snapshot
? JSON.parse(inputText(draft.modelo_a_snapshot))
: { version: 1, books: {} };
if (
value?.version !== 1 ||
!value.books ||
typeof value.books !== 'object' ||
Array.isArray(value.books)
)
throw new Error(
'Dados fiscais não recuperáveis; originais preservados, sem substituição.',
);
if (
value.importExemptions !== undefined &&
(!value.importExemptions ||
typeof value.importExemptions !== 'object' ||
Array.isArray(value.importExemptions))
)
throw new Error(
'Importações guardadas não recuperáveis; originais preservados.',
);
for (const book of Object.values(value.importExemptions ?? {})) {
if (
Array.isArray(book?.rows) &&
book.rows.some(
(row) =>
row &&
[
...importDevelopmentFields.map(([key]) => key),
'developmentReductionPercent',
'developmentNormalVat',
'developmentNormalVatRef',
].some(
(key) =>
row[key as keyof ImportExemptionRow] !==
undefined &&
typeof row[key as keyof ImportExemptionRow] !==
'string',
),
)
)
throw new Error(
'Referências do projecto de desenvolvimento não recuperáveis; originais preservados.',
);
if (
Array.isArray(book?.rows) &&
book.rows.some(
(row) =>
row &&
['investmentAuthorizationRef', 'investmentScope'].some(
(key) =>
row[key as keyof ImportExemptionRow] !==
undefined &&
typeof row[key as keyof ImportExemptionRow] !==
'string',
),
)
)
throw new Error(
'Referências do investimento não recuperáveis; originais preservados.',
);
if (
Array.isArray(book?.rows) &&
book.rows.some(
(row) =>
row &&
[
'serviceImportRef',
'serviceBaseRef',
'serviceFirstDestination',
'serviceProvider',
].some(
(key) =>
row[key as keyof ImportExemptionRow] !==
undefined &&
typeof row[key as keyof ImportExemptionRow] !==
'string',
),
)
)
throw new Error(
'Referências do serviço associado à importação não recuperáveis; originais preservados.',
);
if (
!book ||
!Array.isArray(book.rows) ||
(book.history !== undefined && !Array.isArray(book.history)) ||
book.rows.some(
(row) =>
!row ||
[
'id',
'treatment',
'description',
'period',
'origin',
'currency',
'declaredValue',
'goodsCode',
'originCountry',
'importer',
'documentRef',
'documentDate',
'evidence',
].some(
(k) =>
typeof row[k as keyof ImportExemptionRow] !==
'string',
) ||
!row.conditions ||
typeof row.conditions !== 'object' ||
Array.isArray(row.conditions),
)
)
throw new Error(
'Linhas de importação não recuperáveis; sem substituição por lista vazia.',
);
}
return value;
}
export function importExemptionBook(
draft: Record<string, unknown>,
): ImportExemptionBook {
return (
store(draft).importExemptions?.[acquisitionScope(draft)] ?? { rows: [] }
);
}
export function saveImportExemptionBook(
draft: Record<string, unknown>,
book: ImportExemptionBook,
): string {
const current = store(draft),
encoded = JSON.stringify({
...current,
importExemptions: {
...current.importExemptions,
[acquisitionScope(draft)]: book,
},
});
store({ ...draft, modelo_a_snapshot: encoded });
return encoded;
}
export function newImportExemption(
id: string,
currency: string,
): ImportExemptionRow {
return {
id,
treatment: '',
description: '',
period: '',
origin: 'projected',
currency,
declaredValue: '',
goodsCode: '',
originCountry: '',
importer: '',
documentRef: '',
documentDate: '',
evidence: '',
conditions: {},
};
}
function validDate(value: string): boolean {
const d = new Date(value + 'T00:00:00Z');
return (
/^\d{4}-\d{2}-\d{2}$/.test(value) &&
Number.isFinite(d.getTime()) &&
d.toISOString().slice(0, 10) === value
);
}
export function evaluateImportExemption(
row: ImportExemptionRow,
currency: unknown,
): ImportResult {
const result: ImportResult = {
id: row.id,
status: 'indeterminate',
importVat: null,
reason: '',
...(isImportService(row.treatment) ? { serviceVat: null } : {}),
};
const stop = (
reason: string,
status: ImportResult['status'] = 'indeterminate',
) => ({ ...result, status, reason });
const rule = importExemptionRules.find((r) => r.id === row.treatment);
if (!rule)
return stop(
'Escolha o ramo aplicável; referência desconhecida ou em falta não concede isenção.',
);
if (currency !== 'MZN' || row.currency !== currency)
return stop(
'Moeda fora do âmbito MZN ou divergente do projecto; valores conservados, sem conversão.',
);
if (!/^2026-(0[1-9]|1[0-2])$/.test(row.period))
return stop(
isImportService(row.treatment)
? 'Indique o período do serviço em2026; a importação é identificada separadamente, sem inferir o mês do orçamento.'
: 'Indique o período da importação em2026; não é inferido do mês do orçamento.',
);
if (!['projected', 'effective'].includes(row.origin))
return stop('Indique dados efectivos ou pressupostos de projecção.');
const failed = rule.conditions.filter(
([key]) => row.conditions[key] === 'no',
);
if (failed.length)
return stop(
'Não se aplica esta isenção: ' +
failed.map(([, label]) => label).join('; ') +
'. O IVA fora deste fundamento permanece por enquadrar, sem taxa presumida.',
'not_applicable',
);
const missing = rule.conditions.filter(
([key]) => row.conditions[key] !== 'yes',
);
if (missing.length)
return stop(
'Condições por indicar: ' +
missing.map(([, label]) => label).join('; ') +
'. Desconhecido não significa não aplicável nem IVA zero.',
);
if (
isDevelopmentImport(row.treatment) &&
importDevelopmentFields.some(([key]) => !row[key]?.trim())
)
return stop(
'Identifique projecto, agência/acreditação, despacho favorável, lista aprovada, plano, âmbito desta importação e fundamento aduaneiro, ou os pressupostos expressos da projecção. Reutilize as referências documentais disponíveis; não é exigido novo certificado.',
);
if (
row.treatment === 'authorized_investment_equipment' &&
(!row.investmentAuthorizationRef?.trim() ||
!row.investmentScope?.trim())
)
return stop(
'Identifique a autorização aplicável ao empreendimento e o seu âmbito nesta importação, ou os pressupostos expressos da projecção. Um pedido em preparação ou apresentado não equivale a autorização.',
);
if (
isImportService(row.treatment) &&
(!row.serviceImportRef?.trim() ||
!row.serviceBaseRef?.trim() ||
!row.declaredValue.trim() ||
(row.treatment === 'accessory_service_first_destination' &&
!row.serviceFirstDestination?.trim()))
)
return stop(
'Identifique a importação de bens, a referência da base que inclui o valor do serviço e o montante desta linha; no serviço acessório, indique o primeiro destino e o fundamento documental ou pressuposto.',
);
if (
!row.description.trim() ||
!row.importer.trim() ||
!row.documentRef.trim() ||
!row.evidence.trim()
)
return stop(
isImportService(row.treatment)
? 'Identifique o serviço, importador destinatário, documento/previsão e fundamento factual da inclusão; sem exigir segunda validação da fonte oficial.'
: 'Identifique bens, importador, documento aduaneiro ou previsão e o fundamento factual das condições; não é exigida segunda validação da fonte oficial.',
);
if (!validDate(row.documentDate))
return stop(
'Data do documento/previsão em falta ou inválida; o período da importação é indicado separadamente.',
);
if (
row.declaredValue.trim() &&
!/^\d{1,15}(\.\d{1,6})?$/.test(row.declaredValue.trim())
)
return stop(
'Valor declarado/previsional inválido; conserve o original e reveja, sem presumir base aduaneira ou imposto normal.',
);
if (row.treatment === 'un_development_reduction') {
const normal = developmentDecimal(row.developmentNormalVat),
percent = developmentDecimal(row.developmentReductionPercent);
if (percent === null)
return stop(
'Indique a percentagem da redução de direitos identificada no fundamento; não é inferida da taxa aduaneira, do financiador ou do valor dos bens.',
);
if (percent === 0n)
return stop(
'Redução de direitos de0% não concede benefício proporcional de IVA neste fundamento; não se presume o imposto normal.',
'not_applicable',
);
if (percent >= 100000000n)
return stop(
'A redução parcial deve ser superior a0% e inferior a100%; para isenção integral use o tratamento próprio e as suas condições.',
);
if (normal === null || !row.developmentNormalVatRef?.trim())
return stop(
'Indique o IVA desta importação sem benefício e a sua referência documental ou pressuposto; montante desconhecido não é zero e o portal não presume taxa/base aduaneira.',
);
const vat = developmentExactMoney(normal * (100000000n - percent));
return {
...result,
status: 'reduced',
importVat: vat,
reason: `Redução proporcional ${rule.article} nas condições ${row.origin === 'projected' ? 'expressamente assumidas na projecção' : 'efectivas declaradas'}. IVA informado sem benefício ${row.developmentNormalVat}MZN × (1 − ${row.developmentReductionPercent}/100) = ${vat}MZN. Proporção da redução de direitos, não taxa de IVA; aritmética decimal exacta, sem arredondamento fiscal presumido. Não calcula direitos/base aduaneira nem dedução.`,
};
}
if (isImportService(row.treatment))
return {
...result,
status: 'exempt',
serviceVat: '0.00',
reason: `Isenção do serviço ${rule.article} nas condições ${row.origin === 'projected' ? 'expressamente assumidas na projecção' : 'efectivas declaradas'}. IVA do serviço:0.00MZN; não é o IVA dos bens importados, não soma novamente o serviço à base nem corrige factura ou dedução.`,
};
return {
...result,
status: 'exempt',
importVat: '0.00',
reason: `Isenção ${rule.article} nas condições ${row.origin === 'projected' ? 'expressamente assumidas na projecção' : 'efectivas declaradas'}. IVA na importação:0.00MZN por isenção, sem inferir direitos aduaneiros, certificação pela AT ou dedução.`,
};
}
function developmentDecimal(raw: unknown): bigint | null {
if (typeof raw !== 'string' || !/^\d{1,15}(\.\d{1,6})?$/.test(raw.trim()))
return null;
const [whole, decimal = ''] = raw.trim().split('.');
return BigInt(whole) * 1000000n + BigInt(decimal.padEnd(6, '0'));
}
function developmentExactMoney(numerator: bigint): string {
const scale = 100000000000000n;
return `${numerator / scale}.${(numerator % scale).toString().padStart(14, '0').replace(/0+$/, '').padEnd(2, '0')}`;
}
function key(
draft: Record<string, unknown>,
book: ImportExemptionBook,
): string {
const base = {
version: importExemptionVersion,
scope: acquisitionScope(draft),
location: draft.selection_labels ?? {},
currency: draft.currency,
rows: book.rows,
};
return JSON.stringify({
...base,
...(book.rows.some((row) => isDevelopmentImport(row.treatment))
? { developmentVersion: importDevelopmentVersion }
: {}),
...(book.rows.some(
(row) => row.treatment === 'authorized_investment_equipment',
)
? { investmentVersion: importInvestmentVersion }
: {}),
...(book.rows.some((row) => beneficiaryImport(row.treatment))
? { beneficiaryVersion: importBeneficiaryVersion }
: {}),
...(book.rows.some((row) => assetImport(row.treatment))
? { assetVersion: importAssetVersion }
: {}),
...(book.rows.some((row) => customsImport(row.treatment))
? { customsVersion: importCustomsVersion }
: {}),
...(book.rows.some((row) => specialRegimeImport(row.treatment))
? { specialRegimeVersion: importSpecialRegimeVersion }
: {}),
...(book.rows.some((row) => supplyImport(row.treatment))
? { supplyVersion: importSupplyVersion }
: {}),
...(book.rows.some((row) => isImportService(row.treatment))
? { serviceVersion: importServiceVersion }
: {}),
});
}
export function importExemptionCurrent(
draft: Record<string, unknown>,
book: ImportExemptionBook,
): boolean {
return !!book.result && book.result.sourceKey === key(draft, book);
}
export function recordImportExemptions(
draft: Record<string, unknown>,
book: ImportExemptionBook,
): ImportExemptionBook {
if (
!book.rows.length ||
new Set(book.rows.map((r) => r.id)).size !== book.rows.length
)
throw new Error(
'Indique importações com identificadores distintos; versões anteriores conservadas.',
);
const result: ImportExemptionCalculation = {
version: importExemptionVersion,
revision: (book.result?.revision ?? 0) + 1,
calculatedAt: new Date().toISOString(),
opportunity: acquisitionScope(draft),
location: JSON.stringify(draft.selection_labels ?? {}),
sourceKey: key(draft, book),
source: [
...new Set(book.rows.map((row) => importRuleSource(row.treatment))),
].join(' | '),
inputs: structuredClone(book.rows),
rows: book.rows.map((row) =>
evaluateImportExemption(row, draft.currency),
),
};
return {
...book,
result,
history: [
...(book.history ?? []),
...(book.result ? [book.result] : []),
],
};
}
export function importExemptionReportRows(
draft: Record<string, unknown>,
): Array<[string, string, string, string]> {
try {
const book = importExemptionBook(draft),
result = book.result;
if (!result) return [];
const context = `${result.opportunity}; ${result.location}; ${importExemptionCurrent(draft, book) ? 'Resultado actual' : 'Entradas alteradas; resultado histórico conservado'}; versão${result.revision}; ${result.calculatedAt}; ${result.source}`;
return result.inputs.map((row, index) => [
'IVA mensal',
`${isImportService(row.treatment) ? 'Serviço associado à importação' : 'Importação'} ${importExemptionRules.find((r) => r.id === row.treatment)?.branch ?? row.treatment} — ${row.period} — ${row.id}`,
`${row.description}; ${isImportService(row.treatment) ? 'IVA do serviço' : 'IVA na importação'}: ${(isImportService(row.treatment) ? result.rows[index].serviceVat : result.rows[index].importVat) ?? 'Indeterminado'} ${row.currency}; ${result.rows[index].reason}`,
`${context}; ${row.origin === 'projected' ? 'Projecção' : 'Dados efectivos declarados'}; importador ${row.importer}; valor declarado/previsional ${row.declaredValue || 'Não informado'} ${row.currency}, sem fixar base aduaneira; ${isImportService(row.treatment) ? `importação associada ${row.serviceImportRef || 'por indicar'}; base com inclusão do serviço ${row.serviceBaseRef || 'por indicar'}; prestador ${row.serviceProvider || 'por indicar'}${row.treatment === 'accessory_service_first_destination' ? `; primeiro destino ${row.serviceFirstDestination || 'por indicar'}` : ''}` : `código ${row.goodsCode || 'não indicado'}; origem ${row.originCountry || 'não indicada'}`}${row.treatment === 'authorized_investment_equipment' ? `; autorização/pressuposto ${row.investmentAuthorizationRef || 'por indicar'}; âmbito aplicável ${row.investmentScope || 'por indicar'}` : ''}${isDevelopmentImport(row.treatment) ? `; ${importDevelopmentFields.map(([key, label]) => label + ': ' + (row[key] || 'por indicar')).join('; ')}${row.treatment === 'un_development_reduction' ? `; redução dos direitos ${row.developmentReductionPercent || 'por indicar'}%; IVA informado sem benefício ${row.developmentNormalVat || 'por indicar'} ${row.currency}; referência do IVA sem benefício ${row.developmentNormalVatRef || 'por indicar'}` : ''}` : ''}; documento ${row.documentRef},${row.documentDate}; condições ${(importExemptionRules.find((rule) => rule.id === row.treatment)?.conditions ?? []).map(([key, label]) => label + ': ' + (row.conditions[key] === 'yes' ? 'Sim' : row.conditions[key] === 'no' ? 'Não' : 'Por indicar')).join('; ')}; fundamento factual ${row.evidence}; campo11 e totaisModeloA não preenchidos por esta classificação.`,
]);
} catch {
return [
[
'IVA mensal',
'Importações',
'Dados não recuperáveis',
'Originais preservados; sem substituir por zero.',
],
];
}
}