Entregas por realizar ordenamiento, carta porte correciones

This commit is contained in:
rakcsle
2021-10-25 17:23:39 -07:00
parent 75a00d9f5e
commit 4fe6d5b022
5 changed files with 741 additions and 675 deletions

View File

@@ -41,12 +41,12 @@
<div class="portlet solid grey-cascade portlet-filter" id="idnecesaria">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnAsignar" OnClick="BtnAsignar_Click" runat="server" Text="Asignar" class="btn btn-primary" ValidationGroup="Valida" />
<asp:Button ID="BtnAsignar" OnClick="BtnAsignar_Click" runat="server" Text="Asignar" class="btn btn-primary" ValidationGroup="Valida" Visible="false" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row">
<div class="col-sm-2">PERSONAL QUE ENTREGA: </div>
<div class="col-sm-2">Personal de Entrega:</div>
<div class="col-sm-4">
<asp:DropDownList ID="DdlUsuario" DataTextField="Nombre" DataValueField="CveUsuario" runat="server" CssClass="form-control input-sm select2me" />
</div>
@@ -56,6 +56,31 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpOpciones">
<ContentTemplate>
<div class="row">
<div class="col-md-8">
</div>
<div class="col-md-2">
<%--<asp:Button runat="server" CssClass="btn btn-primary" ClientIDMode="Static" ID="LnkTest" OnClick="LnkTest_Click" Text="Text" />--%>
</div>
<div class="col-md-2">
<asp:LinkButton runat="server" CssClass="btn btn-primary" ID="LnkGenerarDocumentos" OnClick="LnkGenerarDocumentos_Click">Generar Documentos</asp:LinkButton>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel runat="server" ID="portletTarea" class="portlet light smmallpadding bordered">
@@ -67,50 +92,170 @@
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
</div>
<div class="portlet-body rowpadding">
<asp:GridView ID="GvPaqueteriasGuias" runat="server" AutoGenerateColumns="False"
DataKeyNames="CvePaqueteriaGuia,Folio,SerieFolio,FechaIng,Nombre,Contacto,Estatus,CobranzaCorreo,CorreoEntregaAlmacen,CorreoEntregaCompras,Correo,CorreoAdicionalNotificaciones,CveVenta,PedidoContrato,OrdenCompra,NombreComercial,TipoDocto,CorreoNotificacion,CveVendedor"
EmptyDataText="No se encontraron registros" ToolTip="Listado de Temas"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD"
data-sort="true"
data-freezerows="1"
GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="3%" HeaderStyle-Width="3%">
<ItemTemplate>
&nbsp;<asp:CheckBox ID="ChkAsigna" runat="server" Checked="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Cons" DataField="Num" HeaderStyle-Width="25px" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="Folio" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblFolio" runat="server" Text='<%# Eval("SerieFolio") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Estatus" DataField="Estatus" HeaderStyle-Width="150px" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:dd/MM/yyyy}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cliente" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblNombre" runat="server" Text='<%# Eval("Nombre") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Contacto" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblContacto" runat="server" Text='<%# Eval("Contacto") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div class="row" runat="server" id="DVGvPaqueteriasGuias" >
<div class="col-md-12">
<asp:GridView ID="GvPaqueteriasGuias" runat="server" AutoGenerateColumns="False"
DataKeyNames="CvePaqueteriaGuia,Folio,SerieFolio,FechaIng,Nombre,Contacto,Estatus,CobranzaCorreo,CorreoEntregaAlmacen,CorreoEntregaCompras,Correo,CorreoAdicionalNotificaciones,CveVenta,PedidoContrato,OrdenCompra,NombreComercial,TipoDocto,CorreoNotificacion,CveVendedor,Orden"
EmptyDataText="No se encontraron registros" ToolTip="Listado de entregas"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD"
data-sort="true"
data-freezerows="1"
GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="3%" HeaderStyle-Width="3%">
<ItemTemplate>
&nbsp;<asp:CheckBox ID="ChkAsigna" runat="server" Checked="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Cons" DataField="Num" HeaderStyle-Width="25px" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="Folio" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblFolio" runat="server" Text='<%# Eval("SerieFolio") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Estatus" DataField="Estatus" HeaderStyle-Width="150px" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:dd/MM/yyyy}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cliente" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblNombre" runat="server" Text='<%# Eval("Nombre") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Contacto" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblContacto" runat="server" Text='<%# Eval("Contacto") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Dirección" DataField="Direccion" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:GridView>
</div>
</div>
<div class="row" runat="server" id="DVGvGenerarDocumentos" visible="false">
<div class="col-md-12">
<asp:GridView ID="GvGenerarDocumentos" runat="server" AutoGenerateColumns="False" Width="100%" OnRowDataBound="GvGenerarDocumentos_RowDataBound"
DataKeyNames="CvePaqueteriaGuia,Folio,SerieFolio,FechaIng,Nombre,Contacto,Estatus,CobranzaCorreo,CorreoEntregaAlmacen,CorreoEntregaCompras,Correo,CorreoAdicionalNotificaciones,CveVenta,PedidoContrato,OrdenCompra,NombreComercial,TipoDocto,CorreoNotificacion,CveVendedor,Orden"
EmptyDataText="No se encontraron registros" ToolTip="Listado de entregas"
CssClass="GvGenerarDocumentos"
data-sort="true"
data-freezerows="1"
GridLines="None">
<Columns>
<%--<asp:BoundField HeaderText="CvePaqueteriaGuia" DataField="CvePaqueteriaGuia" ItemStyle-HorizontalAlign="Left" />--%>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="3%" HeaderStyle-Width="3%">
<ItemTemplate>
&nbsp;<asp:CheckBox ID="ChkAsigna" runat="server" Checked="false" Visible="false" />
<a class="blue"><i class="fa fa-arrows-v green" aria-hidden="true"></i></a>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField HeaderText="Cons" DataField="Num" HeaderStyle-Width="25px" ItemStyle-HorizontalAlign="Center" />--%>
<asp:TemplateField HeaderText="Cons" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="25px">
<ItemTemplate>
<asp:Label ID="LblNum" runat="server" Text='<%# Eval("Num") %>' CssClass="RowOrdenamiento" ></asp:Label>
<input type="hidden" name="OrdenCvePaqueteriaGuia" value='<%# Eval("CvePaqueteriaGuia") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Folio" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblFolio" runat="server" Text='<%# Eval("SerieFolio") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Estatus" DataField="Estatus" HeaderStyle-Width="150px" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:dd/MM/yyyy}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cliente" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblNombre" runat="server" Text='<%# Eval("Nombre") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Contacto" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
&nbsp;<asp:Literal ID="LblContacto" runat="server" Text='<%# Eval("Contacto") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Dirección" DataField="Direccion" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script>
function InitOrdenamientoGvGenerarDocumentos() {
$(".GvGenerarDocumentos").sortable({
items: 'tr:not(tr:first-child)',
cursor: 'pointer',
axis: 'y',
dropOnEmpty: false,
start: function (e, ui) {
ui.item.addClass("selected");
let asd = ui.item.children('a');
},
stop: function (e, ui) {
//Ordenar el numero de la columna *Cons*
$(".RowOrdenamiento").each(function (index) {
let nRow = (index + 1);
$(this).text(nRow);
});
},
});
}
</script>
</asp:Content>

