Beispiel #1
0
        //Retorna a vigência específica vigente no DateTime de todas as chaves diferentes
        public List <TEntidade> ConsulteTodos(DateTime vigencia)
        {
            string colunaChave = GSUtilitarios.EncontrePropriedadeChaveDoObjeto(typeof(TEntidade)).Name;

            //{0} = Propriedade/Coluna chave
            //{1} = Propriedades/Colunas com prefixo T1.
            //{2} = Tabela
            string ComandoSQL = String.Format("SELECT T1.{0}, {1} FROM {2} AS T1 " +
                                              "INNER JOIN(SELECT MAX(VIGENCIA) VIGENCIA, {0} FROM {2} WHERE VIGENCIA <= CAST ('{4}' AS DATE) GROUP BY {0}) AS T2 " +
                                              "ON T1.{0} = T2.{0} AND T1.VIGENCIA = T2.VIGENCIA ORDER BY {0}",
                                              colunaChave,
                                              String.Join(",T1.", Colunas.Keys)
                                              .Replace(colunaChave + ",", String.Empty)
                                              .Replace(Colunas.Keys.Last() + ",T1.", String.Empty),
                                              Tabela,
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia));

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

            return(ObtenhaListaObjetosConsultadosVigencia(tabela, vigencia));
        }
        private Interacao MonteRetorno(DataTable tabela, int linha)
        {
            var retorno = new Interacao();

            retorno.Codigo          = int.Parse(tabela.Rows[linha]["CODIGO"].ToString());
            retorno.TipoDeInteracao = (EnumTipoDeInteracao)int.Parse(tabela.Rows[linha]["TIPO"].ToString());
            retorno.Observacao      = tabela.Rows[linha]["OBSERVACOES"] != DBNull.Value
                               ? tabela.Rows[linha]["OBSERVACOES"].ToString()
                               : null;
            retorno.Produto            = new ServicoDeProduto().Consulte(int.Parse(tabela.Rows[linha]["CODIGO_PRODUTO"].ToString()));
            retorno.QuantidadeInterada = int.Parse(tabela.Rows[linha]["QUANTIDADE"].ToString());
            retorno.QuantidadeAuxiliar = tabela.Rows[linha]["QUANTIDADE_AUX"] != DBNull.Value
                                       ? int.Parse(tabela.Rows[linha]["QUANTIDADE_AUX"].ToString())
                                      : new int?();
            retorno.ValorInteracao = decimal.Parse(tabela.Rows[linha]["VALOR"].ToString());
            retorno.AtualizarValorDoProdutoNoCatalogo = GSUtilitarios.ConvertaValorBooleano(tabela.Rows[linha]["ATUALIZARVALORNOCATALOGO"].ToString());
            retorno.Origem = tabela.Rows[linha]["ORIGEM"] != DBNull.Value
                           ? tabela.Rows[linha]["ORIGEM"].ToString()
                           : null;
            retorno.Destino = tabela.Rows[linha]["DESTINO"] != DBNull.Value
                            ? tabela.Rows[linha]["DESTINO"].ToString()
                            : null;
            retorno.Horario      = (DateTime)tabela.Rows[linha]["HORARIO"];
            retorno.NumeroDaNota = tabela.Rows[linha]["NUMERODANOTAFISCAL"].ToString() != "NULL"
                                 ? tabela.Rows[linha]["NUMERODANOTAFISCAL"].ToString()
                                 : null;
            retorno.InformaNumeroDeSerie = GSUtilitarios.ConvertaValorBooleano(tabela.Rows[linha]["INFORMA_NUMERO_DE_SERIE"].ToString());
            retorno.HorarioProgramado    = (DateTime)tabela.Rows[linha]["HORARIO_PROGRAMADO"];

            return(retorno);
        }
        protected string ObtenhaValoresInsercao(TEntidade entidade)
        {
            string valores = string.Empty;
            string dado    = string.Empty;
            string tipoBD  = string.Empty;
            bool   propriedadeEhLista;
            bool   entreApostrofos;

            foreach (var propriedade in entidade.GetType().GetProperties())
            {
                if (propriedade.GetValue(entidade, null) == null && !GSUtilitarios.VerifiqueSePropriedadeEhEntidadeRelacionalUmParaMuitos(propriedade))
                {
                    valores += "NULL, ";
                    continue;
                }

                Type tipoSistema = propriedade.PropertyType;
                propriedadeEhLista = GSUtilitarios.VerifiqueSeTipoEhLista(propriedade.PropertyType);

                if (!propriedadeEhLista)
                {
                    tipoBD = GSUtilitarios.ConvertaTipoDadosAplicacaoBanco(propriedade.GetValue(entidade, null).GetType());
                    dado   = propriedade.GetValue(entidade, null).ToString();

                    entreApostrofos = (tipoBD != "INT" && tipoBD != "DECIMAL") ? true : false;
                    valores        += String.Format("{0}{1}{2}, ",
                                                    entreApostrofos ? "'" : String.Empty,
                                                    !tipoSistema.Equals(typeof(Guid)) ? dado : dado.ToUpper(),
                                                    entreApostrofos ? "'" : String.Empty);
                }
                else
                {
                    if (propriedade.GetValue(entidade, null) == null || (propriedade.GetValue(entidade, null) as IList <dynamic>).Count == 0)
                    {
                        continue;
                    }

                    Type tipoElementos      = GSUtilitarios.ObtenhaTipoLista(propriedade.GetValue(entidade, null) as List <dynamic>);
                    Type tipoChaveElementos = GSUtilitarios.EncontrePropriedadeChaveDoTipo(tipoElementos).PropertyType;

                    //Melhorar isso aqui, colocar um Attribute no objetos, que vai dizer quem é o mapeador dele
                    var servicoMapeadorElementosLista = Activator.CreateInstance(null, Namespaces.MAPEADORES_CONCRETOS + ".Mapeador" + tipoElementos.Name).Unwrap() as IDisposable;

                    foreach (var elemento in propriedade.GetValue(entidade, null) as List <dynamic> )
                    {
                        servicoMapeadorElementosLista.GetType()
                        .GetMethod("Insira", new Type[] { tipoElementos })
                        .Invoke(servicoMapeadorElementosLista, new object[] { elemento });
                    }

                    servicoMapeadorElementosLista.Dispose();
                }
            }

            //Remove a última vírgula
            valores = valores.Trim();
            valores = valores.Remove(valores.Length - 1);

            return(valores);
        }
