예제 #1
0
        private PedidoLocal ObtenerDatosPedidoLocal()
        {
            int numeroMesa = Convert.ToInt16(mesaSeleccionada);

            var mesero = Meseros.FirstOrDefault <EmpleadoPizzeria>(e => e.idGenerado == UC_NuevoPLocal.EditarSeleccionComboBoxNumEmpleado);

            textBoxDescuento.Text = "." + textBoxDescuento.Text;
            var descuento = FuncionesComunes.ParsearADouble(textBoxDescuento.Text);

            PedidoLocal pedidoLocalNuevo = new PedidoLocal
            {
                instruccionesEspeciales = textBoxInstruccionesEspeciales.Text,
                Mesa = new Mesa
                {
                    numeroMesa = (short)numeroMesa
                },
                Estado = new Estado
                {
                    estadoPedido = "En Espera"
                },
                Cuenta = new Cuenta
                {
                    subTotal    = (double)labelSubtotal.Content,
                    iva         = 0.16,
                    descuento   = descuento,
                    precioTotal = (double)labelTotal.Content,
                }
            };

            if (VentanaPedidos.idEmpleadoGeneradoCallCenter != null)
            {
                pedidoLocalNuevo.Empleado = new Empleado
                {
                    IdEmpleado         = VentanaPedidos.idEmpleadoCallCenter,
                    idEmpleadoGenerado = VentanaPedidos.idEmpleadoGeneradoCallCenter
                };
            }
            else
            {
                pedidoLocalNuevo.Empleado = new Empleado
                {
                    IdEmpleado         = mesero.id,
                    idEmpleadoGenerado = mesero.idGenerado
                };
            }
            pedidoLocalNuevo.Producto = new Producto[productosSeleccionados.Count];
            List <Producto> listaProductosSeleccionados = productosSeleccionados.ToList();

            listaProductosSeleccionados.CopyTo(pedidoLocalNuevo.Producto);

            pedidoLocalNuevo.ProvisionDirecta = new ProvisionDirecta[provisionesSeleccionadas.Count];
            List <ProvisionDirecta> listaProvisionesSeleccionadas = provisionesSeleccionadas.ToList();

            listaProvisionesSeleccionadas.CopyTo(pedidoLocalNuevo.ProvisionDirecta);
            return(pedidoLocalNuevo);
        }
        public void RecibirPedidoLocal(PedidoLocal pedido)
        {
            FuncionesComunes.MostrarMensajeExitoso("PEDIDO LOCAL: " + pedido.Estado.estadoPedido + "\nEmpleado: " + pedido.Empleado.idEmpleadoGenerado);

            if (pedido.Estado.estadoPedido.Equals("En Espera"))
            {
                PedidoLocal pedidoExiste = ListaPedidosLocales.Find(p => p.Id == Convert.ToInt32(pedido.Id));
                if (pedidoExiste != null)
                {
                    ListaPedidosLocales.Remove(pedidoExiste); ListaPedidosLocales.Add(pedido);
                    PedidoEnDataGrid pedidoEditado = pedidosEnEspera.First(p => p.IdPedido == pedido.Id.ToString());
                    pedidoEditado.Empleado                = pedido.Empleado.idEmpleadoGenerado;
                    pedidoEditado.MesaOCliente            = pedido.Mesa.numeroMesa.ToString();
                    pedidoEditado.InstruccionesEspeciales = pedido.instruccionesEspeciales;
                    meserosUC.dataGridPedidosEnEspera.Items.Refresh();
                }
                else
                {
                    PedidoEnDataGrid pedidoEnDataGrid = new PedidoEnDataGrid(pedido.Empleado.idEmpleadoGenerado, pedido.Id.ToString(), "Local", pedido.Mesa.numeroMesa.ToString(), pedido.instruccionesEspeciales);
                    meserosUC.AgregarOSeleccionar_PedidoEnEspera = pedidoEnDataGrid;
                    pedidosEnEspera.Add(pedidoEnDataGrid);
                    ListaPedidosLocales.Add(pedido);
                }
            }
            if (pedido.Estado.estadoPedido.Equals("Preparado"))
            {
                PedidoEnDataGrid pedidoEnDataGrid = new PedidoEnDataGrid(pedido.Empleado.idEmpleadoGenerado, pedido.Id.ToString(), "Local", pedido.Mesa.numeroMesa.ToString(), pedido.instruccionesEspeciales);
                meserosUC.AgregarOSeleccionar_PedidoPreparado = pedidoEnDataGrid;
                pedidosPreparados.Add(pedidoEnDataGrid);
                pedidosEnEspera.Remove(pedidosEnEspera.FirstOrDefault(p => p.IdPedido == pedidoEnDataGrid.IdPedido));
                meserosUC.dataGridPedidosPreparados.Items.Refresh();
            }
            if (pedido.Estado.estadoPedido.Equals("Entregado"))
            {
                PedidoEnDataGrid pedidoEnDataGrid = new PedidoEnDataGrid(pedido.Empleado.idEmpleadoGenerado, pedido.Id.ToString(), "Local", pedido.Mesa.numeroMesa.ToString(), pedido.instruccionesEspeciales);
                meserosUC.AgregarOSeleccionar_PedidoEntregado = pedidoEnDataGrid;
                pedidosEntregados.Add(pedidoEnDataGrid);
                pedidosPreparados.Remove(pedidosPreparados.FirstOrDefault(p => p.IdPedido == pedidoEnDataGrid.IdPedido));
            }
            if (pedido.Estado.estadoPedido.Equals("Cancelado"))
            {
                PedidoEnDataGrid pedidoEnDataGrid = new PedidoEnDataGrid(pedido.Empleado.idEmpleadoGenerado, pedido.Id.ToString(), "Local", pedido.Mesa.numeroMesa.ToString(), pedido.instruccionesEspeciales);
                meserosUC.AgregarOSeleccionar_PedidoCancelado = pedidoEnDataGrid;
                pedidosCancelados.Add(pedidoEnDataGrid);

                if (pedidosEnEspera.FirstOrDefault(p => p.IdPedido == pedidoEnDataGrid.IdPedido) != null)
                {
                    pedidosEnEspera.Remove(pedidosEnEspera.FirstOrDefault(p => p.IdPedido == pedidoEnDataGrid.IdPedido));
                }
                else if (pedidosPreparados.FirstOrDefault(p => p.IdPedido == pedidoEnDataGrid.IdPedido) != null)
                {
                    pedidosPreparados.Remove(pedidosPreparados.FirstOrDefault(p => p.IdPedido == pedidoEnDataGrid.IdPedido));
                }
            }
        }
