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/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.
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 82547c945..1bfa9e03d 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -17455,7 +17455,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