Beispiel #4
0
        private Produto MonteRetorno(DataTable tabela, int linha)
        {
            var retorno = new Produto();

            retorno.Codigo     = int.Parse(tabela.Rows[linha]["CODIGO"].ToString());
            retorno.Status     = (EnumStatusDoProduto)int.Parse(tabela.Rows[linha]["STATUS"].ToString());
            retorno.Nome       = tabela.Rows[linha]["NOME"].ToString();
            retorno.Fabricante = tabela.Rows[linha]["FABRICANTE"] != DBNull.Value
                                   ? tabela.Rows[linha]["FABRICANTE"].ToString()
                                   : null;
            retorno.CodigoDoFabricante = tabela.Rows[linha]["CODIGOFABRICANTE"] != DBNull.Value
                                                               ? tabela.Rows[linha]["CODIGOFABRICANTE"].ToString()
                                                               : null;
            retorno.PrecoDeCompra       = decimal.Parse(tabela.Rows[linha]["PRECOCOMPRA"].ToString());
            retorno.PrecoDeVenda        = decimal.Parse(tabela.Rows[linha]["PRECOVENDA"].ToString());
            retorno.PorcentagemDeLucro  = decimal.Parse(tabela.Rows[linha]["PORCENTAGEMLUCRO"].ToString());
            retorno.QuantidadeEmEstoque = tabela.Rows[linha]["QUANTIDADEESTOQUE"] != DBNull.Value
                                            ? int.Parse(tabela.Rows[linha]["QUANTIDADEESTOQUE"].ToString())
                                            : 0;
            retorno.AvisarQuantidade          = GSUtilitarios.ConvertaValorBooleano(tabela.Rows[linha]["AVISARQUANTIDADE"].ToString());
            retorno.QuantidadeMinimaParaAviso = int.Parse(tabela.Rows[linha]["QUANTIDADEMINIMAAVISO"].ToString());
            retorno.Observacao = tabela.Rows[linha]["OBSERVACAO"] != DBNull.Value
                                   ? tabela.Rows[linha]["OBSERVACAO"].ToString()
                                   : null;

            return(retorno);
        }
