From 8317653d07bf8ef5047862bb8482026ceabed976 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 14 Apr 2020 21:02:17 -0700 Subject: [PATCH] Refacturacion,mensajes de cancelacion --- App_Code/Modelos.vb | 32 +++++++++++++++++++------------- Ventas/Ventas.aspx | 7 ++++++- Ventas/Ventas.aspx.vb | 34 +++++++++++++++++++++++++++++----- vwd.webinfo | 2 ++ 4 files changed, 56 insertions(+), 19 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index ba138a872..8d4ebb2f7 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -3997,9 +3997,24 @@ Namespace Modelos Dim CancelarRemisiones As Boolean = ListaRemisionesCancelar IsNot Nothing AndAlso ListaRemisionesCancelar.Count > 0 Dim TieneAlmacen As Boolean = False + Dim AplicaRefacturacionConPagos As Boolean = False + + '1 NORMAL, 2 CON PAGOS + Dim ModalidadRefacturacion As Integer = UsuarioActual.Empresa.Funcionalidad(586).ToEntero() + + If ModalidadRefacturacion <= 0 Then + Retorno.Mensaje = "La factura no se puede refacturar debido a que la empresa no tiene asignada una modalidad de refacturación." + Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia + + Return Retorno + End If + + If EsRefacturacion AndAlso ModalidadRefacturacion = 2 Then + AplicaRefacturacionConPagos = True + End If 'VALIDA QUE LA FACTURA NO TENGA PAGOS - If Not EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Rem") AndAlso ObjFactura.Pagado > 0 Then + If Not AplicaRefacturacionConPagos AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Rem") AndAlso ObjFactura.Pagado > 0 Then Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene pagos vinculados." Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia @@ -4023,7 +4038,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 Not EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant", "Rem") AndAlso ObjFactura.Pagado > 0 AndAlso DTDocumentosRelacionados.Rows.Count > 0 Then + If Not AplicaRefacturacionConPagos AndAlso 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 @@ -4283,7 +4298,7 @@ Namespace Modelos End If 'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO - If Not EsRefacturacion AndAlso ((((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20)) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20))) Then + If Not AplicaRefacturacionConPagos AndAlso ((((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20)) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20))) Then 'CUANDO SE CANCELA, LA PÓLIZA DEBE DE SER DE DIARIO CvePrePoliza = ObjConta.AddPrePolizas("Modelos/CancelarDocumento", CvePlantillaPoliza, ObjFactura.Total, ObjFactura.Total, ObjFactura.CveMoneda, Now, ObjFactura.Cliente.Nombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3) @@ -4294,16 +4309,8 @@ Namespace Modelos MensajeError = "Ocurrió un error al generar la prepoliza de cancelación." End If - ''CANCELAR PAGOS - 'If EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Rem", "Ant") AndAlso ObjFactura.Pagado > 0 Then - ' If Not ObjVentas.CancelarPagos(ObjFactura.CveVenta, CvePrePoliza) Then - ' ErrorCancelar = True - ' MensajeError = "Ocurrió un error al generar la cancelación de pagos." - ' End If - 'End If - 'CANCELAR PAGOS - If Not EsRefacturacion AndAlso ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then + If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then If Not ErrorCancelar Then If Not ObjConta.PrePolizasCancelarPagos(ObjFactura.CveDevolucion, CvePrePoliza) Then ErrorCancelar = True @@ -4312,7 +4319,6 @@ Namespace Modelos End If End If - 'CANCELA PREPOLIZA If Not ErrorCancelar Then ErrorCancelar = ProcesoPrepolizas(ObjFactura, ObjConta, -1, ObjFactura.DtDetalle, ObjAC, -1, ObjBancos, ObjVentas, ObjEventos, DtRemisionesRelacionadas:=DtRemisionesRelacionadas, SeCancelaRemisionProceso:=SeCancelaRemisionProceso, diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 9d6b88538..33970e2d8 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -6207,6 +6207,11 @@ +
+
+ +
+
@@ -6228,7 +6233,7 @@
- +
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index fc9564082..b495f0e2e 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -10930,8 +10930,10 @@ Partial Class Ventas End If - 'TRASPASA PAGADO (ObjFacturaNC.Pagado > 0) AndAlso - If ObjFactura.TipoDocto.Contiene("Ing", "Ant") AndAlso ObjFactura.NuevaFactura = 1 Then + Dim ModalidadRefacturacion As Integer = UsuarioActual.Empresa.Funcionalidad(586).ToEntero() + + 'REFACTURACION CON PAGOS, DEBE CANCELAR SALDOS DEL DOCUMENTO ANTERIOR Y TRASPASAR PAGOS AL NUEVO + If ModalidadRefacturacion = 2 AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant") AndAlso ObjFactura.NuevaFactura = 1 Then If Not ObjConta.TraspasarSaldosPrePolizasRefacturacion(ObjFacturaNC.CveVenta, ObjFactura.CveVenta, ObjFactura.CvePrePoliza, CvePlantilaPoliza, UsuarioActual.CveEmpresa) Then ErrorList.Add("Ocurrió un error al agregar la bitacora de Póliza Virtual.") End If @@ -16829,7 +16831,6 @@ Partial Class Ventas Private Sub BtnNuevaFactura_Click(sender As Object, e As EventArgs) Handles LkRefacturacion.Click 'Nos vamos a la nueva factura Dim script As String = "" - If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs") Then Dim sb As New StringBuilder() @@ -18983,6 +18984,24 @@ Partial Class Ventas End If End Sub + Private Sub MostrarCondicionesCancelacion() + Dim SbCondiciones As New StringBuilder() + + If VentaSaldoAlmacen < 0 AndAlso ChkDevAlm.Checked Then + SbCondiciones.Append("*Se realizará una devolución en automatico al realizar la cancelación.") + End If + + If GvRemisiones.Rows.Count > 0 AndAlso Not DivCanRem.Visible AndAlso Not AplicaCancelarRemision Then + SbCondiciones.Append("

*No se puede cancelar las remisiones ligadas a la factura, esto puede deberse por los siguientes motivo:") + SbCondiciones.Append("
     -La remisión no está facturada al 100%.") + SbCondiciones.Append("
     -La remisión está relacionada con otra factura.") + End If + + LbCancelarDescripcion.Text = SbCondiciones.ToString() + + UpCancelarDocumento.Update() + End Sub + Private Sub LbCancelarDocumento_Click(sender As Object, e As EventArgs) Handles LbCancelarDocumento.Click 'If VentaSaldoAlmacen <> 0 Then @@ -19020,6 +19039,7 @@ Partial Class Ventas sb.Append("Está seguro de cancelar el documento?.") LblCancelarDocumento.Text = sb.ToString() + MostrarCondicionesCancelacion() RegistraScript("$('#ModalCancelarDocumento').modal();") UpCancelarDocumento.Update() @@ -19029,6 +19049,9 @@ Partial Class Ventas End If End Sub + Protected Sub ChkDevAlm_CheckedChanged(sender As Object, e As EventArgs) + MostrarCondicionesCancelacion() + End Sub Protected Sub BtnCancelarDocumento_Click(sender As Object, e As EventArgs) CancelarDocumento() RegistraScript("$('#ModalCancelarDocumento').modal('hide');") @@ -23427,7 +23450,7 @@ Partial Class Ventas Else DivGvCancelarRemision.Visible = False End If - UpCancelarDocumento.Update() + MostrarCondicionesCancelacion() End Sub Private Sub LnkRemisiones_Click(sender As Object, e As EventArgs) Handles LnkRemisiones.Click Dim ObjContratos As New ClsContratos @@ -24532,7 +24555,7 @@ Partial Class Ventas Dim CveEstatusAutorizacion As Integer = RowVenta("CveEstatusFactura").ToString().ToEntero() 'SI LA AUTORIZACION ESTA REMISIONADA NO DEBE REMISIONAR DE NUEVO If CveEstatusAutorizacion = 18 Then - Alert("La autorización ya esta remisionada") + Alert("La autorización ya está remisionada") Exit Sub End If Else @@ -25284,4 +25307,5 @@ Partial Class Ventas Public PU As Decimal = 0 Public EsPUModificado As Boolean = False End Class + End Class \ No newline at end of file diff --git a/vwd.webinfo b/vwd.webinfo index 728e9d258..c9e193dc4 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -48,6 +48,8 @@ + +