SMS - 2024.02.06 Empaquetado

This commit is contained in:
rakcsle
2024-02-08 11:18:18 -07:00
parent c6d9b815a9
commit f47fe38710
4 changed files with 300 additions and 26 deletions

View File

@@ -1254,7 +1254,7 @@ Partial Class PopUpVerFactura
Dim CveAlmacenTransitorioRecepcion As Integer = If(UrlParametros("CVEALMACENTRANSITORIORECEPCION") Is Nothing, -1, (UrlParametros("CVEALMACENTRANSITORIORECEPCION").ToString.ToEntero))
Dim FolioBusquedaTrasitorio As Integer = If(UrlParametros("FOLIOBUSQUEDATRASITORIO") Is Nothing, -1, (UrlParametros("FOLIOBUSQUEDATRASITORIO").ToString.ToEntero))
Dim Consola As String = If(UrlParametros("CVEMOVIMIENTO") IsNot Nothing, UrlParametros("CVEMOVIMIENTO").ToString.Trim, "")
Dim Consola As String = If(UrlParametros("CONSOLA") IsNot Nothing, UrlParametros("CONSOLA").ToString.Trim, "")
CargaMovimientosAlmacen(UrlParametros("CVEMOVIMIENTO").ToString.ToEntero, Resumen:=False, EsTransitorio:=EsTransitorio, CveAlmacenRecepcion:=CveAlmacenRecepcion, CveAlmacenTransitorioRecepcion:=CveAlmacenTransitorioRecepcion,
FolioBusquedaTrasitorio:=FolioBusquedaTrasitorio, Consola:=Consola)

View File

@@ -583,7 +583,7 @@
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Dividir" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" Visible="false">
<asp:TemplateField HeaderText="Dividir" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" Visible="True">
<ItemTemplate>
<asp:TextBox runat="server" ID="TxtDividir" Width="30px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtDividir" FilterType="Custom, Numbers" ValidChars="." />

View File

@@ -223,9 +223,18 @@
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Dividir " ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" Visible="True">
<ItemTemplate>
<asp:TextBox runat="server" ID="TxtDividir" Width="30px" onkeydown="return evitarPostBack(event);"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtDividir" FilterType="Custom, Numbers" ValidChars="." />
<asp:Button runat="server" ID="BtnDividir" Text="Dividir" OnClick="Dividir" Style="display: none;" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:HiddenField runat="server" ClientIDMode="Static" ID="HdnCantidadMovimiento" />
</div>
</div>
</ContentTemplate>
@@ -481,6 +490,13 @@
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Dividir " ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" Visible="True">
<ItemTemplate>
<asp:TextBox runat="server" ID="TxtDividir" Width="30px" onkeydown="return evitarPostBack(event);" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtDividir" FilterType="Custom, Numbers" ValidChars="." />
<asp:Button runat="server" ID="BtnDividir" Text="Dividir" OnClick="DividirDesarmado" Style="display: none;" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
@@ -630,6 +646,38 @@
snd.currentTime = 0;
}
function Dividir(t) {
$get("HdnCantidadMovimiento").value = $get(t).value;
}
function LimitaCantidad(C, textbox, button) {
// var contenedor = $(textbox).parent().find("#" + buttonIdDiv);
if (ToDouble(textbox.value) >= C) {
textbox.value = "";
}
if (parseFloat(textbox.value) > 0) {
$get(button).style.display = "";
//$(contenedor).show();
}
else {
$get(button).style.display = "none";
//$(contenedor).hide();
}
}
function evitarPostBack(event) {
if (event.keyCode === 13) {
event.preventDefault();
return false;
}
}
</script>
</asp:Content>

View File

