Cambiar cargar conciliaciones a gembox.

Soporte en compras para actualizar contabilizados.
Cambiar cargar contratos a gem box.
Soporte en Ventas que no se pueda ingresar productos de diferente moneda.
This commit is contained in:
Raul Pimienta
2019-09-03 15:30:41 -07:00
parent ceb40eb9ad
commit 52db737b69
4 changed files with 205 additions and 72 deletions

View File

@@ -5,6 +5,8 @@ Imports System.Data
Imports Extensiones
Imports System.Xml
Imports Microsoft.Reporting.WebForms
Imports GemBox.Spreadsheet
Partial Class Bancos_CargarConciliacionesBancarias
Inherits ClsPaginas
@@ -83,51 +85,99 @@ Partial Class Bancos_CargarConciliacionesBancarias
End If
End Sub
Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString())
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
curRow = 1
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
While curRow < worksheet.Rows.Count
columns = New String(cols - 1) {}
For curCol = 0 To cols - 1
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
Private Sub CargaExcel(Ruta As String, FileName As String, Tipo As String)
If Not DdlCuenta.SelectedValue.ToEntero > 0 Then
Alert("Tiene que seleccionar una cuenta", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim dt As New DataTable
Dim Conexion As Odbc.OdbcConnection = Nothing
Dim ErrorArchivo = False
Dim ErrorExcel = False
Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;"
Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb")
Dim objDbAdapter As Common.DbDataAdapter = objDbFactory.CreateDataAdapter()
Dim objDbConnection As Common.DbConnection = objDbFactory.CreateConnection()
objDbConnection.ConnectionString = strConnString
objDbConnection.Open()
Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables")
Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME")
Try
Select Case Tipo
Case "CSV"
Conexion = New Odbc.OdbcConnection("Driver={Microsoft Access Text Driver (*.txt, *.csv)};Dbq=" + Ruta + ";Extensions=asc,csv,tab,txt;")
Conexion.Open()
Dim cmd = Conexion.CreateCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = $"SELECT * FROM [{FileName}]"
Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
DataAdapter.Fill(dt)
Case "EXCEL"
Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
Conexion.Open()
Dim cmd = Conexion.CreateCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = $"SELECT * FROM [{HojaExcel}]"
Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
DataAdapter.Fill(dt)
Case Else
Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
Exit Sub
End Select
Catch ex As Exception
ErrorArchivo = True
OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
End Try
Conexion.Close()
If Not ErrorArchivo Then
dt = ReadExcelFile(Ruta + FileName, True)
'Dim Conexion As Odbc.OdbcConnection = Nothing
'Dim ErrorArchivo = False
'Dim ErrorExcel = False
'Dim strConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Ruta + FileName + ";Extended Properties=Excel 8.0;"
'Dim objDbFactory As Common.DbProviderFactory = Common.DbProviderFactories.GetFactory("System.Data.OleDb")
'Dim objDbAdapter As Common.DbDataAdapter = objDbFactory.CreateDataAdapter()
'Dim objDbConnection As Common.DbConnection = objDbFactory.CreateConnection()
'objDbConnection.ConnectionString = strConnString
'objDbConnection.Open()
'Dim objSheetNames As DataTable = objDbConnection.GetSchema("Tables")
'Dim HojaExcel As String = objSheetNames.FiltroPrimeroValor("TABLE_NAME")
'Try
' Select Case Tipo
' Case "CSV"
' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Access Text Driver (*.txt, *.csv)};Dbq=" + Ruta + ";Extensions=asc,csv,tab,txt;")
' Conexion.Open()
' Dim cmd = Conexion.CreateCommand()
' cmd.CommandType = CommandType.Text
' cmd.CommandText = $"SELECT * FROM [{FileName}]"
' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
' DataAdapter.Fill(dt)
' Case "EXCEL"
' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
' Conexion.Open()
' Dim cmd = Conexion.CreateCommand()
' cmd.CommandType = CommandType.Text
' cmd.CommandText = $"SELECT * FROM [{HojaExcel}]"
' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
' DataAdapter.Fill(dt)
' Case Else
' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
' Exit Sub
' End Select
'Catch ex As Exception
' ErrorArchivo = True
' OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
'End Try
'Conexion.Close()
If dt IsNot Nothing Then
dt.Columns(0).ColumnName = "FechaDocumento"
dt.Columns(1).ColumnName = "Referencia"
dt.Columns(2).ColumnName = "Importe"
@@ -166,6 +216,8 @@ Partial Class Bancos_CargarConciliacionesBancarias
ObjBancos.RollBack()
End If
ObjBancos.Dispose()
Else
Alert("Hubo un error al intentar leer el archivo.", TipoMensaje.MsgError)
End If
End Sub