/// <summary> /// Retorna una lista con las rutas de los archivos generados /// </summary> /// <param name="idNominas"></param> /// <param name="idUsuario"></param> /// <param name="ruta"></param> /// <returns></returns> public async Task <string[]> DownloadRecibosCfdiAsync(int[] idNominas, int idUsuario, string ruta, bool isFiniquito = false) { PDFCore pc = new PDFCore(); return(await pc.DownloadRecibos(idNominas, idUsuario, ruta, isFiniquito : isFiniquito)); }
//private void SaveChange() //{ // // _ctx.SaveChanges(); //} #endregion /// <summary> /// Genera el archivo PDF del xml timbrado - guarda el pdf en la bd en bytes[] /// </summary> /// <param name="idNominas"></param> /// <param name="idEjercicio"></param> /// <param name="idPeriodo"></param> /// <returns></returns> public async Task <int> GenerarRecibosPdfAsync(int[] idNominas, int idEjercicio, int idPeriodo) { PDFCore pc = new PDFCore(); var r = await pc.GenerarPdfAsync(idNominas, idEjercicio, idPeriodo); return(r); }
public static async Task <string> GetRecibosFiniquitoSinTimbre(int idFiniquito, NOM_PeriodosPago ppago, int idUsuario, string path, bool isCfdi33 = false) { //Se generan los recibos sin timbrado del sat if (idFiniquito != 0) { PDFCore pcCore = new PDFCore(); var recibo = await pcCore.GetRecibosFiniquitoSintimbre(idFiniquito, ppago.IdEjercicio, ppago.IdPeriodoPago, idUsuario, path, isCfdi33); return(recibo); } else { return(null); } }
public static async Task <string> GetRecibosComplementoDetalle(int[] idEmpleados, NOM_PeriodosPago ppago, int idUsuario, string path) { //Se generan los recibos sin timbrado del sat if (idEmpleados != null) { PDFCore pcCore = new PDFCore(); var recibo = await pcCore.GetRecibosComplementoDetalle(idEmpleados, ppago.IdEjercicio, ppago, idUsuario, path); return(recibo); } else { return(null); } }
public static async Task <string> GetRecibosComplemento(int[] listNominas, NOM_PeriodosPago ppago, int idUsuario, string path, bool incluirDetalles) { //Se generan los recibos sin timbrado del sat if (listNominas != null) { PDFCore pcCore = new PDFCore(); var recibo = await pcCore.GetRecibosComplemento(listNominas, ppago.IdEjercicio, ppago, idUsuario, path, incluirDetalles); return(recibo); } else { return(null); } }
/// <summary> /// Ejecuta el timbrado de las nominas que se le proporcionen en el array, /// Crea los XML de cada nomina y realiza el timbrado. /// Retorna una lista con los id de las nominas timbradas. /// </summary> /// <param name="idNominas"></param> /// <param name="idSucursal"></param> /// <param name="idEjercicio"></param> /// <param name="idPeriodo"></param> /// <param name="idUsuario"></param> /// <param name="timbradoPrueba"></param> /// <param name="pathLog"></param> /// <returns>Retorna una lista con los id de las nominas timbradas.</returns> public async Task <List <NotificationSummary> > GenerarCfdisAsync(int idSucursal, int idEjercicio, int idPeriodo, int[] idNominas, string pathLog, int idUsuario, bool timbradoPrueba = true, bool isFiniquito = false, bool isCfdi33 = false) { List <NotificationSummary> summaryList = new List <NotificationSummary>(); //Validar Estatus del Periodo var periodoEstatusActual = GetPeriodoPagoById(idPeriodo); //No se procede con la generacion del cfdi si el periodo : //1) No esta autorizado //2) Esta siendo generado por otro usuario //3) Se esta procesando las nominas if (periodoEstatusActual.Autorizado == false || periodoEstatusActual.CfdiGenerado == (int)GenerarCfdiEstatus.GenerandoCfdi || periodoEstatusActual.Procesando) { summaryList.Add(new NotificationSummary() { Reg = 0, Msg1 = "No se puede continuar por que el periodo no esta Autorizado, o se esta procesando en este momento...", Msg2 = "" }); return(summaryList); } //periodoEstatusActual.CfdiGenerado = (int)GenerarCfdiEstatus.GenerandoCfdi; //SaveChange(); PeriodosPago objPeriodo = new PeriodosPago(); objPeriodo.UpdateCfdiEstatus(periodoEstatusActual, GenerarCfdiEstatus.GenerandoCfdi); //TimbradoCore tc = new TimbradoCore(); TimbradoCoreV2 tcv2 = new TimbradoCoreV2(); PDFCore pc = new PDFCore(); //LogTxtCore.ValidarDirectorio(pathLog); //DateTime dt = DateTime.Now; //pathLog += dt.Day + dt.Month.ToString() + dt.Year + ".txt"; //Validar que los IdNominas no hayan sido generadas anteriormente idNominas = ValidarRecibosTimbrados(idNominas, idSucursal, idEjercicio, periodoEstatusActual); //Si el nuevo array no contiene elementos, entonces retornamos null //porque estaban intentado timbrar registros que ya estaban timbrados if (idNominas.Length <= 0) { summaryList.Add(new NotificationSummary() { Reg = 0, Msg1 = "Esta intentando timbrar nominas registradas como timbradas", Msg2 = "" }); return(summaryList); } Array.Sort(idNominas); //ELIMINAMOS los registros que se generaron anteriormente con estos id de nomina pero pruducieron un error al timbrar tcv2.EliminarCfdiByNominaIds(idNominas, idEjercicio, periodoEstatusActual, idSucursal); //Generar los XML y el Timbrado. //Debug.WriteLine($"Inicio v1 {DateTime.Now}"); //var nominasTimbradas = await tc.GenerarCfdiAsync(idUsuario, idNominas, idEjercicio, periodoEstatusActual, pathLog, timbradoPrueba, isCfdi33); //Debug.WriteLine($"FIN v1 {DateTime.Now}"); //version 2 GlobalConfig gconfig = new GlobalConfig(); var servidorConfig = gconfig.GetGlobalConfig(); var nominasTimbradas = await tcv2.GenerarCfdiV2Async(idUsuario, idNominas, periodoEstatusActual, servidorConfig, false); if (nominasTimbradas.Count > 0) { summaryList.AddRange(nominasTimbradas); } //Genera los pdf de las nominas timbradas. var pErrores = await pc.GenerarPdfAsync(idNominas, idEjercicio, idPeriodo, isFiniquito : isFiniquito, isCfdi33 : isCfdi33); //Actualizar el Periodo con el estatus de CFDIGenerado a Generado //periodoEstatusActual.CfdiGenerado = (int)GenerarCfdiEstatus.Generado; //SaveChange(); objPeriodo.UpdateCfdiEstatus(periodoEstatusActual, GenerarCfdiEstatus.Generado); return(summaryList); }
/// <summary> /// Metodo que retorna los archivos pdf en bytes de las nominas solicitadas en el array /// </summary> /// <param name="idNominas"></param> /// <returns></returns> public async Task <byte[]> GetArchivosPdfAsync(int[] idNominas) { PDFCore pc = new PDFCore(); return(await pc.GetArchivosPdfAsync(idNominas)); }
public byte[] GetReciboReal(int idFiniquito, int idPeriodo, int idUsuario, string pathFolder, bool liquidacion = false) { PDFCore pc = new PDFCore(); return(pc.ReciboFiniquitoReal(idFiniquito, idPeriodo, idUsuario, pathFolder, liquidacion)); }