javascript generar Archivos para bancos
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript generar Archivos para bancos相关的知识,希望对你有一定的参考价值。
public ActionResult GeneraArchivoBanco(string GenerarPagoCSV, string Banco)
{
TSession _Session = (TSession)System.Web.HttpContext.Current.Session["_TSession"];
if (_Session == null)
{
RedirectToAction("Index", "Login");
}
var settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
MissingMemberHandling = MissingMemberHandling.Ignore
};
GenerarPagoModel _GeneraPago = JsonConvert.DeserializeObject<GenerarPagoModel>(GenerarPagoCSV, settings);
var result = "";
var config = new CsvHelper.Configuration.Configuration();
config.IgnoreQuotes = true;
using (var mem = new MemoryStream())
using (var write = new StreamWriter(mem))
using (var csvWrite = new CsvWriter(write, config))
{
csvWrite.Configuration.Delimiter = " ";
csvWrite.Configuration.ShouldQuote = (field, context) => false;
EmpleadoModel empleadoBanco;
DateTime fechaCrea = DateTime.Now;
if (Banco == "BSJ")
{
double montoTotal = 0;
int lineas = 0;
foreach (EmpleadoModel empleado in _GeneraPago.EmpleadoList)
{
montoTotal += empleado.Monto_Pagar;
lineas++;
}
string numPlan = "";
string numEnvio = "";
if (_GeneraPago.numPlan.Length < 4)
{
numPlan = alinear(_GeneraPago.numPlan, (int)Campo_Archivo_BSJ_Cab.NumPlan);
}
else
{
numPlan = _GeneraPago.numPlan;
}
if (_GeneraPago.numEnvio.Length < 5)
{
numEnvio = alinear(_GeneraPago.numEnvio, (int)Campo_Archivo_BSJ_Cab.numEnvio);
}
else
{
numEnvio = _GeneraPago.numEnvio;
}
string fecha = fechaCrea.Year.ToString() + fechaCrea.Month.ToString().PadLeft(2, '0') + fechaCrea.Day.ToString().PadLeft(2, '0');
csvWrite.WriteField("B" + numPlan + numEnvio + "".PadLeft(20, ' ') + (alinear("0", (int)Campo_Archivo_BSJ_Cab.consecutivo)) +
fecha + alinear(Math.Truncate(montoTotal*100.00).ToString("###0"), (int)Campo_Archivo_BSJ_Cab.TotalMonto)
+ alinear(lineas.ToString(), (int)Campo_Archivo_BSJ_Cab.numLineas));
csvWrite.NextRecord();
int numLinea = 1;
string ceduEmpleado = "";
string numLienaStr = "";
string pagoEmpleado = "";
string totalLineas = "";
foreach (EmpleadoModel empleado in _GeneraPago.EmpleadoList)
{
empleadoBanco = new EmpleadoModel();
empleadoBanco = empleado.Empleado_ListKey(empleado);
if (empleadoBanco.Num_CtaBanco != "")
{
ceduEmpleado = empleadoBanco.Empleado_Cedula.Trim().PadRight(20, ' ');
numLienaStr = numLinea.ToString().PadLeft(5, '0');
pagoEmpleado = Math.Truncate(empleado.Monto_Pagar*100.00).ToString("###0").PadLeft(13, '0');
totalLineas = lineas.ToString().PadLeft(5, '0');
csvWrite.WriteField("T" + numPlan + numEnvio + ceduEmpleado + numLienaStr + fecha + pagoEmpleado + totalLineas + _GeneraPago.Tipo_Pago_Nombre.PadRight(30, ' '));
csvWrite.WriteField((empleado.Codigo_Empleado + " " + empleado.Empleado_Nombre.Trim() + " " + empleado.Empleado_Apellido.Trim()).PadRight(30, ' ') + empleadoBanco.Num_CtaBanco.PadRight(9, ' '));
numLinea++;
csvWrite.NextRecord();
}
ceduEmpleado = "";
numLienaStr = "";
pagoEmpleado = "";
totalLineas = "";
}
}
if (Banco == "BPRO")
{
int numLinea = 1;
foreach (EmpleadoModel empleado in _GeneraPago.EmpleadoList)
{
empleadoBanco = new EmpleadoModel();
empleadoBanco = empleado.Empleado_ListKey(empleado);
if (empleadoBanco.Num_CtaBanco != "")
{
csvWrite.WriteField(empleadoBanco.Num_CtaBanco.PadLeft(9, '0'));
csvWrite.WriteField(_GeneraPago.Tipo_Pago_Nombre + " " + _GeneraPago.Fecha_Periodo_Inicio.ToString("dd/MM/yyyy") + " " + _GeneraPago.Fecha_Periodo_Fin.ToString("dd/MM/yyyy"));
csvWrite.WriteField(Math.Round(empleado.Monto_Pagar, 2));
numLinea++;
csvWrite.NextRecord();
}
}
}
if (Banco == "BIND")
{
csvWrite.Configuration.Delimiter = ",";
int numLinea = 1;
foreach (EmpleadoModel empleado in _GeneraPago.EmpleadoList)
{
empleadoBanco = new EmpleadoModel();
empleadoBanco = empleado.Empleado_ListKey(empleado);
if (empleadoBanco.Num_CtaBanco != "")
{
csvWrite.WriteField(empleadoBanco.Ofic_CtaBanco);
csvWrite.WriteField(empleadoBanco.Num_CtaBanco.Trim());
csvWrite.WriteField(_GeneraPago.Tipo_Pago_Nombre + " " + _GeneraPago.Fecha_Periodo_Inicio.ToString("dd/MM/yyyy") + " " + _GeneraPago.Fecha_Periodo_Fin.ToString("dd/MM/yyyy"));
csvWrite.WriteField(Math.Round(empleado.Monto_Pagar, 2));
csvWrite.WriteField(1);
csvWrite.NextRecord();
}
}
}
write.Flush();
result = Encoding.UTF8.GetString(mem.ToArray());
}
byte[] bytes = Encoding.ASCII.GetBytes(result);
return File(new UTF8Encoding().GetBytes(result), "application/csv", "Report123.csv");
}
以上是关于javascript generar Archivos para bancos的主要内容,如果未能解决你的问题,请参考以下文章