Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -671,9 +671,7 @@ Namespace Modelos
|
||||
Try
|
||||
'DESCOMENTAR
|
||||
If RegistrarNCAmortizacion(ObjVentas, ObjConta, ObjInventario, ObjContr, ObjContPaq, FacturaDevolucion, ObjBancos, Nothing, Nothing) Then
|
||||
|
||||
Obj2.Add(FacturaDevolucion)
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ErrorList.Add("No se pudo generarse la nota de crédito de amortización")
|
||||
@@ -3867,7 +3865,6 @@ Namespace Modelos
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
|
||||
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=Me.RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveEstatusFacturaAsignado:=CveEstatus, FechaCancelacion:=FechaCancelacion.ToString("dd/MM/yyyy hh:mm:ss"), AcuseCancelacion:=AcuseCancelacion)
|
||||
End Function
|
||||
''' <summary>
|
||||
@@ -3884,10 +3881,6 @@ Namespace Modelos
|
||||
''' <param name="ListaRemisionesCancelar"></param>
|
||||
''' <returns></returns>
|
||||
Public Function CancelarFactura(RealizarDevolucionAlmacen As Boolean, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing) As MCancelacionVentaMensaje
|
||||
|
||||
|
||||
|
||||
|
||||
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar)
|
||||
End Function
|
||||
|
||||
@@ -4232,7 +4225,10 @@ Namespace Modelos
|
||||
'DEVOLUCION DE ALMACEN
|
||||
If Not ErrorCancelar AndAlso TieneAlmacen Then
|
||||
Dim TieneSalida As Boolean = False
|
||||
Dim DtExistencias As New DataTable
|
||||
Dim DtInventario As DataTable = Nothing
|
||||
Dim DtMovimientos As DataTable = Nothing
|
||||
Dim DtExistencias As DataTable = Nothing
|
||||
Dim DtRemisionesFacturadas As DataTable = Nothing
|
||||
|
||||
'CUANDO SE VAYA A REALIZAR LA DEVOLUCION AQUI DEBE MARCALA PARA NO SOLICITARLA DE NUEVO, SI NO LA SOLICITARA
|
||||
If ObjFactura.EsDevolucionVenta = 0 Then
|
||||
@@ -4244,140 +4240,201 @@ Namespace Modelos
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
Dim Filtro As String
|
||||
Dim Filtro As String = ""
|
||||
Select Case ObjFactura.TipoDocto
|
||||
Case "Ing", "Ped"
|
||||
Filtro = "CveConcepto = 3"
|
||||
Case "Dev"
|
||||
Filtro = "CveConcepto = 3"
|
||||
Case "Ing", "Ped", "Dev"
|
||||
Filtro = "CveConcepto IN (3, 40)"
|
||||
Case Else
|
||||
Filtro = "CveConcepto = 9"
|
||||
End Select
|
||||
|
||||
'CARGA REMISIONES DE LA VENTA DEVUELTA
|
||||
If ObjInventario.GetDevolucionRemisionesFacturadas(CveVenta) Then
|
||||
DtRemisionesFacturadas = ObjInventario.DtResultados.FiltraParametros("CantidadAlmacen > 0")
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
|
||||
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
DtExistencias = ObjInventario.DtResultados.FiltraParametros($"CvePS IS NOT NULL AND {Filtro} AND CveTipoPS = 2")
|
||||
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."
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar AndAlso TieneSalida Then
|
||||
|
||||
Dim ConceptoMovimiento = 18 'DEVOLUCION DEL CLIENTE
|
||||
Dim CveMovimiento As Integer = 0
|
||||
Dim Folio As Integer = 0
|
||||
|
||||
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen Then
|
||||
Dim CveAlmacenDevolucion = ObjFactura.CveAlmacenDevolucion
|
||||
'VERIFICAR SI YA TIENE UNA 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)
|
||||
CveMovimiento = ObjInventario.AddMovimiento(CveAlmacenDevolucion, ConceptoMovimiento, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=-1)
|
||||
Folio = ObjInventario.Folio
|
||||
|
||||
If CveMovimiento > 0 Then
|
||||
For Each Dr As DataRow In DtExistencias.Rows
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, SerieLote:=Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
For Each RowMovimiento As DataRow In DtMovimientos.Rows
|
||||
Dim CveConceptoDevolucion As Integer = -1
|
||||
Dim CveAlmacenDevolucion As Integer = -1
|
||||
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()
|
||||
|
||||
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
|
||||
Next
|
||||
Else
|
||||
MensajeError = "Ocurrió un error al agregar el movimiento"
|
||||
ErrorCancelar = True
|
||||
|
||||
End Select
|
||||
|
||||
Dim CveMovimientoDevolucion As Integer = 0
|
||||
Dim Folio As Integer = 0
|
||||
|
||||
'VERIFICAR SI YA TIENE UNA 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)
|
||||
Folio = ObjInventario.Folio
|
||||
|
||||
If CveMovimientoDevolucion > 0 Then
|
||||
For Each Dr As DataRow In DtExistencias.FiltraParametros($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}").Rows
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoDevolucion, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, SerieLote:=Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
MensajeError = "Ocurrió un error al agregar el movimiento"
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
|
||||
'GENERA PREPOLIZA DEL MOVIMIENTO DE DEVOLUCION
|
||||
If Not ErrorCancelar Then
|
||||
Dim DtCostos As DataTable = Nothing
|
||||
Dim ValorInventario As Decimal = 0
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoDevolucion, UsuarioActual.CveEmpresa) Then
|
||||
DtCostos = ObjInventario.DtResultados
|
||||
|
||||
Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
|
||||
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero
|
||||
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero
|
||||
Dim IdCtaContable As Integer = 0
|
||||
Dim CveCuenta As Integer = 0
|
||||
If tmpCostos.Rows.Count > 0 Then
|
||||
|
||||
If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
Dim Fecha As Date = Now
|
||||
Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
|
||||
Dim ClienteNombre As String = ObjVentas.DtResultados(0)("ClienteNombre").ToString
|
||||
Dim SerieFolio As String = ObjVentas.DtResultados(0)("SerieFolio").ToString
|
||||
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL()
|
||||
Dim TotalCostoAcumulado As Decimal = 0
|
||||
Dim cont As Integer = 1
|
||||
|
||||
Dim CvePrePolizaDev As Integer = ObjConta.AddPrePolizas("Inventario/RecepcionEntrega", 4, TotalCosto, TotalCosto, 1, Fecha, ClienteNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
'SE AGREGA MOVIMIENTO SEPARADO POR LA CUENTA DE VENTAS (ER)
|
||||
For Each RowInv As DataRow In tmpCostos.Rows
|
||||
ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL()
|
||||
TotalCostoAcumulado += ValorInventario
|
||||
|
||||
'CUANDO ES EL ÚLTIMO MOVIMIENTO Y HAY DIFERENCIAS EN LOS IMPORTES
|
||||
If cont = DtCostos.Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
|
||||
ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
|
||||
End If
|
||||
|
||||
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, False, -1 * ValorInventario, SerieFolio, 69, SerieFolio, Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
|
||||
cont += 1
|
||||
Next
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, -1 * TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
|
||||
'AUTOCONTA - EL MOVIMIENTO 1 ES EL DE VENTA
|
||||
|
||||
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
||||
|
||||
If UsuarioActual.CveEmpresa = 119 AndAlso ObjFactura.TipoDocto.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "NC") Then
|
||||
AutoConta = False
|
||||
End If
|
||||
|
||||
If AutoConta And Not ErrorCancelar Then
|
||||
|
||||
If IdCtaContable > 0 Then
|
||||
If Not ObjConta.ContabilizarPrePoliza(CvePrePolizaDev, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjAC) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al contabilizar la prepoliza."
|
||||
End If
|
||||
Else
|
||||
Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un Error al ingresar las prepolizas"
|
||||
End If
|
||||
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
|
||||
|
||||
'GENERA PREPOLIZA DEL MOVIMIENTO DE DEVOLUCION
|
||||
If Not ErrorCancelar Then
|
||||
Dim DtCostos As DataTable = Nothing
|
||||
Dim ValorInventario As Decimal = 0
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
|
||||
DtCostos = ObjInventario.DtResultados
|
||||
|
||||
Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
|
||||
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero
|
||||
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero
|
||||
Dim IdCtaContable As Integer = 0
|
||||
Dim CveCuenta As Integer = 0
|
||||
If tmpCostos.Rows.Count > 0 Then
|
||||
|
||||
If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
Dim Fecha As Date = Now
|
||||
Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
|
||||
Dim ClienteNombre As String = ObjVentas.DtResultados(0)("ClienteNombre").ToString
|
||||
Dim SerieFolio As String = ObjVentas.DtResultados(0)("SerieFolio").ToString
|
||||
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL()
|
||||
Dim TotalCostoAcumulado As Decimal = 0
|
||||
Dim cont As Integer = 1
|
||||
|
||||
Dim CvePrePolizaDev As Integer = ObjConta.AddPrePolizas("Inventario/RecepcionEntrega", 4, TotalCosto, TotalCosto, 1, Fecha, ClienteNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
'SE AGREGA MOVIMIENTO SEPARADO POR LA CUENTA DE VENTAS (ER)
|
||||
For Each RowInv As DataRow In tmpCostos.Rows
|
||||
ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL()
|
||||
TotalCostoAcumulado += ValorInventario
|
||||
|
||||
'CUANDO ES EL ÚLTIMO MOVIMIENTO Y HAY DIFERENCIAS EN LOS IMPORTES
|
||||
If cont = DtCostos.Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
|
||||
ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
|
||||
End If
|
||||
|
||||
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, False, -1 * ValorInventario, SerieFolio, 69, SerieFolio, Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
|
||||
cont += 1
|
||||
Next
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, -1 * TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
|
||||
'AUTOCONTA - EL MOVIMIENTO 1 ES EL DE VENTA
|
||||
|
||||
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
||||
|
||||
If UsuarioActual.CveEmpresa = 119 AndAlso ObjFactura.TipoDocto.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "NC") Then
|
||||
AutoConta = False
|
||||
End If
|
||||
|
||||
If AutoConta And Not ErrorCancelar Then
|
||||
|
||||
If IdCtaContable > 0 Then
|
||||
If Not ObjConta.ContabilizarPrePoliza(CvePrePolizaDev, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjAC) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al contabilizar la prepoliza."
|
||||
End If
|
||||
Else
|
||||
Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un Error al ingresar las prepolizas"
|
||||
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
|
||||
End If
|
||||
End If
|
||||
|
||||
Else
|
||||
'UTILIZA LA DEVOLUCION YA REALIZADA
|
||||
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
CveMovimiento = ObjInventario.DtResultados.FiltroPrimeroValor("CveMovimiento", $"CvePS IS NULL AND CveConcepto = 18").ToEntero()
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
|
||||
'AGREGA BITACORA A VENTA
|
||||
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then
|
||||
Dim MensajeBitacora = "Devuelta"
|
||||
If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: <a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a>", CveMovimientoDevolucion, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
|
||||
MensajeError = "Ocurrió un error al agregar la bitacora."
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
|
||||
If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
|
||||
@@ -4385,14 +4442,6 @@ Namespace Modelos
|
||||
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
|
||||
End If
|
||||
|
||||
'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
|
||||
If Not ErrorCancelar AndAlso RevivirRemisiones Then
|
||||
If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento, 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
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not GeneraMovimientosApartados(ObjInventario) Then
|
||||
ErrorCancelar = True
|
||||
@@ -4408,15 +4457,6 @@ Namespace Modelos
|
||||
End If
|
||||
End If
|
||||
|
||||
'AGREGA BITACORA A VENTA
|
||||
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimiento > 0 Then
|
||||
Dim MensajeBitacora = "Devuelta"
|
||||
If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: <a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a>", CveMovimiento, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
|
||||
MensajeError = "Ocurrió un error al agregar la bitacora."
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
9047
Empresas/57/Formatos/Factura.rdlc
Normal file
9047
Empresas/57/Formatos/Factura.rdlc
Normal file
File diff suppressed because it is too large
Load Diff
@@ -4190,7 +4190,7 @@ Partial Class Ventas
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If GvNC.Rows.Count > 0 Then
|
||||
ImgAntiPend.Visible = False
|
||||
@@ -22668,23 +22668,23 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
'VERIFICA QUE LAS FACTURAS TENGAN EL MISMO ESTATUS EN ALMACEN (NO MEZCLAR REMISIONES 'SURTIDAS' CON 'NO SURTIDAS')
|
||||
If dtSeleccionadas.COUNT("Surtido", "Surtido = 'Si'") > 0 AndAlso dtSeleccionadas.COUNT("Surtido", "Surtido = 'No'") > 0 Then
|
||||
Dim SbRem As New StringBuilder
|
||||
SbRem.Append("Solo debe seleccionar remisiones con el mismo estatus de almacen. Por favor verifique y vuelva a intentar.</br>")
|
||||
'If dtSeleccionadas.COUNT("Surtido", "Surtido = 'Si'") > 0 AndAlso dtSeleccionadas.COUNT("Surtido", "Surtido = 'No'") > 0 Then
|
||||
' Dim SbRem As New StringBuilder
|
||||
' SbRem.Append("Solo debe seleccionar remisiones con el mismo estatus de almacen. Por favor verifique y vuelva a intentar.</br>")
|
||||
|
||||
SbRem.Append("<b>Remisiones Surtidas:</b></br>")
|
||||
For Each RowSurtida As DataRow In dtSeleccionadas.FiltraParametros("Surtido = 'Si'", DistinctColumns:={"Folio"}).Rows
|
||||
SbRem.AppendFormat("{0}</br>", RowSurtida("Folio"))
|
||||
Next
|
||||
' SbRem.Append("<b>Remisiones Surtidas:</b></br>")
|
||||
' For Each RowSurtida As DataRow In dtSeleccionadas.FiltraParametros("Surtido = 'Si'", DistinctColumns:={"Folio"}).Rows
|
||||
' SbRem.AppendFormat("{0}</br>", RowSurtida("Folio"))
|
||||
' Next
|
||||
|
||||
SbRem.Append("<b>Remisiones No Surtidas:</b></br>")
|
||||
For Each RowSurtida As DataRow In dtSeleccionadas.FiltraParametros("Surtido = 'No'", DistinctColumns:={"Folio"}).Rows
|
||||
SbRem.AppendFormat("{0}</br>", RowSurtida("Folio"))
|
||||
Next
|
||||
' SbRem.Append("<b>Remisiones No Surtidas:</b></br>")
|
||||
' For Each RowSurtida As DataRow In dtSeleccionadas.FiltraParametros("Surtido = 'No'", DistinctColumns:={"Folio"}).Rows
|
||||
' SbRem.AppendFormat("{0}</br>", RowSurtida("Folio"))
|
||||
' Next
|
||||
|
||||
Alert(SbRem.ToString(), TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
' Alert(SbRem.ToString(), TipoMensaje.MsgAdvertencia)
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
DdlMoneda.SelectedValue = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $"Abreviatura = '{dtSeleccionadas.FiltroPrimeroValor("Abreviatura")}'")
|
||||
DdlMoneda.Enabled = False
|
||||
|
||||
Reference in New Issue
Block a user