protected string Grabar(string strDatosTarea, string slTareas) { string sIdTarea, sEstado, sResul = ""; int nIdTarea, nIdPT, iUsuario; bool bFaltanValoresAE = false, bPrimeraTarea = true; short nOrden = 0, iCodUne; #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); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { string[] aDatosTarea = Regex.Split(strDatosTarea, "##"); ///aDatosTarea[0] = IDPT ///aDatosTarea[1] = ID Actividad ///aDatosTarea[2] = NodoActivo int?nAct = null; if ((aDatosTarea[1] != "") && (aDatosTarea[1] != "0")) { nAct = int.Parse(aDatosTarea[1]); } nIdPT = int.Parse(aDatosTarea[0]); iUsuario = int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()); iCodUne = short.Parse(aDatosTarea[2]); string[] aTarea = Regex.Split(slTareas, "##"); for (int i = 0; i < aTarea.Length; i++) { if (aTarea[i] != "") { string[] aTar = Regex.Split(aTarea[i], ";"); sIdTarea = aTar[0]; sEstado = aTar[1]; if ((sIdTarea != "") && (sIdTarea != "0")) { nIdTarea = int.Parse(sIdTarea); if (bPrimeraTarea) { nOrden = TAREAPSP.flCalcularOrden2(null, nIdPT); bPrimeraTarea = false; } else { nOrden++; } TAREAPSP.ModificarPadre(tr, nIdTarea, nIdPT, nAct, nOrden, iUsuario); //Como he podido cambiar de PT hay que ver si tiene los AE del nuevo PT para calcular su estado //Siempre que la tarea no esté FINALIZADA, CERRADA o ANULADA (Victor 14/02/2012) if (sEstado != "3" && sEstado != "4" && sEstado != "5") { bFaltanValoresAE = ProyTec.bFaltanValoresAE(tr, iCodUne, nIdPT); if (bFaltanValoresAE) { TAREAPSP.ModificarEstado(tr, nIdTarea, 2, iUsuario);//Paso a estado PENDIENTE } } } } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de la tarea", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string sCopias, string slTareas) { string sIdTarea, sResul = "", sDesTarea = ""; int nIdTarea, iUsuario, nIdTareaNew; short nOrden = 0, nCopias = 0; byte nEstado = 1; DateTime?dValIni = null; DateTime?dValFin = null; DateTime?dPLIni = null; DateTime?dPLFin = null; DateTime?dPRFin = null; #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); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { iUsuario = int.Parse(Session["NUM_EMPLEADO_ENTRADA"].ToString()); nCopias = short.Parse(sCopias); string[] aTarea = Regex.Split(slTareas, "##"); for (int i = 0; i < aTarea.Length; i++) { sIdTarea = aTarea[i]; if ((sIdTarea != "") && (sIdTarea != "0")) { nIdTarea = int.Parse(sIdTarea); TAREAPSP oTarea = TAREAPSP.Obtener(tr, nIdTarea); nOrden = TAREAPSP.flCalcularOrden2(null, oTarea.t331_idpt); //Por defecto la nueva tarea estará activa salvo que la original esté pendiente if (oTarea.t332_estado == 2) { nEstado = 2; } else { nEstado = 1; } if (oTarea.t332_fiv.ToString() != "") { dValIni = oTarea.t332_fiv; } if (oTarea.t332_ffv.ToString() != "") { dValFin = oTarea.t332_ffv; } if (oTarea.t332_fipl.ToString() != "") { dPLIni = oTarea.t332_fipl; } if (oTarea.t332_ffpl.ToString() != "") { dPLFin = oTarea.t332_ffpl; } if (oTarea.t332_ffpr.ToString() != "") { dPRFin = oTarea.t332_ffpr; } for (short j = 1; j <= nCopias; j++) { sDesTarea = "Copia " + j.ToString() + " de " + oTarea.t332_destarea; if (sDesTarea.Length > 100) { sDesTarea = sDesTarea.Substring(1, 100); } nIdTareaNew = TAREAPSP.Insert(tr , sDesTarea //Des. tarea; , oTarea.t332_destarealong //Des. larga de tarea; , oTarea.t331_idpt //Id PT , oTarea.t335_idactividad //IdActividad , iUsuario //promotor , iUsuario //último modificador , DateTime.Now //F.Alta , DateTime.Now //F.Ultima modificacion , dValIni //F.Inicio Vigencia , dValFin //F.Fin vigencia , nEstado //estado , dPLIni //F.Inicio Planificada , dPLFin //F.Fin Planificada , oTarea.t332_etpl //Esfuerzo total estimado , dPRFin //F.Fin Prevista , oTarea.t332_etpr //Esfuerzo total previsto , null //PST , oTarea.t332_cle //Control límite de esfuerzos , oTarea.t332_tipocle //tipo de control de límite de esfuerzo , nOrden //orden , oTarea.t332_facturable //facturable , decimal.Parse(oTarea.t332_presupuesto.ToString()) //presupuesto , null, //24 "", //OTL "", //INCIDENCIA "", //OBSERVACIONES oTarea.t332_notificable, //notificabled "", //NOTAS1 "", //NOTAS2 "", //NOTAS3 "", //NOTAS4 oTarea.t332_avance, //avance real oTarea.t332_avanceauto, //avance automatico (true/false) oTarea.t332_impiap, //imputable en IAP (true/false) false, //notas IAP oTarea.t332_heredanodo, //recursos heredados del nodo oTarea.t332_heredaproyeco, //recursos heredados del PE "", //mesaje generico para todos los profesionales oTarea.t332_notif_prof //Notificar a profesionales asociados , oTarea.t332_acceso_bitacora_iap , null //pendiente ultimo null modo facturación , oTarea.t332_horascomplementarias); POOL_GF_TAREA.DuplicarPoolGF(tr, nIdTarea, nIdTareaNew); //Asigno lo atributos estadístico que tuviera la tarea original AETAREAPSP.DuplicarAEs(tr, nIdTarea, nIdTareaNew); } //For copias } //IF } //FOR Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de la tarea", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }