This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2020-08-28 15:54:21 -07:00
parent 5e1b170442
commit 1b82a333c9
6 changed files with 204 additions and 114 deletions

View File

@@ -138,10 +138,10 @@
<asp:LinkButton ID="LnkUpUsuarios" OnClick="LnkUpUsuarios_Click" Visible="true" runat="server"><i class="fa fa-pencil"></i> Actualizar Participantes</asp:LinkButton> <asp:LinkButton ID="LnkUpUsuarios" OnClick="LnkUpUsuarios_Click" Visible="true" runat="server"><i class="fa fa-pencil"></i> Actualizar Participantes</asp:LinkButton>
</li> </li>
<li> <li>
<asp:LinkButton ID="LnkOpenModalAsistencia" OnClick="LnkOpenModalAsistencia_Click" Visible="false" runat="server"><i class="fa fa-users"></i>Asistencia</asp:LinkButton> <asp:LinkButton ID="LnkOpenModalAsistencia" OnClick="LnkOpenModalAsistencia_Click" Visible="false" runat="server"><i class="fa fa-users"></i>Asistencia</asp:LinkButton>
</li> </li>
<li> <li>
<asp:LinkButton ID="LnkEnviarCorreo" OnClick="LnkEnviarCorreo_Click" Visible="false" runat="server"><i class="fa fa-paper-plane-o"></i>Enviar correo</asp:LinkButton> <asp:LinkButton ID="LnkEnviarCorreo" OnClick="LnkEnviarCorreo_Click" Visible="false" runat="server"><i class="fa fa-paper-plane-o"></i>Enviar correo</asp:LinkButton>
</li> </li>
</ContentTemplate> </ContentTemplate>
@@ -150,7 +150,7 @@
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server"> <asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content> </asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server"> <asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpContenido" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UpContenido" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="row"> <div class="row">
<div class="col-md-7"> <div class="col-md-7">
@@ -198,7 +198,7 @@
</div> </div>
</div> </div>
</asp:Panel> </asp:Panel>
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtDuracion" runat="server" CssClass="form-control " CausesValidation="true"></asp:TextBox> <asp:TextBox ID="TxtDuracion" runat="server" CssClass="form-control " CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTxtDuracion" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtDuracion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVTxtDuracion" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtDuracion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>
@@ -219,7 +219,7 @@
<ajax:ValidatorCalloutExtender ID="VcoFechaI" runat="server" HighlightCssClass="vco" TargetControlID="RFVtxtFechaI" Width="350px"></ajax:ValidatorCalloutExtender> <ajax:ValidatorCalloutExtender ID="VcoFechaI" runat="server" HighlightCssClass="vco" TargetControlID="RFVtxtFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="col-sm-6" style ="display:none;"> <div class="col-sm-6" style="display: none;">
<div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;"> <div class="input-group form-group form-md-line-input date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
<asp:TextBox ID="txtFechaF" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px " placeholder=""></asp:TextBox> <asp:TextBox ID="txtFechaF" runat="server" autocomplete="false" CssClass="form-control ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px " placeholder=""></asp:TextBox>
<%--<asp:RequiredFieldValidator ID="RFVtxtFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>--%> <%--<asp:RequiredFieldValidator ID="RFVtxtFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpTarea"></asp:RequiredFieldValidator>--%>
@@ -445,7 +445,7 @@
</asp:UpdatePanel> </asp:UpdatePanel>
</div> </div>
</div> </div>
<div id='<%= iddivTomarAsistencia %>' class="modal ADS fade" role="dialog"> <div id='<%= iddivTomarAsistencia %>' class="modal ADS fade" role="dialog">
<div class="modal-dialog"> <div class="modal-dialog">
<asp:UpdatePanel ID="UpTomarASistencia" class="modal-content " tabindex="-1" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UpTomarASistencia" class="modal-content " tabindex="-1" runat="server" UpdateMode="Conditional">
@@ -470,7 +470,7 @@
Asistió Asistió
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:CheckBox ID="ChkAsistio" CssClass="ChkOk" Checked='<%# Eval("Asistencia").ToString()=="1" %>' runat="server" /> <asp:CheckBox ID="ChkAsistio" CssClass="ChkOk" Checked='<%# Eval("Asistencia").ToString()=="1" %>' runat="server" />
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField> <asp:TemplateField>
@@ -487,11 +487,11 @@
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>
</asp:GridView> </asp:GridView>
<div class="form-group form-md-line-input"> <div class="form-group form-md-line-input">
<asp:TextBox ID="TxtAsistentesExternos" runat="server" CssClass="form-control" CausesValidation="true" TextMode="MultiLine" Rows="2"></asp:TextBox> <asp:TextBox ID="TxtAsistentesExternos" runat="server" CssClass="form-control" CausesValidation="true" TextMode="MultiLine" Rows="2"></asp:TextBox>
<asp:Label runat="server" Text="Externos" AssociatedControlID="TxtAsistentesExternos"></asp:Label> <asp:Label runat="server" Text="Externos" AssociatedControlID="TxtAsistentesExternos"></asp:Label>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<asp:LinkButton ID="LnkUpAsistencia" OnClick="LnkUpAsistencia_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton> <asp:LinkButton ID="LnkUpAsistencia" OnClick="LnkUpAsistencia_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
@@ -509,7 +509,18 @@
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
let CveRol = -1; let CveRol = -1;
let CveSucursal = -1; let CveSucursal = -1;

