----------------------------------------------
.ASPX
----------------------------------------------
function Procesar() {
var rowCount = $("#grid").getGridParam("reccount");
if (rowCount > 0) {
jutils.confirmMessage("¿Desea Procesar?", "Atención", ProcesarConfirmado);
} else {
showMessage("No hay filas para ser procesadas", 'Atención');
}
}
function ProcesarConfirmado() {
mensaje = '';
var params = "{}";
jutils.ajax.getJsonData_Async("ProcesaFacturas", params, arguments.callee.name, ProcesaFacturas);
}
function ProcesaFacturas(response) {
if (response.length > 1 && response[0] == 'OK') {
mensaje = 'El proceso ha finalizado exitosamente. Factura Inicial : ' + response[1] + ', Factura Final : ' + response[2];
$("#txtInicial").val(response[1]);
$("#txtFinal").val(response[2]);
if (response[3] > 0) {
mensaje = 'El proceso ha finalizado exitosamente. Factura Inicial : ' + response[1] + ', Factura Final : ' + response[2] + '. Algunos de los registros presentaron problemas. Favor de revisar la lista de Errores. ';
}
}
else {
mensaje = 'Se ha producido un error al ejecutar el proceso : ' + response[0];
}
loadGridPost(mensaje);
}
----------------------------------------------
.CS
----------------------------------------------
[WebMethod]
public static string ProcesaFacturas()
{
string[] mensaje;
int cantErrores = 0;
var ModoFactura = Convert.ToByte(0);
var ModoOriginal = 0;
try
{
//1.buscar nombres de .csv en el directorio de destino
var pathEnternet = new p_parametros_BC().SelDescPparametros(535).Trim(); //codigo para RUTA ENTERNET
string[] archivosCsv = Directory.GetFiles(pathEnternet, "*.csv");
var ini = "0";
var fin = "0";
//leo los archivos uno por uno
foreach (string rutaArchivo in archivosCsv)
{
var dt = new DataTable();
using (var sr = new StreamReader(rutaArchivo))
{
string[] columnas = sr.ReadLine().Split(';');
//foreach (string header in headers)
//{
// //dt.Columns.Add(header);
//}
var estado = columnas[4].Trim().ToUpper();
var factInterno = columnas[0].Trim();
var tipo = columnas[2].Trim();
switch (tipo)
{
case "33": //FACTURA AFECTA
tipo = "3";
break;
case "34": //FACTURA EXENTA
tipo = "3";
break;
}
var numFacSii = sr.ReadLine().Split(';')[3].Trim();
if (estado == "EMITIDO")
{
//LOG
new BcFuncionesGenericas().InsertarLog("ProcesarFacturasCsv.aspx", "ProcesaFacturasCsv", "numFactInterno " + factInterno + ",tipo " + tipo + ",", string.Empty, "ProcesaFacturas()", "Inicio procesar CSV:" + rutaArchivo);
var retorno = new ProcesarFacturasBc().ProcesarFacturasCsv(Convert.ToInt32(factInterno.Split('-')[1]),
Convert.ToInt16(tipo), Convert.ToInt32(numFacSii), 0);
ini = numFacSii; //JC corregir esta salida en fase de pruebas
fin = numFacSii;
//LOG
new BcFuncionesGenericas().InsertarLog("ProcesarFacturasCsv.aspx", "ProcesaFacturasCsv", "numFactInterno " + factInterno + ",tipo " + tipo + ",", string.Empty, "ProcesaFacturas()", "Fin procesar CSV:" + rutaArchivo);
}
else
{
//LOG
new BcFuncionesGenericas().InsertarLog("ProcesarFacturasCsv.aspx", "ProcesaFacturasCsv", "numFactInterno " + factInterno + ",tipo " + tipo + ",", string.Empty, "ProcesaFacturas()", "Inicio procesar CSV:" + rutaArchivo);
var retorno = new ProcesarFacturasBc().ProcesarFacturasCsv(Convert.ToInt32(factInterno.Split('-')[1]),
Convert.ToInt16(tipo), Convert.ToInt32(numFacSii), 0);
//LOG
new BcFuncionesGenericas().InsertarLog("ProcesarFacturasCsv.aspx", "ProcesaFacturasCsv", "numFactInterno " + factInterno + ",tipo " + tipo + ",", string.Empty, "ProcesaFacturas()", "Fin procesar CSV:" + rutaArchivo);
cantErrores++;
}
}
}
mensaje = new string[]
{
"OK",
ini,
fin,
Convert.ToString(cantErrores)
};
}
catch (Exception exc)
{
mensaje = new string[]
{
exc.Message.ToString().Replace("'", " ").Replace("\"", "").Replace(@"\r", "").Replace("\r\n", "")
};
new BcFuncionesGenericas().InsertarLog("ProcesarFacturasCsv.aspx", "ProcesaFacturasCsv", string.Empty, string.Empty, "ProcesaFacturas()", "Fin proceso completo:");
}
return JsonConvert.SerializeObject(mensaje);
}