Beispiel #5
0
        public Produto Consulte(int Codigo, DateTime vigencia)
        {
            string ComandoSQL = String.Format("SELECT {0}, PRODUTOS_QUANTIDADES.QUANTIDADE AS QUANTIDADEESTOQUE FROM {1} " +
                                              "INNER JOIN PRODUTOS_QUANTIDADES ON PRODUTOS.CODIGO = PRODUTOS_QUANTIDADES.CODIGO_PRODUTO " +
                                              "WHERE CODIGO = {2} " +
                                              "AND VIGENCIA = (SELECT MAX(VIGENCIA) FROM PRODUTOS WHERE VIGENCIA <= CAST ('{3}' AS DATETIME2))",
                                              Colunas,
                                              Tabela,
                                              Codigo,
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia));

            DataTable tabela;

            try
            {
                using (var GSBancoDeDados = new GSBancoDeDados())
                    tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);

                if (tabela == null)
                {
                    return(null);
                }

                return(MonteRetorno(tabela, 0));
            }
            catch (System.Exception)
            {
                return(null);

                throw;
            }
        }
Beispiel #6
0
        public List <string> ObtenhaConceitosComPortadorVinculados()
        {
            var conceitosComPortador = typeof(TEntidade).GetProperties()
                                       .Where(x => GSUtilitarios.VerifiqueSePropriedadeEhEntidadeRelacionalUmParaMuitos(x));

            var listaRetorno = new List <string>();

            foreach (var conceito in conceitosComPortador)
            {
                Type tipoElementos      = GSUtilitarios.ObtenhaTipoLista(conceito.GetValue(conceito, null) as List <dynamic>);
                Type tipoChaveElementos = GSUtilitarios.EncontrePropriedadeChaveDoTipo(tipoElementos).PropertyType;

                var servicoMapeadorElementosLista = Activator.CreateInstance(null, Namespaces.MAPEADORES_CONCRETOS + ".Mapeador" + tipoElementos.Name).Unwrap() as IDisposable;

                var listaElementos = GSUtilitarios.CrieLista(tipoElementos);

                listaElementos = servicoMapeadorElementosLista.GetType()
                                 .GetMethod("Consulte", new Type[] { tipoElementos, tipoChaveElementos })
                                 .Invoke(servicoMapeadorElementosLista, new object[] { tipoElementos, tipoChaveElementos }) as List <dynamic>;

                servicoMapeadorElementosLista.Dispose();

                if (listaElementos.Count > 0)
                {
                    listaRetorno.Add(tipoElementos.Name);
                }
            }

            return(listaRetorno);
        }
Beispiel #7
0
 private void txtPorcentagemDeLucro_TextChanged(object sender, EventArgs e)
 {
     if (txtPorcentagemDeLucro.Text.All(x => GSUtilitarios.EhDigitoOuPonto(x)))
     {
         return;
     }
     else
     {
         txtPorcentagemDeLucro.Text = txtPorcentagemDeLucro.Text.Trim().Remove(txtPorcentagemDeLucro.Text.Length - 1);
     }
 }
Beispiel #8
0
        public void DefinaLabelsIPs()
        {
            if (SessaoSistema.InformacoesConexao == null)
            {
                SessaoSistema.BusqueConfiguracoesConexaoDoArquivo(DIRETORIO_LOCAL, NOME_ARQUIVO_CONFIGURACOES_BANCO);
            }

            lblIpApp.Text = GSUtilitarios.ObtenhaIPLocal();

            if (SessaoSistema.InformacoesConexao != null)
            {
                lblIpBanco.Text = SessaoSistema.InformacoesConexao.Servidor;
            }
        }
Beispiel #9
0
 private string ObtenhaValoresInsercao(Produto produto)
 {
     return($"{produto.Codigo}, " +
            $"{(int)produto.Status}, " +
            $"'{produto.Nome}', " +
            $"'{produto.Fabricante ?? "NULL"}', " +
            $"'{produto.CodigoDoFabricante ?? "NULL"}', " +
            $"{produto.PrecoDeCompra.ToString(CultureInfo.InvariantCulture)}, " +
            $"{produto.PrecoDeVenda.ToString(CultureInfo.InvariantCulture)}, " +
            $"{produto.PorcentagemDeLucro.ToString(CultureInfo.InvariantCulture)}, " +
            $"'{GSUtilitarios.ConvertaValorBooleano(produto.AvisarQuantidade)}', " +
            $"{produto.QuantidadeMinimaParaAviso}, " +
            $"'{produto.Observacao ?? "NULL"}'");
 }
