CRM Check list

This commit is contained in:
Oscar Irigoyen
2022-11-08 08:05:21 -07:00
parent 47d91a8fd9
commit b45d854964
9 changed files with 243 additions and 12 deletions

View File

@@ -1189,12 +1189,13 @@ Public Class ClsOIEventos
#Region "CRUD_cheklist"
Public Function Getcheklist(cveEvento As Int32) As Boolean
Public Function Getcheklist(cveEvento As Int32, Optional CveAcercamiento As Integer = -1) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_cheklistGet", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@cveEvento", SqlDbType.Int).Value = cveEvento
.Add("@CveAcercamiento", SqlDbType.Int).Value = CveAcercamiento
End With
Try
SqlAdapter.Fill(Data)
@@ -1204,13 +1205,14 @@ Public Class ClsOIEventos
End Try
Return retorno
End Function
Public Function Addcheklist(cveEvento As Int32, eventoComentario As String, cveUsuario As Int32) As Boolean
Public Function Addcheklist(cveEvento As Int32, eventoComentario As String, cveUsuario As Int32, Optional CveAcercamiento As Integer = -1) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_cheklistAdd", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@cveEvento", SqlDbType.Int).Value = cveEvento
.Add("@eventoComentario", SqlDbType.VarChar).Value = eventoComentario
.Add("@cveUsuario", SqlDbType.Int).Value = cveUsuario
.Add("@CveAcercamiento", SqlDbType.Int).Value = CveAcercamiento
End With
Try
SqlAdapter.Fill(Data)
@@ -1220,7 +1222,7 @@ Public Class ClsOIEventos
End Try
Return retorno
End Function
Public Function Upcheklist(cveEventoCheckList As Int32, cveEvento As Int32, eventoComentario As String, estatus As Boolean, cveUsuario As Int32, CveEmpresa As Int32) As Boolean
Public Function Upcheklist(cveEventoCheckList As Int32, cveEvento As Int32, eventoComentario As String, estatus As Boolean, cveUsuario As Int32, CveEmpresa As Int32, Optional CveAcercamiento As Integer = -1) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_cheklistUp", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
@@ -1230,6 +1232,7 @@ Public Class ClsOIEventos
.Add("@estatus", SqlDbType.Bit).Value = estatus
.Add("@cveUsuario", SqlDbType.Int).Value = cveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveAcercamiento", SqlDbType.Int).Value = CveAcercamiento
End With
Dim separador As String = ""
@@ -1272,13 +1275,14 @@ Public Class ClsOIEventos
End If
Return retorno
End Function
Public Function Removecheklist(cveEventoCheckList As Int32, cveEvento As Int32, cveUsuario As Int32) As Boolean
Public Function Removecheklist(cveEventoCheckList As Int32, cveEvento As Int32, cveUsuario As Int32, Optional CveAcercamiento As Integer = -1) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_cheklistRemove", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@cveEventoCheckList", SqlDbType.Int).Value = cveEventoCheckList
.Add("@cveEvento", SqlDbType.Int).Value = cveEvento
.Add("@cveUsuario", SqlDbType.Int).Value = cveUsuario
.Add("@CveAcercamiento", SqlDbType.Int).Value = CveAcercamiento
End With
Try
SqlAdapter.Fill(Data)

View File

@@ -5462,7 +5462,7 @@ Partial Class Bancos_IE
Else
Alert("El documento no ha sido eliminado.", TipoMensaje.MsgAdvertencia)
Alert($"El documento no ha sido eliminado. {If(UsuarioActual.CveRol = 1, MsgEliminar, "")}", TipoMensaje.MsgAdvertencia)
If ObjAC IsNot Nothing Then ObjAC.RollBack()

Binary file not shown.

View File