View File

@@ -11,24 +11,83 @@ using System.Text;
public partial class Inventarios_EntregasPorRealizar : ClsPaginas
{
DataTable DTGenrarDocumentos
{
get {
if(ViewState["DTGenrarDocumentos"] == null){
ViewState["DTGenrarDocumentos"] = new DataTable();
}
return (DataTable)ViewState["DTGenrarDocumentos"];
}
set {
ViewState["DTGenrarDocumentos"] = (DataTable)value;
}
}
DataTable DTDatosConsulta
{
get
{
if (ViewState["DTDatosConsulta"] == null)
{
ViewState["DTDatosConsulta"] = new DataTable();
}
return (DataTable)ViewState["DTDatosConsulta"];
}
set
{
ViewState["DTDatosConsulta"] = (DataTable)value;
}
}
bool SelecionEntrega
{
get
{
if (ViewState["SelecionEntrega"] == null)
{
ViewState["SelecionEntrega"] = false;
}
return (bool) ViewState["SelecionEntrega"];
}
set
{
ViewState["SelecionEntrega"] = (bool)value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SelecionEntrega = true;
CargarEntregas();
CargarPersonal();
}
}
protected void BtnAsignar_Click(object sender,EventArgs e)
protected void BtnAsignar_Click(object sender, EventArgs e)
{
ActualizaOrdenDTGenrarDocumentos();
if (DdlUsuario.SelectedValue.ToEntero() > 0)
{
bool TieneError = false;
ClsGenerales ObjGeneral = new ClsGenerales();
ObjGeneral.IniciaTransacSQL();
GridViewRowCollection Grid = GvPaqueteriasGuias.Rows;
GridViewRowCollection Grid = GvGenerarDocumentos.Rows;
int CvePersonal = DdlUsuario.SelectedValue.ToEntero();
long CveAsignacionEntrega = DateTime.Now.Ticks;
@@ -37,66 +96,68 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas
string LigaPopUpVerFactura = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", ModExtensiones.Encripta(String.Format("OP=ENTREGAS&CVEASIGNACIONENTREGA={0}&USUARIOENTREGA={1}", CveAsignacionEntrega, Usuario)));
foreach (GridViewRow row in Grid)
{
if (row.FCCheckBox("ChkAsigna").Checked)
int CvePaqueteriasGuias = row.DataKey("CvePaqueteriaGuia").ToEntero();
int Orden = row.DataKey("Orden").ToEntero();
if (!ObjGeneral.AsignarEntregasPorRealizar(CvePaqueteriasGuias, CvePersonal:CvePersonal, CveAsignacionEntrega: CveAsignacionEntrega, Orden: Orden))
{
int CvePaqueteriasGuias = row.DataKey("CvePaqueteriaGuia").ToEntero();
if(!ObjGeneral.AsignarEntregasPorRealizar(CvePaqueteriasGuias, CvePersonal, CveAsignacionEntrega)){
TieneError = true;
}else
{
try
{
MandarNotificacionCorreo(row);
}
catch (Exception ex)
{
TieneError = true;
ModExtensiones.GuardaLog(ex.Message);
}
//string CobranzaCorreo = row.DataKey("CobranzaCorreo");
//string CorreoEntregaAlmacen = row.DataKey("CorreoEntregaAlmacen");
//string CorreoEntregaCompras = row.DataKey("CorreoEntregaCompras");
//string CorreoVendedor = row.DataKey("Correo");
//string CorreoAdicionalNotificacionesVendedor = row.DataKey("CorreoAdicionalNotificaciones");
//string CorreosCC = string.Format("{0};{1};{2};{3}", CorreoVendedor, CorreoAdicionalNotificacionesVendedor, CobranzaCorreo, CorreoEntregaCompras);
//string LogCorreo = string.Format("{0} -- {1} --- {2}", "Tipo de entrega", CorreoEntregaAlmacen, CorreosCC);
//LogCorreo.GuardaLog();
//ClsSisMail MailCls = new ClsSisMail();
//MailCls.SendMail(ClsPaginas.EmpresaNotificaciones, CorreoVendedor, "Se enviara la compra a su dirección", "Pendiente", CorreosCC);
//MailCls = null;
}
TieneError = true;
break;
}
}
if (!TieneError)
{
ObjGeneral.Commit();
Alert(String.Format("Entregas asignadas correctamente <br/><br/><a style='color:#23527c' href='{0}'>Imprimir Reporte de Entregas Asignadas</a>", LigaPopUpVerFactura));
CargarEntregas();
UpDatos.Update();
foreach (GridViewRow row in Grid)
{
try
{
MandarNotificacionCorreo(row);
}
catch (Exception ex)
{
TieneError = true;
ModExtensiones.GuardaLog(ex.Message);
}
}
if (!TieneError)
{
ObjGeneral.Commit();
Alert(String.Format("Entregas asignadas correctamente <br/><br/><a style='color:#23527c' href='{0}'>Imprimir Reporte de Entregas Asignadas</a>", LigaPopUpVerFactura));
SelecionEntrega = false;
SeleccioanrGenrar();
CargarEntregas();
UpDatos.Update();
}
else
{
ObjGeneral.RollBack();
}
ObjGeneral.Dispose();
}
else
{
ObjGeneral.RollBack();
Alert("Seleccione a alguien del personal", ModExtensiones.TipoMensaje.MsgAdvertencia);
}
ObjGeneral.Dispose();
}
else
{
Alert("Seleccione a alguien del personal",ModExtensiones.TipoMensaje.MsgAdvertencia);
}
}
private void CargarEntregas()
{
ClsGenerales ObjGeneral = new ClsGenerales();
if (ObjGeneral.GetEntregasPorRealizar(UsuarioActual.CveEmpresa))
{
GvPaqueteriasGuias.DataSource = ObjGeneral.DtResultados;
DTDatosConsulta = ObjGeneral.DtResultados;
DTGenrarDocumentos = ObjGeneral.DtResultados.Clone();
}
ObjGeneral.Dispose();
GvPaqueteriasGuias.DataBind();
@@ -227,4 +288,137 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas
MailCls.SendMail(ClsPaginas.EmpresaNotificaciones, Para, "Entrega en camino", body, Para);
MailCls = null;
}
protected void LnkGenerarDocumentos_Click(object sender, EventArgs e)
{
SeleccioanrGenrar();
}
private void SeleccioanrGenrar() {
if (SelecionEntrega)
{
if (DdlUsuario.SelectedValue.ToEntero() <= 0)
{
Alert("Debe seleccionar entregas", ModExtensiones.TipoMensaje.MsgAdvertencia);
return;
}
DTGenrarDocumentos.Rows.Clear();
int CountRows = 0;
foreach (GridViewRow GvRow in GvPaqueteriasGuias.Rows)
{
CheckBox ChkAsigna = GvRow.FCCheckBox("ChkAsigna");
if (ChkAsigna.Checked)
{
int CvePaqueteriaGuia = GvRow.DataKey("CvePaqueteriaGuia").ToEntero();
DataRow dRow = DTGenrarDocumentos.NewRow();
DataRow dRowOrigen = DTDatosConsulta.FiltraParametros($"CvePaqueteriaGuia = {CvePaqueteriaGuia}").Rows[0];
int IndexColun = 0;
foreach (DataColumn dColumn in DTDatosConsulta.Columns)
{
dRow[IndexColun] = dRowOrigen[IndexColun];
IndexColun++;
}
dRow["Num"] = CountRows + 1;
DTGenrarDocumentos.Rows.Add(dRow);
CountRows++;
}
}
DTGenrarDocumentos.AcceptChanges();
if (CountRows > 0)
{
GvGenerarDocumentos.DataSource = DTGenrarDocumentos;
GvGenerarDocumentos.DataBind();
DVGvGenerarDocumentos.Visible = true;
BtnAsignar.Visible = true;
DVGvPaqueteriasGuias.Visible = false;
RegistraScript("InitOrdenamientoGvGenerarDocumentos();");
}
else
{
Alert("No hay entregas seleccionadas", ModExtensiones.TipoMensaje.MsgAdvertencia);
return;
}
SelecionEntrega = false;
LnkGenerarDocumentos.Text = "Regresa a selección";
BtnAsignar.Visible = true;
UpDatos.Update();
UpFiltro.Update();
}
else
{
SelecionEntrega = true;
LnkGenerarDocumentos.Text = "Generar Documentos";
BtnAsignar.Visible = true;
DVGvGenerarDocumentos.Visible = false;
DVGvPaqueteriasGuias.Visible = true;
UpDatos.Update();
UpFiltro.Update();
}
}
protected void GvGenerarDocumentos_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
// e.Row.CssClass = $"{e.Row.CssClass} RowOrdenamiento";
// e.Row.Attributes.Add("onmouseup ", "alert('boton liberado')");
}
}
private void ActualizaOrdenDTGenrarDocumentos()
{
string[] OrdenCvePaqueteriaGuia = Request.Form.GetValues("OrdenCvePaqueteriaGuia");
int NumOrden = 1;
foreach (string CvePaqueteriaGuia in OrdenCvePaqueteriaGuia)
{
foreach(DataRow dRow in DTGenrarDocumentos.Rows)
{
if (CvePaqueteriaGuia.ToEntero() == dRow["CvePaqueteriaGuia"].ToString().ToEntero() )
{
dRow["Orden"] = NumOrden;
}
}
DTGenrarDocumentos.AcceptChanges();
NumOrden++;
}
GvGenerarDocumentos.DataSource = DTGenrarDocumentos;
GvGenerarDocumentos.DataBind();
UpDatos.Update();
}
}