Files
SIG/Inventarios/RepApartados.aspx.vb

488 lines
23 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepApartados
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property DtApartados As DataTable
Get
Return DirectCast(ViewState("DtApartados"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtApartados") = 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
SetValues()
InicializaParam()
End If
End Sub
#Region " SET VALUES "
Private Sub SetValues()
DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyectos.DataBind()
DdlSubProyectos.Items.Insert(0, New ListItem(" Todas ", "-1"))
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlClientesWS.setEsWebService(True)
Else
DdlClientesWS.setEsWebService(False)
DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
DdlClientesWS.DataBind()
DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If
DdlClienteTraspasar.setEsWebService(True)
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, Estatus:=-1)
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem(" Todos ", "-1"))
'FUNCIONALIDAD 105
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.setEsWebService(True)
Else
DdlPS.setEsWebService(False)
'FUNCIONALIDAD DE COMPUESTO
If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
DdlPS.ddl.DataTextField = "PSCodigoCompuesto"
End If
DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPS.DataBind()
End If
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
txtFechaF.Text = Now.ToShortDateString
End Sub
#End Region
Private Sub InicializaParam()
Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String
Dim CveCliente, CveVendedor, CveSucursal, CvePS As String
Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString
Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString
AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString
Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString
FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString
FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString
CveCliente = If(Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToEntero() > 0, Request("CveCliente").ToEntero(), -1).ToString
CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor").ToEntero() > 0, Request("CveVendedor").ToEntero(), -1).ToString
CveSucursal = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() > 0, Request("CveSubProyecto").ToEntero(), -1).ToString
CvePS = If(Request("CvePS") IsNot Nothing AndAlso Request("CvePS").ToEntero() > 0, Request("CvePS").ToEntero(), -1).ToString
If FechaF <> "-1" Then
txtFechaF.Text = FechaF
End If
If FechaI <> "-1" Then
txtFechaI.Text = FechaI
End If
txtFechaI.Text = If(Anio <> "-1", String.Format("01/01/{0}", Anio), txtFechaI.Text)
txtFechaI.Text = If(Mes <> "-1", String.Format("01/{0}/0001", Mes), txtFechaI.Text)
Dim sMes As String
Dim sAnio As String = If(AnioMes <> "-1", AnioMes.Substring(0, 4), "")
If AnioMes.Trim.Length = 7 Then
sMes = AnioMes.Substring(5, 2).ToEntero.ToString("00")
Else
sMes = If(AnioMes <> "-1", AnioMes.Substring(5, 1).ToEntero.ToString("00"), "")
End If
txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", sMes, sAnio), txtFechaI.Text)
If Anio <> "-1" Then
txtFechaF.Text = String.Format("31/12/{0}", Anio)
ElseIf Mes <> "-1" Then
txtFechaF.Text = String.Format("{0}/{1}/{2}", txtFechaI.Text.ToDate.LastDayOfMonth.Day, Mes, Now.Year)
ElseIf AnioMes <> "-1" Then
txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString
End If
If Fecha <> "-1" Then
txtFechaI.Text = Fecha
txtFechaF.Text = Fecha
End If
If CveCliente <> "-1" Then
DdlClientesWS.SelectedValue = CveCliente
DdlClientesWS.SelectedText = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("NombreComercial", $"CveCliente ={CveCliente}")
Else
DdlClientesWS.SelectedValue = CveCliente
DdlClientesWS.SelectedText = "Todos"
End If
DdlClienteTraspasar.SelectedValue = "-1"
DdlClienteTraspasar.SelectedText = "Seleccione"
If UsuarioActual.CveVendedor > 0 AndAlso CveVendedor.ToEntero <= 0 Then
CveVendedor = UsuarioActual.CveVendedor.ToString
End If
DdlVendedor.SelectedValueExist(CveVendedor)
DdlSubProyectos.SelectedValueExist(CveSucursal)
'DdlPS.ddl.SelectedValueExist(CvePS)
DdlPS.SelectedValue = CvePS
If CvePS <> "-1" Then
DdlPS.SelectedValue = CvePS
DdlPS.SelectedText = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS.ToEntero)(0)("PSCodigo").ToString
Else
DdlPS.SelectedValue = CvePS
DdlPS.SelectedText = "Todos"
End If
If Anio <> "-1" Or Mes <> "-1" Or AnioMes <> "-1" Or Fecha <> "-1" Or FechaI <> "-1" Or FechaF <> "-1" Or CveCliente <> "-1" Or CveVendedor <> "-1" Or CveSucursal <> "-1" Or CvePS <> "-1" Then
CargaDatos()
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim CveAlmacenApartado = -1
If DdlSubProyectos.SelectedValue.ToEntero > 0 Then
CveAlmacenApartado = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen IN (9) And Estatus = 'Activo' And CveSubProyecto = {DdlSubProyectos.SelectedValue.ToEntero}").ToEntero
If CveAlmacenApartado <= 0 Then
Alert("No se encontro el almacen de Apartado de la sucursal seleccionada. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.ApartadosRep(CveAlmacenApartado, DdlClientesWS.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate) Then
DtApartados = ObjInventarios.DtResultados
End If
ObjInventarios.Dispose()
GvDatos.DataSource = DtApartados
If DdlSubProyectos.SelectedValue.ToEntero() > 0 AndAlso DtApartados.COUNT("CveVendedor", $"CveVendedor={UsuarioActual.CveVendedor}") > 0 Then
GvDatos.Columns(6).Visible = True
LnkTraspasarApartados.Visible = True
End If
GvDatos.DataBind()
UpDatos.Update()
UpTraspasar.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 1 Then
e.Row.CssClass = "Totales"
End If
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 2 Then
e.Row.CssClass = "SubTotales2"
End If
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 3 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
End If
End Sub
#Region "PDF"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
If DtApartados IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If txtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio:</b>&nbsp;{0}", txtFechaI.Text)
If txtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin:</b>&nbsp;{0}", txtFechaF.Text)
If DdlSubProyectos.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Sucursal:</b> {0}", DdlSubProyectos.SelectedItem.Text)
If DdlVendedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Vendedor:</b> {0}", DdlVendedor.SelectedItem.Text)
If DdlClientesWS.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cliente:</b> {0}", DdlClientesWS.SelectedText)
If DdlPS.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Producto/Servicio:</b> {0}", DdlPS.SelectedText)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepApartados.rdlc", DtApartados, params, String.Format("ReporteApartados-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvDatos.ExportToExcel("Reporte de Apartados" & Now.ToShortDateString)
End Sub
#End Region
Protected Sub LnkTraspasarApartados_Click(sender As Object, e As EventArgs)
LtlAlmacen.Text = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=9).FiltroPrimeroValor("Almacen", $"CveSubProyecto={DdlSubProyectos.SelectedValue.ToEntero()}")
TxtObs.Text = ""
DdlClienteTraspasar.SelectedValue = "-1"
DdlClienteTraspasar.SelectedText = "Seleccione"
UpTraspasar.Update()
UpGenerarTraspaso.Update()
RegistraScript("$('#ModalTraspaso').modal('show');")
End Sub
Protected Sub BtnTraspasar_Click(sender As Object, e As EventArgs)
If DdlClienteTraspasar.SelectedValue.ToEntero() <= 0 Then
Alert("No se ha seleccionado ningun cliente", TipoMensaje.MsgAdvertencia)
Exit Sub
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 producto para realizar el traspaso", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ErrorMovInv As Boolean = False
Dim Mensaje As StringBuilder = New StringBuilder
Dim SalidasAlmacen As New List(Of MMovimientoAlmacen)
Dim EntradasAlmacen As New List(Of MMovimientoAlmacen)
Dim ObjInventario As New ClsInventarios
ObjInventario.IniciaTransacSQL()
Try
Dim CveClienteTraspasar As Integer = DdlClienteTraspasar.SelectedValue.ToEntero()
Dim CveAlmacenApartado As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=9).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={DdlSubProyectos.SelectedValue.ToEntero()}").ToEntero()
Dim DtTraspaso As DataTable = CrearDTTraspasosClientes()
'SE VAN A REALIZAR LOS MOVIMIENTOS POR CADA CLIENTE CONSIDERADO
For Each Row As DataRow In DtTraspaso.FiltraParametros("", DistinctColumns:={"CveCliente", "CveVendedor"}).Rows
'SACA LOS PS A TRASPASAR
Dim DtPSTraspasar As DataTable = DtTraspaso.FiltraParametros($"CveCliente={Row("CveCliente")} AND CveVendedor={Row("CveVendedor")}")
'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")
DtDetalleTraspasar.Dispose()
ErrorMovInv = MovSalida.CveMovimiento <= 0
If Not ErrorMovInv Then
SalidasAlmacen.Add(MovSalida)
Dim MovEntrada = GenerarMovimientoAlmacen(CveAlmacenApartado, 9, UsuarioActual.CveVendedor, CveClienteTraspasar, MovSalida.CveMovimiento, TxtObs.Text.Trim(), Nothing, ObjInventario, "RepApar/2")
ErrorMovInv = MovEntrada.CveMovimiento <= 0
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
If Not ErrorMovInv Then
Mensaje.Append("Se realizó con éxito el traspaso.")
For Each MovSalida In SalidasAlmacen
Mensaje.AppendFormat("<br/><br/> Folio de Salida: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{0}</a></b>", MovSalida.Folio, MovSalida.CveMovimiento)
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", MovSalida.CveMovimiento)))
Next
For Each MovEntrada In EntradasAlmacen
Mensaje.AppendFormat("<br/><br/> Folio de Entrada: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{0}</a></b>", MovEntrada.Folio, MovEntrada.CveMovimiento)
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", MovEntrada.CveMovimiento)))
Next
End If
RegistraScript("$('#ModalTraspaso').modal('hide');")
Alert(Mensaje.ToString(), If(ErrorMovInv, TipoMensaje.MsgError, TipoMensaje.MsgInformacion))
Catch ex As Exception
ErrorMovInv = True
OnError("Ocurrió un error al realizar el traspaso", ex)
End Try
If ErrorMovInv Then
ObjInventario.RollBack()
Else
ObjInventario.Commit()
End If
ObjInventario.Dispose()
CargaDatos()
End Sub
Private Function CuadrarMovimientosApartado(CveAlmacenApartado As Integer, CveCliente As Integer, CveVendedor As Integer, DtPSTraspasar As DataTable, ByRef ObjInventarios As ClsInventarios) As DataTable
Dim DtRetorno As DataTable = Nothing
Dim DtDesapartado As DataTable = Nothing
If ObjInventarios.DesapartadosGet(CveAlmacenApartado, CveCliente, CveVendedor, UsuarioActual.CveEmpresa) Then
DtDesapartado = ObjInventarios.DtResultados.Copy()
DtRetorno = DtDesapartado.Clone()
End If
If DtRetorno IsNot Nothing Then
For Each RowTraspasar As DataRow In DtPSTraspasar.Rows
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CvePS={0}", RowTraspasar("CvePS"))
'SI TIENE SERIE LA AGREGA AL FILTRO
If Not String.IsNullOrEmpty(RowTraspasar("Serie").ToString()) Then
Filtro.AppendFormat(" AND Serie='{0}'", RowTraspasar("Serie"))
Else
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") = RowTraspasar("Cantidad")
DtRetorno.Rows.Add(RowDesapartado.ItemArray)
Next
End If
Return DtRetorno
End Function
Private Function CrearDTTraspasosClientes() As DataTable
Dim Dt As New DataTable
Dt.Columns.Add(New DataColumn("Cantidad", GetType(Integer)))
Dt.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
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
Row("Cantidad") = GvRow.FCTextBox("TxtCantidad").Text.ToEntero()
Row("CvePS") = GvRow.DataKey("CvePS").ToEntero()
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
Return Dt
End Function
Private Function GenerarMovimientoAlmacen(CveAlmacen As Integer, CveConceptoAlmacen As Integer, CveVendedor As Integer, CveCliente As Integer, CveMovimientoRelacionado As Integer, Obs As String, DtDetalle As DataTable, ObjInventario As ClsInventarios, Modulo As String) As MMovimientoAlmacen
Dim ErrorMovInv As Boolean = False
Dim Retorno As New MMovimientoAlmacen
Dim CveMovimiento As Integer = -1
Dim Folio As Integer = -1
CveMovimiento = ObjInventario.AddMovimiento(CveAlmacen, CveConceptoAlmacen, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1,
-1, -1, -1, Observaciones:=Obs,
MovimientoFijo:=True, CveMovimientoRelacionado:=CveMovimientoRelacionado, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:=Modulo)
Folio = ObjInventario.Folio
If Not CveMovimiento > 0 Then
ErrorMovInv = True
End If
'SI ES MOVIMIENTO DE SALIDA TOMA DE LA TABLA DONDE SE CUADRARON LOS MOVIMIENTOS
If Not ErrorMovInv AndAlso DtDetalle IsNot Nothing AndAlso CveMovimientoRelacionado <= 0 AndAlso CveConceptoAlmacen = 8 Then
For Each Dr As DataRow In DtDetalle.Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString().ToEntero(), Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal(), -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), Lote:=Dr("Lote").ToString(), FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
Next
'SI ES MOVIMIENTO DE ENTRADA TOMA LOS DATOS DEL MOVIMIENTO DE SALIDA
ElseIf Not ErrorMovInv AndAlso DtDetalle Is Nothing AndAlso CveMovimientoRelacionado > 0 AndAlso CveConceptoAlmacen = 9 Then
Dim DtMovimientoDetalle As DataTable = Nothing
If ObjInventario.GetMovimientosDetalle(CveMovimientoRelacionado, UsuarioActual.CveEmpresa) Then
DtMovimientoDetalle = ObjInventario.DtResultados.Copy()
Else
ErrorMovInv = True
End If
If Not ErrorMovInv AndAlso DtMovimientoDetalle IsNot Nothing Then
For Each Dr As DataRow In DtMovimientoDetalle.Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString().ToEntero(), Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
Next
End If
DtMovimientoDetalle.Dispose()
End If
If Not ErrorMovInv Then
Retorno.CveMovimiento = CveMovimiento
Retorno.Folio = Folio
Retorno.CveConcepto = CveConceptoAlmacen
End If
Return Retorno
End Function
End Class
Class MMovimientoAlmacen
Public Property CveMovimiento As Integer
Public Property Folio As Integer
Public Property CveConcepto As Integer
End Class