protected string Procesar(string sSegMesProy, string nPSN, string sConsPersonas, string sConsNivel, string sProdProfesional, string sProdPerfil, string sAvance, string sPeriodCons, string sPeriodProd, string sClasesAClonar, string strMeses) { string sResul = "", sw = "0"; int nSMPSN_destino = 0; int t325_anomes_maxC = 0; int t325_anomes_minA = 0; int t303_ultcierreeco = 0; #region apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { DataSet ds = SEGMESPROYECTOSUBNODO.ObtenerMesesReferenciaParaClonado(tr, int.Parse(nPSN)); foreach (DataRow oMes in ds.Tables[0].Rows) { if (oMes["t325_estado"].ToString() == "C") { t325_anomes_maxC = (int)oMes["t325_anomes"]; } if (oMes["t325_estado"].ToString() == "A") { t325_anomes_minA = (int)oMes["t325_anomes"]; } } foreach (DataRow oMes in ds.Tables[1].Rows) { t303_ultcierreeco = (int)oMes["t303_ultcierreeco"]; } string[] aAnomes = Regex.Split(strMeses, "##"); foreach (string oAnomes in aAnomes) { if (oAnomes == "") { continue; } if (int.Parse(oAnomes) <= t303_ultcierreeco || int.Parse(oAnomes) <= t325_anomes_maxC) { sw = "1"; continue; } nSMPSN_destino = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, int.Parse(nPSN), int.Parse(oAnomes)); if (nSMPSN_destino != 0) { SEGMESPROYECTOSUBNODO.Delete(tr, nSMPSN_destino); } nSMPSN_destino = SEGMESPROYECTOSUBNODO.Insert(tr, int.Parse(nPSN), int.Parse(oAnomes), "A", 0, 0, false, 0, 0); SEGMESPROYECTOSUBNODO.ClonarMes(tr, int.Parse(sSegMesProy), nSMPSN_destino, sClasesAClonar, (sConsPersonas == "1") ? true : false, (sConsNivel == "1") ? true : false, (sProdProfesional == "1") ? true : false, (sProdPerfil == "1") ? true : false, (sAvance == "1") ? true : false, (sPeriodCons == "1") ? true : false, (sPeriodProd == "1") ? true : false, SUPER.Capa_Negocio.Utilidades.EsAdminProduccion() ); } Conexion.CommitTransaccion(tr); sResul = "OK@#@" + sw; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al clonar los datos del mes de referencia.", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
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 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 Grabar(string sPSN, string sAnnomes, string strProfesionales, string sHayDatosProf) { string sResul = ""; string sEstadoMes = ""; int nPSN = int.Parse(sPSN), nAnnomes = int.Parse(sAnnomes), nSMPSN = 0; bool bErrorControlado = false; #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 try { if (PROYECTOSUBNODO.ObtenerUltCierreEcoNodoPSN(tr, nPSN) >= nAnnomes) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("No se ha realizado el traspaso, debido a que el " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " se encuentra cerrado en el mes a traspasar."); } else { nSMPSN = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN, nAnnomes); if (nSMPSN == 0) { if (sHayDatosProf == "1") { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN, nAnnomes); if (sEstadoMes != "C") { nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN, nAnnomes, sEstadoMes, 0, 0, false, 0, 0); } } } else { if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA") { SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, nSMPSN, null); if (oSMPSN.t325_estado == "C") { bErrorControlado = true; throw (new Exception("No se permite grabar, debido a que el mes en curso está cerrado para el proyecto.")); } } CONSPERMES.DeleteByT325_idsegmesproy(tr, nSMPSN); } #region Datos Profesionales if (strProfesionales != "" && sEstadoMes != "C") { string[] aProfesionales = Regex.Split(strProfesionales, "##"); foreach (string oProf in aProfesionales) { if (oProf == "") { continue; } string[] aProf = Regex.Split(oProf, "//"); ///aProf[0] = idUsuario ///aProf[1] = costecon ///aProf[2] = costerep ///aProf[3] = nodo_usuario ///aProf[4] = empresa_nodo ///aProf[5] = unidades económicas CONSPERMES.Insert(tr, nSMPSN, int.Parse(aProf[0]), double.Parse(aProf[5]), decimal.Parse(aProf[1]), decimal.Parse(aProf[2]), (aProf[3] != "") ? (int?)int.Parse(aProf[3]) : null, (aProf[4] != "") ? (int?)int.Parse(aProf[4]) : null); } } #endregion SEGMESPROYECTOSUBNODO.UpdateTraspasoIAP(tr, nSMPSN, true); Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } } catch (Exception ex) { Conexion.CerrarTransaccion(tr); if (!bErrorControlado) { sResul = "Error@#@" + Errores.mostrarError("Error al grabar los consumos del proyecto.", ex); } else { sResul = "Error@#@Operación rechazada.\n\n" + ex.Message; } } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string Traspglobal(string sSobreescribir) { string sResul = ""; string sEstadoMes = ""; int nSMPSN = 0; DataSet dsProf = null; #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 try { DataSet ds = CONSPERMES.ObtenerPSNaTraspasarDS((int)Session["UsuarioActual"]); foreach (DataRow oPSN in ds.Tables[0].Rows) { if (PROYECTOSUBNODO.ObtenerUltCierreEcoNodoPSN(tr, (int)oPSN["t305_idproyectosubnodo"]) >= (int)oPSN["annomes_traspaso"]) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("No se ha realizado el traspaso, debido a que el " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + " '" + oPSN["t303_denominacion"].ToString() + "' se encuentra cerrado en el mes a traspasar."); break; } else { nSMPSN = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"]); if (nSMPSN == 0) { if (oPSN["tiene_consumos"].ToString() == "1") { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"]); if (sEstadoMes == "C") { continue; } nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"], sEstadoMes, 0, 0, false, 0, 0); } } else { SEGMESPROYECTOSUBNODO oSegMes = SEGMESPROYECTOSUBNODO.Obtener(tr, nSMPSN, null); if (oSegMes.t325_estado == "C") { continue; } if (sSobreescribir == "1") { CONSPERMES.DeleteByT325_idsegmesproy(tr, nSMPSN); } } #region Datos Profesionales if (oPSN["tiene_consumos"].ToString() == "1") //si tiene consumos técnicos (IAP) { dsProf = CONSPERMES.ObtenerDatosPSNaTraspasarDS(tr, (int)oPSN["t305_idproyectosubnodo"], (int)oPSN["annomes_traspaso"], oPSN["t301_modelocoste"].ToString(), true, (sSobreescribir == "1")? false:true); foreach (DataRow oProf in dsProf.Tables[0].Rows) { double nUnidades = (oPSN["t301_modelocoste"].ToString() == "J") ? double.Parse(oProf["jornadas_adaptadas"].ToString()) : double.Parse(oProf["horas_reportadas_proy"].ToString()); if (nUnidades != 0) { CONSPERMES.Insert(tr, nSMPSN, (int)oProf["t314_idusuario"], (oPSN["t301_modelocoste"].ToString() == "J") ? double.Parse(oProf["jornadas_adaptadas"].ToString()) : double.Parse(oProf["horas_reportadas_proy"].ToString()), decimal.Parse(oProf["t330_costecon"].ToString()), decimal.Parse(oProf["t330_costerep"].ToString()), (oProf["t303_idnodo"] != DBNull.Value)? (int?)oProf["t303_idnodo"]:null, (oProf["t313_idempresa"] != DBNull.Value)? (int?)oProf["t313_idempresa"]:null); } } dsProf.Dispose(); } #endregion SEGMESPROYECTOSUBNODO.UpdateTraspasoIAP(tr, nSMPSN, true); } } ds.Dispose(); Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al realizar el traspaso global.", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string Procesar(string sMesValor, string strNodos) { string sResul = ""; string sEstadoMes = ""; 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 DataSet ds = PROYECTOSUBNODO.ObtenerSegMesGastosFinancierosDS(tr, int.Parse(sMesValor), strNodos); foreach (DataRow oSegMes in ds.Tables[0].Rows) { try { if (oSegMes["t325_idsegmesproy"].ToString() != "") { SEGMESPROYECTOSUBNODO.UpdateGastosFinancieros(tr, (int)oSegMes["t325_idsegmesproy"], decimal.Parse(oSegMes["gasto_financiero"].ToString())); } else { if (decimal.Parse(oSegMes["gasto_financiero"].ToString()) != 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oSegMes["t305_idproyectosubnodo"], int.Parse(sMesValor)); SEGMESPROYECTOSUBNODO.Insert(tr, (int)oSegMes["t305_idproyectosubnodo"], int.Parse(sMesValor), sEstadoMes, 0, decimal.Parse(oSegMes["gasto_financiero"].ToString()), false, 0, 0); } } } catch (Exception exup) { if (((SqlException)exup).Number == 2601) { SEGMESPROYECTOSUBNODO.UpdateGastosFinancierosByPSNAnomes(tr, (int)oSegMes["t305_idproyectosubnodo"], int.Parse(sMesValor), decimal.Parse(oSegMes["gasto_financiero"].ToString())); } else { throw (new Exception("Error al registrar los gastos financieros.")); } } } ds.Dispose(); string[] aNodos = Regex.Split(strNodos, ","); foreach (string oNodo in aNodos) { if (oNodo == "") { continue; } NODO objNodoAux = NODO.Select(tr, int.Parse(oNodo)); HISTORIALGASTOSFINANCIEROS.Insert(tr, int.Parse(oNodo), int.Parse(sMesValor), DateTime.Now, objNodoAux.t303_interesGF, int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString())); } Conexion.CommitTransaccion(tr); sResul = "OK"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al registrar los gastos financieros de un " + Estructura.getDefLarga(Estructura.sTipoElem.NODO) + ".", ex, false); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string strDatos) { string sResul = ""; int sSegMesProy = 0; string sEstadoMes = ""; bool bErrorControlado = false; double dUnidades = 0; double?dUnidadesBD = 0; #region apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { string[] aConsumo = Regex.Split(strDatos, "///"); foreach (string oConsumo in aConsumo) { if (oConsumo == "") { continue; } string[] aValores = Regex.Split(oConsumo, "##"); //0. Opcion BD. "I", "U", "D" //1. AnnoMes //2. ID usuario //3. Coste //4. Unidades //5. Costerep //6. idempresa_nodomes //7. Nodo nPSN = int.Parse(Request.QueryString["nPSN"].ToString()); sSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, nPSN, int.Parse(aValores[1])); if (sSegMesProy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, nPSN, int.Parse(aValores[1])); if (sEstadoMes == "C") { bErrorControlado = true; throw (new Exception("Durante su intervención en la pantalla, otro usuario ha eliminado el año/mes: " + aValores[1])); } sSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, nPSN, int.Parse(aValores[1]), sEstadoMes, 0, 0, false, 0, 0); } else { SEGMESPROYECTOSUBNODO oSegMes = SEGMESPROYECTOSUBNODO.Obtener(tr, nPSN, int.Parse(aValores[1]), Request.QueryString["sMoneda"].ToString()); if (oSegMes.t325_estado == "C") { bErrorControlado = true; throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el año/mes: " + aValores[1])); } else { sSegMesProy = oSegMes.t325_idsegmesproy; } } dUnidades = double.Parse(aValores[4]); if (dUnidades == 0) { CONSPERMES.Delete(tr, sSegMesProy, int.Parse(aValores[2])); } else { //Si existe en BBDD, updateo, sino, inserto dUnidadesBD = CONSPERMES.GetUnidades(tr, sSegMesProy, int.Parse(aValores[2])); if (dUnidadesBD == null) //No existe registro -> lo insertamos { int?nEmpresa = null; if (aValores[6] != "") { nEmpresa = int.Parse(aValores[6]); } int?nNodo = null; if (aValores[7] != "") { nNodo = int.Parse(aValores[7]); } CONSPERMES.Insert(tr, sSegMesProy, int.Parse(aValores[2]), dUnidades, decimal.Parse(aValores[3]), decimal.Parse(aValores[5]), nNodo, nEmpresa); } else {//El registro ya existe, solo updateamos si el valor es diferente if (dUnidades != dUnidadesBD) { CONSPERMES.UpdateUnidades(tr, sSegMesProy, int.Parse(aValores[2]), dUnidades); } } } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); if (!bErrorControlado) { sResul = "Error@#@" + Errores.mostrarError("Error al grabar los consumos de los profesionales.", ex); } else { sResul = "Error@#@Operación rechazada.\n\n" + ex.Message; } } 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 procesarOF(string sAnomes, string strDatos) { string sResul = ""; string sEstadoMes = ""; int nSMP = 0; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } return("Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex)); } #endregion try { string[] aOrdenes = Regex.Split(strDatos, "///"); foreach (string oOrden in aOrdenes) { if (oOrden == "") { continue; } //0. t376_iddatoeco //1. t325_idsegmesproy //2. t305_idproyectosubnodo //3. Opcion: B -> Borrado, D -> Decalaje string[] aValores = Regex.Split(oOrden, "##"); if (aValores[3] == "B") { DATOECO.Delete(tr, int.Parse(aValores[0])); } else { //1º Obtener el siguiente idsegmesproy al actual. nSMP = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, int.Parse(aValores[2]), Fechas.AddAnnomes(int.Parse(sAnomes), 1)); if (nSMP == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, int.Parse(aValores[2]), Fechas.AddAnnomes(int.Parse(sAnomes), 1)); nSMP = SEGMESPROYECTOSUBNODO.Insert(tr, int.Parse(aValores[2]), Fechas.AddAnnomes(int.Parse(sAnomes), 1), sEstadoMes, 0, 0, false, 0, 0); } DATOECO.UpdateDecalaje(tr, int.Parse(aValores[0]), nSMP); } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de avance", ex); } 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); }
protected string procesar(string sAnomesProceso, string sCadena) { string sResul = "OK@#@"; string sEstadoMes = ""; int iNumLin = 1, iAnomes; int it325_idsegmesproy, iClaseEco; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } return("Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex)); } #endregion try { SqlDataReader dr = INTERFACTSAP.Catalogo(); iAnomes = int.Parse(sAnomesProceso); ArrayList slProyPP = new ArrayList(); while (dr.Read()) { if (sCadena.IndexOf("##" + iNumLin.ToString() + "##") == -1) { it325_idsegmesproy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, (int)dr["t305_idproyectosubnodo"], iAnomes); if (it325_idsegmesproy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)dr["t305_idproyectosubnodo"], iAnomes); it325_idsegmesproy = SEGMESPROYECTOSUBNODO.Insert(tr, (int)dr["t305_idproyectosubnodo"], iAnomes, sEstadoMes, 0, 0, false, 0, 0); } if ((bool)dr["t445_grupo"]) { //if ((bool)dr["t445_ute"]) iClaseEco = Constantes.IngExtServProf; //else iClaseEco = Constantes.IngExtServProfGrupo; iClaseEco = Constantes.IngExtServProfGrupo; } else { iClaseEco = Constantes.IngExtServProf; } DATOECO.InsertFactura(tr, it325_idsegmesproy, iClaseEco, dr["t445_descri"].ToString(), decimal.Parse(dr["t445_imp_fact"].ToString()), null, null, DateTime.Parse(dr["t445_fec_fact"].ToString()), dr["t445_serie"].ToString(), int.Parse(dr["t445_numero"].ToString()), int.Parse(dr["t313_idempresa"].ToString()), int.Parse(dr["t302_idcliente"].ToString()), Constantes.FicheroFacturasSAP, dr["t445_refcliente"].ToString()); INTERFACTSAP.Delete(tr, (int)dr["t445_id"]); if (dr["t301_estado"].ToString() == "P") { ponerProyPP(int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###"), slProyPP); } } iNumLin++; } dr.Close(); dr.Dispose(); Conexion.CommitTransaccion(tr); //sResul = "OK@#@"; //sResul = ObtenerTiposAsunto("3", "0"); //genero cadena con los proyectos en estado Presupuestado foreach (string sProy in slProyPP) { sResul += sProy + "##"; } sResul += "@#@" + cabErrores() + "</table>@#@" + INTERFACTSAP.numFacturas(null).ToString("#,##0"); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al procesar", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }