Files
SIG/Inventarios/PaquetesArmadoDesarmado.aspx.vb
2019-11-08 13:04:32 -07:00

1062 lines
49 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Inventarios_PaquetesArmadoDesarmado
Inherits ClsPaginas
#Region " PROPIEDADES "
Public Property CveAlmacenArmado As Integer
Get
Return ViewState("CveAlmacenArmado").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveAlmacenArmado") = value
End Set
End Property
Public Property CvePaqueteArmado() As Integer
Get
Return ViewState("CvePaqueteArmado").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CvePaqueteArmado") = value
End Set
End Property
Public Property CveAlmacenDesarmado As Integer
Get
Return ViewState("CveAlmacenDesarmado").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveAlmacenDesarmado") = value
End Set
End Property
Public Property CvePaqueteDesarmado() As Integer
Get
Return ViewState("CvePaqueteDesarmado").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CvePaqueteDesarmado") = value
End Set
End Property
Private Property CvePSSerieLote As Integer
Get
Return CType(ViewState("CvePSSerieLote"), Integer)
End Get
Set(value As Integer)
ViewState("CvePSSerieLote") = value
End Set
End Property
Private Property CveUMSerieLote As Integer
Get
Return CType(ViewState("CveUMSerieLote"), Integer)
End Get
Set(value As Integer)
ViewState("CveUMSerieLote") = value
End Set
End Property
Private Property CveConsecSerieLote As Integer
Get
Return CType(ViewState("CveConsecSerieLote"), Integer)
End Get
Set(value As Integer)
ViewState("CveConsecSerieLote") = value
End Set
End Property
Private Property DtDatosDetalle As DataTable
Get
Return CType(ViewState("DtDatosDetalle"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosDetalle") = value
End Set
End Property
Private Property CveVendedor As Integer
Get
Return CType(ViewState("CveVendedor"), Integer)
End Get
Set(value As Integer)
ViewState("CveVendedor") = value
End Set
End Property
Private Property CveCliente As Integer
Get
Return CType(ViewState("CveCliente"), Integer)
End Get
Set(value As Integer)
ViewState("CveCliente") = value
End Set
End Property
Private Property CveTipoPS As Integer
Get
Return CType(ViewState("CveTipoPS"), Integer)
End Get
Set(value As Integer)
ViewState("CveTipoPS") = value
End Set
End Property
Private Property DtSeriesDesarmado As DataTable
Get
Return CType(ViewState("DtSeriesDesarmado"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtSeriesDesarmado") = value
End Set
End Property
'1 ARMADO
'2 DESARMADO
Private Property TipoMovimiento As Integer
Get
Return CType(ViewState("TipoMovimiento"), Integer)
End Get
Set(value As Integer)
ViewState("TipoMovimiento") = value
End Set
End Property
Private Property DtExistenciasDesarmado As DataTable
Get
Return CType(ViewState("DtExistenciasDesarmado"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtExistenciasDesarmado") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
InicializaValores()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
CreaDtSeriesDesarmado()
'CARGA PS PAQUETES
DdlPaqueteArmado.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa).FiltraParametros("CvePSPaquete > 0")
DdlPaqueteArmado.DataBind()
DdlPaqueteArmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlPaqueteDesarmado.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa).FiltraParametros("CvePSPaquete > 0")
DdlPaqueteDesarmado.DataBind()
DdlPaqueteDesarmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacenArmado.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen = 1")
DdlAlmacenArmado.DataBind()
DdlAlmacenArmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacenDesarmado.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen = 1")
DdlAlmacenDesarmado.DataBind()
DdlAlmacenDesarmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
TxtFechaArmado.Text = Now.ToShortDateString
TxtFechaDesarmado.Text = Now.ToShortDateString
DdlVendedorArmado.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedorArmado.DataBind()
DdlVendedorArmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlClienteArmado.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
DdlClienteArmado.DataBind()
DdlClienteArmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
RowClienteArmado.Visible = Not UsuarioActual.Empresa.Funcionalidad(146) = "1"
DdlVendedorDesarmado.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedorDesarmado.DataBind()
DdlVendedorDesarmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlClienteDesarmado.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
DdlClienteDesarmado.DataBind()
DdlClienteDesarmado.Items.Insert(0, New ListItem("Seleccione", "-1"))
RowClienteDesarmado.Visible = Not UsuarioActual.Empresa.Funcionalidad(146) = "1"
UpGeneralesArmado.Update()
UpGeneralesDesarmado.Update()
CreaDtDetalle()
CveVendedor = -1
CveCliente = -1
End Sub
#End Region
#Region " APARTADOS "
Protected Sub DdlAlmacenArmado_SelectedIndexChanged(sender As Object, e As EventArgs)
RowApartadosArmado.Visible = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveAlmacen = {DdlAlmacenArmado.SelectedValue.ToEntero} AND CveTipoAlmacen = 9").ToEntero > 0
UpFiltraArmado.Update()
End Sub
Protected Sub DdlAlmacenDesarmado_SelectedIndexChanged(sender As Object, e As EventArgs)
RowApartadosDesarmado.Visible = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveAlmacen = {DdlAlmacenDesarmado.SelectedValue.ToEntero} AND CveTipoAlmacen = 9").ToEntero > 0
UpFiltraDesarmado.Update()
End Sub
#End Region
#Region " PROCESAR - VERIFICAR EXISTENCIAS "
Protected Sub BtnVerificarExistenciasArmado_Click(sender As Object, e As EventArgs)
TipoMovimiento = 1
Limpia(TipoMovimiento)
Dim ObjProductosServicios As New ClsProductosServicios
Dim DtDatos As New DataTable
Dim CveUMTemp = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPaqueteArmado.SelectedValue.ToEntero).FiltroPrimeroValor("CveUM").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
Else
DtDatos = 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
Exit Sub
End If
CveVendedor = If(RowApartadosArmado.Visible, DdlVendedorArmado.SelectedValue.ToEntero, -1)
CveCliente = If(RowClienteArmado.Visible, DdlClienteArmado.SelectedValue.ToEntero, -1)
If DtDatos.Rows.Count > 0 Then
For Each Dr As DataRow In DtDatos.Rows
Dr("Cantidad") = Dr("Cantidad").ToString.ToDecimal * TxtCantidadArmado.Text.ToDecimal
Next
End If
Dim TextoExistencias = "No hay existencia suficiente de los siguientes componentes: <br/><br/>"
Dim ErrorExistencias = False
For Each Dr As DataRow In DtDatos.Rows
If Dr("CantidadDisponible2").ToString.ToDecimal < Dr("Cantidad").ToString.ToDecimal Then
TextoExistencias += $"<br/>- Componente: <b>""{Dr("CodigoPS")}""</b>."
ErrorExistencias = True
End If
Next
If ErrorExistencias Then
Alert(TextoExistencias, TipoMensaje.MsgAdvertencia)
Else
CveTipoPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPaqueteArmado.SelectedValue.ToEntero).FiltroPrimeroValor("Inv_CveMetodoInventario").ToEntero
BtnGuadarArmado.Visible = True
End If
If CveTipoPS = 5 Then
DivSeriesPaqueteArmado.Visible = True
Dim Dt As New DataTable
Dt.Columns.Add("Row", GetType(Integer))
Dt.Columns.Add("Serie", GetType(String))
For index = 1 To TxtCantidadArmado.Text.ToEntero
Dim Row = Dt.NewRow
Row("Row") = index
Row("Serie") = ""
Dt.Rows.Add(Row)
Next
GvSeriesPaqueteArmado.DataSource = Dt
GvSeriesPaqueteArmado.DataBind()
End If
UpSeriesPaqueteArmado.Update()
LbPaqueteArmado.Text = DdlPaqueteArmado.SelectedItem.Text
CvePaqueteArmado = DdlPaqueteArmado.SelectedValue.ToEntero
LbCantidadArmado.Text = TxtCantidadArmado.Text
LbAlmacenArmado.Text = DdlAlmacenArmado.SelectedItem.Text
CveAlmacenArmado = DdlAlmacenArmado.SelectedValue.ToEntero
LbFechaArmado.Text = TxtFechaArmado.Text
GvDatosArmado.DataSource = DtDatos
GvDatosArmado.DataBind()
If ErrorExistencias Then
GvDatosArmado.Columns(4).Visible = False
End If
UpDatosArmado.Update()
UpGeneralesArmado.Update()
End Sub
Protected Sub BtnVerificarExistenciasDesarmado_Click(sender As Object, e As EventArgs)
DtDatosDetalle.Clear()
BtnGuadarDesarmado.Visible = False
TotalDesarmado.Visible = False
CveTipoPS = -1
TxtSerieDesarmado.Text = ""
CvePaqueteDesarmado = -1
TipoMovimiento = 2
Limpia(TipoMovimiento)
DtSeriesDesarmado.Clear()
GvDatosDesarmado.Columns(4).Visible = False
DivSeriesPaqueteDesarmado.Visible = False
GvSeriesPaqueteDesarmado.DataBind()
BtnAgregarSerieDesarmado.Enabled = True
Dim CveUMTemp = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPaqueteDesarmado.SelectedValue.ToEntero).FiltroPrimeroValor("CveUM").ToEntero
CveVendedor = If(RowApartadosDesarmado.Visible, DdlVendedorDesarmado.SelectedValue.ToEntero, -1)
CveCliente = If(RowClienteDesarmado.Visible, DdlClienteDesarmado.SelectedValue.ToEntero, -1)
Dim ObjInventarios As New ClsInventarios
Dim Existencia = ObjInventarios.GetExistenciasPS(DdlPaqueteDesarmado.SelectedValue.ToEntero, CveUMTemp, UsuarioActual.CveEmpresa, DdlAlmacenDesarmado.SelectedValue.ToEntero, FechaMovto:=TxtFechaDesarmado.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente))
Dim CostoPromedio = ObjInventarios.GetCostoPS(DdlPaqueteDesarmado.SelectedValue.ToEntero, TxtCantidadDesarmado.Text.ToDouble, DdlAlmacenDesarmado.SelectedValue.ToEntero, "-1", TxtFechaDesarmado.Text.ToDate)
ObjInventarios.Dispose()
If Existencia - TxtCantidadDesarmado.Text.ToDouble < 0 Then
GvDatosDesarmado.Columns(4).Visible = False
Alert($"No hay existencia suficiente del paquete <b>""{DdlPaqueteDesarmado.SelectedItem.Text}""</b> para desarmar. Por favor rectifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
Exit Sub
Else
CveTipoPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPaqueteDesarmado.SelectedValue.ToEntero).FiltroPrimeroValor("Inv_CveMetodoInventario").ToEntero
End If
LbTotal.Text = (CostoPromedio * TxtCantidadDesarmado.Text.ToDecimal).FormatoNumero
Dim ObjProductosServicios As New ClsProductosServicios
Dim DtDatos As 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
Else
DtDatos = 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
Exit Sub
End If
If DtDatos.Rows.Count > 0 Then
For Each Dr As DataRow In DtDatos.Rows
Dr("Cantidad") = Dr("Cantidad").ToString.ToDecimal * TxtCantidadDesarmado.Text.ToDecimal
Next
End If
If CveTipoPS = 5 Then
GvDatosDesarmado.Columns(4).Visible = True
DivSeriesPaqueteDesarmado.Visible = True
CreaDtSeriesDesarmado()
DtSeriesDesarmado.Clear()
GvSeriesPaqueteDesarmado.DataSource = DtSeriesDesarmado
GvSeriesPaqueteDesarmado.DataBind()
End If
UpSeriesPaqueteDesarmado.Update()
LbPaqueteDesarmado.Text = DdlPaqueteDesarmado.SelectedItem.Text
CvePaqueteDesarmado = DdlPaqueteDesarmado.SelectedValue.ToEntero
LbCantidadDesarmado.Text = TxtCantidadDesarmado.Text
LbAlmacenDesarmado.Text = DdlAlmacenDesarmado.SelectedItem.Text
CveAlmacenDesarmado = DdlAlmacenDesarmado.SelectedValue.ToEntero
LbFechaDesarmado.Text = TxtFechaDesarmado.Text
GvDatosDesarmado.DataSource = DtDatos
GvDatosDesarmado.DataBind()
BtnGuadarDesarmado.Visible = True
TotalDesarmado.Visible = True
UpDatosDesarmado.Update()
UpGeneralesDesarmado.Update()
End Sub
#End Region
#Region " GUARDAR "
Protected Sub BtnGuadarArmado_Click(sender As Object, e As EventArgs)
If Not GvDatosArmado.Rows.Count > 0 Then
Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Guardar(1)
End Sub
Protected Sub BtnGuadarDesarmado_Click(sender As Object, e As EventArgs)
If Not GvDatosDesarmado.Rows.Count > 0 Then
Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If Abs(LbTotal.Text.ToDecimal - LbTotalCalculado.Text.ToDecimal) > 0.01 Then
Alert("Los totales deben coincidir. Por favor rectifique y vuelva a intentar", TipoMensaje.MsgError)
Exit Sub
End If
Guardar(2)
End Sub
Private Sub Guardar(Tipo As Integer)
'VALIDA SI EL COMPONENTE ES DE SERIE QUE SE INGRESEN TODAS LAS SERIES (CANTIDAD)
Select Case (Tipo)
Case 1 ' ARMADO
For Each gvr As GridViewRow In GvDatosArmado.Rows
If gvr.DataKey("Inv_CveMetodoInventario").ToEntero = 5 Then
If gvr.DataKey("Cantidad").ToEntero <> DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec"))).Rows.Count Then
Alert("Es necesario ingresas todas las series de los componentes.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Next
Case 2 ' DESARMADO
For Each gvr As GridViewRow In GvDatosDesarmado.Rows
If gvr.DataKey("Inv_CveMetodoInventario").ToEntero = 5 Then
If gvr.DataKey("Cantidad").ToEntero <> DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec"))).Rows.Count Then
Alert("Es necesario ingresas todas las series de los componentes.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Next
End Select
'VALIDA SI EL PAQUETE ES DE SERIE QUE SE INGRESEN TODAS LAS SERIES (CANTIDAD)
If CveTipoPS = 5 Then
Select Case (Tipo)
Case 1 ' ARMADO
For Each gvr As GridViewRow In GvSeriesPaqueteArmado.Rows
If gvr.FCTextBox("TxtSerie").Text.Trim = "" Then
Alert("Es necesario indicar las series del paquete a armar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Next
Case 2 ' DESARMADO
If LbCantidadDesarmado.Text.ToEntero <> DtSeriesDesarmado.Rows.Count Then
Alert("Es necesario indicar las series del paquete a desarmar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End Select
End If
Dim ObjInventario As New ClsInventarios
ObjInventario.IniciaTransacSQL() 'Inicia la transacción
Dim TieneError = False
Dim MensajeError As String = ""
Dim CveMovimientoSalida = 0
Dim FolioSalida = 0
Dim CveMovimientoEntrada = 0
Dim FolioEntrada = 0
Dim Fecha = If(Tipo = 1, LbFechaArmado.Text.ToDate, LbFechaDesarmado.Text.ToDate)
Dim DtDetalle As New DataTable
Select Case (Tipo)
Case 1 ' ARMADO
'SALIDA COMPONENTES
CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenArmado, 5, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesArmado.Text, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente))
FolioSalida = ObjInventario.Folio
If CveMovimientoSalida <= 0 Then
TieneError = True
MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar."
Exit Select
End If
For Each Gvr As GridViewRow In GvDatosArmado.Rows
If Gvr.DataKey("Cantidad").ToString.ToDouble > 0 Then
If Gvr.DataKey("Inv_CveMetodoInventario").ToString.ToEntero = 5 Then
For Each Dr As DataRow In DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec").ToEntero)).Rows
If Not ObjInventario.GetExistenciasPS(Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenArmado.SelectedValue.ToEntero, FechaMovto:=Fecha.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr("Serie").ToString, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente)) >= 1 Then
MensajeError = String.Format("El Producto <b>{0}</b> con Serie: <b>{1}</b> no tiene existencia suficiente", Dr("PS"), Dr("Serie"))
TieneError = True
Exit For
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, 1, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr("Serie").ToString) Then
MensajeError = "Ocurrió un error al guardar los detalles con serie del movimiento de salida. Por favor vuelva a intentar."
TieneError = True
Exit For
End If
Next
If TieneError Then
Exit For
End If
Else
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Gvr.DataKey("Cantidad").ToString.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, 0, -1) Then
MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar."
TieneError = True
Exit For
End If
End If
End If
Next
'ENTRADA PAQUETE
If Not TieneError Then
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenArmado, 19, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesArmado.Text, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveMovimientoRelacionado:=CveMovimientoSalida)
FolioEntrada = ObjInventario.Folio
If CveMovimientoEntrada <= 0 Then
MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar."
TieneError = True
Else
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim PUTemp = 0.0
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
PUTemp += Dr("PU").ToString.ToDouble * Dr("Cantidad").ToString.ToDouble
Next
PUTemp = PUTemp / LbCantidadArmado.Text.ToDouble
Dim CvePSTemp = CvePaqueteArmado
Dim CveUMTemp = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePaqueteArmado).FiltroPrimeroValor("CveUM").ToEntero
If CveTipoPS = 5 Then
Dim ContadorPaquete = 1
Dim DtSeriesComponentes As New DataTable
For Each Gvr As GridViewRow In GvSeriesPaqueteArmado.Rows
'AGREGA MOVTO DETALLE DE LA ENTRADA DEL PAQUETE
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, 1, CveUMTemp, CvePSTemp, PUTemp, -1, SerieLote:=Gvr.FCTextBox("TxtSerie").Text.Trim) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los detalles con serie del movimiento de entrada"
Exit For
End If
'INGRESA EN TABLA DE CONTROL DE PAQUETES CON SERIE
For Each Gvr2 As GridViewRow In GvDatosArmado.Rows
If Gvr2.DataKey("Inv_CveMetodoInventario").ToString.ToEntero = 5 Then
DtSeriesComponentes = New DataTable
DtSeriesComponentes = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr2.DataKey("Consec").ToEntero)).Copy
Dim CantidadComponente = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr2.DataKey("Consec").ToEntero)).Rows.Count / LbCantidadArmado.Text.ToEntero
For index = (ContadorPaquete - 1) * CantidadComponente.ToEntero To (ContadorPaquete * CantidadComponente.ToEntero) - 1
If Not ObjInventario.AddPaqueteRelacionSeries(CvePSTemp, Gvr.FCTextBox("TxtSerie").Text.Trim, DtSeriesComponentes.Rows(index)("CvePS").ToString.ToEntero, DtSeriesComponentes.Rows(index)("Serie").ToString) Then
TieneError = True
Exit For
End If
Next
End If
Next
ContadorPaquete = ContadorPaquete + 1
Next
Else
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, LbCantidadArmado.Text.ToDouble, CveUMTemp, CvePSTemp, PUTemp, -1) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los detalles del movimiento de entrada"
End If
End If
Else
TieneError = True
MensajeError = "Ocurrió un error al guardar los movimientos de entrada"
End If
End If
End If
Case 2 'DESARMADO
'SALIDA PAQUETE
CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenDesarmado, 20, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesDesarmado.Text, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente))
FolioSalida = ObjInventario.Folio
If CveMovimientoSalida <= 0 Then
TieneError = True
MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar."
Exit Select
End If
Dim CvePSTemp = CvePaqueteDesarmado
Dim CveUMTemp = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePaqueteDesarmado).FiltroPrimeroValor("CveUM").ToEntero
If CveTipoPS = 5 Then
For Each Gvr As GridViewRow In GvSeriesPaqueteDesarmado.Rows
'AGREGA MOVTO DETALLE DE LA SALIDA DEL PAQUETE
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, 1, CveUMTemp, CvePSTemp, 0, -1, SerieLote:=Gvr.DataKey("Serie").ToString) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los detalles con serie del movimiento de salida"
Exit For
End If
'ELIMINA EN TABLA DE CONTROL DE PAQUETES CON SERIE
If Not ObjInventario.RemovePaqueteRelacionSeries(CvePSTemp, Gvr.DataKey("Serie").ToString) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los detalles con serie del movimiento de salida"
Exit For
End If
Next
Else
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, TxtCantidadDesarmado.Text.ToDouble, CveUMTemp, CvePSTemp, 0, -1) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los movimientos de salida"
End If
End If
'ENTRADA COMPONENTES
If Not TieneError Then
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenDesarmado, 4, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesDesarmado.Text, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveMovimientoRelacionado:=CveMovimientoSalida)
FolioEntrada = ObjInventario.Folio
If CveMovimientoEntrada <= 0 Then
MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar."
TieneError = True
Else
For Each Gvr As GridViewRow In GvDatosDesarmado.Rows
If Gvr.DataKey("Cantidad").ToString.ToDouble > 0 Then
If Gvr.DataKey("Inv_CveMetodoInventario").ToString.ToEntero = 5 Then
For Each Dr As DataRow In DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec").ToEntero)).Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, 1, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.FCTextBox("TxtCosto").Text.ToDouble, -1, SerieLote:=Dr("Serie").ToString) Then
MensajeError = "Ocurrió un error al guardar los detalles con serie del movimiento de entrada. Por favor vuelva a intentar."
TieneError = True
Exit For
End If
Next
Else
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Gvr.DataKey("Cantidad").ToString.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.FCTextBox("TxtCosto").Text.ToDouble, -1) Then
MensajeError = "Ocurrió un error al guardar los detalles del movimiento de entrada. Por favor vuelva a intentar."
TieneError = True
Exit For
End If
End If
End If
Next
End If
End If
End Select
If Not TieneError Then
Dim Msg As New StringBuilder
Msg.AppendFormat("<br/>El Movimiento de salida se registro con el Folio: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoSalida, FolioSalida)
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida)))
Msg.AppendFormat("<br/><br/><br/>El Movimiento de entrada se registro con el Folio: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoEntrada, FolioEntrada)
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada)))
Alert(Msg.ToString, TipoMensaje.MsgInformacion)
ObjInventario.Commit()
Limpia(Tipo)
Else
Alert(MensajeError, TipoMensaje.MsgError)
ObjInventario.RollBack()
End If
ObjInventario.Dispose() 'elimino la instancia
End Sub
Private Sub Limpia(Tipo As Integer)
DtDatosDetalle.Clear()
CveTipoPS = -1
'If Tipo = 1 Then
BtnGuadarArmado.Visible = False
DivSeriesPaqueteArmado.Visible = False
GvDatosArmado.Columns(4).Visible = False
LbPaqueteArmado.Text = ""
CvePaqueteArmado = -1
LbCantidadArmado.Text = ""
LbAlmacenArmado.Text = ""
CveAlmacenArmado = -1
LbFechaArmado.Text = ""
TxtObservacionesArmado.Text = ""
UpGeneralesArmado.Update()
GvDatosArmado.DataBind()
UpDatosArmado.Update()
UpSeriesPaqueteArmado.Update()
'Else
LbPaqueteDesarmado.Text = ""
CvePaqueteDesarmado = -1
LbCantidadDesarmado.Text = ""
LbAlmacenDesarmado.Text = ""
CveAlmacenDesarmado = -1
LbFechaDesarmado.Text = ""
TxtObservacionesDesarmado.Text = ""
UpGeneralesDesarmado.Update()
BtnGuadarDesarmado.Visible = False
TotalDesarmado.Visible = False
DtSeriesDesarmado.Clear()
GvDatosDesarmado.Columns(4).Visible = False
DivSeriesPaqueteDesarmado.Visible = False
GvSeriesPaqueteDesarmado.DataBind()
BtnAgregarSerieDesarmado.Enabled = True
LbTotalCalculado.Text = "0.00"
GvDatosDesarmado.DataBind()
UpDatosDesarmado.Update()
UpSeriesPaqueteDesarmado.Update()
'End If
End Sub
#End Region
#Region " GV ARMADO "
Protected Sub GvDatosArmado_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosArmado.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Inv_CveMetodoInventario") = "5" Then
e.Row.FCButton("BtnSerieLote").Visible = True
e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°1", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PS"), e.Row.DBCampo("Cantidad"), e.Row.DBCampo("Consec"))
e.Row.FCLinkButton("BtnSeriePaquete").CommandArgument = e.Row.DBCampo("Consec")
'Dim Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DBCampo("Consec"))).Rows.Count
'e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString
If CveTipoPS = 5 Then
e.Row.FCLinkButton("BtnSeriePaquete").Visible = True
e.Row.FCLinkButton("BtnSeriePaquete").Attributes.Add("data-toggle", "tooltip")
End If
GvDatosArmado.Columns(4).Visible = True
Else
e.Row.FCButton("BtnSerieLote").Visible = False
End If
''FUNCIONALIDAD PISTOLA DE CODIGOS
'If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then
' e.Row.FCTextBox("TbCantidadF").Enabled = False
'End If
End If
End Sub
#End Region
#Region " GV DESARMADO "
Protected Sub GvDatosDesarmado_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosDesarmado.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Inv_CveMetodoInventario") = "5" Then
e.Row.FCButton("BtnSerieLote").Visible = True
e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°2", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PS"), e.Row.DBCampo("Cantidad"), e.Row.DBCampo("Consec"))
Else
e.Row.FCButton("BtnSerieLote").Visible = False
End If
e.Row.FCTextBox("TxtCosto").Attributes.Add("onkeyup", "SumaValores();")
End If
End Sub
#End Region
#Region " SERIE LOTE "
Private Sub CreaDtDetalle()
If DtDatosDetalle Is Nothing Then
DtDatosDetalle = New DataTable
DtDatosDetalle.Columns.Add("Consec", GetType(Integer))
DtDatosDetalle.Columns.Add("ConsecId", GetType(Integer))
DtDatosDetalle.Columns.Add("CvePS", GetType(Integer))
DtDatosDetalle.Columns.Add("PS", GetType(String))
DtDatosDetalle.Columns.Add("CveUM", GetType(Integer))
DtDatosDetalle.Columns.Add("Serie", GetType(String))
DtDatosDetalle.Columns.Add("SeriePaquete", GetType(String))
End If
End Sub
Protected Sub BtnSerieLote_Click(sender As Object, e As EventArgs)
Dim Argumentos = CType(sender, Button).CommandArgument.Split("°"c)
LbProducto.Text = Argumentos(2)
LbCantidad.Text = Argumentos(3).FormatoNumero
CveConsecSerieLote = Argumentos(4).ToEntero
CvePSSerieLote = Argumentos(0).ToEntero
CveUMSerieLote = Argumentos(1).ToEntero
RegistraScript("$('#DivSerie').modal('show')")
CargaSerie(Argumentos(5).ToEntero)
End Sub
Private Sub CargaSerie(Tipo As Integer)
GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote), "Consec DESC")
GvSerie.DataBind()
'VALIDA QUE SIGA AGREGANDO
If DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote)).Rows.Count = LbCantidad.Text.ToEntero Then
BtnAgregarPS.Enabled = False
If Tipo = 2 Then
RegistraScript("$('#DivSerie').modal('hide')")
End If
Else
BtnAgregarPS.Enabled = True
End If
'SERIE LOTE RECOMENDADO
Dim DtSerieLote As New DataTable
Dim VariableCampoSerie = ""
If TipoMovimiento = 1 Then
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.SerieLoteRecomendadoGet(CvePSSerieLote, UsuarioActual.CveEmpresa, If(TipoMovimiento = 1, CveAlmacenArmado, CveAlmacenDesarmado)) Then
DtSerieLote = ObjInventarios.DtResultados
End If
ObjInventarios.Dispose()
VariableCampoSerie = "SerieLote"
Else
DtSerieLote = If(DtExistenciasDesarmado IsNot Nothing, DtExistenciasDesarmado.Copy, Nothing)
VariableCampoSerie = "SeriePS"
End If
'SERIE LOTE RECOMENDADO - QUITA YA COMPLETADOS EN EL CLIENTE
If DtSerieLote IsNot Nothing AndAlso DtSerieLote.Rows.Count > 0 Then
'CALCULA YA COMPLETADOS
DtSerieLote.Columns.Add("CantidadSeleccionada", GetType(Integer))
Dim DrsRemove As New List(Of DataRow)
For Each dr As DataRow In DtSerieLote.Rows
dr("CantidadSeleccionada") = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0} AND Serie = '{1}'", CveConsecSerieLote, dr(VariableCampoSerie).ToString.Replace("'", "''"))).Rows.Count
If dr("CantidadSeleccionada").ToString.ToDecimal = dr("Existencia").ToString.ToDecimal Then
DrsRemove.Add(dr)
End If
Next
'ELIMINA YA COMPLETADOS EN PAGINA
For Each dr As DataRow In DrsRemove
DtSerieLote.Rows.Remove(dr)
Next
If DtSerieLote.Rows.Count > 0 Then
Dim Mensaje As New StringBuilder
Mensaje.AppendFormat("Serie / Lote Recomendado: <b>{0}</b>", DtSerieLote.Rows(0)(VariableCampoSerie))
LbSerieLoteRecomendado.Text = Mensaje.ToString 'String.Format("Serie / Lote Recomendado: <b>{0}</b>, Caducicdad: <b>{1}</b>", ObjInventarios.DtResultados.Rows(0)("SerieLote"), ObjInventarios.DtResultados.Rows(0)("FechaCaducidad").ToString.ToDate.ToShortDateString)
Else
LbSerieLoteRecomendado.Text = "No se encontro ningun Serie/Lote."
End If
Else
LbSerieLoteRecomendado.Text = "No se encontro ningun Serie/Lote."
End If
If DtSerieLote IsNot Nothing Then DtSerieLote.Dispose()
UpSerie.Update()
End Sub
Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs)
AgregaSerieLote(TxtSerieLote.Text.Trim, 1)
End Sub
Private Sub AgregaSerieLote(SerieLote As String, Tipo As Integer)
If SerieLote.Trim = "" Then
Alert("El campo Serie es obligatorio. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim SeriesArreglo = SerieLote.Split(";"c)
'VALIDACION DE SERIES DUPLICADAS
Dim MensajeAlert As New StringBuilder
Dim DtDuplicado As New DataTable
Dim DtSeriesNuevas As New DataTable
DtSeriesNuevas.Columns.Add("Serie", GetType(String))
For Each Serie In SeriesArreglo
DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerieLote} AND Serie = '{Serie}'")
If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
MensajeAlert.Append($"<br/> El numero de Serie <b>""{Serie}""</b> proporcionado ya se encuentra ingresado.")
End If
DtDuplicado = DtSeriesNuevas.FiltraParametros($"Serie = '{Serie}'")
If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
MensajeAlert.Append($"<br/> El numero de Serie <b>""{Serie}""</b> proporcionado se encuentra duplicado.")
End If
Dim Row = DtSeriesNuevas.NewRow
Row("Serie") = Serie
DtSeriesNuevas.Rows.Add(Row)
Next
If MensajeAlert.ToString <> "" Then
Alert(MensajeAlert.ToString, TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
Exit Sub
End If
Dim MensajeSinExistencias As New StringBuilder
Dim ObjInventarios As New ClsInventarios
For Each Serie In SeriesArreglo
Dim Row = DtDatosDetalle.NewRow
'VERIFICA EXISTENCIAS
Dim Existencia = 0.0D
If TipoMovimiento = 1 Then
Existencia = ObjInventarios.GetExistenciasPS(CvePSSerieLote, CveUMSerieLote, UsuarioActual.CveEmpresa, DdlAlmacenArmado.SelectedValue.ToEntero, FechaMovto:=TxtFechaArmado.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Serie, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente))
Else
Existencia = If(DtExistenciasDesarmado Is Nothing, 0, DtExistenciasDesarmado.FiltraParametros($"CvePS={CvePSSerieLote} AND SeriePS='{Serie}'").Rows.Count.ToString.ToDecimal)
End If
If Existencia < 1 Then
Alert($"No hay existencia suficiente con la Serie definida <b>""{Serie}""</b>. Por favor rectifique y vuelva a intentar", TipoMensaje.MsgAdvertencia, If(Tipo = 2, "window.setTimeout(Focus,200);", ""))
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
If Tipo = 1 Then
RegistraScript("$('#DivSerie').modal('show')")
End If
Exit Sub
End If
Dim AplicaCaducidad = False
If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then
AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
End If
Row("ConsecId") = CveConsecSerieLote
Row("Consec") = DtDatosDetalle.Rows.Count + 1
Row("CvePS") = CvePSSerieLote
Row("CveUM") = CveUMSerieLote
Row("Serie") = Serie
If TipoMovimiento = 2 Then
Row("SeriePaquete") = DtExistenciasDesarmado.FiltroPrimeroValor("SeriePaquete", $"CvePS={CvePSSerieLote} AND SeriePS='{Serie}'")
End If
DtDatosDetalle.Rows.Add(Row)
Next
ObjInventarios.Dispose()
If Tipo = 1 Then
TxtSerieLote.Text = ""
End If
CargaSerie(2)
If MensajeAlert.ToString <> "" Then
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
Else
If MensajeSinExistencias.ToString <> "" Then
Alert($"Las siguientes Series no cuentan con la existencia suficiente por lo cual se omitieron. <br?><br/> {MensajeSinExistencias.ToString}", TipoMensaje.MsgAdvertencia)
End If
RegistraScript("playsonidito('beep-07.wav')")
End If
End Sub
Protected Sub GvSerie_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvSerie.RowDeleting
DtDatosDetalle.Rows.Remove(DtDatosDetalle.Rows(e.RowIndex))
CargaSerie(2)
End Sub
#End Region
#Region " SERIE DEL PAQUETE "
'SERIES ARMADO
Protected Sub BtnSeriePaquete_Click(sender As Object, e As EventArgs)
Dim i = 1
Dim Dt As New DataTable
Dt.Columns.Add("Row", GetType(Integer))
Dt.Columns.Add("Serie", GetType(String))
For Each Row As DataRow In DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CType(sender, LinkButton).CommandArgument.ToEntero)).Rows
If i > LbCantidadArmado.Text.ToEntero Then
Exit For
End If
Dim Row2 = Dt.NewRow
Row2("Row") = i
Row2("Serie") = Row("Serie")
Dt.Rows.Add(Row2)
i = i + 1
Next
GvSeriesPaqueteArmado.DataSource = Dt
GvSeriesPaqueteArmado.DataBind()
UpSeriesPaqueteArmado.Update()
End Sub
'SERIES DESARMADO
Private Sub CreaDtSeriesDesarmado()
If DtSeriesDesarmado Is Nothing Then
DtSeriesDesarmado = New DataTable
DtSeriesDesarmado.Columns.Add("Row", GetType(Integer))
DtSeriesDesarmado.Columns.Add("Serie", GetType(String))
End If
End Sub
Protected Sub BtnAgregarSerieDesarmado_Click(sender As Object, e As EventArgs)
Dim SerieLote = TxtSerieDesarmado.Text.Trim
'VERIFICA EXISTENCIAS
Dim ObjInventarios As New ClsInventarios
Dim CveUMTemp = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePaqueteDesarmado).FiltroPrimeroValor("CveUM").ToEntero
Dim Existencia = ObjInventarios.GetExistenciasPS(CvePaqueteDesarmado, CveUMTemp, UsuarioActual.CveEmpresa, CveAlmacenDesarmado, FechaMovto:=LbFechaDesarmado.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=SerieLote, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente))
If Existencia < 1 Then
Alert($"No hay existencia suficiente con la Serie definida <b>""{SerieLote}""</b>. Por favor rectifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
Exit Sub
End If
If ObjInventarios.GetPaqueteRelacionSeries(CvePaqueteDesarmado, SerieLote) Then
If DtExistenciasDesarmado Is Nothing Then
DtExistenciasDesarmado = ObjInventarios.DtResultados.Copy
Else
DtExistenciasDesarmado.Merge(ObjInventarios.DtResultados)
End If
End If
ObjInventarios.Dispose()
Dim Row = DtSeriesDesarmado.NewRow
Row("Row") = DtSeriesDesarmado.MAX("Row").ToEntero + 1
Row("Serie") = TxtSerieDesarmado.Text.Trim
DtSeriesDesarmado.Rows.Add(Row)
TxtSerieDesarmado.Text = ""
If DtSeriesDesarmado.Rows.Count >= LbCantidadDesarmado.Text.ToEntero Then
BtnAgregarSerieDesarmado.Enabled = False
Else
BtnAgregarSerieDesarmado.Enabled = True
End If
GvSeriesPaqueteDesarmado.DataSource = DtSeriesDesarmado
GvSeriesPaqueteDesarmado.DataBind()
UpSeriesPaqueteDesarmado.Update()
End Sub
Protected Sub GvSeriesPaqueteDesarmado_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvSeriesPaqueteDesarmado.RowDeleting
Dim SerieEliminada = DtSeriesDesarmado.Rows(e.RowIndex)("Serie").ToString
DtSeriesDesarmado.Rows.Remove(DtSeriesDesarmado.Rows(e.RowIndex))
'ELIMINA EXISTENCIAS DEL PAQUETE
Dim dtTemp As DataTable = DtExistenciasDesarmado.FiltraParametros($"SeriePaquete<>'{SerieEliminada}'")
DtExistenciasDesarmado.Clear()
DtExistenciasDesarmado.Merge(dtTemp)
'ELIMINA SERIES DE COMPONENTES DEPENDIENTES DEL PAQUETE ELIMINADO
dtTemp = DtDatosDetalle.FiltraParametros($"SeriePaquete<>'{SerieEliminada}'")
DtDatosDetalle.Clear()
DtDatosDetalle.Merge(dtTemp)
dtTemp.Dispose()
If DtSeriesDesarmado.Rows.Count >= LbCantidadDesarmado.Text.ToEntero Then
BtnAgregarSerieDesarmado.Enabled = False
Else
BtnAgregarSerieDesarmado.Enabled = True
End If
GvSeriesPaqueteDesarmado.DataSource = DtSeriesDesarmado
GvSeriesPaqueteDesarmado.DataBind()
UpSeriesPaqueteDesarmado.Update()
End Sub
#End Region
End Class