private bool validarCampos(SqlDataReader dr)
    {
        // EL RESTO DE LAS VALIDACIONES SE HACEN POR INTEGRIDAD REFERENCIAL CON SUS RESPECTIVAS TABLAS

        //oClaseEconomica = (ClaseEconomica)htClaseEconomica[dr["t329_idclaseeco"].ToString()];
        //if (oClaseEconomica != null)
        //{
        //    sbE.Append(ponerFilaError(dr, "La clase económica especificada no existe"));
        //    return false;
        //}

        //if (!Fechas.ValidarAnnomes((int)dr["t325_anomes"])){
        //    sbE.Append(ponerFilaError(dr, "Año o mes de la fecha incorrecto (" + dr["t325_anomes"].ToString().Substring(0, 4) + ")"));
        //    return false;
        //}

        oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[(int)dr["t301_idproyecto"]];
        if (oProyectoSubNodo == null)
        {
            sbE.Append(ponerFilaError(dr, "No existe una instancia contratante correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + "."));
            return(false);
        }

        return(true);
    }
    private void CargarDataEco()
    {
        StringBuilder sb = new StringBuilder();

        #region Obtenión de dataset con empresas, proyectos y clientes y creación de HASTABLES

        oProyectoSubNodo = null;
        oClaseEconomica  = null;
        oProveedor       = null;

        DataSet ds = AddDATAECO.ValidarTabla();

        htProyectoSubNodo = new Hashtable();
        foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows)//Recorro tabla de proyectos-subnodos
        {
            htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(), new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"], (int)dsProyectoSubNodo["t305_idproyectosubnodo"],
                                                                                                                                                            (int)dsProyectoSubNodo["t303_idnodo"], dsProyectoSubNodo["t305_cualidad"].ToString())
                                  );
        }

        htClaseEconomica = new Hashtable();
        foreach (DataRow dsClaseEconomica in ds.Tables[1].Rows)//Recorro tabla de Clases económicas
        {
            htClaseEconomica.Add(dsClaseEconomica["t329_idclaseeco"].ToString(), new ClaseEconomica((int)dsClaseEconomica["t329_idclaseeco"],
                                                                                                    dsClaseEconomica["t329_necesidad"].ToString(), bool.Parse(dsClaseEconomica["t329_visiblecarruselC"].ToString()), bool.Parse(dsClaseEconomica["t329_visiblecarruselJ"].ToString()), bool.Parse(dsClaseEconomica["t329_visiblecarruselP"].ToString()))
                                 );
        }

        htProveedor = new Hashtable();
        foreach (DataRow dsProveedor in ds.Tables[2].Rows) //Recorro tabla de proveedores
        {
            htProveedor.Add(dsProveedor["t315_codigoexterno"].ToString(), new Proveedor((int)dsProveedor["t315_idproveedor"],
                                                                                        dsProveedor["t315_codigoexterno"].ToString())
                            );
        }
        ds.Dispose();
        #endregion

        // Lectura, validación y conteo, de las filas de la tabla

        SqlDataReader dr = AddDATAECO.Catalogo();
        while (dr.Read())
        {
            iCont++;
            if (validarCampos(dr))
            {
                iNumOk++;
            }
        }
        dr.Close();
        dr.Dispose();

        sb.Append("</table>");
        this.divB.InnerHtml   = cabErrores() + sbE + "</table>";
        cldTotalLin.InnerText = AddDATAECO.numFilas(null).ToString("##,###,##0");
        cldLinOK.InnerText    = iNumOk.ToString("##,###,##0");
        cldLinErr.InnerText   = (iCont - iNumOk).ToString("##,###,##0");
    }
    private void CargarArrayHT()
    {
        #region Obtenión de dataset con empresas, proyectos y clientes y nodos y creación de HASTABLES

        oProveedor       = null;
        oProyectoSubNodo = null;
        oClaseEconomica  = null;
        oNodoDestino     = null;
        oMoneda          = null;

        DataSet ds = AddDATAECO.ValidarFichero();
        htProveedor = new Hashtable();
        foreach (DataRow dsProveedor in ds.Tables[0].Rows) //Recorro tabla de proveedores
        {
            htProveedor.Add(dsProveedor["t315_codigoexterno"].ToString(), new Proveedor((int)dsProveedor["t315_idproveedor"],
                                                                                        dsProveedor["t315_codigoexterno"].ToString())
                            );
        }

        htProyectoSubNodo = new Hashtable();
        foreach (DataRow dsProyectoSubNodo in ds.Tables[1].Rows)//Recorro tabla de proyectos-subnodos
        {
            htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(), new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"], (int)dsProyectoSubNodo["t305_idproyectosubnodo"],
                                                                                                                                                            (int)dsProyectoSubNodo["t303_idnodo"], dsProyectoSubNodo["t305_cualidad"].ToString())
                                  );
        }

        htClaseEconomica = new Hashtable();
        foreach (DataRow dsClaseEconomica in ds.Tables[2].Rows)//Recorro tabla de Clases económicas
        {
            htClaseEconomica.Add(dsClaseEconomica["t329_idclaseeco"].ToString(), new ClaseEconomica((int)dsClaseEconomica["t329_idclaseeco"],
                                                                                                    dsClaseEconomica["t329_necesidad"].ToString(), bool.Parse(dsClaseEconomica["t329_visiblecarruselC"].ToString()), bool.Parse(dsClaseEconomica["t329_visiblecarruselJ"].ToString()), bool.Parse(dsClaseEconomica["t329_visiblecarruselP"].ToString()))
                                 );
        }

        htNodoDestino = new Hashtable();
        foreach (DataRow dsNodoDestino in ds.Tables[3].Rows)//Recorro tabla de Nodos
        {
            htNodoDestino.Add(dsNodoDestino["t303_idnodo"].ToString(), new NodoDestino((int)dsNodoDestino["t303_idnodo"])
                              );
        }

        htMoneda = new Hashtable();
        foreach (DataRow dsMoneda in ds.Tables[4].Rows)//Recorro tabla de Monedas
        {
            htMoneda.Add(dsMoneda["t422_idmoneda"].ToString(), new Moneda(dsMoneda["t422_idmoneda"].ToString())
                         );
        }

        ds.Dispose();
        #endregion
    }
