private string Procesar(string sAnno, string strNodos) { string sResul = ""; string sEstadoMes = ""; int nSMPSN = 0; try { #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(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 PROYECTOSUBNODO.EliminarObraEnCurso(tr, int.Parse(sAnno), strNodos); DataSet ds = PROYECTOSUBNODO.ObtenerProyectosObraEnCurso(tr, int.Parse(sAnno), strNodos); foreach (DataRow oPSN in ds.Tables[0].Rows) { nSMPSN = (int)oPSN["t325_idsegmesproy_dic"]; if (nSMPSN == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnno) * 100 + 12); nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnno) * 100 + 12, sEstadoMes, 0, 0, false, 0, 0); } //Insertamos en diciembre el importe del 20% en negativo. DATOECO.Insert(tr, nSMPSN, Constantes.nIdClaseObraEnCurso, "20% Obra en Curso Fin de Año", decimal.Parse(oPSN["20_Obra_Curso_Anno"].ToString()) * -1, null, null, null); nSMPSN = (int)oPSN["t325_idsegmesproy_ene"]; if (nSMPSN == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oPSN["t305_idproyectosubnodo"], (int.Parse(sAnno) + 1) * 100 + 1); nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, (int)oPSN["t305_idproyectosubnodo"], (int.Parse(sAnno) + 1) * 100 + 1, sEstadoMes, 0, 0, false, 0, 0); } //Insertamos en diciembre el importe del 20% en positivo. DATOECO.Insert(tr, nSMPSN, Constantes.nIdClaseObraEnCurso, "20% Obra en Curso Fin de Año", decimal.Parse(oPSN["20_Obra_Curso_Anno"].ToString()), null, null, null); } ds.Dispose(); Conexion.CommitTransaccion(tr); sResul = "OK"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al realizar el paso del 20% de la obra en curso.", ex, false); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string procesarCierre(string sOrigen, string sAnomesADM, string sPSN, string sCualidad, string sSegMesProy, string sIDProyecto, string sAnomes, string sIdSegMesProy) { string sResul = ""; string sEstadoMes = ""; bool bReintentar = true, bHayQueAjustar = false; decimal nImporteAjuste = 0; #region apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(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 try { //comprobar que no se hayan abierto meses anteriores. if (sOrigen == "ADM" || int.Parse(sAnomes) == PROYECTOSUBNODO.ObtenerPrimerMesAbierto(tr, int.Parse(sPSN))) { if (sCualidad == "C") { SEGMESPROYECTOSUBNODO.GenerarMesEnTransaccion(tr, int.Parse(sIDProyecto)); SqlDataReader dr = SEGMESPROYECTOSUBNODO.ObtenerAjuste(tr, int.Parse(sSegMesProy)); if (dr.Read()) { bHayQueAjustar = ((int)dr["ajuste"] == 1) ? true : false; nImporteAjuste = decimal.Parse(dr["Importe_Ajuste"].ToString()); } dr.Close(); dr.Dispose(); if (bHayQueAjustar) { //buscar el mes máximo para ese PSN y crear uno posterior para el ajuste int nUltAnomes = PROYECTOSUBNODO.ObtenerUltimoMes(tr, int.Parse(sPSN)); sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, int.Parse(sPSN), Fechas.AddAnnomes(nUltAnomes, 1)); int nNuevoSegMes = SEGMESPROYECTOSUBNODO.Insert(tr, int.Parse(sPSN), Fechas.AddAnnomes(nUltAnomes, 1), sEstadoMes, 0, 0, false, 0, 0); DATOECO.Insert(tr, nNuevoSegMes, Constantes.AjusteProdCont, "Ajuste de producción y contratación", nImporteAjuste, null, null, null); } } if (sOrigen == "ADM") { SEGMESPROYECTOSUBNODO.CerrarMesADM(tr, int.Parse(sPSN), int.Parse(sAnomesADM)); } else { SEGMESPROYECTOSUBNODO.Cerrar(tr, int.Parse(sSegMesProy)); } sResul = "OK@#@"; } else { sResul = "OK@#@NO"; } Conexion.CommitTransaccion(tr); if ((bool)Session["ALERTASPROY_ACTIVAS"] && sIdSegMesProy != "") { try { sIdSegMesProyGenerarDialogos = sIdSegMesProy; ThreadStart ts = new ThreadStart(GenerarDialogos); Thread workerThread = new Thread(ts); workerThread.Start(); //SEGMESPROYECTOSUBNODO.GenerarDialogosDeAlertas(sIdSegMesProy); } catch (Exception) { } } } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al procesar el cierre.", ex, bReintentar); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string Procesar(string sAnoMes, string sMeses, string strNodos) { string sResul = ""; ArrayList aListCorreo = new ArrayList(); try { #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(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 PROYECTOSUBNODO.EliminarObraEnCursoDotacion(tr, int.Parse(sAnoMes), strNodos); DataSet ds = PROYECTOSUBNODO.ObtenerProyectosObraEnCursoDotacion(tr, int.Parse(sAnoMes), int.Parse(sMeses), strNodos); int idT325 = 0; foreach (DataRow oPSN in ds.Tables[0].Rows) { idT325 = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnoMes)); if (idT325 == 0) { idT325 = SEGMESPROYECTOSUBNODO.InsertSiNoExiste(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnoMes)); } //Insertamos en el año-mes indicado el importe del saldo obra en curso en negativo. DATOECO.Insert(tr, idT325, Constantes.nIdClaseDotacionObraEnCurso, "Dotación-Ajuste Obra en Curso", decimal.Parse(oPSN["Obra_Curso_Acum"].ToString()) * -1, null, null, null); //Registramos en la cola de correo EncolarCorreo(aListCorreo, oPSN["codred_gestorprod"].ToString(), oPSN["codred_comercialhermes"].ToString(), decimal.Parse(oPSN["Obra_Curso_Acum"].ToString()).ToString("N"), int.Parse(oPSN["t306_idcontrato"].ToString()).ToString("#,###"), oPSN["t377_denominacion"].ToString(), int.Parse(oPSN["t301_idproyecto"].ToString()).ToString("#,###"), oPSN["t301_denominacion"].ToString(), sMeses.ToString() ); } ds.Dispose(); // Conexion.CommitTransaccion(tr); Conexion.CerrarTransaccion(tr); EnviarCorreos(aListCorreo); sResul = "OK"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al realizar el ajuste de la dotación de la obra en curso.", ex, false); } finally { Conexion.Cerrar(oConn); } return(sResul); }
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 string Procesar() { string sResul = "", lin = "", sLin = ""; int iNumLin = 1; try { CargarArrayHT(); #region Apertura de conexión y transacción 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 //Leo el fichero de base de datos FICHEROSMANIOBRA oFic = FICHEROSMANIOBRA.Select(tr, Constantes.FicheroDatos); if (oFic.t447_fichero.Length > 0) { #region Leer fichero de BBDD MemoryStream mstr = new MemoryStream(oFic.t447_fichero); mstr.Seek(0, SeekOrigin.Begin); int count = 0; byte[] byteArray = new byte[mstr.Length]; while (count < mstr.Length) { byteArray[count++] = System.Convert.ToByte(mstr.ReadByte()); } lin = FromASCIIByteArray(byteArray); //lin = FromUnicodeByteArray(byteArray); #endregion string[] aArgs = Regex.Split(lin, "\r\n"); DesdeFichero oDesdeFichero = null; string sEstadoMes = ""; int nSegMesProy = 0; for (int iLinea = 0; iLinea < aArgs.Length - 1; iLinea++) { if (aArgs[iLinea] != "") { sLin = aArgs[iLinea]; iNumLin = iLinea + 1; oDesdeFichero = validarLinea(DesdeFichero.getFila(sLin)); int?iProveedor = null; if (oDesdeFichero.t315_idproveedor != 0) { iProveedor = oDesdeFichero.t315_idproveedor; } int?iNodoDestino = null; if (oDesdeFichero.t303_idnododestino != 0) { iNodoDestino = oDesdeFichero.t303_idnododestino; } nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, oDesdeFichero.t305_idproyectosubnodo, (int)oDesdeFichero.t325_annomes); if (nSegMesProy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, oDesdeFichero.t305_idproyectosubnodo, (int)oDesdeFichero.t325_annomes); nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, oDesdeFichero.t305_idproyectosubnodo, (int)oDesdeFichero.t325_annomes, sEstadoMes, 0, 0, false, 0, 0); } DATOECO.Insert(tr, nSegMesProy, oDesdeFichero.t329_idclaseeco, oDesdeFichero.t376_motivo, (decimal)oDesdeFichero.t376_importe, (oDesdeFichero.t329_necesidad == "N") ? iNodoDestino : null, (oDesdeFichero.t329_necesidad == "P") ? iProveedor : null, Constantes.FicheroDatos, oDesdeFichero.t422_idmoneda); } } } sResul = "OK@#@"; Conexion.CommitTransaccion(tr); } catch (Exception ex) { //Errores.mostrarError("Error al tramitar el fichero", ex); sResul = "Error@#@" + Errores.mostrarError("Error al procesar el fichero en la línea " + iNumLin.ToString() + " : " + sLin, ex); Conexion.CerrarTransaccion(tr); } finally { Conexion.Cerrar(oConn); } return(sResul); }