@@ -498,6 +498,7 @@
</div>
<div class="col-md-4">
<div class="portlet light xspadding bordered" style="height: 228px">
<div class="portlet-title">
<div class="caption font-green">
@@ -532,8 +533,75 @@
<asp:CheckBox ID="ChkePausa" runat="server" CssClass="make-switchsd" data-size="small" Text=" " />
</div>
</div>
</div>
<br />
<asp:UpdatePanel ID="UpChkList" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-8">
<div class="form-group form-md-line-input">
<asp:TextBox ID="TxtActividad" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="Rfvactividadchklist" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtActividad" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''actividad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTareachklist"></asp:RequiredFieldValidator>
<asp:Label runat="server" Text="Actividad" AssociatedControlID="TxtActividad"></asp:Label>
</div>
</div>
<div class="col-md-4">
<%--<asp:Button ID="LnkSinfuncion" OnClick="LnkSinfuncion_Click" UseSubmitBehavior="false" CssClass="btn btn-default LnkSinfuncion hidden" runat="server"></asp:Button>--%>
<asp:LinkButton ID="LnkAgregarchklistitem" OnClick="LnkAgregarchklistitem_Click" ValidationGroup="GrpTareachklist" CssClass="btn btn-success" runat="server">Agregar</asp:LinkButton>
<%--<a class="btn btn-default">Agregar</a>--%>
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GVcheklist" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall GVcheklist" AutoGenerateColumns="False"
DataKeyNames="CveEventoCheckList,CveEvento,CveTipoEvento,EventoComentario,Estatus,CveUsuario,Usuario,FechaIng">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Width="30">
<ItemTemplate>
<asp:CheckBox ID="ChkEstatus" Text=" " AutoPostBack="true" OnCheckedChanged="ChkEstatus_CheckedChanged" runat="server" data-valor='<%# Extensiones.ModExtensiones.Encripta(Eval("CveEventoCheckList").ToString())%>' Checked='<%# Eval("Estatus")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Actividad">
<ItemTemplate>
<%--<pre>--%>
<span class="pre">
<asp:Literal ID="lbleventoComentario" runat="server" Text='<%# Eval("EventoComentario")%>'> </asp:Literal>
</span>
<%--</pre>--%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="30" Visible="false">
<ItemTemplate>
<%--<asp:LinkButton data-toggle="tooltip" title="Editar" ID="LnkEditar" OnClick="LnkEditarCheck_Click" CssClass="btn btn-circle btn-sm green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>--%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="30">
<ItemTemplate>
<asp:LinkButton ID="LnkD" runat="server" OnClick="LnkEliminarchek_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el cheklist?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<%--END DATOS DE EMPRESA CRM --%>
</div>

View File

@@ -5,11 +5,14 @@ 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.Linq;
using System.Web;
@@ -266,6 +269,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 +307,8 @@ public partial class CRM_Acercamiento : ClsPaginas
DivMensajeDatosTecnicos.Visible = false;
}
}
CargaCheckLis();
}
CargarPS();
}
@@ -334,7 +343,7 @@ 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.ToString().ToDate() == ModExtensiones.MinFecha ? "" : 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);
@@ -1814,4 +1823,135 @@ 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)
{
if (TxtActividad.Text.Trim().Length > 0)
{
if (CveAcercamiento > 0)
{
using (ClsOIEventos objOI = new ClsOIEventos())
{
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();
}
}
}
}
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;
using (ClsOIEventos objOI = new ClsOIEventos())
{
if (objOI.Upcheklist(gvrow.DataKey("CveEventoCheckList").ToEntero(), gvrow.DataKey("CveEvento").ToEntero(), gvrow.DataKey("EventoComentario"), chk.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
CveAcercamiento: CveAcercamiento))
{
//ObjEventosCorreo o = objOI.objCorreo;
Alert("Se actualizó el estatus de la actividad", ModExtensiones.TipoMensaje.ToastInformacion);
if (objOI.Getcheklist(-1, CveAcercamiento: CveAcercamiento))
{
GVcheklist.DataSource = objOI.DtResultados;
GVcheklist.DataBind();
}
}
}
}
protected void LnkEliminarchek_Click(object sender, EventArgs e)
{
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())
{
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();
}
}
}
}
}
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
}

