Beispiel #1
0
        /// <summary>
        /// Update user with new Access Tokesn
        /// BusinessUtils.GetUniqueKey(200) For Uniquekey of 200 words
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public ResponseType UpdateUser(User user)
        {
            ResponseType responseType = new ResponseType();

            try
            {
                if (ValidateUsername(user))
                {
                    User userToUpdate = userDBContext
                                        .Users.SingleOrDefault(x => x.UserName == user.UserName);
                    string AccessToken = BusinessUtils.GetUniqueKey(200);
                    userToUpdate.AccessToken  = AccessToken;
                    userToUpdate.PasswordHash = user.PasswordHash;
                    userToUpdate.URLParams    = user.URLParams;
                    userDBContext.SaveChanges();
                    responseType.ErrorMsg    = "success";
                    responseType.AccessToken = AccessToken;
                }
                else
                {
                    responseType.ErrorMsg    = "UserName does not exists!!";
                    responseType.AccessToken = "";
                }
            }
            catch (Exception ex)
            {
                responseType.ErrorMsg    = ex.Message;
                responseType.AccessToken = "";
            }

            return(responseType);
        }
Beispiel #2
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);
        }
Beispiel #3
0
        /// <summary>
        /// Genera archivo encabezado con la lista de pedidos que contiene
        /// </summary>
        /// <param name="encabezado"></param>
        /// <returns></returns>
        private bool GeneraArchivoEncabezado(Encabezado encabezado)
        {
            string rutaTemporalGrupo = _rutaArchivosTemporales + @"\";
            int    consecutivoPedido = 1;

            using (FileStream archivoEncabezado = File.Create(rutaTemporalGrupo + encabezado.Nombre))
            {
                using (StreamWriter streamWriter = new StreamWriter(archivoEncabezado))
                {
                    var fechaInicio         = BusinessUtils.GetFechaFormateada();
                    var horaInicio          = BusinessUtils.GetHoraFormateada();
                    var contenidoEncabezado = String.Format("{0}019000{1}4000{5}101{1}4{2}Y{3}{4}", encabezado.Grupo.Campana, encabezado.Consecutivo.ToString("D4"), encabezado.Pedidos.Count, fechaInicio, horaInicio, Environment.NewLine);
                    streamWriter.Write(contenidoEncabezado);

                    foreach (var pedido in encabezado.Pedidos)
                    {
                        pedido.Consecutivo = consecutivoPedido;

                        streamWriter.Write(String.Format("{0}01{1}400{2}", encabezado.Grupo.Campana, encabezado.Consecutivo.ToString("D4"), consecutivoPedido.ToString("D2")));
                        consecutivoPedido++;
                    }
                }
            }
            return(true);
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pedido"></param>
        private void GeneraArchivosDetalle(Pedido pedido, int consecutivoEncabezado)
        {
            var rutaTemporalGrupo    = _rutaArchivosTemporales + @"\";
            var clavePedido          = String.Format("{0}01{1}4{2}", pedido.Campana, consecutivoEncabezado.ToString("D4"), pedido.Consecutivo.ToString("D4"));
            var nombreArchivoDetalle = "ORDER." + clavePedido;

            using (FileStream archivoDetalle = File.Create(rutaTemporalGrupo + nombreArchivoDetalle))
            {
                using (StreamWriter streamWriter = new StreamWriter(archivoDetalle))
                {
                    //Encabezado
                    var identificadorEncabezado = String.IsNullOrEmpty(pedido.ProductoClave) ? "H" : "A";
                    var detalleOrden            = String.Format("{6}  101{0}{1} {2}{3}{4}{5}00000000010000000000000000000000000000000", consecutivoEncabezado.ToString("D4"), pedido.Consecutivo.ToString("D2"), BusinessUtils.GetFechaFormateada(pedido.FechaP), BusinessUtils.GetHoraFormateada(pedido.FechaP), pedido.Zona, pedido.Registro, identificadorEncabezado);

                    streamWriter.WriteLine(clavePedido + "0");
                    streamWriter.WriteLine(detalleOrden);

                    //Pedido Actual
                    if (!String.IsNullOrEmpty(pedido.ProductoClave))
                    {
                        streamWriter.WriteLine(clavePedido + "2");
                        foreach (var detalleLinea in pedido.ProductoClave.Split('^'))
                        {
                            var linea           = detalleLinea.Split(',')[0].Substring(0, 5);
                            var cantidad        = detalleLinea.Split(',')[1];
                            var lineaFormateada = String.Format("0{0}00{1}", linea, Convert.ToInt16(cantidad).ToString("D3"));
                            streamWriter.Write(lineaFormateada);
                        }
                    }

                    //Pedido Anterios
                    if (!String.IsNullOrEmpty(pedido.ProductoClaveAnt.Trim()))
                    {
                        streamWriter.WriteLine(Environment.NewLine + clavePedido + "3");
                        foreach (var detalleLinea in pedido.ProductoClaveAnt.Split('^'))
                        {
                            var linea           = detalleLinea.Split(',')[0].Substring(0, 5);
                            var cantidad        = detalleLinea.Split(',')[1];
                            var lineaFormateada = String.Format("B 000{0}00{1}0000000000000{2}01", linea, Convert.ToInt16(cantidad).ToString("D3"), Convert.ToInt16(pedido.Campana) - 1);
                            streamWriter.WriteLine(lineaFormateada);
                        }
                    }
                }
            }
        }