Commit inicial Ventas Productivo
This commit is contained in:
416
Bancos/MovimientosBancarios.aspx.vb
Normal file
416
Bancos/MovimientosBancarios.aspx.vb
Normal file
@@ -0,0 +1,416 @@
|
||||
Option Explicit On
|
||||
Option Strict On
|
||||
|
||||
Imports System.Data
|
||||
Imports System.Data.SqlClient
|
||||
Imports Extensiones
|
||||
Imports System
|
||||
Imports System.IO
|
||||
Imports System.Text
|
||||
Partial Class Bancos_MovimientosBancarios
|
||||
Inherits ClsPaginas
|
||||
|
||||
#Region "PROPIEDADES"
|
||||
Private Property HeaderTexto As String
|
||||
Get
|
||||
Return ViewState("HeaderTexto").ToString
|
||||
End Get
|
||||
Set(value As String)
|
||||
ViewState("HeaderTexto") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property DetalleTexto As String
|
||||
Get
|
||||
Return ViewState("DetalleTexto").ToString
|
||||
End Get
|
||||
Set(value As String)
|
||||
ViewState("DetalleTexto") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property TrailerTexto As String
|
||||
Get
|
||||
Return ViewState("TrailerTexto").ToString
|
||||
End Get
|
||||
Set(value As String)
|
||||
ViewState("TrailerTexto") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property TextoCompleto As String
|
||||
Get
|
||||
Return ViewState("TextoCompleto").ToString
|
||||
End Get
|
||||
Set(value As String)
|
||||
ViewState("TextoCompleto") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property Vacio As String
|
||||
Get
|
||||
Return ViewState("Vacio").ToString
|
||||
End Get
|
||||
Set(value As String)
|
||||
ViewState("Vacio") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property DTProveedores As DataTable
|
||||
Get
|
||||
Return CType(ViewState("DTProveedores"), DataTable)
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DTProveedores") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property DTProveedorActual As DataTable
|
||||
Get
|
||||
Return CType(ViewState("DTProveedorActual"), DataTable)
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DTProveedorActual") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property DTProveedorBancos As DataTable
|
||||
Get
|
||||
Return CType(ViewState("DTProveedorBancos"), DataTable)
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DTProveedorBancos") = value
|
||||
End Set
|
||||
End Property
|
||||
Private Property RowBanco As DataRow
|
||||
Get
|
||||
Return CType(ViewState("RowBanco"), DataRow)
|
||||
End Get
|
||||
Set(value As DataRow)
|
||||
ViewState("RowBanco") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private ReadOnly Property PadCeros As Char
|
||||
Get
|
||||
Return "0"c
|
||||
End Get
|
||||
End Property
|
||||
Private Property TotalAcumulado As Double
|
||||
Get
|
||||
Return ViewState("TotalAcumulado").ToString.ToDouble
|
||||
End Get
|
||||
Set(value As Double)
|
||||
ViewState("TotalAcumulado") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not IsPostBack Then
|
||||
ViewState("HeaderTexto") = ""
|
||||
ViewState("DetalleTexto") = ""
|
||||
ViewState("TrailerTexto") = ""
|
||||
ViewState("Vacio") = ""
|
||||
ViewState("TotalAcumulado") = 0
|
||||
|
||||
Dim ObjProveedores As New ClsCompProveedores
|
||||
ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa)
|
||||
DTProveedores = ObjProveedores.DtResultados
|
||||
|
||||
GvProveedores.DataSource = DTProveedores.FiltraParametros("EstatusPagoElectronico = 0")
|
||||
GvProveedores.DataBind()
|
||||
UPGV.Update()
|
||||
DdlProveedores.DataSource = DTProveedores
|
||||
DdlProveedores.DataBind()
|
||||
DdlProveedores.Items.Insert(0, New ListItem("Seleccione un Proveedor", "-1"))
|
||||
UpDatosAlta.Update()
|
||||
|
||||
'UpDatosCuentaBBVA.Visible = False
|
||||
'UpDatosOtrosBancos.Visible = False
|
||||
'UpDatosPF.Visible = False
|
||||
'UpDatosMoral.Visible = False
|
||||
|
||||
ReplaceCaracteresEspeciales("MañAna, $#&&sí mañana &&será otro día.")
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub CrearTXT()
|
||||
Dim path As String = "c:\Hola.txt"
|
||||
|
||||
' Create or overwrite the file.
|
||||
Dim fs As FileStream = File.Create(path)
|
||||
|
||||
' Add text to the file.
|
||||
Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextoCompleto)
|
||||
fs.Write(info, 0, info.Length)
|
||||
fs.Close()
|
||||
End Sub
|
||||
|
||||
|
||||
#Region "ALTA PROVEEDORES"
|
||||
Protected Sub BtnAltas_Click(sender As Object, e As EventArgs)
|
||||
Dim ObjCuentasBancos As New ClsGenerales
|
||||
|
||||
Dim TotalDetalles As Integer = 0
|
||||
'Dim ObjPro As New ClsCompProveedores
|
||||
For i As Integer = 0 To (GvProveedores.Rows.Count - 1)
|
||||
If GvProveedores.Rows(i).FCCheckBox("CheckAgregar").Checked = True Then
|
||||
DTProveedorActual = DTProveedores.FiltraParametros(String.Format("CveProveedor = {0}", GvProveedores.Rows(i).DataKey("CveProveedor")))
|
||||
|
||||
If ObjCuentasBancos.GetCuentasDepositos(21109) Then
|
||||
DTProveedorBancos = ObjCuentasBancos.DtResultados
|
||||
RowBanco = DTProveedorBancos.Rows(0)
|
||||
Else
|
||||
Alert("Error al cargar Banco.", TipoMensaje.MsgError)
|
||||
End If
|
||||
ObjCuentasBancos.Dispose()
|
||||
|
||||
If TotalDetalles > 0 Then
|
||||
DetalleTexto &= vbCrLf
|
||||
End If
|
||||
CrearDetalle()
|
||||
'ObjPro.UpdateProveedorPagoElectronico(GvProveedores.Rows(i).DataKey("CveProveedor").ToEntero)
|
||||
TotalDetalles += 1
|
||||
End If
|
||||
Next
|
||||
If TotalDetalles > 0 Then
|
||||
FormarTexto(TotalDetalles)
|
||||
CrearTXT()
|
||||
Else
|
||||
Alert("No selecciono ningun Proveedor", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub FormarTexto(Registros As Integer)
|
||||
'''''' LLENADO HEADER
|
||||
Dim convenio As String = "000775770"
|
||||
'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}", DTProveedorActual(0)("CveProveedor"), 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
|
||||
Protected Sub CrearDetalle()
|
||||
Dim Resultado = True
|
||||
|
||||
''''' LLENADO DE DETALLE
|
||||
'Campos #1-4 del Detalle
|
||||
DetalleTexto &= String.Format("DA{0}N ", DTProveedorActual(0)("CveProveedor").ToString.ToUpper.PadLeft(30, PadCeros))
|
||||
'Banco BBVA
|
||||
If RowBanco("BancoNombre").ToString = "BBVA" Then
|
||||
'Llenamos datos de BBVA
|
||||
'Campo #5-7 del detalle
|
||||
DetalleTexto &= String.Format("MXP99{0}", RowBanco("Cuenta").ToString.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
|
||||
'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("MXP40{0}0014{1}{2}{3}", RowBanco("CLABE").ToString.PadLeft(35, PadCeros), Vacio.PadRight(20), Vacio.PadRight(45), DateTime.Now().ToString("yyyy-MM-dd"))
|
||||
End If
|
||||
|
||||
'Llenamos datos de Tipo de Persona - Fisica o Moral
|
||||
TipoPersona()
|
||||
|
||||
'Campos 27-32 --- Fillers --- datos de otros bancos (internacional)
|
||||
DetalleTexto &= Vacio.PadLeft(153)
|
||||
|
||||
'Campos 33-36 --- Datos de confirmacion
|
||||
If DTProveedorActual(0)("ContactoMail").ToString.Length > 0 Then
|
||||
DetalleTexto &= String.Format("{0}02{1}", Vacio.PadRight(40), DTProveedorActual(0)("ContactoMail").ToString.ToUpper.PadRight(50))
|
||||
ElseIf DTProveedorActual(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))
|
||||
|
||||
End Sub
|
||||
Protected Sub TipoPersona()
|
||||
'Persona Moral
|
||||
If DTProveedorActual(0)("RFC").ToString.Length = 12 Then
|
||||
Dim fecha As String = DTProveedorActual(0)("FechaIng").ToString
|
||||
'Campo 18-20 del detalle
|
||||
DetalleTexto &= String.Format("M{0}{1}-{2}-{3}", ReplaceCaracteresEspeciales(DTProveedorActual(0)("RazonSocial").ToString).ToUpper.PadRight(50), fecha.Substring(6, 4), fecha.Substring(3, 2), fecha.Substring(0, 2))
|
||||
'Campo 21-26 del detalle --- 10 FILLER - 70 de TipoPersona FISICA - 14 de RFC
|
||||
DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(80), DTProveedorActual(0)("RFC").ToString.ToUpper.PadRight(14))
|
||||
|
||||
'Persona Fisica
|
||||
ElseIf DTProveedorActual(0)("RFC").ToString.Length = 13 Then
|
||||
'Obtener nombre
|
||||
Dim Nombre() As String = Split(DTProveedorActual(0)("RazonSocial").ToString)
|
||||
'Campo 18-24 del detalle --- 60 Tipo Persona Moral --- 10 Filler -- Datos Persona Fisica
|
||||
If Nombre.Length = 3 Then
|
||||
DetalleTexto &= String.Format("F{0}{1}{2}", Vacio.PadRight(70), Nombre(0).PadRight(20), Nombre(1).PadRight(20), Nombre(2).PadRight(20))
|
||||
ElseIf Nombre.Length = 4 Then
|
||||
DetalleTexto &= String.Format("F{0}{1}{2}", Vacio.PadRight(70), (Nombre(0) & Nombre(1)).PadRight(20), Nombre(2).PadRight(20), Nombre(3).PadRight(20))
|
||||
End If
|
||||
'Campo 25-26 del detalle -- Fecha Nacimiento -- RFC
|
||||
Dim fecha As String = DTProveedorActual(0)("RFC").ToString.Substring(4, 6)
|
||||
DetalleTexto &= String.Format("19{0}-{1}-{2}{3}", fecha.Substring(0, 2), fecha.Substring(2, 2), fecha.Substring(4, 2), DTProveedorActual(0)("RFC").ToString.ToUpper.PadRight(14))
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
TxtBanco.Text = ""
|
||||
TxtBancoCuenta.Text = ""
|
||||
If DdlProveedores.SelectedValue <> "-1" Then
|
||||
DTProveedorActual = DTProveedores.FiltraParametros(String.Format("CveProveedor = {0}", DdlProveedores.SelectedValue.ToString))
|
||||
UpBanco.Visible = True
|
||||
TxtBanco.Text = RowBanco("BancoNombre").ToString
|
||||
If RowBanco("Cuenta").ToString.Length = 10 Then TxtBancoCuenta.Text = RowBanco("Cuenta").ToString.Substring(6, 4)
|
||||
End If
|
||||
End Sub
|
||||
'Protected Sub TipoPersonaDinamico()
|
||||
' If DdlTipoPersona.SelectedValue = "M" Then
|
||||
' 'Campo 18-20 del detalle
|
||||
' DetalleTexto &= String.Format("{0}{1}{2}", DdlTipoPersona.SelectedValue, DTProveedorActual(0)("RazonSocial").ToString.ToUpper.PadRight(50), DTProveedorActual(0)("FechaIng").ToString.Substring(0, 10))
|
||||
' 'Campo 21-26 del detalle --- 10 FILLER - 70 de TipoPersona FISICA - 14 de RFC
|
||||
' DetalleTexto &= String.Format("{0}{1}", Vacio.PadLeft(80), DTProveedorActual(0)("RFC").ToString.ToUpper.PadRight(14))
|
||||
' ElseIf DdlTipoPersona.SelectedValue = "F" Then
|
||||
' 'Campos 19-21 --- 60 Tipo Persona Moral y 10 FILLER
|
||||
' DetalleTexto &= Vacio.PadLeft(70)
|
||||
' 'Campos 22-26 --- Tipo Persona Fisica y #26 RFC
|
||||
' DetalleTexto &= String.Format("{0}{1}{2}{3}{4}", TxtNombrePF.Text.ToUpper.PadRight(20), TxtApellidoPPF.Text.ToUpper.PadRight(20), TxtApellidoMPF.Text.ToUpper.PadRight(20), DateTime.Now().ToString("yyyy-MM-dd"), TxtRFC.Text.ToUpper.PadRight(14))
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
'Protected Sub DdlTipoPersona_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
' If DdlTipoPersona.SelectedValue = "-1" Then
|
||||
' UpDatosPF.Visible = False
|
||||
' UpDatosMoral.Visible = False
|
||||
' ElseIf DdlTipoPersona.SelectedValue = "F" Then
|
||||
' UpDatosPF.Visible = True
|
||||
' UpDatosMoral.Visible = False
|
||||
' ElseIf DdlTipoPersona.SelectedValue = "M" Then
|
||||
' UpDatosPF.Visible = False
|
||||
' UpDatosMoral.Visible = True
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
'Protected Sub DdlTipoBanco_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
' If DdlTipoBanco.SelectedValue = "-1" Then
|
||||
' UpDatosCuentaBBVA.Visible = False
|
||||
' UpDatosOtrosBancos.Visible = False
|
||||
' ElseIf DdlTipoBanco.SelectedValue = "1" Then
|
||||
' UpDatosCuentaBBVA.Visible = True
|
||||
' UpDatosOtrosBancos.Visible = False
|
||||
' ElseIf DdlTipoBanco.SelectedValue = "2" Then
|
||||
' UpDatosCuentaBBVA.Visible = False
|
||||
' UpDatosOtrosBancos.Visible = True
|
||||
' End If
|
||||
'End Sub
|
||||
#End Region
|
||||
|
||||
#Region "PAGO PROVEEDORES"
|
||||
Protected Sub BtnPagos_Click(sender As Object, e As EventArgs)
|
||||
Dim ObjCuentasBancos As New ClsGenerales
|
||||
|
||||
DTProveedorActual = DTProveedores.FiltraParametros(String.Format("CveProveedor = 21114"))
|
||||
|
||||
If ObjCuentasBancos.GetCuentasDepositos(21114) Then
|
||||
DTProveedorBancos = ObjCuentasBancos.DtResultados
|
||||
RowBanco = DTProveedorBancos.Rows(0)
|
||||
Else
|
||||
Alert("Error al cargar Banco.", TipoMensaje.MsgError)
|
||||
End If
|
||||
ObjCuentasBancos.Dispose()
|
||||
|
||||
CrearDetallePagos()
|
||||
FormarTextoPagos(1, TotalAcumulado.ToString.FormatoNumero.Replace(",", "").Replace(".", ""))
|
||||
CrearTXT()
|
||||
|
||||
End Sub
|
||||
Protected Sub FormarTextoPagos(Registros As Integer, Total As String)
|
||||
Dim convenio As String = "000775770"
|
||||
|
||||
'''''' LLENADO HEADER
|
||||
'Campos #1-4 del Header
|
||||
HeaderTexto = String.Format("H{0}{1}01", convenio.PadLeft(9, PadCeros), DateTime.Now().ToString("yyyy-MM-dd"))
|
||||
'Campo #5 del Header
|
||||
HeaderTexto &= String.Format("P{0}{1}", DateTime.Now().ToString("s").Replace("-", "").Replace(":", ""), Vacio.PadRight(14))
|
||||
'Campos #6-11 del Header
|
||||
HeaderTexto &= String.Format("00").PadRight(1314)
|
||||
|
||||
|
||||
''''' LLENADO DE TRAILER
|
||||
TrailerTexto = String.Format("T{0}{1}{2}{3}", Registros.ToString.PadLeft(10, PadCeros), Total.PadLeft(15, PadCeros), Vacio.PadRight(225, PadCeros), Vacio.PadRight(1115))
|
||||
|
||||
|
||||
''''' ARMADO DEL TEXTO COMPLETO
|
||||
TextoCompleto = String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, HeaderTexto, DetalleTexto, TrailerTexto)
|
||||
TxtPagos.Text = TextoCompleto
|
||||
End Sub
|
||||
Protected Sub CrearDetallePagos()
|
||||
Dim Resultado = True
|
||||
Dim Importe As String = "1000"
|
||||
Dim Divisa As String = "MXP"
|
||||
Dim Factura As String = "FAC-123456".Replace("-", "")
|
||||
Dim Referencia As String = String.Format("F{0}", Factura)
|
||||
Dim Datos As String = String.Format("Pago de Factura {0}", Factura)
|
||||
|
||||
''''' LLENADO DE DETALLE
|
||||
'Campos #1-6 del Detalle
|
||||
DetalleTexto &= String.Format("DAP{0}{1}PDA", Referencia.PadRight(20), DTProveedorActual(0)("CveProveedor").ToString.PadLeft(30, PadCeros))
|
||||
|
||||
'Pago a cuenta BBVA
|
||||
If RowBanco("BancoNombre").ToString.ToUpper = "BBVA" Then
|
||||
'Campos 7-24 del Detalle
|
||||
DetalleTexto &= String.Format("2{0}{1}N{2}99{3}", Vacio.PadLeft(20, PadCeros), Vacio.PadRight(154), Vacio.PadRight(8), Vacio.PadRight(177))
|
||||
Else
|
||||
Dim ReferenciaNumerica As String = "1234567"
|
||||
Dim Motivo As String = "Pago de equipo de computo"
|
||||
|
||||
'Campos 7-24 del Detalle
|
||||
DetalleTexto &= String.Format("6{0}{1}{2}{3}{4}N{5}", Vacio.PadRight(20, PadCeros), Vacio.PadRight(15), ReferenciaNumerica.PadRight(25), Motivo.ToUpper.PadRight(37), Vacio.PadRight(77), Vacio.PadRight(187))
|
||||
End If
|
||||
|
||||
'Campos 24-50 del Detalle 0 1 2 3 4 5 6 7 8 9
|
||||
DetalleTexto &= String.Format("{0}{1}FA{2}{3}01{4}N{5}{6}{7}{7}{7}{6}N {7}700{8}{9}{7}", Divisa, Vacio.PadLeft(20), Importe.FormatoNumero.Replace(",", "").Replace(".", "").PadLeft(15, PadCeros), Vacio.PadRight(15, PadCeros), Vacio.PadRight(50), Vacio.PadRight(12, PadCeros), DateTime.Now.ToString("yyyy-MM-dd"), "0001-01-01", Datos.PadRight(700), Vacio.PadRight(52))
|
||||
TotalAcumulado += Importe.ToEntero
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
Public Function ReplaceCaracteresEspeciales(TextoOriginal As String) As String
|
||||
'Metodo simplificado UNIDOCE
|
||||
Dim textoNormalizado = TextoOriginal.Normalize(NormalizationForm.FormD)
|
||||
Dim reg = New Regex("[^a-zA-Z0-9 ]")
|
||||
Dim textoSinAcentos = reg.Replace(TextoOriginal, "")
|
||||
|
||||
|
||||
'Metodo por letra
|
||||
Dim inputString = TextoOriginal.ToLower
|
||||
Dim a As Regex = New Regex("[á|à|ä|â]", RegexOptions.Compiled)
|
||||
Dim e As Regex = New Regex("[é|è|ë|ê]", RegexOptions.Compiled)
|
||||
Dim i As Regex = New Regex("[í|ì|ï|î]", RegexOptions.Compiled)
|
||||
Dim o As Regex = New Regex("[ó|ò|ö|ô]", RegexOptions.Compiled)
|
||||
Dim u As Regex = New Regex("[ú|ù|ü|û]", RegexOptions.Compiled)
|
||||
Dim ñ As Regex = New Regex("[ñ|Ñ]", RegexOptions.Compiled)
|
||||
Dim CaracteresEspeciales = New Regex("[^a-zA-Z0-9 ]")
|
||||
|
||||
inputString = a.Replace(inputString, "a")
|
||||
inputString = e.Replace(inputString, "e")
|
||||
inputString = i.Replace(inputString, "i")
|
||||
inputString = o.Replace(inputString, "o")
|
||||
inputString = u.Replace(inputString, "u")
|
||||
inputString = ñ.Replace(inputString, "n")
|
||||
inputString = CaracteresEspeciales.Replace(inputString, "")
|
||||
|
||||
|
||||
Return (inputString.ToLower)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user