Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        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...");
        }