Ir para conteúdo
  • Cadastre-se

dev botao

Componente ACBrSPEDFiscal não preenche alguns registros


lincolnaps
  • Este tópico foi criado há 4541 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde,

Estou criando uma aplicação para geração do sped fiscal através de integração junto ao meu ERP

fiz tudo certinho, mas só agora prestei atenção que por algum motivo, ainda desconhecido, o componente não preenche as informações relativas ao registro 0005 (Info. complementares da empresa), 0100 (Info. contabilista), 0150 (Info. participantes), 0200 (Info. produtos e servicos)

Ainda não encontrei um motivo aparente para tal bug, estou deixando em anexo um dos arquivos que gerei e o meu codigo logo abaixo:


bool TAdCtSpedFiscal::preencheBloco_0() {

	//Abertura da escrituracao

	try {

		//Info. empresa

		TUniQuery* qryEmpresa = consultaEmpresa(obterValorCampo("idconcessionaria", getTabela()));

		qryEmpresa->Execute();


		TRegistro0000* blInfo = _sped->Bloco_0->Registro0000New();

		blInfo->COD_VER = vlVersao103;

		if(obterValorCampo("remessaarq", "sped")){

			blInfo->COD_FIN = raOriginal;

		} else {

			blInfo->COD_FIN = raSubstituto;

		}

		blInfo->NOME = qryEmpresa->FieldByName("nome")->AsString;

		blInfo->CNPJ = qryEmpresa->FieldByName("cnpj")->AsString;

		blInfo->CPF = "";

		blInfo->UF = qryEmpresa->FieldByName("nome_uf")->AsString;

		blInfo->IE = qryEmpresa->FieldByName("ie")->AsString;

		blInfo->COD_MUN = qryEmpresa->FieldByName("cod_cidade")->AsInteger;

		blInfo->IM = qryEmpresa->FieldByName("im")->AsString;

		blInfo->SUFRAMA = "";

		blInfo->IND_PERFIL = pfPerfilA;

		blInfo->IND_ATIV = atOutros;


		TRegistro0005* blInfoComp = _sped->Bloco_0->Registro0005New();

		blInfoComp->FANTASIA = qryEmpresa->FieldByName("conhecido")->AsString;

		blInfoComp->CEP = qryEmpresa->FieldByName("cep")->AsString;

		blInfoComp->ENDERECO = qryEmpresa->FieldByName("endereco")->AsString;

		blInfoComp->NUM = qryEmpresa->FieldByName("num")->AsString;

		blInfoComp->COMPL = "";

		blInfoComp->BAIRRO = qryEmpresa->FieldByName("bairro")->AsString;

		blInfoComp->FONE = qryEmpresa->FieldByName("telfixoddd1")->AsString + qryEmpresa->FieldByName("telfixo1")->AsString;

		blInfoComp->FAX = "";

		blInfoComp->EMAIL = qryEmpresa->FieldByName("email")->AsString;


		qryEmpresa->Close();


		//Info. contador

		TUniQuery* qryContador = consultaContador(obterValorCampo("idcontador", getTabela()));

		qryContador->Execute();


		TRegistro0100* blInfoContab = _sped->Bloco_0->Registro0100New();

		blInfoContab->NOME = qryContador->FieldByName("nome")->AsString;

		blInfoContab->CPF = qryContador->FieldByName("cpf")->AsString;

		blInfoContab->CRC = qryContador->FieldByName("crc")->AsString;

		blInfoContab->CNPJ = qryContador->FieldByName("cnpj")->AsString;

		blInfoContab->CEP = qryContador->FieldByName("cep")->AsString;

		blInfoContab->ENDERECO = qryContador->FieldByName("endereco")->AsString;

		blInfoContab->BAIRRO = qryContador->FieldByName("bairro")->AsString;

		blInfoContab->NUM = qryContador->FieldByName("num")->AsString;

		blInfoContab->COMPL = "";

		blInfoContab->FONE = qryContador->FieldByName("telfixoddd1")->AsString + qryContador->FieldByName("telfixo1")->AsString;

		blInfoContab->EMAIL = "";

		blInfoContab->COD_MUN = qryContador->FieldByName("cod_cidade")->AsInteger;


		qryContador->Close();


		//Info. clientes

        TUniQuery* qryClientes = consultaClientes(_sped->DT_INI, _sped->DT_FIN);

		qryClientes->Execute();


		for (int i = 1; i <= qryClientes->RecordCount; i++) {

			TRegistro0150* blInfoCliente = _sped->Bloco_0->Registro0150New();

			blInfoCliente->COD_PART = qryClientes->FieldByName("cod")->AsString;

			blInfoCliente->NOME = qryClientes->FieldByName("nome")->AsString;

			blInfoCliente->COD_PAIS = "1058";

			if(qryClientes->FieldByName("pf")->AsBoolean){

				blInfoCliente->CPF = qryClientes->FieldByName("cpf")->AsString;

			} else {

				blInfoCliente->CNPJ = qryClientes->FieldByName("cnpj")->AsString;

	            blInfoCliente->IE = "";

			}

			blInfoCliente->COD_MUN = qryClientes->FieldByName("cod_cidade")->AsInteger;

			blInfoCliente->SUFRAMA = "";

			blInfoCliente->ENDERECO = qryClientes->FieldByName("endereco")->AsString;

			blInfoCliente->NUM = qryClientes->FieldByName("num")->AsString;

			blInfoCliente->COMPL = "";

			blInfoCliente->BAIRRO = qryClientes->FieldByName("bairro")->AsString;

		}


		qryClientes->Close();


		TRegistro0190* infoUn = _sped->Bloco_0->Registro0190New();

		infoUn->UNID = "UN";

		infoUn->DESCR = "Unidade";


		//Info. pecas vendidas

		TUniQuery* qryPecaVen = consultaVendaPeca(_sped->DT_INI, _sped->DT_FIN);

		qryPecaVen->Execute();


		TRegistro0200* infoItem;

		for (int i = 1; i <= qryPecaVen->RecordCount; i++) {

			infoItem = _sped->Bloco_0->Registro0200New();

			infoItem->COD_ITEM = qryPecaVen->FieldByName("cod_prod")->AsString;

			infoItem->DESCR_ITEM = qryPecaVen->FieldByName("descricao")->AsString;

			infoItem->COD_BARRA = qryPecaVen->FieldByName("cod_barra")->AsString;

			infoItem->COD_ANT_ITEM = "";

			infoItem->UNID_INV = qryPecaVen->FieldByName("unidade")->AsString;

			infoItem->TIPO_ITEM = tiMercadoriaRevenda;

			infoItem->COD_NCM = qryPecaVen->FieldByName("ncm")->AsString;

			infoItem->EX_IPI = "";

			infoItem->COD_GEN = "";

			infoItem->COD_LST = "";

			infoItem->ALIQ_ICMS = 18; //Procurar saber

		}


		qryPecaVen->Close();


		//Info. servicos

		TUniQuery* qryServico = consultaServicos(_sped->DT_INI, _sped->DT_FIN);

		qryServico->Execute();


		for (int i = 1; i <= qryServico->RecordCount ; i++) {

			infoItem = _sped->Bloco_0->Registro0200New();

			infoItem->COD_ITEM = qryServico->FieldByName("id")->AsString;

			infoItem->DESCR_ITEM = qryServico->FieldByName("descricao")->AsString;

			infoItem->COD_BARRA = qryServico->FieldByName("cod_barra")->AsString;

			infoItem->COD_ANT_ITEM = "";

			infoItem->UNID_INV = qryServico->FieldByName("unidade")->AsString;

			infoItem->TIPO_ITEM = tiMercadoriaRevenda;

			infoItem->COD_NCM = qryServico->FieldByName("ncm")->AsString;

			infoItem->EX_IPI = "";

			infoItem->COD_GEN = "";

			infoItem->COD_LST = "";

			infoItem->ALIQ_ICMS = 18; //Procurar saber

		}


		qryServico->Close();


		//_sped->WriteBloco_0();

		return true;

	}

	catch(...) {

		getErro()->exibir("Erro ao preencher o bloco '0', verifique!");

		return false;

	}

}

OBS.: As informações da consulta estão repassadas normalmente e quando eu coloquei no debug vi que as informações estava sendo configuradas no componente, mas observei que o nos objetos referentes a tais blocos nenhum objeto foi criado :s

SPED_28112011144727.txt

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4541 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.