예제 #1
0
        /// <summary>
        /// Punto de entrada para la generacion de paquetes
        /// </summary>
        /// <param name="fecheaInicio"></param>
        /// <param name="fechaFin"></param>
        /// <param name="pedidosPorEncabezado"></param>
        /// <returns></returns>
        public int GenerarPaquetes(int pedidosPorEncabezado, bool procesprocesaSoloPedidosDiarios, int horaProcesaPedidos)
        {
            var fechaInicio = procesprocesaSoloPedidosDiarios ? BusinessUtils.GetFechaConHoraExacta(DateTime.Now, 0) : BusinessUtils.GetFechaConHoraExacta(DateTime.MinValue, 0);
            var fechaFin    = procesprocesaSoloPedidosDiarios ? BusinessUtils.GetFechaConHoraExacta(DateTime.Now, horaProcesaPedidos) : BusinessUtils.GetFechaConHoraExacta(DateTime.MaxValue, 0);

            var grupos            = GeneraGrupos(pedidosPorEncabezado, fechaInicio, fechaFin);
            int paquetesGenerados = 0;

            BusinessUtils.PreparaRutaTemporal(_rutaArchivosTemporales);

            if (grupos != null)
            {
                foreach (var grupo in grupos)
                {
                    foreach (var encabeado in grupo.Encabezados)
                    {
                        GeneraArchivoEncabezado(encabeado);

                        GeneraArchivosDetalle(encabeado);

                        paquetesGenerados++;
                    }
                }

                var rutaArchivoZip = _rutaArchivosFinales + @"\" + String.Format("orderivr.{0:yyyy-MM-dd}.zip", DateTime.Now);

                Zip.ComprimirPaquete(rutaArchivoZip, _rutaArchivosTemporales);

                return(paquetesGenerados);
            }

            return(0);
        }