Closed candinho1987 closed 1 year ago
Fala @candinho1987 tudo na paz?
Você quer gerar os registros C170 em um arquivo com base na leitura de outro arquivo TXT?
Se eu entendi corretamente você pode fazer a leitura do primeiro arquivo (origem), após a leitura e as classes "populadas" com as informações você pode criar uma nova instância da classe do arquivo e fazer um foreach
, e ir escrevendo no novo arquivo (destino).
Vida longa e próspera 🖖
Isso meu querido, exatamente isso, sou novo em programacao e mais ainda em sped, mas estou focado em aprender, se tiver tempo e me mostrar um exemplo para eu seguir, fico muito grato. estou fazendo um leitor de xml para posteriormente salvar em csv, e gostaria de adicionar a funcao de sped no mesmo ja que posso importar as notas, deve ter uma forma de gerar o sped com base nos xml, a unica coisa que nao consegui ler ainda foi o cst icms dos xml, de resto consegui tudo.
Entendi, a ideia é boa.
Vou preparar um exemplo e te envio ainda hoje.
Vida longa e próspera 🖖
Entendi, a ideia é boa.
Vou preparar um exemplo e te envio ainda hoje.
Vida longa e próspera 🖖
Muito obrigado fico realmente muito feliz!
no caso consigo gerar um novo sped completo ne, tipo no arquivo original nao tem o c170 e no segundo tem o c170 mas nao esta corrigido, no caso quero pegar os dados do bloco c170 do segundo e inserir no primeiro
Sim, é possível fazer.
Boa noite! da uma olhada se estou no caminho certo.
var arquivo = fd2.FileName;
var sped = new ArquivoEFDFiscal();
sped.Ler(arquivo);
var blococ = sped.BlocoC.ToString();
gridSped.DataSource = blococ;
neste caso queria abrir o arquivo e visualizar as informação em um datagridview para saber se de fato leu o arquivo.
Mas me apresentou um erro
'Object of type 'System.String' cannot be converted to type 'System.Nullable
1[FiscalBr.Common.IndPeriodoApuracaoIpi]'.'`
Meu arquivo esta na versao 15, nao testei na versao 16
Dá uma olhada nesse exemplo @candinho1987 e veja se te ajuda.
public class LerArquivoCandinho1987
{
[Fact]
public void LerArquivoSpedFiscal()
{
List<string> lines = new List<string>();
var filePath = @"C:\source.txt";
// Origem
var spedFile1 = new ArquivoEFDFiscal();
spedFile1.Ler(filePath);
var spedFile2OnlyC170s = new List<EFDFiscal.BlocoC.RegistroC170>();
for (int i = 0; i < spedFile1.BlocoC.RegC001.RegC100s.Count; i++)
{
for (int j = 0; j < spedFile1.BlocoC.RegC001.RegC100s[i].RegC170s.Count; j++)
{
var currentItem = spedFile1.BlocoC.RegC001.RegC100s[i].RegC170s[j];
var newC170 = new EFDFiscal.BlocoC.RegistroC170();
/*
* Preenche os campos desejados
*/
newC170.Cfop = currentItem.Cfop;
/*
* Insere na lista de registros
*/
spedFile2OnlyC170s.Add(newC170);
}
}
/*
* Gera a linha
*/
foreach (var item in spedFile2OnlyC170s)
{
lines.Add(Common.Sped.EscreverCamposSped.EscreverCampos(item));
}
/*
* Inclui as linhas no novo arquivo
*/
//[...]
}
}
Dá uma olhada nas issues https://github.com/orochasamuel/fiscalbr-net/issues/37 e https://github.com/orochasamuel/fiscalbr-net/issues/41.
A issue 37 trata da correção do erro relatado acima. E a issue 41 trata de exemplos de como gerar o arquivo.
EDIT: PS: Eu não testei o código escrito.
Vida longa e próspera. 🖖
Bom dia! Seria possivel inserir os campos c170 em um arquivo sped sem eles com base em outro arquivo sped onde tem o c170, inserindo conforme o nomero da nota/cupom. Ambiente