public override void Editar() { var usuario = new Usuario(GUID) { NomeLogin = "******" }; usuario.TiposUsuarios.RemoveAt(2); usuario.Save(); }
public override void Gravar() { #region Pessoa Física 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<IEstado>(new Where { Limit = new Limit(1) })[0]; fisica.RGOrgao = "SSPPR"; fisica.RGTipoVisto = ""; fisica.Sexo = Enuns.Cadastro.Pessoa.Sexo.Masculino; #endregion #region Pessoa jurídica 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; #endregion IUsuario usuario = new Usuario() { FisicaJuridica = Enuns.Cadastro.Pessoa.FisicaJuridica.Juridica, Enderecos = new List<Model.Cadastro.Pessoa.IEndereco>(new OpenPOS.Data.Cadastro.Pessoa.Endereco().Find<Model.Cadastro.Pessoa.IEndereco>(new Where { Limit = new Limit(1) })), Juridica = juridica, NomeFantasia = "Usuário", Observacao = "teste unitario", RazaoSocial = "Teste", NomeLogin = "******", Senha = "Senha12345", SenhaAlteracao = DateTime.Now, MultiploLogin = true, Logado = true, }; #region Canais de comunicação usuario.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 Tipos de usuários usuario.TiposUsuarios.Add(new OpenPOS.Data.Cadastro.TipoUsuario().Find<ITipoUsuario>(new Where { Limit = new Limit(1) })[0]); usuario.TiposUsuarios.Add(new OpenPOS.Data.Cadastro.TipoUsuario().Find<ITipoUsuario>(new Where { Limit = new Limit(2) })[1]); usuario.TiposUsuarios.Add(new OpenPOS.Data.Cadastro.TipoUsuario().Find<ITipoUsuario>(new Where { Limit = new Limit(3) })[2]); #endregion GUID = usuario.Save(); }
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(); } }