Crm Rep Acercamientos, Clientes Abonora seleccion por layout

This commit is contained in:
Oscar Irigoyen
2022-11-11 08:36:57 -07:00
parent b45d854964
commit 1079aa4290
9 changed files with 597 additions and 45 deletions

View File

@@ -152,7 +152,8 @@ Public Class ClsMovimientos
.Add("@FechaVencimientoF", SqlDbType.Date).Value = FechaVencimientoF
End With
Try
Try
SqlAdapter.SelectCommand.CommandTimeout = 0
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException

Binary file not shown.

View File

@@ -419,7 +419,7 @@
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlContactoPrincipal" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="Nombre" DataValueField="CveContacto" Class="form-control input-sm select2me">
<asp:DropDownList ID="DdlContactoPrincipal" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="NombreTipoContacto" DataValueField="CveContacto" Class="form-control input-sm select2me">
<asp:ListItem Value="-1" Text="Seleccione"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DdlContactoPrincipal.ClientID.ToString()%>">Contacto Principal:</label>
@@ -534,7 +534,36 @@
</div>
</div>
<br />
</div>
</div>
</div>
<%--END DATOS DE EMPRESA CRM --%>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<div class="portlet light xspadding bordered" >
<div class="portlet-title">
<div class="caption font-green">
<i class="fa fa-refresh font-green"></i>
<span class="caption-subject bold uppercase">Check List</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
</div>
<div id="DVCheckList" class="portlet-body form">
<asp:UpdatePanel ID="UpChkList" runat="server" UpdateMode="Conditional">
<ContentTemplate>
@@ -557,7 +586,7 @@
<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"
<asp:GridView ID="GVcheklist" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall GVcheklist mysmallbtn" AutoGenerateColumns="False"
DataKeyNames="CveEventoCheckList,CveEvento,CveTipoEvento,EventoComentario,Estatus,CveUsuario,Usuario,FechaIng">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Width="30">
@@ -603,7 +632,9 @@
</div>
</div>
<%--END DATOS DE EMPRESA CRM --%>
<div class="col-md-4"></div>
</div>
</ContentTemplate>
</ajax:TabPanel>
@@ -978,9 +1009,7 @@
<asp:LinkButton runat="server" ID="LbtVerBitacoraCompleta" class="btn btn-circle btn-sm blue" Text="Ver todo" data-toggle="tooltip" OnClick="LbtVerBitacoraCompleta_Click" Style="text-decoration: none; margin-right: 5px;">
<%--<i class="fa fa-angle-down fa-3x" style="color: #32c5d2 !important"></i>--%>
</asp:LinkButton>
<a class="btn btn-circle btn-sm btn-default" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="false">Agregar <i class="fa fa-angle-down"></i>
</a>
<a class="btn btn-circle btn-sm btn-default" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="false">Agregar <i class="fa fa-angle-down"></i></a>
<ul class="dropdown-menu pull-right">
<li>
<asp:HyperLink ID="LnkAgregarObservaciones" Text="<i class='fa fa-commenting-o'></i> Observación" data-toggle="modal" data-target="#ModalBitacora" runat="server" Style="cursor: pointer; margin-right: 5px;"></asp:HyperLink>
@@ -990,6 +1019,14 @@
<asp:HyperLink ID="LnkAgregarAgenda" Text="<i class='fa fa-calendar-plus-o'></i> Agenda" data-toggle="modal" data-target="#ModalAgenda" runat="server" Style="cursor: pointer; margin-right: 5px;"></asp:HyperLink>
</li>
</ul>
<%-- <asp:HyperLink ID="ImgAddObs" CssClass="caption-subject bold" data-toggle="modal" data-target="#ModalBitacora" runat="server" Text=" <i class='fa fa-commenting font-green' ></i><span class='caption-subject bold'>Agregar</span>" Style="font-weight: 700 !important;cursor: pointer;" ToolTip="Observaciones"></asp:HyperLink><br />
<asp:HyperLink ID="HlEvento" CssClass="thickbox caption-subject bold" runat="server" Text=" <i class='fa fa-calendar-plus-o font-green' ></i>Agendar" Visible="false" Style="font-weight: 700 !important;cursor: pointer;" ToolTip="Agendar"></asp:HyperLink><br />
<asp:Literal ID="LtlTareaNueva" runat="server"></asp:Literal>
<UserControl:TareaNueva runat="server" ID="TareaNueva" />
<script> function OnAddedTareaNueva() { $('.btnupEventoBitacora').click(); }</script>--%>
</div>
</div>
</div>

View File

@@ -14,6 +14,7 @@ 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;
@@ -421,6 +422,11 @@ public partial class CRM_Acercamiento : ClsPaginas
DivBitacora.Visible = true;
CargaEventoBitacora(HdfEtapaSeleccionada.Value.ToEntero());
}
else
{
CargaEventoBitacora(-1);
}
}
CargaImagenes();
@@ -843,7 +849,8 @@ public partial class CRM_Acercamiento : ClsPaginas
}
objBitacora.Dispose();
}
}
#endregion
#region "FINALIZACION DE ACERCAMIENTO"
@@ -1076,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
@@ -1097,6 +1104,8 @@ public partial class CRM_Acercamiento : ClsPaginas
GVEventoBitacora.DataBind();
RptArchivosBitacora.DataBind();
UPBitacora.Update();
}
protected void GVEventoBitacora_RowDataBound(object sender, GridViewRowEventArgs e)
@@ -1182,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 = $"<a class='Texto' href='/CRM/Acercamiento.aspx?CveAcercamiento={CveAcercamiento}' target='_blank' >{ TxtNombreAcercamiento.Text.Trim()}</a> {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')");
@@ -1845,12 +1857,15 @@ public partial class CRM_Acercamiento : ClsPaginas
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);
@@ -1858,8 +1873,24 @@ public partial class CRM_Acercamiento : ClsPaginas
{
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
@@ -1883,25 +1914,48 @@ public partial class CRM_Acercamiento : ClsPaginas
{
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))
{
//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();
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))
@@ -1914,6 +1968,9 @@ public partial class CRM_Acercamiento : ClsPaginas
{
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);
@@ -1921,12 +1978,43 @@ public partial class CRM_Acercamiento : ClsPaginas
{
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

View File

@@ -18,12 +18,18 @@
<li>
<asp:LinkButton ID="LnkExcel" OnClick="LnkExcel_Click" runat="server" Text="<i class='fa fa-file-excel-o' style='font-weight:bold;'></i> Excel" ></asp:LinkButton>
</li>
<li>
<asp:HyperLink NavigateUrl="#" data-toggle="modal" data-target="#DivPersonalizar" ID="ImgPersonalizar" runat="server"> <i class="fa fa-pencil"></i> Personalizar</asp:HyperLink>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkPDF" />
<asp:PostBackTrigger ControlID="LnkExcel" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
@@ -68,12 +74,15 @@
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudF" TargetControlID="TxtFechaFin" PopupButtonID="imgFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<label class="col-md-1" >Producto Servicio:</label>
<div class="col-md-1">
<div style="width:100%">
<ADS:Dropdownlost runat="server" Width="100%" ID="DdlPS" CssClassDdl="table-group-action-input form-control input-inline input-small input-sm select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
</div>
<label class="col-md-1" >Etapa:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlEtapaProceso" Width="100%" runat="server" CssClass="form-control input-sm select2me" DataTextField="EtapaProceso" DataValueField="CveEtapaProceso">
</asp:DropDownList>
</div>
</div>
</div>
@@ -93,14 +102,7 @@
<asp:ListItem Value="0">Activos</asp:ListItem>
<asp:ListItem Value="1">En Pausa</asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1" >Etapa:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlEtapaProceso" Width="100%" runat="server" CssClass="form-control input-sm select2me" DataTextField="EtapaProceso" DataValueField="CveEtapaProceso">
</asp:DropDownList>
</div>
</div>
<label class="col-md-1" >Medio Captación:</label>
<div class="col-md-1">
@@ -114,6 +116,14 @@
</asp:DropDownList>
</div>
<label class="col-md-1" >Producto Servicio:</label>
<div class="col-md-2">
<div style="width:100%">
<ADS:Dropdownlost runat="server" Width="100%" ID="DdlPS" CssClassDdl="table-group-action-input form-control input-inline input-small input-sm select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
</div>
</div>
</div>
</div>
@@ -131,46 +141,162 @@
AutoGenerateColumns="False" EmptyDataText="No se encontraron Registros con los filtros especificados" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-sort="true" GridLines="None"
EmptyDataRowStyle-HorizontalAlign="Center" OnRowDataBound="GVDatos_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Proceso" ItemStyle-Width="15%" HeaderStyle-HorizontalAlign="Left">
<%--0--%>
<asp:TemplateField HeaderText="Proceso" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlTipoProceso" runat="server" Text='<%# Eval("TipoProceso") %>'></asp:Literal>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="Acercamiento" ItemStyle-HorizontalAlign="Left">
<%--1--%>
<asp:TemplateField HeaderText="Acercamiento" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:HyperLink NavigateUrl="#" Target="_blank" ID="HplNombreAcercamiento" runat="server" Text='<%# Eval("NombreAcercamiento")%>'> </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="Etapa Actual" ItemStyle-HorizontalAlign="Left">
<%--2--%>
<asp:TemplateField HeaderText="Etapa Actual" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblEtapaProcesoActual" runat="server" Text='<%# Eval("EtapaProcesoActual")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="Medio de Captación" ItemStyle-HorizontalAlign="Left">
<%--3--%>
<asp:TemplateField HeaderText="Medio de Captación" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblMedioCaptacion" runat="server" Text='<%# Eval("MedioCaptacion")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Vendedor" ItemStyle-HorizontalAlign="Left">
<%--4--%>
<asp:TemplateField HeaderText="Vendedor" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblVendedor" runat="server" Text='<%# Eval("Vendedor")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--5--%>
<asp:TemplateField HeaderText="Importe" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblImporte" runat="server" Text='<%# Eval("Importe","{0:c2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--6--%>
<asp:TemplateField HeaderText="Apertura" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="LblFechaApertura" runat="server" Text='<%# Eval("FechaApertura","{0:d}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--7--%>
<asp:TemplateField HeaderText="Cierre" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="LblFechaCierre" runat="server" Text='<%# Eval("FechaCierre","{0:d}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--8--%>
<asp:TemplateField HeaderText="Producto/Servicio" ItemStyle-HorizontalAlign="Left" Visible="false">
<ItemTemplate>
<asp:Label ID="LblPS" runat="server" Text='<%# Eval("PS")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--10--%>
<asp:TemplateField HeaderText="En Pausa" ItemStyle-HorizontalAlign="Left" Visible="false" HeaderStyle-Width="75px">
<ItemTemplate>
<asp:Label ID="LblStrEnPausa" runat="server" Text='<%# Eval("StrEnPausa")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%--11--%>
<asp:TemplateField HeaderText="Giro" ItemStyle-HorizontalAlign="Left" Visible="false">
<ItemTemplate>
<asp:Label ID="LblGiroClasificacion" runat="server" Text='<%# Eval("GiroClasificacion")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField ItemStyle-Width="10%" DataField="Importe" HeaderText="Importe" DataFormatString="{0:C2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField ItemStyle-Width="10%" DataField="FechaApertura" HeaderText="Apertura" DataFormatString="{0:g}" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField ItemStyle-Width="10%" DataField="FechaCierre" HeaderText="Cierre" DataFormatString="{0:g}" ItemStyle-HorizontalAlign="Center" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UPPersonalizar" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivPersonalizar" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LblTitulo" runat="server" ClientIDMode="Static" Text="Personalizar Columnas"></asp:Label>
</h4>
</div>
<div class="modal-body">
<table style="width: 100%;" class="table table-striped table-advance table-hover">
<tbody>
<tr>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkProceso" Text="Proceso" Checked="true" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkAcercamiento" Text="Acercamiento" Checked="true" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkEtapa" Text=" Etapa Actual" Checked="true" />
</td>
</tr>
<tr>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkMedioCaptacion" Text="Medio de Captación" Checked="true" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkVendedor" Text="Vendedor" Checked="true" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkImporte" Text="Importe" Checked="true" />
</td>
</tr>
<tr>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkApertura" Text="Apertura" Checked="true" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkCierre" Text="Cierre" Checked="true" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkPS" Text="Producto/Servicio" />
</td>
</tr>
<tr>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkEnPausa" Text="En Pausa" />
</td>
<td style="text-align: left;">
<asp:CheckBox runat="server" ID="ChkGiro" Text="Giro" />
</td>
<td style="text-align: left;"></td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<asp:LinkButton runat="server" ID="LnkPersonalizar" CssClass="btn btn-success" OnClick="LnkPersonalizar_Click" Text="Personalizar"></asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -10,6 +10,7 @@ using Microsoft.Reporting.WebForms;
using ADSNetLibrary.SIGAPI.Services.CRM;
using ADSNetLibrary.SIGAPI.Models.CRM.Request;
//using ADSNetLibrary.SIGAPI.Helpers;
public partial class CRM_RepAcercamientos : ClsPaginas
@@ -47,6 +48,7 @@ public partial class CRM_RepAcercamientos : ClsPaginas
{
InicializaDatos();
CargaDatos();
}
}
@@ -156,4 +158,37 @@ public partial class CRM_RepAcercamientos : ClsPaginas
ImprimirPDF("Empresas/Grales/Formatos/RepAcercamientos.rdlc", DtDatos, @params, "Reporte de Acercamientos", formato);
}
protected void LnkPersonalizar_Click(object sender, EventArgs e)
{
PersonalizarColumnas();
}
private void PersonalizarColumnas()
{
GVDatos.Columns[0].Visible = ChkProceso.Checked;
GVDatos.Columns[1].Visible = ChkAcercamiento.Checked;
GVDatos.Columns[2].Visible = ChkEtapa.Checked;
GVDatos.Columns[3].Visible = ChkMedioCaptacion.Checked;
GVDatos.Columns[4].Visible = ChkVendedor.Checked;
GVDatos.Columns[5].Visible = ChkImporte.Checked;
GVDatos.Columns[6].Visible = ChkApertura.Checked;
GVDatos.Columns[7].Visible = ChkCierre.Checked;
GVDatos.Columns[8].Visible = ChkPS.Checked;
GVDatos.Columns[9].Visible = ChkEnPausa.Checked;
GVDatos.Columns[10].Visible = ChkGiro.Checked;
UPDatos.Update();
RegistraScript("$('#DivPersonalizar').modal('hide')");
}
}

