Correciones en traspasos de apartados

This commit is contained in:
2020-10-22 16:49:41 -07:00
parent 0cbb96546a
commit b3d87ea51c
2 changed files with 50 additions and 10 deletions

View File

@@ -106,7 +106,7 @@
<div class="col-md-12">
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" DataKeyNames="CvePS,Serie,CveCliente,CveVendedor" EmptyDataText="No se encontraron datos con los filtros seleccionados" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover ScrollAD" GridLines="None">
<asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" DataKeyNames="CvePS,Serie,CveCliente,CveVendedor,CveMovimientoDetalleEntrada" EmptyDataText="No se encontraron datos con los filtros seleccionados" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover ScrollAD" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Producto" DataField="GPO" />
<asp:BoundField HeaderText="Fecha" DataField="FechaMovto" DataFormatString="{0:d}" />
@@ -175,5 +175,29 @@
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function LimitaCantidad(TxtCantidad, CantidadMaxima) {
var Cantidad = 0;
if (TxtCantidad.value.includes('.')) {
return;
}
if (TxtCantidad.value.includes(',')) {
return;
}
var regex = new RegExp("^[-+]?[0-9]+\.[0-9]+$");
if (TxtCantidad.value != '') {
Cantidad = parseInt(TxtCantidad.value);
}
if (Cantidad > CantidadMaxima) {
TxtCantidad.value = FormatoNumero(CantidadMaxima, 0);
} else {
TxtCantidad.value = FormatoNumero(Cantidad, 0);;
}
}
</script>
</asp:Content>

View File

@@ -200,9 +200,10 @@ Partial Class Inventarios_RepApartados
End If
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 3 Then
If e.Row.DBCampo("CveVendedor").ToEntero() = UsuarioActual.CveVendedor Then
If DdlSubProyectos.SelectedValue.ToEntero() > 0 AndAlso e.Row.DBCampo("CveVendedor").ToEntero() = UsuarioActual.CveVendedor Then
e.Row.FCTextBox("TxtCantidad").Visible = True
e.Row.FCRangeValidator("RVCantidad").Visible = True
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", $"LimitaCantidad({e.Row.FCTextBox("TxtCantidad").ClientID},{e.Row.DBCampo("Cantidad").ToEntero});")
End If
End If
@@ -271,7 +272,7 @@ Partial Class Inventarios_RepApartados
End If
If Not GvDatos.Rows.Cast(Of GridViewRow).Any(Function(gvr) gvr.FCTextBox("TxtCantidad").Text.ToEntero() > 0) Then
Alert("No se ha seleccionado ningun cliente", TipoMensaje.MsgAdvertencia)
Alert("No se ha seleccionado ningun producto para realizar el traspaso", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
@@ -298,6 +299,10 @@ Partial Class Inventarios_RepApartados
'CUADRA LOS LOS PRODUCTOS CON LO QUE SE PUEDE DESAPARTAR
Dim DtDetalleTraspasar As DataTable = CuadrarMovimientosApartado(CveAlmacenApartado, Row("CveCliente").ToString().ToEntero(), Row("CveVendedor").ToString().ToEntero(), DtPSTraspasar, ObjInventario)
If DtDetalleTraspasar.Rows.Count = 0 Then
ErrorMovInv = True
Mensaje.Append("No se encontraron productos para realizar el traspaso.")
End If
DtPSTraspasar.Dispose()
Dim MovSalida = GenerarMovimientoAlmacen(CveAlmacenApartado, 8, Row("CveVendedor").ToString().ToEntero(), Row("CveCliente").ToString().ToEntero(), -1, TxtObs.Text.Trim(), DtDetalleTraspasar, ObjInventario, "RepApar/1")
@@ -316,8 +321,12 @@ Partial Class Inventarios_RepApartados
If Not ErrorMovInv Then
EntradasAlmacen.Add(MovEntrada)
Else
Mensaje.Append("No se pudo generar el movimiento de apartado.")
End If
Else
Mensaje.Append("No se pudo generar el movimiento de desapartado.")
Exit For
End If
Next
@@ -367,19 +376,24 @@ Partial Class Inventarios_RepApartados
End If
If DtRetorno IsNot Nothing Then
For Each RowCantidad As DataRow In DtPSTraspasar.Rows
For Each RowTraspasar As DataRow In DtPSTraspasar.Rows
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CvePS={0}", RowCantidad("CvePS"))
Filtro.AppendFormat("CvePS={0}", RowTraspasar("CvePS"))
'SI TIENE SERIE LA AGREGA AL FILTRO
If Not String.IsNullOrEmpty(RowCantidad("Serie").ToString()) Then
Filtro.AppendFormat("AND Serie='{0}'", RowCantidad("Serie"))
If Not String.IsNullOrEmpty(RowTraspasar("Serie").ToString()) Then
Filtro.AppendFormat(" AND Serie='{0}'", RowTraspasar("Serie"))
Else
Filtro.AppendFormat("AND ISNULL(Serie,'') = ''")
Filtro.AppendFormat(" AND ISNULL(Serie,'') = ''")
End If
'FILTRA EL MOVIMIENTO DE APARTADO ORIGINAL
If Not String.IsNullOrEmpty(RowTraspasar("CveMovimientoDetalleEntrada").ToString()) Then
Filtro.AppendFormat(" AND CveMovimientoDetalle={0}", RowTraspasar("CveMovimientoDetalleEntrada"))
End If
Dim RowDesapartado As DataRow = DtDesapartado.Select(Filtro.ToString()).FirstOrDefault()
RowDesapartado("Cantidad") = RowCantidad("Cantidad")
RowDesapartado("Cantidad") = RowTraspasar("Cantidad")
DtRetorno.Rows.Add(RowDesapartado.ItemArray)
Next
@@ -396,6 +410,7 @@ Partial Class Inventarios_RepApartados
Dt.Columns.Add(New DataColumn("Serie", GetType(String)))
Dt.Columns.Add(New DataColumn("CveCliente", GetType(Integer)))
Dt.Columns.Add(New DataColumn("CveVendedor", GetType(Integer)))
Dt.Columns.Add(New DataColumn("CveMovimientoDetalleEntrada", GetType(Integer)))
For Each GvRow As GridViewRow In GvDatos.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCTextBox("TxtCantidad").Text.ToEntero() > 0)
Dim Row As DataRow = Dt.NewRow
@@ -405,6 +420,7 @@ Partial Class Inventarios_RepApartados
Row("Serie") = GvRow.DataKey("Serie")
Row("CveCliente") = GvRow.DataKey("CveCliente").ToEntero()
Row("CveVendedor") = GvRow.DataKey("CveVendedor").ToEntero()
Row("CveMovimientoDetalleEntrada") = GvRow.DataKey("CveMovimientoDetalleEntrada").ToEntero()
Dt.Rows.Add(Row)
Next