Files
SIG/Bancos/RepEgresosSinComprobante.aspx.vb
2023-10-09 11:55:07 -07:00

417 lines
19 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Bancos_RepEgresosSinComprobante
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property DtDatos As DataTable
Get
Return CType(ViewState("DtDatos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property DtFuncionariosEmpleados As DataTable
Get
Return CType(ViewState("DtFuncionariosEmpleados"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtFuncionariosEmpleados") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
DdlUsuarioResponsable.DataSource = GlobalDTUsuarioResponsable(UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre")
DdlUsuarioResponsable.DataBind()
If UsuarioActual.TienePermisoProceso(91) Then
DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre")
DdlUsuarioRegistro.DataBind()
DdlUsuarioRegistro.Items.Insert(0, New ListItem("Todos", "-1"))
Else
DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlUsuarioRegistro.DataBind()
End If
DdlProveedoresClasificaciones.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa)
DdlProveedoresClasificaciones.DataBind()
DdlMoneda.DataSource = GlobalDTMonedas
DdlMoneda.DataBind()
DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo='Egs'")
DdlTipoTransaccion.DataBind()
DdlUsuarioSolicito.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre")
DdlUsuarioSolicito.DataBind()
DdlProveedores.setEsWebService(True)
DdlProveedores.Attributes.Add("data-metodo", "getproveedores")
DdlProveedores.SelectedText = "Todos"
DdlProveedores.SelectedValue = "-1"
CargaDatos()
TxtConcepto.Text = "Saldado de Egresos por comprobar"
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubproyecto, AplicaTodos:="Selecione uno")
End If
End Sub
Private Sub CargaDatos()
Dim Mov As New ClsMovimientos
Dim FechaI, FechaF As String
If txtFechaI.Text <> "" Then FechaI = txtFechaI.Text Else FechaI = "-1"
If txtFechaF.Text <> "" Then FechaF = txtFechaF.Text Else FechaF = "-1"
If Mov.GetEgresosSinComprobar(FechaI, FechaF, DdlProveedores.SelectedValue.ToEntero, -1, DdlProveedoresClasificaciones.SelectedValue.ToEntero, DdlUsuarioRegistro.SelectedValue.ToEntero, DdlUsuarioResponsable.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero, If(ChkSaldo.Checked, 1, 0), UsuarioActual.CveEmpresa, DdlTipoTransaccion.SelectedValue.ToEntero, DdlUsuarioSolicito.SelectedValue.ToEntero) Then
DtDatos = Mov.DtResultados
CargaGrid("")
CargaGridPersonal("")
UPDatos.Update()
upDatosPersonal.Update()
End If
Mov.Dispose()
End Sub
Protected Sub GvESC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvESC.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveProveedor") = "" Then
e.Row.BackColor = Drawing.Color.LightGray
e.Row.FCHyperLink("Hpl").NavigateUrl = ""
e.Row.FCHyperLink("Hpl").Font.Bold = True
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
End If
'CUANDO ES SUBTITULO
If e.Row.DBCampo("CveIE") = "" Then
If e.Row.DBCampo("CveMoneda") = "" Then
e.Row.CssClass = "SubTotales2"
Else
e.Row.CssClass = "SubTotales"
e.Row.FCLiteral("LtMoneda").Visible = True
e.Row.FCHyperLink("Hpl").Visible = False
End If
End If
'LINK A IE
If e.Row.DBCampo("Folio") <> "" Then
e.Row.FCHyperLink("HLFolio").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE"))
End If
If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(1).ForeColor = Drawing.Color.Red
End If
End Sub
Protected Sub GvPersonal_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPersonal.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CvePersonal") = "" Then
e.Row.BackColor = Drawing.Color.LightGray
' e.Row.FCHyperLink("ImgAbonar").Visible = False
e.Row.FCHyperLink("Hpl").NavigateUrl = ""
e.Row.FCHyperLink("Hpl").Font.Bold = True
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
End If
If e.Row.RowIndex = 1 Then
e.Row.Cells(1).Width = Unit.Pixel(440)
End If
'If e.Row.DBCampo("FechaDocumento") = "" Then e.Row.BackColor = Drawing.Color.LightGray
If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(1).ForeColor = Drawing.Color.Red
' e.Row.FCHyperLink("ImgAbonar").NavigateUrl = String.Format("/Bancos/ProveedoresAbonar.aspx?CveProveedor={0}&FechaI={1}&FechaF={2}&CveUsuarioProgramo={3}&CveMoneda={4}&Serie={5}", e.Row.DBCampo("CveProveedor"), If(txtFechaI.Text <> "", txtFechaI.Text, "-1"), If(txtFechaF.Text <> "", txtFechaF.Text, "-1"), DdlUsuarioProgramo.SelectedValue, e.Row.DBCampo("CveMoneda"), e.Row.DBCampo("Serie"))
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
End Sub
Private Sub CargaGrid(Orden As String)
GvESC.DataSource = DtDatos.FiltraParametros("CveProveedor IS NOT NULL", Orden)
GvESC.DataBind()
End Sub
Private Sub CargaGridPersonal(Orden As String)
Dim Mov As New ClsMovimientos
If Mov.GetEgresosSinComprobarPersonal(UsuarioActual.CveEmpresa) Then
GvPersonal.DataSource = Mov.DtResultados
DtFuncionariosEmpleados = Mov.DtResultados
End If
Mov.Dispose()
GvPersonal.DataBind()
End Sub
Private Sub LnkHabilitarSaldar_Click(sender As Object, e As EventArgs) Handles LnkHabilitarSaldar.Click
For Each gr As GridViewRow In GvESC.Rows
If gr.DataKey("CveIE") <> "" Then
gr.FCCheckBox("Chk").Visible = True
UPDatos.Update()
End If
Next
TxtConcepto.Text = "Saldado de Egresos por comprobar"
TxtFechaSaldar.Text = NowADS().ToShortDateString
DVSaldar.Visible = True
UpSaldar.Update()
End Sub
Private Sub LnkHabilitarSaldoFyE_Click(sender As Object, e As EventArgs) Handles LnkHabilitarSaldarFyE.Click
For Each gr As GridViewRow In GvPersonal.Rows
If gr.DataKey("CvePersonal") <> "" Then
gr.FCCheckBox("Chk").Visible = True
LnkSaldarFyE.Visible = True
LnkHabilitarSaldarFyE.Visible = False
upDatosPersonal.Update()
End If
Next
End Sub
Protected Sub LnkSaldar_Click(sender As Object, e As EventArgs)
Dim Contador As Integer = 0
For Each gr As GridViewRow In GvESC.Rows
If gr.FCCheckBox("Chk").Checked Then
Contador += 1
End If
Next
If Not Contador > 0 Then
Alert("No se hay movimientos seleccionados")
Exit Sub
End If
Dim ObjConta As New ClsContabilidad
Dim ObjProveedor As New ClsCompProveedores(ObjConta.IniciaTransacSQL())
Dim EsContabilizable As Boolean = If(UsuarioActual.CveEmpresa.Contiene(13, 83), False, True)
Dim CvePrePoliza As Integer = 0
Dim MsgError As String = ""
Try
If Contador > 0 Then
Dim tFecha As Date = TxtFechaSaldar.Text.ToDate
CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, 0, 0, 1, tFecha,
TxtConcepto.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
Dim ImporteSaldoGral As Decimal = 0
Dim TipoMovtoConcepto As Boolean = True
For Each gr As GridViewRow In GvESC.Rows
If gr.FCCheckBox("Chk").Checked Then
Dim ImporteSaldo As Decimal = gr.DataKey("Saldo").ToDecimal
Dim ConPrepAplicacion As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(11, gr.DataKey("CveMoneda").ToEntero, True, gr.DataKey("CveTipoProveedor").ToEntero)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteSaldo, ImporteSaldo, ConPrepAplicacion.CveConcepto, gr.DataKey("Folio"), TxtConcepto.Text,
CveIE:=gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero,
CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If gr.DataKey("CveMoneda").ToEntero > 1 Then
Dim TCValuacion As Decimal = gr.DataKey("TipoCambio").ToDecimal
If UsuarioActual.Empresa.Funcionalidad(703) = "1" Then
Dim tFechaUltimaFluctuacion As Date
Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha)
If UltimaFluctuacion IsNot Nothing Then
If UltimaFluctuacion.FechaFluctuacion < tFecha Then
tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion
TCValuacion = UltimaFluctuacion.TCFluctuacion
End If
If gr.DataKey("FechaDocumento").ToDate < tFechaUltimaFluctuacion Then TCValuacion = TCValuacion
End If
End If
Dim ImporteMN As Decimal = (ImporteSaldo * TCValuacion - ImporteSaldo).RoundSQL
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, ImporteMN, ImporteMN, ConPrepAplicacion.CveConceptoComplementario, gr.DataKey("Folio"), TxtConcepto.Text,
CveIE:=gr.DataKey("CveIE").ToEntero, TipoCambio:=TCValuacion, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero,
ImporteME:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
ImporteSaldo += ImporteMN
End If
ImporteSaldoGral += ImporteSaldo
End If
Next
If MsgError = "" Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoConcepto, ImporteSaldoGral, ImporteSaldoGral, 211, "", TxtConcepto.Text,
CveIE:=-1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
End If
If MsgError = "" AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then
MsgError = "Error al validar."
End If
End If
Else
Alert("No se especificaron")
End If
Catch ex As Exception
MsgError = "Ocurrió un error al generar la prepoliza"
OnError(MsgError, ex)
End Try
If MsgError = "" Then
'LnkSaldar.Visible = False
'LnkHabilitarSaldar.Visible = True
DVSaldar.Visible = False
ObjConta.Commit()
CargaDatos()
Alert(String.Format("Los movimientos se saldaron correctamente <br/> <a href='/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}' class='Texto'>Ver Póliza</a>", CvePrePoliza), TipoMensaje.MsgInformacion)
Else
ObjConta.RollBack()
Alert(MsgError, TipoMensaje.MsgError)
End If
ObjConta.Dispose()
ObjProveedor.Dispose()
End Sub
Protected Sub LnkSaldarFyE_Click(sender As Object, e As EventArgs)
Dim ObjConta As New ClsContabilidad
ObjConta.IniciaTransacSQL()
Dim CvePrePoliza As Integer = 0
Dim MsgError As String = ""
Try
For Each gr As GridViewRow In GvPersonal.Rows
If gr.FCCheckBox("Chk").Checked Then
Dim CveConceptoContable As Integer
Dim TipoMovtoOtIngresos As Boolean = True
Dim TipoMovtoConcepto As Boolean = False
Select Case gr.DataKey("CveConceptoContable").ToEntero
Case 10
CveConceptoContable = 21
Case 28
CveConceptoContable = 29
TipoMovtoOtIngresos = False
TipoMovtoConcepto = True
Case 37
CveConceptoContable = 43
Case 42
CveConceptoContable = 41
Case 43
CveConceptoContable = 37
End Select
CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, gr.DataKey("CveMoneda").ToEntero, NowADS(),
"Saldo de ExC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, CveConceptoContable, "", "Saldo de ExC por Sistema",
CveIE:=gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtIngresos, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, 78, "", "Saldo de ExC por Sistema", gr.DataKey("CveIE").ToEntero) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError)
End If
End If
End If
Next
Catch ex As Exception
MsgError = "Ocurrió un error al generar la prepoliza"
OnError(MsgError, ex)
End Try
If MsgError = "" Then
ObjConta.Commit()
CargaDatos()
Alert("Los movimientos se saldaron correctamente.")
Else
ObjConta.RollBack()
Alert(MsgError, TipoMensaje.MsgError)
End If
LnkSaldarFyE.Visible = False
LnkHabilitarSaldarFyE.Visible = True
ObjConta.Dispose()
End Sub
#Region "IMPRESIONES"
Private Sub ImprimirReportePdf(Archivo As String, DtDatos As DataTable, Optional Formato As String = "PDF")
If DtDatos.Rows.Count > 0 Then
Dim StrFiltro As New StringBuilder
If txtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio </b>: {0}", txtFechaI.Text.ToDate.ToShortDateString)
If txtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin </b>: {0}", txtFechaF.Text.ToDate.ToShortDateString)
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim FechaI, FechaF As String
FechaI = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", "-1", txtFechaI.Text)
FechaF = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", "-1", txtFechaF.Text)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaI))
params.Add(New ReportParameter("FechaFin", FechaF))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirPDF($"Empresas/Grales/Formatos/{Archivo}", DtDatos, params, String.Format("EgresosSinComprovante-{0}", NowADS().ToDateTime.ToShortDateString), Formato:=Formato)
End If
End Sub
#Region "PROVEEDORES"
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
ImprimirReportePdf("RepEgresosSinComprobante.rdlc", DtDatos.FiltraParametros(" RazonSocial is not null "), "EXCEL")
End Sub
Private Sub LinkPDF_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click
ImprimirReportePdf("RepEgresosSinComprobante.rdlc", DtDatos.FiltraParametros(" RazonSocial is not null "))
End Sub
#End Region
#Region "FUNCIONARIOS/EMPLEADOS"
Protected Sub LnkExportarFuncionarios_Click(sender As Object, e As EventArgs)
ImprimirReportePdf("RepEgresosSinComprobanteFuncionarios.rdlc", DtFuncionariosEmpleados, "EXCEL")
End Sub
Protected Sub LnkPDFFuncionarios_Click(sender As Object, e As EventArgs)
ImprimirReportePdf("RepEgresosSinComprobanteFuncionarios.rdlc", DtFuncionariosEmpleados)
End Sub
#End Region
#End Region
End Class