예제 #4
0
    private string CargarConsuConta()
    {
        StringBuilder sb = new StringBuilder();

        try
        {
            #region Obtenión de dataset con proyectosubnodo y creación de HASTABLE
            oProyectoSubNodo = null;
            DataSet ds = CONSUCONTACORO.GetDatosParaValidacion();

            htProyectoSubNodo = new Hashtable();
            foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows)//Recorro tabla de proyectos-subnodos
            {
                htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(),
                                      new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"],
                                                          (int)dsProyectoSubNodo["t305_idproyectosubnodo"],
                                                          (int)dsProyectoSubNodo["t303_idnodo"],
                                                          dsProyectoSubNodo["t305_cualidad"].ToString()
                                                          )
                                      );
            }

            ds.Dispose();
            #endregion

            // Lectura, validación y conteo, de las filas de la tabla
            //SqlDataReader dr = CONSUCONTACORO.GetCatalogo(null);
            DataSet ds1 = CONSUCONTACORO.GetCatalogo(null);
            foreach (DataRow oFila in ds1.Tables[0].Rows)
            {
                iCont++;
                if (validarCampos(oFila))
                {
                    iNumOk++;
                }
            }
            ds1.Dispose();

            sb.Append("</table>");

            return("OK@#@" + cabErrores() + sbE + "</table>@#@" + CONSUCONTACORO.numFilas(null).ToString("#,##0") + "@#@" + iNumOk.ToString("#,##0") + "@#@" + (iCont - iNumOk).ToString("#,##0"));
        }
        catch (Exception ex)
        {
            return("Error@#@" + Errores.mostrarError("Error al obtener el resumen económico de los proyectos.", ex));
        }
    }
