From 35f5d5cd30219ebc3f866f41ef847bd5d5c6d698 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 7 Apr 2020 10:38:27 -0700 Subject: [PATCH 1/5] -pu decimal --- OS/OrdenesServicios.aspx.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OS/OrdenesServicios.aspx.vb b/OS/OrdenesServicios.aspx.vb index 9737cf675..647fd13a9 100644 --- a/OS/OrdenesServicios.aspx.vb +++ b/OS/OrdenesServicios.aspx.vb @@ -2362,7 +2362,7 @@ Partial Class OS_OrdenesServicios If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, -1, -1) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, -1) Then TieneError = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For @@ -2389,7 +2389,7 @@ Partial Class OS_OrdenesServicios If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada2, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, -1, -1) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada2, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, -1) Then TieneError = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For From 79c963be713ed338ddb81b6bf9877daf945f5aeb Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Tue, 7 Apr 2020 12:31:00 -0700 Subject: [PATCH 2/5] Pago electronico grupos cuentas deposito en ProveedoresAbonar y modulos en clsPaginas --- App_Code/ClsBancos.vb | 9 +- App_Code/ClsPaginas.vb | 3 +- Bancos/PagoElectronicoGrupos.aspx | 4 - Bancos/PagoElectronicoGrupos.aspx.vb | 412 ++++++++++++++++++++------- Bancos/ProveedoresAbonar.aspx.vb | 31 +- 5 files changed, 341 insertions(+), 118 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index fb92a81d1..06889de41 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -3155,14 +3155,15 @@ Public Class ClsBancos Return Retorno End Function - Public Function GetLayoutFyE(CveCuenta As Integer, CveEmpresa As Integer) As Boolean + Public Function GetLayoutFyE(CveCuenta As Integer, CveEmpresa As Integer, Optional PorGrupos As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Banc_LayoutFyE") With SqlAdapter.SelectCommand.Parameters .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@PorGrupos", SqlDbType.Bit).Value = PorGrupos End With Try @@ -3173,9 +3174,9 @@ Public Class ClsBancos End Try Return Retorno - End Function + End Function #End Region - + #Region "F L U C T U A C I O N E S" Public Function GetFluctuacionesBitacora(CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 081440aab..93e73950c 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3801,6 +3801,7 @@ Public Class ClsPaginas PaginaDict.Add("/Bancos/Creditos.aspx".ToUpper(), 318) PaginaDict.Add("/Bancos/PagoElectronico.aspx".ToUpper(), 324) PaginaDict.Add("/Bancos/RepProgramaciones.aspx".ToUpper(), 323) + PaginaDict.Add("/Bancos/PagoElectronicoGrupos.aspx".ToUpper(), 1318) PaginaDict.Add("/Bancos/PopIE.aspx".ToUpper(), 153) PaginaDict.Add("/Bancos/PopIEVentas.aspx".ToUpper(), 153) @@ -4709,7 +4710,7 @@ Public Class ClsPaginas PaginaDict.Add("/PV/PVRepCompras.aspx".ToUpper(), 272) PaginaDict.Add("/PV/PVRepVentasCompras.aspx".ToUpper(), 273) - PaginaDict.Add("/Bancos/PagoElectronicoGrupos.aspx".ToUpper(), -1) + diff --git a/Bancos/PagoElectronicoGrupos.aspx b/Bancos/PagoElectronicoGrupos.aspx index f1752353f..521e5853c 100644 --- a/Bancos/PagoElectronicoGrupos.aspx +++ b/Bancos/PagoElectronicoGrupos.aspx @@ -14,11 +14,7 @@ - - - - diff --git a/Bancos/PagoElectronicoGrupos.aspx.vb b/Bancos/PagoElectronicoGrupos.aspx.vb index 01a4a3521..0e89dec64 100644 --- a/Bancos/PagoElectronicoGrupos.aspx.vb +++ b/Bancos/PagoElectronicoGrupos.aspx.vb @@ -516,10 +516,10 @@ Partial Class Bancos_PagoElectronicoGrupos Exit Sub End If - AltaProveedores(1) + AltaProveedores() End Sub - Private Sub AltaProveedores(TipoAlta As Integer, Optional DtCuentasPendientesTemp As DataTable = Nothing) + Private Sub AltaProveedores(Optional DtCuentasPendientesTemp As DataTable = Nothing) NombreArchivo = "" @@ -646,7 +646,7 @@ Partial Class Bancos_PagoElectronicoGrupos SBTmpInterbancarias.Append("0999999999999.99") - If dRow("RazonSocial").ToString.Trim.Length <31 Then 'Tamaño maximo 30 + If dRow("RazonSocial").ToString.Trim.Length < 31 Then 'Tamaño maximo 30 SBTmpInterbancarias.Append(dRow("RazonSocial").ToString.PadRight(30, EspacioRelleno)) Else SBTmpInterbancarias.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) @@ -1091,124 +1091,124 @@ Partial Class Bancos_PagoElectronicoGrupos End Sub - Private Sub GeneraPagoViejo(DTTemp As DataTable, CveBLE As Integer) - If DTTemp.Rows.Count <= 0 Then - Alert("No hay registros para generar", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + 'Private Sub GeneraPagoViejo(DTTemp As DataTable, CveBLE As Integer) + ' If DTTemp.Rows.Count <= 0 Then + ' Alert("No hay registros para generar", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If - 'For Each gvr As DataRow In DTTemp.Rows - ' If gvr("EstatusPagoElectronico").ToString.ToEntero <= 0 Then - ' Alert("Los proveedores tienen que estar dados de alta. Primero de alta a los proveedores") - ' Exit Sub - ' End If - 'Next + ' 'For Each gvr As DataRow In DTTemp.Rows + ' ' If gvr("EstatusPagoElectronico").ToString.ToEntero <= 0 Then + ' ' Alert("Los proveedores tienen que estar dados de alta. Primero de alta a los proveedores") + ' ' Exit Sub + ' ' End If + ' 'Next - 'Comprobamos la cuenta deposito y moneda de las cuentas deposito - For Each dr As DataRow In DTTemp.Rows - If dr("BancoNombre").ToString = "" Then - Alert(String.Format("El Pago '{0}' no tiene Cuenta Deposito Asociada.", dr("Observaciones")), TipoMensaje.MsgError) - Exit Sub - End If + ' 'Comprobamos la cuenta deposito y moneda de las cuentas deposito + ' For Each dr As DataRow In DTTemp.Rows + ' If dr("BancoNombre").ToString = "" Then + ' Alert(String.Format("El Pago '{0}' no tiene Cuenta Deposito Asociada.", dr("Observaciones")), TipoMensaje.MsgError) + ' Exit Sub + ' End If - If dr("MonedaCtaDeposito").ToString = "" Or dr("MonedaCtaDeposito").ToString.ToEntero <= 0 Then - Alert(String.Format("La cuenta deposito '{0}' del proveedor '{1}' no tiene Moneda especificada.", dr("CuentaDeposito"), dr("RazonSocial")), TipoMensaje.MsgError) - Exit Sub - End If - Next + ' If dr("MonedaCtaDeposito").ToString = "" Or dr("MonedaCtaDeposito").ToString.ToEntero <= 0 Then + ' Alert(String.Format("La cuenta deposito '{0}' del proveedor '{1}' no tiene Moneda especificada.", dr("CuentaDeposito"), dr("RazonSocial")), TipoMensaje.MsgError) + ' Exit Sub + ' End If + ' Next - 'Excluimos los registros que no tengan cuenta deposito dada de alta - 'DTTemp = DTTemp.FiltraParametros("EstatusPagoElectronico = 0") + ' 'Excluimos los registros que no tengan cuenta deposito dada de alta + ' 'DTTemp = DTTemp.FiltraParametros("EstatusPagoElectronico = 0") - HeaderTexto = "" - DetalleTexto = "" - TrailerTexto = "" - TotalAcumulado = 0 + ' HeaderTexto = "" + ' DetalleTexto = "" + ' TrailerTexto = "" + ' TotalAcumulado = 0 - 'Insertar en LayoutEnvios - Dim ObjBancos As New ClsBancos - ObjBancos.IniciaTransacSQL() - Dim ErrorLayout = False + ' 'Insertar en LayoutEnvios + ' Dim ObjBancos As New ClsBancos + ' ObjBancos.IniciaTransacSQL() + ' Dim ErrorLayout = False - Dim TotalDetalles As Integer = 0 + ' Dim TotalDetalles As Integer = 0 - 'CREA CARPETA SI NO EXISTE - Dim path As String = Server.MapPath(String.Format("~/Empresas/{0}/Layout/", UsuarioActual.CveEmpresa)) - Dim exists = System.IO.Directory.Exists(path) - If Not exists Then - System.IO.Directory.CreateDirectory(path) - End If + ' 'CREA CARPETA SI NO EXISTE + ' Dim path As String = Server.MapPath(String.Format("~/Empresas/{0}/Layout/", UsuarioActual.CveEmpresa)) + ' Dim exists = System.IO.Directory.Exists(path) + ' If Not exists Then + ' System.IO.Directory.CreateDirectory(path) + ' End If - Dim CveIEs = "" - CreaDtPago() + ' Dim CveIEs = "" + ' CreaDtPago() - For Each gvr As DataRow In DTTemp.Rows - If gvr("CveCuentaDeposito").ToString <> "" Then - DTPendienteActual = DTTemp.FiltraParametros(String.Format("CveIE = {0}", gvr("CveIE").ToString)) + ' For Each gvr As DataRow In DTTemp.Rows + ' If gvr("CveCuentaDeposito").ToString <> "" Then + ' DTPendienteActual = DTTemp.FiltraParametros(String.Format("CveIE = {0}", gvr("CveIE").ToString)) - 'ACTUALIZA FECHADOCUMENTO DEL IE - 'If CveBLE > 0 Then - ' ObjBancos.UpdateBancos_IE(Date.Now, Date.Now, DTPendienteActual(0)("CveIE").ToString.ToEntero) - 'End If + ' 'ACTUALIZA FECHADOCUMENTO DEL IE + ' 'If CveBLE > 0 Then + ' ' ObjBancos.UpdateBancos_IE(Date.Now, Date.Now, DTPendienteActual(0)("CveIE").ToString.ToEntero) + ' 'End If - If TotalDetalles > 0 Then - DetalleTexto &= vbCrLf - End If - CrearDetallePagos() - TotalDetalles += 1 - End If - Next + ' If TotalDetalles > 0 Then + ' DetalleTexto &= vbCrLf + ' End If + ' CrearDetallePagos() + ' TotalDetalles += 1 + ' End If + ' Next - FormarTextoPagos(TotalDetalles, TotalAcumulado.ToString.FormatoNumero.Replace(",", "").Replace(".", "")) - CreaArchivo(1) + ' FormarTextoPagos(TotalDetalles, TotalAcumulado.ToString.FormatoNumero.Replace(",", "").Replace(".", "")) + ' CreaArchivo(1) - If CveBLE > 0 Then - 'ACTUALIZAMOS EL ENVIO SI ES REGENERACION - If Not ObjBancos.UpdateLayoutEnvios(CveBLE, Date.Now) Then - ErrorLayout = True - End If + ' If CveBLE > 0 Then + ' 'ACTUALIZAMOS EL ENVIO SI ES REGENERACION + ' If Not ObjBancos.UpdateLayoutEnvios(CveBLE, Date.Now) Then + ' ErrorLayout = True + ' End If - 'GUARDAMOS EL ENVIO SI NO ES REGENERACION - Else + ' 'GUARDAMOS EL ENVIO SI NO ES REGENERACION + ' Else - Dim CveLayoutEnvio = ObjBancos.AddLayoutEnvios(NombreArchivo, Date.Now, CveCuenta) + ' Dim CveLayoutEnvio = ObjBancos.AddLayoutEnvios(NombreArchivo, Date.Now, CveCuenta) - If CveLayoutEnvio > 0 Then - For Each dr As DataRow In DTTemp.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 - End If - End If - Next - Else - ErrorLayout = True - End If + ' If CveLayoutEnvio > 0 Then + ' For Each dr As DataRow In DTTemp.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 + ' End If + ' End If + ' Next + ' Else + ' ErrorLayout = True + ' End If - End If + ' End If - If Not ErrorLayout Then - ObjBancos.Commit() - ObjBancos.Dispose() + ' If Not ErrorLayout Then + ' ObjBancos.Commit() + ' ObjBancos.Dispose() - Dim Des = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo) - Dim Descargas As New StringBuilder() - Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) - ' Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) - Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) + ' Dim Des = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo) + ' Dim Descargas As New StringBuilder() + ' Descargas.AppendFormat("
  • TXT
  • ", NombreArchivo) + ' ' Descargas.AppendFormat("
  • Reporte
  • ", NombreArchivo) + ' Descargas.AppendFormat("
  • Descargar Reporte
  • ", NombreArchivo) - Alert(String.Format("
    El Layout fue creado satisfactoriamente.


    Descargas:
      {0}
    ", Descargas), TipoMensaje.MsgInformacion) - 'Alert("El Layout fue creado satisfactoriamente") - Else - ObjBancos.RollBack() - ObjBancos.Dispose() - Alert("Ocurrio un problema al registrar la creacion del Layout. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If + ' Alert(String.Format("
    El Layout fue creado satisfactoriamente.


    Descargas:
      {0}
    ", Descargas), TipoMensaje.MsgInformacion) + ' 'Alert("El Layout fue creado satisfactoriamente") + ' Else + ' ObjBancos.RollBack() + ' ObjBancos.Dispose() + ' Alert("Ocurrio un problema al registrar la creacion del Layout. Por favor vuelva a intentar.", TipoMensaje.MsgError) + ' End If - End Sub + 'End Sub Protected Sub CrearDetallePagos() 'Dim Resultado = True @@ -1895,10 +1895,220 @@ Partial Class Bancos_PagoElectronicoGrupos 'FUNCIONARIO O EMPLEADO #Region " ALTA FUNCIONARIO " + + Private Sub AltaFyE(Optional DtCuentasPendientesTemp As DataTable = Nothing) + + + NombreArchivo = "" + + Dim RegistrosAltaBancomer As New StringBuilder + Dim RegistrosAltaInterbancario As New StringBuilder + Dim SBErrores As New StringBuilder + + Dim NombreArchivoBancomer As String = "" + Dim NombreArchivoInterbancario As String = "" + + Dim CeroRelleno As Char = "0"c + Dim EspacioRelleno As Char = Chr(32) + Dim ErrorLayout = False + + + If DtCuentasPendientesTemp Is Nothing Then + DtCuentasPendientesTemp = DTFyE.Copy + End If + + + + 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"}) + 'CLABEDestino + + If DtCuentasPendientesBancomer.Rows.Count > 0 Then + For Each dRow As DataRow In DtCuentasPendientesBancomer.Rows + + Dim SBTmpBancomer As New StringBuilder + Dim SBErroresBancomer As New StringBuilder + Dim ErrorLineaBancomer As Boolean = False + + SBErroresBancomer.Append($"{dRow("RazonSocial").ToString } ") + SBErroresBancomer.Append($"Cuenta: {dRow("Cuenta").ToString } ") + + If dRow("CLABEDestino").ToString.Length <= 18 Then 'Tamaño maximo 18 + SBTmpBancomer.Append(dRow("CLABEDestino").ToString.PadLeft(18, CeroRelleno)) + Else + SBErroresBancomer.Append("La cuenta beneficiaria no puede ser mayor a 18 caracteres, ") + ErrorLineaBancomer = True + End If + + + If dRow("CLABEDestino").ToString.Trim = "" Then + SBErroresBancomer.Append("La cuenta beneficiaria no puede ser nula,") + ErrorLineaBancomer = True + End If + + If dRow("Abreviatura").ToString.Length = 3 Then + SBTmpBancomer.Append(dRow("Abreviatura")) + Else + SBErroresBancomer.Append("El tamaño de la divisa es incorrecto, ") + ErrorLineaBancomer = True + End If + + SBTmpBancomer.Append("0999999999999.99") + + If dRow("RazonSocial").ToString.Trim.Length < 31 Then 'Tamaño maximo 30 + SBTmpBancomer.Append(dRow("RazonSocial").ToString.PadRight(30, EspacioRelleno)) + Else + SBTmpBancomer.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) + End If + + 'ALIAS DE LA CUENTA PENDIENTE TAMAÑO MAXIMO 30 + SBTmpBancomer.Append(dRow("BBVAAlias").ToString.PadRight(30, EspacioRelleno)) + + 'CORREO OPCIONAL TAMAÑO MAXIMO 80 + 'RegistrosAlta.Append("".ToString.PadLeft(80, EspacioRelleno)) + + SBTmpBancomer.Append(vbCrLf) + + + If Not ErrorLineaBancomer Then + RegistrosAltaBancomer.Append(SBTmpBancomer.ToString) + Else + SBErroresBancomer.Append("
    ") + SBErrores.AppendLine(SBErroresBancomer.ToString) + End If + + + Next + + TextoCompleto = RegistrosAltaBancomer.ToString + + If CreaArchivo(2, True) Then + NombreArchivoBancomer = NombreArchivo + End If + + + End If + + + + + If DtCuentasPendientesInterbancarias.Rows.Count > 0 Then + + For Each dRow As DataRow In DtCuentasPendientesInterbancarias.Rows + + Dim SBTmpInterbancarias As New StringBuilder + Dim SBErroresInterBancario As New StringBuilder + Dim ErrorLineaInterbancaria As Boolean = False + + SBErroresInterBancario.Append($"{dRow("RazonSocial").ToString } ") + SBErroresInterBancario.Append($"Cuenta: {dRow("Cuenta").ToString } ") + + If dRow("CveBanco").ToString.Trim.Length = 3 Then + SBTmpInterbancarias.Append(dRow("CveBanco").ToString.Trim) + Else + SBErroresInterBancario.Append("clave ABM(Clave SAT) incorrecta, ") + ErrorLineaInterbancaria = True + End If + + + If dRow("CLABEDestino").ToString.Length <= 18 Then 'Tamaño maximo 18 + SBTmpInterbancarias.Append(dRow("CLABEDestino").ToString.PadLeft(18, CeroRelleno)) + Else + SBErroresInterBancario.Append("La cuenta beneficiaria no puede ser mayor a 18 caracteres, ") + ErrorLineaInterbancaria = True + End If + + + + If dRow("CLABEDestino").ToString.Trim = "" Then + SBErroresInterBancario.Append("La cuenta beneficiaria no puede ser nula,") + ErrorLineaInterbancaria = True + End If + + If dRow("Abreviatura").ToString.Length = 3 Then + SBTmpInterbancarias.Append(dRow("Abreviatura").ToString.Trim) + Else + SBErroresInterBancario.Append("El tamaño de la divisa es incorrecto, ") + ErrorLineaInterbancaria = True + End If + + SBTmpInterbancarias.Append("0999999999999.99") + + If dRow("RazonSocial").ToString.Trim.Length < 31 Then 'Tamaño maximo 30 + SBTmpInterbancarias.Append(dRow("RazonSocial").ToString.PadRight(30, EspacioRelleno)) + Else + SBTmpInterbancarias.Append(dRow("RazonSocial").ToString.Trim.Substring(0, 30)) + End If + + ' ALIAS DE LA CUENTA PENDIENTE TAMAÑO MAXIMO 30 + SBTmpInterbancarias.Append(dRow("BBVAAlias").ToString.PadRight(30, EspacioRelleno)) + + 'CORREO OPCIONAL TAMAÑO MAXIMO 80 + 'RegistrosAlta.Append("".ToString.PadLeft(80, EspacioRelleno)) + + + 'Tipo de cuenta + SBTmpInterbancarias.Append("40") + + SBTmpInterbancarias.Append(vbCrLf) + + + If Not ErrorLineaInterbancaria Then + RegistrosAltaInterbancario.Append(SBTmpInterbancarias.ToString) + Else + SBErroresInterBancario.Append("
    ") + SBErrores.AppendLine(SBErroresInterBancario.ToString) + End If + + Next + + If RegistrosAltaInterbancario.Length > 0 Then + TextoCompleto = RegistrosAltaInterbancario.ToString + If CreaArchivo(2, False) Then + NombreArchivoInterbancario = NombreArchivo + End If + End If + + End If + + + Dim Mensaje As New StringBuilder + + + Mensaje.Append("Descarga Layouts

    ") + + If NombreArchivoBancomer.Trim.Length > 0 Then + Mensaje.Append($"Cuentas Bancomer Descarga Archivo cuentas Bancomer

    ") + End If + + + If NombreArchivoInterbancario.Trim.Length > 0 Then + Mensaje.Append($"Cuentas Interbancarias Descarga Archivo cuentas Bancomer

    ") + End If + + + If SBErrores.ToString.Length > 0 Then + Mensaje.Append("Errores Cuentas
    ") + Mensaje.Append("
    ") + End If + + If NombreArchivoBancomer.Length > 0 Or NombreArchivoInterbancario.Length > 0 Then + Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) + End If + + + + End Sub + + Private Sub CargaFyE() Dim ObjBancos As New ClsBancos - If ObjBancos.GetLayoutFyE(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjBancos.GetLayoutFyE(DdlCuenta.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, PorGrupos:=True) Then DTFyE = ObjBancos.DtResultados.FiltraParametros("LEN(RFC) IN (13)") Else DTFyE = Nothing @@ -1912,6 +2122,7 @@ Partial Class Bancos_PagoElectronicoGrupos UpProveedores.Update() End Sub + Private Sub GeneraAltaFyE() Dim DtTemp As DataTable = Nothing @@ -2017,6 +2228,7 @@ Partial Class Bancos_PagoElectronicoGrupos End Sub + Private Sub GeneraAltaDetalleFyE() Dim Resultado = True Dim CuentaDeposito As String = "" @@ -2100,6 +2312,7 @@ Partial Class Bancos_PagoElectronicoGrupos 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 @@ -2118,6 +2331,7 @@ Partial Class Bancos_PagoElectronicoGrupos TextoCompleto = String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, HeaderTexto, DetalleTexto, TrailerTexto) 'TxtAltas.Text = TextoCompleto End Sub + #End Region @@ -2188,9 +2402,9 @@ Partial Class Bancos_PagoElectronicoGrupos End If If TipoMasiva = 1 Then - AltaProveedores(2, DTProveedores) + AltaProveedores(DTProveedores) Else - GeneraAltaFyE() + AltaFyE() End If End Sub diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index b986ebb70..769e68b58 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -2513,20 +2513,31 @@ Partial Class Bancos_ProveedoresAbonar ElseIf DdlTipoTransaccion.SelectedValue = "17" Then + + '''Permitir pago sin cuneta deposito + If Dep.DtResultados.Rows.Count > 0 Then DdlCuentaDeposito.DataSource = Dep.DtResultados '.FiltraParametros("EstatusPagoElectronicoGrupos = 'True' AND Estatus ='True'") + trCuentaDeposito.Visible = True + BtnIEGuardar.ToolTip = "" Else - Alert("El proveedor no tiene cuentas deposito registradas.") - End If - - 'If Dep.DtResultados.FiltraParametros("EstatusPagoElectronicoGrupos = 'True' AND Estatus ='True'").Rows.Count > 0 Then - ' trCuentaDeposito.Visible = True - ' DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) - 'Else - ' BtnIEGuardar.Enabled = False - ' Alert("El proveedor no tiene ninguna cuenta deposito registrada ", TipoMensaje.MsgAdvertencia) - 'End If + 'Alert("El proveedor no tiene cuentas deposito registradas.") + BtnIEGuardar.Enabled = False + BtnIEGuardar.ToolTip = "El proveedor no tiene cuentas deposito" + + + + End If + + 'If Dep.DtResultados.FiltraParametros("EstatusPagoElectronicoGrupos = 'True' AND Estatus ='True'").Rows.Count > 0 Then + ' trCuentaDeposito.Visible = True + ' DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) + 'Else + ' BtnIEGuardar.Enabled = False + ' Alert("El proveedor no tiene ninguna cuenta deposito registrada ", TipoMensaje.MsgAdvertencia) + 'End If + UpGuardar.Update() Else DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("Estatus ='True'") If Dep.DtResultados.Rows.Count > 0 Then From b0286482068cc76f137a00904ecb93c97c69852b Mon Sep 17 00:00:00 2001 From: Raul Pimienta Date: Tue, 7 Apr 2020 13:48:20 -0700 Subject: [PATCH 3/5] Nueva funcionalidad de existencias en inventario --- App_Code/ClsInventarios.vb | 25 ++- Inventarios/RecepcionAlmacen.aspx | 63 +++++- Inventarios/RecepcionAlmacen.aspx.vb | 274 +++++++++++++++++++++----- Inventarios/RecepcionEntrega.aspx | 95 +++++++++ Inventarios/RecepcionEntrega.aspx.vb | 278 +++++++++++++++++++++++++-- 5 files changed, 657 insertions(+), 78 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 4cacc834a..1e43dbd34 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1817,7 +1817,7 @@ Public Class ClsInventarios CveAlmacen As Integer, Optional CveSeccionAlmacen As Integer = -1, Optional CveTipoAlmacen As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional FechaMovto As String = "-1", Optional SerieLote As String = "-1", Optional CveVendedor As Integer = -1, Optional CveCliente As Integer = -1, Optional ExcluyeAdelantado As Integer = -1, Optional PendientePorSurtir As Integer = -1, Optional Lote As String = "-1", Optional Batch As String = "-1", - Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1) As Boolean + Optional ExcluyeApartados As Integer = 1, Optional RestringirAlmacenes As Integer = -1, Optional Caducidad As Date = MinFecha) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_ExistenciasGet") @@ -1839,6 +1839,7 @@ Public Class ClsInventarios .Add("@PendientePorSurtir", SqlDbType.Int).Value = PendientePorSurtir .Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados .Add("@RestringirAlmacenes", SqlDbType.Int).Value = RestringirAlmacenes + .Add("@Caducidad", SqlDbType.Date).Value = Caducidad .Add("@Existencia", SqlDbType.Money).Direction = ParameterDirection.Output End With Try @@ -4922,6 +4923,28 @@ Public Class ClsInventarios Return Retorno End Function + +#Region "SUGERENCIAS SALIDA DE ALMACEN" + + Public Function GetSugerenciasSalidaAlmacen(CveVenta As Integer, CveAlmacen As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Inv_SugerenciasSalidasGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las sugerencias para la salida de almacen.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + +#End Region + #Region " IDisposable Support " ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) diff --git a/Inventarios/RecepcionAlmacen.aspx b/Inventarios/RecepcionAlmacen.aspx index 0c9fa6b71..8d742140e 100644 --- a/Inventarios/RecepcionAlmacen.aspx +++ b/Inventarios/RecepcionAlmacen.aspx @@ -167,7 +167,7 @@ Almacén:
    - +
    @@ -418,7 +418,7 @@ + DataKeyNames="EntregaDirecta,Consec,CodigoBarras,CvePS,CveUM,PU,CantidadC,CantidadF,UM,PS,CveCompraDetalle,CveOrdenCompraDetalle,PUExtranjero,AplicaSerieLote,CveClasificacion,Codigo,CveVentaDetalle,CostoIndirecto,CveTamaño,Lote" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None"> @@ -445,11 +445,30 @@ - + + + + + + + + +
    + + + + + + + + +
    +
    +
    @@ -463,6 +482,13 @@ + + + + + +
    @@ -568,7 +594,7 @@ - +
    @@ -685,13 +711,13 @@ - +
    - + @@ -705,8 +731,8 @@
    - @@ -1135,7 +1161,28 @@ $("#DivCantidadEspecial").show(200); } + function Dividir(t) { + $get("HdnCantidadMovimiento").value = $get(t).value; + } + function LimitaCantidad(C, textbox, button) { + + // var contenedor = $(textbox).parent().find("#" + buttonIdDiv); + + if (ToDouble(textbox.value) >= C) { + textbox.value = ""; + } + + if (parseFloat(textbox.value) > 0) { + $get(button).style.display = ""; + //$(contenedor).show(); + } + else { + $get(button).style.display = "none"; + //$(contenedor).hide(); + + } + } diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index 161b1714c..74dcd9aed 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -476,7 +476,22 @@ Partial Class Inventarios_RecepcionAlmacen DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen) UpGenerales.Update() + End Sub + + Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) + If DdlAlmacen.SelectedValue <> "-1" Then + For Each Gvr As GridViewRow In GvInv.Rows + If Gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue = "-1" Then + Dim Dr As DataRow = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero($"CveAlmacen = {DdlAlmacen.SelectedValue}") + If Dr IsNot Nothing Then + Gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValueExist(Dr("CveSeccion")) + End If + End If + Next + UPInv.Update() + End If End Sub + Private Sub ConfiguraTipoRecepcion() DdlTipo.Items.Insert(0, New ListItem("Compra", "1")) @@ -1095,9 +1110,29 @@ Partial Class Inventarios_RecepcionAlmacen TmDT.Columns.Add("CostoIndirectoExtranjero", GetType(Double)) TmDT.Columns.Add("Consec", GetType(Integer)) TmDT.Columns.Add("CantidadSurtidaPantalla", GetType(Double)) + TmDT.Columns.Add("AplicaSeccion", GetType(Boolean)) + TmDT.Columns.Add("AplicaSerie", GetType(Boolean)) + TmDT.Columns.Add("AplicaLote", GetType(Boolean)) + TmDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) If Not TmDT.Columns.Contains("CostoIndirecto") Then TmDT.Columns.Add("CostoIndirecto", GetType(Double)) End If + If Not TmDT.Columns.Contains("Lote") Then + TmDT.Columns.Add("Lote", GetType(String)) + End If + If Not TmDT.Columns.Contains("CveSeccion") Then + TmDT.Columns.Add("CveSeccion", GetType(Integer)) + End If + If Not TmDT.Columns.Contains("Caducidad") Then + TmDT.Columns.Add("Caducidad", GetType(Date)) + End If + If Not TmDT.Columns.Contains("Seleccionado") Then + TmDT.Columns.Add("Seleccionado", GetType(Boolean)) + End If + If Not TmDT.Columns.Contains("CantidadSeleccionada") Then + TmDT.Columns.Add("CantidadSeleccionada", GetType(Double)) + End If + GvInv.Columns(2).Visible = False GvInv.Columns(3).Visible = False @@ -1116,6 +1151,7 @@ Partial Class Inventarios_RecepcionAlmacen If Dr(VariableCampo).ToString.ToDecimal <> Dr("CantidadC").ToString.ToDecimal Then GvInv.Columns(3).Visible = True End If + Dr("Caducidad") = Now Next DtInv = TmDT '.FiltraParametros("CantidadF > 0") @@ -1129,34 +1165,53 @@ Partial Class Inventarios_RecepcionAlmacen If UsuarioActual.CveEmpresa = 119 Then DtInv = DtInv.FiltraParametros("", "PS") End If + + For Each item As DataRow In DtInv.Rows + Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("") + If Dr IsNot Nothing Then + item("AplicaSeccion") = CBool(Dr("AplicaSeccion")) + If CBool(Dr("AplicaSeccion")) Then GvInv.Columns(10).Visible = True + item("AplicaSerie") = CBool(Dr("AplicaSerie")) + item("AplicaLote") = CBool(Dr("AplicaLote")) + If CBool(Dr("AplicaLote")) Then GvInv.Columns(11).Visible = True + item("AplicaCaducidad") = CBool(Dr("AplicaCaducidad")) + If CBool(Dr("AplicaCaducidad")) Then GvInv.Columns(12).Visible = True + If CBool(Dr("AplicaSeccion")) Or CBool(Dr("AplicaLote")) Or CBool(Dr("AplicaCaducidad")) Or CBool(Dr("AplicaSerie")) Then + GvInv.Columns(15).Visible = True + End If + End If + Next + GvInv.DataSource = DtInv GvInv.DataBind() UPInv.Update() End Sub Protected Sub GVINV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - - If e.Row.DBCampo("CveMetodoInventario").ToString.Contiene("5", "6") Then - - If e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then - e.Row.FCButton("BtnSerieLote").Visible = True - e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec")) - - e.Row.FCTextBox("TbCantidadF").Enabled = False - e.Row.FCCheckBox("cbInv").Enabled = False - Dim Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count - e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString - ElseIf e.Row.DBCampo("CveMetodoInventario").ToString = "6" Then - e.Row.FCButton("BtnLote").Visible = True - e.Row.FCButton("BtnLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec")) - - e.Row.FCTextBox("TbCantidadF").Enabled = False - e.Row.FCCheckBox("cbInv").Enabled = False - Dim Contador = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count - e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString - End If - + If e.Row.RowType = DataControlRowType.DataRow Then + + 'If e.Row.DBCampo("CveMetodoInventario").ToString.Contiene("5", "6") Then + + If CBool(e.Row.DBCampo("AplicaSerie")) Then + + 'If e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then + e.Row.FCButton("BtnSerieLote").Visible = True + e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec")) + + e.Row.FCTextBox("TbCantidadF").Enabled = False + e.Row.FCCheckBox("cbInv").Enabled = False + Dim Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count + e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString + 'ElseIf e.Row.DBCampo("CveMetodoInventario").ToString = "6" Then + ' e.Row.FCButton("BtnLote").Visible = True + ' e.Row.FCButton("BtnLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec")) + + ' e.Row.FCTextBox("TbCantidadF").Enabled = False + ' e.Row.FCCheckBox("cbInv").Enabled = False + ' Dim Contador = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count + ' e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString + 'End If + Else e.Row.FCButton("BtnSerieLote").Visible = False e.Row.FCButton("BtnLote").Visible = False @@ -1171,8 +1226,33 @@ Partial Class Inventarios_RecepcionAlmacen e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero e.Row.FCTextBox("TbCantidadF").Enabled = False End If + End If + + If CBool(e.Row.DBCampo("AplicaSeccion")) Then + e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True + Else + e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False End If + If CBool(e.Row.DBCampo("AplicaCaducidad")) Then + e.Row.FCTextBox("TxtCaducidad").Visible = True + e.Row.FCLinkButton("LnkCaducidad").Visible = True + e.Row.FCTextBox("TxtCaducidad").Text = Now.ToShortDateString + Else + e.Row.FCTextBox("TxtCaducidad").Visible = False + e.Row.FCLinkButton("LnkCaducidad").Visible = False + End If + + If CBool(e.Row.DBCampo("AplicaLote")) Then + e.Row.FCTextBox("TxtLote").Visible = True + Else + e.Row.FCTextBox("TxtLote").Visible = False + End If + + e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID)) + e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString + e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("CantidadF"), e.Row.FCButton("BtnDividir").ClientID)) + 'FUNCIONALIDAD PISTOLA DE CODIGOS If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" And Not UsuarioActual.TienePermisoProceso(174) Then @@ -1183,15 +1263,15 @@ Partial Class Inventarios_RecepcionAlmacen e.Row.FCTextBox("TbCantidadF").Visible = False e.Row.Cells(3).Text = "0" e.Row.FCCheckBox("cbInv").Visible = False - End If - - 'TotalGV += e.Row.DBCampo("PU").ToString.ToDecimal * e.Row.DBCampo("CantidadF").ToString.ToDecimal - - If UsuarioActual.Empresa.Funcionalidad(147) = "1" Then - e.Row.FCDropDownList("DdlSeccionAlmacen").DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) + End If + + 'TotalGV += e.Row.DBCampo("PU").ToString.ToDecimal * e.Row.DBCampo("CantidadF").ToString.ToDecimal + + 'If UsuarioActual.Empresa.Funcionalidad(147) = "1" Then + e.Row.FCDropDownList("DdlSeccionAlmacen").DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlSeccionAlmacen").DataBind() e.Row.FCDropDownList("DdlSeccionAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1")) - End If + 'End If e.Row.FCLabel("LbTotal").Text = ((e.Row.DBCampo("PU").ToDecimal + e.Row.DBCampo("CostoIndirecto").ToDecimal) * e.Row.DBCampo("CantidadF").ToDecimal).FormatoNumero @@ -1361,20 +1441,20 @@ Partial Class Inventarios_RecepcionAlmacen 'RegistraScript("document.getElementById(""TxtSerieLote"").focus();") RegistraScript("$('#DivSerie').modal();", "ModalLote") - Dim AplicaCaducidad = False - If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then - AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False) - End If + 'Dim AplicaCaducidad = False + 'If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then + ' AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False) + 'End If - If AplicaCaducidad Then - GvSerie.Columns(1).Visible = True - TdCaducidad1.Visible = True - TdCaducidad2.Visible = True - Else - GvSerie.Columns(1).Visible = False - TdCaducidad1.Visible = False - TdCaducidad2.Visible = False - End If + 'If AplicaCaducidad Then + ' GvSerie.Columns(1).Visible = True + ' TdCaducidad1.Visible = True + ' TdCaducidad2.Visible = True + 'Else + ' GvSerie.Columns(1).Visible = False + ' TdCaducidad1.Visible = False + ' TdCaducidad2.Visible = False + 'End If GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerieLote), "Consec DESC") GvSerie.DataBind() @@ -1507,10 +1587,10 @@ Partial Class Inventarios_RecepcionAlmacen End If End If - Dim AplicaCaducidad = False - If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then - AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False) - End If + 'Dim AplicaCaducidad = False + 'If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0) IsNot Nothing Then + ' AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False) + 'End If Row("ConsecId") = CveConsecSerieLote Row("Consec") = DtDatosDetalle.Rows.Count + 1 @@ -1518,7 +1598,7 @@ Partial Class Inventarios_RecepcionAlmacen Row("CveUM") = CveUMSerieLote Row("PU") = PUSerieLote Row("Serie") = Serie - Row("FechaCaducidad") = If(AplicaCaducidad, TxtFechaCaducidad.Text, MinFecha.ToShortDateString) + Row("FechaCaducidad") = MinFecha.ToShortDateString DtDatosDetalle.Rows.Add(Row) Next @@ -2092,7 +2172,7 @@ Partial Class Inventarios_RecepcionAlmacen PU = Math.Round((TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1)), 2).ToDecimal - (SumaTotal - (PU)) End If End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then ErrorMovInv = True Exit For End If @@ -2107,7 +2187,7 @@ Partial Class Inventarios_RecepcionAlmacen PU = (Math.Round((TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1)), 2).ToDecimal - (SumaTotal - (Dr("Cantidad").ToString.ToDecimal * (PU)))) / Dr("Cantidad").ToString.ToDecimal End If End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then ErrorMovInv = True Exit For End If @@ -2122,7 +2202,7 @@ Partial Class Inventarios_RecepcionAlmacen PU = (Math.Round((TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1)), 2).ToDecimal - (SumaTotal - tTotal)) / gvr.FCTextBox("TbCantidadF").Text.ToDecimal End If End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then ErrorMovInv = True Exit For End If @@ -2856,20 +2936,20 @@ Partial Class Inventarios_RecepcionAlmacen DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero)) If DtDetalle.Rows.Count > 0 Then For Each Dr As DataRow In DtDetalle.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), SerieLote:=Dr("Serie").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then ErrorMovInv = True Exit For End If Next ElseIf DtDetalleLote.Rows.Count > 0 Then For Each Dr As DataRow In DtDetalleLote.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then ErrorMovInv = True Exit For End If Next Else - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, gvr.FCTextBox("TbCantidadF").Text.ToDouble, gvr.DataKey("CveUM").ToEntero, gvr.DataKey("CvePS").ToEntero, PU, -1, PUTC:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, PUExtranjero), CveCompraDetalle:=gvr.DataKey("CveCompraDetalle").ToEntero, CveOrdenCompraDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToEntero, CveVentaDetalle:=gvr.DataKey("CveVentaDetalle").ToEntero, CostoIndirecto:=CostoIndirecto, FechaCaducidad:=If(CBool(gvr.DataKey("AplicaCaducidad")), gvr.FCTextBox("TxtCaducidad").Text.ToDate, MinFecha), Lote:=If(CBool(gvr.DataKey("AplicaLote")), gvr.FCTextBox("TxtLote").Text, ""), CveSeccionAlmacen:=If(CBool(gvr.DataKey("AplicaSeccion")), gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, -1)) Then ErrorMovInv = True Exit For End If @@ -3735,4 +3815,92 @@ Partial Class Inventarios_RecepcionAlmacen #End Region +#Region "DIVIDIR" + + Protected Sub Dividir(sender As Object, e As EventArgs) + Dim index2 As Integer = 0 + + For Each Row As DataRow In DtInv.Rows + Row("Seleccionado") = GvInv.Rows(index2).FCCheckBox("cbInv").Checked + If GvInv.Rows(index2).FCTextBox("TbCantidadF").Text <> "" Then + Row("CantidadSeleccionada") = GvInv.Rows(index2).FCTextBox("TbCantidadF").Text + End If + If GvInv.Rows(index2).FCTextBox("TxtLote").Text <> "" Then + Row("Lote") = GvInv.Rows(index2).FCTextBox("TxtLote").Text + End If + If GvInv.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue <> "-1" Then + Row("CveSeccion") = GvInv.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero + End If + If GvInv.Rows(index2).FCTextBox("TxtCaducidad").Text <> "" Then + Row("Caducidad") = GvInv.Rows(index2).FCTextBox("TxtCaducidad").Text.ToDate + End If + index2 += 1 + Next + DtInv.AcceptChanges() + + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, Button)).NamingContainer, GridViewRow) + Dim Index As Integer = gvRow.RowIndex + Dim Cantidad As String = HdnCantidadMovimiento.Value + Dim dr1 As DataRow = DtInv.Rows(Index) + Dim dr As DataRow = DtInv.NewRow + dr.ItemArray = dr1.ItemArray + dr1("CantidadC") = (dr1("CantidadC").ToString.ToDouble - Cantidad.ToDouble) + Dim CantidadFOriginal As Double = dr1("CantidadF").ToString.ToDouble + dr1("CantidadF") = (dr1("CantidadF").ToString.ToDouble - Cantidad.ToDouble) + Dim CantidadSOriginal As Double = dr1("CantidadS").ToString.ToDouble + dr1("CantidadS") = (CantidadSOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal + Dim CantidadSeleccionadaOriginal As Double = dr1("CantidadSeleccionada").ToString.ToDouble + dr1("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > dr1("CantidadF").ToString.ToDouble, dr1("CantidadF").ToString.ToDouble, CantidadSeleccionadaOriginal) + CantidadSeleccionadaOriginal = CantidadSeleccionadaOriginal - dr1("CantidadF").ToString.ToDouble + + Dim CostoIndirectoOriginal As Double = dr1("CostoIndirecto").ToString.ToDouble + dr1("CostoIndirecto") = (CostoIndirectoOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal + Dim CostoIndirectoExtranjeroOriginal As Double = dr1("CostoIndirectoExtranjero").ToString.ToDouble + dr1("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal + + DtInv.AcceptChanges() + + dr("CantidadC") = Cantidad.ToDouble + dr("CantidadF") = Cantidad.ToDouble + dr("CantidadS") = (CantidadSOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal + dr("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > 0, CantidadSeleccionadaOriginal, 0) + dr("Seleccionado") = If(CantidadSeleccionadaOriginal > 0, True, False) + dr("CostoIndirecto") = (CostoIndirectoOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal + dr("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal + DtInv.Rows.InsertAt(dr, Index) + DtInv.AcceptChanges() + + index2 = 1 + For Each Row As DataRow In DtInv.Rows + Row("Consec") = index2 + index2 += 1 + Next + DtInv.AcceptChanges() + + CargaGVInv() + + index2 = 0 + For Each Row As DataRow In DtInv.Rows + GvInv.Rows(index2).FCCheckBox("cbInv").Checked = CBool(Row("Seleccionado")) + If Row("CantidadSeleccionada").ToString <> "" Then + GvInv.Rows(index2).FCTextBox("TbCantidadF").Text = Row("CantidadSeleccionada").ToString + End If + If Row("Lote").ToString <> "" Then + GvInv.Rows(index2).FCTextBox("TxtLote").Text = Row("Lote").ToString + End If + If Row("CveSeccion").ToString <> "" Then + GvInv.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue = Row("CveSeccion").ToString + End If + If Row("Caducidad").ToString <> "" Then + GvInv.Rows(index2).FCTextBox("TxtCaducidad").Text = Row("Caducidad").ToString.ToDate.ToShortDateString + End If + index2 += 1 + Next + + End Sub + + +#End Region + + End Class diff --git a/Inventarios/RecepcionEntrega.aspx b/Inventarios/RecepcionEntrega.aspx index a426c9852..91f95119b 100644 --- a/Inventarios/RecepcionEntrega.aspx +++ b/Inventarios/RecepcionEntrega.aspx @@ -416,6 +416,14 @@
    +
    +
    +
    + +
    +
    +
    + <%--GV DATOS--%> @@ -484,11 +492,46 @@ + + + + + + + + + + + + + + + +
    + + + + + + + + +
    +
    +
    + + + + + +
    + @@ -879,6 +922,35 @@ + +
    @@ -931,6 +1003,29 @@ $('#TxtCantidadEspecialDiv').focus() } + function Dividir(t) { + $get("HdnCantidadMovimiento").value = $get(t).value; + } + + function LimitaCantidad(C, textbox, button) { + + // var contenedor = $(textbox).parent().find("#" + buttonIdDiv); + + if (ToDouble(textbox.value) >= C) { + textbox.value = ""; + } + + if (parseFloat(textbox.value) > 0) { + $get(button).style.display = ""; + //$(contenedor).show(); + } + else { + $get(button).style.display = "none"; + //$(contenedor).hide(); + + } + } + diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb index afcd7d2e8..b63700ad8 100644 --- a/Inventarios/RecepcionEntrega.aspx.vb +++ b/Inventarios/RecepcionEntrega.aspx.vb @@ -34,6 +34,14 @@ Partial Class Inventarios_RecepcionEntrega ViewState("DtDatosDetalle") = value End Set End Property + Private Property DtDatosSugerencias As DataTable + Get + Return CType(ViewState("DtDatosSugerencias"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtDatosSugerencias") = value + End Set + End Property Private Property DtDatosDetalleLote As DataTable Get Return CType(ViewState("DtDatosDetalleLote"), DataTable) @@ -287,6 +295,9 @@ Partial Class Inventarios_RecepcionEntrega CveVendedor = -1 CveCliente = -1 CveSubProyecto = -1 + + DtDatosSugerencias = New DataTable + Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2)" If (UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1") Then @@ -621,6 +632,30 @@ Partial Class Inventarios_RecepcionEntrega DdlAlmacen.SelectedValueExist(CveAlmacenTraspasoOrigen) End If + DtDatos.Columns.Add("AplicaSeccion", GetType(Boolean)) + DtDatos.Columns.Add("AplicaSerie", GetType(Boolean)) + DtDatos.Columns.Add("AplicaLote", GetType(Boolean)) + DtDatos.Columns.Add("AplicaCaducidad", GetType(Boolean)) + If Not DtDatos.Columns.Contains("Lote") Then + DtDatos.Columns.Add("Lote", GetType(String)) + End If + If Not DtDatos.Columns.Contains("CveSeccion") Then + DtDatos.Columns.Add("CveSeccion", GetType(Integer)) + End If + If Not DtDatos.Columns.Contains("Caducidad") Then + DtDatos.Columns.Add("Caducidad", GetType(Date)) + End If + If Not DtDatos.Columns.Contains("Seleccionado") Then + DtDatos.Columns.Add("Seleccionado", GetType(Boolean)) + End If + If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then + DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double)) + End If + + For Each Dr As DataRow In DtDatos.Rows + Dr("Caducidad") = Now + Next + 'TxtFecha.Text = If(EsDevolucionVenta = 1, Now.ToShortDateString, DtDatos.Rows(0)("Fecha").ToString) End If @@ -775,6 +810,23 @@ Partial Class Inventarios_RecepcionEntrega Private Sub CargaGvDatos() If DtDatos IsNot Nothing Then + + For Each item As DataRow In DtDatos.Rows + Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("") + If Dr IsNot Nothing Then + item("AplicaSeccion") = CBool(Dr("AplicaSeccion")) + If CBool(Dr("AplicaSeccion")) Then GvDatos.Columns(9).Visible = True + item("AplicaSerie") = CBool(Dr("AplicaSerie")) + item("AplicaLote") = CBool(Dr("AplicaLote")) + If CBool(Dr("AplicaLote")) Then GvDatos.Columns(10).Visible = True + item("AplicaCaducidad") = CBool(Dr("AplicaCaducidad")) + If CBool(Dr("AplicaCaducidad")) Then GvDatos.Columns(11).Visible = True + If CBool(Dr("AplicaSeccion")) Or CBool(Dr("AplicaLote")) Or CBool(Dr("AplicaCaducidad")) Or CBool(Dr("AplicaSerie")) Then + GvDatos.Columns(12).Visible = True + End If + End If + Next + GvDatos.DataSource = DtDatos End If @@ -802,7 +854,7 @@ Partial Class Inventarios_RecepcionEntrega Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("Inv_CveMetodoInventario").Contiene("5", "6") Then + If CBool(e.Row.DBCampo("AplicaSerie")) Then e.Row.FCButton("BtnSerieLote").Visible = True e.Row.FCButton("BtnSerieLote").Text = If(e.Row.DBCampo("Inv_CveMetodoInventario").ToString = "5", "SerieLote", "Lote-Batch") e.Row.FCButton("BtnSerieLote").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"), e.Row.DBCampo("Inv_CveMetodoInventario")) @@ -829,6 +881,32 @@ Partial Class Inventarios_RecepcionEntrega End If + If CBool(e.Row.DBCampo("AplicaSeccion")) Then + e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True + Else + e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False + End If + + If CBool(e.Row.DBCampo("AplicaCaducidad")) Then + e.Row.FCTextBox("TxtCaducidad").Visible = True + e.Row.FCLinkButton("LnkCaducidad").Visible = True + e.Row.FCTextBox("TxtCaducidad").Text = Now.ToShortDateString + Else + e.Row.FCTextBox("TxtCaducidad").Visible = False + e.Row.FCLinkButton("LnkCaducidad").Visible = False + End If + + If CBool(e.Row.DBCampo("AplicaLote")) Then + e.Row.FCTextBox("TxtLote").Visible = True + Else + e.Row.FCTextBox("TxtLote").Visible = False + End If + + e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID)) + e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString + e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("CantidadF"), e.Row.FCButton("BtnDividir").ClientID)) + + 'FUNCIONALIDAD PISTOLA DE CODIGOS If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then 'NO BLOQUEA PARA ROL AD @@ -1562,6 +1640,9 @@ Partial Class Inventarios_RecepcionEntrega For Each gvr As GridViewRow In GvDatos.Rows If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then DtDatos.Rows(Index)("CantidadGV") = gvr.FCTextBox("TbCantidadF").Text.ToDecimal + DtDatos.Rows(Index)("CveSeccion") = gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero + DtDatos.Rows(Index)("Caducidad") = gvr.FCTextBox("TxtCaducidad").Text.ToDate + DtDatos.Rows(Index)("Lote") = gvr.FCTextBox("TxtLote").Text End If Index += 1 Next @@ -1610,10 +1691,10 @@ Partial Class Inventarios_RecepcionEntrega StrXML.Append("") For Each Dr As DataRow In DtDatos.Rows If Dr("CantidadGV").ToString.ToDecimal > 0 Then - If Dr("Inv_CveMetodoInventario").ToString = "5" Then + If CBool(Dr("AplicaSeccion")) Then DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec"))) For Each Dr1 As DataRow In DtDetalle.Rows - StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, Dr1("SerieLote")) + StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, Dr1("SerieLote"), If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1), If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha)) Next ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec"))) @@ -1621,7 +1702,7 @@ Partial Class Inventarios_RecepcionEntrega StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'"), Dr1("Lote")) Next Else - StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), "-1") + StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), "-1", If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1), If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha)) End If End If Next @@ -1668,11 +1749,11 @@ Partial Class Inventarios_RecepcionEntrega For Each Dr As DataRow In DtDatos.Rows If Dr("CantidadGV").ToString.ToDecimal > 0 Then - If Dr("Inv_CveMetodoInventario").ToString = "5" Then + If CBool(Dr("AplicaSeccion")) Then DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec"))) For Each Dr1 As DataRow In DtDetalle.Rows - If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr1("SerieLote").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then + If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr1("SerieLote").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows 'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO @@ -1701,7 +1782,7 @@ Partial Class Inventarios_RecepcionEntrega CantidadPendiente = 1 - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -1720,7 +1801,7 @@ Partial Class Inventarios_RecepcionEntrega DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec"))) For Each Dr1 As DataRow In DtDetalle.Rows - If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then + If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then CantidadSaldo = Dr("CantidadGV").ToString.ToDecimal @@ -1751,7 +1832,7 @@ Partial Class Inventarios_RecepcionEntrega CantidadPendiente = If(Dr1("Cantidad").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("Cantidad").ToString.ToDecimal) - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -1769,7 +1850,7 @@ Partial Class Inventarios_RecepcionEntrega Else - If ObjInventario.GetExistenciasProducto(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then + If ObjInventario.GetExistenciasProducto(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then CantidadSaldo = Dr("CantidadGV").ToString.ToDecimal @@ -1801,7 +1882,7 @@ Partial Class Inventarios_RecepcionEntrega CantidadPendiente = If(Dr1("ExistenciaFinal").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("ExistenciaFinal").ToString.ToDecimal) - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -1844,7 +1925,7 @@ Partial Class Inventarios_RecepcionEntrega If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -1942,7 +2023,7 @@ Partial Class Inventarios_RecepcionEntrega End If For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -1972,7 +2053,7 @@ Partial Class Inventarios_RecepcionEntrega PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar." Exit For @@ -1984,7 +2065,7 @@ Partial Class Inventarios_RecepcionEntrega PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar." Exit For @@ -1995,7 +2076,7 @@ Partial Class Inventarios_RecepcionEntrega PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}").ToString.ToDecimal End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar." Exit For @@ -2806,7 +2887,92 @@ Partial Class Inventarios_RecepcionEntrega #End Region +#Region "DIVIDIR" + Protected Sub Dividir(sender As Object, e As EventArgs) + Dim index2 As Integer = 0 + + For Each Row As DataRow In DtDatos.Rows + Row("Seleccionado") = GvDatos.Rows(index2).FCCheckBox("cbInv").Checked + If GvDatos.Rows(index2).FCTextBox("TbCantidadF").Text <> "" Then + Row("CantidadSeleccionada") = GvDatos.Rows(index2).FCTextBox("TbCantidadF").Text + End If + If GvDatos.Rows(index2).FCTextBox("TxtLote").Text <> "" Then + Row("Lote") = GvDatos.Rows(index2).FCTextBox("TxtLote").Text + End If + If GvDatos.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue <> "-1" Then + Row("CveSeccion") = GvDatos.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero + End If + If GvDatos.Rows(index2).FCTextBox("TxtCaducidad").Text <> "" Then + Row("Caducidad") = GvDatos.Rows(index2).FCTextBox("TxtCaducidad").Text.ToDate + End If + index2 += 1 + Next + DtDatos.AcceptChanges() + + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, Button)).NamingContainer, GridViewRow) + Dim Index As Integer = gvRow.RowIndex + Dim Cantidad As String = HdnCantidadMovimiento.Value + Dim dr1 As DataRow = DtDatos.Rows(Index) + Dim dr As DataRow = DtDatos.NewRow + dr.ItemArray = dr1.ItemArray + dr1("CantidadC") = (dr1("CantidadC").ToString.ToDouble - Cantidad.ToDouble) + Dim CantidadFOriginal As Double = dr1("CantidadF").ToString.ToDouble + dr1("CantidadF") = (dr1("CantidadF").ToString.ToDouble - Cantidad.ToDouble) + Dim CantidadSOriginal As Double = dr1("CantidadS").ToString.ToDouble + dr1("CantidadS") = (CantidadSOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal + Dim CantidadSeleccionadaOriginal As Double = dr1("CantidadSeleccionada").ToString.ToDouble + dr1("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > dr1("CantidadF").ToString.ToDouble, dr1("CantidadF").ToString.ToDouble, CantidadSeleccionadaOriginal) + CantidadSeleccionadaOriginal = CantidadSeleccionadaOriginal - dr1("CantidadF").ToString.ToDouble + + 'Dim CostoIndirectoOriginal As Double = dr1("CostoIndirecto").ToString.ToDouble + 'dr1("CostoIndirecto") = (CostoIndirectoOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal + 'Dim CostoIndirectoExtranjeroOriginal As Double = dr1("CostoIndirectoExtranjero").ToString.ToDouble + 'dr1("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr1("CantidadF").ToString.ToDouble) / CantidadFOriginal + + DtDatos.AcceptChanges() + + dr("CantidadC") = Cantidad.ToDouble + dr("CantidadF") = Cantidad.ToDouble + dr("CantidadS") = (CantidadSOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal + dr("CantidadSeleccionada") = If(CantidadSeleccionadaOriginal > 0, CantidadSeleccionadaOriginal, 0) + dr("Seleccionado") = If(CantidadSeleccionadaOriginal > 0, True, False) + 'dr("CostoIndirecto") = (CostoIndirectoOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal + 'dr("CostoIndirectoExtranjero") = (CostoIndirectoExtranjeroOriginal * dr("CantidadF").ToString.ToDouble) / CantidadFOriginal + DtDatos.Rows.InsertAt(dr, Index) + DtDatos.AcceptChanges() + + index2 = 1 + For Each Row As DataRow In DtDatos.Rows + Row("Consec") = index2 + index2 += 1 + Next + DtDatos.AcceptChanges() + + CargaGvDatos() + + index2 = 0 + For Each Row As DataRow In DtDatos.Rows + GvDatos.Rows(index2).FCCheckBox("cbInv").Checked = CBool(Row("Seleccionado")) + If Row("CantidadSeleccionada").ToString <> "" Then + GvDatos.Rows(index2).FCTextBox("TbCantidadF").Text = Row("CantidadSeleccionada").ToString + End If + If Row("Lote").ToString <> "" Then + GvDatos.Rows(index2).FCTextBox("TxtLote").Text = Row("Lote").ToString + End If + If Row("CveSeccion").ToString <> "" Then + GvDatos.Rows(index2).FCDropDownList("DdlSeccionAlmacen").SelectedValue = Row("CveSeccion").ToString + End If + If Row("Caducidad").ToString <> "" Then + GvDatos.Rows(index2).FCTextBox("TxtCaducidad").Text = Row("Caducidad").ToString.ToDate.ToShortDateString + End If + index2 += 1 + Next + + End Sub + + +#End Region #Region " GUIAS - SABE QUE ES PORQUE NO VEO QUE SE UTILIZE EN ALGUNA PARTE - EN MIRAS DE ELIMINAR - IPP 24 AGOSTO 2017 " Private Sub BtnNumeroGuia_Click(sender As Object, e As EventArgs) Handles BtnNumeroGuia.Click @@ -2844,6 +3010,86 @@ Partial Class Inventarios_RecepcionEntrega End Sub #End Region +#Region "SUGERENCIAS" + + Protected Sub BtnVerSugerencias_Click(sender As Object, e As EventArgs) + If Not CveVentaSurtir > 0 Then + Alert("Tiene que seleccionar la venta a surtir", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If Not DdlAlmacen.SelectedValue.ToEntero > 0 Then + Alert("Tiene que seleccionar el almacen", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim ObjInv As New ClsInventarios + If ObjInv.GetSugerenciasSalidaAlmacen(CveVentaSurtir, DdlAlmacen.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + GvSugerencias.DataSource = ObjInv.DtResultados + + + DtDatosSugerencias = ObjInv.DtResultados + + DtDatos.Columns.Add("Consec", GetType(Integer)) + DtDatos.Columns.Add("CantidadGV", GetType(Double)) + DtDatos.Columns.Add("CantidadTraspaso", GetType(Double)) + DtDatos.Columns.Add("AplicaSeccion", GetType(Boolean)) + DtDatos.Columns.Add("AplicaSerie", GetType(Boolean)) + DtDatos.Columns.Add("AplicaLote", GetType(Boolean)) + DtDatos.Columns.Add("AplicaCaducidad", GetType(Boolean)) + If Not DtDatos.Columns.Contains("Lote") Then + DtDatos.Columns.Add("Lote", GetType(String)) + End If + If Not DtDatos.Columns.Contains("CveSeccion") Then + DtDatos.Columns.Add("CveSeccion", GetType(Integer)) + End If + If Not DtDatos.Columns.Contains("Caducidad") Then + DtDatos.Columns.Add("Caducidad", GetType(Date)) + End If + If Not DtDatos.Columns.Contains("Seleccionado") Then + DtDatos.Columns.Add("Seleccionado", GetType(Boolean)) + End If + If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then + DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double)) + End If + + Dim Index = 1 + For Each Dr As DataRow In DtDatosSugerencias.Rows + Dr("Consec") = Index + Dr("Caducidad") = Now + Index += 1 + Next + + DtDatosSugerencias.AcceptChanges() + + + End If + ObjInv.Dispose() + GvSugerencias.DataBind() + + UpVerSugerencias.Update() + + RegistraScript("$('#ModalVerSugerencias').modal()") + End Sub + Protected Sub BtnAplicarSugerencias_Click(sender As Object, e As EventArgs) + + DtDatos = Nothing + DtDatos = New DataTable + DtDatos = DtDatosSugerencias + + DtDatosDetalle = Nothing + CreaDtDetalle() + + DtDatosDetalleLote = Nothing + CreaDtDetalleLote() + + CargaGvDatos() + + RegistraScript("$('#ModalVerSugerencias').modal('hide')") + End Sub + + +#End Region From 34da102d92a4830a8fd9fb458fe2d46c9c26605f Mon Sep 17 00:00:00 2001 From: Raul Pimienta Date: Tue, 7 Apr 2020 15:01:48 -0700 Subject: [PATCH 4/5] . --- Inventarios/RecepcionEntrega.aspx.vb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb index b63700ad8..18d66033f 100644 --- a/Inventarios/RecepcionEntrega.aspx.vb +++ b/Inventarios/RecepcionEntrega.aspx.vb @@ -1925,7 +1925,7 @@ Partial Class Inventarios_RecepcionEntrega If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -1959,7 +1959,7 @@ Partial Class Inventarios_RecepcionEntrega Dim CvePS = RowGarantia("CvePS").ToString().ToEntero() Dim CveTamaño As Integer = RowGarantia("CveTamaño").ToString().ToEntero() Dim CveUM As Integer = RowGarantia("CveUnidadMedida").ToString().ToEntero() - Dim PU As Double = RowGarantia("Importe").ToString().ToDouble() ' / RowGarantia("Cantidad").ToString().ToDouble() + Dim PU As Decimal = RowGarantia("Importe").ToString().ToDecimal() ' / RowGarantia("Cantidad").ToString().ToDouble() If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, -1) Then ErrorMovInv = True @@ -2023,7 +2023,7 @@ Partial Class Inventarios_RecepcionEntrega End If For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, SerieLote:=Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("Caducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar." Exit For @@ -2114,7 +2114,7 @@ Partial Class Inventarios_RecepcionEntrega Else If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For @@ -2379,7 +2379,7 @@ Partial Class Inventarios_RecepcionEntrega For Each RowUsado As DataRow In DtPSVirtual.Rows Dim CvePS = RowUsado("CvePS").ToString().ToEntero() Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble() - Dim PU As Double = RowUsado("PU").ToString().ToDouble() + Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal() Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero() If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then From 0d27c67db110569c6b508cb482d61834cba3216a Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Tue, 7 Apr 2020 15:33:54 -0700 Subject: [PATCH 5/5] 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:
      {0}
    ", 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:
      {0}
    ", 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