Beispiel #10
0
        public Interacao CarregueObjetoComControles()
        {
            var interacao = new Interacao();

            interacao.Observacao     = txtObservacoes.Text.Trim();
            interacao.ValorInteracao = GStxtValor.Valor;
            interacao.AtualizarValorDoProdutoNoCatalogo = chkAtualizar.Checked;
            interacao.TipoDeInteracao    = (EnumTipoDeInteracao)cbTipo.SelectedIndex + 1;
            interacao.QuantidadeInterada = !string.IsNullOrEmpty(txtQuantidade.Text.Trim())
                                         ? int.Parse(txtQuantidade.Text.Trim())
                                         : 0;
            interacao.QuantidadeAuxiliar = !string.IsNullOrEmpty(txtQuantidadeAux.Text.Trim())
                                         ? new int?(int.Parse(txtQuantidadeAux.Text.Trim()))
                                         : new int?();
            interacao.Origem            = txtOrigem.Text.Trim();
            interacao.Destino           = txtDestino.Text.Trim();
            interacao.NumeroDaNota      = txtNumeroDaNotaFiscal.Text.Trim();
            interacao.HorarioProgramado = GSUtilitarios.ObtenhaDateTimeCompletoDePickers(dateData, dateHorario);

            var listaDeProdutos = new List <Produto>();

            using (var servicoDeProduto = new ServicoDeProduto())
            {
                listaDeProdutos = servicoDeProduto.ConsulteTodosOsProdutos();
            }

            interacao.Produto = listaDeProdutos.Find(x => x.Nome.Trim() == cbProduto.Text.Trim());

            if (chkInformarNumeroDeSerie.Checked)
            {
                interacao.InformaNumeroDeSerie = true;

                //Carregando números de série
                foreach (var multiTextBox in flpNumerosDeSerie.Controls)
                {
                    var valor = (multiTextBox as GSMultiTextBox).Texto;

                    if (!string.IsNullOrEmpty(valor))
                    {
                        interacao.NumerosDeSerie.Add(valor);
                    }
                }
            }
            else
            {
                interacao.InformaNumeroDeSerie = false;
            }

            return(interacao);
        }
 private string ObtenhaValoresInsercao(Interacao interacao)
 {
     return(string.Format("{0}, CAST ('{1}' AS DATETIME2), {2}, '{3}', {4}, {5}, {6}, '{7}', '{8}', '{9}'",
                          interacao.Codigo,
                          GSUtilitarios.FormateDateTimePtBrParaBD(interacao.Horario),
                          (int)interacao.TipoInteracao,
                          interacao.Descricao ?? "NULL",
                          interacao.Produto.Codigo,
                          interacao.QuantidadeInterada,
                          interacao.ValorInteracao,
                          GSUtilitarios.ConvertaValorBooleano(interacao.AtualizarValorDoProdutoNoCatalogo),
                          interacao.Origem ?? "NULL",
                          interacao.Destino ?? "NULL"));
 }
Beispiel #12
0
        public override void Insira(TEntidade entidade)
        {
            var vigencia = DateTime.UtcNow;

            string ComandoSQL = String.Format("INSERT INTO {0} (VIGENCIA, {1}) VALUES (CAST ('{2}' AS DATE), {3})",
                                              Tabela.ToUpper(),
                                              String.Join(", ", this.Colunas.Keys),
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia),
                                              ObtenhaValoresInsercao(entidade));

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                GSBancoDeDados.ExecuteComando(ComandoSQL);
            }
        }
Beispiel #13
0
        private string ObtenhaStringColunasETiposDadosBD()
        {
            string retorno = String.Empty;

            foreach (var propriedade in Colunas)
            {
                retorno += String.Format("{0} {1}{2}{3}",
                                         propriedade.Key,
                                         GSUtilitarios.ConvertaTipoDadosAplicacaoBanco(propriedade.Value.PropertyType),
                                         propriedade.Value.PropertyType.Equals(typeof(string)) ? "(255)" : String.Empty,
                                         !propriedade.Equals(Colunas.Last()) ? ", " : String.Empty);
            }

            return(retorno);
        }
Beispiel #14
0
        public void Insira(Produto produto)
        {
            var vigencia = DateTime.Now;

            string ComandoSQL = String.Format("INSERT INTO {0} (VIGENCIA, {1}) VALUES (CAST ('{2}' AS DATETIME2), {3})",
                                              Tabela,
                                              Colunas.Replace("QUANTIDADEESTOQUE, ", string.Empty),
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia),
                                              ObtenhaValoresInsercao(produto));

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                GSBancoDeDados.ExecuteComando(ComandoSQL);
            }
        }
        public void Insira(TConceito conceito, DateTime vigencia)
        {
            var comandoSQL =
                $"INSERT INTO {Mapeamento.Tabela} " +
                $"(VIGENCIA, {Mapeamento.Colunas}) " +
                $"VALUES (" +
                $"CAST ('{GSUtilitarios.FormateDateTimePtBrParaBD(vigencia)}' AS DATETIME2)," +
                $"{ObtenhaValoresInsercao(ref conceito)}" +
                $");";

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                GSBancoDeDados.ExecuteComando(comandoSQL);
            }
        }