예제 #5
0
    private bool validarCampos(DataRow oFila)
    {
        // EL RESTO DE LAS VALIDACIONES SE HACEN POR INTEGRIDAD REFERENCIAL CON SUS RESPECTIVAS TABLAS

        //oClaseEconomica = (ClaseEconomica)htClaseEconomica[oFila["t329_idclaseeco"].ToString()];
        //if (oClaseEconomica != null)
        //{
        //    sbE.Append(ponerFilaError(oFila, "La clase económica especificada no existe"));
        //    return false;
        //}

        //if (!Fechas.ValidarAnnomes((int)oFila["t325_anomes"])){
        //    sbE.Append(ponerFilaError(oFila, "Año o mes de la fecha incorrecto (" + oFila["t325_anomes"].ToString().Substring(0, 4) + ")"));
        //    return false;
        //}

        oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[oFila["t301_idproyecto"].ToString() + "/" + oFila["t303_idnodo"].ToString()];
        if (oProyectoSubNodo == null)
        {
            sbE.Append(ponerFilaError(oFila, "No existe un proyectosubnodo correspondiente al proyecto " + oFila["t301_idproyecto"].ToString() + " y al " + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + " " + oFila["t303_idnodo"].ToString() + "."));
            return(false);
        }

        if (oFila["t478_descripcion"].ToString() == "")//.Trim()
        {
            sbE.Append(ponerFilaError(oFila, "La descripción es obligatoria."));
            return(false);
        }

        if (int.Parse(oFila["t325_anomes"].ToString().Substring(0, 4)) != nAnno)
        {
            sbE.Append(ponerFilaError(oFila, "El año del consumo no se corresponde con el año de referencia."));
            return(false);
        }


        return(true);
    }