View File

@@ -18,6 +18,11 @@
<li>
<asp:HyperLink ID="HplVincularIntermediario" data-toggle="modal" data-target="#ModalVincularIntermediario" title="Vincular Intermediario" runat="server"><i class="fa fa-money"></i> Vincular Intermediario</asp:HyperLink>
</li>
<li>
<asp:LinkButton runat="server" ID="LnkAccionesModalSeleccionLayout" OnClick="LnkAccionesModalSeleccionLayout_Click" Visible="false"><i class="fa fa-file-excel-o" aria-hidden="true"></i> Cargar Layout</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
@@ -636,6 +641,54 @@
</div>
</div>
<div id="ModalSeleccionLayout" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="ChkModalSeleccionLayout">&times;</button>
<h4 class="modal-title">Cargar Layout</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-8">
</div>
<div class="col-md-4" style="text-align:right!important">
<asp:LinkButton runat="server" ID="LnkDescargaFormato" OnClick="LnkDescargaFormato_Click" CssClass="blue Texto">
Descargar Formato <i class="fa fa-download" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
<br />
<asp:UpdatePanel runat="server" ID="UpModalSeleccionLayout" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-11" style="margin-left: 30px; margin-right: 30px; margin-bottom: 50px;">
<asp:TextBox ID="TxtModalLayoutExcel" CssClass="ADSdropzone hidden" Text="" data-maxFile="1" runat="server"></asp:TextBox>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkSeleccionLayout" runat="server" CssClass="btn btn-primary" Text="Aceptar" OnClick="LnkSeleccionLayout_Click" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">