예제 #3
0
        static public PedidoLocal PedidoLocalDeServidor_A_PedidoLocal(PedidoLocalDeServidor pedidoLocalDeServidor)
        {
            PedidoLocal pedidoLocal = new PedidoLocal
            {
                Id = pedidoLocalDeServidor.id,
                fecha = pedidoLocalDeServidor.fecha,
                instruccionesEspeciales = pedidoLocalDeServidor.instruccionesDePedido,
                Empleado = new Empleado
                {
                    IdEmpleado = pedidoLocalDeServidor.idEmpleado,
                    idEmpleadoGenerado = pedidoLocalDeServidor.idGeneradoDeEmpleado
                },
                Estado = new Estado
                {
                    estadoPedido = pedidoLocalDeServidor.estado
                },
                Cuenta = new Cuenta
                {
                    Id = pedidoLocalDeServidor.cuenta.Id,
                    precioTotal = pedidoLocalDeServidor.cuenta.toal,
                    subTotal= pedidoLocalDeServidor.cuenta.subtotal,
                    iva= pedidoLocalDeServidor.cuenta.iva,
                    descuento = pedidoLocalDeServidor.cuenta.descuento,
                    abierta = pedidoLocalDeServidor.cuenta.abierta
                },
                Mesa = new Mesa
                {
                    Id = pedidoLocalDeServidor.mesaId,
                    numeroMesa = (short)pedidoLocalDeServidor.numeroMesa
                },
                MesaId = pedidoLocalDeServidor.mesaId,                
            };

            List<Producto> productos = new List<Producto>();

            foreach(var productoLocal in pedidoLocalDeServidor.productosLocales)
            {
                var producto = ProductoDePedido_A_Producto(productoLocal);
                productos.Add(producto);
            }

            pedidoLocal.Producto = productos.ToArray();

            List<ProvisionDirecta> provisionesDirectas = new List<ProvisionDirecta>();

            foreach(var provisionVentaDirecta in pedidoLocalDeServidor.productosExternos)
            {
                var provisionDirecta = ProvisionVentaDirecta_A_ProvisionDirecta(provisionVentaDirecta);
                provisionesDirectas.Add(provisionDirecta);
            }

            pedidoLocal.ProvisionDirecta = provisionesDirectas.ToArray();
            return pedidoLocal;
        }
 // CALLBACKS NOTIFICAR PEDIDOS ******************************************************
 public void RecibirPedidoLocal(PedidoLocal pedido)
 {
     if (pedido.Estado.estadoPedido == "Cancelado")
     {
         FuncionesComunes.MostrarMensajeExitoso("Pedido Cancelado: " + pedido.Id);
         RemoverPedidoLocalCancelado(pedido);
     }
     else
     {
         MostrarPedidoLocal(pedido);
     }
 }
        private void RemoverPedidoLocalCancelado(PedidoLocal pedidoCancelado)
        {
            CocinaPedidoLocal vistaPedidoLocal = cocinaPedidoLocals.FirstOrDefault(p => p.EditarLabelIDPedido == pedidoCancelado.Id.ToString());

            if (vistaPedidoLocal != null)
            {
                cocinaPedidoLocals.Remove(cocinaPedidoLocals.First(p => p.EditarLabelIDPedido == pedidoCancelado.Id.ToString()));
                grid.Children.Remove(vistaPedidoLocal);
                pedidosLocales.Remove(pedidosLocales.FirstOrDefault(p => p.Id == pedidoCancelado.Id));
                ejeY -= 300;
            }
        }