View File

@@ -401,7 +401,7 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
ruta = string.Format("{0}{1}", ruta, archivoname);//, ArchivoExtencion); ruta = string.Format("{0}{1}", ruta, archivoname);//, ArchivoExtencion);
System.IO.File.Move(rutaarchivoOri, ruta); System.IO.File.Move(rutaarchivoOri, ruta);
} }
this.Alert("Se ha agregadó la nueva convocatoria", ModExtensiones.TipoMensaje.MsgInformacion, string.Format("location.replace(\"/OI/ConvocatoriaDetalle.aspx?CveEvento={0}\");", CveEvento)); this.Alert(string.Format("Se ha agregadó la nueva convocatoria.<br/><a href=\"data:text/plain;charset=utf-8,{0}\" download=\"Agendar.ics\" class=\"btn btn-default\">⏰ Agendar</a>", HttpUtility.UrlEncode(ICString)), ModExtensiones.TipoMensaje.MsgInformacion, string.Format("location.replace(\"/OI/ConvocatoriaDetalle.aspx?CveEvento={0}\");", CveEvento));
} }
} }
} }
@@ -422,7 +422,7 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
{ {
objOI.Commit(); objOI.Commit();
enviarConvocatoria(RCveEvento); enviarConvocatoria(RCveEvento);
Alert("Convocatoria actualizada"); Alert(string.Format("Convocatoria actualizada.<br/><a href=\"data:text/plain;charset=utf-8,{0}\" download=\"Agendar.ics\" class=\"btn btn-default\">⏰ Agendar</a>", HttpUtility.UrlEncode(ICString)));
} }
else else
{ {
@@ -585,14 +585,21 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
{ {
return string.Format("{0}/{1}", HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""), addstr); return string.Format("{0}/{1}", HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""), addstr);
} }
string UsuarioDemail = ""; string UsuarioDemail = "";
private string MailgetBodyConvocatoria(int RCveEvento) string ICString = "";
private void enviarConvocatoria(int RCveEvento)
{ {
int Folio = 0; string Link = ""; string Asunto = ""; string Acuerdos = ""; string Descripcion = ""; DateTime DFechai = DateTime.MinValue; DateTime DFechaf = DateTime.MinValue; string Body;
string UsuarioDe = ""; string UsuarioDe = "";
#region "Body"
int Folio = 0; string Link = ""; string Asunto = ""; string Acuerdos = ""; string Descripcion = ""; DateTime DFechai = DateTime.MinValue; DateTime DFechaf = DateTime.MinValue;
UsuarioDe = "";
string UsuarioPara = ""; string UsuarioPara = "";
string UsuarioDeAbr = ""; string UsuarioDeAbr = "";
string CorreoRegistro = "";
System.Data.DataTable dttareas; System.Data.DataTable dttareas;
using (ClsOIEventos ObjOI_E = new ClsOIEventos()) using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{ {
@@ -600,7 +607,8 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
{ {
System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0]; System.Data.DataRow drow = ObjOI_E.DtResultados.Rows[0];
UsuarioDe = drow["NombreRegistro"].ToString(); UsuarioDe = drow["NombreRegistro"].ToString();
UsuarioDemail= drow["NombreRegistro"].ToString(); UsuarioDemail = drow["NombreRegistro"].ToString();
CorreoRegistro = drow["CorreoRegistro"].ToString().Split(',')[0].Split(';')[0];
Folio = drow["Folio"].ToString().ToEntero(); Folio = drow["Folio"].ToString().ToEntero();
Link = GetDominio(string.Format("OI/ConvocatoriaDetalle.aspx?CveEvento={0}", RCveEvento)); Link = GetDominio(string.Format("OI/ConvocatoriaDetalle.aspx?CveEvento={0}", RCveEvento));
Asunto = drow["Asunto"].ToString(); Asunto = drow["Asunto"].ToString();
@@ -700,13 +708,12 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
StrMail.Append(" </div>"); StrMail.Append(" </div>");
StrMail.Append(" </div>"); StrMail.Append(" </div>");
StrMail.Append("</html></body>"); StrMail.Append("</html></body>");
return StrMail.ToString();
}
private void enviarConvocatoria(int RCveEvento)
{
string Body; #endregion
Body = MailgetBodyConvocatoria(RCveEvento);
Body = StrMail.ToString();//MailgetBodyConvocatoria(RCveEvento);
string ArrayCC = ""; string ArrayCC = "";
//ViewState("Para") = GlobalDTUsuarios(CveUsuarioIng)(0)("correo").ToString; //ViewState("Para") = GlobalDTUsuarios(CveUsuarioIng)(0)("correo").ToString;
//ViewState("Asunto") = string.Format("SIG - Minuta {0}", TxtAsunto.Text); //ViewState("Asunto") = string.Format("SIG - Minuta {0}", TxtAsunto.Text);
@@ -728,7 +735,11 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
} }
List<ClsSisMail.ArchivoMail> LSRutasMail = new List<ClsSisMail.ArchivoMail>(); List<ClsSisMail.ArchivoMail> LSRutasMail = new List<ClsSisMail.ArchivoMail>();
ClsSisMail.ArchivoMail mailfile = new ClsSisMail.ArchivoMail { Ruta = string.Format("{0}Imagenes\\Bell.png", ModExtensiones.DirectorioBaseEmpresas), NombreArchivo = "Bell.png" }; ClsSisMail.ArchivoMail mailfile = new ClsSisMail.ArchivoMail { Ruta = string.Format("{0}Imagenes\\Bell.png", ModExtensiones.DirectorioBaseEmpresas), NombreArchivo = "Bell.png" };
LSRutasMail.Add(mailfile); LSRutasMail.Add(mailfile);
ICString = GenerateIcsContent(string.Format("{0:yyyy/MM/dd} 00:00", txtFechaI.Text.ToDateTime()).ToDateTime(), string.Format("{0:yyyy/MM/dd} 23:59", txtFechaI.Text.ToDateTime()).ToDateTime(),
UsuarioDe, CorreoRegistro, TxtLugar.Text, Asunto,Descripcion,string.Format("Convocatoria_{0}",RCveEvento) );
ClsSisMail.ArchivoMail ICSFile = new ClsSisMail.ArchivoMail { Ruta = "",ArchivoBinario= Encoding.ASCII.GetBytes(ICString), NombreArchivo = "Agendar.ics" };
LSRutasMail.Add(ICSFile);
ClsSisMail.ArchivoMail itemMail = new ClsSisMail.ArchivoMail(); ClsSisMail.ArchivoMail itemMail = new ClsSisMail.ArchivoMail();
@@ -742,31 +753,44 @@ public partial class OI_ConvocatoriaDetalle : ClsPaginas
} }
public string GenerateIcsContent(DateTime dateStart, public string GenerateIcsContent(DateTime FechaInicio, DateTime FechaFin, string Nombreorganizador, string Correoorganizador, string Ubicacion, string Asunto, string descripcion, string uuid)
DateTime dateEnd, string email, string location,
string summary, string description)
{ {
string DateFormat = "yyyyMMddTHHmmssZ"; var DTSTART = FechaInicio.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
var s = dateStart.ToUniversalTime().ToString(DateFormat); var DTEND = FechaFin.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
var e = dateEnd.ToUniversalTime().ToString(DateFormat);
var iCal = string.Format(@"BEGIN:VCALENDAR /*
VERSION:2.0 BEGIN:VCALENDAR
METHOD:PUBLISH VERSION:2.0
BEGIN:VEVENT PRODID:-//hacksw/handcal//NONSGML v1.0//EN
ORGANIZER:MAILTO:{0} BEGIN:VEVENT
DTSTART:{1} UID:uid1@example.com
DTEND:{2} DTSTAMP:19970714T170000Z
LOCATION:{3} ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
UID:{4} DTSTART:19970714T170000Z
DTSTAMP:{4} DTEND:19970715T035959Z
SUMMARY:{5} SUMMARY:Bastille Day Party
DESCRIPTION:{6} END:VEVENT
PRIORITY:5 END:VCALENDAR
CLASS:PUBLIC */
END:VEVENT StringBuilder strICS = new StringBuilder();
END:VCALENDAR", email, s, e, location, strICS.AppendLine("BEGIN:VCALENDAR");
DateTime.Now.ToUniversalTime().ToString(DateFormat), strICS.AppendLine("VERSION:2.0");
summary, description); strICS.AppendLine("METHOD:PUBLISH");
return iCal; strICS.AppendLine("BEGIN:VEVENT");
strICS.AppendLine(string.Format("ORGANIZER;CN={0}:MAILTO:{1}", Nombreorganizador.Replace(":", "").Replace(";", ""), Correoorganizador));
strICS.AppendLine(string.Format("DTSTART:{0}", DTSTART));
strICS.AppendLine(string.Format("DTEND:{0}", DTEND));
strICS.AppendLine(string.Format("LOCATION:{0}", Ubicacion));
strICS.AppendLine(string.Format("UID:{0}", uuid));
strICS.AppendLine(string.Format("DTSTAMP:{0}", DateTime.Now.ToUniversalTime().ToString("yyyyMMddTHHmmssZ")));
strICS.AppendLine(string.Format("SUMMARY:{0}", Asunto));
strICS.AppendLine(string.Format("DESCRIPTION:{0}", descripcion));
strICS.AppendLine("PRIORITY:5");
strICS.AppendLine("CLASS:PUBLIC");
strICS.AppendLine("END:VEVENT");
strICS.AppendLine("END:VCALENDAR");
return strICS.ToString();
} }
} }

