- conheça também:
acronsoft
acrondesign
DeveloperFlex - Soluções para Desenvolvedores Visual DataFlex
contato@developerflex.com.br | (55 11) 4378-1115
Boolean
A função SpedFiscalPisCofinsAdicionaRegistro0150 está defiinida no pacote SpedFiscalPisCofinsAdicionaRegistro0150.pkg.
A função SpedFiscalPisCofinsAdicionaRegistro0150 é usada para fazer a adição de um registro 0150 no vetor de registros 0150. Ela irá verificar se já existe um registro 0150 com o mesmo valor de campo COD_PART. Se não houver, irá acrescentar o novo registro no array. Se já existir, o que será feito em seguida depende dos parâmetros informados. Veja a explicação da sintaxe abaixo.
Move (SpedFiscalPisCofinsAdicionaRegistro0150({vtRegistro0150Adicionar}, ;
(&{vtRegistros0150}, {dAlteracao}, {bPISCOFINS}, {bExibeErro}, ;
(&{sMsgErro}), (&{sCOD_PARTs}))) to {bRetorno}
Onde:
Se este parâmetro for True, quando já existe um registro com o mesmo valor de COD_PART do registro que está sendo adicionado, a função não fará mais nada, pois o Sped Fiscal-PIS/COFINS não prevê a geração dos registros 0175 de alterações do participante. Portanto, mesmo que você esteja gerando o Sped Fiscal, se você não quiser gerar os registros 0175, então informe True para este parâmetro.
Se este parâmetro for False, quando já existe um registro com o mesmo valor de COD_PART do registro que está sendo adicionado, a função irá verificar se há alteração em algum dos campos que devem ser apresentados no registro 0175. Se houver, será gerado um registro filho 0175 com o valor de dAlteracao no campo DT_ALT.
Use SpedFiscalLibrary_PacotesSpedFiscalPisCofinsAdicionaRegistro0150.pkg
:
:
tSpedFiscalPisCofinsRegistro0150 vtRegistro0150
:
String sMsgErro
tSpedFiscalPisCofinsRegistro0150 vtRegistro0150
tSpedFiscalPisCofinsRegistro0150 vtRegistro0150Dummy
String[] sCOD_PARTs
:
// Gerando registros 0150
Clear SpedPart
Move iEmpresa to SpedPart.iCdEmpresa
Move dFinal to SpedPart.dEmissao
Move "ZZZZZZZZZZZZZZ" to SpedPart.sCNPJ_CPF
Move 99999999 to SpedPart.iIdSpedPart
Find lt SpedPart by 3
While (dInicial <= SpedPart.dEmissao and SpedPart.dEmissao <= dFinal ;
and iEmpresa = SpedPart.iCdEmpresa and Found)
Move vtRegistro0150Dummy to vtRegistro0150
Move SpedPart.sCNPJ_CPF to vtRegistro0150.sCOD_PART
// O CNPJ será o COD_PART se for nacional. Se for internacional
// será EX{Codigo}
Move SpedPart.sNOME to vtRegistro0150.sNOME
Move SpedPart.iCOD_PAIS to vtRegistro0150.iCOD_PAIS
If (SpedPart.iCOD_PAIS = 1058 or SpedPart.iCOD_PAIS = 0) Begin
Move SpedPart.sCNPJ_CPF to vtRegistro0150.sCNPJ_CPF
If (SpedPart.iCOD_PAIS = 0) ;
Move 1058 to vtRegistro0150.iCOD_PAIS
End
Move SpedPart.sIE to vtRegistro0150.sIE
Move SpedPart.iCOD_MUN to vtRegistro0150.iCOD_MUN
Move SpedPart.sSUFRAMA to vtRegistro0150.sSUFRAMA
Move SpedPart.sENDE to vtRegistro0150.sEndereco
Move SpedPart.sNUM to vtRegistro0150.sNUM
Move SpedPart.sCOMPL to vtRegistro0150.sCOMPL
Move SpedPart.sBAIRRO to vtRegistro0150.sBAIRRO
// A data de alteração será um dia após a data de emissão,
// por isso somamos 1
If (not(SpedFiscalPisCofinsAdicionaRegistro0150(vtRegistro0150, ;
(&vtArquivo.vtBloco0.vtRegistros0150),(SpedPart.dEmissao + 1), ;
False,True,(&sMsgErro),(&sCOD_PARTs)))) Procedure_Return
Find lt SpedPart by 3
Loop
O exemplo acima contém particularidades específicas do sistema onde foi implementado para chegar à informação desejada. O objetivo do exemplo é mostrar o preenchimento da estrutura vtRegistro0150 e a chamada da função.