View File

@@ -402,7 +402,7 @@
<div runat="server" id="Div2" style="padding: 0 10px 10px 10px;">
<asp:UpdatePanel runat="server" ID="UpCotizacion" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvCotizacion" runat="server" DataKeyNames="CveVenta,CveEmpresaCRM,CveAcercamientoCRM,CveEstatusFactura, EstatusFactura" EmptyDataText="Aún no se han registrado Cotizaciones"
<asp:GridView ID="GvCotizacion" runat="server" DataKeyNames="CveVenta,CveEmpresaCRM,CveAcercamientoCRM,CveEstatusFactura, EstatusFactura,Total" EmptyDataText="Aún no se han registrado Cotizaciones"
EmptyDataRowStyle-HorizontalAlign="Center" ToolTip="Listado de Cotizaciones" CssClass="table table-striped table-advance table-hover ScrollAD Widthall mysmallbtn" AlternatingRowStyle-BorderStyle="None"
GridLines="None" BorderColor="#D3D3D3" BorderWidth="1" AutoGenerateColumns="false" OnRowDataBound="GvCotizacion_RowDataBound">
<Columns>
@@ -411,7 +411,9 @@
<asp:HyperLinkField DataTextField="SerieFolio" Target="_blank" DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" ItemStyle-HorizontalAlign="Left" HeaderText="Serie Folio" />
<asp:BoundField DataField="Fecha" HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField DataField="Total" ItemStyle-HorizontalAlign="Right" HeaderText="Total" DataFormatString="{0:N2}" />
<asp:BoundField DataField="Vendedor" HeaderText="Vendedor" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Total" ItemStyle-HorizontalAlign="Right" HeaderText="Total" DataFormatString="{0:n2}" />
<asp:TemplateField HeaderText="Estatus" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>

View File

@@ -1789,7 +1789,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
#region "COTIZACIONES"
protected void CargaCotizaciones()
{
ClsVentas ObjVentas = new ClsVentas();
IVentaService ventaService = new VentaService(System.Configuration.ConfigurationManager.ConnectionStrings["Conexion"].ConnectionString);
RequestVentas requestVentas = new RequestVentas(UsuarioActual.CveEmpresa, TipoDocto: "Cot", CveEmpresaCRM: CveEmpresaCRM, CveUsuarioConsulta: UsuarioActual.CveUsuario);
var objVentas = ventaService.GetVentas(requestVentas);
@@ -1802,7 +1802,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
//{
// GvCotizacion.DataSource = ObjVentas.DtResultados;
//}
ObjVentas.Dispose();
GvCotizacion.DataBind();
UpCotizacion.Update();
}
@@ -1815,6 +1815,11 @@ public partial class CRM_EmpresaCRM : ClsPaginas
{
e.Row.FCLabel("lblEstatus").Text = String.Format("<b>{0}</b>", e.Row.DataKey("EstatusFactura"));
}
if(e.Row.DataKey("Total").ToDecimal() != 0)
{
e.Row.Cells[5].Text = e.Row.DataKey("Total").ToDecimal().ToString("###,###,###.00");
}
}
}
#endregion

View File

@@ -6185,6 +6185,12 @@ Partial Class Ventas
DdlVendedor.Enabled = False
LbAgregar.Enabled = True
End If
ThTiempoEntrega.Visible = True
ThTiempoEntrega2.Visible = True
GvPS.Columns(5).Visible = True
End If
ObjCRM.Dispose()
End Sub
@@ -7820,7 +7826,7 @@ Partial Class Ventas
End If
'Si es Cotizacíon
If e.Row.DBCampo("TipoDocto") = "Cot" Then
If e.Row.DBCampo("TipoDocto") = "Cot" Or CveEmpresaCRM > 0 Then
ThTiempoEntrega.Visible = True
ThTiempoEntrega2.Visible = True
GvPS.Columns(5).Visible = True

View File

@@ -574,6 +574,12 @@