Files
SIG/Bancos/DepositoTerminal.aspx.vb
2023-08-23 00:03:44 -07:00

345 lines
18 KiB
VB.net

Imports Extensiones
Imports System.Data
Partial Class Bancos_DepositoTerminal
Inherits ClsPaginas
#Region "Propiedades"
Private Property NombreComercial As String
Get
Return ViewState("NombreComercial").ToString
End Get
Set(value As String)
ViewState("NombreComercial") = value
End Set
End Property
#End Region
Private Sub Bancos_DepositoTerminal_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
TxtFecha.Text = Now.ToShortDateString
CargaCuentas()
If UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 72, 80, 119) Then
rowComisiones.Visible = True
'divTipoPago.Visible = True
End If
End If
End Sub
Protected Sub ChkAjusteOI_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ChkAjusteOI.CheckedChanged
If ChkAjusteOI.Checked Then
TxtOtrosImportes.Visible = True
TxtTotal.Visible = True
GvFacturas.Columns(5).Visible = True
Else
TxtOtrosImportes.Visible = False
TxtTotal.Visible = False
GvFacturas.Columns(5).Visible = False
TxtOtrosImportes.Text = ""
TxtTotal.Text = ""
RegistraScript("$get('TxtImporte').value = FormatoNumero(SumaValores(), 2);")
End If
UpGvFacturas.Update()
'UPVentas.Update()
End Sub
#Region "CARGA COMBOS"
Private Sub CargaCuentas()
DdlCuentaDeposito.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveTipoCuenta <> 1", "", {"CveCuenta", "NumCuentaMoneda"})
DdlCuentaTerminal.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveTipoCuenta = 1", "", {"CveCuenta", "NumCuentaMoneda"})
DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones().FiltraParametros("CveTipoTransaccion in (11,12)")
DdlCuentaDeposito.DataBind()
DdlCuentaTerminal.DataBind()
DdlTipoTransaccion.DataBind()
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub DdlCuentaSelectIndexChange()
If UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then
Dim Folio As Long
Dim Banco As New ClsBancos
Folio = Banco.GetNextFolio(DdlCuentaDeposito.SelectedValue.ToEntero, 8)
Banco.Dispose()
TxtFolio.Text = Folio.ToString
Else
TxtFolio.Text = ""
End If
End Sub
Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuentaDeposito.SelectedIndexChanged
DdlCuentaSelectIndexChange()
End Sub
#End Region
#Region "CARGA DATOS"
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.GetVentasTerminal(FechaI, FechaF, UsuarioActual.CveEmpresa, DdlCuentaTerminal.SelectedValue.ToEntero)
GvFacturas.DataSource = ObjBancos.DtResultados
ObjBancos.Dispose()
UpGvFacturas.Update()
GvFacturas.DataBind()
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
End Sub
#End Region
#Region "GUARDAR"
Private Sub BtnDepositar_Click(sender As Object, e As EventArgs) Handles BtnDepositar.Click
Dim TotalImporte As Decimal = 0
For Each Gvr As GridViewRow In GvFacturas.Rows
If Gvr.FCCheckBox("ChkFactura").Checked Then
TotalImporte += Gvr.FCTextBox("TxtAbonar").Text.ToDecimal
End If
Next
If TotalImporte = 0 Then
Alert("Seleccion una factura para realizar el deposito", TipoMensaje.MsgAdvertencia)
Exit Sub
Else
Dim OcurrioError As Boolean = False
Dim ObjContabilidad As New ClsContabilidad()
Dim ObjCliente As New ClsClientes(ObjContabilidad.IniciaTransacSQL())
Dim ObjBancos As New ClsBancos(ObjContabilidad.IniciaTransacSQL())
Dim CveIE As Integer 'Banco
Dim NuevaCvePrePoliza As Integer
Dim CveMoneda As Integer = 1
Dim TipoCambio As Double = 1
Dim Fecha As Date = TxtFecha.Text.ToDate
Dim IDPoliza As Integer = 0
Dim FolioPoliza As String = ""
Dim drDestino As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa
).FiltroPrimero($"CveCuenta = {DdlCuentaDeposito.SelectedValue}")
Dim MsgError As String = ""
If drDestino IsNot Nothing Then
CveMoneda = drDestino("CveMoneda").ToString.ToEntero
End If
NuevaCvePrePoliza = ObjContabilidad.AddPrePolizas("Ventas", 11, TotalImporte, TotalImporte, CveMoneda, Fecha, "Depósito Bancario", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
CveIE = ObjBancos.AddBancos_IE(DdlCuentaDeposito.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text, "Depósito Bancario", TxtImporte.Text.ToDecimal, CveMoneda, 1, TxtObservaciones.Text, "", False, False, -1, NuevaCvePrePoliza, "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CveIE > 0 Then
If NuevaCvePrePoliza > 0 Then
Dim PorcentajePago As Decimal = 1
Dim CvePlantillaPoliza As Integer = 11
Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:<br><br>"
Dim dtConceptos As DataTable = Nothing
Dim tipoCambioVenta As Decimal
Dim tipoCambioActual As Decimal
Dim tipoCambioManual As Decimal
Dim CuentasContablesInvalidas As New StringBuilder
If ObjContabilidad.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then
dtConceptos = ObjContabilidad.DtResultados
End If
'inserto las ventas que voy a pagar
For Each gvr As GridViewRow In GvFacturas.Rows
If gvr.FCCheckBox("ChkFactura").Checked Then
If ObjCliente.GetClientes(gvr.DataKey("CveCliente").ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then
NombreComercial = ObjCliente.NombreComercial
End If
If gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioVenta = GlobalTipoCambio(gvr.FCLiteral("LtlFecha").Text.ToDate).ToString.ToDecimal
tipoCambioActual = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString.ToDecimal
tipoCambioManual = tipoCambioActual
Else
tipoCambioVenta = 1
tipoCambioActual = 1
tipoCambioManual = 1
End If
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 FechaMovimiento As Date = TxtFecha.Text.ToDate
Dim ConceptoMovimiento As String = ObjContabilidad.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, NombreComercial, gvr.DataKey("SerieFolio").ToString, TxtFolio.ToString)
Dim Referencia As String = gvr.DataKey("SerieFolio").ToString
Dim CveSubProyecto As Integer = gvr.DataKey("CveSubProyecto").ToEntero
Select Case ConceptoContable
Case 2 'Pago Cliente
ImporteMovimiento = gvr.FCTextBox("TxtAbonar").Text.ToDecimal
importeMX = ImporteMovimiento * tipoCambioVenta
If tipoCambioVenta > 1 Then
ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}"
If ImporteMovimiento <> 0 Then
importeMX = ImporteMovimiento
If Not ObjContabilidad.AddPrePolizasDetalle(NuevaCvePrePoliza, TipoMovimiento, 0, ImporteMovimiento * tipoCambioVenta - ImporteMovimiento, ConceptoContable, Referencia, ConceptoMovimiento, CveIE:=CveIE, CveVenta:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveSubProyecto:=CveSubProyecto, CveCliente:=ViewState("CveCliente").ToString.ToEntero) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
End If
Case 8 'Ret IVA x Trasladar
ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento, 2) * tipoCambioVenta
If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}"
Case 9 'Ret ISR x Trasladar
ImporteMovimiento = gvr.DataKey("RetISR").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento, 2) * tipoCambioVenta
If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}"
Case 13 'Iva por Trasladar
ImporteMovimiento = gvr.DataKey("IVA").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento * tipoCambioVenta, 2)
If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}"
Case 62 'Ret IVA Trasladado
ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento * tipoCambioVenta, 2)
If tipoCambioManual > 1 Then ConceptoMovimiento += $" TC:{tipoCambioManual} ${ImporteMovimiento.FormatoNumero(2)}"
Case 63 'Ret ISR Trasladado
ImporteMovimiento = gvr.DataKey("RetISR").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento * tipoCambioManual, 2)
If tipoCambioManual > 1 Then ConceptoMovimiento += $" TC:{tipoCambioManual} ${ImporteMovimiento.FormatoNumero(2)}"
Case 61 'Iva Trasladado
ImporteMovimiento = gvr.DataKey("IVA").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento * tipoCambioManual, 2)
If tipoCambioManual > 1 Then ConceptoMovimiento += $" TC:{tipoCambioManual} ${ImporteMovimiento.FormatoNumero(2)}"
Case 38 'IEPS por trasladar
ImporteMovimiento = gvr.DataKey("IEPS").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento * tipoCambioVenta, 2)
Case 39 'IEPS Trasladado
ImporteMovimiento = gvr.DataKey("IEPS").ToDecimal * PorcentajePago
importeMX = Math.Round(ImporteMovimiento * tipoCambioManual, 2)
Case 78 'Otros Ingresos
If ChkAjusteOI.Checked Then
ImporteMovimiento = gvr.FCTextBox("TxtComision").Text.ToDecimal
importeMX = Math.Round(ImporteMovimiento * tipoCambioVenta, 2)
If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}"
End If
Case 30
ImporteMovimiento = 0
Case Else
ImporteMovimiento = 0
End Select
If ImporteMovimiento <> 0 Then
If Not ObjContabilidad.AddPrePolizasDetalle(NuevaCvePrePoliza, TipoMovimiento, ImporteMovimiento, importeMX, ConceptoContable, Referencia, ConceptoMovimiento, CveIE:=CveIE, CveVenta:=gvr.DataKey("CveVenta").ToEntero, CveSubProyecto:=CveSubProyecto, CveCliente:=gvr.DataKey("CveCliente").ToEntero) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
Next
End If
End If
Next
If CveMoneda > 1 Then
If Not ObjContabilidad.AddPrePolizasDetalle(NuevaCvePrePoliza, False, TxtImporte.Text.ToDecimal, TxtImporte.Text.ToDecimal, 30, "", "", CveIE:=CveIE) Then
MsgError = "No se pudo insertar la póliza"
End If
If Not ObjContabilidad.AddPrePolizasDetalle(NuevaCvePrePoliza, False, TxtImporte.Text.ToDecimal, TxtImporte.Text.ToDecimal, 204, "", "", CveIE:=CveIE) Then
MsgError = "No se pudo insertar la póliza"
End If
Else
If Not ObjContabilidad.AddPrePolizasDetalle(NuevaCvePrePoliza, False, TxtImporte.Text.ToDecimal, TxtImporte.Text.ToDecimal, 30, "", "", CveIE:=CveIE) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
Else
MsgError = "No se pudo insertar la póliza"
End If
Else
MsgError = "No se insertó el encabezado"
End If
If MsgError = "" Then
ObjContabilidad.Commit()
CargaDatos()
DdlCuentaSelectIndexChange()
TxtObservaciones.Text = ""
TxtImporte.Text = ""
UPPFiltros.Update()
Dim StrMsg As New StringBuilder
StrMsg.Append("Abono Registrado Correctamente.<br/>")
If IDPoliza > 0 Then StrMsg.AppendFormat("<br/> Poliza: <a href='/Contabilidad/RegPoliza.aspx?IdPoliza={0}' target='_blank' class='Texto'>{1}</a>", IDPoliza, FolioPoliza)
Alert($"{StrMsg.ToString}<br/><br/>", TipoMensaje.MsgInformacion)
Else
ObjContabilidad.RollBack()
End If
ObjBancos.Dispose()
ObjContabilidad.Dispose()
ObjCliente.Dispose()
End If
End Sub
Private Sub GvFacturas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvFacturas.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCCheckBox("ChkFactura").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Importe")))
If e.Row.DBCampo("CveVenta").ToEntero > 0 Then
e.Row.FCTextBox("TxtAbonar").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},1);", e.Row.FCCheckBox("ChkFactura").ClientID, e.Row.DBCampo("Importe")))
If UsuarioActual.Empresa.Funcionalidad(157).ToDecimal <> 0 Then
e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnLimites({0},this,{1},{2},2);", e.Row.FCCheckBox("Chk").ClientID, (-UsuarioActual.Empresa.Funcionalidad(157).ToDecimal).ToString, UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal))
e.Row.FCRangeValidator("RVComision").MinimumValue = (-UsuarioActual.Empresa.Funcionalidad(157).ToDecimal).ToString
e.Row.FCRangeValidator("RVComision").MaximumValue = UsuarioActual.Empresa.Funcionalidad(157)
e.Row.FCRangeValidator("RVComision").Enabled = True
Else
e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2);", e.Row.FCCheckBox("ChkFactura").ClientID, e.Row.DBCampo("Importe")))
e.Row.FCRangeValidator("RVComision").MinimumValue = "0.00"
e.Row.FCRangeValidator("RVComision").MaximumValue = e.Row.DBCampo("Importe")
End If
Else
e.Row.FCTextBox("TxtAbonar").Visible = False
e.Row.FCTextBox("TxtComision").Visible = False
e.Row.FCCheckBox("ChkFactura").Visible = False
End If
End If
End Sub
#End Region
End Class