Beispiel #16
0
        protected string ObtenhaValoresModificacao(TEntidade entidade)
        {
            List <string> valores  = this.Colunas.Keys.ToList();
            int           auxiliar = 0;

            string dado   = string.Empty;
            string tipoBD = string.Empty;
            bool   propriedadeEhLista;
            bool   entreApostrofos;

            foreach (var propriedade in entidade.GetType().GetProperties())
            {
                Type tipoSistema = propriedade.PropertyType;
                propriedadeEhLista = GSUtilitarios.VerifiqueSeTipoEhLista(tipoSistema);

                if (!propriedadeEhLista)
                {
                    tipoBD          = GSUtilitarios.ConvertaTipoDadosAplicacaoBanco(propriedade.GetValue(entidade, null).GetType());
                    dado            = propriedade.GetValue(entidade, null).ToString();
                    entreApostrofos = (tipoBD != "INT" && tipoBD != "DECIMAL") ? true : false;

                    valores[auxiliar] = valores[auxiliar] + String.Format(" = {0}{1}{2}",
                                                                          entreApostrofos ? "'" : String.Empty,
                                                                          dado,
                                                                          entreApostrofos ? "'" : String.Empty);
                }
                else
                {
                    Type tipoElementos      = GSUtilitarios.ObtenhaTipoLista(propriedade.GetValue(entidade, null) as List <dynamic>);
                    Type tipoChaveElementos = GSUtilitarios.EncontrePropriedadeChaveDoTipo(tipoElementos).PropertyType;

                    var servicoMapeadorElementosLista = Activator.CreateInstance(null, Namespaces.MAPEADORES_CONCRETOS + ".Mapeador" + tipoElementos.Name).Unwrap() as IDisposable;

                    foreach (var elemento in dado)
                    {
                        servicoMapeadorElementosLista.GetType()
                        .GetMethod("Modifique", new Type[] { tipoElementos })
                        .Invoke(servicoMapeadorElementosLista, new object[] { elemento });
                    }

                    servicoMapeadorElementosLista.Dispose();
                }

                auxiliar++;
            }

            return(String.Join(", ", valores));
        }
Beispiel #17
0
        //Retorna a última vigência de uma chave específica
        public override TEntidade Consulte(dynamic chave)
        {
            string ComandoSQL = String.Format("SELECT {0} FROM {1} WHERE {2} = {3} AND VIGENCIA = (SELECT MAX(VIGENCIA) FROM {1})",
                                              String.Join(", ", Colunas.Keys),
                                              Tabela.ToUpper(),
                                              GSUtilitarios.EncontrePropriedadeChaveDoObjeto(typeof(TEntidade)).Name,
                                              chave.GetType().Equals(typeof(int)) ? chave : "'" + chave + "'");

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

            return(ObtenhaObjetoConsultado(tabela));
        }
 private string ObtenhaValoresInsercao(Interacao interacao)
 {
     return($"{interacao.Codigo}, " +
            $" CAST ('{GSUtilitarios.FormateDateTimePtBrParaBD(interacao.Horario)}' AS DATETIME2), " +
            $"{(int)interacao.TipoDeInteracao}, " +
            $"'{interacao.Observacao ?? "NULL"}', " +
            $"{interacao.Produto.Codigo}, " +
            $"{interacao.QuantidadeInterada}, " +
            $"{interacao.ValorInteracao.ToString(CultureInfo.InvariantCulture)}, " +
            $"'{GSUtilitarios.ConvertaValorBooleano(interacao.AtualizarValorDoProdutoNoCatalogo)}', " +
            $"'{interacao.Origem ?? "NULL"}', " +
            $"'{interacao.Destino ?? "NULL"}', " +
            $"'{interacao.NumeroDaNota ?? "NULL"}', " +
            $"'{GSUtilitarios.ConvertaValorBooleano(interacao.InformaNumeroDeSerie)}', " +
            $"{(interacao.QuantidadeAuxiliar.HasValue ? interacao.QuantidadeAuxiliar.Value.ToString() : "NULL")}, " +
            $" CAST('{GSUtilitarios.FormateDateTimePtBrParaBD(interacao.Horario)}' AS DATETIME2)");
 }
 private string ObtenhaValoresInsercao(Produto produto)
 {
     return(string.Format("{0}, {1}, '{2}', '{3}', '{4}', '{5}', {6}, {7}, {8}, {9}, '{10}', {11}, '{12}'",
                          produto.Codigo,
                          (int)produto.Status,
                          produto.Nome,
                          produto.Descricao ?? "NULL",
                          produto.Fabricante ?? "NULL",
                          produto.CodigoDoFabricante ?? "NULL",
                          produto.PrecoDeCompra,
                          produto.PrecoDeVenda,
                          produto.PorcentagemDeLucro,
                          produto.QuantidadeEmEstoque,
                          GSUtilitarios.ConvertaValorBooleano(produto.AvisarQuantidade),
                          produto.QuantidadeMinimaParaAviso,
                          produto.Observacao ?? "NULL"));
 }
