Ejemplo n.º 1
0
    public static Models.FicheroIAP_Errores Procesar(string tipoFichero)
    {
        Models.FicheroIAP_Errores oRes     = null;
        BLL.FicheroIAP            bFichero = new BLL.FicheroIAP();
        string sNombre = "FicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString();

        try
        {
            HttpPostedFile selectedFile = (HttpPostedFile)HttpContext.Current.Cache[sNombre];

            if (selectedFile != null)
            {
                oRes = bFichero.Grabar(tipoFichero, selectedFile);
            }
        }
        catch (Exception ex)
        {
            throw (new Exception(ex.Message));
        }
        finally
        {
            bFichero.Dispose();
            HttpContext.Current.Cache.Remove(sNombre);
        }
        return(oRes);
    }
Ejemplo n.º 2
0
    private static Hashtable CargarArrayProfesionales()
    {
        Hashtable htProfesional = new Hashtable();

        BLL.FicheroIAP bFicheroIAP = null;
        try
        {
            bFicheroIAP = new BLL.FicheroIAP();

            if (HttpContext.Current.Cache["ProfesionalesFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()] == null)
            {
                List <PROFESIONAL> oListaProf = bFicheroIAP.GetProfesionales();
                foreach (PROFESIONAL OP in oListaProf) //Recorro tabla de Profesionales
                {
                    htProfesional.Add(OP.t314_idusuario.ToString(),
                                      new PROFESIONAL(OP.t001_idficepi, OP.t314_idusuario, OP.Profesional,
                                                      OP.t303_ultcierreIAP, OP.t314_jornadareducida, OP.t303_idnodo,
                                                      OP.t314_horasjor_red, OP.t314_fdesde_red, OP.t314_fhasta_red,
                                                      OP.t314_controlhuecos, OP.fUltImputacion, OP.t066_idcal,
                                                      OP.t066_descal, OP.SemanaLaboral, OP.t001_codred, OP.fAlta, OP.fBaja));
                }
                HttpContext.Current.Cache["ProfesionalesFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()] = htProfesional;
            }
            else
            {
                htProfesional = (Hashtable)HttpContext.Current.Cache["ProfesionalesFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()];
            }

            return(htProfesional);
        }
        catch
        {
            throw (new Exception("Error al obtener las consultas para la carga de datos."));
        }
        finally
        {
            bFicheroIAP.Dispose();
        }
    }
Ejemplo n.º 3
0
    private static Hashtable CargarArrayTareas()
    {
        Hashtable htTarea = new Hashtable();

        BLL.FicheroIAP bFicheroIAP = null;
        try
        {
            bFicheroIAP = new BLL.FicheroIAP();

            if (HttpContext.Current.Cache["TareasFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()] == null)
            {
                List <TAREA> oListaTareas = bFicheroIAP.GetTareas();
                foreach (TAREA OT in oListaTareas) //Recorro tabla de TAREA
                {
                    htTarea.Add(OT.t332_idtarea.ToString(), new TAREA(OT.t332_idtarea, OT.t332_destarea, OT.t331_idpt,
                                                                      OT.t332_estado, OT.t332_cle, OT.t332_tipocle, OT.t332_impiap,
                                                                      OT.t305_idproyectosubnodo, OT.t332_fiv, OT.t332_ffv,
                                                                      OT.t323_regjornocompleta, OT.t331_obligaest,
                                                                      OT.t331_estado, OT.t323_regfes, OT.t301_estado));
                }
                HttpContext.Current.Cache["TareasFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()] = htTarea;
            }
            else
            {
                htTarea = (Hashtable)HttpContext.Current.Cache["TareasFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()];
            }
            return(htTarea);
        }
        catch
        {
            throw (new Exception("Error al obtener las consultas para la carga de datos."));
        }
        finally
        {
            bFicheroIAP.Dispose();
        }
    }
Ejemplo n.º 4
0
    private static Models.FicheroIAP_Errores Validar(HttpPostedFile selectedFile, string sEstructu, int idFicepi)
    {
        //StringBuilder sbE = new StringBuilder();
        Models.FicheroIAP_Errores oRes = new Models.FicheroIAP_Errores();
        List <Models.FicheroIAP_Errores_Linea> oListaE = new List <Models.FicheroIAP_Errores_Linea>();
        bool bErrorControlado = false;

        BLL.FicheroIAP bFicheroIAP = new BLL.FicheroIAP();
        //int idFicepi = int.Parse(Session["IDFICEPI_ENTRADA"].ToString());
        int       iCont  = 0;
        int       iNumOk = 0;
        string    sErrores;
        Hashtable htT;
        Hashtable htP;

        try
        {
            //Vacío las caches
            //HttpContext.Current.Cache.Remove("TareasFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString());
            //HttpContext.Current.Cache.Remove("ProfesionalesFicheroIAP_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString());

            try
            {
                htT = CargarArrayTareas();
                htP = CargarArrayProfesionales();
            }
            catch (Exception ex)
            {
                bErrorControlado = true;
                throw (new Exception(ex.Message));
            }


            if (selectedFile.ContentLength != 0)
            {
                string sFichero = selectedFile.FileName;
                //Grabo el archivo en base de datos
                byte[] ArchivoEnBinario = new Byte[0];
                ArchivoEnBinario = new Byte[selectedFile.ContentLength];                        //Crear el array de bytes con la longitud del archivo
                selectedFile.InputStream.Read(ArchivoEnBinario, 0, selectedFile.ContentLength); //Forzar al control del archivo a cargar los datos en el array

                int iRows = bFicheroIAP.Update(Constantes.FicheroIAP, idFicepi, ArchivoEnBinario);
                if (iRows == 0)
                {
                    bErrorControlado = true;
                    throw (new Exception("No existe entrada asociada a este proceso en el fichero de Maniobra"));
                }

                selectedFile.InputStream.Position = 0;
                StreamReader    r = new StreamReader(selectedFile.InputStream, System.Text.Encoding.UTF7);
                DesdeFicheroIAP oDesdeFicheroIAP = null;

                String strLinea = null;
                while ((strLinea = r.ReadLine()) != "")
                {
                    if (strLinea == null)
                    {
                        break;
                    }
                    iCont++;
                    try
                    {
                        oDesdeFicheroIAP = getLinea(DesdeFicheroIAP.getFila(strLinea, sEstructu), sEstructu, htT, htP);
                    }
                    catch (Exception ex)
                    {
                        bErrorControlado = true;
                        //oDesdeFicheroIAP = new DesdeFicheroIAP();
                        //sbE.Append(ponerFilaError(oDesdeFicheroIAP, "Error al procesar el fichero de entrada en la línea (" + iCont + ") " + ex.Message, sEstructu, iCont));
                        Models.FicheroIAP_Errores_Linea oLinE = new Models.FicheroIAP_Errores_Linea();
                        oLinE.Error = "Error al procesar el fichero de entrada en la línea (" + iCont + ") " + ex.Message;
                        oListaE.Add(oLinE);
                        continue;
                    }
                    Models.FicheroIAP_Errores_Linea oLin = validarCampos(oDesdeFicheroIAP, true, sEstructu, iCont, htT, htP);
                    if (oLin.Error == null)
                    {
                        iNumOk++;
                    }
                    else
                    {
                        oListaE.Add(oLin);
                    }
                }
            }
            //if (sEstructu == "D") sFLS.Value = sCab1.Value + sbE.ToString() + sPie1.Value;
            //else sFLS.Value = sCab2.Value + sbE.ToString() + sPie2.Value;

            //nFilas.InnerText = iCont.ToString("#,##0");
            //nFilasC.InnerText = iNumOk.ToString("#,##0");
            //nFilasE.InnerText = (iCont - iNumOk).ToString("#,##0");
            //this.hdnIniciado.Value = "T";
            oRes.nFilas  = iCont;
            oRes.nFilasC = iNumOk;
            oRes.nFilasE = iCont - iNumOk;
            if (oListaE.Count > 0)
            {
                oRes.Errores = oListaE;
            }
            //return iCont.ToString("#,##0") + "@#@" + iNumOk.ToString("#,##0") + "@#@" + (iCont - iNumOk).ToString("#,##0") +
            //        "@#@" + sbE.ToString();

            return(oRes);
        }
        catch (Exception ex)
        {
            if (bErrorControlado)
            {
                if (iCont != 0)
                {
                    sErrores = "Error al procesar el fichero de entrada en la línea (" + iCont + ") " + ex.Message;
                }
                else
                {
                    sErrores = ex.Message;
                }
            }
            else
            {
                sErrores = "El fichero no tiene el formato requerido para el proceso";
            }
            throw (new Exception(sErrores));
        }
        finally
        {
            bFicheroIAP.Dispose();
        }
    }