Autorizacion de cotizaciones, saldo de almacen en refacturacion

This commit is contained in:
2021-08-28 11:19:27 -07:00
parent f88b519507
commit d377739ac9

View File

@@ -1834,6 +1834,15 @@ Partial Class Ventas
ViewState("CveEstatus") = value
End Set
End Property
Private Property CveEstatusCotizacion As Integer
Get
Return (IfNull(ViewState("CveEstatusCotizacion"), "-1", ViewState("CveEstatusCotizacion"))).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("CveEstatusCotizacion") = value
End Set
End Property
Private Property DiasCredito As Integer
Get
Return ViewState("DiasCredito").ToString().ToEntero()
@@ -2939,6 +2948,18 @@ Partial Class Ventas
End If
End If
If Request("CveCotizacion") IsNot Nothing AndAlso IfNull(Request("CveCotizacion"), 0).ToString().ToEntero() > 0 Then
If UsuarioActual.Empresa.Funcionalidad(135).Contiene("1", "2") Then
'VERIFICA SI NO ESTA AUTORIZADA
If CveEstatusCotizacion <> 8 Then
BtnEmitirImprimir.Enabled = False
BtnEmitirImprimir.Visible = False
Alert("La cotización no esta autorizada", TipoMensaje.MsgAdvertencia)
End If
End If
End If
End If
''EN REALIDAD SE OCUPAN ESTAS COSAS DENTRO DEL POSTABCK ???
@@ -4426,6 +4447,8 @@ Partial Class Ventas
' BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True)
' BtnsFacturar.Visible = True
'End If
ElseIf DbRowVenta("TipoDocto").ToString() = "Cot" AndAlso CveCotizacion > 0 Then
CveEstatusCotizacion = DbRowVenta("CveEstatusFactura").ToString().ToEntero()
End If
@@ -8207,33 +8230,56 @@ Partial Class Ventas
If Not ObjInventario.ActualizarEsDevolucionVenta(ObjFactura.CveVenta, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
End If
'MARCAR VENTA ANTERIOR
If Not ObjInventario.ActualizarEsDevolucionVenta(CveDevolucion, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
'MARCA LO PENDIENTE A NIVEL DETALLE
Dim DtMovDetalles As DataTable = Nothing
If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then
DtMovDetalles = ObjInventario.DtResultados.Copy()
'MARCAR VENTA ANTERIOR
If Not ObjInventario.ActualizarEsDevolucionVenta(CveDevolucion, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
Else
ErrorList.Add("No se pudo verificar los movimientos de almacen de la factura")
End If
'MARCA LO PENDIENTE A NIVEL DETALLE
Dim DtMovDetalles As DataTable = Nothing
If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then
DtMovDetalles = ObjInventario.DtResultados.Copy()
Else
ErrorList.Add("No se pudo verificar los movimientos de almacen de la factura")
End If
If DtMovDetalles IsNot Nothing Then
For Each Row As DataRow In DtMovDetalles.Rows
Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToDecimal()
If SaldoAlmacen < 0 Then
If Not ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) Then
ErrorList.Add("No se pudo actualizar el movimiento de almacen de la factura")
'MARCAR VENTA ANTERIOR
If Not ObjInventario.ActualizarEsDevolucionVenta(CveDevolucion, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
If DtMovDetalles IsNot Nothing Then
Dim CantidadTotal As Decimal = 0
Dim TotalSalida As Decimal = 0
For Each Row As DataRow In DtMovDetalles.Rows
Dim Cantidad As Decimal = Row("Cantidad").ToString().ToDecimal()
Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToDecimal()
Cantidad += Cantidad
If SaldoAlmacen < 0 AndAlso Cantidad = Math.Abs(SaldoAlmacen) Then
TotalSalida += Math.Abs(SaldoAlmacen)
If Not ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) Then
ErrorList.Add("No se pudo actualizar el movimiento de almacen de la factura")
End If
End If
Next
'SI SE VERIFICA QUE TODO ESTA SURTIDO, SE MARCA TODA LA FACTURA
If CantidadTotal = Total Then
If Not ObjInventario.ActualizarEsDevolucionVenta(ObjFactura.CveVenta, 2) Then
ErrorList.Add("No se pudo Cancelar el movimiento de almacen de la Factura")
End If
End If
Next
End If
DtMovDetalles.Dispose()
End If
DtMovDetalles.Dispose()
End If
End If