diff --git a/CRM/Acercamiento.aspx.cs b/CRM/Acercamiento.aspx.cs
index 941639121..59a3b88dc 100644
--- a/CRM/Acercamiento.aspx.cs
+++ b/CRM/Acercamiento.aspx.cs
@@ -5,12 +5,16 @@ using ADSNetLibrary.SIGAPI.Models.Ventas.Request;
using ADSNetLibrary.SIGAPI.Services;
using ADSNetLibrary.SIGAPI.Services.CRM;
using ADSNetLibrary.SIGAPI.Services.Encuestas;
+using DocumentFormat.OpenXml.Drawing.Diagrams;
using Extensiones;
+using FormulaEvaluator;
using MoreLinq;
using System;
using System.Collections.Generic;
using System.Data;
+using System.Data.SqlClient;
using System.IO;
+using System.IO.Packaging;
using System.Linq;
using System.Web;
using System.Web.UI;
@@ -266,6 +270,10 @@ public partial class CRM_Acercamiento : ClsPaginas
ViewState["TieneCotizacion"] = value;
}
}
+
+ //public int RCveEvento { get { return ViewState["RCveEvento"] != null ? ViewState["RCveEvento"].ToString().ToEntero() : 0; } set { ViewState["RCveEvento"] = value; } }
+ public System.Data.DataTable CheckListNew { get { return ViewState["CheckListNew"] != null ? (System.Data.DataTable)ViewState["CheckListNew"] : null; } set { ViewState["CheckListNew"] = value; } }
+ public int chklistitemindex { get { return ViewState["chklistitemindex"] != null ? ViewState["chklistitemindex"].ToString().ToEntero() : 0; } set { ViewState["chklistitemindex"] = value; } }
#endregion
protected void Page_Load(object sender, EventArgs e)
@@ -300,6 +308,8 @@ public partial class CRM_Acercamiento : ClsPaginas
DivMensajeDatosTecnicos.Visible = false;
}
}
+
+ CargaCheckLis();
}
CargarPS();
}
@@ -334,11 +344,12 @@ public partial class CRM_Acercamiento : ClsPaginas
TxtNombreAcercamiento.Text = objAcercamiento.Result[0].NombreAcercamiento;
TxtDescripcion.Text = objAcercamiento.Result[0].Descripcion;
TxtFechaApertura.Text = objAcercamiento.Result[0].FechaApertura.ToDateTime().ToShortDateString();
- TxtFechaCierre.Text = (objAcercamiento.Result[0].FechaCierre.ToString() == "") ? "" : objAcercamiento.Result[0].FechaCierre.ToDateTime().ToShortDateString();
+ TxtFechaCierre.Text = (objAcercamiento.Result[0].FechaCierre.ToString() == "") || objAcercamiento.Result[0].FechaCierre.ToString().ToDate() == ModExtensiones.MinFecha ? "" : objAcercamiento.Result[0].FechaCierre.ToDateTime().ToShortDateString();
TxtImporte.Text = String.Format("{0:C2}", objAcercamiento.Result[0].Importe.ToEntero());
TxtComision.Text = String.Format("{0:C2}", objAcercamiento.Result[0].Comision.ToEntero());
DdlProbabilidadAcercamiento.SelectedValueExist(objAcercamiento.Result[0].CveProbabilidadAcercamiento);
DdlPrioridad.SelectedValueExist(objAcercamiento.Result[0].Prioridad);
+ ChkePausa.Checked = objAcercamiento.Result[0].EnPausa;
CargaDdl();
//SECCION DATOS DE LA EMPRESA
@@ -411,6 +422,11 @@ public partial class CRM_Acercamiento : ClsPaginas
DivBitacora.Visible = true;
CargaEventoBitacora(HdfEtapaSeleccionada.Value.ToEntero());
}
+ else
+ {
+ CargaEventoBitacora(-1);
+ }
+
}
CargaImagenes();
@@ -689,6 +705,7 @@ public partial class CRM_Acercamiento : ClsPaginas
AcercaminetoModel.FechaCierre = FechaCierre != null ? (DateTime)FechaCierre : ModExtensiones.MinFecha;
AcercaminetoModel.CvePS = DdlPS.SelectedValue.ToEntero();
AcercaminetoModel.CveRechazoMotivo = CveRechazoMotivo;
+ AcercaminetoModel.EnPausa = ChkePausa.Checked;
if (cRMService.AcercamientoUpdate(AcercaminetoModel))
@@ -832,7 +849,8 @@ public partial class CRM_Acercamiento : ClsPaginas
}
objBitacora.Dispose();
- }
+ }
+
#endregion
#region "FINALIZACION DE ACERCAMIENTO"
@@ -1065,16 +1083,16 @@ public partial class CRM_Acercamiento : ClsPaginas
if (ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveAcercamientoCRM: CveAcercamiento))
{
- DTEventosBitacora = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2");
+ DTEventosBitacora = ObjEventoBitacora.DtResultados.FiltraParametros("[CveTipoEvento] = 6 OR [CveTipoEvento] = 2");
if (CveEtapa == -1)
{
- GVEventoBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("Archivo = '' OR Archivo IS NULL", CveEtapa));
- RptArchivosBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("Archivo <> ''", CveEtapa));
+ GVEventoBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("[Archivo] = '' OR [Archivo] IS NULL OR CONVERT([Descripcion],System.String) LIKE 'Check List%'", CveEtapa));
+ RptArchivosBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("[Archivo] <> ''", CveEtapa));
}
else
{
- GVEventoBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("CveEtapaProcesoCRM = {0} AND ( Archivo = '' OR Archivo IS NULL)", CveEtapa));
- RptArchivosBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("CveEtapaProcesoCRM = {0} AND Archivo <> ''", CveEtapa));
+ GVEventoBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("[CveEtapaProcesoCRM] = {0} AND ( [Archivo] = '' OR [Archivo] IS NULL ) OR CONVERT([Descripcion],System.String) LIKE 'Check List%'", CveEtapa));
+ RptArchivosBitacora.DataSource = DTEventosBitacora.FiltraParametros(String.Format("[CveEtapaProcesoCRM] = {0} AND [Archivo] <> '' OR CONVERT([Descripcion],System.String) LIKE 'Check List%'", CveEtapa));
}
}
else
@@ -1086,6 +1104,8 @@ public partial class CRM_Acercamiento : ClsPaginas
GVEventoBitacora.DataBind();
RptArchivosBitacora.DataBind();
+
+ UPBitacora.Update();
}
protected void GVEventoBitacora_RowDataBound(object sender, GridViewRowEventArgs e)
@@ -1171,7 +1191,10 @@ public partial class CRM_Acercamiento : ClsPaginas
int CveEmpresaCRM = DdlEmpresaCRM.SelectedValue.ToEntero();
int CveEtapa = HdfEtapaSeleccionada.Value.ToEntero() == -1 ? CveEtapaActual : HdfEtapaSeleccionada.Value.ToEntero();
- if (ObjEventos.AddEventoAgenda(DdlTipoAgenda.SelectedValue.ToEntero(), TxtAsuntoAgenda.Text, TxtDescripcionAgenda.Text, DdlPrioridadAgenda.SelectedValue.ToEntero(), FechaInicio, FechaInicio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoProcesoCRM: CveTipoProceso, CveAcercamientoCRM: CveAcercamiento, CveContactoCRM: CveContactoAgendar, CveEtapaProcesoCRM: CveEtapa, CveEmpresaCRM: CveEmpresaCRM))
+
+ string AgendaDescripcion = $"
{ TxtNombreAcercamiento.Text.Trim()} {TxtDescripcionAgenda.Text.Trim()}";
+
+ if (ObjEventos.AddEventoAgenda(DdlTipoAgenda.SelectedValue.ToEntero(), TxtAsuntoAgenda.Text, AgendaDescripcion, DdlPrioridadAgenda.SelectedValue.ToEntero(), FechaInicio, FechaInicio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoProcesoCRM: CveTipoProceso, CveAcercamientoCRM: CveAcercamiento, CveContactoCRM: CveContactoAgendar, CveEtapaProcesoCRM: CveEtapa, CveEmpresaCRM: CveEmpresaCRM))
{
limpiarModalAgendar();
RegistraScript("$('#ModalAgenda').modal('hide')");
@@ -1812,4 +1835,211 @@ public partial class CRM_Acercamiento : ClsPaginas
}
#endregion
+
+
+
+ #region "CHECK LIST"
+
+
+ private void CargaCheckLis()
+ {
+ using (ClsOIEventos objOI = new ClsOIEventos())
+ {
+ if (objOI.Getcheklist(-1, CveAcercamiento: CveAcercamiento))
+ {
+ GVcheklist.DataSource = objOI.DtResultados;
+ GVcheklist.DataBind();
+ }
+ }
+
+ UpChkList.Update();
+ }
+
+ protected void LnkAgregarchklistitem_Click(object sender, EventArgs e)
+ {
+ bool procesoOk = false;
+
+ if (TxtActividad.Text.Trim().Length > 0)
+ {
+ if (CveAcercamiento > 0)
+ {
+ using (ClsOIEventos objOI = new ClsOIEventos())
+ {
+ objOI.IniciaTransacSQL();
+ if (objOI.Addcheklist(-1, TxtActividad.Text, UsuarioActual.CveUsuario, CveAcercamiento: CveAcercamiento))
+ {
+ Alert("Se agregó la actividad", ModExtensiones.TipoMensaje.ToastInformacion);
+ if (objOI.Getcheklist(-1, CveAcercamiento: CveAcercamiento))
+ {
+ GVcheklist.DataSource = objOI.DtResultados;
+ GVcheklist.DataBind();
+ if (BitacoraCheckList(objOI.IniciaTransacSQL(), $"Check List se agrega actividad {TxtActividad.Text}", CveAcercamiento))
+ {
+ procesoOk = true;
+ }
+ }
+ }
+
+
+ if (procesoOk)
+ {
+ objOI.Commit();
+ CargaEventoBitacora((CveEtapaActual > 0 ? HdfEtapaSeleccionada.Value.ToEntero() : -1));
+ }
+ else
+ {
+ objOI.RollBack();
+ }
+
+ }
+ }
+ else
+ {
+ System.Data.DataRow drow = CheckListNew.NewRow();
+ drow["CveEventoCheckList"] = chklistitemindex++;
+ drow["EventoComentario"] = TxtActividad.Text;
+ drow["Estatus"] = false;
+ //CveEventoCheckList,CveEvento,CveTipoEvento,EventoComentario,Estatus,CveUsuario,Usuario,FechaIng
+ CheckListNew.Rows.Add(drow);
+ GVcheklist.DataSource = CheckListNew;
+ GVcheklist.DataBind();
+ }
+ }
+ TxtActividad.Focus();
+ TxtActividad.Text = "";
+ }
+
+
+ protected void ChkEstatus_CheckedChanged(object sender, EventArgs e)
+ {
+ CheckBox chk = (CheckBox)sender;
+ GridViewRow gvrow = (GridViewRow)chk.NamingContainer;
+ bool procesoOk = false;
+
+ using (ClsOIEventos objOI = new ClsOIEventos())
+ {
+ string EventoComentario = gvrow.DataKey("EventoComentario");
+
+ objOI.IniciaTransacSQL();
+ if (objOI.Upcheklist(gvrow.DataKey("CveEventoCheckList").ToEntero(), gvrow.DataKey("CveEvento").ToEntero(), gvrow.DataKey("EventoComentario"), chk.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
+ CveAcercamiento: CveAcercamiento))
+ {
+
+ Alert("Se actualizó el estatus de la actividad", ModExtensiones.TipoMensaje.ToastInformacion);
+ if (objOI.Getcheklist(-1, CveAcercamiento: CveAcercamiento))
+ {
+ GVcheklist.DataSource = objOI.DtResultados;
+ GVcheklist.DataBind();
+
+ if (BitacoraCheckList(objOI.IniciaTransacSQL(), $"Check List {(chk.Checked == true ? "Se termina actividad ":" se retorna actividad") } {EventoComentario}", CveAcercamiento))
+ {
+ procesoOk = true;
+ }
+ }
+ }
+
+
+ if (procesoOk)
+ {
+ objOI.Commit();
+ CargaEventoBitacora((CveEtapaActual > 0 ? HdfEtapaSeleccionada.Value.ToEntero() : -1));
+ }
+ else
+ {
+ objOI.RollBack();
+ }
+ }
+ }
+
+
+ protected void LnkEliminarchek_Click(object sender, EventArgs e)
+ {
+ bool procesoOk = false;
+
+ GridViewRow gvrow = (GridViewRow)((LinkButton)sender).NamingContainer;
+
+ if(!(CveAcercamiento > 0))
+ {
+ CheckListNew = CheckListNew.FiltraParametros(string.Format("CveEventoCheckList <> {0}", gvrow.DataKey("CveEventoCheckList")));
+ GVcheklist.DataSource = CheckListNew;
+ GVcheklist.DataBind();
+ }
+ else
+ {
+ using (ClsOIEventos objOI = new ClsOIEventos())
+ {
+ objOI.IniciaTransacSQL();
+ string EventoComentario = gvrow.DataKey("EventoComentario");
+
+ if (objOI.Removecheklist(gvrow.DataKey("CveEventoCheckList").ToEntero(), gvrow.DataKey("CveEvento").ToEntero(), UsuarioActual.CveUsuario, CveAcercamiento: CveAcercamiento))
+ {
+ Alert("Se ha eliminadó la actividad", ModExtensiones.TipoMensaje.ToastInformacion);
+ if (objOI.Getcheklist(-1, CveAcercamiento))
+ {
+ GVcheklist.DataSource = objOI.DtResultados;
+ GVcheklist.DataBind();
+
+ if (BitacoraCheckList(objOI.IniciaTransacSQL(), $"Check List se elimina actividad {EventoComentario}", CveAcercamiento))
+ {
+ procesoOk = true;
+ }
+ }
+ }
+
+ if(procesoOk)
+ {
+ objOI.Commit();
+
+ CargaEventoBitacora((CveEtapaActual > 0? HdfEtapaSeleccionada.Value.ToEntero():-1));
+ }
+ else
+ {
+ objOI.RollBack();
+ }
+ }
+ }
+ }
+
+
+ private bool BitacoraCheckList(SqlTransaction sqlTransaction, string TextoRegistroBitacora, int CveAcercamientoBitacora)
+ {
+ bool respuesta = false;
+
+ ClsOIEventos objBitacora = new ClsOIEventos(sqlTransaction);
+
+ if (objBitacora.AddEventoBitacora(TextoRegistroBitacora, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveAcercamientoCRM: CveAcercamientoBitacora))
+ {
+ respuesta = true;
+ }
+
+ return respuesta;
+ }
+
+ protected void LnkSinfuncion_Click(object sender, EventArgs e)
+ {
+ // es para mandar llamar el ChkEstatus_CheckedChanged
+ }
+
+
+
+ //private bool GuardaCheckList(SqlTransaction transaction, int CveAcercamientoNuevo)
+ //{
+ // bool respuesta = true;
+
+ // ClsOIEventos objOI = new ClsOIEventos(transaction);
+
+ // foreach (GridViewRow GvRow in GVcheklist.Rows)
+ // {
+ // if (!objOI.Addcheklist(-1, TxtActividad.Text, UsuarioActual.CveUsuario, CveAcercamiento: CveAcercamiento))
+ // {
+ // respuesta = false;
+ // break;
+ // }
+ // }
+
+ // return respuesta;
+ //}
+
+ #endregion
+
}
\ No newline at end of file
diff --git a/CRM/EmpresaCRM.aspx b/CRM/EmpresaCRM.aspx
index a186c7ebe..c01d3a2ed 100644
--- a/CRM/EmpresaCRM.aspx
+++ b/CRM/EmpresaCRM.aspx
@@ -248,18 +248,25 @@
@@ -574,6 +591,73 @@