488 lines
23 KiB
VB.net
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(" <b>Fecha Inicio:</b> {0}", txtFechaI.Text)
|
|
If txtFechaF.Text <> "" Then StrFiltro.AppendFormat(" <b>Fecha Fin:</b> {0}", txtFechaF.Text)
|
|
|
|
If DdlSubProyectos.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" <b>Sucursal:</b> {0}", DdlSubProyectos.SelectedItem.Text)
|
|
If DdlVendedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" <b>Vendedor:</b> {0}", DdlVendedor.SelectedItem.Text)
|
|
If DdlClientesWS.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" <b>Cliente:</b> {0}", DdlClientesWS.SelectedText)
|
|
If DdlPS.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" <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 |