Beispiel #20
0
        //Retorna a vigência específica ou vigente no DateTime de uma chave específica
        public virtual TEntidade Consulte(dynamic chave, DateTime vigencia)
        {
            string ComandoSQL = String.Format("SELECT {0} FROM {1} WHERE CODIGO = {2} AND VIGENCIA = SELECT MAX(VIGENCIA) FROM {1} WHERE VIGENCIA <= CAST ('{3}' AS DATE)",
                                              String.Join(", ", Colunas.Keys),
                                              Tabela.ToUpper(),
                                              chave.GetType().Equals(typeof(int)) ? chave : "'" + chave + "'",
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia));

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

            return(ObtenhaObjetoConsultadoVigencia(tabela, vigencia));
        }
Beispiel #21
0
        private void CarregueDataGridProdutos(List <Produto> listaDeProdutos)
        {
            dgvProdutos.Rows.Clear();

            foreach (var produto in listaDeProdutos)
            {
                dgvProdutos.Rows.Add(produto.Codigo,
                                     produto.CodigoDoFabricante,
                                     produto.Status,
                                     produto.Nome,
                                     produto.Observacao,
                                     GSUtilitarios.FormateDecimalParaStringMoedaReal(produto.PrecoDeCompra),
                                     GSUtilitarios.FormateDecimalParaStringMoedaReal(produto.PrecoDeVenda),
                                     produto.QuantidadeEmEstoque);
            }

            dgvProdutos.Refresh();
        }
        //Retorna a vigência vigente na data específica de todas as chaves diferentes de um portador
        public List <TEntidade> Consulte(Type portador, dynamic chavePortador, DateTime vigencia)
        {
            var tipoPortador       = portador.Name;
            var colunaChave        = GSUtilitarios.EncontrePropriedadeChaveDoTipo(typeof(TEntidade));
            var colunasConsultadas = String.Join(",T1.", Colunas.Keys)
                                     .Replace(chavePortador + ",", String.Empty)
                                     .Replace(Colunas.Keys.Last() + ",T1.", String.Empty);


            //{0} = Tabela
            //{1} = Propriedade/Coluna chave
            //{2} = Tipo portador
            //{3} = Chave portador
            //{4} = Propriedades/Colunas consultadas com prefixo T1
            //{5} = Vigência
            string ComandoSQL = String.Format("SELECT {4} FROM ENDERECOS AS T1 " +
                                              "INNER JOIN(SELECT MAX(VIGENCIA) VIGENCIA, {1} FROM {0} WHERE VIGENCIA <= CAST ('{5}' AS DATE) GROUP BY {1}, TIPO_PORTADOR) AS T2 " +
                                              "ON T1.{1} = T2.{1} AND T1.VIGENCIA = T2.VIGENCIA " +
                                              "WHERE T1.TIPO_PORTADOR = '{2}' AND T1.CODIGO_PORTADOR = '{3}' " +
                                              "ORDER BY CODIGO_PORTADOR, CODIGO",
                                              Tabela,
                                              colunaChave,
                                              tipoPortador,
                                              chavePortador,
                                              colunasConsultadas,
                                              vigencia);

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

            if (tabela == null)
            {
                return(null);
            }

            return(ObtenhaListaObjetosConsultados(tabela));
        }
        public TConceito Consulte(int codigo, DateTime vigencia)
        {
            var comandoSQL =
                $"SELECT {Mapeamento.Colunas} " +
                $"FROM {Mapeamento.Tabela} " +
                $"WHERE CODIGO = {codigo} " +
                $"  AND VIGENCIA = (SELECT MAX(VIGENCIA) " +
                $"                  FROM {Mapeamento.Tabela} " +
                $"                  WHERE VIGENCIA <= CAST ('{GSUtilitarios.FormateDateTimePtBrParaBD(vigencia)}' AS DATETIME2))";

            using (var persistencia = new GSBancoDeDados())
            {
                var tabela = persistencia.ExecuteConsulta(comandoSQL);
                if (tabela == null)
                {
                    return(null);
                }

                return(Mapeamento.MonteConceito(ref tabela, 0));
            }
        }
        /// <summary>
        /// Busca as informações de conexão com o banco de dados do arquivo no diretório especificado.
        /// </summary>
        /// <returns>As informações de conexão com o banco</returns>
        public static InformacoesConexaoBanco BusqueConfiguracoesConexaoDoArquivo(string diretorio, string nomeArquivo)
        {
            if (File.Exists(diretorio + nomeArquivo))
            {
                string texto = File.ReadAllText(diretorio + nomeArquivo);
                texto = texto.Replace("\r\n", String.Empty);
                string[] textoDividido = texto.Split('|');

                return(new InformacoesConexaoBanco()
                {
                    Servidor = textoDividido[0],
                    NomeBanco = GSUtilitarios.ApliqueCriptografiaBasica(textoDividido[1],
                                                                        EnumCriptografiaBasica.Desencriptar),
                    Usuario = GSUtilitarios.ApliqueCriptografiaBasica(textoDividido[2],
                                                                      EnumCriptografiaBasica.Desencriptar),
                    Senha = GSUtilitarios.ApliqueCriptografiaBasica(textoDividido[3],
                                                                    EnumCriptografiaBasica.Desencriptar)
                });
            }

            return(null);
        }
        /// <summary>
        /// Salva as informações de conexão com o banco de dados no arquivo no diretório especificado.
        /// </summary>
        public static void SalveConfiguracoesConexaoNoArquivo(InformacoesConexaoBanco informacoesConexaoBanco, string diretorio, string nomeArquivo)
        {
            //diretorio = diretorio.Remove(diretorio.Length - 1);

            if (File.Exists(diretorio + nomeArquivo))
            {
                File.Delete(diretorio + nomeArquivo);
            }

            using (var writer = new StreamWriter(diretorio + nomeArquivo, true))
            {
                writer.WriteLine(String.Format("{0}|{1}|{2}|{3}",
                                               informacoesConexaoBanco.Servidor,

                                               GSUtilitarios.ApliqueCriptografiaBasica(informacoesConexaoBanco.NomeBanco,
                                                                                       EnumCriptografiaBasica.Encriptar),
                                               GSUtilitarios.ApliqueCriptografiaBasica(informacoesConexaoBanco.Usuario,
                                                                                       EnumCriptografiaBasica.Encriptar),
                                               GSUtilitarios.ApliqueCriptografiaBasica(informacoesConexaoBanco.Senha,
                                                                                       EnumCriptografiaBasica.Encriptar)));
            }
        }