@@ -124,6 +124,38 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
ViewState("DtExistenciasDesarmado") = value
End Set
End Property
Private Property DtDatosArmado As DataTable
Get
If ViewState("DtDatosArmado") Is Nothing Then
ViewState("DtDatosArmado") = New DataTable
End If
Return CType(ViewState("DtDatosArmado"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosArmado") = value
End Set
End Property
Private Property DtDatosDesArmado As DataTable
Get
If ViewState("DtDatosDesArmado") Is Nothing Then
ViewState("DtDatosDesArmado") = New DataTable
End If
Return CType(ViewState("DtDatosDesArmado"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosDesArmado") = value
End Set
End Property
#End Region
@@ -217,20 +249,20 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
Limpia(TipoMovimiento)
Dim ObjProductosServicios As New ClsProductosServicios
Dim DtDatos As New DataTable
DtDatosArmado = New DataTable
Dim drP As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPaqueteArmado.SelectedValue.ToEntero).FiltroPrimero("")
Dim CveUMTemp As Integer = drP("CveUM").ToString.ToEntero
If ObjProductosServicios.GetPaqueteDetalle(DdlPaqueteArmado.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, CveUMTemp, TxtCantidadArmado.Text.ToDouble, DdlAlmacenArmado.SelectedValue.ToEntero, TxtFechaArmado.Text.ToDate, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente)) Then
DtDatos = ObjProductosServicios.DtResultados.FiltraParametros("CveTipoPS = 2").Copy
DtDatosArmado = ObjProductosServicios.DtResultados.FiltraParametros("CveTipoPS = 2").Copy
Else
DtDatos = Nothing
DtDatosArmado = Nothing
Alert("Ocurrió un error al obtener los componentes del paquete. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjProductosServicios.Dispose()
If DtDatos Is Nothing Then
If DtDatosArmado Is Nothing Then
Exit Sub
End If
@@ -238,15 +270,15 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
CveCliente = If(RowClienteArmado.Visible, DdlClienteArmado.SelectedValue.ToEntero, -1)
If DtDatos.Rows.Count > 0 Then
For Each Dr As DataRow In DtDatos.Rows
If DtDatosArmado.Rows.Count > 0 Then
For Each Dr As DataRow In DtDatosArmado.Rows
Dr("Cantidad") = Dr("Cantidad").ToString.ToDecimal * TxtCantidadArmado.Text.ToDecimal
Next
End If
Dim TextoExistencias As String = "No hay existencia suficiente de los siguientes componentes: <br/><br/>"
Dim ErrorExistencias As Boolean = False
For Each Dr As DataRow In DtDatos.Rows
For Each Dr As DataRow In DtDatosArmado.Rows
If Dr("CantidadDisponible2").ToString.ToDecimal < Dr("Cantidad").ToString.ToDecimal Then
TextoExistencias += $"<br/>- Componente: <b>""{Dr("CodigoPS")}""</b>."
ErrorExistencias = True
@@ -280,13 +312,13 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
CvePaqueteArmado = DdlPaqueteArmado.SelectedValue.ToEntero
CveAlmacenArmado = DdlAlmacenArmado.SelectedValue.ToEntero
GvDatosArmado.DataSource = DtDatos
GvDatosArmado.DataSource = DtDatosArmado
GvDatosArmado.DataBind()
GvDatosArmado.Columns(4).Visible = DtDatos.MAX("AplicaSerie", "") = "True"
GvDatosArmado.Columns(5).Visible = DtDatos.MAX("AplicaSeccion") = "True"
GvDatosArmado.Columns(6).Visible = DtDatos.MAX("AplicaLote") = "True"
GvDatosArmado.Columns(7).Visible = DtDatos.MAX("AplicaCaducidad") = "True"
GvDatosArmado.Columns(4).Visible = DtDatosArmado.MAX("AplicaSerie", "") = "True"
GvDatosArmado.Columns(5).Visible = DtDatosArmado.MAX("AplicaSeccion") = "True"
GvDatosArmado.Columns(6).Visible = DtDatosArmado.MAX("AplicaLote") = "True"
GvDatosArmado.Columns(7).Visible = DtDatosArmado.MAX("AplicaCaducidad") = "True"
'If ErrorExistencias Then
' GvDatosArmado.Columns(4).Visible = False
@@ -338,23 +370,23 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
Dim ObjProductosServicios As New ClsProductosServicios
Dim DtDatos As New DataTable
DtDatosDesArmado = New DataTable
If ObjProductosServicios.GetPaqueteDetalle(DdlPaqueteDesarmado.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, CveUMTemp, TxtCantidadDesarmado.Text.ToDouble, DdlAlmacenArmado.SelectedValue.ToEntero, TxtFechaArmado.Text.ToDate, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente)) Then
DtDatos = ObjProductosServicios.DtResultados.FiltraParametros("CveTipoPS = 2").Copy
DtDatosDesArmado = ObjProductosServicios.DtResultados.FiltraParametros("CveTipoPS = 2").Copy
Else
DtDatos = Nothing
DtDatosDesArmado = Nothing
Alert("Ocurrió un error al obtener los componentes del paquete. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjProductosServicios.Dispose()
If DtDatos Is Nothing Then
If DtDatosDesArmado Is Nothing Then
Exit Sub
End If
If DtDatos.Rows.Count > 0 Then
For Each Dr As DataRow In DtDatos.Rows
If DtDatosDesArmado.Rows.Count > 0 Then
For Each Dr As DataRow In DtDatosDesArmado.Rows
Dr("Cantidad") = Dr("Cantidad").ToString.ToDecimal * TxtCantidadDesarmado.Text.ToDecimal
Next
End If
@@ -372,13 +404,13 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
CvePaqueteDesarmado = DdlPaqueteDesarmado.SelectedValue.ToEntero
CveAlmacenDesarmado = DdlAlmacenDesarmado.SelectedValue.ToEntero
GvDatosDesarmado.DataSource = DtDatos
GvDatosDesarmado.DataSource = DtDatosDesArmado
GvDatosDesarmado.DataBind()
GvDatosArmado.Columns(4).Visible = DtDatos.MAX("AplicaSerie", "") = "True"
GvDatosArmado.Columns(5).Visible = DtDatos.MAX("AplicaSeccion") = "True"
GvDatosArmado.Columns(6).Visible = DtDatos.MAX("AplicaLote") = "True"
GvDatosArmado.Columns(7).Visible = DtDatos.MAX("AplicaCaducidad") = "True"
GvDatosArmado.Columns(4).Visible = DtDatosDesArmado.MAX("AplicaSerie", "") = "True"
GvDatosArmado.Columns(5).Visible = DtDatosDesArmado.MAX("AplicaSeccion") = "True"
GvDatosArmado.Columns(6).Visible = DtDatosDesArmado.MAX("AplicaLote") = "True"
GvDatosArmado.Columns(7).Visible = DtDatosDesArmado.MAX("AplicaCaducidad") = "True"
BtnGuadarDesarmado.Visible = True
@@ -855,8 +887,120 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
' e.Row.FCTextBox("TbCantidadF").Enabled = False
'End If
e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID))
e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString()
e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("Cantidad"), e.Row.FCButton("BtnDividir").ClientID))
End If
End Sub
Protected Sub Dividir(sender As Object, e As EventArgs)
Dim index2 As Integer = 0
If Not DtDatosArmado.Columns.Contains("Lote") Then
DtDatosArmado.Columns.Add("Lote", GetType(String))
End If
If Not DtDatosArmado.Columns.Contains("CveSeccion") Then
DtDatosArmado.Columns.Add("CveSeccion", GetType(Integer))
End If
If Not DtDatosArmado.Columns.Contains("FechaCaducidad") Then
DtDatosArmado.Columns.Add("FechaCaducidad", GetType(String))
End If
DtDatosArmado.AcceptChanges()
For Each Row As DataRow In DtDatosArmado.Rows
Row("Lote") = GvDatosArmado.Rows(index2).FCTextBox("TxtLote").Text
'End If
'If GvDatosArmado.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue <> "-1" Then
Row("CveSeccion") = GvDatosArmado.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero()
' End If
'If GvDatosArmado.Rows(index2).FCTextBox("TxtCaducidad").Text <> "" Then
Row("FechaCaducidad") = GvDatosArmado.Rows(index2).FCTextBox("TxtCaducidad").Text
'End If
index2 += 1
Next
DtDatosArmado.AcceptChanges()
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, Button)).NamingContainer, GridViewRow)
Dim Index As Integer = gvRow.RowIndex
Dim Cantidad As String = HdnCantidadMovimiento.Value
Dim drOriginal As DataRow = DtDatosArmado.Rows(Index)
Dim drNew As DataRow = DtDatosArmado.NewRow
drNew.ItemArray = drOriginal.ItemArray
drOriginal("Cantidad") = (drOriginal("Cantidad").ToString().ToDouble - Cantidad.ToDouble)
'Dim CantidadFOriginal As Double = drOriginal("CantidadF").ToString().ToDouble
'drOriginal("CantidadF") = (drOriginal("CantidadF").ToString().ToDouble - Cantidad.ToDouble)
'Dim CantidadSOriginal As Double = drOriginal("CantidadS").ToString().ToDouble
'drOriginal("CantidadS") = (CantidadSOriginal * drOriginal("CantidadF").ToString().ToDouble) / CantidadFOriginal
'Dim CantidadSeleccionadaOriginal As Double = drOriginal("CantidadSeleccionada").ToString().ToDouble
'drOriginal("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > drOriginal("CantidadF").ToString().ToDouble, drOriginal("CantidadF").ToString().ToDouble, CantidadSeleccionadaOriginal)
'CantidadSeleccionadaOriginal = CantidadSeleccionadaOriginal - drOriginal("CantidadF").ToString().ToDouble
'Dim CostoIndirectoOriginal As Double = dr1("CostoIndirecto").ToString().ToDouble
'dr1("CostoIndirecto") = (CostoIndirectoOriginal * dr1("CantidadF").ToString().ToDouble) / CantidadFOriginal
'Dim CostoIndirectoExtranjeroOriginal As Double = dr1("CostoIndirectoExtranjero").ToString().ToDouble
'dr1("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr1("CantidadF").ToString().ToDouble) / CantidadFOriginal
DtDatosArmado.AcceptChanges()
drNew("Cantidad") = Cantidad.ToDecimal
'drNew("CantidadF") = Cantidad.ToDouble
'drNew("CantidadS") = (CantidadSOriginal * drNew("CantidadF").ToString().ToDouble) / CantidadFOriginal
'drNew("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > 0, CantidadSeleccionadaOriginal, 0)
'drNew("Seleccionado") = If(CantidadSeleccionadaOriginal > 0, True, False)
'dr("CostoIndirecto") = (CostoIndirectoOriginal * dr("CantidadF").ToString().ToDouble) / CantidadFOriginal
'dr("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr("CantidadF").ToString().ToDouble) / CantidadFOriginal
DtDatosArmado.Rows.InsertAt(drNew, Index)
DtDatosArmado.AcceptChanges()
index2 = 1
For Each Row As DataRow In DtDatosArmado.Rows
Row("Consec") = index2
index2 += 1
Next
DtDatosArmado.AcceptChanges()
GvDatosArmado.DataSource = DtDatosArmado
GvDatosArmado.DataBind()
index2 = 0
For Each Row As DataRow In DtDatosArmado.Rows
'GvDatosArmado.Rows(index2).FCCheckBox("cbInv").Checked = CBool(Row("Seleccionado"))
'If Row("CantidadSeleccionada").ToString() <> "" Then
' GvDatosArmado.Rows(index2).FCTextBox("TbCantidadF").Text = Row("CantidadSeleccionada").ToString()
'End If
If Row("Lote").ToString() <> "" Then
GvDatosArmado.Rows(index2).FCTextBox("TxtLote").Text = Row("Lote").ToString()
End If
If Row("CveSeccion").ToString() <> "" Then
GvDatosArmado.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue = Row("CveSeccion").ToString()
End If
If Row("FechaCaducidad").ToString() <> "" Then
GvDatosArmado.Rows(index2).FCTextBox("TxtCaducidad").Text = Row("FechaCaducidad").ToString().ToDate.ToShortDateString
End If
index2 += 1
Next
UpDatosArmado.Update()
End Sub
#End Region
#Region " GV DESARMADO "
@@ -894,8 +1038,90 @@ Partial Class Inventarios_PaquetesArmadoDesarmado
e.Row.FCTextBox("TxtCosto").Attributes.Add("onkeyup", "SumaValores();")
e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID))
e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString()
e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("Cantidad"), e.Row.FCButton("BtnDividir").ClientID))
End If
End Sub
Protected Sub DividirDesarmado(sender As Object, e As EventArgs)
Dim index2 As Integer = 0
If Not DtDatosDesArmado.Columns.Contains("Lote") Then
DtDatosDesArmado.Columns.Add("Lote", GetType(String))
End If
If Not DtDatosDesArmado.Columns.Contains("CveSeccion") Then
DtDatosDesArmado.Columns.Add("CveSeccion", GetType(Integer))
End If
If Not DtDatosDesArmado.Columns.Contains("FechaCaducidad") Then
DtDatosDesArmado.Columns.Add("FechaCaducidad", GetType(String))
End If
DtDatosDesArmado.AcceptChanges()
For Each Row As DataRow In DtDatosDesArmado.Rows
Row("Lote") = GvDatosDesarmado.Rows(index2).FCTextBox("TxtLote").Text
Row("CveSeccion") = GvDatosDesarmado.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero()
Row("FechaCaducidad") = GvDatosDesarmado.Rows(index2).FCTextBox("TxtCaducidad").Text
index2 += 1
Next
DtDatosDesArmado.AcceptChanges()
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, Button)).NamingContainer, GridViewRow)
Dim Index As Integer = gvRow.RowIndex
Dim Cantidad As String = HdnCantidadMovimiento.Value
Dim drOriginal As DataRow = DtDatosDesArmado.Rows(Index)
Dim drNew As DataRow = DtDatosDesArmado.NewRow
drNew.ItemArray = drOriginal.ItemArray
drOriginal("Cantidad") = (drOriginal("Cantidad").ToString().ToDouble - Cantidad.ToDouble)
DtDatosDesArmado.AcceptChanges()
drNew("Cantidad") = Cantidad.ToDecimal
DtDatosDesArmado.Rows.InsertAt(drNew, Index)
DtDatosDesArmado.AcceptChanges()
index2 = 1
For Each Row As DataRow In DtDatosDesArmado.Rows
Row("Consec") = index2
index2 += 1
Next
DtDatosDesArmado.AcceptChanges()
GvDatosDesarmado.DataSource = DtDatosDesArmado
GvDatosDesarmado.DataBind()
index2 = 0
For Each Row As DataRow In DtDatosDesArmado.Rows
If Row("Lote").ToString() <> "" Then
GvDatosDesarmado.Rows(index2).FCTextBox("TxtLote").Text = Row("Lote").ToString()
End If
If Row("CveSeccion").ToString() <> "" Then
GvDatosDesarmado.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue = Row("CveSeccion").ToString()
End If
If Row("FechaCaducidad").ToString() <> "" Then
GvDatosDesarmado.Rows(index2).FCTextBox("TxtCaducidad").Text = Row("FechaCaducidad").ToString().ToDate.ToShortDateString
End If
index2 += 1
Next
UpDatosDesarmado.Update()
End Sub
#End Region
#Region " SERIE LOTE "