Exemple #1
0
        public override void Gravar()
        {
            #region Tributo
            TributoTest tributoTest = new TributoTest();
            tributoTest.Gravar();

            ITributo tributo = new Tributo(tributoTest.GUID);

            IList<IAliquotaTributo> tributosAliquotas = new List<IAliquotaTributo>();
            tributosAliquotas.Add(tributo.Aliquotas[0]);

            IAliquotaTributo aliquotaTributo = new AliquotaTributo(tributosAliquotas[0].GUID);
            #endregion

            #region Impressora
            ImpressoraTest impressoraTest = new ImpressoraTest();
            impressoraTest.Gravar();

            IImpressora impressora = new Impressora(impressoraTest.GUID);
            #endregion

            IAliquota aliquota = new Aliquota();
            aliquota.TributoAliquota = aliquotaTributo;
            aliquota.Impressora = impressora;
            aliquota.Aliquota = 18.50;
            aliquota.Indice = "T18,50";
            GUID = aliquota.Save();
        }
Exemple #2
0
 public override void Editar()
 {
     IAliquota aliquota = new Aliquota(GUID);
     aliquota.Aliquota = 18.00;
     aliquota.Indice = "T18,00";
     aliquota.Save();
 }
Exemple #3
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();
            }
        }
Exemple #4
0
 public override void Popular()
 {
     IAliquota aliquota = new Aliquota(GUID);
     DumpElement(aliquota);
 }
Exemple #5
0
 public override void Excluir()
 {
     IAliquota aliquota = new Aliquota(GUID);
     aliquota.Delete();
 }
Exemple #6
0
        /// <summary>
        /// Ao clicar no botão OK
        /// </summary>
        /// <param name="sender">Objeto que disparou o evento</param>
        /// <param name="e">Argumento do evento gerado</param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (!confECF.Validate())
                return;

            Wait.Show();

            try
            {
                //Percorre os itens da grid, para pegar as alíquotas do ECF, para poder vincular
                foreach (object[] aliquota in confECF.ItensGrid)
                {
                    string guidAliquota = aliquota[3].ToString();
                    string indice = aliquota[1].ToString().Trim();
                    IAliquota aliq = new Aliquota();

                    //Se existir uma alíquota do tributo, faz o vínculo salvando a alíquota
                    if (!String.IsNullOrEmpty(guidAliquota))
                    {
                        IList<IAliquota> aliquotasVinculadas = new Aliquota().Find<IAliquota>(new Where
                        {
                            {
                                "ecf_aliquota.guidimpressora = @guidimp",
                                new Parameter
                                {
                                    ParameterName = "@guidimp",
                                    Value = Settings.ECF.ECFAtual.GUID.ToString()
                                }
                            },
                            {
                                "ecf_aliquota.indice = @indice",
                                new Parameter
                                {
                                    ParameterName = "@indice",
                                    Value = indice
                                }

                            }
                        });

                        // se já existe aliquotas vinculadas
                        if (aliquotasVinculadas.Count > 0)
                        {
                            // Deletar todas as aliquotas vinculadas
                            foreach (IAliquota item in aliquotasVinculadas)
                            {
                                aliq = new Aliquota(item.GUID);
                                aliq.Delete();
                            }
                        }
                        //Após deletar todas as aliquotas, salvamos(vinculamos) novamente
                        aliq.TributoAliquota = new AliquotaTributo((GUID)guidAliquota);
                        aliq.Impressora = Settings.ECF.ECFAtual;
                        aliq.Indice = aliquota[1].ToString();
                        aliq.Aliquota = Unimake.Convert.ToDouble(aliq.TributoAliquota.Valor);
                        aliq.Save();
                    }
                }

                MessageBox.Show("Alíquotas vinculadas com sucesso.");
            }
            catch (Exception ex)
            {
                MessageBox.ShowError(ex, false);
                Wait.Close();
            }

            Wait.Close();
        }
