Conforme a tabela de Código de Situação Tributária da Cofins, consta
98-Outras Operações de Entradas
e
o mesmo caso do PIS.
No componente sped fiscal, não consta, como faz para atualizar?
veja no fonte
procedure TBloco_C.WriteRegistroC170(RegC100: TRegistroC100);
var
intFor: integer;
//strCST_IPI: AnsiString;
//strCST_PIS: AnsiString;
//strCST_COFINS: AnsiString;
strLinha: AnsiString;
begin
if Assigned( RegC100.RegistroC170 ) then
begin
//-- Before
strLinha := '';
if Assigned(FOnBeforeWriteRegistroC170) then
begin
FOnBeforeWriteRegistroC170(strLinha);
if strLinha <> EmptyStr then
Add(strLinha);
end;
for intFor := 0 to RegC100.RegistroC170.Count - 1 do
begin
with RegC100.RegistroC170.Items[intFor] do
begin
{
case CST_IPI of
ipiEntradaRecuperacaoCredito: strCST_IPI := '00';
ipiEntradaTributradaZero: strCST_IPI := '01';
ipiEntradaIsenta: strCST_IPI := '02';
ipiEntradaNaoTributada: strCST_IPI := '03';
ipiEntradaImune: strCST_IPI := '04';
ipiEntradaComSuspensao: strCST_IPI := '05';
ipiOutrasEntradas: strCST_IPI := '49';
ipiSaidaTributada: strCST_IPI := '50';
ipiSaidaTributadaZero: strCST_IPI := '51';
ipiSaidaIsenta: strCST_IPI := '52';
ipiSaidaNaoTributada: strCST_IPI := '53';
ipiSaidaImune: strCST_IPI := '54';
ipiSaidaComSuspensao: strCST_IPI := '55';
teria que ser feito a qui '98'
ipiOutrasSaidas: strCST_IPI := '99';
end;
case CST_PIS of
pisValorAliquotaNormal: strCST_PIS := '01';
pisValorAliquotaDiferenciada: strCST_PIS := '02';
pisQtdeAliquotaUnidade: strCST_PIS := '03';
pisMonofaticaAliquotaZero: strCST_PIS := '04';
pisAliquotaZero: strCST_PIS := '06';
pisIsentaContribuicao: strCST_PIS := '07';
pisSemIncidenciaContribuicao: strCST_PIS := '08';
pisSuspensaoContribuicao: strCST_PIS := '09';
pisOutrasOperacoes: strCST_PIS := '99';
end;
case CST_COFINS of
cofinsValorAliquotaNormal: strCST_COFINS := '01';
cofinsValorAliquotaDiferenciada: strCST_COFINS := '02';
cofinsQtdeAliquotaUnidade: strCST_COFINS := '03';
cofinsMonofaticaAliquotaZero: strCST_COFINS := '04';
cofinsAliquotaZero: strCST_COFINS := '06';
cofinsIsentaContribuicao: strCST_COFINS := '07';
cofinsSemIncidenciaContribuicao: strCST_COFINS := '08';
cofinsSuspensaoContribuicao: strCST_COFINS := '09';
teria que ser aqui '98'
cofinsOutrasOperacoes: strCST_COFINS := '99';
end;
}
strLinha := LFill('C170') +
LFill( NUM_ITEM ) +
LFill( COD_ITEM ) +
LFill( DESCR_COMPL ) +
DFill( QTD, 5 ) +
LFill( UNID ) +
LFill( VL_ITEM,0,2 ) +
LFill( VL_DESC,0,2 ) +
LFill( Integer(IND_MOV), 0 ) +
LFill( CST_ICMS,3 ) +
LFill( CFOP,4 ) +
LFill( COD_NAT ) +
LFill( VL_BC_ICMS,0,2 ) +
LFill( ALIQ_ICMS,0,2 ) +
LFill( VL_ICMS,0,2 ) +
LFill( VL_BC_ICMS_ST,0,2 ) +
LFill( ALIQ_ST,0,2 ) +
LFill( VL_ICMS_ST,0,2 ) +
LFill( Integer(IND_APUR), 0 ) +
// LFill( strCST_IPI ) +
LFill( CST_IPI ) +
LFill( COD_ENQ ) +
LFill( VL_BC_IPI,0,2 ) +
LFill( ALIQ_IPI,0,2 ) +
LFill( VL_IPI,0,2 ) +
// LFill( strCST_PIS ) +
LFill( CST_PIS ) +
LFill( VL_BC_PIS,0,2 ) +
LFill( ALIQ_PIS_PERC,0,2 ) +
DFill( QUANT_BC_PIS,3 ) +
DFill( ALIQ_PIS_R,4 ) +
LFill( VL_PIS,0,2 ) +
// LFill( strCST_COFINS ) +
LFill( CST_COFINS ) +
LFill( VL_BC_COFINS,0,2 ) +
LFill( ALIQ_COFINS_PERC,0,2 ) +
DFill( QUANT_BC_COFINS,3 ) +
DFill( ALIQ_COFINS_R,4 ) +
LFill( VL_COFINS,0,2 ) +
LFill( COD_CTA );
//-- Write
if Assigned(FOnWriteRegistroC170) then
FOnWriteRegistroC170(strLinha);
Add(strLinha);
end;
/// Registro FILHOS do FILHO
WriteRegistroC171( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC172( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC173( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC174( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC175( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC176( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC177( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC178( RegC100.RegistroC170.Items[intFor] ) ;
WriteRegistroC179( RegC100.RegistroC170.Items[intFor] ) ;
RegistroC990.QTD_LIN_C := RegistroC990.QTD_LIN_C + 1;
end;
//-- Before
strLinha := '';
if Assigned(FOnAfterWriteRegistroC170) then
begin
FOnAfterWriteRegistroC170(strLinha);
if strLinha <> EmptyStr then
Add(strLinha);
end;
/// Variavél para armazenar a quantidade de registro do tipo.
FRegistroC170Count := FRegistroC170Count + RegC100.RegistroC170.Count;
end;
end;
Obrigado,
Leão