protected string Grabar(string sSegMesProy, string sAvanceProd) { string sResul = ""; bool bErrorControlado = false; #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 { if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA") { SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, int.Parse(sSegMesProy), null); if (oSMPSN.t325_estado == "C") { bErrorControlado = true; throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el mes en curso.")); } } SEGMESPROYECTOSUBNODO.UpdateAvanceProduccion(tr, int.Parse(sSegMesProy), decimal.Parse(sAvanceProd)); Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); if (!bErrorControlado) { sResul = "Error@#@" + Errores.mostrarError("Error al grabar el avance de producción.", ex); } else { sResul = "Error@#@Operación rechazada.\n\n" + ex.Message; } } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string sSegMesProy, string sAvanceProd, string strDatos) { string sResul = ""; bool bErrorControlado = false; #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 { if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA") { SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, int.Parse(sSegMesProy), null); if (oSMPSN.t325_estado == "C") { bErrorControlado = true; throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el mes en curso.")); } } //PRODUCFACTPROF.DeleteByT325_idsegmesproy(tr, int.Parse(sSegMesProy)); string[] aProd = Regex.Split(strDatos, "///"); foreach (string oProd in aProd) { if (oProd == "") { continue; } string[] aValores = Regex.Split(oProd, "##"); //0. Opcion BD. "I", "U", "D" //1. ID Tarea //2. ID usuario //3. ID Perfil //4. Unidades if (aValores[0] == "D") { PRODUCFACTPROF.Delete(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), int.Parse(aValores[2])); } else { if (aValores[3] != "") { PRODUCFACTPROF.UpdateInsertSiNoExiste(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), int.Parse(aValores[2]), int.Parse(aValores[3]), double.Parse(aValores[4])); } } } SEGMESPROYECTOSUBNODO.UpdateAvanceProduccion(tr, int.Parse(sSegMesProy), decimal.Parse(sAvanceProd)); Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); if (!bErrorControlado) { string sAux = "Error al grabar la producción de los profesionales.\nsSegMesProy=" + sSegMesProy + "\nsAvanceProd=" + sAvanceProd + "\nstrDatos=" + strDatos; sResul = "Error@#@" + Errores.mostrarError(sAux, ex); } else { sResul = "Error@#@Operación rechazada.\n\n" + ex.Message; } } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string sSegMesProy, string sAvanceProd, string strDatos) { string sResul = ""; bool bErrorControlado = false; double dUnidades = 0; double?dUnidadesBD = null; #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 { if (Session["ADMINISTRADOR_PC_ACTUAL"].ToString() != "SA") { SEGMESPROYECTOSUBNODO oSMPSN = SEGMESPROYECTOSUBNODO.Obtener(tr, int.Parse(sSegMesProy), null); if (oSMPSN.t325_estado == "C") { bErrorControlado = true; throw (new Exception("Durante su intervención en la pantalla, otro usuario ha cerrado el mes en curso.")); } } //PRODUCFACTPERF.DeleteByT325_idsegmesproy(tr, int.Parse(sSegMesProy)); string[] aProd = Regex.Split(strDatos, "///"); foreach (string oProd in aProd) { if (oProd == "") { continue; } string[] aValores = Regex.Split(oProd, "##"); //0. Opcion BD. "I", "U", "D" //1. ID Tarifa //2. Unidades //3. Importe tarifa dUnidades = double.Parse(aValores[2]); if (dUnidades == 0) { PRODUCFACTPERF.Delete(tr, int.Parse(sSegMesProy), int.Parse(aValores[1])); } else { //Si existe en BBDD, updateo, sino, inserto dUnidadesBD = PRODUCFACTPERF.GetUnidades(tr, int.Parse(sSegMesProy), int.Parse(aValores[1])); if (dUnidadesBD == null) //No existe registro -> lo insertamos { PRODUCFACTPERF.Insert(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), decimal.Parse(aValores[3]), dUnidades); } else {//El registro ya existe, solo updateamos si el valor es diferente if (dUnidades != dUnidadesBD) { PRODUCFACTPERF.UpdateUnidades(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), dUnidades); } } } } SEGMESPROYECTOSUBNODO.UpdateAvanceProduccion(tr, int.Parse(sSegMesProy), decimal.Parse(sAvanceProd)); Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); if (!bErrorControlado) { sResul = "Error@#@" + Errores.mostrarError("Error al grabar la producción por perfil.", ex); } else { sResul = "Error@#@Operación rechazada.\n\n" + ex.Message; } } finally { Conexion.Cerrar(oConn); } return(sResul); }