Exemple #1
0
        protected void RegistrarBitacoraPrintTemplate(List <OrdenDTO> orden)
        {
            OrdenDAO dao     = new OrdenDAO();
            var      ordenes = orden.GroupBy(x => new{ x.OrdenId })
                               .Select(g => new { ordenID = g.Key.OrdenId,
                                                  items   = g.Count(),
                                                  detalle = g.ToList().First().Detalle })
                               .ToList();

            try
            {
                ordenes.ForEach(_orden =>
                {
                    OrdenArchivos dto = new OrdenArchivos()
                    {
                        detalle = _orden.detalle,
                        ordenID = _orden.ordenID.ToString(),
                        plantillasDescargadas = (byte)orden.ToList().Count(),
                        tienda         = this._nombreTienda,
                        fecha_descarga = DateTime.Now
                    };
                    dao.registrarOrdenconArchivos(dto);
                });
            }catch (Exception e)
            {
                Console.WriteLine("error en la insercion de la bitacora");
            }
        }
Exemple #2
0
        public List <TransaccionDTO> getOrdenes()
        {
            List <TransaccionDTO> transacciones = new List <TransaccionDTO>();

            foreach (FileInfo archivo in this._archivos)
            {
                string[] lines = File.ReadAllLines(archivo.FullName);
                foreach (string line in lines)
                {
                    Transaccion tr = new Transaccion(line);
                    if (!tr.esTransaccion())
                    {
                        continue;
                    }
                    VentaDAO dao       = new VentaDAO();
                    OrdenDAO _ordenDao = new OrdenDAO();
                    string   tienda    = dao.obtenerTienda(tr.WorkOrder);
                    _ordenDao.ActualizaPago(tr.WorkOrder);
                    transacciones.Add(new TransaccionDTO()
                    {
                        WorkOrden = tr.WorkOrder,
                        Tienda    = tienda
                    }
                                      );
                    this._bitacoraExcel.AgregarRow(tr.WorkOrder, tienda);
                    tr.Imprimir();
                }
                //File.Delete(archivo.FullName);
                File.Move(archivo.FullName, $"{_directorio_bitacora}\\{archivo.Name}.exp");
            }
            if (transacciones.Count > 0)
            {
                String fecha     = String.Format("{0:dd-MM-yyyy_HH_mm_ss}", DateTime.Now);
                String mes       = String.Format("{0:MMMM}", DateTime.Now);
                String directory = $@"{this._directorio_bitacora}\{mes}";
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }
                Row cabecera = new Row();
                cabecera.Append(
                    _bitacoraExcel.ConstructCell("WorkOrder", CellValues.String),
                    _bitacoraExcel.ConstructCell("Tienda", CellValues.String));

                _bitacoraExcel.SalvarExcel($@"{directory}\{fecha}.xlsx", "informacion", cabecera);
            }

            return(transacciones);
        }