View File

@@ -302,6 +302,11 @@ Partial Class Ventas_ClientesAbonar
RVTxtFechaDocumento.MaximumValue = Now.ToString("dd/MM/yyyy")
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
LnkAccionesModalSeleccionLayout.Visible = True
End If
End If
If (CveMonedaFiltro = 2 And ChkPagarPesos.Checked) Then
@@ -3133,4 +3138,208 @@ Partial Class Ventas_ClientesAbonar
#End Region
Protected Sub LnkAccionesModalSeleccionLayout_Click(sender As Object, e As EventArgs)
TxtModalLayoutExcel.Text = "[]"
UpModalSeleccionLayout.Update()
RegistraScript("$('#ModalSeleccionLayout').modal('show');")
End Sub
Protected Sub LnkSeleccionLayout_Click(sender As Object, e As EventArgs)
Dim ProcesoOK As Boolean = True
Dim CountRegistros As Integer = 0
Dim TotalSeleccion As Decimal = 0D
Dim SBNoEncotradosEnLista As New StringBuilder
Dim SBPagoMAyorASaldo As New StringBuilder
If TxtModalLayoutExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtModalLayoutExcel.getfiles().Archivos(0)
Dim Directorio As String = Server.MapPath("~") & file.path
Dim Tipo As String = If(file.Extension.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
Dim DT As New DataTable
Dim ErrorArchivo = False
Dim ErrorExcel = False
DT = ReadSeleccionExcelFile(Directorio + file.filename, True)
If Not dt.Columns(0).ColumnName.ToUpper = "FOLIO" Then
Alert("El nombre de la primera columna debe ser 'Folio'. Favor de corregirlo", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If Not dt.Columns(1).ColumnName.ToUpper = "IMPORTE PAGO" Then
Alert("El nombre de la segunda columna debe ser 'Importe Pago'.Favor de corregirlo", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
For Each Drow As DataRow In DT.Rows
Dim SerieFolioBusqueda As String = Drow("Folio").ToString.Trim.ToUpper
Dim ImportePago As Decimal = Drow("Importe Pago").ToString.ToDecimal.RoundSQL(2)
Dim SerieFolioEncontrado As Boolean = False
If ImportePago > 0 Then
For Each GvRow As GridViewRow In GvCxC.Rows
Dim SerieFolioGv As String = GvRow.DataKey("SerieFolio").Trim.ToUpper
If SerieFolioBusqueda = SerieFolioGv Then
SerieFolioEncontrado = True
Dim SaldoGV As Decimal = GvRow.DataKey("Saldo").ToDecimal
Dim Diferencia As Decimal = SaldoGV - ImportePago
If Diferencia < 0 Then
If Math.Abs(Diferencia) > 0.01 Then
SBPagoMAyorASaldo.AppendLine($"Factura: {SerieFolioBusqueda} Importe de pago {ImportePago.ToString("###,###,###.00")} es mayor al saldo {SaldoGV.ToString("###,###,###.00")} <br/>")
ProcesoOK = False
Exit For
Else
ImportePago = SaldoGV
End If
End If
Dim ChkGv As CheckBox = GvRow.FCCheckBox("Chk")
Dim TxtAbonarGv As TextBox = GvRow.FCTextBox("TxtAbonar")
ChkGv.Checked = True
TxtAbonarGv.Text = ImportePago.ToString("###,###,###.00")
TotalSeleccion = TotalSeleccion + ImportePago
CountRegistros = CountRegistros + 1
Exit For
End If
Next
If Not SerieFolioEncontrado Then
SBNoEncotradosEnLista.AppendLine($"{SerieFolioBusqueda}<br>")
End If
End If
Next
Else
Alert("Se debe seleccionar un archivo", TipoMensaje.MsgError)
End If
If ProcesoOK Then
Alert($"Facturas seleccionadas: {CountRegistros} <br/>{SBNoEncotradosEnLista.ToString}")
RegistraScript("$('#ModalSeleccionLayout').modal('hide');")
TxtImporte.Text = TotalSeleccion.ToString("###,###,###.00")
UPVentas.Update()
UpDatos.Update()
Else
If SBPagoMAyorASaldo.ToString.Length > 0 Then
Alert($"Facturas con pagos mayores a saldo:<br/>{SBPagoMAyorASaldo.ToString}", TipoMensaje.MsgAdvertencia)
End If
End If
End Sub
Public Function ReadSeleccionExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean, Optional curRow As Integer = 0) As DataTable
GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As GemBox.Spreadsheet.ExcelFile = GemBox.Spreadsheet.ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
'Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As GemBox.Spreadsheet.ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(curRow).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(curRow).Cells(cols).Value.ToString())
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
curRow = 1
While curRow < worksheet.Rows.Count
columns = New String(cols - 1) {}
For curCol = 0 To cols - 1
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
Protected Sub LnkDescargaFormato_Click(sender As Object, e As EventArgs)
Dim Directorio As String = ""
Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\LayoutSeleccion.xlsx"
If Not (Directorio = "") Then
Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then
Response.Clear()
Response.ClearHeaders()
Response.ClearContent()
Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name)
Response.AddHeader("Content-Length", Archivo.Length.ToString())
Response.ContentType = "text/plain"
Response.Flush()
Response.TransmitFile(Archivo.FullName)
Response.End()
End If
End If
End Sub
End Class

View File

@@ -558,8 +558,11 @@ Partial Class Ventas_Promociones
TieneError = True
End If
If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then
TieneError = ObjVentas.SincronizarPromocionesClonar(CvePromocion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1)
If Not ObjVentas.SincronizarPromocionesClonar(CvePromocion, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1) Then
TieneError = True
End If
End If