public static async Task <int> GenerarXMLSintimbre(int[] idNominas, NOM_PeriodosPago periodosPago, int idEjercicio, int idPeriodo, int idUsuario, bool isCfdi33 = false) { //TimbradoCore tcCore = new TimbradoCore(); //var rxml = await tcCore.GenerarXmlAsync(idNominas, periodosPago, idEjercicio, idPeriodo, idUsuario,fromProcesando: true,isCfdi33:isCfdi33); TimbradoCoreV2 tcv2 = new TimbradoCoreV2(); var res = await tcv2.CrearXmlDesdeElProcesado(idUsuario, periodosPago, null, idNominas, true); return(1); }
public static async Task <int> GenerarXMLFiniquitoSintimbre(int idFiniquito, NOM_PeriodosPago periodosPago, int idEjercicio, int idPeriodo, int idUsuario, bool isCfdi33 = false) { //TimbradoCore tcCore = new TimbradoCore(); //var rxml = await tcCore.GenerarXmlFiniquitoAsync(idFiniquito, periodosPago, idEjercicio, idPeriodo, // idUsuario, fromProcesando: true, isCfdi33: isCfdi33); TimbradoCoreV2 tcv2 = new TimbradoCoreV2(); int[] arrayId = new[] { idFiniquito }; var res = await tcv2.CrearXmlDesdeElProcesado(idUsuario, periodosPago, null, arrayId, true); return(1); }
public async Task <List <NotificationSummary> > CancelarTimbresAsync(int[] arrayIdTimbrado, int idUsuario) { List <NotificationSummary> summaryList = new List <NotificationSummary>(); if (arrayIdTimbrado.Length <= 0) { summaryList.Add(new NotificationSummary() { Reg = 0, Msg1 = "La lista de Id a cancelar esta vacía", Msg2 = "" }); return(summaryList); } arrayIdTimbrado = ValidarRecibosCancelados(arrayIdTimbrado); if (arrayIdTimbrado.Length <= 0) { summaryList.Add(new NotificationSummary() { Reg = 0, Msg1 = "Esta intentando cancelar - registros que ya estan cancelados.", Msg2 = "" }); return(summaryList); } TimbradoCoreV2 tc2 = new TimbradoCoreV2(); var cancelados = await tc2.CancelarTimbresAsync(arrayIdTimbrado, idUsuario); summaryList.AddRange(cancelados); return(summaryList); }
/// <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); }
private static void GeneradorXml() { int[] arrayNominas = new[] { 58137, 58138, 58139, 58140, 58143, 58144, 58145, 58146, 58147, 58148, 58149, 58150, 58152, 58153, 58154, 58155, 58156, 58157, 58158, 58159, 58160, 58161, 58162, 58163, 58164, 58165, 58166, 58167, 58168, 58170, 58172, 58174, 58175, 58176, 58177, 58178, 58179, 58180, 58181, 58182, 58183, 58184, 58185, 58186, 58187, 58188, 58189, 58190, 58191, 58192, 58193, 58194, 58195, 58196, 58197, 58198, 58199, 58200, 58202 }; int[] arrayNominas1 = new[] { 58147 }; TimbradoDao objDao = new TimbradoDao(); var ppago = objDao.GetPeriodoPagoById(2026); GlobalConfig gconfig = new GlobalConfig(); var servidorConfig = gconfig.GetGlobalConfig(); //TimbradoCore tc = new TimbradoCore(arrayNominas, ppago, ppago.IdEjercicio,false); TimbradoCoreV2 tcv2 = new TimbradoCoreV2(); //Debug.WriteLine("========== V1 ==============================="); //Debug.WriteLine($"Inicio v1 {DateTime.Now}"); //var nominasTimbradas = tc.CrearXmlyTimbrado(4, ppago, true); //Debug.WriteLine($"Fin v1 {DateTime.Now}"); Debug.WriteLine("========== V2 ==============================="); Debug.WriteLine($"Inicio v2 {DateTime.Now}"); var nominasTimbradasv2 = tcv2.CrearXml(4, ppago, servidorConfig, arrayNominas, false); Debug.WriteLine($"Fin v2 {DateTime.Now}"); Debug.WriteLine($"Inicio Timbrado v2 {DateTime.Now}"); var listaTim = tcv2.Timbrado33_v2(ppago, arrayNominas, servidorConfig); Debug.WriteLine($"Fin Timbrado v2 {DateTime.Now}"); Console.WriteLine("Fin de la ejecucion..."); }