Exemple #3
0
        public void LlenarInfoGoePower()
        {
            this._conexion.StartDate = DateTime.Today.AddDays(-320);
            //this._conexion.StartDate = new DateTime(2018, 1, 1);
            this._conexion.EndDate = DateTime.Now;
            int[] ordenes = this.GetListaOrdenes(OrderStatuses.All);
            if (ordenes == null)
            {
                Console.WriteLine($"No hay ordenes por procesar en la tienda {this._nombreTienda}");
                return;
            }
            Console.WriteLine($"Total de ordenes {ordenes.Length} en la tienda {this._nombreTienda}");

            foreach (int orden in ordenes)
            {
                OrdenDAO   ordenDao   = new OrdenDAO();
                ItemDAO    itemDao    = new ItemDAO();
                ClienteDAO clienteDAO = new ClienteDAO();

                string __ordenID = $"{this._nombreTienda}_{orden}";

                this._parametroOrden = new AuthHeaderOrder()
                {
                    CompanyID  = this._conexion.CompanyID,
                    MasterKey  = this._conexion.MasterKey,
                    OrderID    = orden,
                    ProducerID = this._conexion.ProducerID,
                    Username   = this._conexion.Username
                };


                AuthReturnOrder result = this.client.GetOrder(this._parametroOrden);
                Order           order  = result.Order;
                Job[]           jobs   = result.Jobs;

                var      cte = clienteDAO.BuscarClienteCampoExtra(order.WebUserID.ToString());
                XElement detalleOrdenXML;
                // Convertir La respuesta en XML para Guardarlo en la Base de Datos
                try
                {
                    detalleOrdenXML = result.ToXElement <AuthReturnOrder>();
                }
                catch (Exception e)
                {
                    detalleOrdenXML = null;
                }


                Orden ordendDto = new Orden()
                {
                    tienda           = this._nombreTienda,
                    ordenID          = __ordenID,
                    status           = order.OrderStatus,
                    webUserID        = order.WebUserID,
                    completeDate     = order.CompletedDate,
                    orderDate        = order.OrderDate,
                    releaseDate      = order.ReleaseDate,
                    shippingDate     = order.ShippingDate,
                    Total            = (float)order.TotalPrice,
                    clienteIntelisis = cte != null ? cte.Clave : "16776",
                    detalle          = detalleOrdenXML
                };


                var o = ordenDao.existe(__ordenID);
                if (o != null)
                {
                    if (o.status != order.OrderStatus)
                    {
                        Console.WriteLine("Es diferente");
                        Console.WriteLine($"La orden {orden} cambio de  {o.status}  a {order.OrderStatus}");
                        ordenDao.Actualiza(ordendDto);
                    }
                    continue;
                }


                Console.WriteLine($"Insertando la orden {orden} de la tienda {this._nombreTienda}");
                ordenDao.Agregar(ordendDto);


                foreach (Job job in jobs)
                {
                    Console.WriteLine($"Insertando el job {job.JobID}");
                    int cantidad  = job.Quantity;
                    int _cantidad = cantidad;
                    if (job.Records > 1)
                    {
                        _cantidad = job.Records;
                    }
                    Item itemDto = new Item()
                    {
                        cantidad    = job.Quantity,
                        descripcion = job.JobName,
                        ordenID     = __ordenID,
                        precio      = (job.Price / _cantidad),
                        records     = job.Records,
                        sku         = job.SKU,
                        setSize     = job.SetSize
                    };
                    itemDao.Agregar(itemDto);
                }
                if (order.ShippingPrice > 0)
                {
                    Console.WriteLine($"Insertando el envio");
                    Item envio = new Item()
                    {
                        sku         = "EN",
                        descripcion = "Gastos de Envio",
                        cantidad    = 1,
                        precio      = order.ShippingPrice,
                        ordenID     = __ordenID,
                        setSize     = 1,
                        records     = 1
                    };
                    itemDao.Agregar(envio);
                }
            }
        }
