示例#1
0
        public Atualizacao Sincronizar(List <string> atualizacoes, DateTime ultimaSincronizacao, string identificacao)
        {
            BancoDeDados bd = new BancoDeDados();

            try
            {
                if (bd.BeginTransaction())
                {
                    foreach (string sql in atualizacoes)
                    {
                        NpgsqlCommand comando = new NpgsqlCommand(sql);
                        bd.NonQuery(comando);
                    }

                    Atualizacao atualizacao = new Atualizacao();
                    bool        buscarIds   = false;

                    #region Identificacao
                    NpgsqlCommand command = new NpgsqlCommand("SELECT id FROM celular WHERE identificacao = '" + identificacao + "'");
                    DataSet       ds      = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    DataTableReader dtr = ds.CreateDataReader();

                    if (dtr.Read())
                    {
                        atualizacao.idCelular = dtr.GetInt32(0);
                        if (ultimaSincronizacao.Ticks == 0)
                        {
                            buscarIds = true;
                        }
                    }
                    else
                    {
                        command = new NpgsqlCommand("INSERT INTO celular(identificacao) VALUES ('" + identificacao + "')");
                        bd.NonQuery(command);
                        command = new NpgsqlCommand("SELECT id FROM celular WHERE identificacao = '" + identificacao + "'");
                        ds      = bd.Query(command);
                        if (ds == null)
                        {
                            return(null);
                        }
                        dtr = ds.CreateDataReader();
                        dtr.Read();
                        atualizacao.idCelular = dtr.GetInt32(0);
                    }
                    #endregion

                    #region Cliente
                    command = new NpgsqlCommand(@"SELECT id, nome, cpf, rua, numero, bairro, cidade, uf, cep, complemento, telefone, email, ativo, alteracao 
FROM cliente WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <ClienteWS> clientes = new List <ClienteWS>();

                    while (dtr.Read())
                    {
                        clientes.Add(new ClienteWS()
                        {
                            Id          = dtr.GetString(0),
                            Nome        = dtr.GetString(1),
                            Cpf         = dtr.GetString(2),
                            Rua         = dtr.GetString(3),
                            Numero      = dtr.GetString(4),
                            Bairro      = dtr.GetString(5),
                            Cidade      = dtr.GetString(6),
                            Uf          = dtr.GetString(7),
                            Cep         = (dtr.IsDBNull(8) || string.IsNullOrWhiteSpace(dtr.GetString(8))) ? null : dtr.GetString(8),
                            Complemento = (dtr.IsDBNull(9) || string.IsNullOrWhiteSpace(dtr.GetString(9))) ? null : dtr.GetString(9),
                            Telefone    = (dtr.IsDBNull(10) || string.IsNullOrWhiteSpace(dtr.GetString(10))) ? null : dtr.GetString(10),
                            Email       = (dtr.IsDBNull(11) || string.IsNullOrWhiteSpace(dtr.GetString(11))) ? null : dtr.GetString(11),
                            Ativo       = dtr.GetBoolean(12)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(13))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(13);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int      id  = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdCliente == null || atualizacao.maxIdCliente < id))
                            {
                                atualizacao.maxIdCliente = id;
                            }
                        }
                    }

                    atualizacao.clientes = clientes;
                    #endregion

                    #region Produto
                    command = new NpgsqlCommand(@"SELECT id, nome, estoque, valor, ativo, alteracao 
FROM produto WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <ProdutoWS> produtos = new List <ProdutoWS>();

                    while (dtr.Read())
                    {
                        produtos.Add(new ProdutoWS()
                        {
                            Id      = dtr.GetInt32(0),
                            Nome    = dtr.GetString(1),
                            Estoque = dtr.GetDecimal(2),
                            Valor   = dtr.GetDecimal(3),
                            Ativo   = dtr.GetBoolean(4)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(5))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(5);
                        }
                    }

                    atualizacao.produtos = produtos;
                    #endregion

                    #region Pedido
                    command = new NpgsqlCommand(@"SELECT id, id_cliente, id_vendedor, valor, data_emissao, data_pagamento, observacoes, alteracao 
FROM pedido WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <PedidoWS> pedidos = new List <PedidoWS>();

                    while (dtr.Read())
                    {
                        pedidos.Add(new PedidoWS()
                        {
                            Id            = dtr.GetString(0),
                            IdCliente     = dtr.GetString(1),
                            IdVendedor    = dtr.GetInt32(2),
                            Valor         = dtr.GetDecimal(3),
                            DataEmissao   = dtr.GetDateTime(4),
                            DataPagamento = dtr.GetDateTime(5),
                            Observacoes   = dtr.GetString(6)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(7))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(7);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int      id  = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdPedido == null || atualizacao.maxIdPedido < id))
                            {
                                atualizacao.maxIdPedido = id;
                            }
                        }
                    }

                    atualizacao.pedidos = pedidos;
                    #endregion

                    #region Produtos Pedido
                    command = new NpgsqlCommand(@"SELECT id, id_pedido, id_produto, valor, quantidade, quantidade_entregue, alteracao 
FROM produto_pedido WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <ProdutoPedidoWS> produtospedido = new List <ProdutoPedidoWS>();

                    while (dtr.Read())
                    {
                        produtospedido.Add(new ProdutoPedidoWS()
                        {
                            Id                 = dtr.GetString(0),
                            IdPedido           = dtr.GetString(1),
                            IdProduto          = dtr.GetInt32(2),
                            Valor              = dtr.GetDecimal(3),
                            Quantidade         = dtr.GetDecimal(4),
                            QuantidadeEntregue = dtr.GetDecimal(5)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(6))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(6);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int      id  = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdProdutoPedido == null || atualizacao.maxIdProdutoPedido < id))
                            {
                                atualizacao.maxIdProdutoPedido = id;
                            }
                        }
                    }

                    atualizacao.produtospedido = produtospedido;
                    #endregion

                    #region Receber
                    command = new NpgsqlCommand(@"SELECT id, id_pedido, ordem, valor, vencimento, pagamento, alteracao 
FROM receber WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <ReceberWS> receber = new List <ReceberWS>();

                    while (dtr.Read())
                    {
                        receber.Add(new ReceberWS()
                        {
                            Id         = dtr.GetString(0),
                            IdPedido   = dtr.GetString(1),
                            Ordem      = dtr.GetInt32(2),
                            Valor      = dtr.GetDecimal(3),
                            Vencimento = dtr.GetDateTime(4),
                            Pagamento  = dtr.GetDateTime(5),
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(6))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(6);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int      id  = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdReceber == null || atualizacao.maxIdReceber < id))
                            {
                                atualizacao.maxIdReceber = id;
                            }
                        }
                    }

                    atualizacao.receber = receber;
                    #endregion

                    #region Anotacao
                    command = new NpgsqlCommand(@"SELECT id, id_pedido, data, data_ultima_alteracao, texto, alteracao 
FROM anotacao WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <AnotacaoWS> anotacoes = new List <AnotacaoWS>();

                    while (dtr.Read())
                    {
                        anotacoes.Add(new AnotacaoWS()
                        {
                            Id                  = dtr.GetString(0),
                            IdPedido            = dtr.GetString(1),
                            Data                = dtr.GetDateTime(2),
                            DataUltimaAlteracao = dtr.GetDateTime(3),
                            Texto               = dtr.GetString(4)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(5))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(5);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int      id  = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdAnotacao == null || atualizacao.maxIdAnotacao < id))
                            {
                                atualizacao.maxIdAnotacao = id;
                            }
                        }
                    }

                    atualizacao.anotacoes = anotacoes;
                    #endregion

                    #region Vendedor
                    command = new NpgsqlCommand(@"SELECT id, nome, alteracao 
FROM vendedor WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null)
                    {
                        return(null);
                    }
                    dtr = ds.CreateDataReader();
                    List <VendedorWS> vendedores = new List <VendedorWS>();

                    while (dtr.Read())
                    {
                        vendedores.Add(new VendedorWS()
                        {
                            Id   = dtr.GetInt32(0),
                            Nome = dtr.GetString(1)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(2))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(2);
                        }
                    }

                    atualizacao.vendedores = vendedores;
                    #endregion

                    if (bd.CommitTransaction())
                    {
                        return(atualizacao);
                    }
                    else
                    {
                        bd.RollbackTransaction();
                    }
                }
            }catch (Exception)
            {
                bd.RollbackTransaction();
            }
            return(null);
        }
        /// <summary>
        /// Metodo con el cual se obtiene la infor referente a un reporte especifico
        /// </summary>
        /// <param name="Conexion">Cadena de conexion con la base de datos</param>
        /// <param name="IDReporte">identiicaador del reporte</param>
        /// <returns></returns>
        public ReporteConsumoMaterial ObtenerDetalleReporteConsumoMaterial(string Conexion, int IDReporte)
        {
            try
            {
                ReporteConsumoMaterial Resultado = new ReporteConsumoMaterial();
                DataSet Ds = SqlHelper.ExecuteDataset(Conexion, "Reportes.spCSLDB_get_ReporteConsumoMaterialXID", IDReporte);
                if (Ds != null)
                {
                    if (Ds.Tables.Count == 2)
                    {
                        DataTableReader Dr = Ds.Tables[0].CreateDataReader();
                        while (Dr.Read())
                        {
                            Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("fechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaInicio")) : DateTime.MinValue;
                            Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("fechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaFin")) : DateTime.MinValue;
                            Resultado.Sucursal    = !Dr.IsDBNull(Dr.GetOrdinal("Sucursal")) ? Dr.GetString(Dr.GetOrdinal("Sucursal")) : string.Empty;
                            break;
                        }
                        Dr.Close();

                        List <ReporteConsumoMaterialDetalle> Lista = new List <ReporteConsumoMaterialDetalle>();
                        ReporteConsumoMaterialDetalle        Item;
                        DataTableReader Dr2 = Ds.Tables[1].CreateDataReader();
                        while (Dr2.Read())
                        {
                            Item                = new ReporteConsumoMaterialDetalle();
                            Item.Tipo           = !Dr2.IsDBNull(Dr2.GetOrdinal("Tipo")) ? Dr2.GetInt32(Dr2.GetOrdinal("Tipo")) :0;
                            Item.IDGeneral      = !Dr2.IsDBNull(Dr2.GetOrdinal("IDGeneral")) ? Dr2.GetString(Dr2.GetOrdinal("IDGeneral")) : string.Empty;
                            Item.Nombre         = !Dr2.IsDBNull(Dr2.GetOrdinal("Nombre")) ? Dr2.GetString(Dr2.GetOrdinal("Nombre")) : string.Empty;
                            Item.IDProducto     = !Dr2.IsDBNull(Dr2.GetOrdinal("IDProducto")) ? Dr2.GetString(Dr2.GetOrdinal("IDProducto")) : string.Empty;
                            Item.NombreProducto = !Dr2.IsDBNull(Dr2.GetOrdinal("Producto")) ? Dr2.GetString(Dr2.GetOrdinal("Producto")) : string.Empty;
                            Item.Clave          = !Dr2.IsDBNull(Dr2.GetOrdinal("Clave")) ? Dr2.GetString(Dr2.GetOrdinal("Clave")) : string.Empty;
                            Item.Fecha          = !Dr2.IsDBNull(Dr2.GetOrdinal("Fecha")) ? Dr2.GetDateTime(Dr2.GetOrdinal("Fecha")) : DateTime.MinValue;
                            Item.Produccion     = !Dr2.IsDBNull(Dr2.GetOrdinal("Produccion")) ? Dr2.GetBoolean(Dr2.GetOrdinal("Produccion")) : false;
                            Item.CumpleMetrica  = !Dr2.IsDBNull(Dr2.GetOrdinal("CumpleMetrica")) ? Dr2.GetBoolean(Dr2.GetOrdinal("CumpleMetrica")) : false;
                            Lista.Add(Item);
                        }
                        Dr2.Close();

                        Resultado.Detalle  = Lista;
                        Resultado.Completo = true;
                    }
                }
                return(Resultado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        public Vales ObtenerValeDetalleCorreos(Vales Datos)
        {
            try
            {
                Vales   Resultado = new Vales();
                DataSet Ds        = SqlHelper.ExecuteDataset(Datos.Conexion, "spCSLDB_get_ValesEnvioCorreos", Datos.IDVale);
                if (Ds != null)
                {
                    if (Ds.Tables.Count == 2)
                    {
                        DataTableReader Dr = Ds.Tables[0].CreateDataReader();
                        while (Dr.Read())
                        {
                            Resultado.IDVale          = !Dr.IsDBNull(Dr.GetOrdinal("id_vale")) ? Dr.GetString(Dr.GetOrdinal("id_vale")) : string.Empty;
                            Resultado.IDTipoVale      = !Dr.IsDBNull(Dr.GetOrdinal("id_tipoVale")) ? Dr.GetInt32(Dr.GetOrdinal("id_tipoVale")) : 0;
                            Resultado.IDEstatusVale   = !Dr.IsDBNull(Dr.GetOrdinal("id_estatusVale")) ? Dr.GetInt32(Dr.GetOrdinal("id_estatusVale")) : 0;
                            Resultado.Nombre          = !Dr.IsDBNull(Dr.GetOrdinal("Titulo")) ? Dr.GetString(Dr.GetOrdinal("Titulo")) : string.Empty;
                            Resultado.Folio           = !Dr.IsDBNull(Dr.GetOrdinal("folio")) ? Dr.GetString(Dr.GetOrdinal("folio")) : string.Empty;
                            Resultado.CantLimite      = !Dr.IsDBNull(Dr.GetOrdinal("cantLimite")) ? Dr.GetInt32(Dr.GetOrdinal("cantLimite")) : 0;
                            Resultado.Abierto         = !Dr.IsDBNull(Dr.GetOrdinal("abierto")) ? Dr.GetBoolean(Dr.GetOrdinal("abierto")) : false;
                            Resultado.RequierePeriodo = !Dr.IsDBNull(Dr.GetOrdinal("rangoFechas")) ? Dr.GetBoolean(Dr.GetOrdinal("rangoFechas")) : false;
                            switch (Resultado.IDTipoVale)
                            {
                            case 1:
                            case 2:
                                Resultado.Monto      = !Dr.IsDBNull(Dr.GetOrdinal("monto")) ? Dr.GetDecimal(Dr.GetOrdinal("monto")) : 0;
                                Resultado.Porcentaje = !Dr.IsDBNull(Dr.GetOrdinal("porcentaje")) ? Dr.GetDecimal(Dr.GetOrdinal("porcentaje")) : 0;
                                if (Resultado.RequierePeriodo)
                                {
                                    Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("fechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaInicio")) : DateTime.Today;
                                    Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("fechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaFin")) : DateTime.Today;
                                }
                                else
                                {
                                    Resultado.Lunes     = !Dr.IsDBNull(Dr.GetOrdinal("lunes")) ? Dr.GetBoolean(Dr.GetOrdinal("lunes")) : false;
                                    Resultado.Martes    = !Dr.IsDBNull(Dr.GetOrdinal("martes")) ? Dr.GetBoolean(Dr.GetOrdinal("martes")) : false;
                                    Resultado.Miercoles = !Dr.IsDBNull(Dr.GetOrdinal("miercoles")) ? Dr.GetBoolean(Dr.GetOrdinal("miercoles")) : false;
                                    Resultado.Jueves    = !Dr.IsDBNull(Dr.GetOrdinal("jueves")) ? Dr.GetBoolean(Dr.GetOrdinal("jueves")) : false;
                                    Resultado.Viernes   = !Dr.IsDBNull(Dr.GetOrdinal("viernes")) ? Dr.GetBoolean(Dr.GetOrdinal("viernes")) : false;
                                    Resultado.Sabado    = !Dr.IsDBNull(Dr.GetOrdinal("sabado")) ? Dr.GetBoolean(Dr.GetOrdinal("sabado")) : false;
                                    Resultado.Domingo   = !Dr.IsDBNull(Dr.GetOrdinal("domingo")) ? Dr.GetBoolean(Dr.GetOrdinal("domingo")) : false;
                                }
                                break;

                            case 3:
                                string IDProductoNXN     = !Dr.IsDBNull(Dr.GetOrdinal("id_productoRequerido")) ? Dr.GetString(Dr.GetOrdinal("id_productoRequerido")) : string.Empty;
                                string ClaveNxN          = !Dr.IsDBNull(Dr.GetOrdinal("ClaveN")) ? Dr.GetString(Dr.GetOrdinal("ClaveN")) : string.Empty;
                                string NombreProductoNXN = !Dr.IsDBNull(Dr.GetOrdinal("ProductoN")) ? Dr.GetString(Dr.GetOrdinal("ProductoN")) : string.Empty;
                                byte[] ImagenProductoNXN = (byte[])Dr.GetValue(Dr.GetOrdinal("ImagenProductoN"));
                                string NombreImagen      = !Dr.IsDBNull(Dr.GetOrdinal("url_imagen")) ? Dr.GetString(Dr.GetOrdinal("url_imagen")) : string.Empty;
                                Resultado.ProductoRequerido = new Producto {
                                    IDProducto = IDProductoNXN, NombreProducto = NombreProductoNXN, Imagen = ImagenProductoNXN, UrlImagen = NombreImagen, Clave = ClaveNxN
                                };
                                Resultado.CantidadRequeridaNxN = !Dr.IsDBNull(Dr.GetOrdinal("cantRequerida")) ? Dr.GetInt32(Dr.GetOrdinal("cantRequerida")) : 0;
                                Resultado.CantidadGratisNxN    = !Dr.IsDBNull(Dr.GetOrdinal("cantGratis")) ? Dr.GetInt32(Dr.GetOrdinal("cantGratis")) : 0;

                                if (Resultado.RequierePeriodo)
                                {
                                    Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("fechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaInicio")) : DateTime.Today;
                                    Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("fechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaFin")) : DateTime.Today;
                                }
                                else
                                {
                                    Resultado.Lunes     = !Dr.IsDBNull(Dr.GetOrdinal("lunes")) ? Dr.GetBoolean(Dr.GetOrdinal("lunes")) : false;
                                    Resultado.Martes    = !Dr.IsDBNull(Dr.GetOrdinal("martes")) ? Dr.GetBoolean(Dr.GetOrdinal("martes")) : false;
                                    Resultado.Miercoles = !Dr.IsDBNull(Dr.GetOrdinal("miercoles")) ? Dr.GetBoolean(Dr.GetOrdinal("miercoles")) : false;
                                    Resultado.Jueves    = !Dr.IsDBNull(Dr.GetOrdinal("jueves")) ? Dr.GetBoolean(Dr.GetOrdinal("jueves")) : false;
                                    Resultado.Viernes   = !Dr.IsDBNull(Dr.GetOrdinal("viernes")) ? Dr.GetBoolean(Dr.GetOrdinal("viernes")) : false;
                                    Resultado.Sabado    = !Dr.IsDBNull(Dr.GetOrdinal("sabado")) ? Dr.GetBoolean(Dr.GetOrdinal("sabado")) : false;
                                    Resultado.Domingo   = !Dr.IsDBNull(Dr.GetOrdinal("domingo")) ? Dr.GetBoolean(Dr.GetOrdinal("domingo")) : false;
                                }
                                break;

                            case 4:
                                string IDProductoM     = !Dr.IsDBNull(Dr.GetOrdinal("id_productoRequerido")) ? Dr.GetString(Dr.GetOrdinal("id_productoRequerido")) : string.Empty;
                                string ClaveM          = !Dr.IsDBNull(Dr.GetOrdinal("ClaveM")) ? Dr.GetString(Dr.GetOrdinal("ClaveM")) : string.Empty;
                                string NombreProductoM = !Dr.IsDBNull(Dr.GetOrdinal("ProductoM")) ? Dr.GetString(Dr.GetOrdinal("ProductoM")) : string.Empty;
                                byte[] ImagenProductoM = (byte[])Dr.GetValue(Dr.GetOrdinal("ImagenProductoM"));
                                string NombreImagenM   = !Dr.IsDBNull(Dr.GetOrdinal("UrlImagenProductoM")) ? Dr.GetString(Dr.GetOrdinal("UrlImagenProductoM")) : string.Empty;
                                string IDProductoN     = !Dr.IsDBNull(Dr.GetOrdinal("id_productoGratis")) ? Dr.GetString(Dr.GetOrdinal("id_productoGratis")) : string.Empty;
                                string ClaveN          = !Dr.IsDBNull(Dr.GetOrdinal("ClaveN")) ? Dr.GetString(Dr.GetOrdinal("ClaveN")) : string.Empty;
                                string NombreProductoN = !Dr.IsDBNull(Dr.GetOrdinal("ProductoN")) ? Dr.GetString(Dr.GetOrdinal("ProductoN")) : string.Empty;
                                byte[] ImagenProductoN = (byte[])Dr.GetValue(Dr.GetOrdinal("ImagenProductoN"));
                                string NombreImagenN   = !Dr.IsDBNull(Dr.GetOrdinal("UrlImagenProductoN")) ? Dr.GetString(Dr.GetOrdinal("UrlImagenProductoN")) : string.Empty;

                                Resultado.ProductoRequerido = new Producto {
                                    IDProducto = IDProductoM, NombreProducto = NombreProductoM, Imagen = ImagenProductoM, UrlImagen = NombreImagenM, Clave = ClaveM
                                };
                                Resultado.CantRequeridad = !Dr.IsDBNull(Dr.GetOrdinal("cantRequerida")) ? Dr.GetInt32(Dr.GetOrdinal("cantRequerida")) : 0;
                                Resultado.ProductoGratis = new Producto {
                                    IDProducto = IDProductoN, NombreProducto1 = NombreProductoN, ImagenProductoN = ImagenProductoN, UrlImagenN = NombreImagenN, ClaveN = ClaveN
                                };
                                Resultado.CantGratis = !Dr.IsDBNull(Dr.GetOrdinal("cantGratis")) ? Dr.GetInt32(Dr.GetOrdinal("cantGratis")) : 0;
                                if (Resultado.RequierePeriodo)
                                {
                                    Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("fechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaInicio")) : DateTime.Today;
                                    Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("fechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaFin")) : DateTime.Today;
                                }
                                else
                                {
                                    Resultado.Lunes     = !Dr.IsDBNull(Dr.GetOrdinal("lunes")) ? Dr.GetBoolean(Dr.GetOrdinal("lunes")) : false;
                                    Resultado.Martes    = !Dr.IsDBNull(Dr.GetOrdinal("martes")) ? Dr.GetBoolean(Dr.GetOrdinal("martes")) : false;
                                    Resultado.Miercoles = !Dr.IsDBNull(Dr.GetOrdinal("miercoles")) ? Dr.GetBoolean(Dr.GetOrdinal("miercoles")) : false;
                                    Resultado.Jueves    = !Dr.IsDBNull(Dr.GetOrdinal("jueves")) ? Dr.GetBoolean(Dr.GetOrdinal("jueves")) : false;
                                    Resultado.Viernes   = !Dr.IsDBNull(Dr.GetOrdinal("viernes")) ? Dr.GetBoolean(Dr.GetOrdinal("viernes")) : false;
                                    Resultado.Sabado    = !Dr.IsDBNull(Dr.GetOrdinal("sabado")) ? Dr.GetBoolean(Dr.GetOrdinal("sabado")) : false;
                                    Resultado.Domingo   = !Dr.IsDBNull(Dr.GetOrdinal("domingo")) ? Dr.GetBoolean(Dr.GetOrdinal("domingo")) : false;
                                }
                                break;
                            }
                        }
                        Dr.Close();
                        DataTable       TablaAUx = Ds.Tables[1];
                        DataTableReader Dr2      = Ds.Tables[1].CreateDataReader();
                        List <Producto> Lista    = new List <Producto>();
                        Producto        Item;
                        while (Dr2.Read())
                        {
                            Item                = new Producto();
                            Item.IDProducto     = Dr2.GetString(Dr2.GetOrdinal("IDProducto"));
                            Item.Clave          = Dr2.GetString(Dr2.GetOrdinal("Clave"));
                            Item.NombreProducto = Dr2.GetString(Dr2.GetOrdinal("NombreProducto"));
                            if (Convert.IsDBNull(Dr2.GetValue(Dr2.GetOrdinal("ImagenProducto"))))
                            {
                                Item.Imagen = new byte[0];
                            }
                            else
                            {
                                Item.Imagen = (byte[])Dr2["ImagenProducto"];
                            }
                            Item.UrlImagen = Dr2.GetString(Dr2.GetOrdinal("url_imagen"));
                            Lista.Add(Item);
                        }
                        Resultado.ListaProductos = Lista;
                        Dr2.Close();
                    }
                }
                return(Resultado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Método para obtener el detalle de los trabajos realizados
        /// </summary>
        /// <param name="Conexion">Cadena de conexión a la BD</param>
        /// <param name="IDReporte">ID del Reporte al que se quiere acceder</param>
        /// <returns>Retorna una lista con el detalle del trabajo realizado seleccionado.</returns>
        public ReporteTrabajosRealizados ObtenerDetalleReporteTrabajosRealizados(string Conexion, int IDReporte)
        {
            try
            {
                ReporteTrabajosRealizados Resultado = new ReporteTrabajosRealizados();
                DataSet Ds = SqlHelper.ExecuteDataset(Conexion, "Reportes.spCSLDB_get_ReporteTrabajosRealizadosXID", IDReporte);
                if (Ds != null)
                {
                    if (Ds.Tables.Count == 2)
                    {
                        DataTableReader Dr = Ds.Tables[0].CreateDataReader();
                        while (Dr.Read())
                        {
                            Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("FechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("FechaInicio")) : DateTime.MinValue;
                            Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("FechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("FechaFin")) : DateTime.MinValue;
                            break;
                        }
                        Dr.Close();

                        List <ReporteTrabajosRealizadosDetalle> Lista = new List <ReporteTrabajosRealizadosDetalle>();
                        ReporteTrabajosRealizadosDetalle        Item;
                        DataTableReader Dr2 = Ds.Tables[1].CreateDataReader();
                        while (Dr2.Read())
                        {
                            Item                   = new ReporteTrabajosRealizadosDetalle();
                            Item.IDSucursal        = !Dr2.IsDBNull(Dr2.GetOrdinal("IDSucursal")) ? Dr2.GetString(Dr2.GetOrdinal("IDSucursal")) : string.Empty;
                            Item.Sucursal          = !Dr2.IsDBNull(Dr2.GetOrdinal("Sucursal")) ? Dr2.GetString(Dr2.GetOrdinal("Sucursal")) : string.Empty;
                            Item.IDEmpleado        = !Dr2.IsDBNull(Dr2.GetOrdinal("IDEmpleado")) ? Dr2.GetString(Dr2.GetOrdinal("IDEmpleado")) : string.Empty;
                            Item.NombreEmpleado    = !Dr2.IsDBNull(Dr2.GetOrdinal("NombreEmpleado")) ? Dr2.GetString(Dr2.GetOrdinal("NombreEmpleado")) : string.Empty;
                            Item.IDServicio        = !Dr2.IsDBNull(Dr2.GetOrdinal("IDServicio")) ? Dr2.GetString(Dr2.GetOrdinal("IDServicio")) : string.Empty;
                            Item.NombreServicio    = !Dr2.IsDBNull(Dr2.GetOrdinal("NombreServicio")) ? Dr2.GetString(Dr2.GetOrdinal("NombreServicio")) : string.Empty;
                            Item.CantidadServicios = !Dr2.IsDBNull(Dr2.GetOrdinal("CantidadServicios")) ? Dr2.GetInt32(Dr2.GetOrdinal("CantidadServicios")) : 0;
                            Lista.Add(Item);
                        }
                        Dr2.Close();

                        Resultado.Detalle  = Lista;
                        Resultado.Completo = true;
                    }
                }
                return(Resultado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Se obtiene El reporte completo por medio del identificador del reporte
        /// </summary>
        /// <param name="Conexion"> Conexion a la base de datos</param>
        /// <param name="IDReporte"> Identificador del reporte</param>
        /// <returns></returns>
        public ReporteComprasPorProveedor ObtenerDetalleReporteComprasPorProveedor(string Conexion, int IDReporte)
        {
            try
            {
                ReporteComprasPorProveedor Resultado = new ReporteComprasPorProveedor();
                DataSet Ds = SqlHelper.ExecuteDataset(Conexion, "Reportes.spCSLDB_get_ReporteComprasProveedorXID", IDReporte);
                if (Ds != null)
                {
                    if (Ds.Tables.Count == 3)
                    {
                        DataTableReader Dr = Ds.Tables[0].CreateDataReader();
                        while (Dr.Read())
                        {
                            Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("FechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("FechaInicio")) : DateTime.MinValue;
                            Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("FechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("FechaFin")) : DateTime.MinValue;
                            break;
                        }
                        Dr.Close();

                        List <ReporteComprasPorProveedorDetalle> Lista = new List <ReporteComprasPorProveedorDetalle>();
                        ReporteComprasPorProveedorDetalle        Item;
                        DataTableReader Dr2 = Ds.Tables[1].CreateDataReader();
                        while (Dr2.Read())
                        {
                            Item             = new ReporteComprasPorProveedorDetalle();
                            Item.IDProveedor = !Dr2.IsDBNull(Dr2.GetOrdinal("IDProveedor")) ? Dr2.GetString(Dr2.GetOrdinal("IDProveedor")) : string.Empty;
                            Item.Proveedor   = !Dr2.IsDBNull(Dr2.GetOrdinal("Proveedor")) ? Dr2.GetString(Dr2.GetOrdinal("Proveedor")) : string.Empty;
                            Item.Total       = !Dr2.IsDBNull(Dr2.GetOrdinal("Total")) ? Dr2.GetDecimal(Dr2.GetOrdinal("Total")) : 0;
                            Lista.Add(Item);
                        }
                        Dr2.Close();

                        List <ReporteComprasPorProveedorDetalle> ListaMob = new List <ReporteComprasPorProveedorDetalle>();
                        ReporteComprasPorProveedorDetalle        ItemMob;
                        DataTableReader Dr3 = Ds.Tables[2].CreateDataReader();
                        while (Dr3.Read())
                        {
                            ItemMob             = new ReporteComprasPorProveedorDetalle();
                            ItemMob.IDProveedor = !Dr3.IsDBNull(Dr3.GetOrdinal("IDProveedor")) ? Dr3.GetString(Dr3.GetOrdinal("IDProveedor")) : string.Empty;
                            ItemMob.Proveedor   = !Dr3.IsDBNull(Dr3.GetOrdinal("Proveedor")) ? Dr3.GetString(Dr3.GetOrdinal("Proveedor")) : string.Empty;
                            ItemMob.Total       = !Dr3.IsDBNull(Dr3.GetOrdinal("Total")) ? Dr3.GetDecimal(Dr3.GetOrdinal("Total")) : 0;
                            ListaMob.Add(ItemMob);
                        }
                        Dr3.Close();

                        Resultado.Detalle    = Lista;
                        Resultado.DetalleMob = ListaMob;
                        Resultado.Completo   = true;
                    }
                }
                return(Resultado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ReporteGarantias ObtenerDetalleReporteGarantias(string Conexion, int IDReporte)
        {
            try
            {
                ReporteGarantias Resultado = new ReporteGarantias();
                DataSet          Ds        = SqlHelper.ExecuteDataset(Conexion, "Reportes.spCSLDB_get_ReporteGarantiasXID", IDReporte);
                if (Ds != null)
                {
                    if (Ds.Tables.Count == 2)
                    {
                        DataTableReader Dr = Ds.Tables[0].CreateDataReader();
                        while (Dr.Read())
                        {
                            Resultado.FechaInicio = !Dr.IsDBNull(Dr.GetOrdinal("fechaInicio")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaInicio")) : DateTime.MinValue;
                            Resultado.FechaFin    = !Dr.IsDBNull(Dr.GetOrdinal("fechaFin")) ? Dr.GetDateTime(Dr.GetOrdinal("fechaFin")) : DateTime.MinValue;
                            break;
                        }
                        Dr.Close();

                        List <ReporteGarantias> Lista = new List <ReporteGarantias>();
                        ReporteGarantias        Item;
                        DataTableReader         Dr2 = Ds.Tables[1].CreateDataReader();
                        while (Dr2.Read())
                        {
                            Item                = new ReporteGarantias();
                            Item.Fecha          = !Dr2.IsDBNull(Dr2.GetOrdinal("fecha")) ? Dr2.GetDateTime(Dr2.GetOrdinal("fecha")) : DateTime.MinValue;
                            Item.Id_sucursal    = !Dr2.IsDBNull(Dr2.GetOrdinal("id_sucursal")) ? Dr2.GetString(Dr2.GetOrdinal("id_sucursal")) : string.Empty;
                            Item.NombreSucursal = !Dr2.IsDBNull(Dr2.GetOrdinal("nombreSucursal")) ? Dr2.GetString(Dr2.GetOrdinal("nombreSucursal")) : string.Empty;
                            Item.NombreCompleto = !Dr2.IsDBNull(Dr2.GetOrdinal("nombreCompleto")) ? Dr2.GetString(Dr2.GetOrdinal("nombreCompleto")) : string.Empty;
                            Item.Observaciones  = !Dr2.IsDBNull(Dr2.GetOrdinal("observaciones")) ? Dr2.GetString(Dr2.GetOrdinal("observaciones")) : string.Empty;
                            Item.Nombre         = !Dr2.IsDBNull(Dr2.GetOrdinal("nombre")) ? Dr2.GetString(Dr2.GetOrdinal("nombre")) : string.Empty;
                            Item.Total          = !Dr2.IsDBNull(Dr2.GetOrdinal("total")) ? Dr2.GetDecimal(Dr2.GetOrdinal("total")) : 0;
                            Item.EmpleadoAplica = !Dr2.IsDBNull(Dr2.GetOrdinal("empleadoAplica")) ? Dr2.GetString(Dr2.GetOrdinal("empleadoAplica")) : string.Empty;

                            Lista.Add(Item);
                        }
                        Dr2.Close();

                        Resultado.Detalle    = Lista;
                        Resultado.Completado = true;
                    }
                }
                return(Resultado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#7
0
        public TransferenciaMaterialesGeneral ObtenerDetalleReporteTransferenciaMateriales(string Conexion, int IDReporte)
        {
            try
            {
                TransferenciaMaterialesGeneral Resultado = new TransferenciaMaterialesGeneral();
                DataSet Ds = SqlHelper.ExecuteDataset(Conexion, "Produccion.spCSLDB_get_TransferenciaMaterialesXID", IDReporte);
                if (Ds != null)
                {
                    if (Ds.Tables.Count == 1)
                    {
                        List <TransferenciaMaterialesDetalle> Lista = new List <TransferenciaMaterialesDetalle>();
                        TransferenciaMaterialesDetalle        Item;
                        DataTableReader Dr2 = Ds.Tables[0].CreateDataReader();
                        while (Dr2.Read())
                        {
                            Item                   = new TransferenciaMaterialesDetalle();
                            Item.FechaInicio       = !Dr2.IsDBNull(Dr2.GetOrdinal("FechaInicio")) ? Dr2.GetDateTime(Dr2.GetOrdinal("FechaInicio")) : DateTime.MinValue;
                            Item.Producto          = !Dr2.IsDBNull(Dr2.GetOrdinal("Producto")) ? Dr2.GetString(Dr2.GetOrdinal("Producto")) : string.Empty;
                            Item.Clave             = !Dr2.IsDBNull(Dr2.GetOrdinal("Clave")) ? Dr2.GetString(Dr2.GetOrdinal("Clave")) : string.Empty;
                            Item.CantidadMetrica   = !Dr2.IsDBNull(Dr2.GetOrdinal("CantidadMetrica")) ? Dr2.GetInt32(Dr2.GetOrdinal("CantidadMetrica")) : 0;
                            Item.TipoMetrica       = !Dr2.IsDBNull(Dr2.GetOrdinal("TipoMetrica")) ? Dr2.GetString(Dr2.GetOrdinal("TipoMetrica")) : string.Empty;
                            Item.CantidadUsos      = !Dr2.IsDBNull(Dr2.GetOrdinal("CantidadUsos")) ? Dr2.GetInt32(Dr2.GetOrdinal("CantidadUsos")) : 0;
                            Item.Consumo           = !Dr2.IsDBNull(Dr2.GetOrdinal("Consumo")) ? Dr2.GetInt32(Dr2.GetOrdinal("Consumo")) : 0;
                            Item.DiasTranscurridos = !Dr2.IsDBNull(Dr2.GetOrdinal("DiasTranscurridos")) ? Dr2.GetInt32(Dr2.GetOrdinal("DiasTranscurridos")) : 0;

                            Lista.Add(Item);
                        }
                        Dr2.Close();
                        Resultado.Detalle = Lista;
                    }
                }

                TransferenciaMaterialesGeneral var = ObtenerTransferenciaMaterialesGeneral(Conexion, IDReporte);
                Resultado.EmpleadoO = var.EmpleadoO;
                Resultado.EmpleadoD = var.EmpleadoD;
                return(Resultado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private GuidCollection GetSoftwareBulletins()
        {
            GuidCollection bulletin_collection = new GuidCollection();

            DataTable bulletins = GetExistingBulletins();

            EventLog.ReportInfo("GetExistingBulletins row count = " + bulletins.Rows.Count);
            DataTable excluded_bulletins = GetExcludedBulletins();

            EventLog.ReportInfo("GetExcludedBulletins row count = " + excluded_bulletins.Rows.Count);

            if (bulletins.Rows.Count == 0)
            {
                EventLog.ReportInfo("There are no bulletins to manage. Returning now.");
                return(bulletin_collection);
            }

            try {
                using (DataTableReader sqlRdr = bulletins.CreateDataReader()) {
                    // Field position shorthands
                    int _released     = -1;
                    int _resourceguid = -1;
                    int _bulletin     = -1;
                    int _severity     = -1;
                    int _vendor       = -1;

                    while (sqlRdr.Read())
                    {
                        #region Get position of the used field

                        for (int i = 0; i < sqlRdr.FieldCount; i++)
                        {
                            string field_name = sqlRdr.GetName(i).ToLower();
                            if (field_name == "released")
                            {
                                _released = i;
                            }
                            if (field_name == "_resourceguid")
                            {
                                _resourceguid = i;
                            }
                            if (field_name == "bulletin")
                            {
                                _bulletin = i;
                            }
                            if (field_name == "severity")
                            {
                                _severity = i;
                            }
                            if (field_name == "vendor")
                            {
                                _vendor = i;
                            }
                        }

                        bool field_init = false;
                        if (_severity != -1 && _resourceguid != -1 &&
                            _released != -1 && _bulletin != -1)
                        {
                            field_init = true;
                        }
                        #endregion

                        if (field_init)
                        {
                            while (sqlRdr.Read())
                            {
                                DateTime dt            = sqlRdr.GetDateTime(_released);
                                Guid     bulletin_guid = sqlRdr.GetGuid(_resourceguid);
                                String   bull_name     = sqlRdr.GetString(_bulletin);
                                String   sev           = sqlRdr.GetString(_severity);
                                String   bull_vendor   = string.Empty;
                                if (_vendor != -1)
                                {
                                    bull_vendor = sqlRdr.GetString(_vendor).ToLower();
                                }

                                #region // Break if the current bulletin is excluded
                                bool row_excluded = false;

                                foreach (DataRow r in excluded_bulletins.Rows)
                                {
                                    if (r[0].ToString() == bull_name)
                                    {
                                        EventLog.ReportInfo("Excluded bulletin " + bull_name);
                                        row_excluded = true;
                                        break;
                                    }
                                }

                                if (row_excluded)
                                {
                                    continue;
                                }
                                #endregion

                                if ((sev.ToUpper() == config.Severity.ToUpper() || config.Severity == "*") &&
                                    dt > config.Released_After && dt < config.Released_Before)
                                {
                                    if (_vendor == -1 || (config.Vendor_Name == bull_vendor || config.Vendor_Name == "*"))
                                    {
                                        bulletin_collection.Add(bulletin_guid);
                                        EventLog.ReportVerbose("Added bulletin " + bulletin_guid.ToString() + " to bulletin collection.");
                                    }
                                    else
                                    {
                                        if (_debug)
                                        {
                                            EventLog.ReportVerbose("Failed on " + config.Vendor_Name + " == " + bull_vendor);
                                        }
                                    }
                                }
                                else
                                {
                                    if (_debug)
                                    {
                                        EventLog.ReportVerbose("Failed on " + sev + "==" + config.Severity
                                                               + " or on " + dt.ToString() + " > " + config.Released_After.ToString()
                                                               + " or on " + dt.ToString() + " < " + config.Released_Before.ToString());
                                    }
                                    if (_debug)
                                    {
                                        EventLog.ReportVerbose("Bulletin " + bulletin_guid.ToString() + " _not_ added to bulletin collection.");
                                    }
                                }
                            }
                        }
                        else
                        {
                            EventLog.ReportInfo("Failed to find the required fields in the provided data table. Not doing anything.");
                        }
                    }
                }
            } catch (Exception e) {
                throw (e);
            }
            EventLog.ReportInfo(string.Format("{0} bulletins match the {1} severity and will be checked for policies.", bulletin_collection.Count, config.Severity));
            return(bulletin_collection);
        }