Agregar archivos de proyecto.
This commit is contained in:
202
GestionGrupoSanchoToro/Compras/ucPagoMultipleFacturas.xaml.vb
Normal file
202
GestionGrupoSanchoToro/Compras/ucPagoMultipleFacturas.xaml.vb
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
|
||||
|
||||
|
||||
Imports bdGrupoSanchoToro.tscGrupoSanchoToro
|
||||
Imports DevExpress.Xpf.Core
|
||||
Imports tsWPFCore
|
||||
Imports Microsoft.Win32
|
||||
Imports DevExpress.Xpf.Grid
|
||||
Imports bdGrupoSanchoToro.db.Utilidades
|
||||
Imports bdGrupoSanchoToro.db
|
||||
|
||||
|
||||
Public Class ucPagoMultipleFacturas
|
||||
|
||||
|
||||
Private bd As bdGrupoSanchoToro.tscGrupoSanchoToro
|
||||
|
||||
|
||||
Public Sub New()
|
||||
|
||||
' Esta llamada es exigida por el diseñador.
|
||||
InitializeComponent()
|
||||
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Overrides Sub Cargado()
|
||||
ContenedorAplicacion.btGuardar.IsVisible = True
|
||||
ContenedorAplicacion.btNuevo.IsVisible = False
|
||||
ContenedorAplicacion.siEstado.IsVisible = False
|
||||
Me.HabilitarRefresco = False
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Overrides Function EstablecedcPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As tsUtilidades.EstadosAplicacion
|
||||
cbRazonSocial.ItemsSource = bd.entidades.Where(Function(x) x.EsCliente AndAlso x.idEmpresa = EmpresaActual.idEmpresa).ToList
|
||||
cbCaja.ItemsSource = bd.cajas.OrderBy(Function(x) x.Descripcion AndAlso x.idEmpresa = EmpresaActual.idEmpresa).ToList
|
||||
deFechaPago.EditValue = Now.Date
|
||||
Return tsUtilidades.EstadosAplicacion.AplicacionSinIndice
|
||||
End Function
|
||||
|
||||
Public Overrides Sub EstableceDataContextSecundarios(Optional Background As Boolean = False)
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub EstableceTitulo()
|
||||
Me.docpanel.Caption = "Cobro Múltiple de Fras. Clientes"
|
||||
End Sub
|
||||
|
||||
Public Overrides ReadOnly Property idRegistroAplicacionActual As String
|
||||
Get
|
||||
Return "PagoMultiple"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overrides ReadOnly Property NombreTablaBase As String
|
||||
Get
|
||||
Return "facturas"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overrides ReadOnly Property DescripcionRegistro As String
|
||||
Get
|
||||
Return "Cobro Multiple de Facturas A Clientes"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overrides Function ObtieneBD() As tsUtilidades.ItsContexto
|
||||
bd = tscGrupoSanchoToro.NuevoContexto
|
||||
Return bd
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Overrides Function ObtienePermisos() As tsUtilidades.Permisos
|
||||
Dim per = Comun.ObtienePermisos(Me.bd, "AP.ADMINISTRATIVOS", idUsuario)
|
||||
per.Eliminar = False
|
||||
per.Nuevos = False
|
||||
per.Modificar = False
|
||||
Return per
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub ap_Enlazar(Celda As DevExpress.Xpf.Grid.EditGridCellData, Defecto As Boolean) Handles Me.Enlazar
|
||||
Dim ra = DirectCast(Me.gcFacturas.CurrentItem, facturas)
|
||||
Select Case Celda.Column.FieldName.ToLower
|
||||
Case "numerofactura"
|
||||
Dim id As Integer = ra.idFactura
|
||||
FuncionesDinamicas.AbrirAP(New ucFacturaEmitida(id), OtrosParametros)
|
||||
Case "idclientenavigation.razonsocial"
|
||||
Dim id As Integer = ra.idCliente
|
||||
FuncionesDinamicas.AbrirAP(New ucEntidad(id), OtrosParametros)
|
||||
End Select
|
||||
|
||||
End Sub
|
||||
Private Sub btMostrar_Click(sender As Object, e As RoutedEventArgs)
|
||||
Try
|
||||
If cbRazonSocial.EditValue Is Nothing Then
|
||||
DXMessageBox.Show("Seleccione primero el cliente", "Atención")
|
||||
Else
|
||||
If DXSplashScreen.IsActive = False Then DXSplashScreen.Show(Of SplashScreenTecnosis)()
|
||||
DXSplashScreen.SetState("Buscando facturas ...")
|
||||
Dim idcliente As Integer = cbRazonSocial.EditValue
|
||||
Dim facs = bd.facturas.Include(Function(x) x.movimientoscaja).Include(Function(x) x.idClienteNavigation).Include(Function(x) x.idUsuarioNavigation).Where(Function(x) x.idCliente = idcliente).OrderBy(Function(x) x.FechaFactura).ToList.Where(Function(x) x.ImportePendiente <> 0).ToList
|
||||
Me.gcFacturas.ItemsSource = facs
|
||||
CalculaTotalAPagar()
|
||||
End If
|
||||
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
Catch ex As Exception
|
||||
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
FuncionesDinamicas.ErrorNoControladoAp(Me, ex)
|
||||
DXMessageBox.Show(ex.Message, "Error")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub BiBuscarCliente_Click(sender As Object, e As RoutedEventArgs)
|
||||
Dim dxw As New dxwEntidades(bd, True, False)
|
||||
If dxw.ShowDialog Then
|
||||
cbRazonSocial.EditValue = dxw.Entidad.idEntidad
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CalculaTotalAPagar()
|
||||
Dim lf As List(Of facturas) = Me.gcFacturas.ItemsSource
|
||||
lf = lf.Where(Function(x) x.Marca_TMP).ToList
|
||||
|
||||
Dim TotalFacturas = lf.Sum(Function(x) x.ImportePendiente)
|
||||
|
||||
teTotalAPagar.EditValue = Math.Round(TotalFacturas, 2, MidpointRounding.AwayFromZero)
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub tvMovimientos_CellValueChanging(sender As Object, e As CellValueChangedEventArgs) Handles tv.CellValueChanging
|
||||
tv.CommitEditing()
|
||||
CalculaTotalAPagar()
|
||||
End Sub
|
||||
|
||||
Private Sub btPagar_Click(sender As Object, e As RoutedEventArgs)
|
||||
Try
|
||||
If deFechaPago.EditValue Is Nothing Then Throw New Exception("La fecha de pago es obligatoria")
|
||||
Dim FechaPago As Date = deFechaPago.EditValue
|
||||
If cbCaja.EditValue Is Nothing Then Throw New Exception("La caja de pago es obligatoria")
|
||||
Dim lf As List(Of facturas) = Me.gcFacturas.ItemsSource
|
||||
lf = lf.Where(Function(x) x.Marca_TMP).ToList
|
||||
Dim idCaja As Integer = cbCaja.EditValue
|
||||
Dim cj = bd.cajas.First(Function(x) x.idCaja = idCaja)
|
||||
If lf.Count = 0 Then Throw New Exception("Seleccione al menos una factura para pagar")
|
||||
|
||||
Dim lr As New List(Of movimientoscaja)
|
||||
For Each f In lf
|
||||
Dim nm As New movimientoscaja
|
||||
With nm
|
||||
.idFacturaNavigation = f
|
||||
.Importe = f.ImportePendiente
|
||||
.Tipo = TipoMovimientoEnum.RECIBO_CLIENTE
|
||||
.idCaja = idCaja
|
||||
.Fecha = FechaPago
|
||||
.FechaCreacion = Now
|
||||
.idUsuario = idUsuario
|
||||
.Observaciones = If(teObservaciones.EditValue IsNot Nothing, teObservaciones.EditValue.ToString, "")
|
||||
.EstableceNumeroRecibo()
|
||||
End With
|
||||
f.ImportePagado = Math.Round(f.movimientoscaja.Sum(Function(x) x.Importe), 2, MidpointRounding.AwayFromZero)
|
||||
f.FechaPago = New DateOnly(FechaPago.Year, FechaPago.Month, FechaPago.Day)
|
||||
f.movimientoscaja.Add(nm)
|
||||
bd.SaveChanges()
|
||||
lr.Add(nm)
|
||||
Next
|
||||
teObservaciones.EditValue = ""
|
||||
Dim cp As String = "RECIBO"
|
||||
Dim pl = bd.plantillas.First(Function(x) x.Codigo = cp)
|
||||
DXMessageBox.Show("Se han pagado " & lf.Count.ToString & " facturas. Seleccione ahora el fichero dónde se guardará el pdf de los recibos correspondientes.", "Atención")
|
||||
Dim b() As Byte = Informes.GuardaInformeEnPdf(bd, pl.idPlantilla, lr)
|
||||
|
||||
Dim sfd As New SaveFileDialog
|
||||
sfd.FileName = "Pago Facturas " & FechaPago.ToString("yyyy-MM-dd") & ".pdf"
|
||||
sfd.Filter = "Fichero PDF|*.pdf"
|
||||
sfd.DefaultExt = ".pdf"
|
||||
If sfd.ShowDialog Then
|
||||
IO.File.WriteAllBytes(sfd.FileName, b)
|
||||
tsUtilidades.Sistema.EjecutaFichero(sfd.FileName)
|
||||
End If
|
||||
' Informes.ImprimirPlantilla(bd, pl.idFicheroNavigation.Fichero, lr, False, 1)
|
||||
RefrescaAplicaciones()
|
||||
btMostrar_Click(Nothing, Nothing)
|
||||
Catch ex As Exception
|
||||
DXMessageBox.Show(ex.Message, "Atención")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub cbRazonSocial_PreviewKeyDown(sender As Object, e As KeyEventArgs) Handles cbRazonSocial.PreviewKeyDown
|
||||
If e.Key = Key.F6 Then BiBuscarCliente_Click(Nothing, Nothing)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user