- SMS -cancelar una remisión y liberar en OS
This commit is contained in:
@@ -1337,7 +1337,7 @@ Public Class ClsOS
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
Public Function UpdateVentaOS(CveVenta As Integer, CveOS As Integer, Optional Paciente As String = "-1", Optional Episodio As String = "-1", Optional FolioAdicional As String = "") As Boolean
|
||||
Public Function UpdateVentaOS(CveVenta As Integer, CveOS As Integer, CveEmpresa As Integer, Optional Paciente As String = "-1", Optional Episodio As String = "-1", Optional FolioAdicional As String = "") As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
DataAdapter("PA_OS_UpdateVentaOS")
|
||||
@@ -1345,6 +1345,7 @@ Public Class ClsOS
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
|
||||
.Add("@CveOS", SqlDbType.Int).Value = CveOS
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
.Add("@Paciente", SqlDbType.VarChar).Value = Paciente
|
||||
.Add("@Episodio", SqlDbType.VarChar).Value = Episodio
|
||||
.Add("@FolioAdicional", SqlDbType.VarChar).Value = FolioAdicional
|
||||
@@ -1361,6 +1362,28 @@ Public Class ClsOS
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function LiberarVentaOS(CveVenta As Integer, CveEmpresa As Integer, Optional CveOS As Integer = -1) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
DataAdapter("PA_OS_LiberarVentaOS")
|
||||
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
|
||||
.Add("@CveOS", SqlDbType.Int).Value = CveOS
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
End With
|
||||
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al guardar la venta en la Orden de Servicio.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||
End Try
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function GetOrdenesServicioDevolucionMaterial(CveOS As Integer, CveVenta As Integer, Opcion As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_OS_OrdenesServicioDevolucionMaterialGet")
|
||||
|
||||
@@ -2353,7 +2353,7 @@ Namespace Modelos
|
||||
|
||||
'Si viene de OS, Se guarda CveVenta en OS
|
||||
If CveOS > 0 Then
|
||||
If Not ObjOS.UpdateVentaOS(factura.CveVenta, CveOS) Then
|
||||
If Not ObjOS.UpdateVentaOS(factura.CveVenta, CveOS, UsuarioActual.CveEmpresa) Then
|
||||
ErrorList.Add("Ocurrió un error al guardar la venta en Ordenes de Servicio")
|
||||
End If
|
||||
End If
|
||||
@@ -5995,6 +5995,7 @@ Namespace Modelos
|
||||
Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL())
|
||||
Dim ObjAcum As New ClsAcumuladores(ObjVentas.IniciaTransacSQL())
|
||||
Dim ObjClientes As New ClsClientes(ObjVentas.IniciaTransacSQL())
|
||||
Dim ObjOS As New ClsOS(ObjVentas.IniciaTransacSQL())
|
||||
|
||||
Try
|
||||
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
||||
@@ -6225,50 +6226,50 @@ Namespace Modelos
|
||||
Dim TotalCostoAcumulado As Decimal = 0
|
||||
Dim cont As Integer = 1
|
||||
|
||||
Dim CvePrePolizaDev As Integer = ObjConta.AddPrePolizas("Modelos/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")}").RoundAD()
|
||||
TotalCostoAcumulado += ValorInventario
|
||||
Dim CvePrePolizaDev As Integer = ObjConta.AddPrePolizas("Modelos/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")}").RoundAD()
|
||||
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)
|
||||
'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
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, False, Multiplicador * ValorInventario, Multiplicador * ValorInventario, 69, SerieFolio, SerieFolio, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
cont += 1
|
||||
Next
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, False, Multiplicador * ValorInventario, Multiplicador * ValorInventario, 69, SerieFolio, SerieFolio, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
cont += 1
|
||||
Next
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, Multiplicador * TotalCosto, Multiplicador * TotalCosto, 68, SerieFolio, SerieFolio, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, Multiplicador * TotalCosto, Multiplicador * TotalCosto, 68, SerieFolio, SerieFolio, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
|
||||
'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", "Egs", "Dev") Then
|
||||
AutoConta = False
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar AndAlso ObjConta.ValidacionesPrePoliza(CvePrePolizaDev, UsuarioActual) Then
|
||||
If ObjConta.ValorPolizaDescuadre > 0 Then
|
||||
GuardaLogAD($"Modelos/RecepcionEntrega | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
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", "Egs", "Dev") Then
|
||||
AutoConta = False
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar AndAlso ObjConta.ValidacionesPrePoliza(CvePrePolizaDev, UsuarioActual) Then
|
||||
If ObjConta.ValorPolizaDescuadre > 0 Then
|
||||
GuardaLogAD($"Modelos/RecepcionEntrega | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
|
||||
If AutoConta And Not ErrorCancelar Then
|
||||
If Not ObjConta.ContabilizarPrePoliza(CvePrePolizaDev, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al contabilizar la prepoliza."
|
||||
End If
|
||||
If AutoConta And Not ErrorCancelar Then
|
||||
If Not ObjConta.ContabilizarPrePoliza(CvePrePolizaDev, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al contabilizar la prepoliza."
|
||||
End If
|
||||
End If
|
||||
' Else
|
||||
'ErrorCancelar = True
|
||||
'MensajeError = "Ocurrió un Error al ingresar las prepolizas"
|
||||
@@ -6556,6 +6557,8 @@ Namespace Modelos
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'CANCELA CONTRATOS
|
||||
If Not ErrorCancelar Then
|
||||
If ObjFactura.CveContrato > 0 AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant") Then
|
||||
@@ -6613,6 +6616,16 @@ Namespace Modelos
|
||||
End If
|
||||
End If
|
||||
|
||||
'EMPRESA HOSPITALARIA - SI SE CANCELA UNA REMISIÓN DEBE DE DESVINCULARSE DE LA OS y retornarle el estatus en proceso
|
||||
If Not ErrorCancelar AndAlso UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso ObjFactura.TipoDocto = "Rem" Then
|
||||
|
||||
If Not ObjOS.LiberarVentaOS(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "No se pudo actualizar el estatus de almacen del pedido"
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'POLIZA DE CANCELACION
|
||||
'If Not ErrorCancelar Then
|
||||
' If UsuarioActual.Empresa.UsaAC Then
|
||||
@@ -7080,13 +7093,14 @@ Namespace Modelos
|
||||
Dim CveMovimientoEntradaDevRem As Integer = 0
|
||||
Dim FolioMovimientoEntradaDevRem As Integer = 0
|
||||
Dim Fecha As DateTime = ClsPaginas.NowADS()
|
||||
Dim tCveOS As Integer = DtMovDetalle.MAX("CveOS").ToEntero
|
||||
|
||||
'SALIDA DE (ENTREGA POR ADELANTADO)
|
||||
CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacen, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR1")
|
||||
CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacen, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR1", CveOS:=tCveOS)
|
||||
FolioMovimientoSalidaDevRem = ObjInventario.Folio
|
||||
|
||||
'ENTRADA A (ALMACEN GENERAL)
|
||||
CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR2")
|
||||
CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Mod/CancExAR2", CveOS:=tCveOS)
|
||||
FolioMovimientoEntradaDevRem = ObjInventario.Folio
|
||||
|
||||
If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
|
||||
|
||||
Reference in New Issue
Block a user