From 0d27c67db110569c6b508cb482d61834cba3216a Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Tue, 7 Apr 2020 15:33:54 -0700 Subject: [PATCH] Pago electronico por grupos, actualizar estatus al generar layout, bloque en proveeedores aboar cuando no hat --- App_Code/ClsGenerales.vb | 28 + Bancos/PagoElectronicoGrupos.aspx | 4 +- Bancos/PagoElectronicoGrupos.aspx.vb | 1593 +++++++++++++------------- 3 files changed, 834 insertions(+), 791 deletions(-) diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 60e55b897..b47b3d317 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -1496,6 +1496,34 @@ Public Class ClsGenerales Return Retorno End Function + Public Function UpdateCuentasDepositosEstatusPagoElectronicoGrupos(CveCuentaDeposito As Integer, EstatusPagoElectronicoGrupos As Boolean) As Boolean + + Dim Retorno As Boolean = False + + DataAdapter("PA_Gral_CuentasDepositosUpdateEstatusPagoElectronicoGrupos") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCuentaDeposito", SqlDbType.VarChar).Value = CveCuentaDeposito + .Add("@EstatusPagoElectronicoGrupos", SqlDbType.Bit).Value = EstatusPagoElectronicoGrupos + End With + + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya existe un registro con el mismo nombre", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al guardar los cambios", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al guardar los cambios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region #Region "T I P O - C A M B I O" diff --git a/Bancos/PagoElectronicoGrupos.aspx b/Bancos/PagoElectronicoGrupos.aspx index 521e5853c..e8c9384e9 100644 --- a/Bancos/PagoElectronicoGrupos.aspx +++ b/Bancos/PagoElectronicoGrupos.aspx @@ -166,7 +166,7 @@ -
+ <%--
@@ -216,7 +216,7 @@
-
+
--%> diff --git a/Bancos/PagoElectronicoGrupos.aspx.vb b/Bancos/PagoElectronicoGrupos.aspx.vb index 0e89dec64..40f10f8f6 100644 --- a/Bancos/PagoElectronicoGrupos.aspx.vb +++ b/Bancos/PagoElectronicoGrupos.aspx.vb @@ -374,24 +374,25 @@ Partial Class Bancos_PagoElectronicoGrupos fs.Close() Return True - End Function - Private Function GuardaTXT() As Boolean - Dim Retorno = True - Try - Dim Ruta = "" - Dim FileName As String = Path.GetFileName(FUTxt.PostedFile.FileName) - NombreArchivo = FileName - Dim Extension As String = Path.GetExtension(FUTxt.PostedFile.FileName) - Dim FolderPath As String = String.Format("{0}Empresas\", Request.ApplicationPath) - Dim FilePath As String = Server.MapPath(FolderPath + FileName) - FUTxt.SaveAs(FilePath) - NombreArchivo = FilePath - Catch ex As Exception - Retorno = False - End Try - - Return Retorno End Function + + 'Private Function GuardaTXT() As Boolean + ' Dim Retorno = True + ' Try + ' Dim Ruta = "" + ' Dim FileName As String = Path.GetFileName(FUTxt.PostedFile.FileName) + ' NombreArchivo = FileName + ' Dim Extension As String = Path.GetExtension(FUTxt.PostedFile.FileName) + ' Dim FolderPath As String = String.Format("{0}Empresas\", Request.ApplicationPath) + ' Dim FilePath As String = Server.MapPath(FolderPath + FileName) + ' FUTxt.SaveAs(FilePath) + ' NombreArchivo = FilePath + ' Catch ex As Exception + ' Retorno = False + ' End Try + + ' Return Retorno + 'End Function #End Region #Region " TAB PRINCIPAL " @@ -544,9 +545,11 @@ Partial Class Bancos_PagoElectronicoGrupos DtCuentasPendientesTemp.CaseSensitive = False - Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"}) - Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"}) - 'CLABEDestino + Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"}) + Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CveProveedor", "CveBanco", "Cuenta", "BBVAAlias"}) + + + Dim ObjGrales As New ClsGenerales If DtCuentasPendientesBancomer.Rows.Count > 0 Then For Each dRow As DataRow In DtCuentasPendientesBancomer.Rows @@ -591,6 +594,7 @@ Partial Class Bancos_PagoElectronicoGrupos If Not ErrorLineaBancomer Then RegistrosAltaBancomer.Append(SBTmpBancomer.ToString) + ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True) Else SBErroresBancomer.Append("
") SBErrores.AppendLine(SBErroresBancomer.ToString) @@ -667,6 +671,7 @@ Partial Class Bancos_PagoElectronicoGrupos If Not ErrorLineaInterbancaria Then RegistrosAltaInterbancario.Append(SBTmpInterbancarias.ToString) + ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True) Else SBErroresInterBancario.Append("
") SBErrores.AppendLine(SBErroresInterBancario.ToString) @@ -683,6 +688,7 @@ Partial Class Bancos_PagoElectronicoGrupos End If + ObjGrales.Dispose() Dim Mensaje As New StringBuilder @@ -711,6 +717,7 @@ Partial Class Bancos_PagoElectronicoGrupos End If + CargaDatos() End Sub @@ -1327,240 +1334,240 @@ Partial Class Bancos_PagoElectronicoGrupos DtAlta.Columns.Add("MensajeAdicional", GetType(String)) DtAlta.Columns.Add("Moneda", GetType(String)) - End Sub - - - Protected Sub BtnCargarAlta_Click(sender As Object, e As EventArgs) - Dim ErrorArchivo = False - - If FUTxt.HasFile Then - If Not GuardaTXT() Then - Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError) - Exit Sub - End If - Else - Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - - 'LEE TXT - Dim Texto As String - - Dim sr As New System.IO.StreamReader(NombreArchivo) - Texto = sr.ReadToEnd() - sr.Close() - - Dim TextoArreglo() = Texto.Split(CChar(vbCrLf)) - - 'Alert(TextoArreglo.Length.ToString) - - 'LEE LINEA POR LINEA - Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", CveCuentasDeposito = "" - CreaDtAlta() - Dim ObjGrales As New ClsGenerales - Dim Row As DataRow = Nothing - Dim TipoCuentaDeposito = "" - - For i = 0 To TextoArreglo.Length - 1 Step 1 - 'Valida que el primer renglon sea el HEADER - If i = 0 Then - If TextoArreglo(i).Substring(0, 1) <> "H" Then - ErrorArchivo = True - Exit For - Else - RespuestaHeader = TextoArreglo(i).Substring(50, 2) - End If - Else - 'LEE DETALLE - If TextoArreglo(i).Length > 1 Then - If TextoArreglo(i).Substring(1, 1) = "D" Then - - 'If i > 1 Then - ' RespuestaDetalle += vbCrLf - 'End If - - 'RespuestaDetalle += String.Format("{0}{1}", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30))) - - ''Guardo CveCuentaDeposito cuando la operacion salio exitosa para actualizar en la DB - If TextoArreglo(i).Substring(597, 2) = "00" Or TextoArreglo(i).Substring(597, 2) = "34" Then - CveCuentasDeposito += If(CveCuentasDeposito <> "", ",", "") - CveCuentasDeposito += TextoArreglo(i).Substring(3, 30).ToEntero.ToString - End If - - - ''LLENA DT PARA REPORTE - Row = DtAlta.NewRow() - - Row("Proveedor") = If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim) - - 'BANCO - If ObjGrales.GetCuentasDepositos(CveCuentaDeposito:=TextoArreglo(i).Substring(3, 30).ToEntero) Then - If ObjGrales.DtResultados.Rows.Count = 1 Then - Row("Banco") = ObjGrales.DtResultados.Rows(0)("BancoNombre").ToString - Else - ErrorArchivo = True - Exit For - End If - Else - ErrorArchivo = True - Exit For - End If - - 'CUENTA - If TextoArreglo(i).Substring(41, 2).Trim <> "" Then - Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)) - ElseIf TextoArreglo(i).Substring(81, 2).Trim <> "" Then - Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(83, 35).TrimStart("0"c)) - Row("TipoCuenta") = "CLABE" - Else - ErrorArchivo = True - Exit For - End If - - 'TIPO CUENTA - If Row("TipoCuenta").ToString = "" Then - If String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 8 Then - Row("TipoCuenta") = "CIE" - ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 10 Or String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 9 Then - Row("TipoCuenta") = "Cuenta" - ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 18 Then - Row("TipoCuenta") = "CLABE" - End If - End If - - Row("Estatus") = TextoArreglo(i).Substring(599, 30) - - DtAlta.Rows.Add(Row) - - ''LLENA PARA ALERT - 'If i > 1 Then - ' RespuestaDetalle += vbCrLf - 'End If - - 'RespuestaDetalle += String.Format("{0}{1}", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30))) - - - 'LEE TRAILER - ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then - RespuestaTrailer = TextoArreglo(i).Substring(32, 10) - RespuestaTrailer += vbCrLf - RespuestaTrailer += TextoArreglo(i).Substring(42, 10) - RespuestaTrailer += vbCrLf - RespuestaTrailer += TextoArreglo(i).Substring(52, 10) - Exit For - Else - ErrorArchivo = True - Exit For - End If - End If - End If - Next - ObjGrales.Dispose() - - - Dim Respuesta As New StringBuilder - 'LEE ARCHIVO - If Not ErrorArchivo Then - 'TRADUCE CODIGO RESPUESTA HEADER - If RespuestaHeader = "01" Then - RespuestaHeader = "ACEPTADO TOTAL" - ElseIf RespuestaHeader = "02" Then - RespuestaHeader = "ACEPTADO PARCIAL" - ElseIf RespuestaHeader = "03" Then - RespuestaHeader = "RECHAZADO" - End If - - 'DIVIDE DETALLE - Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf)) - - 'DIVIDE TRAILER - Dim Trailer() = RespuestaTrailer.Split(CChar(vbCrLf)) - - 'ARMADO DE RESPUESTA - Respuesta.AppendFormat("
Resumen de respuesta: {0}
", RespuestaHeader) - Respuesta.AppendFormat("Numero de movimientos: {0}