View File

@@ -746,25 +746,31 @@ public partial class OI_MinutaDetalle : ClsPaginas
protected void LnkTerminarMinuta_Click(object sender, EventArgs e) protected void LnkTerminarMinuta_Click(object sender, EventArgs e)
{ {
// Cambiar el estatus a Terminada para inabilitarla y que no se pueda modificar // Cambiar el estatus a Terminada para inabilitarla y que no se pueda modificar
ClsOIEventos objOI = new ClsOIEventos();
int tCveSeguimiento; int tCveSeguimiento;
bool HuboError = false; bool HuboError = false;
using (ClsOIEventos objOI = new ClsOIEventos())
objOI.IniciaTransacSQL();
tCveSeguimiento = objOI.AddEventoComentario2(RCveEvento, "Termino minuta.", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
if (tCveSeguimiento > 0)
{ {
if (!objOI.UpdateEstatusEvento2(4, tCveSeguimiento, RCveEvento, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) objOI.IniciaTransacSQL();
HuboError = true; tCveSeguimiento = objOI.AddEventoComentario2(RCveEvento, "Termino minuta.", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
if (tCveSeguimiento > 0)
{
if (!objOI.UpdateEstatusEvento2(4, tCveSeguimiento, RCveEvento, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
HuboError = true;
}
else { HuboError = true; }
if (HuboError == false)
{
objOI.Commit();
}
else
{
objOI.RollBack();
}
}
if (HuboError == false)
{
if (!EnviarMinuta()) { HuboError = true; Alert("Ocurrió un error al terminar la minuta. no se pudo enviar el correo.", ModExtensiones.TipoMensaje.MsgError); }
} }
else
HuboError = true;
// 'Envia minuta si es modificada
if (HuboError == false) if (HuboError == false)
@@ -775,22 +781,6 @@ public partial class OI_MinutaDetalle : ClsPaginas
script = string.Format("location.replace(\"/OI/ConvocatoriaDetalle.aspx?CveEventoPadre={0}\");", RCveEvento); script = string.Format("location.replace(\"/OI/ConvocatoriaDetalle.aspx?CveEventoPadre={0}\");", RCveEvento);
} }
Alert("La minuta ha finalizado.", ModExtensiones.TipoMensaje.MsgInformacion, script); Alert("La minuta ha finalizado.", ModExtensiones.TipoMensaje.MsgInformacion, script);
objOI.Commit();
}
else
{
Alert("Ocurrió un error al terminar la minuta. Por favor vuelva a intentar.", ModExtensiones.TipoMensaje.MsgError);
objOI.RollBack();
}
objOI.Dispose();
if (HuboError == false)
{
if (!EnviarMinuta())
HuboError = true;
Alert("La minuta se termino con exito.", ModExtensiones.TipoMensaje.MsgInformacion);
} }
LnkEnviarMinuta.Visible = true; LnkEnviarMinuta.Visible = true;
@@ -833,7 +823,7 @@ public partial class OI_MinutaDetalle : ClsPaginas
private string MailgetBodyMinuta() private string MailgetBodyMinuta()
{ {
int Folio=0; string Link=""; string Asunto = ""; string Acuerdos = ""; string Descripcion = ""; DateTime DFechai=DateTime.MinValue; DateTime DFechaf = DateTime.MinValue; int Folio = 0; string Link = ""; string Asunto = ""; string Acuerdos = ""; string Descripcion = ""; DateTime DFechai = DateTime.MinValue; DateTime DFechaf = DateTime.MinValue;
string UsuarioDe = ""; string UsuarioDe = "";
string UsuarioPara = ""; string UsuarioPara = "";
string UsuarioDeAbr = ""; string UsuarioDeAbr = "";
@@ -875,7 +865,7 @@ public partial class OI_MinutaDetalle : ClsPaginas
if (UsuarioPara != null) if (UsuarioPara != null)
{ {
string[] str = UsuarioPara.Split(' '); string[] str = UsuarioPara.Split(' ');
if (str.Length > 0 && str[0].Length >0) if (str.Length > 0 && str[0].Length > 0)
{ {
UsuariParaAbr = str[0].Substring(0, 1).ToUpper(); UsuariParaAbr = str[0].Substring(0, 1).ToUpper();
} }
@@ -899,7 +889,7 @@ public partial class OI_MinutaDetalle : ClsPaginas
StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Moderador:</span>"); StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Moderador:</span>");
StrMail.Append($" <span style=\"color: #ED7D31; font-size: 22px;font-weight: bold;\">{UsuarioDeAbr}</span>"); StrMail.Append($" <span style=\"color: #ED7D31; font-size: 22px;font-weight: bold;\">{UsuarioDeAbr}</span>");
StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{UsuarioDe}</span><br />"); StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{UsuarioDe}</span><br />");
StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Fecha:</span>"); StrMail.Append(" <span style=\"color: #6C6C6C; font-size: 17px;\">Fecha:</span>");
StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{DFechai: dd} de {DFechai: MMMM yyyy HH:mm}</span><br />"); StrMail.Append($" <span style=\"color: #6C6C6C; font-size: 17px;\">{DFechai: dd} de {DFechai: MMMM yyyy HH:mm}</span><br />");
StrMail.Append(" </td>"); StrMail.Append(" </td>");
StrMail.Append(" <td style=\"width: 20%;\">"); StrMail.Append(" <td style=\"width: 20%;\">");
@@ -940,21 +930,21 @@ public partial class OI_MinutaDetalle : ClsPaginas
if(dttareas != null && dttareas.Rows.Count > 0) if (dttareas != null && dttareas.Rows.Count > 0)
{ {
StrMail.Append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\">"); StrMail.Append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\">");
StrMail.Append(" <thead>"); StrMail.Append(" <thead>");
StrMail.Append(" <tr style=\"background-color:#dddddd;\">"); StrMail.Append(" <tr style=\"background-color:#dddddd;\">");
StrMail.Append(" <th scope=\"col\">Folio</th>"); StrMail.Append(" <th scope=\"col\">Folio</th>");
StrMail.Append(" <th scope=\"col\">Asunto</th>"); StrMail.Append(" <th scope=\"col\">Asunto</th>");
StrMail.Append(" <th scope=\"col\">Descripción</th>"); StrMail.Append(" <th scope=\"col\">Descripción</th>");
StrMail.Append(" <th scope=\"col\">Para</th>"); StrMail.Append(" <th scope=\"col\">Para</th>");
StrMail.Append(" <th scope=\"col\">Inicio</th>"); StrMail.Append(" <th scope=\"col\">Inicio</th>");
StrMail.Append(" <th scope=\"col\">Fin</th>"); StrMail.Append(" <th scope=\"col\">Fin</th>");
StrMail.Append(" </tr>"); StrMail.Append(" </tr>");
StrMail.Append(" </thead>"); StrMail.Append(" </thead>");
StrMail.Append(" <tbody>"); StrMail.Append(" <tbody>");
foreach (System.Data.DataRow drow in dttareas.Rows ) foreach (System.Data.DataRow drow in dttareas.Rows)
{ {
StrMail.Append(" <tr>"); StrMail.Append(" <tr>");
@@ -966,8 +956,8 @@ public partial class OI_MinutaDetalle : ClsPaginas
StrMail.Append($" <td>{drow["FechaFin"]: dd/MM/yyyy}</td>"); StrMail.Append($" <td>{drow["FechaFin"]: dd/MM/yyyy}</td>");
StrMail.Append(" </tr>"); StrMail.Append(" </tr>");
} }
StrMail.Append(" </tbody>"); StrMail.Append(" </tbody>");
StrMail.Append("</table>"); StrMail.Append("</table>");
} }
else else
{ {
@@ -1006,14 +996,14 @@ public partial class OI_MinutaDetalle : ClsPaginas
//System.Threading.Thread Hilo = new System.Threading.Thread(MandaCorreo); //System.Threading.Thread Hilo = new System.Threading.Thread(MandaCorreo);
//Hilo.Start(); //Hilo.Start();
string abre = ""; string abre = "";
using (ClsOIEventos ObjOI_E =new ClsOIEventos()) using (ClsOIEventos ObjOI_E = new ClsOIEventos())
{ {
if (ObjOI_E.GetEventosUsuario2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados!=null && ObjOI_E.DtResultados.Rows.Count >0) if (ObjOI_E.GetEventosUsuario2(RCveEvento, UsuarioActual.CveEmpresa) && ObjOI_E.DtResultados != null && ObjOI_E.DtResultados.Rows.Count > 0)
{ {
foreach (System.Data.DataRow item in ObjOI_E.DtResultados.Rows ) foreach (System.Data.DataRow item in ObjOI_E.DtResultados.Rows)
{ {
if (item["Correo"].ToString().Trim().Length >0) if (item["Correo"].ToString().Trim().Length > 0)
ArrayCC = string.Format("{0}{1}{2}", ArrayCC,abre, item["Correo"].ToString().Trim()); ArrayCC = string.Format("{0}{1}{2}", ArrayCC, abre, item["Correo"].ToString().Trim());
abre = ";"; abre = ";";
} }
} }
@@ -1025,7 +1015,7 @@ public partial class OI_MinutaDetalle : ClsPaginas
ClsSisMail Mail = new ClsSisMail(); ClsSisMail Mail = new ClsSisMail();
Mail.SendMail(EmpresaNotificaciones, get_GlobalDTUsuarios(UsuarioActual.CveUsuario).Rows[0]["correo"].ToString() +";"+ TxtCorreoExterno.Text, TxtAsunto.Text, Body, CCP: ArrayCC,Archivos: LSRutasMail); Mail.SendMail(EmpresaNotificaciones, get_GlobalDTUsuarios(UsuarioActual.CveUsuario).Rows[0]["correo"].ToString() + ";" + TxtCorreoExterno.Text, TxtAsunto.Text, Body, CCP: ArrayCC, Archivos: LSRutasMail);
//Alert("Se Envió por correo la Minuta", ModExtensiones.TipoMensaje.MsgInformacion); //Alert("Se Envió por correo la Minuta", ModExtensiones.TipoMensaje.MsgInformacion);
Retorno = true; Retorno = true;
} }
@@ -1378,8 +1368,44 @@ public partial class OI_MinutaDetalle : ClsPaginas
LnkTerminarMinuta_Click(null, null); LnkTerminarMinuta_Click(null, null);
} }
public string GenerateIcsContent(DateTime FechaInicio, DateTime FechaFin, string Nombreorganizador, string Correoorganizador, string Ubicacion, string Asunto, string descripcion, string uuid)
{
var DTSTART = FechaInicio.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
var DTEND = FechaFin.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
/*
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR
*/
StringBuilder strICS = new StringBuilder();
strICS.Append("BEGIN:VCALENDAR");
strICS.Append("VERSION:2.0");
strICS.Append("METHOD:PUBLISH");
strICS.Append("BEGIN:VEVENT");
strICS.AppendFormat("ORGANIZER;CN={0}:MAILTO:{1}", Nombreorganizador.Replace(":", "").Replace(";", ""), Correoorganizador);
strICS.AppendFormat("DTSTART:{0}", DTSTART);
strICS.AppendFormat("DTEND:{0}", DTEND);
strICS.AppendFormat("LOCATION:{0}", Ubicacion);
strICS.AppendFormat("UID:{0}", uuid);
strICS.AppendFormat("DTSTAMP:{0}", DateTime.Now.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));
strICS.AppendFormat("SUMMARY:{0}", Asunto);
strICS.AppendFormat("DESCRIPTION:{0}", descripcion);
strICS.Append("PRIORITY:5");
strICS.Append("CLASS:PUBLIC");
strICS.Append("END:VEVENT");
strICS.Append("END:VCALENDAR");
return strICS.ToString();
}
protected void LnkOpenModalAsistencia_Click(object sender, EventArgs e) protected void LnkOpenModalAsistencia_Click(object sender, EventArgs e)

