diff --git a/App_Code/BundleConfig.vb b/App_Code/BundleConfig.vb
index e3da720f1..4331cdfa4 100644
--- a/App_Code/BundleConfig.vb
+++ b/App_Code/BundleConfig.vb
@@ -33,6 +33,28 @@ Public Class BundleConfig
"~/Scripts/exporting.js"
))
+ bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JSNoCustom").Include(
+ "~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js",
+ "~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js",
+ "~/Metronic/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
+ "~/Metronic/assets/global/plugins/jquery.blockui.min.js",
+ "~/Metronic/assets/global/plugins/jquery.cokie.min.js",
+ "~/Metronic/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
+ "~/Metronic/assets/global/plugins/select2/select2.full.min.js",
+ "~/Metronic/assets/global/plugins/select2/i18n/es.js",
+ "~/Metronic/assets/global/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js",
+ "~/Metronic/assets/global/plugins/bootbox/bootbox.min.js",
+ "~/Metronic/assets/global/plugins/bootstrap-toastr/toastr.min.js",
+ "~/Metronic/assets/global/scripts/metronic.js",
+ "~/Metronic/assets/admin/layout/scripts/layout.js",
+ "~/Metronic/assets/admin/layout/scripts/quick-sidebar.js",
+ "~/Metronic/assets/admin/layout/scripts/demo.js",
+ "~/Metronic/assets/admin/pages/scripts/table-advanced.js",
+ "~/Metronic/assets/admin/pages/scripts/ui-alert-dialog-api.js",
+ "~/Metronic/assets/global/plugins/icheck/icheck.min.js",
+ "~/Metronic/assets/global/plugins/dropzone/dropzone.js",
+ "~/Metronic/assets/layouts/layout3/scripts/jquery.datetimepicker.full.js"
+ ))
bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JS").Include(
"~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js",
diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb
index 2d74b5f69..e451e5b44 100644
--- a/App_Code/ClsAcumuladores.vb
+++ b/App_Code/ClsAcumuladores.vb
@@ -797,6 +797,21 @@ Public Class ClsAcumuladores
Return Retorno
End Function
+ Public Function EliminarGarantiasDetalle(CveVenta As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ SqlDataAdapter("PA_Acum_GarantiasDetallePolizaRemove")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As SqlException
+ OnError("Ocurrió un error a eliminar de garantia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+ Return Retorno
+ End Function
+
#End Region
@@ -863,6 +878,21 @@ Public Class ClsAcumuladores
End Try
Return Retorno
End Function
+
+ Public Function EliminarPolizaVirtual(CveVenta As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ SqlDataAdapter("PA_Vta_PolizaVirtualRemove")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As SqlException
+ OnError("Ocurrió un al eliminar poliza virtual. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+ Return Retorno
+ End Function
#End Region
Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,
diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index e0cc7a960..74be2b92d 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -3061,6 +3061,24 @@ Public Class ClsInventarios
Return Retorno
End Function
+ Public Function GetMovimientosDevoluciones(CveVenta As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_VentaDetalleAlmacenDevolucion")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener datos de devolucion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
Public Function GetDevolucionRemisionesFacturadas(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Inv_DevolucionRemisionesFacturadas")
diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb
index 0cbe50889..bcecb847d 100644
--- a/App_Code/ClsOC.vb
+++ b/App_Code/ClsOC.vb
@@ -967,13 +967,31 @@ Public Class ClsOC
Return Retorno
End Function
- Public Function UpdateOrdenCompraDetalleAjuste(CveOrdenCompra As Integer, CveOrdenCompraDetalle As Integer, Diferencia As Double) As Boolean
+ Public Function UpdateOrdenCompraDetalleAjuste(CveOrdenCompra As Integer, CveOrdenCompraDetalle As Integer, Diferencia As Double, CveUsuarioModifico As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OC_OrdenesCompraDetalleAjusteUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveOrdenCompra", SqlDbType.Int).Value = CveOrdenCompra
.Add("@CveOrdenCompraDetalle", SqlDbType.Int).Value = CveOrdenCompraDetalle
.Add("@Diferencia", SqlDbType.Float).Value = Diferencia
+ .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al actualizar la Orden de Compra Detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+ Return Retorno
+ End Function
+ Public Function UpdateOrdenCompraMoneda(CveOrdenCompra As Integer, CveEmpresa As Integer, CveMoneda As Integer, CveUsuarioModifico As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_OC_OrdenesCompraMonedaUpdate")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveOrdenCompra", SqlDbType.Int).Value = CveOrdenCompra
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda
+ .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
End With
Try
SqlAdapter.Fill(Data)
diff --git a/App_Code/ClsOIEventos.vb b/App_Code/ClsOIEventos.vb
index a6056e0b2..d73f1af56 100644
--- a/App_Code/ClsOIEventos.vb
+++ b/App_Code/ClsOIEventos.vb
@@ -238,6 +238,23 @@ Public Class ClsOIEventos
Return Retorno
End Function
+ Public Function GetEventosVinculos(CveEvento As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_OI_EventosVinculosGet")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveEvento", SqlDbType.Int).Value = CveEvento
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener el Catálogo de Evento Usuario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+ Return Retorno
+ End Function
+
Public Function UpUsuarioseventosVisto(CveEvento As Integer, CveUsuario As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("UPDATE OI_EventosUsuarios SET Visto=1 WHERE CveEvento =@CveEvento AND CveUsuario=@CveUsuario", CommandType.Text)
@@ -296,7 +313,11 @@ Public Class ClsOIEventos
End Function
Public Function AddOI_Eventos2(cveTipoEvento As OITipoEventos, asunto As String, descripcion As String, prioridad As Int32, cveUsuarioDe As Int32, cveUsuarioPara As Int32,
fechaInicio As String, fechaFin As String, cveRevision As Int32, archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String),
- cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveEventoPadre As Integer = -1, Optional Acuerdos As String = Nothing, Optional CveAgendaTipo As Integer = -1) As Boolean
+ cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveEventoPadre As Integer = -1, Optional Acuerdos As String = Nothing, Optional CveAgendaTipo As Integer = -1,
+ Optional CveActivoFijo As Integer = -1, Optional CveIE As Integer = -1, Optional CveProspecto As Integer = -1, Optional CveCliente As Integer = -1,
+ Optional CveOS As Integer = -1, Optional CveOC As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveProveedor As Integer = -1,
+ Optional CveCompra As Integer = -1, Optional CveVenta As Integer = -1, Optional CveContrato As Integer = -1, Optional CveSubProyecto As Integer = -1,
+ Optional CveMovimientoAlmacen As Integer = -1) As Boolean
Dim retorno As Boolean = False
Dim xmlMiembros As System.Xml.Linq.XDocument = Nothing
@@ -339,6 +360,22 @@ Public Class ClsOIEventos
.Add("@CveEventoPadre", SqlDbType.Int).Value = CveEventoPadre
.Add("@Acuerdos", SqlDbType.VarChar).Value = If(Acuerdos Is Nothing, DBNull.Value, DirectCast(Acuerdos, Object))
.Add("@CveAgendaTipo", SqlDbType.Int).Value = CveAgendaTipo
+
+ .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
+ .Add("@CveIE", SqlDbType.Int).Value = CveIE
+ .Add("@CveProspecto", SqlDbType.Int).Value = CveProspecto
+ .Add("@CveCliente", SqlDbType.Int).Value = CveCliente
+ .Add("@CveOS", SqlDbType.Int).Value = CveOS
+ .Add("@CveOC", SqlDbType.Int).Value = CveOC
+ .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal
+ .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
+ .Add("@CveCompra", SqlDbType.Int).Value = CveCompra
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveContrato", SqlDbType.Int).Value = CveContrato
+ .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
+ .Add("@CveMovimientoAlmacen", SqlDbType.Int).Value = CveMovimientoAlmacen
+
+
'.Add("@mailPara", SqlDbType.VarChar).Direction = ParameterDirection.Output
'.Add("@mailBody", SqlDbType.Xml).Direction = ParameterDirection.Output
End With
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 0c2e6a30c..8a6e569be 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -70,7 +70,11 @@ Public Class ClsPaginas
Get
Try
'UsuarioActual = DirectCast(Session("UsuarioSIG"), Usuario)
- UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario)
+ If Context.Session("UsuarioSIG") Is Nothing Then
+ Usuario.CerrarSession()
+ Else
+ UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario)
+ End If
Catch ex As Exception
Usuario.CerrarSession()
Return Nothing
@@ -4142,7 +4146,7 @@ Public Class ClsPaginas
PaginaDict.Add("/CRM/PopUpBuscarAcercamiento.aspx".ToUpper(), 1312)
PaginaDict.Add("/CRM/RepAcercamientosProcesos.aspx".ToUpper(), 1313)
PaginaDict.Add("/CRM/RepAcercamientosRechazos.aspx".ToUpper(), 1314)
- PaginaDict.Add("/CRM/RepAcercamientosProcesosDetalle.aspx".ToUpper(), -1)
+ PaginaDict.Add("/CRM/RepAcercamientosProcesosDetalle.aspx".ToUpper(), 758)
PaginaDict.Add("/CRM/CatMetas.aspx".ToUpper(), 684)
#End Region
#Region "CxC"
@@ -6781,7 +6785,7 @@ Public Class ClsPaginas
Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte
lrds.Add(rds5)
- If UsuarioActual.CveEmpresa = 141 AndAlso RutaFormato.Contains("Factura") Then
+ If UsuarioActual.CveEmpresa = 141 AndAlso (RutaFormato.Contains("Factura") Or RutaFormato.Contains("Cotizacion")) Then
params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString))
End If
'Imprime los parametros
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index a9e28e571..5d07b8c90 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -4496,6 +4496,25 @@ Public Class ClsVentas
Return Retorno
End Function
+
+ Public Function EliminarUsados(CveVenta As Integer) As Boolean
+ Dim Retorno As Boolean = False
+
+ DataAdapter("PA_Vta_VentasUsadosRemove", CommandType.StoredProcedure)
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al eliminar los usados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
Public Function GetVentasUsados(CveVenta As Integer, CveSubProyecto As Integer, Fecha As DateTime, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index bb508bd69..c0867da74 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -3281,7 +3281,7 @@ Namespace Modelos
End If
Catch ex As Exception
- GuardaLog(ex.ToString())
+ GuardaLog("Model.Proceso.PreP-" & ex.ToString())
ErrorPrepoliza = True
End Try
Return ErrorPrepoliza
@@ -4340,13 +4340,14 @@ Namespace Modelos
End If
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
- If Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso CveEstatusRefacturacion = 0 Then
+ If Not ErrorCancelar AndAlso Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso CveEstatusRefacturacion = 0 Then
'DEVOLUCION DE ALMACEN
If Not ErrorCancelar AndAlso TieneAlmacen Then
Dim TieneSalida As Boolean = False
Dim DtInventario As DataTable = Nothing
- Dim DtMovimientos As DataTable = Nothing
+ Dim DtSalidas As DataTable = Nothing
+ Dim DtDevoluciones As DataTable = Nothing
Dim DtExistencias As DataTable = Nothing
Dim DtRemisionesFacturadas As DataTable = Nothing
@@ -4375,14 +4376,16 @@ Namespace Modelos
ErrorCancelar = True
End If
- If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
- DtInventario = ObjInventario.DtResultados.Copy()
- DtMovimientos = DtInventario.FiltraParametros($"CvePS IS NULL AND {Filtro}")
- DtExistencias = DtInventario.FiltraParametros($"CvePS IS NOT NULL AND {Filtro} AND CveTipoPS = 2")
- TieneSalida = DtExistencias.Rows.Count > 0
- Else
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ If Not ErrorCancelar Then
+ If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
+ DtInventario = ObjInventario.DtResultados.Copy()
+ DtSalidas = DtInventario.FiltraParametros($"CvePS IS NULL AND {Filtro}")
+ DtExistencias = DtInventario.FiltraParametros($"CvePS IS NOT NULL AND {Filtro} AND CveTipoPS = 2")
+ TieneSalida = DtExistencias.Rows.Count > 0
+ Else
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ End If
End If
End If
@@ -4390,38 +4393,42 @@ Namespace Modelos
If Not ErrorCancelar AndAlso TieneSalida Then
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen Then
-
- For Each RowMovimiento As DataRow In DtMovimientos.Rows
+ 'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES
+ For Each RowMovimiento As DataRow In DtSalidas.Rows
Dim CveConceptoDevolucion As Integer = -1
Dim CveAlmacenDevolucion As Integer = -1
+
+ Dim CveMovimientoDevolucion As Integer = 0
+ Dim Folio As Integer = 0
+
Select Case RowMovimiento("CveConcepto").ToString().ToEntero()
Case 3
CveConceptoDevolucion = 18 'DEVOLUCION DEL CLIENTE
CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
Case 40
CveConceptoDevolucion = 41 'DEVOLUCIÓN DEL CLIENTE DIRECTA
- 'SI TIENE REMISIONES RELACIONADAS
- If DtRemisionesFacturadas.Rows.Count > 0 Then
- Dim RowRemision As DataRow = DtExistencias.FiltroPrimero($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}")
- Dim CveRemision As Integer = RowRemision("CveRemision").ToString().ToEntero()
+ CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ ''SI TIENE REMISIONES RELACIONADAS
+ 'If DtRemisionesFacturadas.Rows.Count > 0 Then
+ ' Dim RowRemision As DataRow = DtExistencias.FiltroPrimero($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}")
- Dim CancelarRemision As Boolean = (ListaRemisionesCancelar IsNot Nothing) AndAlso (ListaRemisionesCancelar.Any(Function(CveRemisionCancelar) CveRemisionCancelar = CveRemision))
- 'SI LA REMISION SE VA A CANCELAR DEBE REGRESAR AL ALMACEN GENERAL
- If CancelarRemision Then
- CveAlmacenDevolucion = RowRemision("CveAlmacenDevolucion").ToString().ToEntero()
- Else
- CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
- End If
- Else
- CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
- End If
+ ' Dim CveRemision As Integer = RowRemision("CveRemision").ToString().ToEntero()
+ ' Dim CancelarRemision As Boolean = (ListaRemisionesCancelar IsNot Nothing) AndAlso (ListaRemisionesCancelar.Any(Function(CveRemisionCancelar) CveRemisionCancelar = CveRemision))
+
+ ' 'SI LA REMISION SE VA A CANCELAR DEBE REGRESAR AL ALMACEN GENERAL
+ ' If CancelarRemision Then
+ ' CveAlmacenDevolucion = RowRemision("CveAlmacenDevolucion").ToString().ToEntero()
+ ' Else
+ ' CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ ' End If
+
+ 'Else
+ ' CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ 'End If
End Select
- Dim CveMovimientoDevolucion As Integer = 0
- Dim Folio As Integer = 0
-
- 'VERIFICAR SI YA TIENE UNA DEVOLUCION
+ 'SI TIENE SALDO PENDIENTE POR DEVOLVER GENERA UN MOVIMIENTO DE DEVOLUCION
If ObjFactura.SaldoAlmacen <> 0 Then
'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
CveMovimientoDevolucion = ObjInventario.AddMovimiento(CveAlmacenDevolucion, CveConceptoDevolucion, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=-1)
@@ -4518,30 +4525,15 @@ Namespace Modelos
End If
End If
End If
- 'Else
- ' 'UTILIZA LA DEVOLUCION YA REALIZADA
- ' Dim CveConceptoDevolucion As Integer = 18 'DEVOLUCION DEL CLIENTE
- ' If UsuarioActual.Empresa.Funcionalidad(575) = "1" Then
- ' CveConceptoDevolucion = 41 'DEVOLUCIÓN DEL CLIENTE DIRECTA
- ' End If
-
- ' If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
- ' CveMovimientoDevolucion = ObjInventario.DtResultados.FiltroPrimeroValor("CveMovimiento", $"CvePS IS NULL AND CveConcepto = {CveConceptoDevolucion}").ToEntero()
- ' Else
- ' ErrorCancelar = True
- ' MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
- ' End If
End If
'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
'SI ES DEVOLUCION DEL CLIENTE DEBE REGRESAR A ENTREGA POR ADELANTADO
- If CveConceptoDevolucion = 18 Then
- If Not ErrorCancelar AndAlso RevivirRemisiones Then
- If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimientoDevolucion, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al generar los movimientos de devolución a remisión"
- End If
+ If Not ErrorCancelar AndAlso CveConceptoDevolucion = 18 AndAlso RevivirRemisiones Then
+ If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimientoDevolucion, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al generar los movimientos de devolución a remisión"
End If
End If
@@ -4556,12 +4548,45 @@ Namespace Modelos
Next
+ 'VERIFICA LOS MOVIMIENTOS DE DEVOLUCION YA GENERADOS QUE TENGAN EXISTENCIA EN (ENTREGA POR ADELANTADO)
+ If Not ErrorCancelar Then
+ If ObjInventario.GetMovimientosDevoluciones(CveVenta, UsuarioActual.CveEmpresa) Then
+ DtDevoluciones = ObjInventario.DtResultados.FiltraParametros("CveTipoAlmacen = 10")
+ Else
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ End If
+ End If
+
+ 'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN GENERAL
+ If Not ErrorCancelar AndAlso ListaRemisionesCancelar IsNot Nothing AndAlso ListaRemisionesCancelar.Count > 0 Then
+ For Each CveRemision As Integer In ListaRemisionesCancelar
+ For Each RowDevolucion As DataRow In DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}", DistinctColumns:={"CveRemision", "CveAlmacen", "CveAlmacenDestino"}).Rows
+
+ Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}")
+
+ CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
+ CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
+
+ 'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN GENERAL
+ If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision, ObjVentas, ObjInventario) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
+ Exit For
+ End If
+
+ DtDevRemision.Dispose()
+ Next
+ Next
+ End If
+
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
+ 'VERIFICAR MOVIMIENTOS DE APARTADOS
If Not ErrorCancelar Then
If Not GeneraMovimientosApartados(ObjInventario) Then
ErrorCancelar = True
@@ -4957,6 +4982,69 @@ Namespace Modelos
Return Not ErrorCancelar
End Function
+ Private Function CancelarMovimientosRemision(CveRemision As Integer, CveAlmacen As Integer, CveAlmacenDestino As Integer, DtMovDetalle As DataTable, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios) As Boolean
+ Dim ErrorCancelar As Boolean = False
+
+ Dim CveMovimientoSalidaDevRem As Integer = 0
+ Dim FolioMovimientoSalidaDevRem As Integer = 0
+
+ Dim CveMovimientoEntradaDevRem As Integer = 0
+ Dim FolioMovimientoEntradaDevRem As Integer = 0
+
+ 'SALIDA DE (ENTREGA POR ADELANTADO)
+ CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacen, 8, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenDestino)
+ FolioMovimientoSalidaDevRem = ObjInventario.Folio
+
+ 'ENTRADA A (ALMACEN GENERAL)
+ CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDestino)
+ FolioMovimientoEntradaDevRem = ObjInventario.Folio
+
+ If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
+ ErrorCancelar = True
+ End If
+
+ 'SALIDA DE (ENTREGA POR ADELANTADO)
+ If Not ErrorCancelar Then
+ For Each DrRem As DataRow In DtMovDetalle.FiltraParametros($"CveRemision = {CveRemision}").Rows
+ Dim CveVentaDetalleRem = DrRem("CveVentaDetalleRemision").ToString.ToEntero
+ Dim CantidadRem = DrRem("Cantidad").ToString.ToDecimal
+
+ If Not CveVentaDetalleRem > 0 Then
+ ErrorCancelar = True
+ Exit For
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, DrRem("Cantidad").ToString.ToDecimal, DrRem("CveUM").ToString.ToEntero, DrRem("CvePS").ToString.ToEntero, DrRem("PU").ToString.ToDecimal, DrRem("CveActivoFijo").ToString.ToEntero, -1, DrRem("SerieLote").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=DrRem("Lote").ToString, Batch:=DrRem("Batch").ToString) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+
+ If ErrorCancelar Then
+ Exit For
+ End If
+ Next
+ End If
+
+ 'ENTRADA A (ALMACEN GENERAL)
+ If Not ErrorCancelar Then
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaDevRem, UsuarioActual.CveEmpresa) Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+ Next
+ End If
+ End If
+
+
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveRemision) Then
+ ErrorCancelar = True
+ End If
+
+ Return Not ErrorCancelar
+ End Function
+
Private Function GeneraMovimientosApartados(ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False
If Not ErrorCancelar Then
diff --git a/CRM/CatEtapasProceso.aspx b/CRM/CatEtapasProceso.aspx
index 27ce1e6dd..8dc6acbfb 100644
--- a/CRM/CatEtapasProceso.aspx
+++ b/CRM/CatEtapasProceso.aspx
@@ -23,8 +23,8 @@