Beispiel #26
0
        //Todos os produtos em uma vigência específica
        public List <Produto> ConsulteTodos(DateTime vigencia)
        {
            string ComandoSQL = String.Format("SELECT T1.{0}, {1} FROM {2} AS T1 " +
                                              "INNER JOIN(SELECT MAX(VIGENCIA) VIGENCIA, {0} FROM {2} WHERE VIGENCIA <= CAST ('{4}' AS DATETIME2) GROUP BY {0}) AS T2 " +
                                              "ON T1.{0} = T2.{0} AND T1.VIGENCIA = T2.VIGENCIA ORDER BY {0}",
                                              "CODIGO",
                                              Colunas.Replace(", ", ", T1.")
                                              .Replace("CODIGO, ", string.Empty),
                                              Tabela,
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia));

            DataTable tabela;

            try
            {
                using (var GSBancoDeDados = new GSBancoDeDados())
                    tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);

                if (tabela == null)
                {
                    return(null);
                }

                var listaRetorno = new List <Produto>();
                for (int linha = 0; linha < tabela.Rows.Count; linha++)
                {
                    listaRetorno.Add(MonteRetorno(tabela, linha));
                }

                return(listaRetorno);
            }
            catch (System.Exception)
            {
                return(null);

                throw;
            }
        }
        private Interacao MonteRetorno(DataTable tabela, int linha)
        {
            var retorno = new Interacao();

            retorno.Codigo        = int.Parse(tabela.Rows[linha]["CODIGO"].ToString());
            retorno.TipoInteracao = (EnumTipoInteracao)int.Parse(tabela.Rows[linha]["TIPO"].ToString());
            retorno.Descricao     = tabela.Rows[linha]["DESCRICAO"] != DBNull.Value
                              ? tabela.Rows[linha]["DESCRICAO"].ToString()
                              : null;
            retorno.Produto            = new ServicoDeProduto().Consulte(int.Parse(tabela.Rows[linha]["CODIGO_PRODUTO"].ToString()));
            retorno.QuantidadeInterada = int.Parse(tabela.Rows[linha]["QUANTIDADE"].ToString());
            retorno.ValorInteracao     = decimal.Parse(tabela.Rows[linha]["VALOR"].ToString());
            retorno.AtualizarValorDoProdutoNoCatalogo = GSUtilitarios.ConvertaValorBooleano(tabela.Rows[linha]["ATUALIZARVALORNOCATALOGO"].ToString());
            retorno.Origem = tabela.Rows[linha]["ORIGEM"] != DBNull.Value
                           ? tabela.Rows[linha]["ORIGEM"].ToString()
                           : null;
            retorno.Destino = tabela.Rows[linha]["DESTINO"] != DBNull.Value
                            ? tabela.Rows[linha]["DESTINO"].ToString()
                            : null;
            retorno.Horario = (DateTime)tabela.Rows[linha]["HORARIO"];

            return(retorno);
        }
