From 8bc12404a520165f2a60bb2249521cbe084b58e3 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Sat, 31 Aug 2019 11:21:22 -0700 Subject: [PATCH 1/2] Mensaje de error al cacelar complemento esba como informativo se cambio a advertencia. --- Bancos/IE.aspx.vb | 2 +- LogTimbrado.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 LogTimbrado.txt diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 57d76e13f..014263330 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -3939,7 +3939,7 @@ Partial Class Bancos_IE End If Else - Alert("Se presento un error al cancelar el complemento.") + Alert("Se presento un error al cancelar el complemento.", TipoMensaje.MsgAdvertencia) End If Else ErrorCancelarComplemento = False diff --git a/LogTimbrado.txt b/LogTimbrado.txt new file mode 100644 index 000000000..670c753f4 --- /dev/null +++ b/LogTimbrado.txt @@ -0,0 +1,4 @@ + + .. PAC: 4 - Verificado : (5) 5 Certificado : (501) 506 Armado: (25) 531 Genera: (494) 1025 Timbrado: (748) 1773 ..20/08/2019:03:33 p. m. + + .. PAC: 4 - Verificado : (2) 2 Certificado : (388) 390 Armado: (4) 394 Genera: (440) 834 Timbrado: (1030) 1864 Guardado: (361) 2225 Actualizado: (99) 2324 ..20/08/2019:03:39 p. m. From 41298351e4b1fd9c57872f7ba762c0ecb20cae11 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 31 Aug 2019 12:47:49 -0700 Subject: [PATCH 2/2] Validar saldo del almacen correctamente --- App_Code/Modelos.vb | 93 ++++++++++++++++++++++++------------------- Ventas/Ventas.aspx.vb | 6 ++- 2 files changed, 58 insertions(+), 41 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 954c278f3..f64bb2cfd 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2780,23 +2780,17 @@ Namespace Modelos Next - End If - - If DtRemisionesRelacionadas Is Nothing Then - If ObjVentas.GetRemisionesRelacionadas(ObjFactura.CveVenta, ObjFactura.TipoDocto) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then - DtRemisionesRelacionadas = ObjVentas.DtResultados.Copy() - End If + End If + + If ObjFactura.RemisionesLista.Count = 0 AndAlso (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) Then + For Each Row As DataRow In DtRemisionesRelacionadas.Rows + ObjFactura.RemisionesLista.Add(Row("CveVenta").ToString().ToEntero()) + Next End If 'Si es Facturacion de una remision cancelamos, traspasamos saldos y agregamos evento a la bitacora If (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) OrElse ObjFactura.RemisionesLista.Count > 0 Then - If ObjFactura.RemisionesLista.Count = 0 AndAlso (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) Then - For Each Row As DataRow In DtRemisionesRelacionadas.Rows - ObjFactura.RemisionesLista.Add(Row("CveVenta").ToString().ToEntero()) - Next - End If - If ObjFactura.RemisionesLista.Count > 0 Then For Each CveRemision As Integer In RemisionesLista If Not ObjConta.TraspasarSaldosRemision(CveRemision, ObjFactura.CvePrePoliza, ObjFactura.CveVenta) Then @@ -2817,25 +2811,30 @@ Namespace Modelos Exit For End If Next - End If - - 'REGRESA SALDO A LAS REMISIONES QUE SE FACTURARON EN EL INGRESO QUE SE ESTA CANCELANDO - If ObjFactura.TipoDocto = "Ing" And ValorMultiplicador = -1 AndAlso NuevaFactura <> 1 AndAlso Not SeCancelaRemisionProceso Then ' se debe de excluir cuando es refacturación - For Each Dr As DataRow In DtRemisionesRelacionadas.Rows - - Dim DebeCancelar As Boolean = CancelarRemisiones AndAlso ListaRemisionesCancelar.Any(Function(CveRemision) CveRemision = Dr("CveVenta").ToString.ToEntero()) - - If Not DebeCancelar Then - If Not ObjConta.TraspasarSaldosRemision(Dr("CveVenta").ToString.ToEntero, ObjFactura.CvePrePoliza, ObjFactura.CveVenta, 1) Then - ErrorPrepoliza = True - End If - If Not ObjEventos.AddEventoBitacora($"Facturación cancelada en: {ObjFactura.Folio}", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=Dr("CveVenta").ToString.ToEntero) Then - ErrorPrepoliza = True - End If - End If - Next End If - + End If + + If DtRemisionesRelacionadas Is Nothing Then + If ObjVentas.GetRemisionesRelacionadas(ObjFactura.CveVenta, ObjFactura.TipoDocto) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then + DtRemisionesRelacionadas = ObjVentas.DtResultados.Copy() + End If + End If + + 'REGRESA SALDO A LAS REMISIONES QUE SE FACTURARON EN EL INGRESO QUE SE ESTA CANCELANDO + If ObjFactura.TipoDocto = "Ing" And ValorMultiplicador = -1 AndAlso NuevaFactura <> 1 AndAlso Not SeCancelaRemisionProceso AndAlso DtRemisionesRelacionadas IsNot Nothing Then ' se debe de excluir cuando es refacturación + For Each Dr As DataRow In DtRemisionesRelacionadas.Rows + + Dim DebeCancelar As Boolean = CancelarRemisiones AndAlso ListaRemisionesCancelar.Any(Function(CveRemision) CveRemision = Dr("CveVenta").ToString.ToEntero()) + + If Not DebeCancelar Then + If Not ObjConta.TraspasarSaldosRemision(Dr("CveVenta").ToString.ToEntero, ObjFactura.CvePrePoliza, ObjFactura.CveVenta, 1) Then + ErrorPrepoliza = True + End If + If Not ObjEventos.AddEventoBitacora($"Facturación cancelada en: {ObjFactura.Folio}", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=Dr("CveVenta").ToString.ToEntero) Then + ErrorPrepoliza = True + End If + End If + Next End If @@ -3583,6 +3582,13 @@ Namespace Modelos Dim TieneAlmacen As Boolean = False + If ObjFactura.SaldoAlmacen <> 0 Then + Retorno.Mensaje = "El pedido no se puede cancelar ya que tiene movimientos de almacén.
Nota: Primero hay que hacer la devolución al almacén." + Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia + + Return Retorno + End If + 'VALIDA QUE LA FACTURA NO TENGA PAGOS If ObjFactura.TipoDocto.Contiene("Ing", "Rem") AndAlso ObjFactura.Pagado > 0 Then Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene pagos vinculados." @@ -3608,7 +3614,7 @@ Namespace Modelos End If 'LA VALIDACION DE SALDOS CUANDO ES REFACTURACION SE HACE ANTES ASI QUE SI ES REFACTURACION IGNORAMOS ESTA CONDICION, SI ES ANTICIPO VERIFICA QUE NO ESTÉ APLICADO - If ObjFactura.TipoDocto = "Ant" AndAlso ObjFactura.Pagado > 0 AndAlso DTDocumentosRelacionados.Rows.Count > 0 Then + If ObjFactura.TipoDocto.Contiene("Ing", "Ant", "Rem") AndAlso ObjFactura.Pagado > 0 AndAlso DTDocumentosRelacionados.Rows.Count > 0 Then Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene pagos vinculados." Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia @@ -3670,7 +3676,7 @@ Namespace Modelos Dim RevivirRemisiones = Not EsRefacturacion AndAlso ((TieneRemisionesRelacionadas AndAlso ListaRemisionesCancelar Is Nothing) OrElse (DtRemisionesRelacionadas.Rows.Count > ListaRemisionesCancelar.Count)) 'REMISION YA SE DEBE HACER POR EL PROCESO DE DEVOLUCION DE ALMACEN - If Not EsRefacturacion AndAlso (ObjFactura.SaldoAlmacen > 0 AndAlso ObjFactura.EsDevolucionVenta.Contiene(0, 1)) AndAlso Not RealizarDevolucionAlmacen And RevivirRemisiones = False Then + If Not EsRefacturacion AndAlso (ObjFactura.SaldoAlmacen <> 0 AndAlso ObjFactura.EsDevolucionVenta.Contiene(0, 1)) AndAlso Not RealizarDevolucionAlmacen And RevivirRemisiones = False Then Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene movimientos de inventario." Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia @@ -4190,7 +4196,8 @@ Namespace Modelos End If - Dim CveEstatusRefacturacion As Integer = 0 + Dim CveEstatusRefacturacion As Integer = If(ObjFactura.CveEstatusRefacturacion <= 0, 0, ObjFactura.CveEstatusRefacturacion) + 'ACTUALIZA ESTATUS If Not ErrorCancelar Then Select Case ObjFactura.TipoDocto @@ -4208,11 +4215,17 @@ Namespace Modelos End If End If - - If Not ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IDPoliza, CvePAC:=CvePACCancelacion, CveEstatusRefacturacion:=CveEstatusRefacturacion, - CveUsuarioCambiaEstatus:=UsuarioActual.CveUsuario, FechaCambioEstatus:=Now.ToString("yyyy-MM-dd hh:mm:ss.mmm")) Then - ErrorCancelar = True - MensajeError = "Ocurrió un error al guardar el estatus de cancelación." + If CveEstatus.Contiene(4, 5) Then + If Not ObjVentas.UpdateCancelaVenta(CveVenta, CancelacionFecha, CancelacionAcuse, UsuarioActual.CveEmpresa, CvePACCancelacion) Then + ErrorCancelar = True + MensajeError = "Ocurrió un error al guardar el estatus de cancelación." + End If + Else + If Not ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IDPoliza, CvePAC:=CvePACCancelacion, CveEstatusRefacturacion:=CveEstatusRefacturacion, + CveUsuarioCambiaEstatus:=UsuarioActual.CveUsuario, FechaCambioEstatus:=Now.ToString("yyyy-MM-dd hh:mm:ss.mmm")) Then + ErrorCancelar = True + MensajeError = "Ocurrió un error al guardar el estatus de cancelación." + End If End If If CancelarRemisiones Then @@ -4701,8 +4714,8 @@ Namespace Modelos #End Region -#Region "P R O P I E D A D E S" - +#Region "P R O P I E D A D E S" + Public Property CveEstatusRefacturacion As Integer = 0 Public Property NuevaFactura As Integer Public Property EnviarCorreo As Boolean = False Public Property ErrorList As List(Of String) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index e6643891b..f5bf8561c 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -17448,7 +17448,11 @@ Partial Class Ventas If resp.CveEstatus = 5 Then Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnEnviarMailCancelacion();", TextoConfirmacion:="    Si    ", TextoCancelacion:="    No    ") Else - Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();") + If Not EsRefacturacion Then + Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();") + Else + Response.Redirect($"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={Me.CveVenta}") + End If End If ObjFactura.CveAlmacen = -1