예제 #6
0
 public bool EditarPedidoLocal()
 {
     try
     {
         PedidoLocal pedidoEditado = ObtenerDatosPedidoLocal();
         pedidoEditado.Id        = idPedidoEdicion;
         pedidoEditado.Cuenta.Id = idCuenta;
         return(serverMeseros.ModificarDatosPedidoLocal(pedidoEditado));
     }
     catch (CommunicationException ex)
     {
         MessageBox.Show(ex.Message + " " + ex.StackTrace);
         return(false);
     }
 }
예제 #7
0
 public bool RegistrarPedidoLocal()
 {
     try
     {
         PedidoLocal pedidoLocalNuevo = ObtenerDatosPedidoLocal();
         pedidoLocalNuevo.fecha     = DateTime.Now;
         pedidoLocalNuevo.Cuenta.Id = GenerarIdPedidoLocal(Convert.ToInt16(mesaSeleccionada));
         return(serverMeseros.RegistrarPedidoLocal(pedidoLocalNuevo));
     }
     catch (CommunicationException)
     {
         FuncionesComunes.MostrarMensajeDeError("No se ha podido establecer comunicación con el servidor");
         return(false);
     }
 }
        // CALLBACKS NOTIFICAR PEDIDOS ******************************************************


        public void ObtenerTodosPedidos(PedidoADomicilioDeServidor[] pedidosADomicilio, PedidoLocalDeServidor[] pedidosLocales)
        {
            Dispatcher.Invoke(() =>
            {
                foreach (var pedidoDomicilio in pedidosADomicilio.Where(p => p.estado == "En Espera"))
                {
                    PedidoADomicilio pedidoDomicilioConvertido = ConvertidorDeObjetos.PedidoADomicilioDeServidor_A_PedidoADomicilio(pedidoDomicilio);
                    MostrarPedidoDomicilio(pedidoDomicilioConvertido);
                }

                foreach (var pedidoLocal in pedidosLocales.Where(p => p.estado == "En Espera"))
                {
                    PedidoLocal pedidoLocalConvertido = ConvertidorDeObjetos.PedidoLocalDeServidor_A_PedidoLocal(pedidoLocal);
                    MostrarPedidoLocal(pedidoLocalConvertido);
                }
            });
        }
 private void UC_QuitarPedido(object sender, EventArgs e)
 {
     if (meserosUC.dataGridPedidosEnEspera.IsVisible)
     {
         var pedidoSeleccionado = meserosUC.AgregarOSeleccionar_PedidoEnEspera;
         if (pedidoSeleccionado.Tipo == "Domicilio")
         {
             PedidoADomicilio pedidoDomicilioEnLista = ListaPedidosDomicilio.Find(p => p.Id == Convert.ToInt32(pedidoSeleccionado.IdPedido));
             pedidoDomicilioEnLista.Estado = new Estado
             {
                 estadoPedido = "Cancelado"
             };
             server.ModificarEstadoPedidoADomicilio(pedidoDomicilioEnLista);
         }
         else
         {
             PedidoLocal pedidoLocalEnLista = ListaPedidosLocales.Find(p => p.Id == Convert.ToInt32(pedidoSeleccionado.IdPedido));
             pedidoLocalEnLista.Estado = new Estado
             {
                 estadoPedido = "Cancelado"
             };
             server.ModificarEstadoPedidoLocal(pedidoLocalEnLista);
         }
     }
     else if (meserosUC.dataGridPedidosPreparados.IsVisible)
     {
         var pedidoLocalPreparadoSeleccionado = meserosUC.AgregarOSeleccionar_PedidoPreparado;
         var pedidoLocalEnLista = ListaPedidosLocales.Find(p => p.Id == Convert.ToInt32(pedidoLocalPreparadoSeleccionado.IdPedido));
         pedidoLocalEnLista.Estado = new Estado
         {
             estadoPedido = "Cancelado"
         };
         server.ModificarEstadoPedidoLocal(pedidoLocalEnLista);
     }
     else if (meserosUC.dataGridPedidosEnviados.IsVisible)
     {
         var pedidoDomicilioEnviadoSeleccionado = meserosUC.AgregarOSeleccionar_PedidoEnviado;
         var pedidoDomicilioEnLista             = ListaPedidosDomicilio.Find(p => p.Id == Convert.ToInt32(pedidoDomicilioEnviadoSeleccionado.IdPedido));
         pedidoDomicilioEnLista.Estado = new Estado
         {
             estadoPedido = "Cancelado"
         };
         server.ModificarEstadoPedidoADomicilio(pedidoDomicilioEnLista);
     }
 }
        public void MostrarPedidoLocal(PedidoLocal pedido)
        {
            CocinaPedidoLocal vistaPedidoLocal = cocinaPedidoLocals.FirstOrDefault(p => p.EditarLabelIDPedido == pedido.Id.ToString());
            List <platillo>   platillos        = new List <platillo>();

            if (vistaPedidoLocal == null)
            {
                CocinaPedidoLocal cocinaPedidoLocal = new CocinaPedidoLocal();
                cocinaPedidoLocal.Name       = "local_" + conteo.ToString();
                cocinaPedidoLocal.Margin     = new Thickness(100, ejeY, 0, 0);
                cocinaPedidoLocal.Visibility = Visibility.Visible;
                cocinaPedidoLocal.eventoNotificarPedidoPreparado += EnviarPedidoLocalPreparado;

                cocinaPedidoLocal.EditarLabelIDPedido      = pedido.Id.ToString();
                cocinaPedidoLocal.EditarLabelTipo          = "Local";
                cocinaPedidoLocal.EditarLabelInstrucciones = pedido.instruccionesEspeciales;

                foreach (var producto in pedido.Producto)
                {
                    platillos.Add(new platillo(producto.nombre, false, producto.cantidad));
                }

                cocinaPedidoLocal.llenarDataGrid = platillos;

                ejeY += 300;
                conteo++;

                grid.Children.Add(cocinaPedidoLocal);
                cocinaPedidoLocals.Add(cocinaPedidoLocal);
                pedidosLocales.Add(pedido);
            }
            else
            {
                vistaPedidoLocal.EditarLabelInstrucciones = pedido.instruccionesEspeciales;
                vistaPedidoLocal.llenarDataGrid           = null;
                foreach (var producto in pedido.Producto)
                {
                    platillos.Add(new platillo(producto.nombre, false, producto.cantidad));
                }
                vistaPedidoLocal.llenarDataGrid = platillos;
                pedidosLocales.Remove(pedidosLocales.FirstOrDefault(p => p.Id == pedido.Id));
                pedidosLocales.Add(pedido);
            }
        }
        private void UC_GenerarTicketPDF(object sender, EventArgs e)
        {
            PedidoEnDataGrid pedidoEntregado = meserosUC.AgregarOSeleccionar_PedidoEntregado;

            string rutaTicketsPDF = "TicketsPDF";
            string rootDirectory  = System.IO.Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + "../../" + rutaTicketsPDF);

            if (!Directory.Exists(@rootDirectory))
            {
                DirectoryInfo di = Directory.CreateDirectory(@rootDirectory);
            }

            if (pedidoEntregado.Tipo == "Domicilio")
            {
                PedidoADomicilio pedidoDomicilioEncontrado = ListaPedidosDomicilio.Find(p => p.Id == Convert.ToInt32(pedidoEntregado.IdPedido));
                meserosUC.GenerarTicketPDF(@rootDirectory, pedidoDomicilioEncontrado);
            }
            else
            {
                PedidoLocal pedidoLocalEncontrado = ListaPedidosLocales.Find(p => p.Id == Convert.ToInt32(pedidoEntregado.IdPedido));
                meserosUC.GenerarTicketPDF(@rootDirectory, pedidoLocalEncontrado);
            }
        }