Ejemplo n.º 1
0
 public override void Gravar()
 {
     IContaCorrente contaCorrente = new ContaCorrente();
     contaCorrente.Descricao = new Random().NextString();
     contaCorrente.Tipo = Enuns.Cadastro.Financeiro.TipoContaCorrente.Bancaria;
     GUID = contaCorrente.Save();
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Construtor sem parâmetros do objeto PessoaBase
 /// </summary>
 public PessoaBase()
     : base()
 {
     CanaisComunicacao = new List<ICanalComunicacao>();
     Ocorrencias = new List<IOcorrencia>();
     Fisica = new Data.Cadastro.Pessoa.Fisica.Fisica();
     Juridica = new Data.Cadastro.Pessoa.Juridica.Juridica();
     Enderecos = new List<IEndereco>();
     ContaCorrente = new ContaCorrente();
 }
Ejemplo n.º 3
0
        public override void Gravar()
        {
            #region conta corrente
            IContaCorrente contaCorrente = new ContaCorrente();
            contaCorrente.Tipo = Enuns.Cadastro.Financeiro.TipoContaCorrente.PagarReceber;
            contaCorrente.Descricao = new Random().NextString();
            contaCorrente.Save();
            #endregion

            IContaReceber receber = new ContaReceber();
            receber.Descricao = new Random().NextString();
            receber.ContaCorrente = contaCorrente;
            receber.DataLancamento = DateTime.Today;
            receber.DataVencimento = DateTime.Today.AddDays(10);
            receber.Valor = new Random().NextDouble();
            receber.PercentualJuros = 1.55;
            receber.TipoJuros = Enuns.Financeiro.TipoJuros.Simples;
            GUID = receber.Save();
        }
Ejemplo n.º 4
0
        public override void Gravar()
        {
            PreVenda pv = 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 = "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();

            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 = CriarCliente();
            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 < 7; i++)
            {
                acabadoTest.Gravar();
                pv.Itens.Add(new Item
                {
                    Vendedor = vendedor,
                    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,
                    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

            #region Parcelas
            //-------------------------------------------------------------------------
            // Conta Corrente
            //-------------------------------------------------------------------------
            IContaCorrente contaCorrente = new ContaCorrente();
            contaCorrente.Descricao = new Random().NextString();
            contaCorrente.Save();

            //-------------------------------------------------------------------------
            // Criar uma condição de pagamento
            //-------------------------------------------------------------------------
            ICondicaoPagamento condicaoPagamento = new CondicaoPagamento();
            condicaoPagamento.Descricao = "30/60";
            condicaoPagamento.PrazoMedio = 1;
            condicaoPagamento.FormaCalculoVencimento = Enuns.Cadastro.Financeiro.FormaCalculoVencimento.Mensal;
            condicaoPagamento.VencimentoFeriado = Enuns.Cadastro.Financeiro.VencimentoFeriado.Manter;
            condicaoPagamento.MesmoDiaMes = false;

            #region Período de vencimento
            IPeriodo periodo = new OpenPOS.Data.Cadastro.Periodo.Periodo();
            periodo.Tipo = TipoVencimento.ManualMes;
            periodo.Descricao = "Período mensal";
            periodo.Save();
            #endregion

            IParcela parcelaUm = new Parcela();
            parcelaUm.APartirDataEmissao = 30;
            parcelaUm.APartirDataVencimentoAnterior = 30;
            parcelaUm.Percentual = 35;
            parcelaUm.PeriodoVencimento = periodo;
            parcelaUm.PeriodoVencimento = periodo;
            condicaoPagamento.Parcelas.Add(parcelaUm);

            IParcela parcelaDois = new Parcela();
            parcelaDois.APartirDataEmissao = 30;
            parcelaDois.APartirDataVencimentoAnterior = 60;
            parcelaDois.Percentual = 65;
            parcelaDois.PeriodoVencimento = periodo;
            parcelaDois.PeriodoVencimento = periodo;
            condicaoPagamento.Parcelas.Add(parcelaDois);
            condicaoPagamento.Save();

            pv.CondicaoPagamento = condicaoPagamento;

            #endregion

            GUID = pv.Save();
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Instancia este objeto e apenas inicia as variáveis, não carrega nenhum dado da base de dados
 /// </summary>
 public LancamentoBase()
     : base()
 {
     DadosCancelamento = new OpenPOS.Faturamento.Lancamento.Cancelamento.DadosCancelamento();
     ContaCorrente = new ContaCorrente();
 }
Ejemplo n.º 6
0
 public override void Popular()
 {
     IContaCorrente contaCorrente = new ContaCorrente(GUID);
     DumpElement(contaCorrente);
 }
Ejemplo n.º 7
0
 public override void Excluir()
 {
     IContaCorrente contaCorrente = new ContaCorrente(GUID);
     contaCorrente.Delete();
 }
Ejemplo n.º 8
0
        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();
            }
        }
Ejemplo n.º 9
0
        public override void BeforeSave(bool updating)
        {
            base.BeforeSave(updating);

            #region Conta Corrente
            //-------------------------------------------------------------------------
            // Se a conta corrente for nula, devemos criar uma
            //-------------------------------------------------------------------------
            if(!Settings.InstallingProcess && ContaCorrente.IsNullOrEmpty())
            {
                ContaCorrente = new ContaCorrente();
                ContaCorrente.Tipo = Enuns.Cadastro.Financeiro.TipoContaCorrente.PagarReceber;
                ContaCorrente.Descricao = String.IsNullOrEmpty(RazaoSocial) ?
                    (String.IsNullOrEmpty(NomeFantasia) ? Convert.ToString(EGUID) : NomeFantasia) : RazaoSocial;
                ContaCorrente.Save();
            }
            #endregion
        }