Files
SIG/Bancos/RegistroPagoIntermediario.aspx.vb
2020-07-16 15:23:10 -07:00

261 lines
12 KiB
VB.net

Option Explicit On
Option Strict On
Imports Extensiones
Imports System.Data
Partial Class Bancos_PagosIntermediarios
Inherits ClsPaginas
Private Property FacturasCheckadas As Integer
Get
Return ViewState("FacturasCheckadas").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("FacturasCheckadas") = value
End Set
End Property
Private Property IdCuentaBancaria As Integer
Get
Return ViewState("IdCuentaBancaria").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("IdCuentaBancaria") = value
End Set
End Property
Private Property CveCuentaBancaria As Integer
Get
Return ViewState("CveCuentaBancaria").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCuentaBancaria") = value
End Set
End Property
Private Property CveMoneda As Integer
Get
Return ViewState("CveMoneda").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveMoneda") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
FacturasCheckadas = 0
TxtFecha.Text = Now.ToShortDateString
CargaCuentas()
CargaFiltros()
End If
End Sub
Private Sub CargaFiltros()
Dim ObjProveedores As New ClsCompProveedores
ObjProveedores.GetProveedorProsepago(UsuarioActual.CveEmpresa)
DdlProveedorPagoInt.Visible = True
DdlProveedorPagoInt.DataSource = ObjProveedores.DtResultados
DdlProveedorPagoInt.DataBind()
ObjProveedores.Dispose()
End Sub
Private Sub CargaCuentas()
DdlCuentaDeposito.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveTipoCuenta <> 1", "", {"CveCuenta", "NumCuentaMoneda"})
DdlCuentaDeposito.DataBind()
DdlCuentaDeposito_SelectedIndexChanged(Nothing, Nothing)
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim ObjBancos As New ClsBancos
Dim FechaI, FechaF As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
ObjBancos.GetPagosIntermediarios(DdlProveedorPagoInt.SelectedValue.ToEntero, FechaI, FechaF, UsuarioActual.CveEmpresa)
GvFacturas.DataSource = ObjBancos.DtResultados
GvFacturas.DataBind()
UpGvFacturas.Update()
ObjBancos.Dispose()
End Sub
Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuentaDeposito.SelectedIndexChanged
Dim dr As DataRow = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuentaDeposito.SelectedValue)
If dr IsNot Nothing Then
CveMoneda = dr("CveMoneda").ToString.ToEntero
IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero
CveCuentaBancaria = dr("IdCtaContableSIG").ToString.ToEntero
End If
If UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then
Dim Folio As Long
Dim Banco As New ClsBancos
Folio = Banco.GetNextFolio(DdlCuentaDeposito.SelectedValue.ToEntero, 2)
Banco.Dispose()
TxtFolio.Text = Folio.ToString
Else
TxtFolio.Text = ""
End If
End Sub
Private Sub BtnDepositar_Click(sender As Object, e As EventArgs) Handles BtnDepositar.Click
If Not TxtTotalBancos.Text.ToEntero > 0 Then
Alert("Debe seleccionar por lo menos una factura", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjIE As New ClsBancos()
Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL)
Dim CvePrePoliza As Integer = 0
Dim IDPoliza As Integer = 0
Dim FolioPoliza As String = ""
Dim MsgError As String = ""
Dim tipoCambio As Decimal
Dim CvePlantillaPoliza As Integer = 63
Dim FechaMovimiento As Date = TxtFecha.Text.ToDate
Dim AboneA As String = "Pagos Intermediarios"
Dim ConceptoPoliza As String = String.Format("{0} {1}", AboneA, TxtObservaciones.Text)
Dim TotalMovimiento As Decimal = TxtTotalBancos.Text.ToDecimal + TxtTotalComisiones.Text.ToDecimal
Dim CveCliente As Integer = -1
CvePrePoliza = ObjMov.AddPrePolizas("Bancos/RegistroPagoIntermediario", CvePlantillaPoliza, TotalMovimiento, TotalMovimiento, CveMoneda, FechaMovimiento, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CvePrePoliza > 0 Then
Dim dtConceptos As DataTable = Nothing
Dim CuentasContablesInvalidas As New StringBuilder
Dim CuentasContablesInvalidasSIG As New StringBuilder
Dim TotalComisiones As Double = 0
Dim TotalPagos As Double = 0
Dim ConceptoMovimientoBancos As String = ""
If CveMoneda = 2 Then
tipoCambio = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal
Else
tipoCambio = 1
End If
If ObjMov.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then
dtConceptos = ObjMov.DtResultados
End If
Dim CveIE As Integer = ObjIE.AddBancos_IE(DdlCuentaDeposito.SelectedValue.ToEntero, 8, FechaMovimiento, TxtFolio.Text.Trim, AboneA.Trim, TxtTotalBancos.Text.ToDecimal, CveMoneda, 0.0, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
For Each gvr As GridViewRow In GvFacturas.Rows
If gvr.FCCheckBox("ChkFactura").Checked Then
If dtConceptos IsNot Nothing Then
For Each Row As DataRow In dtConceptos.Rows
Dim ConceptoContable = Row("CveConcepto").ToString.ToEntero
Dim TipoMovimiento As Boolean = If(Row("TipoMovto").ToString = "True", True, False)
Dim ImporteMovimiento As Decimal = 0
Dim importeMX As Decimal
Dim IdCtaContable As Integer = 0
Dim CveCuenta As Integer = 0
Dim ConceptoMovimiento As String = ObjMov.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, gvr.FCLiteral("LtCliente").Text, gvr.FCHyperLink("LtSerieFolio").Text, TxtFolio.Text.Trim)
CveCliente = gvr.DataKey("CveCliente").ToString.ToEntero
Select Case ConceptoContable
Case 253 'Comision por recuperacion de cartera (Prosepago)
ImporteMovimiento = gvr.FCTextBox("TxtComision").Text.ToDecimal
importeMX = ImporteMovimiento * tipoCambio
TotalComisiones += ImporteMovimiento
Dim ObjProv As New ClsCompProveedores
If ObjProv.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, DdlProveedorPagoInt.SelectedValue.ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", "-1", 1, UsuarioActual.CveEmpresa) Then
IdCtaContable = ObjProv.IdCtaContDeudor
End If
ObjProv.Dispose()
Case 133 'Pago Intermediario
ImporteMovimiento = gvr.DataKey("Saldo").ToDecimal
importeMX = ImporteMovimiento * tipoCambio
TotalPagos += ImporteMovimiento
Dim ObjCliente As New ClsClientes
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
IdCtaContable = ObjCliente.IdCtaContClientes
End If
ObjCliente.Dispose()
Case 30 'Bancos
ConceptoMovimientoBancos = ConceptoMovimiento
ImporteMovimiento = 0
Case Else
ImporteMovimiento = 0
End Select
If ImporteMovimiento <> 0 Then
'Conta ContPAQ
If (IdCtaContable < 1 Or IdCuentaBancaria < 1) Then
CuentasContablesInvalidas.Append("<br>" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
End If
'Conta SIG
If (CveCuenta < 1 Or CveCuentaBancaria < 1) Then
CuentasContablesInvalidasSIG.Append("<br>" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
End If
If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ConceptoMovimiento, ConceptoContable, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, CveIE, gvr.DataKey("CveVenta").ToString.ToEntero, -1, -1, CveCliente, CveProveedor:=DdlProveedorPagoInt.SelectedValue.ToEntero, ImporteMX:=importeMX, CveCuenta:=CveCuenta) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
Next
End If
End If
Next
If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, TxtTotalBancos.Text.ToDecimal, ConceptoMovimientoBancos, 30, ConceptoMovimientoBancos, FechaMovimiento, IdCuentaBancaria, -1, CveIE, -1, -1, -1, CveCliente, ImporteMX:=TxtTotalBancos.Text.ToDecimal * tipoCambio, CveCuenta:=CveCuentaBancaria) Then
MsgError = "No se pudo insertar la póliza"
End If
If ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
If ObjMov.ValorPolizaDescuadre > 0 Then
MsgError = "La suma de los importes no coinciden"
End If
End If
Else
MsgError = "No se pudo insertar la póliza"
End If
If MsgError = "" Then
ObjIE.Commit()
TxtFolio.Text = ""
TxtObservaciones.Text = ""
TxtTotalBancos.Text = ""
TxtTotalComisiones.Text = ""
TxtFecha.Text = Now.ToShortDateString
CargaDatos()
Alert(String.Format("El Depósito se ha registrado correctamente."), TipoMensaje.MsgInformacion)
Else
ObjIE.RollBack()
Alert(String.Format("Ocurrió un error al registrar el movimiento."), TipoMensaje.MsgError)
GuardaLog($"RegistroPagoIntermediario --> {MsgError}")
End If
ObjIE.Dispose()
End Sub
Private Sub GvFacturas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvFacturas.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", $"FnCambia({e.Row.FCCheckBox("ChkFactura").ClientID},this,{e.Row.DBCampo("Importe")},1,'{"El Importe no debe de exceder el saldo"}');")
End If
End Sub
End Class