Correcion poliza virtual, tarea programada de estados de cuenta del cliente

This commit is contained in:
2019-12-13 18:58:14 -07:00
parent ee1e71554d
commit 5067275d93
2 changed files with 525 additions and 151 deletions

View File

@@ -9,6 +9,7 @@ Imports Microsoft.Reporting.WebForms
Imports System.Security.Cryptography.X509Certificates
Imports System.Globalization
Imports System.Net.Http
Imports Newtonsoft.Json.Linq
Partial Class Ventas
Inherits ClsPaginas
@@ -6733,13 +6734,11 @@ Partial Class Ventas
End If
End If
'ENVIAR POLIZA VIRTUAL
If ErrorList.Count = 0 Then
If UsuarioActual.Empresa.Funcionalidad(576) = "1" Then
If Not GeneraPolizaVentaWS(ObjVentas, ObjFactura) Then
ErrorList.Add("Ocurrió un error al registrar los movimientos de almacén del contrato de consignación")
End If
End If
End If
'If ErrorList.Count = 0 Then
' If UsuarioActual.Empresa.Funcionalidad(576) = "1" Then
' GeneraPolizaVentaWS(ObjFactura)
' End If
'End If
If ObjFactura.CveVenta > 0 AndAlso ErrorList.Count = 0 Then
@@ -15309,7 +15308,6 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(575) = "1" Then
'Le damos salida normal
If ConSalida Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 40, CveMoneda, CveRemision, AplicaMovimientoDetalleEntrada:=AplicaMovimientoDetalleEntrada, MovimientoPrePoliza:=True, ObjConta:=ObjConta) > 0
If Not GeneroMovimientoAlmacen Then
@@ -15319,14 +15317,9 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
If Not GeneroMovimientoAlmacen Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacenVirtual(ObjInventario, ObjFactura) > 0
If Not GeneroMovimientoAlmacen Then
OcurrioError = True
End If
OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura)
End If
End If
End If
Else
'Le damos salida de apartado por traspaso
@@ -15351,12 +15344,7 @@ Partial Class Ventas
If ConSalida AndAlso Not OcurrioError Then
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacenVirtual(ObjInventario, ObjFactura) > 0
If Not GeneroMovimientoAlmacen Then
OcurrioError = True
End If
OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura)
End If
If Not OcurrioError Then
@@ -15612,119 +15600,61 @@ Partial Class Ventas
'Return Not OcurrioError
End Function
Private Function GenerarMovimientoAlmacenVirtual(ByRef ObjInventario As ClsInventarios, ObjFactura As Modelos.Factura) As Integer
Private Function GenerarMovimientoAlmacenVirtual(CveRemision As Integer, ByRef ObjInventario As ClsInventarios, ObjFactura As Modelos.Factura) As Boolean
Dim OcurrioError As Boolean = False
Dim CveMovimientoVirtual As Integer = -1
Dim DtPSVirtual As New DataTable("DtTamanios")
DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal)))
DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
Try
Dim CveMovimientoVirtual As Integer = -1
Dim CveAlmacenVirtual As Integer = -1
Dim CveConceptoMovimientoVirtual As Integer = 3
Dim DtPSVirtual As DataTable = Nothing
Dim DtTamanios As DataTable = Nothing
Dim CveMovimientoEntradaDev As Integer = -1
Dim DtTamanios As DataTable = Nothing
Dim ObjAcumuladores As New ClsAcumuladores
If ObjAcumuladores.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DtTamanios = ObjAcumuladores.DtResultados.Copy()
End If
ObjAcumuladores.Dispose()
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 2 AND CveVenta > 0")
Dim CveConceptoMovimientoVirtual As Integer = 3
Dim CveAlmacenVirtual As Integer = -1
For Each GvRow As DataRow In ObjFactura.DtDetalle.Rows
For Each Tam As DataRow In DtTamanios.Rows
If Tam("CveTamaño").ToString() = GvRow("CveTamaño").ToString() Then
Dim CvePSCargo = Tam("CvePSCargo").ToString().ToEntero()
Dim Row As DataRow = DtPSVirtual.NewRow()
Row("CvePS") = CvePSCargo
Row("Cantidad") = GvRow("Cantidad").ToString().ToDecimal()
Row("PU") = 0
Row("CveUM") = GvRow("CveUM").ToString().ToEntero()
DtPSVirtual.Rows.Add(Row)
End If
Next
Next
CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={ObjFactura.CveSubProyecto}").ToEntero()
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/E")
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
OcurrioError = True
Exit For
End If
Next
CveMovimientoEntradaDev = RowMovimiento("CveMovimiento").ToString().ToEntero()
CveAlmacenVirtual = RowMovimiento("CveAlmacen").ToString().ToEntero()
Else
OcurrioError = True
End If
Else
'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
If ObjInventario.GetMovimientosDetalle(CveMovimientoEntradaDev, UsuarioActual.CveEmpresa) Then
DtPSVirtual = ObjInventario.DtResultados.Copy()
Else
OcurrioError = True
End If
If Not OcurrioError AndAlso DtPSVirtual.Rows.Count > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/V")
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
OcurrioError = True
Exit For
End If
Next
Else
OcurrioError = True
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al generar el almacen virtual.", ex)
OcurrioError = True
End If
End Try
If DtPSVirtual.Rows.Count = 0 Then
OcurrioError = True
End If
'Dim ContadorMovtosDetalles = 0
'Dim DtMovDetalle As DataTable = Nothing
'If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
' DtMovDetalle = ObjInventario.DtResultados.Copy()
'End If
''Creamos el movimiento
'Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, 2, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
'If CveMovimientoInventario > 0 Then
' 'Agregamos los detalles
' For Each MovDet As DataRow In DtMovDetalle.Rows
' Dim Cantidad = MovDet("Cantidad").ToString.ToDecimal
' Dim CveUnidad As Integer = MovDet("CveUM").ToString.ToEntero
' Dim PU As Decimal = MovDet("PU").ToString.ToDecimal
' Dim CveProducto As Integer = MovDet("CvePS").ToString.ToEntero
' Dim SerieLote As String = MovDet("SerieLote").ToString
' If Cantidad < 0 Then
' Alert("Ocurrió un Error al generar los movimientos de almacén. Por favor comuniquese con atención SIG.", TipoMensaje.MsgError)
' OcurrioError = True
' Exit For
' End If
' If ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, PU, -1, SerieLote:=SerieLote) Then
' ContadorMovtosDetalles += 1
' Else
' OcurrioError = True
' Exit For
' End If
' Next
' 'VALIDA QUE SE HALLAN AGREGADO DETALLES AL MOVIMIENTO
' If ContadorMovtosDetalles = 0 Then
' OcurrioError = True
' End If
'Else
' OcurrioError = True
'End If
If OcurrioError Then
Return -1
Else
Return CveMovimientoVirtual
End If
Return Not OcurrioError
End Function
Private Function SalidaAlmacenMateriales(ByRef ObjInventario As ClsInventarios, CveOS As Integer, ByRef ObjConta As ClsContabilidad, ConSalida As Boolean, ConceptoMovimiento As Integer) As Boolean
@@ -23810,12 +23740,13 @@ Partial Class Ventas
CargaRNC()
RegistraScript("$('#ModalAplicarRemisionesNC').modal({backdrop: 'static', keyboard: false });")
End Sub
Protected Function GeneraPolizaVentaWS(ByRef ObjVentas As ClsVentas, ObjFactura As Modelos.Factura) As Boolean
Protected Sub GeneraPolizaVentaWS(ObjFactura As Modelos.Factura)
Dim DtUsados As DataTable = Nothing
If ObjVentas.GetVentasUsadosDetalle(ObjFactura.CveVenta) Then
DtUsados = ObjVentas.DtResultados.Copy()
Dim ObjAcum As New ClsAcumuladores
If ObjAcum.GetGarantiasDetalle(ObjFactura.CveVenta) Then
DtUsados = ObjAcum.DtResultados.Copy()
End If
ObjAcum.Dispose()
For Each Row As DataRow In DtUsados.Rows
Dim obj As New Modelos.MPolizaVentaWS
@@ -23842,7 +23773,7 @@ Partial Class Ventas
obj.sale_id = String.Format("{0}{1}{2}", ObjFactura.Serie, ObjFactura.Folio, ObjFactura.CveVenta)
'DATOS DEL PRODUCTO
obj.product_code = Row("Codigo").ToString()
obj.product_code = Row("Code17").ToString()
obj.product_unique_code = "" 'se indique el código único de la batería.
obj.product_sale_type = "01 " 'VENTA
@@ -23859,11 +23790,10 @@ Partial Class Ventas
EnviarPolizaVentaWS(obj)
Next
Return True
End Function
Protected Sub EnviarPolizaVentaWS(obj As Modelos.MPolizaVentaWS)
End Sub
Protected Function EnviarPolizaVentaWS(obj As Modelos.MPolizaVentaWS) As Boolean
Dim Retorno As Boolean = False
Dim Respuesta As String = "[]"
Dim User As String = "cslth.2809@jcilink.com"
@@ -23909,11 +23839,29 @@ Partial Class Ventas
Dim response = wc.PostAsync(Url, content).Result
Respuesta = response.Content.ReadAsStringAsync().Result
Dim resp = JArray.Parse(Respuesta)
If resp.Count > 0 Then
Dim Msg = resp(0)("Descripcion").ToString()
If resp(0)("Codigo").ToString().Contiene("500", "501", "502", "503", "504", "505", "506", "507", "508") Then
Alert(Msg, TipoMensaje.MsgInformacion)
Retorno = True
Else
Alert(Msg, TipoMensaje.MsgAdvertencia)
End If
Else
Alert("No se envió la poliza virtual", TipoMensaje.MsgAdvertencia)
End If
End Using
Catch ex As Exception
ex.GuardaLog(ex.Message)
End Try
End Sub
Return Retorno
End Function
End Class