Exemple #7
0
        /// <summary>
        /// Popula a grid com as alíquotas cadastradas na impressora fiscal
        /// </summary>
        private void Populate()
        {
            Wait.Show();

            IList<object[]> sourceVinculo = new List<object[]>();
            IList<object[]> sourceVinculado = new List<object[]>();

            IList<IAliquotaTributo> aliqTributos = new AliquotaTributo().Find<IAliquotaTributo>();

            IList<IAliquota> aliquotas = new Aliquota().Find<IAliquota>(new Where
            {
                { "ecf_aliquota.guidimpressora = @guid",
                    new Parameter
                    {
                        ParameterName = "@guid",
                        Value = Settings.ECF.ECFAtual.GUID.ToString()
                    }
                }
            });

            try
            {
                //Acessando a impressora fiscal para buscar quais as alíquotas cadastradas
                using (IConfiguracao conf = new Configuracao(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta))
                {
                    var aliquotasECF = (from a in conf.LerAliquotas()
                                        select a);

                    foreach (ACBrFramework.ECF.Aliquota item in aliquotasECF)
                    {
                        IAliquota aliquota = aliquotas.FirstOrDefault(f => f.Indice.ToString().Trim().Equals(item.Indice));

                        if (item.Tipo.Equals("T"))
                        {
                            sourceVinculo.Add(new object[]
                            {
                                aliquota == null ? "" : aliquota.TributoAliquota.GUID.ToString(),
                                item.Indice,
                                string.Format("T{0:0000}", item.ValorAliquota.ToString("00.00")),
                            });
                        }
                        else
                        {
                            sourceVinculo.Add(new object[]
                            {
                                aliquota == null ? "" : aliquota.TributoAliquota.GUID.ToString(),
                                item.Indice,
                                string.Format("S{0:0000}", item.ValorAliquota.ToString("00.00")),
                            });
                        }
                    }

                    foreach (IAliquotaTributo aliqTrib in aliqTributos)
                    {
                        sourceVinculado.Add(new object[]
                        {
                            aliqTrib.GUID.ToString(),
                            aliqTrib.Valor.ToString()
                        });
                    }
                }

                //Popula a grid com as alíquotas do ECF e as que serão vinculadas
                confECF.PopulateGrid(sourceVinculo, sourceVinculado);
            }
            catch (Exception ex)
            {
                MessageBox.ShowError(ex, false);
            }
            Wait.Close();
        }
Exemple #8
0
        /// <summary>
        /// Desvincula a aliquota selecionada
        /// </summary>
        /// <param name="sender">Objeto que disparou o evento</param>
        /// <param name="e">Argumentos do obejto gerado</param>
        private void GrdMain_DeleteClick(object sender, DataGridViewCellCancelEventArgs e)
        {
            //Percorre a linha selecionada da grid para poder desvincular a aliquota
            foreach (DataGridViewRow row in confECF.GrdMain.SelectedRows)
            {
                string aliquota = row.Cells[3].Value.ToString();

                if (!String.IsNullOrEmpty(aliquota))
                {
                    //Pesquisa se a aliquota selecionada está vinculada
                    IList<IAliquota> aliquotas = new Aliquota().Find<IAliquota>(new Where
                    {
                        { "ecf_aliquota.guidimpressora = @guidimp",
                            new Parameter
                            {
                                ParameterName = "@guidimp",
                                Value = Settings.ECF.ECFAtual.GUID.ToString()
                            }
                        },
                        {
                            "ecf_aliquota.guidtributoaliquota = @guidTrib",
                            new Parameter
                            {
                                ParameterName = "@guidTrib",
                                Value = aliquota
                            }
                        }
                    });

                    //Se já possuem aliquotas vinculadas
                    if (aliquotas.Count > 0)
                    {
                        //Deletar todas as aliquotas vinculadas para esse índice da alíquota da impressora fiscal
                        foreach (IAliquota fi in aliquotas)
                        {
                            Aliquota ali = new Aliquota(fi.GUID);
                            ali.Delete();
                        }
                        //Limpar o campo da coluna vinculada
                        row.Cells[3].Value = "";
                    }
                }
            }
        }