Beispiel #28
0
        public static void AjusteTextBoxMonetaria(ref TextBox textBox)
        {
            if (!textBox.Text.All(x => GSUtilitarios.EhDigitoOuPonto(x)))
            {
                textBox.Text = string.Empty;
                return;
            }

            string numero = string.Empty;
            double valor  = 0;

            try
            {
                numero = textBox.Text.Replace(",", string.Empty)
                         .Replace(".", string.Empty);

                if (numero == string.Empty)
                {
                    return;
                }

                numero.PadLeft(3, '0');

                if (numero.Length > 3 && numero.Substring(0, 1) == "0")
                {
                    numero = numero.Substring(1, numero.Length - 1);
                }

                valor                  = Convert.ToDouble(numero) / 100;
                textBox.Text           = string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:N}", valor);
                textBox.SelectionStart = textBox.Text.Length;
            }
            catch (Exception)
            {
                throw new Exception("Ocorreu um erro na formatação monetária.");
            }
        }
Beispiel #29
0
        private void CarregueDataGridInteracoes(List <Interacao> listaDeInteracoes)
        {
            dgvHistorico.Rows.Clear();

            foreach (var interacao in listaDeInteracoes)
            {
                var indice = interacao.Horario.ToString(Cultura).Length - 3;

                dgvHistorico.Rows.Add(interacao.Codigo,
                                      interacao.HorarioProgramado.ToString(Cultura)
                                      .Remove(indice, 3),
                                      GSUtilitarios.ConvertaEnumeradorParaString(interacao.TipoDeInteracao),
                                      interacao.Produto.Nome,
                                      interacao.Observacao,
                                      interacao.QuantidadeInterada,
                                      GSUtilitarios.FormateDecimalParaStringMoedaReal(interacao.ValorInteracao),
                                      interacao.Origem,
                                      interacao.Destino);

                if (interacao.TipoDeInteracao == EnumTipoDeInteracao.ENTRADA)
                {
                    dgvHistorico.Rows[dgvHistorico.Rows.Count - 1].DefaultCellStyle.BackColor = Color.LightBlue;
                }

                if (interacao.TipoDeInteracao == EnumTipoDeInteracao.SAIDA)
                {
                    dgvHistorico.Rows[dgvHistorico.Rows.Count - 1].DefaultCellStyle.BackColor = Color.LightPink;
                }

                if (interacao.TipoDeInteracao == EnumTipoDeInteracao.BASE_DE_TROCA)
                {
                    dgvHistorico.Rows[dgvHistorico.Rows.Count - 1].DefaultCellStyle.BackColor = Color.LightGreen;
                }
            }
            dgvHistorico.Refresh();
        }
Beispiel #30
0
        //Retorna uma lista de todas as vigências existentes para uma chave
        public List <DateTime> ConsulteTodasVigencias(dynamic chave)
        {
            string ComandoSQL = String.Format("SELECT VIGENCIA FROM {0} WHERE {1} = {2} ORDER BY VIGENCIA DESC",
                                              Tabela.ToUpper(),
                                              GSUtilitarios.EncontrePropriedadeChaveDoObjeto(typeof(TEntidade)).Name,
                                              chave.GetType().Equals(typeof(int)) ? chave : "'" + chave + "'");

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

            var listaRetorno = new List <DateTime>();

            for (int linha = 0; linha < tabela.Rows.Count; linha++)
            {
                var dado = tabela.Rows[linha]["VIGENCIA"];
                listaRetorno.Add(GSUtilitarios.FormateDateTimePtBrParaBD(dado.ToString()));
            }

            return(listaRetorno);
        }