public override void Editar() { ICliente cliente = new Cliente(GUID); cliente.NomeFantasia = "Pessoa Estrangeira"; cliente.RazaoSocial = "Pessoa Estrangeira"; cliente.Fisica.Passaporte = "45435"; cliente.Save(); }
public override void Gravar() { IFisica fisica = new Fisica(); fisica.CPF = "005.911.969-13"; fisica.RG = "7.513.903-9"; fisica.RGEmissao = new DateTime(1990, 10, 10); fisica.RGEstado = new Estado().Find<Model.Cadastro.Endereco.IEstado>(new Where { Limit = new Limit(1) })[0]; fisica.RGOrgao = "SSP"; fisica.PaiNome = "Estrangeira Pai"; fisica.MaeNome = "Estrangeira Mae"; fisica.Passaporte = "564564654654646"; fisica.RGTipoVisto = "Teste"; Model.Cadastro.Endereco.IEndereco endereco = new OpenPOS.Data.Cadastro.Endereco.Endereco().Find<Model.Cadastro.Endereco.IEndereco>(new Where { Limit = new Limit(1) })[0]; endereco.CEP = "87.707-070"; endereco.Bairro = new Bairro().Find<Model.Cadastro.Endereco.IBairro>(new Where { Limit = new Limit(1) })[0]; endereco.Continente = new Continente().Find<Model.Cadastro.Endereco.IContinente>(new Where { Limit = new Limit(1) })[0]; endereco.Cidade = new Cidade().Find<Model.Cadastro.Endereco.ICidade>(new Where { Limit = new Limit(1) })[0]; endereco.Endereco = "Endereco"; endereco.Estado = new Estado().Find<Model.Cadastro.Endereco.IEstado>(new Where { Limit = new Limit(1) })[0]; endereco.Logradouro = new Logradouro().Find<Model.Cadastro.Endereco.ILogradouro>(new Where { Limit = new Limit(1) })[0]; endereco.Municipio = new Municipio().Find<Model.Cadastro.Endereco.IMunicipio>(new Where { Limit = new Limit(1) })[0]; endereco.Pais = new Pais().Find<Model.Cadastro.Endereco.IPais>(new Where { Limit = new Limit(1) })[0]; endereco.Automatico = false; Model.Cadastro.Pessoa.IEndereco enderecoCliente = new OpenPOS.Data.Cadastro.Pessoa.Endereco(); enderecoCliente.Endereco = endereco; enderecoCliente.Numero = "120"; enderecoCliente.CaixaPostal = ""; enderecoCliente.Complemento = "Proximo ao supermercado"; enderecoCliente.Proximidade = "Proximo ao supermercado"; enderecoCliente.Principal = true; ICliente cliente = new Cliente(); cliente.NomeFantasia = "Estrangeira"; cliente.RazaoSocial = "Estrangeira"; cliente.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica; cliente.Fisica = fisica; cliente.Enderecos.Add(enderecoCliente); cliente.CanaisComunicacao.Add(new OpenPOS.Data.Cadastro.Pessoa.CanalComunicacao() { TipoCanal = Enuns.Cadastro.Pessoa.TipoCanal.Telefone, NomeContato = "Estrangeira", IdentificadorCanal = "3423-4041", Observacao = "Observação", Principal = true, Ramal = "" }); GUID = cliente.Save(); }
public static ICliente NovoCliente() { ICliente cliente = new Cliente(); cliente.RazaoSocial = new Random().NextString(); cliente.NomeFantasia = new Random().NextString(); cliente.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica; cliente.Fisica = new Fisica().Find<IFisica>(new Where { Limit = 1 })[0]; cliente.Enderecos.Add(new Endereco().Find<IEndereco>(new Where { Limit = 1 })[0]); cliente.CanaisComunicacao.Add(new CanalComunicacao() { NomeContato = new Random().NextString(), IdentificadorCanal = "3423-5050", TipoCanal = Enuns.Cadastro.Pessoa.TipoCanal.Telefone, Principal = true }); cliente.Save(); return cliente; }
public override void Gravar() { #region DAV #region Vendedor IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1) })[0]; #endregion #region DadoPessoa IDadoPessoa dadoPessoa = new DadoPessoa(); ICanalComunicacao canal = new CanalComunicacao(); canal.NomeContato = "Cliente"; canal.IdentificadorCanal = "3423-5051"; canal.TipoCanal = Enuns.Cadastro.Pessoa.TipoCanal.Telefone; canal.Principal = true; Cliente cliente = new Cliente() { FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica, Fisica = new Fisica().Find<IFisica>(new Where { Limit = new Limit(1) })[0], NomeFantasia = "Luciano", RazaoSocial = "Luciano Leandro", TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Cliente, Enderecos = new List<IEndereco> { new Endereco().Find<IEndereco>(new Where { Limit = new Limit(1) })[0] }, CanaisComunicacao = new List<ICanalComunicacao> { canal }, ValorLimiteCredto = 3000, PercentualRisco = 10, Situacao = Situacao.AAutorizar }; cliente.Save(); dadoPessoa.Cliente = cliente; #endregion dav.DadoPessoa = dadoPessoa; dav.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; dav.Descricao = "Orcamento de venda"; #region Itens do DAV dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item { Quantidade = 10, ValorUnitarioBruto = 12.5, DescricaoNF = "Produto de teste um", Vendedor = vendedor, TabelaPreco = dav.TabelaPreco, ItemMovimentado = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<Model.Cadastro.Item.Produto.IAcabado>(new Where { Limit = new Limit(1) })[0] }); dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item { Quantidade = 25, ValorUnitarioBruto = 15, DescricaoNF = "Produto de teste dois", Vendedor = vendedor, TabelaPreco = dav.TabelaPreco, ItemMovimentado = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<Model.Cadastro.Item.Produto.IAcabado>(new Where { Limit = new Limit(1) })[0] }); dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item { Quantidade = 33, ValorUnitarioBruto = 17.5, DescricaoNF = "Produto de teste três", Vendedor = vendedor, TabelaPreco = dav.TabelaPreco, ItemMovimentado = new OpenPOS.Data.Cadastro.Item.Produto.Acabado().Find<Model.Cadastro.Item.Produto.IAcabado>(new Where { Limit = new Limit(1) })[0] }); #endregion dav.Save(); #endregion }
public override void Popular() { Cliente cliente = new Cliente(GUID); DumpElement(cliente); DumpElement(cliente.CanaisComunicacao); }
public void HasHashModificationTest() { Gravar(); ICliente p1 = new Cliente(GUID); ICliente p2 = new Cliente(GUID); //alterar a forma 2, e comparar se houve modificação do HASH p2.NomeFantasia = "Teste de Modificação do HASH"; Assert.AreNotEqual(p1.RecordHash, p2.RecordHash); Assert.IsTrue(p2.HasHashModification); //alterar a descrição, tem que ficar igual p2.NomeFantasia = p1.NomeFantasia; Assert.AreEqual(p1.RecordHash, p2.RecordHash); //alterar a forma 2, e comparar se houve modificação do HASH p2.RazaoSocial = "Teste de Modificação do HASH"; Assert.AreNotEqual(p1.RecordHash, p2.RecordHash); Assert.IsTrue(p2.HasHashModification); //alterar a descrição, tem que ficar igual p2.RazaoSocial = p1.RazaoSocial; Assert.AreEqual(p1.RecordHash, p2.RecordHash); }
public override void Editar() { Cliente cliente = new Cliente(GUID); DumpElement(cliente); cliente.NomeFantasia = "Joaquim Silva Editado"; cliente.Situacao = Situacao.Normal; cliente.Save(); cliente = new Cliente(GUID); DumpElement(cliente); }
public static ICliente CriarCliente() { Cliente cliente = new Cliente(); cliente.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Juridica; OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica(); fisica.CPF = "05210438910"; fisica.DataNascimento = new DateTime(1985, 07, 27); fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado; fisica.MaeNome = "Teste"; fisica.PaiNome = "Teste"; fisica.RG = "90702343"; fisica.RGEmissao = new DateTime(1995, 12, 12); fisica.RGEstado = new Estado().Find<Model.Cadastro.Endereco.IEstado>(new Where { Limit = new Limit(1) })[0]; fisica.RGOrgao = "SSPPR"; fisica.RGTipoVisto = ""; fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino; OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica(); juridica.CNPJ = "75480764000120"; juridica.DataAbertura = new DateTime(1999, 10, 10); juridica.IM = "1205"; juridica.ISuf = ""; juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0]; juridica.CRT = CRT.SimplesNacional; juridica.IE = "0144527338395"; cliente.Fisica = fisica; cliente.Juridica = juridica; cliente.NomeFantasia = "Cliente " + new Random().NextString(); cliente.Observacao = "Observação do cliente"; cliente.RazaoSocial = "Cliente " + new Random().NextString(); #region Canais de comunicação cliente.CanaisComunicacao = new List<ICanalComunicacao> { new CanalComunicacao{ TipoCanal = TipoCanal.Celular, NomeContato = new Random().NextString(20), Principal =true, IdentificadorCanal = "2918219219827", Ramal ="", Observacao = "" }, new CanalComunicacao{ TipoCanal = TipoCanal.Facebook, NomeContato = new Random().NextString(20), Principal =false, IdentificadorCanal = "http://facebook.com", Ramal ="", Observacao = "" } }; #endregion #region Análise de crédito cliente.ValorLimiteCredto = 1000; cliente.PercentualRisco = 5.50; cliente.Situacao = Situacao.AAutorizar; cliente.ValorDocumentoAberto = 50; #endregion #region Endereço Model.Cadastro.Endereco.IEndereco endereco = new OpenPOS.Data.Cadastro.Endereco.Endereco(); endereco.Logradouro = new Logradouro().Find<Model.Cadastro.Endereco.ILogradouro>(new Where { Limit = new Limit(1) })[0]; endereco.Bairro = new Bairro().Find<Model.Cadastro.Endereco.IBairro>(new Where { Limit = new Limit(1) })[0]; endereco.Cidade = new Cidade().Find<Model.Cadastro.Endereco.ICidade>(new Where { Limit = new Limit(1) })[0]; endereco.Municipio = new Municipio().Find<Model.Cadastro.Endereco.IMunicipio>(new Where { Limit = new Limit(1) })[0]; endereco.Estado = new Estado().Find<Model.Cadastro.Endereco.IEstado>(new Where { Limit = new Limit(1) })[0]; endereco.Pais = new Pais().Find<Model.Cadastro.Endereco.IPais>(new Where { Limit = new Limit(1) })[0]; endereco.Continente = new Continente().Find<Model.Cadastro.Endereco.IContinente>(new Where { Limit = new Limit(1) })[0]; endereco.Endereco = "Rua: " + new Random().NextString(); #endregion #region Endereço do cliente Model.Cadastro.Pessoa.IEndereco endCliente = new OpenPOS.Data.Cadastro.Pessoa.Endereco(); endCliente.CaixaPostal = "123"; endCliente.Cobranca = true; endCliente.Complemento = "teste"; endCliente.Correspondencia = true; endCliente.Endereco = endereco; endCliente.Entrega = true; endCliente.Faturamento = true; endCliente.Numero = "1234"; endCliente.Principal = true; endCliente.Proximidade = "Estado"; endCliente.Retirada = true; #endregion cliente.Enderecos.Add(endCliente); return cliente; }
public override void Gravar() { PreVenda = new PreVenda(); #region Vendedor Continente t = new Continente(); t.Nome = "Europa"; GUID guidContinente = t.Save(); Pais p = new Pais(); p.Nome = "Brasil"; p.Abreviatura = "BR"; p.CodBACEN = "1234"; p.Continente = t; GUID guidPais = p.Save(); Estado e = new Estado(); e.Nome = "Europa"; e.CodigoIBGE = "99"; e.UF = "PR"; e.Pais = p; GUID guidEstado = e.Save(); Municipio m = new Municipio(); m.Abreviatura = "PVI"; m.CodigoIBGE = "123546"; m.Estado = e; m.Nome = "Paranavaí"; GUID guidMunicipio = m.Save(); Cidade c = new Cidade(); c.Abreviatura = "GR"; c.Municipio = m; c.Nome = "Graciosa"; GUID = c.Save(); Logradouro l = new Logradouro(); l.Descricao = "Avenida"; l.Abreviatura = "Av"; GUID guidLogradouro = l.Save(); Bairro b = new Bairro(); b.Cidade = c; b.Descricao = "Centro"; GUID guidBairro = b.Save(); OpenPOS.Data.Cadastro.Endereco.Endereco end = new OpenPOS.Data.Cadastro.Endereco.Endereco(); end.Logradouro = l; end.CEP = "87704020"; end.Endereco = "Joaquim da Silva"; end.Bairro = b; string guidEndereco = end.Save(); OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica(); fisica.CPF = "05210438910"; fisica.DataNascimento = new DateTime(1985, 07, 27); fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado; fisica.MaeNome = "Teste"; fisica.PaiNome = "Teste"; fisica.RG = "90702343"; fisica.RGEmissao = new DateTime(1995, 12, 12); Estado estado = new Estado(guidEstado); fisica.RGEstado = estado; fisica.RGOrgao = "SSPPR"; fisica.RGTipoVisto = ""; fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino; OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica(); juridica.CNPJ = "75480764000120"; juridica.DataAbertura = new DateTime(1999, 10, 10); juridica.IM = "1205"; juridica.ISuf = ""; juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0]; OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco(); endereco.CaixaPostal = "123"; endereco.Cobranca = true; endereco.Complemento = "teste"; endereco.Correspondencia = true; endereco.Endereco = end; endereco.Entrega = true; endereco.Faturamento = true; endereco.Numero = "1234"; endereco.Principal = true; endereco.Proximidade = "Estadio"; endereco.Retirada = true; endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal; IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1, 1) })[0]; #endregion #region DadoPessoa Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(); ICliente cliente = new Cliente().Find<ICliente>(new Where { Limit = new Limit(1, 1) })[0]; dadoPessoa.Cliente = cliente; #endregion PreVenda.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco(Settings.TabelaPrecoPadrao.GUID); PreVenda.DadoPessoa = dadoPessoa; PreVenda.COO = 123457; #region Frete Frete frete = new Frete(); frete.Descricao = "Frete"; frete.Save(); #endregion #region Desconto Desconto desconto = new Desconto(); desconto.Descricao = "Desconto"; desconto.Save(); #endregion #region Encargos EncargoFinanceiro encargoFinanceiro = new EncargoFinanceiro(); encargoFinanceiro.Descricao = "Encargo Financeiro"; encargoFinanceiro.Save(); #endregion #region CFOP ICFOP cfop = new CFOP().Find<ICFOP>(new Where { Limit = new Limit(1, 1) })[0]; #endregion #region items for(int i = 0; i < 7; i++) { PreVenda.Itens.Add(new Item { TabelaPreco = PreVenda.TabelaPreco, Vendedor = vendedor, Quantidade = new Random().NextDouble(7, 21), ValorUnitarioBruto = new Random().NextDouble(7, 42), DescricaoNF = "Produto de teste um", ItemMovimentado = PreVenda.TabelaPreco.Itens[0].Item as Acabado, Status = 0, CFOP = cfop, Conferido = true, ItensEspeciais = new List<IEspecial> { new Especial{ Ordem = 0, ItemEspecial = frete, Valor = new Random().NextDouble(21, 77) }, new Especial{ Ordem = 1, ItemEspecial = desconto, Valor = new Random().NextDouble(21, 77) }, new Especial{ Ordem = 2, ItemEspecial = encargoFinanceiro, Valor = new Random().NextDouble(21, 77) }, } }); } #endregion GUID = PreVenda.Save(); }
public void GerarDevolucaoNFe() { #region variáveis OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe nfe = null; Devolucao devolucao = null; IList<ICliente> clientes = new Cliente().Find<ICliente>(new Where() { { "cad_Pessoa.nomefantasia", "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM "} }); if (clientes.Count == 0) throw new Exception(); #endregion #region Emitir a nfe nfe = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe(); nfe.QuantidadeVolume = 3; nfe.DadoPessoa = new DadoPessoa { Cliente = clientes[0] }; nfe.Emitente = IndicadorProducao.Proprio; nfe.Situacao = SituacaoNotaFiscal.Normal; nfe.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; nfe.StatusNF = Status.LoteEmProcessamento; nfe.Motivo = "Teste"; nfe.Chave = "12345678"; nfe.InfProt = "123456"; nfe.Modelo = "55"; nfe.Serie = new OpenPOS.Data.Faturamento.Cadastro.Serie().Find<Model.Faturamento.Cadastro.ISerie>(new Where() { { "fat_Serie.Modelo = '55'"} })[0]; nfe.InformacoesAdicionais.Add(new InfAdic() { Tipo = Enuns.Faturamento.Lancamento.Movimento.NF.InfCplTipo.Contribuinte, Campo = "Teste de CRUD" }); nfe.InformacoesAdicionais.Add(new InfAdic() { Tipo = Enuns.Faturamento.Lancamento.Movimento.NF.InfCplTipo.ObsContribuinte, Campo = "Teste de CRUD Obs" }); ITabelaPreco tabela = OpenPOS.Settings.TabelaPrecoPadrao; nfe.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.NFe.Item { Quantidade = 25, ValorUnitarioBruto = 15, DescricaoNF = "Produto de teste um", ItemMovimentado = tabela.Itens[0].Item, Conferido = true, TabelaPreco = tabela, InformacaoAdicional = "Informações adicionais dos produtos, mercadorias e serviços" }); nfe.SaveTemp(); #endregion #region enviar e autorizar a nfe string fileName = nfe.Chave + "-nfe.xml"; string filePath = Path.Combine(OpenPOS.Settings.NFe.PastaEnvio, fileName); ((NFe.IGenerateNFe)nfe).GenerateXML().Save(filePath); OpenPOS.NFe.NFeResult result = ((OpenPOS.Data.Abstract.Faturamento.Lancamento.Movimento.NF.NFBase)nfe).ProcessaResposta(); if (result.Success) { nfe.StatusNF = result.Status; nfe.Chave = result.Chave; nfe.InfProt = result.Protocolo; nfe.Motivo = result.Motivo; nfe.Save(); MessageBox.Show(result.Motivo); } else nfe.Save(); #endregion #region Emitir a devolução devolucao = new Devolucao(); devolucao.MotivoDevolucao = "Não gostou da cor e com defeito"; devolucao.Voucher = nfe; devolucao.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<OpenPOS.Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; foreach (OpenPOS.Model.Faturamento.Lancamento.Movimento.Item.NF.IItem item in nfe.Itens) { Model.Faturamento.Lancamento.Movimento.Item.Devolucao.IDevolucaoItem i = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.Devolucao.Item() { ItemMovimentado = item.ItemMovimentado, Quantidade = item.Quantidade, ValorUnitarioBruto = item.ValorUnitarioBruto, DescricaoNF = item.DescricaoNF, MotivoDevolucao = "Com defeito", QuantidadeDevol = item.Quantidade, EstadoItem = Enuns.Faturamento.Lancamento.Movimento.Devolucao.EstadoItem.Defeito, TabelaPreco = item.TabelaPreco }; devolucao.Itens.Add(i); } GUID = devolucao.SaveTemp(); #endregion #region enviar e autorizar a devolução fileName = devolucao.Chave + "-nfe.xml"; filePath = Path.Combine(OpenPOS.Settings.NFe.PastaEnvio, fileName); ((NFe.IGenerateNFe)devolucao).GenerateXML().Save(filePath); result = ((OpenPOS.Data.Abstract.Faturamento.Lancamento.Movimento.NF.NFBase)devolucao).ProcessaResposta(); if (result.Success) { devolucao.StatusNF = result.Status; devolucao.Chave = result.Chave; devolucao.InfProt = result.Protocolo; devolucao.Motivo = result.Motivo; devolucao.Save(); MessageBox.Show("NF-e Devolução: " + result.Motivo); } #endregion }
public override void Popular() { ICliente cliente = new Cliente(GUID); DumpElement(cliente); }
public override void Excluir() { ICliente cliente = new Cliente(GUID); cliente.Delete(); }
internal static void Save() { OnSaving("Conectando com a base de dados local ..."); Connection connection = null; try { connection = DbContext.CreateConnection(); connection.BeginTransaction(); if (CurrentConfig.TipoInstalacao == Enuns.TipoInstalacao.ServidorPostgreSQL || CurrentConfig.TipoInstalacao == Enuns.TipoInstalacao.ServidorSQLite) { #region Settings OnSaving("Salvando as configurações do TEF ..."); connection.ExecuteNonQuery(@"DELETE FROM cfg_Configuracao WHERE Propriedade = 'TEF_CodigoLoja'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'TEF_EnderecoIP'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'TEF_MultiplosCartoes'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'TEF_NumeroCartoes'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'TEF_NumeroTerminal'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_NumeroLaudo'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_Versao'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_NomeApp'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_CNPJ'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_IE'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_IM'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_Nome'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'SH_ER_PAF_ECF'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'ConsumidorFinal'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'TEF_HabilitaCieloPremia'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'ECF_MensagemRodape'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'Server_EnderecoIP'; DELETE FROM cfg_Configuracao WHERE Propriedade = 'Server_Porta'; INSERT INTO cfg_Configuracao (GUID, Propriedade, Valor, Observacao) VALUES ('" + GUID.Create() + "', 'EmpresaDefault', ' ', 'É a empresa padrão da aplicação');" + " INSERT INTO cfg_Configuracao (GUID, Propriedade, Valor, Observacao)" + " VALUES ('" + GUID.Create() + "', 'UsuarioDefault', ' ', 'É o usuário padrão da aplicação');"); Settings.Setting.Refresh(); #endregion #region Empresa padrão OnSaving("Criando empresa padrão ..."); Empresa.TipoEmpresa.Save(); Empresa.Juridica.RamoAtividade.Save(); Empresa.FisicaJuridica = FisicaJuridica.Juridica; Empresa.Save(); //------------------------------------------------------------------------- // O GUID desta empresa será o GUID padrão de empresas //------------------------------------------------------------------------- connection.ExecuteNonQuery(@"UPDATE cfg_Configuracao SET Valor = @valor WHERE Propriedade = @propriedade;", new[] { new Parameter { ParameterName = "@valor", Value = Empresa.GUID }, new Parameter { ParameterName = "@propriedade", Value = "EmpresaDefault" } }); #endregion #region Usuário padrão OnSaving("Criando usuário padrão ..."); //------------------------------------------------------------------------- // Definir o tipo de usuário. //------------------------------------------------------------------------- Usuario.TiposUsuarios = new List<ITipoUsuario> { new TipoUsuario().Find<ITipoUsuario>()[0] }; Usuario.FisicaJuridica = FisicaJuridica.Fisica; Usuario.Save(); //------------------------------------------------------------------------- // O GUID deste usuário será o GUID padrão de usuários //------------------------------------------------------------------------- connection.ExecuteNonQuery(@"UPDATE cfg_Configuracao SET Valor = @valor WHERE Propriedade = @propriedade;", new[] { new Parameter { ParameterName = "@valor", Value = Usuario.GUID }, new Parameter { ParameterName = "@propriedade", Value = "UsuarioDefault" } }); #endregion #region Definir propriedades Settings.EmpresaAtual = Empresa; Settings.UsuarioAtual = Usuario; #endregion #region Contas Correntes #region empresa ContaCorrente cc = new ContaCorrente(); cc.Tipo = OpenPOS.Enuns.Cadastro.Financeiro.TipoContaCorrente.PagarReceber; cc.Descricao = String.IsNullOrEmpty(Empresa.RazaoSocial) ? (String.IsNullOrEmpty(Empresa.NomeFantasia) ? Unimake.Convert.ToString(Empresa.EGUID) : Empresa.NomeFantasia) : Empresa.RazaoSocial; cc.Save(); //vincular com a empresa connection.ExecuteNonQuery("UPDATE cad_Pessoa SET GUIDContaCorrente = @cc WHERE GUID = @g", new[]{ new Parameter{ ParameterName="@cc", Value = cc.GUID, }, new Parameter{ ParameterName="@g", Value = Empresa.GUID, } }); #endregion #region usuário cc = new ContaCorrente(); cc.Tipo = OpenPOS.Enuns.Cadastro.Financeiro.TipoContaCorrente.PagarReceber; cc.Descricao = String.IsNullOrEmpty(Usuario.RazaoSocial) ? (String.IsNullOrEmpty(Usuario.NomeFantasia) ? Unimake.Convert.ToString(Usuario.EGUID) : Usuario.NomeFantasia) : Usuario.RazaoSocial; cc.Save(); //vincular com o usuário connection.ExecuteNonQuery("UPDATE cad_Pessoa SET GUIDContaCorrente = @cc WHERE GUID = @g", new[]{ new Parameter{ ParameterName="@cc", Value = cc.GUID, }, new Parameter{ ParameterName="@g", Value = Usuario.GUID, } }); #endregion #endregion #region Administrador OnSaving("Salvando o Administrador da aplicação."); #region Tipo de usuário ITipoUsuario tipoAdministrador = new TipoUsuario() { Administrador = true, Descricao = "Administrador da aplicação" }; tipoAdministrador.Save(); #endregion IUsuario administrador = new Usuario() { RazaoSocial = "Administrador", NomeFantasia = "Administrador", Fisica = Usuario.Fisica, Enderecos = Usuario.Enderecos, CanaisComunicacao = Usuario.CanaisComunicacao, FisicaJuridica = FisicaJuridica.Fisica, NomeLogin = "******", Senha = "Administrador123#", TiposUsuarios = new List<ITipoUsuario>() { tipoAdministrador } }; //O Administrador do sistema tem que ter acesso a todas as funcionalidades da aplicação INivelAcesso nivelAcesssoAdministrador = new NivelAcesso(); nivelAcesssoAdministrador.Descricao = "Nível de acesso do administrador da aplicação"; nivelAcesssoAdministrador.UsuarioCadastro = administrador; nivelAcesssoAdministrador.Save(); administrador.NivelAcesso = nivelAcesssoAdministrador; administrador.Save(); #endregion #region Supervisor da aplicação OnSaving("Salvando o supervisor da aplicação"); #region Tipo de usuário ITipoUsuario tipoSupervisor = new TipoUsuario() { Administrador = false, Descricao = "Supervisor da aplicação" }; tipoSupervisor.Save(); #endregion IUsuario supervisor = new Usuario() { RazaoSocial = "Supervisor", NomeFantasia = "Supervisor", Fisica = Usuario.Fisica, Enderecos = Usuario.Enderecos, CanaisComunicacao = Usuario.CanaisComunicacao, FisicaJuridica = FisicaJuridica.Fisica, NomeLogin = "******", Senha = "Supervisor123#", TiposUsuarios = new List<ITipoUsuario>() { tipoSupervisor } }; #region Nível de acesso INivelAcesso nivelAcessoSupervisor = new NivelAcesso(); nivelAcessoSupervisor.Descricao = "Nível de acesso do supervisor da aplicação"; nivelAcessoSupervisor.UsuarioCadastro = supervisor; //Controles que o supervisor da aplicação não terá acesso nivelAcessoSupervisor.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuCadastro" }); nivelAcessoSupervisor.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuFinanceiro" }); nivelAcessoSupervisor.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuRelatorio" }); nivelAcessoSupervisor.Save(); supervisor.NivelAcesso = nivelAcessoSupervisor; #endregion supervisor.Save(); #endregion #region Consumidor Final OnSaving("Criando Consumidor Final ..."); ICliente consumidorFinal = new Cliente { NomeFantasia = "Consumidor Final", RazaoSocial = "Consumidor Final", Enderecos = Usuario.Enderecos, CanaisComunicacao = Usuario.CanaisComunicacao, Fisica = Usuario.Fisica, FisicaJuridica = FisicaJuridica.Fisica }; consumidorFinal.Save(); CurrentConfig.SaveConfig("ConsumidorFinal", consumidorFinal.GUID, "Consumidor Final da aplicação"); #region Conta corrente ContaCorrente conta = new ContaCorrente(); conta.Tipo = OpenPOS.Enuns.Cadastro.Financeiro.TipoContaCorrente.PagarReceber; conta.Descricao = String.IsNullOrEmpty(consumidorFinal.RazaoSocial) ? (String.IsNullOrEmpty(consumidorFinal.NomeFantasia) ? Unimake.Convert.ToString(consumidorFinal.EGUID) : consumidorFinal.NomeFantasia) : consumidorFinal.RazaoSocial; conta.Save(); //vincular com a empresa connection.ExecuteNonQuery("UPDATE cad_Pessoa SET GUIDContaCorrente = @cc WHERE GUID = @g", new[]{ new Parameter{ ParameterName="@cc", Value = conta.GUID, }, new Parameter{ ParameterName="@g", Value = consumidorFinal.GUID, } }); #endregion #endregion #region Analista de crédito OnSaving("Criando o analista de crédito ..."); ITipoUsuario tipoAnalista = new TipoUsuario { Administrador = false, Descricao = "Analista de crédito" }; tipoAnalista.Save(); IUsuario analistaCredito = new Usuario { NomeFantasia = "Analista de crédito", RazaoSocial = "Analista de crédito", Fisica = Usuario.Fisica, Enderecos = Usuario.Enderecos, CanaisComunicacao = Usuario.CanaisComunicacao, FisicaJuridica = FisicaJuridica.Fisica, NomeLogin = "******", Senha = "Analista123#", TiposUsuarios = new List<ITipoUsuario>() { tipoAnalista } }; analistaCredito.Save(); CurrentConfig.SaveConfig("AnalistaCredito", analistaCredito.GUID, "Pessoa responsável pela a análise de crédito do cliente nos faturamentos"); #endregion #region Fiscal de caixa OnSaving("Criando o fiscal de caixa ..."); ITipoUsuario tipoFiscal = new TipoUsuario { Administrador = false, Descricao = "Fiscal de caixa" }; tipoFiscal.Save(); IUsuario fiscalCaixa = new Usuario { NomeFantasia = "Fiscal de caixa", RazaoSocial = "Fiscal de caixa", Fisica = Usuario.Fisica, Enderecos = Usuario.Enderecos, CanaisComunicacao = Usuario.CanaisComunicacao, FisicaJuridica = FisicaJuridica.Fisica, NomeLogin = "******", Senha = "Fiscal123#", TiposUsuarios = new List<ITipoUsuario>() { tipoFiscal } }; fiscalCaixa.Save(); CurrentConfig.SaveConfig("FiscalCaixa", fiscalCaixa.GUID, "É o fiscal de caixa da aplicação"); #endregion #region Salvar itens especiais new Data.Cadastro.Item.Especial.DespesaAcessoria().Save(); new Data.Cadastro.Item.Especial.Desconto().Save(); new Data.Cadastro.Item.Especial.EncargoFinanceiro().Save(); new Data.Cadastro.Item.Especial.Frete().Save(); new Data.Cadastro.Item.Especial.Seguro().Save(); #endregion #region Tipo de instalação do terminal if (TipoInstalacaoTerminal == TipoInstalacaoTerminal.PDV) { #region Configurações gerais SaveConfig("TEF_CodigoLoja", TEFCodigoLoja, "Código de loja cadastrado no TEF."); SaveConfig("TEF_EnderecoIP", TEFEnderecoIP, "Endereço de IP do servidor TEF."); SaveConfig("TEF_MultiplosCartoes", TEFMultiplosCartoes ? 1 : 0, "Habilita o TEF para trabalhar com múltiplos cartões"); SaveConfig("TEF_Numerocartoes", TEFNumeroCartoes, "Especifica o número de cartões que a aplicação utilizará para pagamentos com TEF"); SaveConfig("TEF_NumeroTerminal", TEFNumeroTerminal, "Número de terminal do cliente TEF."); SaveConfig("SH_NumeroLaudo", SHNumeroLaudo, "Número do laudo da homologação PAF-ECF"); SaveConfig("SH_Versao", SHVersao, "Versão da aplicação homologada no PAF-ECF"); SaveConfig("SH_NomeApp", SHNomeApp, "Nome da aplicação homologada para o PAF-ECF"); SaveConfig("SH_CNPJ", SHCNPJ, "CNPJ da empresa desenvolvedora do PAF"); SaveConfig("SH_IE", SHIE, "Inscrição Estadual da empresa desenvolvedora do PAF"); SaveConfig("SH_IM", SHIM, "Inscrição Municipal da empresa desenvolvedora do PAF"); SaveConfig("SH_Nome", SHNome, "Nome da empresa desenvolvedora do PAF"); SaveConfig("SH_ER_PAF_ECF", SHERPAFECF, "Versão da especificação do PAF-ECF"); SaveConfig("TEF_HabilitaCieloPremia", TEFHabilitaCieloPremia ? 1 : 0, "Este estabelecimento participa do Cielo Premia."); SaveConfig("ECF_MensagemRodape", ECFMensagemRodape, "Mensagem de rodapé exibida ao final do cupom."); #endregion #region PDV OnSaving("Criando PDV ..."); Impressora.PDV.Save(); #endregion #region Impressora padrão OnSaving("Criando Impressora ..."); Impressora.Save(); #endregion #region Caixa OnSaving("Criando cadastro de caixa..."); ICaixa caixa = new Caixa(); caixa.PDV = Impressora.PDV; caixa.Descricao = Settings.MachineName; caixa.Status = OpenPOS.Enuns.FrenteCaixa.Cadastro.Caixa.Status.Aberto; #endregion #region Operador de caixa OnSaving("Criando operador de caixa padrão..."); ITipoUsuario tipoUsuario = new TipoUsuario { Administrador = false, Descricao = "Operador de Caixa" }; tipoUsuario.Save(); IOperadorCaixa operador = new OperadorCaixa { Fisica = Usuario.Fisica, NomeFantasia = "Operador Padrão", RazaoSocial = "Operador Padrão", Enderecos = Usuario.Enderecos, CanaisComunicacao = Usuario.CanaisComunicacao, NomeLogin = "******", Senha = "Oper123#", FisicaJuridica = FisicaJuridica.Fisica, TiposUsuarios = new List<ITipoUsuario> { tipoUsuario } }; #region Nível de Acesso INivelAcesso nivelAcessoOperadorDeCaixa = new NivelAcesso(); nivelAcessoOperadorDeCaixa.Descricao = "Operador de caixa"; nivelAcessoOperadorDeCaixa.UsuarioCadastro = operador; // Controles que são negados para o usuário do // tipo operador de caixa. nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuCadastro" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuLancamento" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuFinanceiro" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuRelatorio" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "mnuCadastro" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "optBarVenda" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "optBarDAV" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "tbtnDAV" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "tbtnConsultas" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "tbtnOutros" }); nivelAcessoOperadorDeCaixa.Regras.Add(new NivelAcessoRegra() { NomeControle = "tbtnVendas" }); nivelAcessoOperadorDeCaixa.Save(); operador.NivelAcesso = nivelAcessoOperadorDeCaixa; #endregion operador.Save(); CurrentConfig.SaveConfig("OperadorCaixa", tipoUsuario.GUID, "Define o tipo de operador de caixa."); #endregion #region Formas de pagamentos OnSaving("Salvando formas de pagamento ..."); foreach (IImpressoraFormaPagto item in FormasPagto) { item.FormaPagamento.Save(); item.Impressora = Impressora; item.Save(); } #endregion #region Alíquota da impressora fiscal OnSaving("Salvando alíquotas da impressora fiscal ..."); foreach (object[] aliq in Aliquotas) { IAliquota aliquota = new Aliquota(); GUID guidAliquota = (GUID)aliq[3].ToString(); //Se não foi encontrado o GUID da AliquotaTributo não faz o vínculo if (!guidAliquota.IsNullOrEmpty()) { aliquota.TributoAliquota = new AliquotaTributo(guidAliquota); aliquota.Impressora = Impressora; aliquota.Indice = aliq[1].ToString(); aliquota.Aliquota = Unimake.Convert.ToDouble(aliquota.TributoAliquota.Valor); aliquota.Save(); } } #endregion #region Clisitef SaveCliSiTef(); #endregion } #endregion } else if (CurrentConfig.TipoInstalacao == Enuns.TipoInstalacao.ClientePostgreSQL || CurrentConfig.TipoInstalacao == Enuns.TipoInstalacao.ClienteSQLite) { #region Tipo de instalação do terminal if (TipoInstalacaoTerminal == TipoInstalacaoTerminal.PDV) { #region PDV OnSaving("Criando PDV ..."); Impressora.PDV.Save(); #endregion #region Impressora padrão OnSaving("Criando Impressora ..."); Impressora.Save(); #endregion #region Caixa OnSaving("Criando cadastro de caixa..."); ICaixa caixa = new Caixa(); caixa.PDV = Impressora.PDV; caixa.Descricao = Settings.MachineName; caixa.Status = OpenPOS.Enuns.FrenteCaixa.Cadastro.Caixa.Status.Aberto; #endregion #region Formas de pagamentos OnSaving("Salvando formas de pagamento ..."); foreach (IImpressoraFormaPagto item in FormasPagto) { item.FormaPagamento.Save(); item.Impressora = Impressora; item.Save(); } #endregion #region Alíquota da impressora fiscal OnSaving("Salvando alíquotas da impressora fiscal ..."); foreach (object[] aliq in Aliquotas) { IAliquota aliquota = new Aliquota(); GUID guidAliquota = (GUID)aliq[3].ToString(); //Se não foi encontrado o GUID da AliquotaTributo não faz o vínculo if (!guidAliquota.IsNullOrEmpty()) { aliquota.TributoAliquota = new AliquotaTributo(guidAliquota); aliquota.Impressora = Impressora; aliquota.Indice = aliq[1].ToString(); aliquota.Aliquota = Unimake.Convert.ToDouble(aliquota.TributoAliquota.Valor); aliquota.Save(); } } #endregion #region Clisitef SaveCliSiTef(); #endregion } #endregion } if (TipoInstalacao == Enuns.TipoInstalacao.ClientePostgreSQL || TipoInstalacao == TipoInstalacao.ServidorPostgreSQL) UpdateAppConfig(); connection.CommitTransaction(); } catch { if (connection != null) { if (connection.Transaction != null && connection.Transaction.State == TransactionState.Begin) connection.RollbackTransaction(); } throw; } finally { if (connection != null) connection.Close(); } }
public void AnalisarCreditoCliente() { #region DAV #region Vendedor IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1) })[0]; #endregion #region DadoPessoa ICliente cliente = new Cliente().Find<ICliente>(new Where { Limit = 1 })[0]; // cliente.ValorLimiteCredto = 1000; // cliente.PercentualRisco = 10; cliente.Save(); IDadoPessoa dadoPessoa = new DadoPessoa() { Cliente = cliente }; #endregion dav.DadoPessoa = dadoPessoa; dav.TabelaPreco = new OpenPOS.Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; dav.Descricao = "Orcamento de venda"; ITabelaPreco tabela = OpenPOS.Settings.TabelaPrecoPadrao; #region Itens do DAV dav.Itens.Add(new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.DAV.Item { Quantidade = 25, ValorUnitarioBruto = 15, DescricaoNF = "Produto de teste um", ItemMovimentado = tabela.Itens[0].Item, Conferido = true, TabelaPreco = tabela, InformacaoAdicional = "Informações adicionais dos produtos, mercadorias e serviços" }); GUID guidAnalista = (GUID)OpenPOS.Settings.Setting.AnalistaCredito; dav.AnaliseCredito = new AnaliseCredito() { Analista = new Usuario().Find<IUsuario>(new Where { { "cad_PessoaUsuarioTipo.GUIDTipoUsuario", guidAnalista } })[0], DataHoraAnalise = System.DateTime.Now }; #endregion GUID = dav.Save(); #endregion #region Análise //------------------------------------------------------------------------- // Fazer a análise deste cliente // Iremos simular todas as situações //------------------------------------------------------------------------- //------------------------------------------------------------------------- // Cliente aprovado //------------------------------------------------------------------------- cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000; AnaliseCreditoResult resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.Aprovado); //------------------------------------------------------------------------- // Aprovado Somente A Vista //------------------------------------------------------------------------- cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000; cliente.Situacao = Situacao.SemCredito; resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AprovadoSomenteAVista); //------------------------------------------------------------------------- // Aprovado Com Risco //------------------------------------------------------------------------- cliente.ValorLimiteCredto = dav.ValorTotalLiquido - 15.5; cliente.PercentualRisco = 10; resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AprovadoComRisco); //------------------------------------------------------------------------- // Aguardar Analise //------------------------------------------------------------------------- cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000; cliente.Situacao = Situacao.AAutorizar; resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AguardarAnalise); //------------------------------------------------------------------------- // Aguardar analise 2 //------------------------------------------------------------------------- cliente.ValorDocumentoAberto = 10000; cliente.ValorLimiteCredto = 1000; resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.AguardarAnalise); //------------------------------------------------------------------------- // Bloqueado //------------------------------------------------------------------------- cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000; cliente.Situacao = Situacao.Bloqueado; resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.Bloqueado); //------------------------------------------------------------------------- // Cliente Nao Identificado //------------------------------------------------------------------------- cliente.ValorLimiteCredto = dav.ValorTotalLiquido + 1000; dav.DadoPessoa.Cliente = null; resultAnalise = AnalisarCredito.Analisar(dav); Assert.AreEqual(resultAnalise.Status, StatusAnaliseResult.ClienteNaoIdentificado); #endregion }
public void CalcularPreco() { #region buscar clientes IList<ICliente> clientes = new Cliente().Find<ICliente>(new Where { Limit = new Limit(3, 0) }); #endregion #region buscar itens IList<IAcabado> produtos = new Acabado().Find<IAcabado>(new Where { Limit = new Limit(3, 0) }); Model.Faturamento.Lancamento.Movimento.Item.VendaCF.IItem item = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item(); item.ItemMovimentado = produtos[0]; #endregion #region tabela de preço //------------------------------------------------------------------------- // Gravar um tabela de preços para garantir que iremos ter uma tabela //------------------------------------------------------------------------- TabelaPrecoTest precoTest = new TabelaPrecoTest(); precoTest.Gravar(); //------------------------------------------------------------------------- // Carregar esta tabela para uso futuro //------------------------------------------------------------------------- ITabelaPreco tabela = new TabelaPreco(precoTest.GUID); #endregion #region Regra com 10% desconto IDesconto desconto = new Desconto().Find<IDesconto>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto; new PrecoRegra { Descricao = "Regra desconto 10% Geral", TabelaPreco = tabela, ItensEspeciais = new List<IPrecoRegraItemEspecial>{ new PrecoRegraItemEspecial { ItemEspecial = desconto, TipoValor = Enuns.Cadastro.TipoValor.Percentual, Valor= 10 } } }.Save(); #endregion #region Regra com 25% desconto para o cliente posição 0 desconto = new Desconto().Find<IEspecial>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto; new PrecoRegra { Descricao = "Regra desconto 25% cliente posição 0", TabelaPreco = tabela, ItensEspeciais = new List<IPrecoRegraItemEspecial>{ new PrecoRegraItemEspecial { ItemEspecial = desconto, TipoValor = Enuns.Cadastro.TipoValor.Percentual, Valor= 25 } } }.Save(); #endregion #region Regra com 30% desconto para o cliente posição 0 e produto 0 desconto = new Desconto().Find<IEspecial>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto; new PrecoRegra { Descricao = "Regra desconto 30% cliente e produto posição 0", TabelaPreco = tabela, ItensEspeciais = new List<IPrecoRegraItemEspecial>{ new PrecoRegraItemEspecial { ItemEspecial = desconto, TipoValor = Enuns.Cadastro.TipoValor.Percentual, Valor= 30 } } }.Save(); #endregion #region Regra com 35% desconto para o produto posição 0 desconto = new Desconto().Find<IEspecial>(new Where { Limit = new Limit(1, 0) })[0] as IDesconto; new PrecoRegra { Descricao = "Regra desconto 35% cliente e produto posição 0", TabelaPreco = tabela, ItensEspeciais = new List<IPrecoRegraItemEspecial>{ new PrecoRegraItemEspecial { ItemEspecial = desconto, TipoValor = Enuns.Cadastro.TipoValor.Percentual, Valor= 35 } } }.Save(); #endregion //------------------------------------------------------------------------- // Calcular o preço para o cliente na posição 0 //------------------------------------------------------------------------- RegraPrecoResult preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter { Pessoa = clientes[0] }); WriteLine("Preço final: {0:C2}", preco.PrecoFinal); DumpElement(preco); //------------------------------------------------------------------------- // Calcular o preço para o cliente e produto na posição 0 //------------------------------------------------------------------------- preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter { Pessoa = clientes[0], GrupoItem = produtos[0].GrupoItem }); WriteLine("Preço final: {0:C2}", preco.PrecoFinal); DumpElement(preco); //------------------------------------------------------------------------- // Calcular o preço para o produto na posição 0 //------------------------------------------------------------------------- preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter { GrupoItem = produtos[0].GrupoItem }); WriteLine("Preço final: {0:C2}", preco.PrecoFinal); DumpElement(preco); //------------------------------------------------------------------------- // Calcular o preço com todo mundo nulo //------------------------------------------------------------------------- preco = new CalcularPreco(item).ExecutarRegra(new RegraPrecoFilter { }); WriteLine("Preço final: {0:C2}", preco.PrecoFinal); DumpElement(preco); }
public override void Gravar() { PreVenda pv = new PreVenda(); #region Vendedor Model.Cadastro.Endereco.IEndereco end = new Data.Cadastro.Endereco.Endereco().Find<Model.Cadastro.Endereco.IEndereco>(new Where { Limit = 1 })[0]; OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica(); fisica.CPF = "05210438910"; fisica.DataNascimento = new DateTime(1985, 07, 27); fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado; fisica.MaeNome = "Teste"; fisica.PaiNome = "Teste"; fisica.RG = "90702343"; fisica.RGEmissao = new DateTime(1995, 12, 12); fisica.RGEstado = end.Estado; fisica.RGOrgao = "SSPPR"; fisica.RGTipoVisto = ""; fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino; OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica(); juridica.CNPJ = "75480764000120"; juridica.DataAbertura = new DateTime(1999, 10, 10); juridica.IM = "1205"; juridica.ISuf = ""; juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0]; OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco(); endereco.CaixaPostal = "123"; endereco.Cobranca = true; endereco.Complemento = "teste"; endereco.Correspondencia = true; endereco.Endereco = end; endereco.Entrega = true; endereco.Faturamento = true; endereco.Numero = "1234"; endereco.Principal = true; endereco.Proximidade = "Estadio"; endereco.Retirada = true; endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal; IVendedor vendedor = new Vendedor().Find<IVendedor>(new Where { Limit = new Limit(1, 1) })[0]; #endregion #region DadoPessoa Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(); ICliente cliente = new Cliente().Find<ICliente>(new Where { Limit = new Limit(1, 1) })[0]; dadoPessoa.Cliente = cliente; #endregion pv.TabelaPreco = new Data.Cadastro.TabelaPreco.TabelaPreco().Find<Model.Cadastro.TabelaPreco.ITabelaPreco>(new Where { Limit = new Limit(1) })[0]; pv.DadoPessoa = dadoPessoa; pv.COO = 123457; #region Frete Frete frete = new Frete(); frete.Descricao = "Frete"; frete.Save(); #endregion #region Desconto Desconto desconto = new Desconto(); desconto.Descricao = "Desconto"; desconto.Save(); #endregion #region Encargos EncargoFinanceiro encargoFinanceiro = new EncargoFinanceiro(); encargoFinanceiro.Descricao = "Encargo Financeiro"; encargoFinanceiro.Save(); #endregion #region CFOP ICFOP cfop = new CFOP().Find<ICFOP>(new Where { Limit = new Limit(1, 1) })[0]; #endregion #region items ProdutoAcabadoTest acabadoTest = new ProdutoAcabadoTest(); for(int i = 0; i < 3; i++) { acabadoTest.Gravar(); pv.Itens.Add(new Item { Quantidade = new Random().NextDouble(7, 21), ValorUnitarioBruto = new Random().NextDouble(7, 42), DescricaoNF = "Produto de teste um", Status = 0, ItemMovimentado = new Acabado(acabadoTest.GUID), CFOP = cfop, Vendedor = vendedor, ItensEspeciais = new List<IEspecial> { new Especial{ Ordem = 0, ItemEspecial = frete, Valor = 10 }, new Especial{ Ordem = 1, ItemEspecial = desconto, Valor = 10 }, new Especial{ Ordem = 2, ItemEspecial = encargoFinanceiro, Valor = 10 }, } }); } #endregion #region itens especiais pv.ItensEspeciais = new List<IEspecial> { new Especial{ Ordem = 0, ItemEspecial = frete, Valor = 12 }, new Especial{ Ordem = 1, ItemEspecial = desconto, Valor = 12 }, new Especial{ Ordem = 2, ItemEspecial = desconto, Valor = 12 }, new Especial{ Ordem = 3, ItemEspecial = encargoFinanceiro, Valor = 12 }}; #endregion GUID = pv.Save(); }
public static ICliente CriarClienteNaoDefinido() { Cliente cliente = new Cliente(GUID.NaoDefinido); IList<IEndereco> ends = cliente.Enderecos; cliente.Fisica.CPF = "14804754326"; return cliente; }
ICliente CriarCliente() { Continente t = new Continente(); t.Nome = "Europa"; GUID guidContinente = t.Save(); Pais p = new Pais(); p.Nome = "Brasil"; p.Abreviatura = "BR"; p.CodBACEN = "1234"; p.Continente = t; GUID guidPais = p.Save(); Estado e = new Estado(); e.Nome = "Europa"; e.CodigoIBGE = "41256"; e.UF = "PR"; e.Pais = p; GUID guidEstado = e.Save(); Municipio m = new Municipio(); m.Abreviatura = "PVI"; m.CodigoIBGE = "123546"; m.Estado = e; m.Nome = "Paranavaí"; GUID guidMunicipio = m.Save(); Cidade c = new Cidade(); c.Abreviatura = "GR"; c.Municipio = m; c.Nome = "Graciosa"; GUID = c.Save(); Logradouro l = new Logradouro(); l.Descricao = "Avenida"; l.Abreviatura = "Av"; GUID guidLogradouro = l.Save(); Bairro b = new Bairro(); b.Cidade = c; b.Descricao = "Centro"; GUID guidBairro = b.Save(); OpenPOS.Data.Cadastro.Endereco.Endereco end = new OpenPOS.Data.Cadastro.Endereco.Endereco(); end.Logradouro = l; end.CEP = "87704020"; end.Endereco = "Joaquim da Silva"; end.Bairro = b; GUID = end.Save(); Cliente cliente = new Cliente(); cliente.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica; OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica(); fisica.CPF = "05210438910"; fisica.DataNascimento = new DateTime(1985, 07, 27); fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado; fisica.MaeNome = "Teste"; fisica.PaiNome = "Teste"; fisica.RG = "90702343"; fisica.RGEmissao = new DateTime(1995, 12, 12); Estado estado = new Estado(guidEstado); fisica.RGEstado = estado; fisica.RGOrgao = "SSPPR"; fisica.RGTipoVisto = ""; fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino; OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica(); juridica.CNPJ = "75480764000120"; juridica.DataAbertura = new DateTime(1999, 10, 10); juridica.IM = "1205"; juridica.ISuf = ""; juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0]; OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco(); endereco.CaixaPostal = "123"; endereco.Cobranca = true; endereco.Complemento = "teste"; endereco.Correspondencia = true; endereco.Endereco = end; endereco.Entrega = true; endereco.Faturamento = true; endereco.Numero = "1234"; endereco.Principal = true; endereco.Proximidade = "Estadio"; endereco.Retirada = true; endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal; cliente.Enderecos = new List<IEndereco> { endereco }; cliente.Fisica = fisica; cliente.Juridica = juridica; cliente.NomeFantasia = "Teste"; cliente.Observacao = "teste unitário"; cliente.RazaoSocial = "Teste"; #region Canais de comunicação cliente.CanaisComunicacao = new List<ICanalComunicacao> { new CanalComunicacao{ TipoCanal = TipoCanal.Celular, NomeContato = new Random().NextString(20), Principal =true, IdentificadorCanal = "2918219219827", Ramal ="", Observacao = "" }, new CanalComunicacao{ TipoCanal = TipoCanal.Facebook, NomeContato = new Random().NextString(20), Principal =false, IdentificadorCanal = "http://facebook.com", Ramal ="", Observacao = "" } }; #endregion #region Análise de crédito cliente.ValorLimiteCredto = 1000; cliente.PercentualRisco = 5.50; cliente.Situacao = Situacao.AAutorizar; #endregion cliente.Save(); return cliente; }
public override void Gravar() { #region DAV DAV dav = new DAV(); #region Vendedor Continente t = new Continente(); t.Nome = "Europa"; GUID guidContinente = t.Save(); Pais p = new Pais(); p.Nome = "Brasil"; p.Abreviatura = "BR"; p.CodBACEN = "1234"; p.Continente = t; GUID guidPais = p.Save(); Estado e = new Estado(); e.Nome = "Europa"; e.CodigoIBGE = "41256"; e.UF = "PR"; e.Pais = p; GUID guidEstado = e.Save(); Municipio m = new Municipio(); m.Abreviatura = "PVI"; m.CodigoIBGE = "123546"; m.Estado = e; m.Nome = "Paranavaí"; GUID guidMunicipio = m.Save(); Cidade c = new Cidade(); c.Abreviatura = "GR"; c.Municipio = m; c.Nome = "Graciosa"; GUID = c.Save(); Logradouro l = new Logradouro(); l.Descricao = "Avenida"; l.Abreviatura = "Av"; GUID guidLogradouro = l.Save(); Bairro b = new Bairro(); b.Cidade = c; b.Descricao = "Centro"; GUID guidBairro = b.Save(); OpenPOS.Data.Cadastro.Endereco.Endereco end = new OpenPOS.Data.Cadastro.Endereco.Endereco(); end.Logradouro = l; end.CEP = "87704020"; end.Endereco = "Joaquim da Silva"; end.Bairro = b; string guidEndereco = end.Save(); IVendedor vendedor = new Vendedor(); vendedor.FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica; OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica fisica = new OpenPOS.Data.Cadastro.Pessoa.Fisica.Fisica(); fisica.CPF = "05210438910"; fisica.DataNascimento = new DateTime(1985, 07, 27); fisica.EstadoCivil = Enuns.Cadastro.Pessoa.EstadoCivil.Casado; fisica.MaeNome = "Teste"; fisica.PaiNome = "Teste"; fisica.RG = "90702343"; fisica.RGEmissao = new DateTime(1995, 12, 12); Estado estado = new Estado(guidEstado); fisica.RGEstado = estado; fisica.RGOrgao = "SSPPR"; fisica.RGTipoVisto = ""; fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino; OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica juridica = new OpenPOS.Data.Cadastro.Pessoa.Juridica.Juridica(); juridica.CNPJ = "75480764000120"; juridica.DataAbertura = new DateTime(1999, 10, 10); juridica.IM = "1205"; juridica.ISuf = ""; juridica.RamoAtividade = new RamoAtividade().Find<IRamoAtividade>()[0]; OpenPOS.Data.Cadastro.Pessoa.Endereco endereco = new OpenPOS.Data.Cadastro.Pessoa.Endereco(); // endereco.GUID = guidEndereco; endereco.CaixaPostal = "123"; endereco.Cobranca = true; endereco.Complemento = "teste"; endereco.Correspondencia = true; endereco.Endereco = end; endereco.Entrega = true; endereco.Faturamento = true; endereco.Numero = "1234"; endereco.Principal = true; endereco.Proximidade = "Estadio"; endereco.Retirada = true; endereco.TipoEndereco = Enuns.Cadastro.Endereco.TipoEndereco.Principal; vendedor.Enderecos = new List<IEndereco> { endereco }; vendedor.Fisica = fisica; vendedor.Juridica = juridica; vendedor.NomeFantasia = "Teste"; vendedor.Observacao = "teste unitario"; vendedor.RazaoSocial = "Teste"; vendedor.TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Vendedor; GUID guidVendedor = vendedor.Save(); #endregion #region DadoPessoa Model.Faturamento.Lancamento.Movimento.IDadoPessoa dadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(); Cliente cliente = new Cliente() { FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica, Fisica = fisica, NomeFantasia = "Luciano", RazaoSocial = "Luciano Leandro", TipoPessoa = Enuns.Cadastro.Pessoa.TipoPessoa.Cliente, Enderecos = new List<IEndereco> { endereco } }; cliente.Save(); dadoPessoa.Cliente = cliente; #endregion dav.DadoPessoa = dadoPessoa; Item item1 = new Item() { Quantidade = 10, ValorUnitarioBruto = 12.5, DescricaoNF = "Produto de teste um", Vendedor = vendedor }; dav.Itens.Add(item1); GUID guidDav = dav.Save(); #endregion PreVenda pv = new PreVenda(); OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item itempv1 = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item() { Quantidade = 10, ValorUnitarioBruto = 12.5, DescricaoNF = "Produto de teste um", Status = 0, }; itempv1.Parent = pv; itempv1.ItensParent.Add((Item)dav.Itens[0].Clone()); pv.Itens.Add(itempv1); guidPv = pv.Save(); VendaCF v = new VendaCF(); OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item itemVCF = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Item.VendaCF.Item { Quantidade = 25, ValorUnitarioBruto = 15, DescricaoNF = "Produto de teste um", }; itemVCF.Parent = v; itemVCF.ItensParent.Add((Data.Faturamento.Lancamento.Movimento.Item.PreVenda.Item)pv.Itens[0].Clone()); v.Itens.Add(itemVCF); GUID = v.Save(); }