예제 #1
0
        private static void UpdateDim(string empresa, CatCliente cat, DimClientes dim, NpgsqlConnection conn)
        {
            NpgsqlCommand cmd;

            string sqlString = "UPDATE dim_clientes " +
                               "SET codigo_cliente=@codigo, " +
                               "nombre_cliente=@nombre, " +
                               "es_local=@local, " +
                               "empresa=@empresa " +
                               "WHERE id_cliente=@id;";


            cmd = new NpgsqlCommand(sqlString, conn);

            cmd.Parameters.Add("@codigo", NpgsqlTypes.NpgsqlDbType.Varchar, 11);
            cmd.Parameters.Add("@nombre", NpgsqlTypes.NpgsqlDbType.Varchar, 250);
            cmd.Parameters.Add("@local", NpgsqlTypes.NpgsqlDbType.Boolean);
            cmd.Parameters.Add("@empresa", NpgsqlTypes.NpgsqlDbType.Varchar, 150);
            cmd.Parameters.Add("@id", NpgsqlTypes.NpgsqlDbType.Integer);

            cmd.Parameters["@codigo"].Value  = cat.CodigoCliente;
            cmd.Parameters["@nombre"].Value  = cat.RazonSocial;
            cmd.Parameters["@local"].Value   = cat.EsLocal;
            cmd.Parameters["@empresa"].Value = dim.Empresa;
            cmd.Parameters["@id"].Value      = dim.IdCliente;

            cmd.ExecuteNonQuery();
        }
예제 #2
0
        public static DimClientes GetCliente(int idEmpresa, string codigoCliente, NpgsqlConnection conn)
        {
            DimClientes      result            = null;
            bool             didOpenConnection = false;
            NpgsqlDataReader dr;
            NpgsqlCommand    cmd;

            string sqlString = "SELECT id_cliente, codigo_cliente, nombre_cliente, es_local, empresa, id_empresa " +
                               "FROM dim_clientes " +
                               "WHERE codigo_cliente=@cliente " +
                               "AND id_empresa=@idEmpresa;";

            if (conn == null || !(conn.State == ConnectionState.Open))
            {
                string connectionString = ConfigurationManager.ConnectionStrings[Config.Common.JASPER].ConnectionString;
                conn = new NpgsqlConnection(connectionString);
                conn.Open();
                didOpenConnection = true;
            }

            cmd = new NpgsqlCommand(sqlString, conn);

            cmd.Parameters.Add("@cliente", NpgsqlTypes.NpgsqlDbType.Varchar, 11);
            cmd.Parameters.Add("@idEmpresa", NpgsqlTypes.NpgsqlDbType.Integer);

            cmd.Parameters["@cliente"].Value   = codigoCliente;
            cmd.Parameters["@idEmpresa"].Value = idEmpresa;

            dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                result             = new DimClientes();
                result.IdCliente   = int.Parse(dr["id_cliente"].ToString());
                result.RazonSocial = dr["nombre_cliente"].ToString();
                result.EsLocal     = bool.Parse(dr["es_local"].ToString());
                result.Empresa     = dr["empresa"].ToString();

                result.CodigoCliente = codigoCliente;
                result.IdEmpresa     = idEmpresa;
            }

            dr.Close();

            if (didOpenConnection)
            {
                conn.Close();
            }

            return(result);
        }
예제 #3
0
 internal static void Execute(int idEmpresa, string empresa, List <CatCliente> clientes, NpgsqlConnection conn)
 {
     foreach (CatCliente client in clientes)
     {
         DimClientes dClient = DimClientes.GetCliente(idEmpresa, client.CodigoCliente, conn);
         bool        loaded  = dClient != null;
         if (loaded)
         {
             UpdateDim(empresa, client, dClient, conn);
         }
         else
         {
             LoadDim(empresa, idEmpresa, client, conn);
         }
     }
 }