", DtAlta.Rows.Count) - Respuesta.Append("------------------------------ Detalle de los movimientos ------------------------------
") - - Respuesta.Append("") - 'For i = 0 To Detalle.Length - 1 - ' Respuesta.AppendFormat("{1}", i + 1, Detalle(i).Trim) - 'Next - Dim i = 1 - Dim Style = "" - Dim TotalExitos = 0, TotalFracasos = 0 - For Each dr As DataRow In DtAlta.Rows - - If dr("estatus").ToString.Trim.Contiene("OPERACION EXITOSA", "ALTA TERCERO EXITOSO") Then - Style = "" - TotalExitos += 1 - Else - Style = "style=""background-color:#FF5F5F;"" " - TotalFracasos += 1 - End If - - Respuesta.AppendFormat("", i, dr("Proveedor"), dr("Banco"), dr("TipoCuenta"), dr("Cuenta"), dr("estatus"), Style) - i += 1 - Next - - Respuesta.Append("
#ProveedorBancoTipo CuentaCuentaEstatus
{0}
{0}{1}{2}{3}{4}{5}
-------------------------------------------------------------------------------------
") - - Respuesta.AppendFormat("Total de movimientos exitosos: {0}
", TotalExitos) - Respuesta.AppendFormat("Total de movimientos NO exitosos: {0}
", TotalFracasos) - - 'LEE DESDE EL LAYOUT - 'Respuesta.AppendFormat("Total de altas rechazadas: {0}
", Trailer(0).ToString.ToEntero) - 'Respuesta.AppendFormat("Total de bajas rechazadas: {0}
", Trailer(1).ToString.ToEntero) - 'Respuesta.AppendFormat("Total de cambios rechazados: {0}
", Trailer(2).ToString.ToEntero) - - End If - - If Not ErrorArchivo Then - - If CveCuentasDeposito <> "" Then - Dim ObjIE As New ClsBancos - Dim ErrorDB = False - ObjIE.IniciaTransacSQL() - Dim ArrayCuentasDeposito() = CveCuentasDeposito.Split(","c) - - For index = 0 To ArrayCuentasDeposito.Length - 1 - If Not ObjIE.UpdateCuentaDepositoPagoElectronico(ArrayCuentasDeposito(index).ToEntero) Then - ErrorDB = True - End If - Next - - If Not ErrorDB Then - ObjIE.Commit() - Respuesta.Append("

NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.") - 'Respuesta.AppendFormat("
Descargar reporte", NombreArchivo) - Respuesta.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) - - Alert(Respuesta.ToString, TipoMensaje.MsgInformacion) - Else - ObjIE.RollBack() - Respuesta.Append("

    NOTA: El archivo se analizo correctamente pero ocurrio un problema al efectuar los cambios en el sistema. Por favor vuelta a intentar.") - Alert(Respuesta.ToString, TipoMensaje.MsgError) - End If - - ObjIE.Dispose() - Else - Respuesta.AppendFormat("

    NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.") - 'Respuesta.AppendFormat("
    Descargar reporte", NombreArchivo) - Respuesta.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) - - Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia) - End If - - Else - Alert("Ocurrio un problema al leer el archivo. Por favor revise que el archivo sea el correcto e intente de nuevo.", TipoMensaje.MsgError) - End If - - 'ELIMINA TXT - My.Computer.FileSystem.DeleteFile(NombreArchivo) - - RecargaDatos() - End Sub + + + 'Protected Sub BtnCargarAlta_Click(sender As Object, e As EventArgs) + ' Dim ErrorArchivo = False + + ' If FUTxt.HasFile Then + ' If Not GuardaTXT() Then + ' Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError) + ' Exit Sub + ' End If + ' Else + ' Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + + ' 'LEE TXT + ' Dim Texto As String + + ' Dim sr As New System.IO.StreamReader(NombreArchivo) + ' Texto = sr.ReadToEnd() + ' sr.Close() + + ' Dim TextoArreglo() = Texto.Split(CChar(vbCrLf)) + + ' 'Alert(TextoArreglo.Length.ToString) + + ' 'LEE LINEA POR LINEA + ' Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", CveCuentasDeposito = "" + ' CreaDtAlta() + ' Dim ObjGrales As New ClsGenerales + ' Dim Row As DataRow = Nothing + ' Dim TipoCuentaDeposito = "" + + ' For i = 0 To TextoArreglo.Length - 1 Step 1 + ' 'Valida que el primer renglon sea el HEADER + ' If i = 0 Then + ' If TextoArreglo(i).Substring(0, 1) <> "H" Then + ' ErrorArchivo = True + ' Exit For + ' Else + ' RespuestaHeader = TextoArreglo(i).Substring(50, 2) + ' End If + ' Else + ' 'LEE DETALLE + ' If TextoArreglo(i).Length > 1 Then + ' If TextoArreglo(i).Substring(1, 1) = "D" Then + + ' 'If i > 1 Then + ' ' RespuestaDetalle += vbCrLf + ' 'End If + + ' 'RespuestaDetalle += String.Format("{0}{1}", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30))) + + ' ''Guardo CveCuentaDeposito cuando la operacion salio exitosa para actualizar en la DB + ' If TextoArreglo(i).Substring(597, 2) = "00" Or TextoArreglo(i).Substring(597, 2) = "34" Then + ' CveCuentasDeposito += If(CveCuentasDeposito <> "", ",", "") + ' CveCuentasDeposito += TextoArreglo(i).Substring(3, 30).ToEntero.ToString + ' End If + + + ' ''LLENA DT PARA REPORTE + ' Row = DtAlta.NewRow() + + ' Row("Proveedor") = If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim) + + ' 'BANCO + ' If ObjGrales.GetCuentasDepositos(CveCuentaDeposito:=TextoArreglo(i).Substring(3, 30).ToEntero) Then + ' If ObjGrales.DtResultados.Rows.Count = 1 Then + ' Row("Banco") = ObjGrales.DtResultados.Rows(0)("BancoNombre").ToString + ' Else + ' ErrorArchivo = True + ' Exit For + ' End If + ' Else + ' ErrorArchivo = True + ' Exit For + ' End If + + ' 'CUENTA + ' If TextoArreglo(i).Substring(41, 2).Trim <> "" Then + ' Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)) + ' ElseIf TextoArreglo(i).Substring(81, 2).Trim <> "" Then + ' Row("Cuenta") = String.Format("{0}", TextoArreglo(i).Substring(83, 35).TrimStart("0"c)) + ' Row("TipoCuenta") = "CLABE" + ' Else + ' ErrorArchivo = True + ' Exit For + ' End If + + ' 'TIPO CUENTA + ' If Row("TipoCuenta").ToString = "" Then + ' If String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 8 Then + ' Row("TipoCuenta") = "CIE" + ' ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 10 Or String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 9 Then + ' Row("TipoCuenta") = "Cuenta" + ' ElseIf String.Format("{0}", TextoArreglo(i).Substring(43, 35).TrimStart("0"c)).Length = 18 Then + ' Row("TipoCuenta") = "CLABE" + ' End If + ' End If + + ' Row("Estatus") = TextoArreglo(i).Substring(599, 30) + + ' DtAlta.Rows.Add(Row) + + ' ''LLENA PARA ALERT + ' 'If i > 1 Then + ' ' RespuestaDetalle += vbCrLf + ' 'End If + + ' 'RespuestaDetalle += String.Format("{0}{1}", If(TextoArreglo(i).Substring(197, 1) = "M", TextoArreglo(i).Substring(198, 50).Trim, TextoArreglo(i).Substring(268, 60).Trim), (TextoArreglo(i).Substring(599, 30))) + + + ' 'LEE TRAILER + ' ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then + ' RespuestaTrailer = TextoArreglo(i).Substring(32, 10) + ' RespuestaTrailer += vbCrLf + ' RespuestaTrailer += TextoArreglo(i).Substring(42, 10) + ' RespuestaTrailer += vbCrLf + ' RespuestaTrailer += TextoArreglo(i).Substring(52, 10) + ' Exit For + ' Else + ' ErrorArchivo = True + ' Exit For + ' End If + ' End If + ' End If + ' Next + ' ObjGrales.Dispose() + + + ' Dim Respuesta As New StringBuilder + ' 'LEE ARCHIVO + ' If Not ErrorArchivo Then + ' 'TRADUCE CODIGO RESPUESTA HEADER + ' If RespuestaHeader = "01" Then + ' RespuestaHeader = "ACEPTADO TOTAL" + ' ElseIf RespuestaHeader = "02" Then + ' RespuestaHeader = "ACEPTADO PARCIAL" + ' ElseIf RespuestaHeader = "03" Then + ' RespuestaHeader = "RECHAZADO" + ' End If + + ' 'DIVIDE DETALLE + ' Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf)) + + ' 'DIVIDE TRAILER + ' Dim Trailer() = RespuestaTrailer.Split(CChar(vbCrLf)) + + ' 'ARMADO DE RESPUESTA + ' Respuesta.AppendFormat("
    Resumen de respuesta: {0}
    ", RespuestaHeader) + ' Respuesta.AppendFormat("Numero de movimientos: {0}


    ", DtAlta.Rows.Count) + ' Respuesta.Append("------------------------------ Detalle de los movimientos ------------------------------
    ") + + ' Respuesta.Append("") + ' 'For i = 0 To Detalle.Length - 1 + ' ' Respuesta.AppendFormat("{1}", i + 1, Detalle(i).Trim) + ' 'Next + ' Dim i = 1 + ' Dim Style = "" + ' Dim TotalExitos = 0, TotalFracasos = 0 + ' For Each dr As DataRow In DtAlta.Rows + + ' If dr("estatus").ToString.Trim.Contiene("OPERACION EXITOSA", "ALTA TERCERO EXITOSO") Then + ' Style = "" + ' TotalExitos += 1 + ' Else + ' Style = "style=""background-color:#FF5F5F;"" " + ' TotalFracasos += 1 + ' End If + + ' Respuesta.AppendFormat("", i, dr("Proveedor"), dr("Banco"), dr("TipoCuenta"), dr("Cuenta"), dr("estatus"), Style) + ' i += 1 + ' Next + + ' Respuesta.Append("
    #ProveedorBancoTipo CuentaCuentaEstatus
    {0}
    {0}{1}{2}{3}{4}{5}
    -------------------------------------------------------------------------------------
    ") + + ' Respuesta.AppendFormat("Total de movimientos exitosos: {0}
    ", TotalExitos) + ' Respuesta.AppendFormat("Total de movimientos NO exitosos: {0}
    ", TotalFracasos) + + ' 'LEE DESDE EL LAYOUT + ' 'Respuesta.AppendFormat("Total de altas rechazadas: {0}
    ", Trailer(0).ToString.ToEntero) + ' 'Respuesta.AppendFormat("Total de bajas rechazadas: {0}
    ", Trailer(1).ToString.ToEntero) + ' 'Respuesta.AppendFormat("Total de cambios rechazados: {0}
    ", Trailer(2).ToString.ToEntero) + + ' End If + + ' If Not ErrorArchivo Then + + ' If CveCuentasDeposito <> "" Then + ' Dim ObjIE As New ClsBancos + ' Dim ErrorDB = False + ' ObjIE.IniciaTransacSQL() + ' Dim ArrayCuentasDeposito() = CveCuentasDeposito.Split(","c) + + ' For index = 0 To ArrayCuentasDeposito.Length - 1 + ' If Not ObjIE.UpdateCuentaDepositoPagoElectronico(ArrayCuentasDeposito(index).ToEntero) Then + ' ErrorDB = True + ' End If + ' Next + + ' If Not ErrorDB Then + ' ObjIE.Commit() + ' Respuesta.Append("

    NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.") + ' 'Respuesta.AppendFormat("
    Descargar reporte", NombreArchivo) + ' Respuesta.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) + + ' Alert(Respuesta.ToString, TipoMensaje.MsgInformacion) + ' Else + ' ObjIE.RollBack() + ' Respuesta.Append("

    NOTA: El archivo se analizo correctamente pero ocurrio un problema al efectuar los cambios en el sistema. Por favor vuelta a intentar.") + ' Alert(Respuesta.ToString, TipoMensaje.MsgError) + ' End If + + ' ObjIE.Dispose() + ' Else + ' Respuesta.AppendFormat("

    NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.") + ' 'Respuesta.AppendFormat("
    Descargar reporte", NombreArchivo) + ' Respuesta.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) + + ' Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia) + ' End If + + ' Else + ' Alert("Ocurrio un problema al leer el archivo. Por favor revise que el archivo sea el correcto e intente de nuevo.", TipoMensaje.MsgError) + ' End If + + ' 'ELIMINA TXT + ' My.Computer.FileSystem.DeleteFile(NombreArchivo) + + ' RecargaDatos() + + 'End Sub #End Region #Region "CARGA PAGO PROVEEDORES" @@ -1580,315 +1587,315 @@ Partial Class Bancos_PagoElectronicoGrupos DtPago.Columns.Add("FechaOperacion", GetType(String)) - End Sub - - - Protected Sub BtnCargarPago_Click(sender As Object, e As System.EventArgs) - Dim ErrorArchivo = False - Dim TextoErrorArchivo = "Ocurrió un problema al leer el archivo, por favor revise que el archivo sea el correcto e intente de nuevo." - - If FUTxt.HasFile Then - If Not GuardaTXT() Then - Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError) - Exit Sub - End If - Else - Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - - 'LEE TXT - Dim Texto As String - Dim sr As New System.IO.StreamReader(NombreArchivo) - Texto = sr.ReadToEnd() - sr.Close() - Dim TextoArreglo() = Texto.Split(CChar(vbCrLf)) - - 'INICIALIZA VARIABLES - Dim ObjBancos As New ClsBancos - Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", Proveedor = "", CuentaAbono = "", Estatus = "", CveIEs = "", EstatusIEs = "", FechaMovto = "", Correos = "" - Dim Row As DataRow = Nothing - Dim Convenio = "" - CreaDtPago() - - 'LEE LINEA POR LINEA - For i = 0 To TextoArreglo.Length - 1 - 'Valida que el primer renglon sea el HEADER - If i = 0 Then - If TextoArreglo(i).Substring(0, 1) <> "H" Then - ErrorArchivo = True - Exit For - Else - ' Codigo de respuesta | Cuenta cargo - RespuestaHeader = String.Format("{0}|{1}", TextoArreglo(i).Substring(52, 2), TextoArreglo(i).Substring(77, 35)) - Convenio = TextoArreglo(i).Substring(2, 9) - End If - Else - If TextoArreglo(i).Length > 1 Then - - 'LEE DETALLE - If TextoArreglo(i).Substring(1, 1) = "D" Then - If i > 1 Then - RespuestaDetalle += vbCrLf - End If - - 'TRUENA PORQUE AHORA ES LA CVECUENTADEPOSITO - 'Proveedor = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", TextoArreglo(i).Substring(24, 30).ToEntero)).Rows(0)("RazonSocial").ToString - - Correos += If(Correos <> "", "|", "") - - If ObjBancos.GetProveedorCuentaDeposito(TextoArreglo(i).Substring(24, 30).ToDouble.ToEntero) Then - If ObjBancos.DtResultados.Rows.Count > 0 Then - - Proveedor = ObjBancos.DtResultados.Rows(0)("RazonSocial").ToString - - 'Correos += If(TextoArreglo(i).Substring(477, 50).Trim = "", "-1", TextoArreglo(i).Substring(477, 50).Trim) - Correos += String.Format("{0};{1}", ObjBancos.DtResultados.Rows(0)("NotificarA").ToString, ObjBancos.DtResultados.Rows(0)("ContactoMailCobranza").ToString) - - - ''SELECCIONA CUENTA ABONO PARA CORREO - Select Case TextoArreglo(i).Substring(57, 1).ToEntero - Case 1 - CuentaAbono = "NO APLICA" - Case 2 - CuentaAbono = If(ObjBancos.DtResultados.Rows(0)("Cuenta").ToString <> "", ObjBancos.DtResultados.Rows(0)("Cuenta").ToString, ObjBancos.DtResultados.Rows(0)("CLABE").ToString) - Case 3 - CuentaAbono = ObjBancos.DtResultados.Rows(0)("CIE").ToString - Case 4 - CuentaAbono = ObjBancos.DtResultados.Rows(0)("SWIFT").ToString - Case 5, 6, 7 - CuentaAbono = ObjBancos.DtResultados.Rows(0)("CLABE").ToString - End Select - - Else - Proveedor = "PROVEEDOR NO ENCONTRADO" - End If - Else - Proveedor = "PROVEEDOR NO ENCONTRADO" - End If - - Estatus = If(TextoArreglo(i).Substring(1325, 2) = "00", "OPERACION EXITOSA: ", "OPERACION FALLIDA: ") - ' Proveedor | Importe | Descripcion estatus - RespuestaDetalle += String.Format("{0}{1}.{2} {5}{3}{4}", Proveedor, TextoArreglo(i).Substring(445, 13).ToDouble.ToEntero, TextoArreglo(i).Substring(458, 2).ToEntero, Estatus, TextoArreglo(i).Substring(1327, 30), TextoArreglo(i).Substring(420, 3)) - - ''Guardo CveIE cuando la operacion salio exitosa para actualizar en la DB el IE - 'If TextoArreglo(i).Substring(1325, 2) = "00" Then - CveIEs += If(CveIEs <> "", ",", "") - 'VIEJO IE EN CAMPO 9 - 'CveIEs += TextoArreglo(i).Substring(83, 10).Trim - CveIEs += TextoArreglo(i).Substring(123, 32).Trim - - 'SI VIENE SIN RESPUESTA ES ERROR DE ARCHIVO - If TextoArreglo(i).Substring(1325, 2).Trim = "" Then - ErrorArchivo = True - TextoErrorArchivo = "El archivo que se intento procesar no es de respuesta. Por favor verifique cargar el archivo correcto." - Exit For - End If - - EstatusIEs += If(EstatusIEs <> "", ",", "") - EstatusIEs += If(TextoArreglo(i).Substring(1325, 2) = "00", "2", "3") - - FechaMovto += If(FechaMovto <> "", ",", "") - FechaMovto += TextoArreglo(i).Substring(540, 10) - - 'If Proveedor = "PROVEEDOR NO ENCONTRADO" Or CuentaAbono = "" Then - ' Continue For - 'End If - - - ''LLENA DTPAGOS PARA CORREO - Row = DtPago.NewRow() - Row("NumeroConvenio") = Convenio - Row("ClaveProveedor") = TextoArreglo(i).Substring(24, 30) - Row("Proveedor") = Proveedor - Row("ReferenciaPago") = TextoArreglo(i).Substring(4, 20) - Row("Cuenta") = CuentaAbono - - Select Case TextoArreglo(i).Substring(57, 1).ToEntero - Case 1 - Row("TipoPago") = "1 .- ABONO EN VENTANILLA" - Case 2 - Row("TipoPago") = "2 .- ABONO A CUENTAS BANCOMER" - Case 3 - Row("TipoPago") = "3 .- ABONO A CONVENIO CIE" - Case 4 - Row("TipoPago") = "4 .- ABONO A CUENTA INTERNACIONAL VIA SWIFT" - Case 5 - Row("TipoPago") = "5 .- ABONO A CUENTA INTERBANCARIA DIA SIGUIENTE" - Case 6 - Row("TipoPago") = "6 .- ABONO A CUENTA INTERBANCARIA MISMO DIA" - Case 7 - Row("TipoPago") = "7 .- ABONO A CUENTA INTERNACIONAL VIA ACH" - End Select - - Try - Row("Cuenta") = If(Row("Cuenta").ToString = "", String.Format("******{0}", CuentaAbono.Substring(CuentaAbono.Length - 4, 4)), Row("Cuenta").ToString) - Catch ex As Exception - Row("Cuenta") = "******" - End Try - - Row("Importe") = String.Format("{0}.{1}", TextoArreglo(i).Substring(445, 13), TextoArreglo(i).Substring(458, 2)).ToDecimal.ToString - Row("FechaOperacion") = TextoArreglo(i).Substring(540, 10) - Row("Observaciones") = TextoArreglo(i).Substring(605, 700).Trim - DtPago.Rows.Add(Row) - - 'End If - - 'LEE TRAILER - ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then - - 'PARA BCOM, YA QUE TRUNCA EL STRING CUANDO SOLO ES MXP - If TextoArreglo(i).Length < 1367 Then - TextoArreglo(i) = TextoArreglo(i).PadRight(1367) - End If - - RespuestaTrailer += "------------------------------------------------------------ RESUMEN ------------------------------------------------------------" - RespuestaTrailer += String.Format("") - RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(327, 10).ToDouble.ToEntero.ToString) - RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(337, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(350, 2).ToDouble.ToEntero.ToString) - RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(302, 10).ToDouble.ToEntero.ToString) - RespuestaTrailer += String.Format("
    ConceptoPesos (MXP)Dolares (USD)
    Total registros rechazados:{0}{1}
    Total Importe rechazado: $:{0}.{1}{2}.{3}
    Total registros aceptados:{0}{1}
    Total Importe aceptado $:{0}.{1}{2}.{3}
    ", TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(312, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(325, 2).ToDouble.ToEntero.ToString) - - 'RespuestaTrailer += String.Format("Total registros rechazados: {1}{0} Total Importe rechazado: $ {2}.{3}{0} Total registros aceptados: {4}{0} Total Importe aceptado: $ {5}.{6}{0}", "
    ", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToEntero.ToString) - Else - ErrorArchivo = True - Exit For - End If - End If - End If - Next - - ObjBancos.Dispose() - - Dim Respuesta As New StringBuilder - If Not ErrorArchivo Then - - 'DIVIDE HEADER - Dim Header() = RespuestaHeader.Split(CChar("|")) - 'TRADUCE CODIGO RESPUESTA HEADER - If Header(0) = "01" Then - RespuestaHeader = "ACEPTADO TOTAL" - ElseIf Header(0) = "02" Then - RespuestaHeader = "ACEPTADO PARCIAL" - ElseIf Header(0) = "03" Then - RespuestaHeader = "RECHAZADO" - End If - RespuestaHeader += String.Format("
    Cuenta Cargo: {0}", Header(1)) - - 'DIVIDE DETALLE - Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf)) - - 'ARMADO DE RESPUESTA - Respuesta.AppendFormat("
    Resumen de respuesta: {0}
    ", RespuestaHeader) - Respuesta.AppendFormat("Numero de movimientos: {0}

    ", Detalle.Length.ToString) - Respuesta.Append("----------------------------------------------------- Detalle de los movimientos --------------------------------------------------
    ") - Respuesta.Append("") - For i = 0 To Detalle.Length - 1 - Respuesta.AppendFormat("{1}", i + 1, Detalle(i).Trim) - Next - Respuesta.Append("
    #ProveedorImporte($)MonedaEstatus
    {0}
    ----------------------------------------------------------------------------------------------------------------------
    ") - Respuesta.AppendFormat(RespuestaTrailer) - - - End If - - If Not ErrorArchivo Then - If CveIEs <> "" Then - Dim ObjIE As New ClsBancos - Dim ErrorDB = False - ObjIE.IniciaTransacSQL() - Dim ArrayCveIEs() = CveIEs.Split(","c) - Dim ArrayEstatusIEs() = EstatusIEs.Split(","c) - Dim ArrayFechasMovto() = FechaMovto.Split(","c) - Dim ArrayCorreos() = Correos.Split("|"c) - - Dim ArregloHilos As New Generic.List(Of System.Threading.Thread) - Dim ArregloParametros As New Generic.List(Of List(Of String)) - - For index = 0 To ArrayCveIEs.Length - 1 - If ObjIE.UpdatePagoElectronicoCarga(ArrayCveIEs(index).ToEntero, ArrayEstatusIEs(index).ToEntero) Then - - 'Cuando salio exitoso actualizamos el IE - If ArrayEstatusIEs(index).ToEntero = 2 Then - If ObjIE.UpdateIEPagoElectronico(ArrayCveIEs(index).ToEntero, ArrayFechasMovto(index).ToDate, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then 'DESPROGRAMA LAS COMPRAS RELACIONADAS EN ESTE PA - - 'Cambiamos estatus notificación - If ObjIE.UpdateBancos_IENotificaciones(2, "-1", "-1", ArrayCveIEs(index).ToEntero) Then - - 'Obtenemos los correos del movimiento - If ArrayCorreos(index) <> "-1" Or ArrayCorreos(index) <> "" Then - - 'Dim CorreosMovto() = ArrayCorreos(index).Split(";"c) - 'For index2 = 0 To CorreosMovto.Length - 1 - ' If CorreosMovto(index2).Length > 5 Then - ' End If - 'Next - - Dim Param As New List(Of String) - - Param.Add(ArrayCorreos(index)) 'Para - Param.Add("Notificación de Pago") 'Asunto - Param.Add(GeneraCorreo2(DtPago.Rows(index), ObjIE, ArrayCveIEs(index).ToEntero)) 'Body - - Dim Hilo As New Threading.Thread(AddressOf MandaCorreo) - ArregloHilos.Add(Hilo) - ArregloParametros.Add(Param) - End If - Else - ErrorDB = True - End If - - Else - ErrorDB = True - End If - Else - - 'Cuando salio NO exitoso cancelamos el IE - If Not ObjIE.CancelarBancos_IE(UsuarioActual.CveUsuario, ArrayCveIEs(index).ToEntero, False, -1, -1) Then - ErrorDB = True - End If - End If - - Else - ErrorDB = True - End If - Next - - If Not ErrorDB Then - ObjIE.Commit() - 'ObjIE.RollBack() - - 'EMPIEZA A ENVIAR CORREO POR HILOS - For index = 0 To ArregloHilos.Count - 1 - ArregloHilos(index).Start(ArregloParametros(index)) - Next - - Respuesta.Append("

    NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.") - Alert(Respuesta.ToString, TipoMensaje.MsgInformacion) - - CargaDatos() - Else - ObjIE.RollBack() - Respuesta.Append("

    NOTA: El archivo se analizo correctamente pero ocurrió un problema al efectuar los cambios en el sistema. Por favor vuelva a intentar.") - Alert(Respuesta.ToString, TipoMensaje.MsgError) - End If - - ObjIE.Dispose() - Else - Respuesta.AppendFormat("

    NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.") - Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia) - End If - Else - Alert(TextoErrorArchivo, TipoMensaje.MsgError) - End If - - 'ELIMINA TXT - My.Computer.FileSystem.DeleteFile(NombreArchivo) - - RecargaDatos() - End Sub + + + 'Protected Sub BtnCargarPago_Click(sender As Object, e As System.EventArgs) + ' Dim ErrorArchivo = False + ' Dim TextoErrorArchivo = "Ocurrió un problema al leer el archivo, por favor revise que el archivo sea el correcto e intente de nuevo." + + ' If FUTxt.HasFile Then + ' If Not GuardaTXT() Then + ' Alert("Ocurrio un error al cargar el archivo", TipoMensaje.MsgError) + ' Exit Sub + ' End If + ' Else + ' Alert("No tiene ningun archivo", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + + + ' 'LEE TXT + ' Dim Texto As String + ' Dim sr As New System.IO.StreamReader(NombreArchivo) + ' Texto = sr.ReadToEnd() + ' sr.Close() + ' Dim TextoArreglo() = Texto.Split(CChar(vbCrLf)) + + ' 'INICIALIZA VARIABLES + ' Dim ObjBancos As New ClsBancos + ' Dim RespuestaHeader = "", RespuestaDetalle = "", RespuestaTrailer = "", Proveedor = "", CuentaAbono = "", Estatus = "", CveIEs = "", EstatusIEs = "", FechaMovto = "", Correos = "" + ' Dim Row As DataRow = Nothing + ' Dim Convenio = "" + ' CreaDtPago() + + ' 'LEE LINEA POR LINEA + ' For i = 0 To TextoArreglo.Length - 1 + ' 'Valida que el primer renglon sea el HEADER + ' If i = 0 Then + ' If TextoArreglo(i).Substring(0, 1) <> "H" Then + ' ErrorArchivo = True + ' Exit For + ' Else + ' ' Codigo de respuesta | Cuenta cargo + ' RespuestaHeader = String.Format("{0}|{1}", TextoArreglo(i).Substring(52, 2), TextoArreglo(i).Substring(77, 35)) + ' Convenio = TextoArreglo(i).Substring(2, 9) + ' End If + ' Else + ' If TextoArreglo(i).Length > 1 Then + + ' 'LEE DETALLE + ' If TextoArreglo(i).Substring(1, 1) = "D" Then + ' If i > 1 Then + ' RespuestaDetalle += vbCrLf + ' End If + + ' 'TRUENA PORQUE AHORA ES LA CVECUENTADEPOSITO + ' 'Proveedor = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", TextoArreglo(i).Substring(24, 30).ToEntero)).Rows(0)("RazonSocial").ToString + + ' Correos += If(Correos <> "", "|", "") + + ' If ObjBancos.GetProveedorCuentaDeposito(TextoArreglo(i).Substring(24, 30).ToDouble.ToEntero) Then + ' If ObjBancos.DtResultados.Rows.Count > 0 Then + + ' Proveedor = ObjBancos.DtResultados.Rows(0)("RazonSocial").ToString + + ' 'Correos += If(TextoArreglo(i).Substring(477, 50).Trim = "", "-1", TextoArreglo(i).Substring(477, 50).Trim) + ' Correos += String.Format("{0};{1}", ObjBancos.DtResultados.Rows(0)("NotificarA").ToString, ObjBancos.DtResultados.Rows(0)("ContactoMailCobranza").ToString) + + + ' ''SELECCIONA CUENTA ABONO PARA CORREO + ' Select Case TextoArreglo(i).Substring(57, 1).ToEntero + ' Case 1 + ' CuentaAbono = "NO APLICA" + ' Case 2 + ' CuentaAbono = If(ObjBancos.DtResultados.Rows(0)("Cuenta").ToString <> "", ObjBancos.DtResultados.Rows(0)("Cuenta").ToString, ObjBancos.DtResultados.Rows(0)("CLABE").ToString) + ' Case 3 + ' CuentaAbono = ObjBancos.DtResultados.Rows(0)("CIE").ToString + ' Case 4 + ' CuentaAbono = ObjBancos.DtResultados.Rows(0)("SWIFT").ToString + ' Case 5, 6, 7 + ' CuentaAbono = ObjBancos.DtResultados.Rows(0)("CLABE").ToString + ' End Select + + ' Else + ' Proveedor = "PROVEEDOR NO ENCONTRADO" + ' End If + ' Else + ' Proveedor = "PROVEEDOR NO ENCONTRADO" + ' End If + + ' Estatus = If(TextoArreglo(i).Substring(1325, 2) = "00", "OPERACION EXITOSA: ", "OPERACION FALLIDA: ") + ' ' Proveedor | Importe | Descripcion estatus + ' RespuestaDetalle += String.Format("{0}{1}.{2} {5}{3}{4}", Proveedor, TextoArreglo(i).Substring(445, 13).ToDouble.ToEntero, TextoArreglo(i).Substring(458, 2).ToEntero, Estatus, TextoArreglo(i).Substring(1327, 30), TextoArreglo(i).Substring(420, 3)) + + ' ''Guardo CveIE cuando la operacion salio exitosa para actualizar en la DB el IE + ' 'If TextoArreglo(i).Substring(1325, 2) = "00" Then + ' CveIEs += If(CveIEs <> "", ",", "") + ' 'VIEJO IE EN CAMPO 9 + ' 'CveIEs += TextoArreglo(i).Substring(83, 10).Trim + ' CveIEs += TextoArreglo(i).Substring(123, 32).Trim + + ' 'SI VIENE SIN RESPUESTA ES ERROR DE ARCHIVO + ' If TextoArreglo(i).Substring(1325, 2).Trim = "" Then + ' ErrorArchivo = True + ' TextoErrorArchivo = "El archivo que se intento procesar no es de respuesta. Por favor verifique cargar el archivo correcto." + ' Exit For + ' End If + + ' EstatusIEs += If(EstatusIEs <> "", ",", "") + ' EstatusIEs += If(TextoArreglo(i).Substring(1325, 2) = "00", "2", "3") + + ' FechaMovto += If(FechaMovto <> "", ",", "") + ' FechaMovto += TextoArreglo(i).Substring(540, 10) + + ' 'If Proveedor = "PROVEEDOR NO ENCONTRADO" Or CuentaAbono = "" Then + ' ' Continue For + ' 'End If + + + ' ''LLENA DTPAGOS PARA CORREO + ' Row = DtPago.NewRow() + ' Row("NumeroConvenio") = Convenio + ' Row("ClaveProveedor") = TextoArreglo(i).Substring(24, 30) + ' Row("Proveedor") = Proveedor + ' Row("ReferenciaPago") = TextoArreglo(i).Substring(4, 20) + ' Row("Cuenta") = CuentaAbono + + ' Select Case TextoArreglo(i).Substring(57, 1).ToEntero + ' Case 1 + ' Row("TipoPago") = "1 .- ABONO EN VENTANILLA" + ' Case 2 + ' Row("TipoPago") = "2 .- ABONO A CUENTAS BANCOMER" + ' Case 3 + ' Row("TipoPago") = "3 .- ABONO A CONVENIO CIE" + ' Case 4 + ' Row("TipoPago") = "4 .- ABONO A CUENTA INTERNACIONAL VIA SWIFT" + ' Case 5 + ' Row("TipoPago") = "5 .- ABONO A CUENTA INTERBANCARIA DIA SIGUIENTE" + ' Case 6 + ' Row("TipoPago") = "6 .- ABONO A CUENTA INTERBANCARIA MISMO DIA" + ' Case 7 + ' Row("TipoPago") = "7 .- ABONO A CUENTA INTERNACIONAL VIA ACH" + ' End Select + + ' Try + ' Row("Cuenta") = If(Row("Cuenta").ToString = "", String.Format("******{0}", CuentaAbono.Substring(CuentaAbono.Length - 4, 4)), Row("Cuenta").ToString) + ' Catch ex As Exception + ' Row("Cuenta") = "******" + ' End Try + + ' Row("Importe") = String.Format("{0}.{1}", TextoArreglo(i).Substring(445, 13), TextoArreglo(i).Substring(458, 2)).ToDecimal.ToString + ' Row("FechaOperacion") = TextoArreglo(i).Substring(540, 10) + ' Row("Observaciones") = TextoArreglo(i).Substring(605, 700).Trim + ' DtPago.Rows.Add(Row) + + ' 'End If + + ' 'LEE TRAILER + ' ElseIf TextoArreglo(i).Substring(1, 1) = "T" Then + + ' 'PARA BCOM, YA QUE TRUNCA EL STRING CUANDO SOLO ES MXP + ' If TextoArreglo(i).Length < 1367 Then + ' TextoArreglo(i) = TextoArreglo(i).PadRight(1367) + ' End If + + ' RespuestaTrailer += "------------------------------------------------------------ RESUMEN ------------------------------------------------------------" + ' RespuestaTrailer += String.Format("") + ' RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(327, 10).ToDouble.ToEntero.ToString) + ' RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(337, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(350, 2).ToDouble.ToEntero.ToString) + ' RespuestaTrailer += String.Format("", TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(302, 10).ToDouble.ToEntero.ToString) + ' RespuestaTrailer += String.Format("
    ConceptoPesos (MXP)Dolares (USD)
    Total registros rechazados:{0}{1}
    Total Importe rechazado: $:{0}.{1}{2}.{3}
    Total registros aceptados:{0}{1}
    Total Importe aceptado $:{0}.{1}{2}.{3}
    ", TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(312, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(325, 2).ToDouble.ToEntero.ToString) + + ' 'RespuestaTrailer += String.Format("Total registros rechazados: {1}{0} Total Importe rechazado: $ {2}.{3}{0} Total registros aceptados: {4}{0} Total Importe aceptado: $ {5}.{6}{0}", "
    ", TextoArreglo(i).Substring(77, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(87, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(100, 2).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(177, 10).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(187, 13).ToDouble.ToEntero.ToString, TextoArreglo(i).Substring(200, 2).ToEntero.ToString) + ' Else + ' ErrorArchivo = True + ' Exit For + ' End If + ' End If + ' End If + ' Next + + ' ObjBancos.Dispose() + + ' Dim Respuesta As New StringBuilder + ' If Not ErrorArchivo Then + + ' 'DIVIDE HEADER + ' Dim Header() = RespuestaHeader.Split(CChar("|")) + ' 'TRADUCE CODIGO RESPUESTA HEADER + ' If Header(0) = "01" Then + ' RespuestaHeader = "ACEPTADO TOTAL" + ' ElseIf Header(0) = "02" Then + ' RespuestaHeader = "ACEPTADO PARCIAL" + ' ElseIf Header(0) = "03" Then + ' RespuestaHeader = "RECHAZADO" + ' End If + ' RespuestaHeader += String.Format("
    Cuenta Cargo: {0}", Header(1)) + + ' 'DIVIDE DETALLE + ' Dim Detalle() = RespuestaDetalle.Split(CChar(vbCrLf)) + + ' 'ARMADO DE RESPUESTA + ' Respuesta.AppendFormat("
    Resumen de respuesta: {0}
    ", RespuestaHeader) + ' Respuesta.AppendFormat("Numero de movimientos: {0}

    ", Detalle.Length.ToString) + ' Respuesta.Append("----------------------------------------------------- Detalle de los movimientos --------------------------------------------------
    ") + ' Respuesta.Append("") + ' For i = 0 To Detalle.Length - 1 + ' Respuesta.AppendFormat("{1}", i + 1, Detalle(i).Trim) + ' Next + ' Respuesta.Append("
    #ProveedorImporte($)MonedaEstatus
    {0}
    ----------------------------------------------------------------------------------------------------------------------
    ") + ' Respuesta.AppendFormat(RespuestaTrailer) + + + ' End If + + ' If Not ErrorArchivo Then + ' If CveIEs <> "" Then + ' Dim ObjIE As New ClsBancos + ' Dim ErrorDB = False + ' ObjIE.IniciaTransacSQL() + ' Dim ArrayCveIEs() = CveIEs.Split(","c) + ' Dim ArrayEstatusIEs() = EstatusIEs.Split(","c) + ' Dim ArrayFechasMovto() = FechaMovto.Split(","c) + ' Dim ArrayCorreos() = Correos.Split("|"c) + + ' Dim ArregloHilos As New Generic.List(Of System.Threading.Thread) + ' Dim ArregloParametros As New Generic.List(Of List(Of String)) + + ' For index = 0 To ArrayCveIEs.Length - 1 + ' If ObjIE.UpdatePagoElectronicoCarga(ArrayCveIEs(index).ToEntero, ArrayEstatusIEs(index).ToEntero) Then + + ' 'Cuando salio exitoso actualizamos el IE + ' If ArrayEstatusIEs(index).ToEntero = 2 Then + ' If ObjIE.UpdateIEPagoElectronico(ArrayCveIEs(index).ToEntero, ArrayFechasMovto(index).ToDate, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then 'DESPROGRAMA LAS COMPRAS RELACIONADAS EN ESTE PA + + ' 'Cambiamos estatus notificación + ' If ObjIE.UpdateBancos_IENotificaciones(2, "-1", "-1", ArrayCveIEs(index).ToEntero) Then + + ' 'Obtenemos los correos del movimiento + ' If ArrayCorreos(index) <> "-1" Or ArrayCorreos(index) <> "" Then + + ' 'Dim CorreosMovto() = ArrayCorreos(index).Split(";"c) + ' 'For index2 = 0 To CorreosMovto.Length - 1 + ' ' If CorreosMovto(index2).Length > 5 Then + ' ' End If + ' 'Next + + ' Dim Param As New List(Of String) + + ' Param.Add(ArrayCorreos(index)) 'Para + ' Param.Add("Notificación de Pago") 'Asunto + ' Param.Add(GeneraCorreo2(DtPago.Rows(index), ObjIE, ArrayCveIEs(index).ToEntero)) 'Body + + ' Dim Hilo As New Threading.Thread(AddressOf MandaCorreo) + ' ArregloHilos.Add(Hilo) + ' ArregloParametros.Add(Param) + ' End If + ' Else + ' ErrorDB = True + ' End If + + ' Else + ' ErrorDB = True + ' End If + ' Else + + ' 'Cuando salio NO exitoso cancelamos el IE + ' If Not ObjIE.CancelarBancos_IE(UsuarioActual.CveUsuario, ArrayCveIEs(index).ToEntero, False, -1, -1) Then + ' ErrorDB = True + ' End If + ' End If + + ' Else + ' ErrorDB = True + ' End If + ' Next + + ' If Not ErrorDB Then + ' ObjIE.Commit() + ' 'ObjIE.RollBack() + + ' 'EMPIEZA A ENVIAR CORREO POR HILOS + ' For index = 0 To ArregloHilos.Count - 1 + ' ArregloHilos(index).Start(ArregloParametros(index)) + ' Next + + ' Respuesta.Append("

    NOTA: El archivo se analizo correctamente y se efectuaron todos los cambios en el sistema.") + ' Alert(Respuesta.ToString, TipoMensaje.MsgInformacion) + + ' CargaDatos() + ' Else + ' ObjIE.RollBack() + ' Respuesta.Append("

    NOTA: El archivo se analizo correctamente pero ocurrió un problema al efectuar los cambios en el sistema. Por favor vuelva a intentar.") + ' Alert(Respuesta.ToString, TipoMensaje.MsgError) + ' End If + + ' ObjIE.Dispose() + ' Else + ' Respuesta.AppendFormat("

    NOTA: El archivo se analizo correctamente pero ningun movimiento fue exitoso.") + ' Alert(Respuesta.ToString, TipoMensaje.MsgAdvertencia) + ' End If + ' Else + ' Alert(TextoErrorArchivo, TipoMensaje.MsgError) + ' End If + + ' 'ELIMINA TXT + ' My.Computer.FileSystem.DeleteFile(NombreArchivo) + + ' RecargaDatos() + + 'End Sub #End Region @@ -1921,10 +1928,15 @@ Partial Class Bancos_PagoElectronicoGrupos DtCuentasPendientesTemp.CaseSensitive = False - Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"}) - Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"}) + + + + Dim DtCuentasPendientesBancomer As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre like '%BBVA%' OR BancoNombre like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"}) + Dim DtCuentasPendientesInterbancarias As DataTable = DtCuentasPendientesTemp.FiltraParametros($" (EstatusPagoElectronicoGrupos IS NULL OR EstatusPagoElectronicoGrupos = False) AND (BancoNombre not like '%BBVA%' AND BancoNombre not like '%BANCOMER%' ) ", "", {"CveCuentaDeposito", "BancoNombre", "CLABEDestino", "Abreviatura", "RazonSocial", "CvePersonal", "CveBanco", "Cuenta", "BBVAAlias"}) 'CLABEDestino + Dim ObjGrales As New ClsGenerales + If DtCuentasPendientesBancomer.Rows.Count > 0 Then For Each dRow As DataRow In DtCuentasPendientesBancomer.Rows @@ -1974,6 +1986,7 @@ Partial Class Bancos_PagoElectronicoGrupos If Not ErrorLineaBancomer Then RegistrosAltaBancomer.Append(SBTmpBancomer.ToString) + ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True) Else SBErroresBancomer.Append("
    ") SBErrores.AppendLine(SBErroresBancomer.ToString) @@ -2057,6 +2070,7 @@ Partial Class Bancos_PagoElectronicoGrupos If Not ErrorLineaInterbancaria Then RegistrosAltaInterbancario.Append(SBTmpInterbancarias.ToString) + ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(dRow("CveCuentaDeposito").ToString.ToEntero, True) Else SBErroresInterBancario.Append("
    ") SBErrores.AppendLine(SBErroresInterBancario.ToString) @@ -2073,6 +2087,7 @@ Partial Class Bancos_PagoElectronicoGrupos End If + ObjGrales.Dispose() Dim Mensaje As New StringBuilder @@ -2100,238 +2115,238 @@ Partial Class Bancos_PagoElectronicoGrupos Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) End If - + CargaDatos() End Sub - Private Sub CargaFyE() - Dim ObjBancos As New ClsBancos - - If ObjBancos.GetLayoutFyE(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, PorGrupos:=True) Then - DTFyE = ObjBancos.DtResultados.FiltraParametros("LEN(RFC) IN (13)") - Else - DTFyE = Nothing - End If - ObjBancos.Dispose() - - If DTFyE.Rows.Count > 0 Then - GvProveedores.DataSource = DTFyE - End If - GvProveedores.DataBind() - - UpProveedores.Update() - End Sub - - Private Sub GeneraAltaFyE() - Dim DtTemp As DataTable = Nothing - - 'REINICIA PROPIEDAS - HeaderTexto = "" - DetalleTexto = "" - TrailerTexto = "" - TotalAcumulado = 0 - CreaDtAlta() - - DtTemp = DTFyE - - ''VALIDA CUENTAS DEPOSITOS - Dim ErrorCuenta = False - Dim FyEError As StringBuilder = New StringBuilder - FyEError.AppendFormat("") - - Dim TotalDetalles As Integer = 0 - Dim EsBancomer = False - For Each gvr As DataRow In DtTemp.Rows - If gvr("CvePersonal").ToString <> "" AndAlso gvr("EstatusPagoElectronico").ToString <> "True" AndAlso gvr("AltaCuenta").ToString = "1" Then - DTPendienteActual = DtTemp.FiltraParametros(String.Format("CveCuentaDeposito = {0}", gvr("CveCuentaDeposito").ToString)) - ErrorCuenta = False - EsBancomer = False - - If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or (DTPendienteActual(0)("CLABE").ToString.Length = 18 AndAlso DTPendienteActual(0)("CLABE").ToString.Substring(0, 3) = "012") Then - EsBancomer = True - End If - - 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER - If Not ErrorCuenta Then - If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 And DTPendienteActual(0)("CLABE").ToString.Trim.Length = 0 And Not EsBancomer Then - FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 - If Not ErrorCuenta Then - If DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 10 AndAlso EsBancomer Then - FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 - If Not ErrorCuenta Then - If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 Then - FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'SI CIE TIENE ALGO DEBE TENER REFERENCIA OBLIGATORIA - If Not ErrorCuenta Then - If DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0 And DTPendienteActual(0)("Referencia").ToString.Trim.Length < 3 Then - FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" - If Not ErrorCuenta Then - If EsBancomer AndAlso Not (DTPendienteActual(0)("Cuenta").ToString.Trim.Length = 10 Or DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0) Then - FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) - ErrorCuenta = True - End If - End If - - If Not ErrorCuenta Then - If TotalDetalles > 0 Then - DetalleTexto &= vbCrLf - End If - GeneraAltaDetalleFyE() - TotalDetalles += 1 - End If - - End If - Next - FyEError.AppendFormat("
    PersonalCuentaError
    {0}{1}CLABE ES OBLIGATORIA
    {0}{1}NUMERO DE CUENTA CON FORMATO INCORRECTO
    {0}{1}CLABE CON FORMATO INCORRECTO
    {0}{1}CIE CON FORMATO INCORRECTO
    {0}{1}CUENTA BANCOMER SIN CUENTA O CIE
    ") - - - If TotalDetalles > 0 Then - FormarTextoAltaFyE(TotalDetalles) - CreaArchivo(2) - - Dim Descargas As New StringBuilder() - Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) - 'Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) - Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) - - - Dim TextoErrorProveedores = "" - If FyEError.Length > 160 Then TextoErrorProveedores = String.Format("


    Proveedores con Error:

    ------------------------------------------------------------------
    {0}

    ", FyEError.ToString) - - Alert(String.Format("
    El Layout fue creado satisfactoriamente.{1}
    Descargas:", Descargas, TextoErrorProveedores), TipoMensaje.MsgInformacion) - - 'NombreArchivo = "LayoutAltaProveedores" - 'DescargarArchivo() - Else - Alert("No hay proveedores que dar de alta", TipoMensaje.MsgInformacion) - End If - - - End Sub - - Private Sub GeneraAltaDetalleFyE() - Dim Resultado = True - Dim CuentaDeposito As String = "" - Dim TipoCuentaDeposito As String = "" - Dim TipoCuenta As String = "" - - ''''' LLENADO DE DETALLE - 'Campos #1-4 del Detalle - DetalleTexto &= String.Format("DA{0}N ", DTPendienteActual(0)("CveCuentaDeposito").ToString.ToUpper.PadLeft(30, PadCeros)) - - 'Banco BBVA - If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Then - 'Llenamos datos de BBVA - 'Campo #5-7 del detalle - - 'Busca que cuenta sera la asignada para el proveedor - If DTPendienteActual(0)("CIE").ToString <> "" Then - CuentaDeposito = String.Format("02{0}", DTPendienteActual(0)("CIE").ToString.PadLeft(8, PadCeros)) - TipoCuenta = "50" - TipoCuentaDeposito = "CIE" - ElseIf DTPendienteActual(0)("Cuenta").ToString.Length = 10 Then - CuentaDeposito = DTPendienteActual(0)("Cuenta").ToString - TipoCuenta = "99" - TipoCuentaDeposito = "Cuenta" - ElseIf DTPendienteActual(0)("CLABE").ToString.Length = 18 Then - CuentaDeposito = DTPendienteActual(0)("CLABE").ToString - TipoCuenta = "40" - TipoCuentaDeposito = "CLABE" - End If - - - DetalleTexto &= String.Format("{0}{1}{2}", DTPendienteActual(0)("Abreviatura").ToString, TipoCuenta, CuentaDeposito.PadLeft(35, PadCeros)) - - 'Llenamos en blanco datos de otros bancos - 'Campos 8-17 del detalle --- 64 de otros bancos y 45 para FILLER --- Fecha de Alta - DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(109), DateTime.Now().ToString("yyyy-MM-dd")) - - - 'Otros Bancos NACIONAL!! - Else - - CuentaDeposito = DTPendienteActual(0)("CLABE").ToString - TipoCuentaDeposito = "CLABE" - - 'Llenamos en blanco datos de BBVA - DetalleTexto &= Vacio.PadRight(40) - - 'Llenamos datos de otros bancos - 'Campos 8- 17 del detalle --- 44 de otros bancos --- 20 de internacional --- 45 Filler -- Fecha de Alta - DetalleTexto &= String.Format("{0}40{1}{2}{3}{4}{5}", DTPendienteActual(0)("Abreviatura").ToString, DTPendienteActual(0)("CLABE").ToString.PadLeft(35, PadCeros), DTPendienteActual(0)("CLABE").ToString.Substring(0, 3).PadLeft(4, PadCeros), Vacio.PadRight(20), Vacio.PadRight(45), DateTime.Now().ToString("yyyy-MM-dd")) - End If - - 'Llenamos datos de Tipo de Persona - Fisica - ' nombres Primer apellido Segundo apellido - DetalleTexto &= String.Format("F{0}{1}{2}{3}", Vacio.PadRight(70), DTPendienteActual(0)("Nombres").ToString.PadRight(20).Substring(0, 20), DTPendienteActual(0)("APaterno").ToString.PadRight(20).Substring(0, 20), DTPendienteActual(0)("AMaterno").ToString.PadRight(20).Substring(0, 20)) - - 'Campo 25-26 del detalle -- Fecha Nacimiento -- RFC - DetalleTexto &= String.Format("{0}{1}", DTPendienteActual(0)("FechaNacimiento").ToString.ToDate.ToString("yyyy-MM-dd"), DTPendienteActual(0)("RFC").ToString.ToUpper.PadRight(14)) - - 'Campos 27-32 --- Fillers --- datos de otros bancos (internacional) - DetalleTexto &= Vacio.PadLeft(153) - - 'Campos 33-36 --- Datos de confirmacion - DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), CorreoNotificacionesEmpresa.ToUpper.PadRight(50)) - - 'If DTPendienteActual(0)("ContactoMail").ToString.Length > 0 Then - ' 'DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), DTPendienteActual(0)("ContactoMail").ToString.ToUpper.PadRight(50)) - 'ElseIf DTPendienteActual(0)("ContactoMail").ToString.Length <= 0 Then - ' DetalleTexto &= String.Format("{0}00{1}", Vacio.PadRight(40), Vacio.PadRight(50)) - 'End If - - 'Campos 37-39 -- FILLER - DetalleTexto &= String.Format("00{0}", Vacio.PadRight(38)) - - - ''LLENA DT PARA REPORTE - Dim Row = DtAlta.NewRow() - Row("Proveedor") = DTPendienteActual(0)("RazonSocial").ToString - Row("Banco") = DTPendienteActual(0)("BancoNombre").ToString - Row("TipoCuenta") = TipoCuentaDeposito - Row("Cuenta") = String.Format("{0}", CuentaDeposito) - DtAlta.Rows.Add(Row) - End Sub - - Protected Sub FormarTextoAltaFyE(Registros As Integer) - '''''' LLENADO HEADER - Dim convenio As String = DTPendienteActual(0)("ConvenioPagoElectronico").ToString - 'Campos #1-4 del Header - HeaderTexto = String.Format("H{0}{1}GRUPO01 ", convenio.PadLeft(9, PadCeros), DateTime.Now().ToString("yyyy-MM-dd")) - 'Campo #5 del Header - HeaderTexto &= String.Format("{0}{1}", UsuarioActual.CveUsuario, DateTime.Now().ToString("yyyyMMdd")).PadRight(20) - 'Campos #6-8 del Header - HeaderTexto &= String.Format("00").PadRight(586) - Dim HeaderLength = HeaderTexto.Length - - ''''' LLENADO DE TRAILER - TrailerTexto = String.Format("T{0}{1}{2}", Registros.ToString.PadLeft(10, PadCeros), Vacio.PadRight(50, PadCeros), Vacio.PadRight(575)) - - ''''' ARMADO DEL TEXTO COMPLETO - TextoCompleto = String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, HeaderTexto, DetalleTexto, TrailerTexto) - 'TxtAltas.Text = TextoCompleto + Private Sub CargaFyE() + Dim ObjBancos As New ClsBancos + + If ObjBancos.GetLayoutFyE(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, PorGrupos:=True) Then + DTFyE = ObjBancos.DtResultados.FiltraParametros("LEN(RFC) IN (13)") + Else + DTFyE = Nothing + End If + ObjBancos.Dispose() + + If DTFyE.Rows.Count > 0 Then + GvProveedores.DataSource = DTFyE + End If + GvProveedores.DataBind() + + UpProveedores.Update() End Sub + 'Private Sub GeneraAltaFyE() + ' Dim DtTemp As DataTable = Nothing + + ' 'REINICIA PROPIEDAS + ' HeaderTexto = "" + ' DetalleTexto = "" + ' TrailerTexto = "" + ' TotalAcumulado = 0 + ' CreaDtAlta() + + ' DtTemp = DTFyE + + ' ''VALIDA CUENTAS DEPOSITOS + ' Dim ErrorCuenta = False + ' Dim FyEError As StringBuilder = New StringBuilder + ' FyEError.AppendFormat("") + + ' Dim TotalDetalles As Integer = 0 + ' Dim EsBancomer = False + ' For Each gvr As DataRow In DtTemp.Rows + ' If gvr("CvePersonal").ToString <> "" AndAlso gvr("EstatusPagoElectronico").ToString <> "True" AndAlso gvr("AltaCuenta").ToString = "1" Then + ' DTPendienteActual = DtTemp.FiltraParametros(String.Format("CveCuentaDeposito = {0}", gvr("CveCuentaDeposito").ToString)) + ' ErrorCuenta = False + ' EsBancomer = False + + ' If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Or (DTPendienteActual(0)("CLABE").ToString.Length = 18 AndAlso DTPendienteActual(0)("CLABE").ToString.Substring(0, 3) = "012") Then + ' EsBancomer = True + ' End If + + ' 'CLABE SIEMPRE OBLIGATORIA SI NO ES BANCOMER + ' If Not ErrorCuenta Then + ' If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 And DTPendienteActual(0)("CLABE").ToString.Trim.Length = 0 And Not EsBancomer Then + ' FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) + ' ErrorCuenta = True + ' End If + ' End If + + ' 'SI CUENTA TIENE ALGO Y BANCO BANCOMER DEBE TENER UNA LOGITUD EXACTA DE 10 + ' If Not ErrorCuenta Then + ' If DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("Cuenta").ToString.Trim.Length <> 10 AndAlso EsBancomer Then + ' FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) + ' ErrorCuenta = True + ' End If + ' End If + + ' 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 + ' If Not ErrorCuenta Then + ' If DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 0 AndAlso DTPendienteActual(0)("CLABE").ToString.Trim.Length <> 18 Then + ' FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) + ' ErrorCuenta = True + ' End If + ' End If + + ' 'SI CIE TIENE ALGO DEBE TENER REFERENCIA OBLIGATORIA + ' If Not ErrorCuenta Then + ' If DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0 And DTPendienteActual(0)("Referencia").ToString.Trim.Length < 3 Then + ' FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) + ' ErrorCuenta = True + ' End If + ' End If + + ' 'CUANDO SEA "BBVA" O "BANCOMER" DEBE TENER "CIE" O "CUENTA" + ' If Not ErrorCuenta Then + ' If EsBancomer AndAlso Not (DTPendienteActual(0)("Cuenta").ToString.Trim.Length = 10 Or DTPendienteActual(0)("CIE").ToString.Trim.Length <> 0) Then + ' FyEError.AppendFormat("", DTPendienteActual(0)("RazonSocial").ToString, DTPendienteActual(0)("BancoNombre").ToString) + ' ErrorCuenta = True + ' End If + ' End If + + ' If Not ErrorCuenta Then + ' If TotalDetalles > 0 Then + ' DetalleTexto &= vbCrLf + ' End If + ' GeneraAltaDetalleFyE() + ' TotalDetalles += 1 + ' End If + + ' End If + ' Next + ' FyEError.AppendFormat("
    PersonalCuentaError
    {0}{1}CLABE ES OBLIGATORIA
    {0}{1}NUMERO DE CUENTA CON FORMATO INCORRECTO
    {0}{1}CLABE CON FORMATO INCORRECTO
    {0}{1}CIE CON FORMATO INCORRECTO
    {0}{1}CUENTA BANCOMER SIN CUENTA O CIE
    ") + + + ' If TotalDetalles > 0 Then + ' FormarTextoAltaFyE(TotalDetalles) + ' CreaArchivo(2) + + ' Dim Descargas As New StringBuilder() + ' Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) + ' 'Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) + ' Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) + + + ' Dim TextoErrorProveedores = "" + ' If FyEError.Length > 160 Then TextoErrorProveedores = String.Format("


    Proveedores con Error:

    ------------------------------------------------------------------
    {0}

    ", FyEError.ToString) + + ' Alert(String.Format("
    El Layout fue creado satisfactoriamente.{1}
    Descargas:", Descargas, TextoErrorProveedores), TipoMensaje.MsgInformacion) + + ' 'NombreArchivo = "LayoutAltaProveedores" + ' 'DescargarArchivo() + ' Else + ' Alert("No hay proveedores que dar de alta", TipoMensaje.MsgInformacion) + ' End If + + + 'End Sub + + 'Private Sub GeneraAltaDetalleFyE() + ' Dim Resultado = True + ' Dim CuentaDeposito As String = "" + ' Dim TipoCuentaDeposito As String = "" + ' Dim TipoCuenta As String = "" + + ' ''''' LLENADO DE DETALLE + ' 'Campos #1-4 del Detalle + ' DetalleTexto &= String.Format("DA{0}N ", DTPendienteActual(0)("CveCuentaDeposito").ToString.ToUpper.PadLeft(30, PadCeros)) + + ' 'Banco BBVA + ' If DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BBVA") Or DTPendienteActual(0)("BancoNombre").ToString.ToUpper.Contains("BANCOMER") Then + ' 'Llenamos datos de BBVA + ' 'Campo #5-7 del detalle + + ' 'Busca que cuenta sera la asignada para el proveedor + ' If DTPendienteActual(0)("CIE").ToString <> "" Then + ' CuentaDeposito = String.Format("02{0}", DTPendienteActual(0)("CIE").ToString.PadLeft(8, PadCeros)) + ' TipoCuenta = "50" + ' TipoCuentaDeposito = "CIE" + ' ElseIf DTPendienteActual(0)("Cuenta").ToString.Length = 10 Then + ' CuentaDeposito = DTPendienteActual(0)("Cuenta").ToString + ' TipoCuenta = "99" + ' TipoCuentaDeposito = "Cuenta" + ' ElseIf DTPendienteActual(0)("CLABE").ToString.Length = 18 Then + ' CuentaDeposito = DTPendienteActual(0)("CLABE").ToString + ' TipoCuenta = "40" + ' TipoCuentaDeposito = "CLABE" + ' End If + + + ' DetalleTexto &= String.Format("{0}{1}{2}", DTPendienteActual(0)("Abreviatura").ToString, TipoCuenta, CuentaDeposito.PadLeft(35, PadCeros)) + + ' 'Llenamos en blanco datos de otros bancos + ' 'Campos 8-17 del detalle --- 64 de otros bancos y 45 para FILLER --- Fecha de Alta + ' DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(109), DateTime.Now().ToString("yyyy-MM-dd")) + + + ' 'Otros Bancos NACIONAL!! + ' Else + + ' CuentaDeposito = DTPendienteActual(0)("CLABE").ToString + ' TipoCuentaDeposito = "CLABE" + + ' 'Llenamos en blanco datos de BBVA + ' DetalleTexto &= Vacio.PadRight(40) + + ' 'Llenamos datos de otros bancos + ' 'Campos 8- 17 del detalle --- 44 de otros bancos --- 20 de internacional --- 45 Filler -- Fecha de Alta + ' DetalleTexto &= String.Format("{0}40{1}{2}{3}{4}{5}", DTPendienteActual(0)("Abreviatura").ToString, DTPendienteActual(0)("CLABE").ToString.PadLeft(35, PadCeros), DTPendienteActual(0)("CLABE").ToString.Substring(0, 3).PadLeft(4, PadCeros), Vacio.PadRight(20), Vacio.PadRight(45), DateTime.Now().ToString("yyyy-MM-dd")) + ' End If + + ' 'Llenamos datos de Tipo de Persona - Fisica + ' ' nombres Primer apellido Segundo apellido + ' DetalleTexto &= String.Format("F{0}{1}{2}{3}", Vacio.PadRight(70), DTPendienteActual(0)("Nombres").ToString.PadRight(20).Substring(0, 20), DTPendienteActual(0)("APaterno").ToString.PadRight(20).Substring(0, 20), DTPendienteActual(0)("AMaterno").ToString.PadRight(20).Substring(0, 20)) + + ' 'Campo 25-26 del detalle -- Fecha Nacimiento -- RFC + ' DetalleTexto &= String.Format("{0}{1}", DTPendienteActual(0)("FechaNacimiento").ToString.ToDate.ToString("yyyy-MM-dd"), DTPendienteActual(0)("RFC").ToString.ToUpper.PadRight(14)) + + ' 'Campos 27-32 --- Fillers --- datos de otros bancos (internacional) + ' DetalleTexto &= Vacio.PadLeft(153) + + ' 'Campos 33-36 --- Datos de confirmacion + ' DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), CorreoNotificacionesEmpresa.ToUpper.PadRight(50)) + + ' 'If DTPendienteActual(0)("ContactoMail").ToString.Length > 0 Then + ' ' 'DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), DTPendienteActual(0)("ContactoMail").ToString.ToUpper.PadRight(50)) + ' 'ElseIf DTPendienteActual(0)("ContactoMail").ToString.Length <= 0 Then + ' ' DetalleTexto &= String.Format("{0}00{1}", Vacio.PadRight(40), Vacio.PadRight(50)) + ' 'End If + + ' 'Campos 37-39 -- FILLER + ' DetalleTexto &= String.Format("00{0}", Vacio.PadRight(38)) + + + ' ''LLENA DT PARA REPORTE + ' Dim Row = DtAlta.NewRow() + ' Row("Proveedor") = DTPendienteActual(0)("RazonSocial").ToString + ' Row("Banco") = DTPendienteActual(0)("BancoNombre").ToString + ' Row("TipoCuenta") = TipoCuentaDeposito + ' Row("Cuenta") = String.Format("{0}", CuentaDeposito) + ' DtAlta.Rows.Add(Row) + 'End Sub + + 'Protected Sub FormarTextoAltaFyE(Registros As Integer) + ' '''''' LLENADO HEADER + ' Dim convenio As String = DTPendienteActual(0)("ConvenioPagoElectronico").ToString + ' 'Campos #1-4 del Header + ' HeaderTexto = String.Format("H{0}{1}GRUPO01 ", convenio.PadLeft(9, PadCeros), DateTime.Now().ToString("yyyy-MM-dd")) + ' 'Campo #5 del Header + ' HeaderTexto &= String.Format("{0}{1}", UsuarioActual.CveUsuario, DateTime.Now().ToString("yyyyMMdd")).PadRight(20) + ' 'Campos #6-8 del Header + ' HeaderTexto &= String.Format("00").PadRight(586) + ' Dim HeaderLength = HeaderTexto.Length + + ' ''''' LLENADO DE TRAILER + ' TrailerTexto = String.Format("T{0}{1}{2}", Registros.ToString.PadLeft(10, PadCeros), Vacio.PadRight(50, PadCeros), Vacio.PadRight(575)) + + ' ''''' ARMADO DEL TEXTO COMPLETO + ' TextoCompleto = String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, HeaderTexto, DetalleTexto, TrailerTexto) + ' 'TxtAltas.Text = TextoCompleto + 'End Sub + #End Region