Exemple #4
0
        public List <TransaccionDTO> LeerOrdenesExcel()
        {
            this._archivos = new DirectoryInfo(_directorio).GetFiles("*.xlsx");
            List <TransaccionDTO> transacciones = new List <TransaccionDTO>();

            foreach (FileInfo archivo in this._archivos)
            {
                using (SpreadsheetDocument doc = SpreadsheetDocument.Open(archivo.FullName, false))
                {
                    Sheet             sheet     = doc.WorkbookPart.Workbook.Sheets.GetFirstChild <Sheet>();
                    Worksheet         worksheet = (doc.WorkbookPart.GetPartById(sheet.Id.Value) as WorksheetPart).Worksheet;
                    IEnumerable <Row> rows      = worksheet.GetFirstChild <SheetData>().Descendants <Row>();
                    foreach (Row row in rows)
                    {
                        if (row.RowIndex.Value >= 3)
                        {
                            Cell        cells    = row.Descendants <Cell>().Skip(1).First();
                            string      concepto = GetValue(doc, cells);
                            Transaccion tr       = new Transaccion(concepto);
                            if (!tr.esTransaccion())
                            {
                                continue;
                            }

                            VentaDAO dao       = new VentaDAO();
                            OrdenDAO _ordenDao = new OrdenDAO();
                            string   tienda    = "Sin tienda";
                            //dao.obtenerTienda(tr.WorkOrder);
                            _ordenDao.ActualizaPago(tr.WorkOrder);
                            transacciones.Add(new TransaccionDTO()
                            {
                                WorkOrden = tr.WorkOrder,
                                Tienda    = tienda
                            }
                                              );
                            this._bitacoraExcel.AgregarRow(tr.WorkOrder, tienda);
                            tr.Imprimir();
                        }
                    }
                }
                String fecha = String.Format("{0:dd-MM-yyyy_HH_mm_ss}", DateTime.Now);
                //File.Move(archivo.FullName, $"{_directorio_bitacora}\\{fecha}-{archivo.Name}");
            }

            //if (transacciones.Count > 0)
            //{
            //    String fecha = String.Format("{0:dd-MM-yyyy_HH_mm_ss}", DateTime.Now);
            //    String mes = String.Format("{0:MMMM}", DateTime.Now);
            //    String directory = $@"{this._directorio_bitacora}\{mes}";
            //    if (!Directory.Exists(directory))
            //    {
            //        Directory.CreateDirectory(directory);
            //    }
            //    Row cabecera = new Row();
            //    cabecera.Append(
            //        _bitacoraExcel.ConstructCell("WorkOrder", CellValues.String),
            //        _bitacoraExcel.ConstructCell("Tienda", CellValues.String));

            //    _bitacoraExcel.SalvarExcel($@"{directory}\{fecha}-{DateTime.Now.Millisecond}.xlsx", "informacion", cabecera);
            //}
            return(transacciones);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            GuiaViewModel model      = new GuiaViewModel();
            ClienteDAO    clienteDAO = new ClienteDAO();
            OrdenDAO      ordenDAO   = new OrdenDAO();
            GuiaDAO       guiaDAO    = new GuiaDAO();
            Guia          guia       = new Guia();


            model.numeroOrden   = "400000255";
            model.observaciones = "Cajas con contenido frágil";



            var orden = ordenDAO.ObtenerPorID(model.numeroOrden);

            if (orden == null)
            {
                Console.WriteLine($"La orden {model.numeroOrden} no esta registrada");
                return;
            }
            //if (ordenDAO.TieneGuiaAsignada(model.numeroOrden))
            //{
            //    Console.WriteLine($"La orden {model.numeroOrden} se le asignó una guia anteriormente");
            //    return;
            //}


            model.paquetes = new List <PaqueteViewModel>()
            {
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                },
                new PaqueteViewModel()
                {
                    peso = 1f
                }
            };


            var cliente = clienteDAO.ObtenerPorID(orden.id_cliente);


            guia.referencia    = model.numeroOrden;
            guia.observaciones = model.observaciones;



            List <Paquete> paquetes = new List <Paquete>();
            int            i        = 1;

            model.paquetes.ToList().ForEach(item =>
            {
                paquetes.Add(new Paquete()
                {
                    alto           = 1,
                    ancho          = 1,
                    largo          = 1,
                    largoSpecified = true,
                    altoSpecified  = true,
                    anchoSpecified = true,
                    pesoSpecified  = true,
                    descripcion    = "Paquete " + (i++),
                    peso           = item.peso,
                });
            });

            guia.paquetes = paquetes.ToArray();


            guia.consignatario = new Direccion()
            {
                calle                 = $"{orden.calle.ToUpper()}  {orden.estado.ToUpper()}",
                codigoPostal          = int.Parse(orden.codigo_postal),
                codigoPostalSpecified = true,
                email                 = cliente.email.ToLower(),
                contacto              = $"{cliente.nombre.ToUpper()} {cliente.apellidos.ToUpper()}",
                telefonos             = new List <Telefono> {
                    new Telefono {
                        telefono = orden.telefono
                    }
                }.ToArray()
            };


            RedPack redpack = new RedPack(guia);

            guia.numeroDeGuia = guiaDAO.ObtenerGuiaDisponible(1);
            guia.tipoServicio = new IdDesc()
            {
                id = 1, idSpecified = true, descripcion = "EXPRESS", equivalencia = "EXPRESS"
            };
            //guia.tipoServicio = new IdDesc() { id = 2, idSpecified = true, descripcion = "ECOEXPRESS", equivalencia = "ECOEXPRESS" };



            //guia.numeroDeGuia = guiaDAO.ObtenerGuiaDisponible(2);
            //guia.tipoServicio = new IdDesc() { id = 2, idSpecified = true, descripcion = "ECOEXPRESS", equivalencia = "ECOEXPRESS" };


            //int res=  redpack.Predocumentar();
            //   Console.WriteLine(res);
            while (redpack.Predocumentar() == 58)
            {
                Console.WriteLine($"Consumiendo el numero de guia {guia.numeroDeGuia}");
                guia.numeroDeGuia = guiaDAO.ObtenerGuiaDisponible(1);
                guiaDAO.MarcarGuiaAsignada(guia.numeroDeGuia);
            }

            string folioRecoleccion = redpack.SolicitarRecoleccionCF();

            Console.WriteLine($"Generacion de Guia {guia.numeroDeGuia} con el folio { folioRecoleccion} para la orden {model.numeroOrden}");

            Console.ReadLine();
        }