예제 #6
0
    private string Procesar()
    {
        string sResul = "";

        try
        {
            #region Obtenión de dataset con proyectosubnodo y creación de HASTABLE
            oProyectoSubNodo = null;
            DataSet ds = CONSUCONTACORO.GetDatosParaValidacion();

            htProyectoSubNodo = new Hashtable();
            foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows)//Recorro tabla de proyectos-subnodos
            {
                htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(),
                                      new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"],
                                                          (int)dsProyectoSubNodo["t305_idproyectosubnodo"],
                                                          (int)dsProyectoSubNodo["t303_idnodo"],
                                                          dsProyectoSubNodo["t305_cualidad"].ToString()
                                                          )
                                      );
            }

            ds.Dispose();
            #endregion

            #region Abro transaccion
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
                return(sResul);
            }
            #endregion

            string sEstadoMes  = "";
            int    nSegMesProy = 0;

            CONSUCONTA.DeleteByAnno(tr, nAnno);

            DataSet ds2 = CONSUCONTACORO.GetCatalogo(tr);
            foreach (DataRow oFila in ds2.Tables[0].Rows)
            {
                oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[oFila["t301_idproyecto"].ToString() + "/" + oFila["t303_idnodo"].ToString()];
                if (oProyectoSubNodo != null)
                {
                    if (oFila["t478_descripcion"].ToString() != "" && int.Parse(oFila["t325_anomes"].ToString().Substring(0, 4)) == nAnno)
                    {
                        nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)oFila["t325_anomes"]);
                        if (nSegMesProy == 0)
                        {
                            sEstadoMes  = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)oFila["t325_anomes"]);
                            nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)oFila["t325_anomes"], sEstadoMes, 0, 0, false, 0, 0);
                        }
                        CONSUCONTA.Insert(tr, nSegMesProy, (int)oFila["t315_idproveedor"], (int)oFila["t478_nconsumo"], (decimal)oFila["t478_importe"], (int)oFila["t329_idclaseeco"], (int)oFila["t313_idempresa"], (int)oFila["t478_ndocumento"], oFila["t478_descripcion"].ToString());
                    }
                }
                //else
                //{
                //    string sMsg = "No existe un proyectosubnodo correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + " y al " + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + " " + dr["t303_idnodo"].ToString() + ".";
                //    dr.Close();
                //    dr.Dispose();
                //    throw new Exception(sMsg);
                //}
            }
            ds2.Dispose();

            sResul = "OK@#@";
            Conexion.CommitTransaccion(tr);
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al procesar los datos", ex);
            Conexion.CerrarTransaccion(tr);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
    private string Procesar()
    {
        string sResul  = "";
        int    iNumLin = 1;

        try
        {
            #region Obtenión de dataset con proyectosubnodo y creación de HASTABLE
            oProyectoSubNodo = null;
            DataSet ds = SALPROVCORO.GetDatosParaValidacion();

            htProyectoSubNodo = new Hashtable();
            foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows)//Recorro tabla de proyectos-subnodos
            {
                htProyectoSubNodo.Add((int)dsProyectoSubNodo["t301_idproyecto"],
                                      new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"],
                                                          (int)dsProyectoSubNodo["t305_idproyectosubnodo"],
                                                          (int)dsProyectoSubNodo["t303_idnodo"],
                                                          dsProyectoSubNodo["t305_cualidad"].ToString()
                                                          )
                                      );
            }

            ds.Dispose();
            #endregion

            #region Abro transaccion
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
                return(sResul);
            }
            #endregion

            //string sEstadoMes = "";
            //int nSegMesProy = 0;

            SALPROV.DeleteGlobal(tr);

            SqlDataReader dr = SALPROVCORO.GetCatalogo();
            while (dr.Read())
            {
                oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[(int)dr["t301_idproyecto"]];
                if (oProyectoSubNodo != null)
                {
                    SALPROV.Insert(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t315_idproveedor"], (int)dr["t329_idclaseeco"], (decimal)dr["t479_importe"]);
                }
                else
                {
                    string sMsg = "No existe una instancia contratante correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + ".";
                    dr.Close();
                    dr.Dispose();
                    throw new Exception(sMsg);
                }
                iNumLin++;
            }
            dr.Close();
            dr.Dispose();

            sResul = "OK@#@";
            Conexion.CommitTransaccion(tr);
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al procesar el fichero en la línea " + iNumLin.ToString(), ex);
            Conexion.CerrarTransaccion(tr);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
    private bool validarCampos(SqlDataReader dr)
    {
        // EL RESTO DE LAS VALIDACIONES SE HACEN POR INTEGRIDAD REFERENCIAL CON SUS RESPECTIVAS TABLAS

        oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[dr["t301_idproyecto"].ToString() + "/" + dr["t303_idnodo"].ToString()];
        if (oProyectoSubNodo == null)
        {
            sbE.Append(ponerFilaError(dr, "No existe un proyectosubnodo correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + " y al " + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + " " + dr["t303_idnodo"].ToString() + "."));
            return(false);
        }

        oClaseEconomica = (ClaseEconomica)htClaseEconomica[dr["t329_idclaseeco"].ToString()];
        if (oClaseEconomica != null)
        {
            if ((oClaseEconomica.t329_necesidad == "N") && (dr["t303_idnodo_destino"] == DBNull.Value))
            {
                sbE.Append(ponerFilaError(dr, "El nodo destino no se ha especificado y la clase lo exige"));
                return(false);
            }
            if ((oClaseEconomica.t329_necesidad != "N") && (dr["t303_idnodo_destino"] != DBNull.Value))
            {
                sbE.Append(ponerFilaError(dr, "La clase económica especificada debiera exigir nodo"));
                return(false);
            }
            if ((oClaseEconomica.t329_necesidad == "P") && (dr["t315_codigoexterno"] == DBNull.Value))
            {
                sbE.Append(ponerFilaError(dr, "El codigo externo del proveedor no se ha especificado y la clase lo exige"));
                return(false);
            }
            if ((oClaseEconomica.t329_necesidad != "P") && (dr["t315_codigoexterno"] != DBNull.Value))
            {
                sbE.Append(ponerFilaError(dr, "La clase económica especificada debiera exigir proveedor"));
                return(false);
            }
            if ((dr["t303_idnodo_destino"] != DBNull.Value) && (dr["t315_codigoexterno"] != DBNull.Value))
            {
                sbE.Append(ponerFilaError(dr, "No es posible especificar proveedor y nodo destino a la vez"));
                return(false);
            }

            if (oProyectoSubNodo.t305_cualidad == "C" && oClaseEconomica.t329_visiblecarruselC == false)
            {
                sbE.Append(ponerFilaError(dr, "La clase económica (" + oClaseEconomica.t329_idclaseeco + ") para este proyecto/nodo (Contratante) no tiene visibilidad en el carrusel."));
                return(false);
            }
            if (oProyectoSubNodo.t305_cualidad == "J" && oClaseEconomica.t329_visiblecarruselJ == false)
            {
                sbE.Append(ponerFilaError(dr, "La clase económica (" + oClaseEconomica.t329_idclaseeco + ") para este proyecto/nodo (Replicado sin gestión) no tiene visibilidad en el carrusel."));
                return(false);
            }
            if (oProyectoSubNodo.t305_cualidad == "P" && oClaseEconomica.t329_visiblecarruselP == false)
            {
                sbE.Append(ponerFilaError(dr, "La clase económica (" + oClaseEconomica.t329_idclaseeco + ") para este proyecto/nodo (Replicado con gestión propia) no tiene visibilidad en el carrusel."));
                return(false);
            }
        }


        if (!Fechas.ValidarAnnomes((int)dr["t325_anomes"]))
        {
            sbE.Append(ponerFilaError(dr, "Año o mes de la fecha incorrecto (" + dr["t325_anomes"].ToString().Substring(0, 4) + ")"));
            return(false);
        }

        return(true);
    }
    private string Procesar()
    {
        string sResul  = "";
        int    iNumLin = 1;

        try
        {
            oProyectoSubNodo = null;
            DataSet ds = AddDATAECO.ValidarTabla();

            htProyectoSubNodo = new Hashtable();
            foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows)            //Recorro tabla de proyectos-subnodos
            {
                htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(), new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"],
                                                                                                                                                                (int)dsProyectoSubNodo["t305_idproyectosubnodo"],
                                                                                                                                                                (int)dsProyectoSubNodo["t303_idnodo"],
                                                                                                                                                                dsProyectoSubNodo["t305_cualidad"].ToString()
                                                                                                                                                                )
                                      );
            }

            #region Abro transaccion
            try
            {
                oConn = Conexion.Abrir();
                tr    = Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    Conexion.Cerrar(oConn);
                }
                sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex);
                return(sResul);
            }
            #endregion

            string sEstadoMes  = "";
            int    nSegMesProy = 0;

            SqlDataReader dr = AddDATAECO.Catalogo();
            while (dr.Read())
            {
                oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[dr["t301_idproyecto"].ToString() + "/" + dr["t303_idnodo"].ToString()];
                if (oProyectoSubNodo != null)
                {
                    nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"]);
                    if (nSegMesProy == 0)
                    {
                        sEstadoMes  = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"]);
                        nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"], sEstadoMes, 0, 0, false, 0, 0);
                    }

                    int?iNodoDestino = null;
                    if (dr["t303_idnodo_destino"] != DBNull.Value)
                    {
                        iNodoDestino = (int)dr["t303_idnodo_destino"];
                    }

                    int?iProvedor = null;
                    if (dr["t315_idproveedor"] != DBNull.Value)
                    {
                        iProvedor = (int)dr["t315_idproveedor"];
                    }

                    DATOECO.Insert(tr, nSegMesProy, (int)dr["t329_idclaseeco"], dr["t376_motivo"].ToString(), (decimal)dr["t376_importe"], iNodoDestino, iProvedor, Constantes.FicheroDatos);
                }
                else
                {
                    string sMsg = "No existe un proyectosubnodo correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + " y al " + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + " " + dr["t303_idnodo"].ToString() + ".";
                    dr.Close();
                    dr.Dispose();
                    throw new Exception(sMsg);
                }
                iNumLin++;
            }
            dr.Close();
            dr.Dispose();

            sResul = "OK@#@";
            Conexion.CommitTransaccion(tr);
        }
        catch (Exception ex)
        {
            sResul = "Error@#@" + Errores.mostrarError("Error al procesar el fichero en la línea " + iNumLin.ToString(), ex);
            Conexion.CerrarTransaccion(tr);
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
        return(sResul);
    }
    private DesdeFichero validarLinea(DesdeFichero oDesdeFichero)
    {
        oClaseEconomica = (ClaseEconomica)htClaseEconomica[(int.Parse(oDesdeFichero.idclaseeco)).ToString()];
        if (oClaseEconomica != null)
        {
            oDesdeFichero.t329_necesidad        = oClaseEconomica.t329_necesidad;
            oDesdeFichero.t329_visiblecarruselC = oClaseEconomica.t329_visiblecarruselC;
            oDesdeFichero.t329_visiblecarruselJ = oClaseEconomica.t329_visiblecarruselJ;
            oDesdeFichero.t329_visiblecarruselP = oClaseEconomica.t329_visiblecarruselP;
        }
        if (oDesdeFichero.t329_necesidad == "P")
        {
            oDesdeFichero.codigoexterno = oDesdeFichero.idProveedNodoDestino;
            oProveedor = (Proveedor)htProveedor[oDesdeFichero.codigoexterno]; // cod externo Proveedor

            if (oProveedor != null)
            {
                oDesdeFichero.t315_idproveedor = oProveedor.t315_idproveedor;
            }
        }
        else if (oDesdeFichero.t329_necesidad == "N")
        {
            if (Utilidades.isNumeric(oDesdeFichero.idProveedNodoDestino))
            {
                oDesdeFichero.idnododestino = oDesdeFichero.idProveedNodoDestino;
                oNodoDestino = (NodoDestino)htNodoDestino[(int.Parse(oDesdeFichero.idnododestino)).ToString()]; // cod Nodo

                if (oNodoDestino != null)
                {
                    oDesdeFichero.t303_idnododestino = int.Parse(oDesdeFichero.idnododestino);
                }
            }
            else
            {
                oDesdeFichero.t303_idnododestino = -1;
            }
        }
        oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[oDesdeFichero.idproyecto + "/" + oDesdeFichero.idnodo];
        if (oProyectoSubNodo != null)
        {
            oDesdeFichero.t301_idproyecto        = oProyectoSubNodo.t301_idproyecto;
            oDesdeFichero.t305_idproyectosubnodo = oProyectoSubNodo.t305_idproyectosubnodo;
            oDesdeFichero.t303_idnodo            = oProyectoSubNodo.t303_idnodo;
            oDesdeFichero.t305_cualidad          = oProyectoSubNodo.t305_cualidad;
        }

        if (Utilidades.isNumeric(oDesdeFichero.idnodo))
        {
            oDesdeFichero.t303_idnodo = System.Convert.ToInt32(oDesdeFichero.idnodo);
        }
        else
        {
            oDesdeFichero.t303_idnodo = -1;
        }

        if (Utilidades.isNumeric(oDesdeFichero.idproyecto))
        {
            oDesdeFichero.t301_idproyecto = System.Convert.ToInt32(oDesdeFichero.idproyecto);
        }
        else
        {
            oDesdeFichero.t301_idproyecto = -1;
        }

        if (Utilidades.isNumeric(oDesdeFichero.annomes))
        {
            oDesdeFichero.t325_annomes = System.Convert.ToInt32(oDesdeFichero.annomes);
        }
        else
        {
            oDesdeFichero.t325_annomes = -1;
        }

        if (Utilidades.isNumeric(oDesdeFichero.idclaseeco))
        {
            oDesdeFichero.t329_idclaseeco = System.Convert.ToInt32(oDesdeFichero.idclaseeco);
            if (oDesdeFichero.t329_idclaseeco < 0)
            {
                oDesdeFichero.t329_idclaseeco = 999999;
            }
        }
        else
        {
            oDesdeFichero.t329_idclaseeco = -1;
        }

        if (oDesdeFichero.t305_cualidad == "C" && oDesdeFichero.t329_visiblecarruselC == false)
        {
            oDesdeFichero.t329_idclaseeco = 888888;
        }
        if (oDesdeFichero.t305_cualidad == "J" && oDesdeFichero.t329_visiblecarruselJ == false)
        {
            oDesdeFichero.t329_idclaseeco = 777777;
        }
        if (oDesdeFichero.t305_cualidad == "P" && oDesdeFichero.t329_visiblecarruselP == false)
        {
            oDesdeFichero.t329_idclaseeco = 666666;
        }

        if (Utilidades.isNumeric(oDesdeFichero.importe))
        {
            oDesdeFichero.t376_importe = System.Convert.ToDecimal(oDesdeFichero.importe);
        }
        else
        {
            oDesdeFichero.t376_importe = -999999999;
        }

        //if (Utilidades.isNumeric(oDesdeFichero.idnododestino))
        //    oDesdeFichero.t303_idnododestino = System.Convert.ToInt32(oDesdeFichero.idnododestino);
        //else
        //    oDesdeFichero.t303_idnododestino = -1;

        return(oDesdeFichero);
    }