From 5339ee8aea71718ee3292e7d4bd02bfbd1c6ec1f Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Tue, 15 Jul 2025 23:33:50 -0700 Subject: [PATCH] Ajustes Layout Scotia --- App_Code/ClsBancos.vb | 19 +++- App_Code/ClsPagoScotia.vb | 120 ++++++++++------------- Bancos/CuentasBancariasDetalle.aspx | 5 + Bancos/CuentasBancariasDetalle.aspx.vb | 9 +- Bancos/PagoElectronico.aspx.vb | 128 +++++++++++++++++++------ Nomina/Nomina.aspx.cs | 61 ++++++++++-- 6 files changed, 224 insertions(+), 118 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 8882bb2d9..bd46e3ba4 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -128,6 +128,7 @@ Public Class ClsBancos Public Property Fecha As DateTime Public Property LimiteCredito As Double Public Property ConvenioPagoElectronico As String + Public Property ConvenioPagoElectronicoNomina As String Public Property UsaLayout As Boolean Public Property UsaLayoutGrupos As Boolean @@ -138,6 +139,7 @@ Public Class ClsBancos Public Property NumeroSucursal As String #End Region + Public Property SecuenciaLayout As Integer = 0 #Region " P R O P I E D A D E S - C O M P L E M E N T O P A G O" Public Property ComplementoSerieFolio As String @@ -420,6 +422,7 @@ Public Class ClsBancos Me.Usuario = Data.Rows(0)("Usuario").ToString Me.LimiteCredito = Data.Rows(0)("LimiteCredito").ToString.ToDouble Me.ConvenioPagoElectronico = Data.Rows(0)("ConvenioPagoElectronico").ToString + Me.ConvenioPagoElectronicoNomina = Data.Rows(0)("ConvenioPagoElectronicoNomina").ToString Me.UsaLayout = If(Data.Rows(0)("UsaLayout").ToString = "True", True, False) Me.UsaLayoutGrupos = If(Data.Rows(0)("UsaLayoutGrupos").ToString = "True", True, False) Me.UsaTarjeta = If(Data.Rows(0)("UsaTarjeta").ToString = "True", True, False) @@ -461,7 +464,7 @@ Public Class ClsBancos Public Function AddBancosCuentas(CveBanco As Integer, CveTipoCuenta As Integer, NumCuenta As String, CLABE As String, CveMoneda As Integer, DiaCorte As Integer, FInicial As Integer, FActual As Integer, FFinal As Integer, LimiteCredito As Double, FormatoCheque As String, CveUsuario As Integer, CveEmpresa As Integer, ConvenioPagoElectronico As String, UsaLayout As Boolean, UsaTarjeta As Boolean, Optional SaldoInicial As Double = 0, Optional UsaLayoutGrupos As Boolean = False, Optional TieneTerminal As Boolean = False, - Optional CveCuentaPadre As Integer = Nothing, Optional CveSubProyecto As Integer = -1, Optional NumeroSucursal As String = "-1") As Boolean + Optional CveCuentaPadre As Integer = Nothing, Optional CveSubProyecto As Integer = -1, Optional NumeroSucursal As String = "-1", Optional ConvenioPagoElectronicoNomina As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Banc_BancosCuentasAdd") @@ -482,6 +485,7 @@ Public Class ClsBancos .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveCuenta", SqlDbType.Int).Direction = ParameterDirection.Output .Add("@ConvenioPagoElectronico", SqlDbType.VarChar).Value = ConvenioPagoElectronico + .Add("@ConvenioPagoElectronicoNomina", SqlDbType.VarChar).Value = ConvenioPagoElectronicoNomina .Add("@UsaLayout", SqlDbType.Bit).Value = UsaLayout .Add("@UsaTarjeta", SqlDbType.Bit).Value = UsaTarjeta .Add("@SaldoInicial", SqlDbType.Money).Value = SaldoInicial @@ -513,7 +517,7 @@ Public Class ClsBancos Public Function UpdateBancosCuentas(CveBanco As Integer, CveTipoCuenta As Integer, NumCuenta As String, CLABE As String, CveMoneda As Integer, DiaCorte As Integer, FInicial As Integer, FActual As Integer, FFinal As Integer, LimiteCredito As Double, FormatoCheque As String, Estatus As Boolean, CveCuenta As Integer, ConvenioPagoElectronico As String, UsaLayout As Boolean, UsaTarjeta As Boolean, Optional UsaLayoutGrupos As Boolean = False, Optional TieneTerminal As Boolean = False, - Optional CveCuentaPadre As Integer = Nothing, Optional CveSubProyecto As Integer = -1, Optional NumeroSucursal As String = "-1") As Boolean + Optional CveCuentaPadre As Integer = Nothing, Optional CveSubProyecto As Integer = -1, Optional NumeroSucursal As String = "-1", Optional ConvenioPagoElectronicoNomina As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Banc_BancosCuentasUpdate") @@ -533,6 +537,7 @@ Public Class ClsBancos .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("@ConvenioPagoElectronico", SqlDbType.VarChar).Value = ConvenioPagoElectronico + .Add("@ConvenioPagoElectronicoNomina", SqlDbType.VarChar).Value = ConvenioPagoElectronicoNomina .Add("@UsaLayout", SqlDbType.Bit).Value = UsaLayout .Add("@UsaTarjeta", SqlDbType.Bit).Value = UsaTarjeta .Add("@UsaLayoutGrupos", SqlDbType.Bit).Value = UsaLayoutGrupos @@ -3110,9 +3115,9 @@ Public Class ClsBancos Return Retorno End Function - Public Function AddLayoutEnvios(Archivo As String, Fecha As Date, CveCuenta As Integer, Optional PorGrupos As Boolean = False) As Integer + Public Function AddLayoutEnvios(Archivo As String, Fecha As Date, CveCuenta As Integer, Optional PorGrupos As Boolean = False, Optional GenSecuencia As Boolean = False, Optional AltaCuenta As Boolean = False) As Integer Dim Retorno As Integer = -1 - + SecuenciaLayout = 0 DataAdapter("PA_Banc_LayoutEnviosAdd") With SqlAdapter.SelectCommand.Parameters @@ -3121,11 +3126,17 @@ Public Class ClsBancos .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("@PorGrupos", SqlDbType.Bit).Value = PorGrupos .Add("@CveLayoutEnvio", SqlDbType.Int).Direction = ParameterDirection.Output + + .Add("@GenSecuencia", SqlDbType.Bit).Value = GenSecuencia + .Add("@AltaCuenta", SqlDbType.Bit).Value = AltaCuenta + .Add("@Secuencia", SqlDbType.Int).Direction = ParameterDirection.Output + End With Try SqlAdapter.Fill(Data) Retorno = SqlAdapter.SelectCommand.Parameters("@CveLayoutEnvio").Value.ToString.ToEntero + SecuenciaLayout = SqlAdapter.SelectCommand.Parameters("@Secuencia").Value.ToString.ToEntero Catch ex As Exception OnError("Ocurrió un error al agregar el LayoutEnvio", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try diff --git a/App_Code/ClsPagoScotia.vb b/App_Code/ClsPagoScotia.vb index 377f7f3b4..e67737b7f 100644 --- a/App_Code/ClsPagoScotia.vb +++ b/App_Code/ClsPagoScotia.vb @@ -32,7 +32,7 @@ Public Class ClsPagoScotia Public Property TotalPagos As Integer = 0 Public Property NombreArchivo As String = "" - Public Function GeneraPagoScotiaBank(ByVal DTPendientes As DataTable, InsertaEnDB As Boolean, CveCuenta As Integer, UsuarioActual As Usuario) As Boolean + Public Function GeneraPagoScotiaBank(ByVal DTPendientes As DataTable, InsertaEnDB As Boolean, CveCuenta As Integer, UsuarioActual As Usuario, Secuencia As Integer, Optional EsNomina As Boolean = False) As Boolean 'ConvenioPagoElectronico = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("ConvenioPagoElectronico", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString(); Dim TamanoBloque As Integer = 5000 ' pagos por bloque @@ -57,6 +57,10 @@ Public Class ClsPagoScotia End If Dim NumeroConvenio As String = DTPendientes.Rows(0)("ConvenioPagoElectronico").ToString + If EsNomina Then + NumeroConvenio = DTPendientes.Rows(0)("ConvenioPagoElectronicoNomina").ToString + End If + If NumeroConvenio.Trim.Length = 0 Then LayouErrorStr = "El campo NumeroConvenio (ConvenioPagoElectronico) no está definido en los datos de la cuenta." ErrorLayout = True @@ -85,9 +89,9 @@ Public Class ClsPagoScotia Dim ha As New StringBuilder() ha.Append("EE") ' 1‑2 Tipo Archivo ha.Append("HA") ' 3‑4 Tipo Registro - ha.Append(NumeroConvenio.PadLeft(5, "0"c)) ' 5‑9 Nº Convenio - ha.Append("01") ' 10‑11 Secuencia fija "01" - ha.Append("00000000") ' 12‑19 Fecha generación + ha.Append(NumeroConvenio.PadLeft(5, CERO)) ' 5‑9 Nº Convenio + ha.Append(Secuencia.ToString.PadLeft(2, CERO)) ' 10‑11 Secuencia fija "01" + ha.Append("00000000") ' 12‑19 Fecha generación ha.Append("00000000") ' 20‑27 Fecha inicial (opcional) ha.Append("00000000") ' 28‑35 Fecha final (opcional) ha.Append("000") ' 36‑38 Código status "000" @@ -331,35 +335,35 @@ Public Class ClsPagoScotia NombreArchivo = $"pagos_{ClsPaginas.NowADS.ToString("ddMMyyyy")}_001.txt" '"pagos_03062025_001.txt" - If InsertaEnDB Then + 'If InsertaEnDB Then - Dim ObjBancos As New ClsBancos - ObjBancos.IniciaTransacSQL() + ' Dim ObjBancos As New ClsBancos + ' ObjBancos.IniciaTransacSQL() - Dim CveLayoutEnvio As Integer = ObjBancos.AddLayoutEnvios(NombreArchivo, ClsPaginas.NowADS(), CveCuenta, PorGrupos:=True) + ' Dim CveLayoutEnvio As Integer = ObjBancos.AddLayoutEnvios(NombreArchivo, ClsPaginas.NowADS(), CveCuenta, PorGrupos:=False) - If CveLayoutEnvio > 0 Then - For Each dr As DataRow In DTPendientes.Rows - If dr("CveProveedor").ToString <> "" Or dr("CvePersonal").ToString <> "" Then - If Not ObjBancos.AddLayoutEnviosDetalle(CveLayoutEnvio, dr("CveIE").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, 1, "Observaciones") Then - ErrorLayout = True - Exit For - End If - End If - Next - Else - ErrorLayout = True - End If + ' If CveLayoutEnvio > 0 Then + ' For Each dr As DataRow In DTPendientes.Rows + ' If dr("CveProveedor").ToString <> "" Or dr("CvePersonal").ToString <> "" Then + ' If Not ObjBancos.AddLayoutEnviosDetalle(CveLayoutEnvio, dr("CveIE").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, 1, "Observaciones") Then + ' ErrorLayout = True + ' Exit For + ' End If + ' End If + ' Next + ' Else + ' ErrorLayout = True + ' End If - If ErrorLayout Then - ObjBancos.RollBack() - ObjBancos.Dispose() - Else - ObjBancos.Commit() - ObjBancos.Dispose() - End If + ' If ErrorLayout Then + ' ObjBancos.RollBack() + ' ObjBancos.Dispose() + ' Else + ' ObjBancos.Commit() + ' ObjBancos.Dispose() + ' End If - End If + 'End If Dim path As String = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim pathDirectorio As String = String.Format("{0}Layout\", UsuarioActual.Empresa.Ruta) @@ -418,8 +422,8 @@ Public Class ClsPagoScotia Optional MovimientoDefault As Char = "P"c ' P =pago, cambia si usas A/C/B ) As Boolean - Dim objBanco As New ClsBancos - objBanco.IniciaTransacSQL() + 'Dim objBanco As New ClsBancos + ErrorLayout = False LayoutStr = "" @@ -473,6 +477,9 @@ Public Class ClsPagoScotia ErrorLayout = True End If + + + Dim sb As New StringBuilder '============================================================= @@ -482,17 +489,17 @@ Public Class ClsPagoScotia 'Dim hora As String = Now.ToString("HHmmss") Dim Header As New StringBuilder() - Header.Append(TipoArchivo.PadRight(2, Space)) 'TIPO ARCHIVO (2) - Header.Append("HA") 'TIPO REGISTRO (2) - Header.Append("JDF") 'SISTEMA-CENTRAL (3) - Header.Append(NumeroConvenio.PadLeft(7, Cero)) 'NUMERO DE CONTRATO (7) ' ocupa 5 dígitos pero en el layout se usa 7 - Header.Append(ClsPaginas.NowADS.ToString("yyyyMMdd")) 'FECHA-SOLICITUD (8) - Header.Append("001") 'SECUENCIA (3) - Header.Append("M") 'MANTENIMIENTO-O-CONSULTA (1) - Header.Append(" ".PadLeft(8, Space)) 'FECHA GENERACIÓN ARCHIVO (8) *** Respusta de ScotiaBank *** - Header.Append(" ".PadLeft(6, Space)) 'Hora GENERACIÓN ARCHIVO (6) *** Respusta de ScotiaBank *** - Header.Append(" ".PadLeft(3, Space)) 'CÓDIGO-RESPUESTA (3) *** Respusta de ScotiaBank *** - Header.Append(" ".PadLeft(97, Space)) 'FILLER (97) + Header.Append(TipoArchivo.PadRight(2, Space)) 'TIPO ARCHIVO (2) + Header.Append("HA") 'TIPO REGISTRO (2) + Header.Append("JDF") 'SISTEMA-CENTRAL (3) + Header.Append(NumeroConvenio.PadLeft(7, Cero)) 'NUMERO DE CONTRATO (7) ' ocupa 5 dígitos pero en el layout se usa 7 + Header.Append(ClsPaginas.NowADS.ToString("yyyyMMdd")) 'FECHA-SOLICITUD (8) + Header.Append(Secuencia.ToString().PadLeft(3, Cero)) 'SECUENCIA (3) + Header.Append("M") 'MANTENIMIENTO-O-CONSULTA (1) + Header.Append(" ".PadLeft(8, Space)) 'FECHA GENERACIÓN ARCHIVO (8) *** Respusta de ScotiaBank *** + Header.Append(" ".PadLeft(6, Space)) 'Hora GENERACIÓN ARCHIVO (6) *** Respusta de ScotiaBank *** + Header.Append(" ".PadLeft(3, Space)) 'CÓDIGO-RESPUESTA (3) *** Respusta de ScotiaBank *** + Header.Append(" ".PadLeft(97, Space)) 'FILLER (97) sb.AppendLine(Header.ToString) @@ -646,39 +653,8 @@ Public Class ClsPagoScotia LayoutStr = sb.ToString() - - If Not ErrorLayout Then - objBanco.Commit() - Else - objBanco.RollBack() - End If - Return If(ErrorLayout, False, True) - - 'If SBErrores.Length > 0 Then - ' LayouErrorStr = "Errores encontrados al generar el layout de ScotiaBank:
" & SBErrores.ToString - ' ErrorLayout = True - 'Else - ' If CreaArchivo(sb.ToString, NombreArchivo, UsuarioActual:=UsuarioActual) Then - ' DVDescargaPagos.Visible = False - ' DVDescargaReporte.Visible = False - ' LblCuentas.Text = "Cuentas Bajio" - ' 'NombreArchivoBancomer = "" 'No usamos estos para scotia - ' 'NombreArchivoInterbancario = "" - ' 'NombreArchivoCIE = "" - ' 'NombreArchivo = NombreArchivoEnviado - ' DVDescargaCuentas1.Visible = True - ' LnkDescargaCuentas1.Text = NombreArchivo - ' RegistraScript("$('#ModalDescarga').modal({ backdrop: 'static', keyboard: false});") - ' UpModalDescarga.Update() - ' End If - 'End If - - - - 'CargaDatos() - End Function diff --git a/Bancos/CuentasBancariasDetalle.aspx b/Bancos/CuentasBancariasDetalle.aspx index 3dfb2c2d0..15cccd443 100644 --- a/Bancos/CuentasBancariasDetalle.aspx +++ b/Bancos/CuentasBancariasDetalle.aspx @@ -113,6 +113,11 @@ + + Convenio: + + + diff --git a/Bancos/CuentasBancariasDetalle.aspx.vb b/Bancos/CuentasBancariasDetalle.aspx.vb index 02e5228f9..5a50b8c43 100644 --- a/Bancos/CuentasBancariasDetalle.aspx.vb +++ b/Bancos/CuentasBancariasDetalle.aspx.vb @@ -216,6 +216,7 @@ Partial Class Bancos_CuentasBancariasDetalle LblFecha.Text = ObjCuentasBancariasDetalle.Fecha.ToShortDateString LblUsuario.Text = ObjCuentasBancariasDetalle.Usuario TxtConvenio.Text = ObjCuentasBancariasDetalle.ConvenioPagoElectronico.ToString + TxtConvenioNomina.Text = ObjCuentasBancariasDetalle.ConvenioPagoElectronicoNomina ChkLayout.Checked = ObjCuentasBancariasDetalle.UsaLayout ChkLayoutGrupos.Checked = ObjCuentasBancariasDetalle.UsaLayoutGrupos ChkUsaTarjeta.Checked = ObjCuentasBancariasDetalle.UsaTarjeta @@ -296,7 +297,8 @@ Partial Class Bancos_CuentasBancariasDetalle TxtCLABE.Text.Trim, DdlMoneda.SelectedValue.ToEntero, 0, TxtFInicial.Text.Trim.ToEntero, 0, 0, TxtLimiteCredito.Text.Trim.ToDouble, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, If(ChkLayout.Checked, TxtConvenio.Text, ""), ChkLayout.Checked, ChkUsaTarjeta.Checked, UsaLayoutGrupos:=ChkLayoutGrupos.Checked, TieneTerminal:=ChkTieneTerminal.Checked, - CveCuentaPadre:=DdlCuentaPadre.SelectedValue.ToEntero, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, NumeroSucursal:=TxtNumeroSucursal.Text.Trim) Then + CveCuentaPadre:=DdlCuentaPadre.SelectedValue.ToEntero, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, NumeroSucursal:=TxtNumeroSucursal.Text.Trim, +ConvenioPagoElectronicoNomina:=TxtConvenioNomina.Text) Then ViewState("CveCuenta") = ObjCuentasBancariasDetalle.TCveCuenta Else ErrorUsuarios = True @@ -331,7 +333,8 @@ Partial Class Bancos_CuentasBancariasDetalle If ObjCuentasBancariasDetalle.UpdateBancosCuentas(DdlBanco.SelectedValue.ToEntero, DdlTipoCuenta.SelectedValue.ToEntero, TxtNumCuenta.Text.Trim, TxtCLABE.Text.Trim, DdlMoneda.SelectedValue.ToEntero, 0, TxtFInicial.Text.Trim.ToEntero, 0, 0, TxtLimiteCredito.Text.Trim.ToDouble, "", ChkEstatus.Checked, CveCuenta, TxtConvenio.Text, ChkLayout.Checked, ChkUsaTarjeta.Checked, UsaLayoutGrupos:=ChkLayoutGrupos.Checked, TieneTerminal:=ChkTieneTerminal.Checked, - CveCuentaPadre:=DdlCuentaPadre.SelectedValue.ToEntero, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, NumeroSucursal:=TxtNumeroSucursal.Text.Trim) Then + CveCuentaPadre:=DdlCuentaPadre.SelectedValue.ToEntero, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, NumeroSucursal:=TxtNumeroSucursal.Text.Trim, + ConvenioPagoElectronicoNomina:=TxtConvenioNomina.Text) Then 'CargaDatos() GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa) = Nothing GlobalDTBancosCuentasGral(UsuarioActual.CveEmpresa) = Nothing @@ -688,8 +691,10 @@ Partial Class Bancos_CuentasBancariasDetalle Private Sub InicializaConvenio() If ChkLayout.Checked Then TrConvenio.Visible = True + TrConvenioNomina.Visible = True Else TrConvenio.Visible = False + TrConvenioNomina.Visible = False End If End Sub Protected Sub ChkLayout_CheckedChanged(sender As Object, e As EventArgs) diff --git a/Bancos/PagoElectronico.aspx.vb b/Bancos/PagoElectronico.aspx.vb index 20b6d6744..24e8d132d 100644 --- a/Bancos/PagoElectronico.aspx.vb +++ b/Bancos/PagoElectronico.aspx.vb @@ -8,6 +8,7 @@ Imports System.Data Imports System.Data.Entity Imports System.Data.SqlClient Imports System.IO +Imports System.Runtime.ConstrainedExecution Imports System.Runtime.Remoting Imports AjaxControlToolkit.AsyncFileUpload.Constants Imports Extensiones @@ -656,9 +657,11 @@ Partial Class Bancos_PagoElectronico End If End Sub Protected Sub LBRegenerar_Click(sender As Object, e As EventArgs) + Dim CveBLE As Integer = CType(sender, LinkButton).CommandArgument.ToEntero Dim DtRegenerar As New DataTable + Dim ObjBancos As New ClsBancos If ObjBancos.GetLayoutPagos(CveCuenta, CveBLE, "-1") Then DtRegenerar = ObjBancos.DtResultados @@ -676,11 +679,16 @@ Partial Class Bancos_PagoElectronico End If If OpBancos = 3 Then + If DtRegenerar IsNot Nothing Then + + Dim Secuencia As Integer = DtRegenerar.Rows(0)("Secuencia").ToString.ToEntero + Secuencia = If(Secuencia <= 0, 1, Secuencia) + Dim ErrorScotia As Boolean = False Using objScotia As New ClsPagoScotia - If objScotia.GeneraPagoScotiaBank(DtRegenerar, False, CveCuenta, UsuarioActual) Then + If objScotia.GeneraPagoScotiaBank(DtRegenerar, False, CveCuenta, UsuarioActual, Secuencia) Then If objScotia.ErrorLayout = False And objScotia.TotalPagos > 0 Then @@ -748,21 +756,41 @@ Partial Class Bancos_PagoElectronico Dim fechaHoy As String = DateTime.Today.ToString("MM/dd/yyyy") Dim ErrorCuentas As Boolean = False - Using objPagoScotia As New ClsPagoScotia - If objPagoScotia.AltaCuentasScotia(DTPendientes.FiltraParametros($" EstatusPagoElectronicoScotia = False Or FechaEliminacion < #{fechaHoy}#"), UsuarioActual) Then - DVDescargaPagos.Visible = False - DVDescargaReporte.Visible = False - LblCuentas.Text = "Cuentas Bajio" - DVDescargaCuentas1.Visible = True - LnkDescargaCuentas1.Text = objPagoScotia.NombreArchivo - RegistraScript("$('#ModalDescarga').modal({ backdrop: 'static', keyboard: false});") - UpModalDescarga.Update() - Else - Alert($"Errores detectados
{objPagoScotia.LayouErrorStr.ToString}", TipoMensaje.MsgAdvertencia) - ErrorCuentas = True - End If - End Using + Dim objBancos As New ClsBancos + objBancos.IniciaTransacSQL() + + Dim NombreArchivoAltas = $"altacuentasScotia_{NowADS():ddMMyyyy}_001.txt" + Dim CveLayoutEnvio As Integer = objBancos.AddLayoutEnvios(NombreArchivoAltas, ClsPaginas.NowADS(), DdlCuenta.SelectedValue.ToEntero, PorGrupos:=True, GenSecuencia:=True, AltaCuenta:=True) + Dim Secuencia As Integer = objBancos.SecuenciaLayout + + If CveLayoutEnvio > 0 AndAlso Secuencia > 0 Then + Using objPagoScotia As New ClsPagoScotia + If objPagoScotia.AltaCuentasScotia(DTPendientes.FiltraParametros($" EstatusPagoElectronicoScotia = False Or FechaEliminacion < #{fechaHoy}#"), UsuarioActual, Secuencia:=Secuencia) Then + + DVDescargaPagos.Visible = False + DVDescargaReporte.Visible = False + LblCuentas.Text = "Cuentas Bajio" + DVDescargaCuentas1.Visible = True + LnkDescargaCuentas1.Text = objPagoScotia.NombreArchivo + RegistraScript("$('#ModalDescarga').modal({ backdrop: 'static', keyboard: false});") + UpModalDescarga.Update() + Else + Alert($"Errores detectados
{objPagoScotia.LayouErrorStr.ToString}", TipoMensaje.MsgAdvertencia) + ErrorCuentas = True + End If + End Using + End If + + + If Not ErrorCuentas Then + objBancos.Commit() + Else + objBancos.RollBack() + Alert("Se presento un error al gennerar el layout.") + End If + + objBancos.Dispose() 'AltaCuentasScotia(DTPendientes.FiltraParametros($" EstatusPagoElectronicoScotia = False Or FechaEliminacion < #{fechaHoy}#")) @@ -1130,30 +1158,68 @@ Partial Class Bancos_PagoElectronico DTPendientes.FiltraParametros("EstatusPagoElectronicoScotia = 'True' AND EstatusCtaDeposito = 'True'").Rows.Count > 0 Then Dim errorScotia As Boolean = False - Using objScotia As New ClsPagoScotia - If objScotia.GeneraPagoScotiaBank(DTPendientes.FiltraParametros("EstatusPagoElectronicoScotia = 'True' AND EstatusCtaDeposito = 'True'"), True, CveCuenta, UsuarioActual) Then + Dim NombreArchivoPagos = $"pagos_{ClsPaginas.NowADS.ToString("ddMMyyyy")}_001.txt" - If objScotia.ErrorLayout = False And objScotia.TotalPagos > 0 Then + Dim ObjBancos As New ClsBancos + ObjBancos.IniciaTransacSQL() - DVDescargaPagos.Visible = True - DVDescargaCuentas1.Visible = False - DVDescargaReporte.Visible = True - DT_PagosReporte = DTPendientes.Copy - LnkDescarga.Text = objScotia.NombreArchivo - RegistraScript("$('#ModalDescarga').modal({ backdrop: 'static', keyboard: false});") - UpModalDescarga.Update() + Dim CveLayoutEnvio As Integer = ObjBancos.AddLayoutEnvios(NombreArchivoPagos, ClsPaginas.NowADS(), CveCuenta, PorGrupos:=False, GenSecuencia:=True, AltaCuenta:=False) + Dim SecuenciaLayout As Integer = ObjBancos.SecuenciaLayout + + If CveLayoutEnvio > 0 AndAlso SecuenciaLayout > 0 Then + For Each dr As DataRow In DTPendientes.Rows + If dr("CveProveedor").ToString <> "" Or dr("CvePersonal").ToString <> "" Then + If Not ObjBancos.AddLayoutEnviosDetalle(CveLayoutEnvio, dr("CveIE").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, 1, "Observaciones") Then + errorScotia = True + Exit For + End If + End If + Next + Else + errorScotia = True + End If + + 'Dim objScotiaNombreArchivo As String = "" + + If Not errorScotia AndAlso CveLayoutEnvio > 0 AndAlso SecuenciaLayout > 0 Then + Using objScotia As New ClsPagoScotia + + If objScotia.GeneraPagoScotiaBank(DTPendientes.FiltraParametros("EstatusPagoElectronicoScotia = 'True' AND EstatusCtaDeposito = 'True'"), True, CveCuenta, UsuarioActual, SecuenciaLayout) Then + + If objScotia.ErrorLayout = False And objScotia.TotalPagos > 0 Then + + DVDescargaPagos.Visible = True + DVDescargaCuentas1.Visible = False + DVDescargaReporte.Visible = True + DT_PagosReporte = DTPendientes.Copy + LnkDescarga.Text = objScotia.NombreArchivo + RegistraScript("$('#ModalDescarga').modal({ backdrop: 'static', keyboard: false});") + UpModalDescarga.Update() + + Else + Alert($"Errores detectados
{objScotia.LayouErrorStr.ToString}", TipoMensaje.MsgAdvertencia) + errorScotia = True + End If Else - Alert($"Errores detectados
{objScotia.LayouErrorStr.ToString}", TipoMensaje.MsgAdvertencia) errorScotia = True + Alert("Error al generar el pago de ScotiaBank. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If + End Using + End If + + + + If Not errorScotia Then + ObjBancos.Commit() + Else + ObjBancos.RollBack() + End If + + ObjBancos.Dispose() + - Else - errorScotia = True - Alert("Error al generar el pago de ScotiaBank. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - End Using If Not errorScotia Then CargaDatos() diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index e64f92c50..f88adf37c 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -10835,9 +10835,9 @@ public partial class Nomina_Nomina2 : ClsPaginas } else if (DdlCuenta.SelectedItem.Text.ToUpper().Contains("SCOTIA")) { - DivModalLayoutBancosFecha.Visible = false; + //DivModalLayoutBancosFecha.Visible = false; Banco = Bancos.ScotiaBank; - PreparaLayoutBancosScotiaBank(); + //PreparaLayoutBancosScotiaBank(); } else { @@ -11300,6 +11300,7 @@ public partial class Nomina_Nomina2 : ClsPaginas { string ConvenioPagoElectronicoScotia = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("ConvenioPagoElectronico", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString(); + string ConvenioPagoElectronicoNomina = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("ConvenioPagoElectronicoNomina", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString(); string NumCuentaOrigen = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("NumCuenta", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString(); string CLABEOrigen = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("CLABE", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString(); //CASE WHEN LEN(BC.NumCuenta) > 0 THEN BC.NumCuenta ELSE BC.CLABE END AS CLABEOrigen, @@ -11307,7 +11308,12 @@ public partial class Nomina_Nomina2 : ClsPaginas if (!DTResultados.Columns.Contains("ConvenioPagoElectronico")) { DTResultados.Columns.Add("ConvenioPagoElectronico", typeof(string)); - } + } + + if (!DTResultados.Columns.Contains("ConvenioPagoElectronicoNomina")) + { + DTResultados.Columns.Add("ConvenioPagoElectronicoNomina", typeof(string)); + } if (!DTResultados.Columns.Contains("CLABEOrigen")) { @@ -11322,7 +11328,8 @@ public partial class Nomina_Nomina2 : ClsPaginas foreach (DataRow dRow in DTResultados.Rows) { dRow["ConvenioPagoElectronico"] = ConvenioPagoElectronicoScotia; - dRow["CLABEOrigen"] = NumCuentaOrigen.Length > 0 ? NumCuentaOrigen : CLABEOrigen; // Si no tiene numero de cuenta, se usa la CLABE + dRow["CLABEOrigen"] = NumCuentaOrigen.Length > 0 ? NumCuentaOrigen : CLABEOrigen; // Si no tiene numero de cuenta, se usa la CLABE4 + dRow["ConvenioPagoElectronicoNomina"] = ConvenioPagoElectronicoNomina; dRow["Observaciones"] = dRow["CveNominaDetalle"].ToString(); } @@ -11358,22 +11365,58 @@ public partial class Nomina_Nomina2 : ClsPaginas CvePersonal */ + ClsBancos ObjBancos = new ClsBancos(); + bool errorScotia = false; + ObjBancos.IniciaTransacSQL(); - if (objPagoScotia.GeneraPagoScotiaBank(DTResultados, false, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual)) + string NombreArchivoPagos = $"pagos_{ClsPaginas.NowADS().ToString("ddMMyyyy")}_001.txt"; + + int CveLayoutEnvio = ObjBancos.AddLayoutEnvios(NombreArchivoPagos, ClsPaginas.NowADS(), DdlCuenta.SelectedValue.ToEntero(), PorGrupos: false, GenSecuencia: true, AltaCuenta: false); + int SecuenciaLayout = ObjBancos.SecuenciaLayout; + + string objPagoScotiaNombreArchivo = ""; + string objPagoScotiaLayoutStr = ""; + + if (CveLayoutEnvio > 0 && SecuenciaLayout > 0) { + if (objPagoScotia.GeneraPagoScotiaBank(DTResultados, false, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual, Secuencia:SecuenciaLayout,EsNomina:true)) + { + objPagoScotiaNombreArchivo = objPagoScotia.NombreArchivo; + objPagoScotiaLayoutStr = objPagoScotia.LayoutStr; + } + else + { + Alert(objPagoScotia.LayouErrorStr, TipoMensaje.MsgAdvertencia); + RegistraScript("$('#ModalLayoutBancos').modal('show');"); + } + } + else + { + errorScotia = true; + } + + if (!errorScotia) + { + ObjBancos.Commit(); + Response.Clear(); Response.Buffer = true; Response.ContentType = "text/plain"; - Response.AddHeader("Content-Disposition", "attachment;filename=" + objPagoScotia.NombreArchivo); - Response.Write(objPagoScotia.LayoutStr); + Response.AddHeader("Content-Disposition", "attachment;filename=" + objPagoScotiaNombreArchivo); + Response.Write(objPagoScotiaLayoutStr); Response.Flush(); Response.End(); } else { - Alert(objPagoScotia.LayouErrorStr, TipoMensaje.MsgAdvertencia); - RegistraScript("$('#ModalLayoutBancos').modal('show');"); + ObjBancos.RollBack(); } + + ObjBancos.Dispose(); + + + + } } else{