View File

@@ -31,12 +31,16 @@
padding-left: 10px; padding-left: 10px;
line-height: 25px; line-height: 25px;
} }
.gantt-samples-banner_controls_bar.controls_bar,.gantt_scale_line .gantt_scale_cell,.gantt_grid_scale .gantt_grid_head_cell ,.gantt_grid_scale .gantt_grid_head_cell a,.gantt_grid_scale .gantt_grid_head_cell a:hover {
background-color:#95a5a6 !important;
color:#FFF !important;
}
</style> </style>
<%--<link href="/Metronic/assets/global/plugins/GantJS/jsgantt.css" rel="stylesheet" type="text/css" />--%> <%--<link href="/Metronic/assets/global/plugins/GantJS/jsgantt.css" rel="stylesheet" type="text/css" />--%>
<link rel="stylesheet" href="/Metronic/assets/global/plugins/dhtmlxgantt/dhtmlxgantt.css" type="text/css"> <link rel="stylesheet" href="/Metronic/assets/global/plugins/dhtmlxgantt/dhtmlxgantt.css" type="text/css">
</asp:Content> </asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server"> <asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Proyecto: Proyecto:<asp:Label ID="LblAsunto" runat="server" Text=""></asp:Label>
</asp:Content> </asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content> </asp:Content>
@@ -70,7 +74,10 @@
<label> <label>
<input name="scales" onclick="zoom_tasks(this)" type="radio" value="year"> <input name="scales" onclick="zoom_tasks(this)" type="radio" value="year">
<span>Mes</span></label> <span>Mes</span></label>
<label>
<input name="scales" onclick="zoom_tasks(this)" type="radio" value="yearyear">
<span>año</span></label>
<div id="filter_hours" style="display: none;"> <div id="filter_hours" style="display: none;">
<span>&nbsp; &nbsp; | &nbsp; &nbsp; </span> <span>&nbsp; &nbsp; | &nbsp; &nbsp; </span>
@@ -204,6 +211,7 @@
<script> <script>
let RCveEvento =<%= RCveEvento %>;
function NuevoEvento(CveEvento) { function NuevoEvento(CveEvento) {
$('.txtCveEvento').val(CveEvento); $('.txtCveEvento').val(CveEvento);
$('.BtnopenmodalClickGant').click(); $('.BtnopenmodalClickGant').click();
@@ -249,6 +257,16 @@
{ unit: "week", step: 1, date: "#%W" } { unit: "week", step: 1, date: "#%W" }
]; ];
break; break;
case "yearyear":
gantt.config.min_column_width = 70;
gantt.config.scale_unit = "month";
gantt.config.date_scale = "%y %M";
gantt.config.scale_height = 60;
show_scale_options();
gantt.config.subscales = [
{ unit: "month", step: 1, date: "#%M" }
];
break;
} }
set_scale_units(); set_scale_units();
gantt.render(); gantt.render();
@@ -319,9 +337,9 @@
{ name: "text", label: "Proyecto ", width: "*", min_width: 350, tree: true, resize: true, template: function (obj) { return "<a href=\"/OI/TareaDetalle.aspx?CveEvento="+obj.id+"\" target=\"_Blank\">" + obj.text + " </a>" } }, { name: "text", label: "Proyecto ", width: "*", min_width: 350, tree: true, resize: true, template: function (obj) { return "<a href=\"/OI/TareaDetalle.aspx?CveEvento="+obj.id+"\" target=\"_Blank\">" + obj.text + " </a>" } },
{ name: "start_date", label: "Inicio", min_width: 90, align: "center" }, { name: "start_date", label: "Inicio", min_width: 90, align: "center" },
{ name: "end_date", label: "Fin", min_width: 90, align: "center" }, { name: "end_date", label: "Fin", min_width: 90, align: "center" },
{ name: "progress", label: "Avance", align: "center", template: function (obj) { return "" + (obj.progress * 100) + " %" } }, { name: "progress", label: "Avance", align: "center", template: function (obj) { return "" + (obj.progress * 100).toFixed(2) + " %" } },
{ name: "duration", label: "Duracion", align: "center" }, { name: "duration", label: "Duración", align: "center" },
{ name: "new", label: "<i class='fa fa-plus'></i>", align: "center",template: function (obj) { return "<a onclick=\"NuevoEvento("+obj.id+");\" target=\"_Blank\"><i class='fa fa-plus'></i> </a>" } } { name: "new", label: "<a onclick=\"NuevoEvento("+ RCveEvento +");\" target=\"_Blank\"><i class='fa fa-plus'></i></a>", align: "center",template: function (obj) { return "<a onclick=\"NuevoEvento("+obj.id+");\" target=\"_Blank\"><i class='fa fa-plus'></i> </a>" } }
/*{name:"staff", label:"Holder(s)", template:function(obj){return obj.holder+"("+obj.progress+")"} },*/ /*{name:"staff", label:"Holder(s)", template:function(obj){return obj.holder+"("+obj.progress+")"} },*/
//{ name: "add", label: "" } //{ name: "add", label: "" }
]; ];

View File

@@ -50,7 +50,14 @@ public partial class OI_Proyecto : ClsPaginas
str.AppendLine("datosGant=["); str.AppendLine("datosGant=[");
using (ClsOIEventos oieve = new ClsOIEventos()) using (ClsOIEventos oieve = new ClsOIEventos())
{ {
if (oieve.GetTareaConHijos(RCveEvento,UsuarioActual.CveEmpresa))
if (oieve.GetEventos2(RCveEvento, UsuarioActual.CveEmpresa) && oieve.DtResultados.Rows.Count > 0)
{
System.Data.DataRow drow = oieve.DtResultados.Rows[0];
LblAsunto.Text = drow["Asunto"].ToString();
}
if (oieve.GetTareaConHijos(RCveEvento,UsuarioActual.CveEmpresa))
{ {
foreach (System.Data.DataRow dr in oieve.DtResultados.Select("Nivel > 0")) foreach (System.Data.DataRow dr in oieve.DtResultados.Select("Nivel > 0"))
{ {

View File

@@ -92,6 +92,10 @@