/// <summary> /// Obtiene un AccionT a partir del id /// </summary> internal Models.AccionT Select(int t601_idaccion) { Models.AccionT oAccionT = null; IDataReader dr = null; try { SqlParameter[] dbparams = new SqlParameter[1] { Param(enumDBFields.T601_idaccion, t601_idaccion), }; dr = cDblib.DataReader("SUP_ACCION_T_S", dbparams); if (dr.Read()) { oAccionT = new Models.AccionT(); oAccionT.T601_fcreacion = Convert.ToDateTime(dr["T601_fcreacion"]); oAccionT.T600_idasunto = Convert.ToInt32(dr["T600_idasunto"]); oAccionT.T601_alerta = Convert.ToString(dr["T601_alerta"]); oAccionT.T601_avance = Convert.ToByte(dr["T601_avance"]); oAccionT.T601_desaccion = Convert.ToString(dr["T601_desaccion"]); oAccionT.T601_desaccionlong = Convert.ToString(dr["T601_desaccionlong"]); oAccionT.T601_dpto = Convert.ToString(dr["T601_dpto"]); if (!Convert.IsDBNull(dr["T601_ffin"])) { oAccionT.T601_ffin = Convert.ToDateTime(dr["T601_ffin"]); } if (!Convert.IsDBNull(dr["T601_flimite"])) { oAccionT.T601_flimite = Convert.ToDateTime(dr["T601_flimite"]); } oAccionT.T601_idaccion = Convert.ToInt32(dr["T601_idaccion"]); oAccionT.T601_obs = Convert.ToString(dr["T601_obs"]); oAccionT.t314_idusuario_responsable = Convert.ToInt32(dr["t314_idusuario_responsable"]); oAccionT.t301_idproyecto = Convert.ToInt32(dr["t301_idproyecto"]); oAccionT.t301_denominacion = Convert.ToString(dr["t301_denominacion"]); oAccionT.t331_idpt = Convert.ToInt32(dr["t331_idpt"]); oAccionT.t331_despt = Convert.ToString(dr["t331_despt"]); oAccionT.t332_idtarea = Convert.ToInt32(dr["t332_idtarea"]); oAccionT.t332_destarea = Convert.ToString(dr["t332_destarea"]); oAccionT.t600_desasunto = Convert.ToString(dr["t600_desasunto"]); } return(oAccionT); } catch (Exception ex) { throw ex; } finally { if (dr != null) { if (!dr.IsClosed) { dr.Close(); } dr.Dispose(); } } }
/// <summary> /// Obtiene todos los AccionT /// </summary> internal List <Models.AccionT> Catalogo(int nAsunto) { Models.AccionT oAccion = null; List <Models.AccionT> lst = new List <Models.AccionT>(); IDataReader dr = null; try { SqlParameter[] dbparams = new SqlParameter[1] { Param(enumDBFields.T600_idasunto, nAsunto), }; dr = cDblib.DataReader("SUP_ACCION_T_C", dbparams); while (dr.Read()) { oAccion = new Models.AccionT(); oAccion.T601_idaccion = Convert.ToInt32(dr["T601_idaccion"]); oAccion.T601_desaccion = Convert.ToString(dr["T601_desaccion"]); if (!Convert.IsDBNull(dr["T601_flimite"])) { oAccion.T601_flimite = Convert.ToDateTime(dr["T601_flimite"]); } oAccion.T601_avance = Convert.ToByte(dr["T601_avance"]); if (!Convert.IsDBNull(dr["T601_ffin"])) { oAccion.T601_ffin = Convert.ToDateTime(dr["T601_ffin"]); } oAccion.t314_idusuario_responsable = Convert.ToInt32(dr["T600_responsable"]); lst.Add(oAccion); } return(lst); } catch (Exception ex) { throw ex; } finally { if (dr != null) { if (!dr.IsClosed) { dr.Close(); } dr.Dispose(); } } }
/// <summary> /// Actualiza un AccionT a partir del id /// </summary> internal int Update(Models.AccionT oAccionT) { try { SqlParameter[] dbparams = new SqlParameter[9] { Param(enumDBFields.T601_alerta, oAccionT.T601_alerta), Param(enumDBFields.T601_avance, oAccionT.T601_avance), Param(enumDBFields.T601_desaccion, oAccionT.T601_desaccion), Param(enumDBFields.T601_desaccionlong, oAccionT.T601_desaccionlong), Param(enumDBFields.T601_dpto, oAccionT.T601_dpto), Param(enumDBFields.T601_ffin, oAccionT.T601_ffin), Param(enumDBFields.T601_flimite, oAccionT.T601_flimite), Param(enumDBFields.T601_idaccion, oAccionT.T601_idaccion), Param(enumDBFields.T601_obs, oAccionT.T601_obs) }; return((int)cDblib.Execute("SUP_ACCION_T_U", dbparams)); } catch (Exception ex) { throw ex; } }
public int grabar(Models.AccionT DatosGenerales, List <Models.AccionRecursosT> Integrantes) { int idReferencia; bool bConTransaccion = false; Guid methodOwnerID = new Guid("9BA8A99E-6FE6-41EC-BDA6-1A123F0E7C9A"); OpenDbConn(); if (cDblib.Transaction.ownerID.Equals(new Guid())) { bConTransaccion = true; } if (bConTransaccion) { cDblib.beginTransaction(methodOwnerID); } try { DAL.AccionT oAccion = new DAL.AccionT(cDblib); DAL.AccionRecursosT oRecursoDAL = new DAL.AccionRecursosT(cDblib); if (DatosGenerales.T601_idaccion == -1) { DatosGenerales.T601_fcreacion = System.DateTime.Now; idReferencia = oAccion.Insert(DatosGenerales); } else { oAccion.Update(DatosGenerales); idReferencia = DatosGenerales.T601_idaccion; } foreach (Models.AccionRecursosT oRecurso in Integrantes) { switch (oRecurso.accionBD) { case "I": //Inserción oRecurso.t601_idaccion = idReferencia; oRecursoDAL.Insert(oRecurso); break; case "D": //delete oRecursoDAL.Delete(oRecurso); break; case "U": //update oRecursoDAL.Update(oRecurso); break; } } if (bConTransaccion) { cDblib.commitTransaction(methodOwnerID); } return(idReferencia); } catch (Exception ex) { //rollback if (cDblib.Transaction.ownerID.Equals(methodOwnerID)) { cDblib.rollbackTransaction(methodOwnerID); } throw new Exception(ex.Message); } finally { //nota.Dispose(); } }
public void EnviarCorreo(Models.AccionT DatosGenerales, List <Models.AccionRecursosT> Integrantes, bool bAlta) { string sTexto = "", sTO = "", sToAux = "", sAux, sIdResponsable, slMails; string sAsunto = ""; ArrayList aListCorreo = new ArrayList(); StringBuilder sb = new StringBuilder(); sIdResponsable = DatosGenerales.t314_idusuario_responsable.ToString(); slMails = DatosGenerales.T601_alerta.ToString(); if (slMails == "" && sIdResponsable == "") { return; } sAsunto = "Alerta de acción en Bitácora de tarea."; if (bAlta) { sb.Append("<BR>SUPER le informa de la generación de la siguiente acción:<BR><BR>"); } else { sb.Append("<BR>SUPER le informa de la modificación de la siguiente acción:<BR><BR>"); } sb.Append("<label style='width:120px'>Proyecto económico: </label>" + DatosGenerales.t301_idproyecto.ToString() + @" - " + DatosGenerales.t301_denominacion + "<br>"); sb.Append("<label style='width:120px'>Proyecto técnico: </label>" + DatosGenerales.t301_idproyecto.ToString() + @" - " + DatosGenerales.t331_despt + "<br>"); sb.Append("<label style='width:120px'>Fase: </label>" + DatosGenerales.t334_desfase + "<br>"); sb.Append("<label style='width:120px'>Actividad: </label>" + DatosGenerales.t335_desactividad + "<br>"); sb.Append("<label style='width:120px'>Tarea: </label>" + DatosGenerales.t332_idtarea.ToString() + @" - " + DatosGenerales.t332_destarea + "<br>"); sb.Append("<label style='width:120px'>Asunto: </label><b>" + DatosGenerales.T600_idasunto.ToString() + @" - " + DatosGenerales.t600_desasunto + "</b><br><br>"); sb.Append("<label style='width:120px'>Acción: </label><b>" + DatosGenerales.T601_idaccion + @" - " + DatosGenerales.T601_desaccion + "</b><br><br>"); sb.Append("<b>Información de la acción:</b><br>"); //sb.Append("<label style='width:120px'>Responsable: </label>" + DatosGenerales.Responsable + "<br>"); if (DatosGenerales.T601_flimite == null) { sAux = ""; } else { sAux = DatosGenerales.T601_flimite.ToString().Substring(0, 10); } sb.Append("<label style='width:120px'>F/Límite: </label>" + sAux + "<br>"); if (DatosGenerales.T601_ffin == null) { sAux = ""; } else { sAux = DatosGenerales.T601_ffin.ToString().Substring(0, 10); } sb.Append("<label style='width:120px'>F/Fin: </label>" + sAux + "<br>"); sb.Append("<label style='width:120px'>Avance: </label>" + DatosGenerales.T601_avance + "<br><br>"); //descripcion larga sb.Append("<b><label style='width:120px'>Descripción: </label></b>" + DatosGenerales.T601_desaccionlong + "<br><br>"); //observaciones sb.Append("<b><label style='width:120px'>Observaciones: </label></b>" + DatosGenerales.T601_obs + "<br><br>"); //Departamento sb.Append("<b><label style='width:120px'>Departamento: </label></b>" + DatosGenerales.T601_dpto + "<br><br>"); //Obtengo la lista de e-mail a los que alertar if (!slMails.Contains(";")) { slMails += ";"; } string[] aMails = Regex.Split(slMails, ";"); //Genero una tabla con la lista de e-mails a notificar sb.Append("<b><label style='width:400px'>Relación de e-mails a notificar: </label></b> <br>"); sb.Append("<table width='400px' style='padding:10px;'>"); sb.Append("<colgroup><col style='width:400px;' /></colgroup>"); sb.Append("<tbody>"); for (int i = 0; i < aMails.Length; i++) { sToAux = aMails[i].Trim(); if (sToAux != "") { sb.Append("<tr><td style='padding-left:5px;font-size:11px;'>"); sTO = sToAux; sAux = sTO.Substring(0, 2); if (sAux == "\r\n") { sTO = sTO.Substring(2); } sb.Append(sTO); sb.Append("</td></tr>"); } } sb.Append("</tbody>"); sb.Append("</table><br>"); //Genero una tabla con la lista de profesionales a notificar sb.Append("<b><label style='width:400px'>Relación de profesionales asignados: </label> </b><br>"); sb.Append("<table width='400px' style='padding:10px;'>"); sb.Append("<colgroup><col style='width:400px;' /></colgroup>"); sb.Append("<tbody>"); foreach (Models.AccionRecursosT oRecurso in Integrantes) { if (oRecurso.accionBD != "D") { sb.Append("<tr><td style='padding-left:5px;font-size:11px;'>"); sb.Append(oRecurso.nomRecurso); sb.Append("</td></tr>"); } } sb.Append("</tbody>"); sb.Append("</table><br>"); sTexto = sb.ToString(); //Envío e-mail al responsable del asunto if (sIdResponsable != "") { BLL.Recursos oRecursos = new BLL.Recursos(); Models.Recursos oRecursoModel = new Models.Recursos(); try { oRecursoModel = oRecursos.establecerUsuarioIAP("", int.Parse(sIdResponsable)); } catch (Exception ex) { throw new Exception(System.Uri.EscapeDataString("Error al obtener el código de red" + ex.Message)); } finally { oRecursos.Dispose(); } sTO = oRecursoModel.t001_codred; string[] aMail = { sAsunto, sTexto, sTO }; aListCorreo.Add(aMail); } //Obtengo la lista de e-mail a los que alertar y envío un correo a cada uno for (int i = 0; i < aMails.Length; i++) { if (aMails[i] != "") { sTO = aMails[i]; //sTO.Replace((char)10, (char)160); //sTO.Replace((char)13, (char)160); sAux = sTO.Substring(0, 2); if (sAux == "\r\n") { sTO = sTO.Substring(2); } sTO.Trim(); string[] aMail = { sAsunto, sTexto, sTO }; aListCorreo.Add(aMail); } } //Obtengo la lista de profesionales a los que notificar y envío un correo a cada uno foreach (Models.AccionRecursosT oRecurso in Integrantes) { if (oRecurso.t605_notificar) { string[] aMail = { sAsunto, sTexto, oRecurso.MAIL }; aListCorreo.Add(aMail); } } Correo.EnviarCorreos(aListCorreo); }