예제 #1
0
        private void GerarBloco0()
        {
            //Endereco entidade
            OpenPOS.Model.Cadastro.Pessoa.IEndereco endereco = Settings.EmpresaAtual.Enderecos.First(w => w.Principal) ?? new OpenPOS.Data.Cadastro.Pessoa.Endereco();

            //Canais de comunicao da Entidade
            ICanalComunicacao canalfone = Settings.EmpresaAtual.CanaisComunicacao.FirstOrDefault(w => w.Principal && w.TipoCanal == Enuns.Cadastro.Pessoa.TipoCanal.Telefone) ?? new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao();
            ICanalComunicacao canalfax = Settings.EmpresaAtual.CanaisComunicacao.FirstOrDefault(w => w.Principal && w.TipoCanal == Enuns.Cadastro.Pessoa.TipoCanal.Fax) ?? new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao();
            ICanalComunicacao canalemail = Settings.EmpresaAtual.CanaisComunicacao.FirstOrDefault(w => w.Principal && w.TipoCanal == Enuns.Cadastro.Pessoa.TipoCanal.EMail) ?? new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao();

            //Contador endereco
            OpenPOS.Model.Cadastro.Pessoa.IEndereco contadorendereco = Settings.EmpresaAtual.Contador.Enderecos.FirstOrDefault(w => w.Principal) ?? new OpenPOS.Data.Cadastro.Pessoa.Endereco();

            //Canais de comunicao do Contator
            ICanalComunicacao canalcontadorfone = Settings.EmpresaAtual.Contador.CanaisComunicacao.FirstOrDefault(w => w.Principal && w.TipoCanal == Enuns.Cadastro.Pessoa.TipoCanal.Telefone) ?? new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao();
            ICanalComunicacao canalcontadorfax = Settings.EmpresaAtual.Contador.CanaisComunicacao.FirstOrDefault(w => w.Principal && w.TipoCanal == Enuns.Cadastro.Pessoa.TipoCanal.Fax) ?? new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao();
            ICanalComunicacao canalcontadoremail = Settings.EmpresaAtual.Contador.CanaisComunicacao.FirstOrDefault(w => w.Principal && w.TipoCanal == Enuns.Cadastro.Pessoa.TipoCanal.EMail) ?? new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao();

            // BLOCO 0: ABERTURA, IDENTIFICAÇÃO E REFERÊNCIAS.
            ACBrSPED.Bloco_0.Registro0000.COD_VER = ACBrFramework.Sped.VersaoLeiaute.Versao106;
            ACBrSPED.Bloco_0.Registro0000.COD_FIN = ACBrFramework.Sped.CodFinalidade.Original;
            ACBrSPED.Bloco_0.Registro0000.DT_INI = ACBrSPED.DT_INI;
            ACBrSPED.Bloco_0.Registro0000.DT_FIN = ACBrSPED.DT_FIN;
            ACBrSPED.Bloco_0.Registro0000.NOME = Settings.EmpresaAtual.RazaoSocial;
            ACBrSPED.Bloco_0.Registro0000.CNPJ = Unimake.Utilities.OnlyNumbers(Settings.EmpresaAtual.Juridica.CNPJ, "-.", false).ToString();
            ACBrSPED.Bloco_0.Registro0000.CPF = null;
            ACBrSPED.Bloco_0.Registro0000.UF = endereco.Endereco.Municipio.Estado.UF;
            ACBrSPED.Bloco_0.Registro0000.IE = Utilities.OnlyNumbers(Settings.EmpresaAtual.Juridica.IE, "-", false).ToString();
            ACBrSPED.Bloco_0.Registro0000.COD_MUN = Unimake.Convert.ToInt(endereco.Endereco.Municipio.CodigoIBGE);
            ACBrSPED.Bloco_0.Registro0000.IM = Settings.EmpresaAtual.Juridica.IM;
            ACBrSPED.Bloco_0.Registro0000.SUFRAMA = Settings.EmpresaAtual.Juridica.ISuf;
            ACBrSPED.Bloco_0.Registro0000.IND_PERFIL = ACBrFramework.Sped.Perfil.PerfilA;
            ACBrSPED.Bloco_0.Registro0000.IND_ATIV = ACBrFramework.Sped.Atividade.Outros;

            //REGISTRO 0001: ABERTURA DO BLOCO 0
            // Nao precisa gerar pois o proprio ja gera esse registro

            //REGISTRO 0005: DADOS COMPLEMENTARES DA ENTIDADE
            ACBrSPED.Bloco_0.Registro0001.Registro0005.FANTASIA = Settings.EmpresaAtual.NomeFantasia;
            ACBrSPED.Bloco_0.Registro0001.Registro0005.CEP = Utilities.OnlyNumbers(endereco.Endereco.CEP, "-", false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0005.ENDERECO = endereco.Endereco.Logradouro.Descricao;
            ACBrSPED.Bloco_0.Registro0001.Registro0005.NUM = endereco.Numero.ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0005.COMPL = endereco.Complemento;
            ACBrSPED.Bloco_0.Registro0001.Registro0005.BAIRRO = endereco.Endereco.Bairro.Descricao;
            ACBrSPED.Bloco_0.Registro0001.Registro0005.FONE = Utilities.OnlyNumbers(canalfone.IdentificadorCanal, false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0005.FAX = Utilities.OnlyNumbers(canalfax.IdentificadorCanal, false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0005.EMAIL = canalemail.IdentificadorCanal;

            //REGISTRO 0100: DADOS DO CONTABILISTA
            ACBrSPED.Bloco_0.Registro0001.Registro0100.NOME = Settings.EmpresaAtual.Contador.NomeFantasia;
            ACBrSPED.Bloco_0.Registro0001.Registro0100.CPF = Utilities.OnlyNumbers(Settings.EmpresaAtual.Contador.GetCPFCNPJ(), "-.", false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.CRC = Utilities.OnlyNumbers(Settings.EmpresaAtual.Contador.CRC, false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.CNPJ = Utilities.OnlyNumbers(Settings.EmpresaAtual.Contador.Juridica.CNPJ, "-.", false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.CEP = Utilities.OnlyNumbers(contadorendereco.Endereco.CEP, "-", false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.ENDERECO = contadorendereco.Endereco.Endereco;
            ACBrSPED.Bloco_0.Registro0001.Registro0100.NUM = contadorendereco.Numero.ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.COMPL = contadorendereco.Complemento;
            ACBrSPED.Bloco_0.Registro0001.Registro0100.BAIRRO = contadorendereco.Endereco.Bairro.Descricao;
            ACBrSPED.Bloco_0.Registro0001.Registro0100.FONE = Utilities.OnlyNumbers(canalcontadorfone.IdentificadorCanal, "-", false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.FAX = Utilities.OnlyNumbers(canalcontadorfax.IdentificadorCanal, "-", false).ToString();
            ACBrSPED.Bloco_0.Registro0001.Registro0100.EMAIL = canalcontadoremail.IdentificadorCanal;
            ACBrSPED.Bloco_0.Registro0001.Registro0100.COD_MUN = 0; // TODO: osmir Convert.ToInt(contadorendereco.Endereco.Municipio.CodigoIBGE);

            var clientes = (from c in Cupons
                            group c by c.DadoPessoa.Cliente.GUID into g
                            select new
                            {
                                cliente = g.First().DadoPessoa.Cliente
                            });

            foreach(var c in clientes)
            {
                IPessoa cliente = c.cliente;

                ACBrFramework.Sped.Registro0150 reg = new ACBrFramework.Sped.Registro0150();

                Model.Cadastro.Pessoa.IEndereco enderecoCli = cliente.Enderecos.FirstOrDefault(w => w.Principal) ?? new Data.Cadastro.Pessoa.Endereco();

                reg.COD_PART = cliente.EGUID;
                reg.NOME = cliente.RazaoSocial;
                reg.COD_PAIS = "01058";
                reg.CNPJ = Utilities.OnlyNumbers(cliente.Juridica.CNPJ, "-.", false).ToString();
                reg.CPF = Utilities.OnlyNumbers(cliente.Fisica.CPF, ".-", false).ToString();
                reg.IE = Utilities.OnlyNumbers(cliente.Juridica.IE.IE, "-.", false).ToString();
                reg.COD_MUN = Unimake.Convert.ToInt(enderecoCli.Endereco.Municipio.CodigoIBGE);
                reg.SUFRAMA = cliente.Juridica.ISuf;
                reg.ENDERECO = String.Format("{0} {1}", enderecoCli.Endereco.Logradouro, enderecoCli.Endereco.Endereco);
                reg.NUM = enderecoCli.Numero.ToString();
                reg.COMPL = null;
                reg.BAIRRO = null;

                ACBrSPED.Bloco_0.Registro0001.Registro0150.Add(reg);
            }

            #region 190
            //REGISTRO 0190: IDENTIFICAÇÃO DAS UNIDADES DE MEDIDA
            ACBrSPED.Bloco_0.Registro0001.Registro0190.AddRange((from c in Cupons
                                                                 from i in c.Itens
                                                                 group i by i.Unidade.Prefixo into g
                                                                 select new Registro0190
                                                                 {
                                                                     UNID = g.Key,
                                                                     DESCR = g.First().Unidade.Descricao,
                                                                 }).ToArray<Registro0190>());
            #endregion

            #region 0200
            //REGISTRO 0200: TABELA DE IDENTIFICAÇÃO DO ITEM (PRODUTO E SERVIÇOS)
            var itens = (from c in Cupons
                         from i in c.Itens
                         group i by i.ItemMovimentado.GUID into g
                         select new
                         {
                             produto = g.First().ItemMovimentado
                         });

            foreach(var i in itens)
            {
                Model.Cadastro.Item.Produto.IProduto item = i.produto as Model.Cadastro.Item.Produto.IProduto;

                ACBrFramework.Sped.Registro0200 reg = new ACBrFramework.Sped.Registro0200();

                reg.COD_ITEM = item.EGUID;
                reg.DESCR_ITEM = item.Descricao;
                reg.COD_BARRA = item.CodigosBarras.First(w => w.Tipo == Enuns.Cadastro.Item.TipoCodigoBarra.GTIN_13).Codigo;
                reg.COD_ANT_ITEM = null;
                reg.UNID_INV = item.Unidade.Prefixo;
                reg.TIPO_ITEM = ACBrFramework.Sped.TipoItem.ProdutoAcabado;
                reg.COD_NCM = Utilities.OnlyNumbers(item.NCM, false).ToString();
                reg.EX_IPI = null;
                reg.COD_GEN = null;
                reg.COD_LST = null;
                reg.ALIQ_ICMS = 0;

                ACBrSPED.Bloco_0.Registro0001.Registro0200.Add(reg);
            }
            #endregion
        }
예제 #2
0
		private void CriaBloco0()
		{
			string[] strUNID = { "PC", "UN", "LT", "PC", "MT" };
			int int0150;
			int int0175;
			int int0300;
			int int0190;
			int int0500;
			int int0600;

			// Alimenta o componente com informações para gerar todos os registros do
			// Bloco 0.
			cbConcomitante.Enabled = false;
			btnB_0.Enabled = false;
			btnB_C.Enabled = true;

			// Definindo
			ACBrSPEDFiscal1.DT_INI = Convert.ToDateTime("01/11/2011");
			ACBrSPEDFiscal1.DT_FIN = Convert.ToDateTime("30/11/2011");

			if (cbConcomitante.Checked)
			{
				ACBrSPEDFiscal1.LinhasBuffer = Convert.ToInt32(edBufLinhas.Text);

				//ACBrSPEDFiscal1.IniciaGeracao;
				LoadToMemo();
			}

			var bloco0 = ACBrSPEDFiscal1.Bloco_0;

			// Dados da Empresa
			var registro0000 = bloco0.Registro0000;
			registro0000.COD_VER = VersaoLeiaute.Versao103;
			registro0000.COD_FIN = CodFinalidade.Original;
			registro0000.NOME = "RAZÃO SOCIAL DA EMPRESA EMITENTE";
			registro0000.CNPJ = "11111111111180";
			registro0000.CPF = "";
			registro0000.UF = "RS";
			registro0000.IE = "1111111119";
			registro0000.COD_MUN = 4314902;
			registro0000.IM = "";
			registro0000.SUFRAMA = "";
			registro0000.IND_PERFIL = Perfil.PerfilA;
			registro0000.IND_ATIV = Atividade.Outros;

			var registro0001 = bloco0.Registro0001;
			registro0001.IND_MOV = IndicadorMovimento.ComDados;

			// FILHO - Dados complementares da Empresa
			var registro0005 = registro0001.Registro0005;
			registro0005.FANTASIA = "NOME FANTASSIA";
			registro0005.CEP = "29900000";
			registro0005.ENDERECO = "ENDEREÇO DA EMPRESA";
			registro0005.NUM = "S/N";
			registro0005.COMPL = "";
			registro0005.BAIRRO = "BAIRRO";
			registro0005.FONE = "";
			registro0005.FAX = "";
			registro0005.EMAIL = "*****@*****.**";

			//registro0001.Registro0015.Add(new Registro0015() { IE_ST = "254504230", UF_ST = "SC" });

			// FILHO - Dados do contador.
			var registro0100 = registro0001.Registro0100;
			registro0100.NOME = "SO CONFIE NO CONTADOR I";
			registro0100.CPF = "12345678909";

			// Deve ser uma informação valida
			registro0100.CRC = "65924";
			registro0100.CNPJ = "";
			registro0100.CEP = "92420020";
			registro0100.ENDERECO = "R. NOME DA RUA";
			registro0100.NUM = "450";
			registro0100.COMPL = "";
			registro0100.BAIRRO = "BAIRRO CONTADORES";
			registro0100.FONE = "";
			registro0100.FAX = "";
			registro0100.EMAIL = "*****@*****.**";
			registro0100.COD_MUN = 3200607;

			// Check(Reg0001.Registro0190.LocalizaRegistro(UNID), '(0-0190) UNIDADE MEDIDA: A unidade de medida "%s" foi duplicada na lista de registros 0190!', [UNID]);
			// FILHO
			for (int0150 = 1; int0150 <= 10; int0150++)
			{
				// 10 Clientes
				var registro0150 = new Registro0150();
				registro0150.COD_PART = (int0150).ToString();
				registro0150.NOME = "CLIENTE DE TESTES " + (int0150).ToString();
				registro0150.COD_PAIS = "1058";
				registro0150.CNPJ = "11111111111180";
				registro0150.CPF = "12345678909";
				registro0150.IE = "";
				registro0150.COD_MUN = 43140070 + int0150;
				registro0150.SUFRAMA = "";
				registro0150.ENDERECO = "ENDERECO CLIENTE" + (int0150).ToString();
				registro0150.NUM = "";
				registro0150.COMPL = "COMPLEMENTO" + (int0150).ToString();
				registro0150.BAIRRO = "BAIRRO CLIENTE" + (int0150).ToString();

				// FILHO - 1 Alteração para cada cliente de 2 a 3
				if ((int0150 == 2) || (int0150 == 3))
				{
					var registro0175 = new Registro0175();
					registro0175.DT_ALT = bloco0.DT_INI.AddDays(1);
					registro0175.NR_CAMPO = "1";
					registro0175.CONT_ANT = "CAMPO ANTERIOR " + '1';

					registro0150.Registro0175.Add(registro0175);
				}

				registro0001.Registro0150.Add(registro0150);
			}

			// FILHO
			// 4 Unidades de medida
			// Const strUNID, esta declarada no inicio deste evento.
			for (int0190 = strUNID.GetLowerBound(0); int0190 <= strUNID.GetUpperBound(0); int0190++)
			{
				//@ Unsupported property or method(B): 'LocalizaRegistro'
				//if(!registro0001.Registro0190.LocalizaRegistro(strUNID[int0190])
				{
					var registro0190 = new Registro0190();
					registro0190.UNID = strUNID[int0190];
					registro0190.DESCR = "Descricao " + strUNID[int0190];

					registro0001.Registro0190.Add(registro0190);
				}
			}

			var registro0200 = new Registro0200();
			registro0200.COD_ITEM = "000001";
			registro0200.DESCR_ITEM = "PRODUTO 1";
			registro0200.COD_BARRA = "";
			registro0200.UNID_INV = "UN";
			registro0200.TIPO_ITEM = TipoItem.MercadoriaRevenda;
			registro0200.COD_NCM = "30049026";
			registro0200.COD_GEN = "30";
			registro0200.ALIQ_ICMS = 17.00M;
			registro0001.Registro0200.Add(registro0200);

			// REGISTRO 0206: CÓDIGO DE PRODUTO CONFORME TABELA PUBLICADA PELA ANP (COMBUSTÍVEIS)
			// With Registro0206New do
			// begin
			// COD_COMB := '910101001';
			// end;

			// FILHO
			for (int0300 = 1; int0300 <= 10; int0300++)
			{
				// 10 Bens Imobilizados

				var registro0300 = new Registro0300();
				registro0300.COD_IND_BEM = string.Format("{0:000000}", int0300);
				registro0300.IDENT_MERC = 1;
				registro0300.DESCR_ITEM = "DESCRIÇÃO DO ITEM";
				registro0300.COD_PRNC = "";
				registro0300.COD_CTA = "";
				registro0300.NR_PARC = 10;

				// FILHO
				var registro0305 = new Registro0305();
				registro0305.COD_CCUS = "1";
				registro0305.VIDA_UTIL = 60;
				registro0300.Registro0305.Add(registro0305);

				registro0001.Registro0300.Add(registro0300);
			}

			var registro0400 = new Registro0400();
			registro0400.COD_NAT = "12020";
			registro0400.DESCR_NAT = "DESCRIÇÃO DA NATUREZA DE OPERAÇÃO 12020";
			registro0001.Registro0400.Add(registro0400);

			var registro0450 = new Registro0450();
			registro0450.COD_INF = "000001";
			registro0450.TXT = "INFORMAÇÃO COMPLEMENTAR DO DOCUMENTO FISCAL";
			registro0001.Registro0450.Add(registro0450);

			var registro0460 = new Registro0460();
			registro0460.COD_OBS = "000001";
			registro0460.TXT = "TEXTO DE OBSERVAÇÃO DO DOCUMENTO FISCAL ";
			registro0001.Registro0460.Add(registro0460);

			for (int0500 = 1; int0500 <= 10; int0500++)
			{
				var registro0500 = new Registro0500();
				registro0500.DT_ALT = Convert.ToDateTime("30/11/2011");
				registro0500.COD_NAT_CC = "01";
				registro0500.IND_CTA = "A";
				registro0500.NIVEL = "1";
				registro0500.COD_CTA = int0500.ToString();
				registro0500.NOME_CTA = string.Format("CONTA CONTÁBIL {0}", int0500);

				registro0001.Registro0500.Add(registro0500);
			}

			for (int0600 = 1; int0600 <= 10; int0600++)
			{
				var registro0600 = new Registro0600();
				registro0600.DT_ALT = Convert.ToDateTime("30/11/2011");
				registro0600.COD_CCUS = (int0600).ToString();
				registro0600.CCUS = string.Format("CENTRO DE CUSTOS {0}", int0600);

				registro0001.Registro0600.Add(registro0600);
			}

			if (cbConcomitante.Checked)
			{
				//@ Unsupported property or method(C): 'WriteBloco_0'
				//ACBrSPEDFiscal1.WriteBloco_0;
				LoadToMemo();
			}
		}