double CalcularTasaIva()
        {
            var tasa = Basicas.parametros().TasaIva.GetValueOrDefault();

            if (factura.Tarjeta < factura.MontoTotal)
            {
                return(tasa);
            }
            if (this.txtCedulaRif.Text.Length > 0)
            {
                var db       = new VeneciaEntities();
                var impuesto = (from xx in db.Impuestos select xx).FirstOrDefault();
                if (impuesto == null)
                {
                    return(tasa);
                }
                if (impuesto.InicialesReducido.Contains(this.txtCedulaRif.Text[0]) &&
                    factura.MontoTotal <= (double)impuesto.TopeReduccion)
                {
                    return((double)impuesto.TasaReducida);
                }
                if (impuesto.InicialesReducido2.Contains(this.txtCedulaRif.Text[0]))
                {
                    return((double)impuesto.TasaReducida2);
                }
            }
            return(tasa);
        }
        private void Busqueda()
        {
            dc    = new VeneciaEntities();
            Texto = this.txtBuscar.Text;
            switch (myLayout.ToUpper())
            {
            case "CLIENTES":
                this.bindingSource.DataSource = FactoryClientes.getItems(dc, Texto);
                break;

            case "MESONEROS":
                this.bindingSource.DataSource = FactoryUsuarios.getItems(dc, Texto, "MESONERO");
                break;

            case "ADMINISTRADORES":
                this.bindingSource.DataSource = FactoryUsuarios.getItems(dc, Texto, "ADMINISTRADOR");
                break;

            case "CAJEROS":
                this.bindingSource.DataSource = FactoryUsuarios.getItems(dc, Texto, "CAJERO");
                break;

            case "MESAS":
                this.bindingSource.DataSource = FactoryMesas.getItems(dc, Texto);
                break;

            case "PLATOS":
                this.bindingSource.DataSource = FactoryPlatos.getItems(dc, Texto);
                break;

            case "COMPRAS":
                this.bindingSource.DataSource = FactoryCompras.getComprasEspera(dc, Texto);
                break;

            case "FACTURAS":
                this.bindingSource.DataSource = FactoryFacturas.getFacturasPendientes(dc, Texto);
                break;

            case "INGREDIENTES":
                this.bindingSource.DataSource = FactoryIngredientes.getItems(dc, Texto);
                break;

            case "PROVEEDORES":
                this.bindingSource.DataSource = FactoryProveedores.getItems(dc, Texto);
                break;

            case "MESAS DISPONIBLES":
                this.bindingSource.DataSource = FactoryMesas.getMesasDisponibles(dc);
                break;
            }
            this.gridControl1.DataSource = this.bindingSource;
            gridControl1.ForceInitialize();
            gridView1.OptionsLayout.Columns.Reset();
            this.gridControl1.DefaultView.RestoreLayoutFromXml(Application.StartupPath + "\\Layouts\\" + myLayout + ".XML", DevExpress.Utils.OptionsLayoutGrid.FullLayout);
        }
        private void EliminarItem(MesasAbiertasPlato ultimo)
        {
            if (ultimo == null)
            {
                return;
            }
            if (ultimo.IdMesaAbiertaPlato == null)
            {
                mesaAbiertaPlatos.Remove(ultimo);
                this.mesasAbiertasPlatoBindingSource.DataSource = mesaAbiertaPlatos;
                this.mesasAbiertasPlatoBindingSource.ResetBindings(true);
                return;
            }
            // FrmAnulacionDePlato f = new FrmAnulacionDePlato();
            MesasAbiertasPlatosAnulado item = new MesasAbiertasPlatosAnulado();

            item.Cajero    = FactoryUsuarios.UsuarioActivo.Nombre;
            item.IdCajero  = FactoryUsuarios.UsuarioActivo.IdUsuario;
            item.Cantidad  = ultimo.Cantidad;
            item.Fecha     = DateTime.Today;
            item.IdPlato   = ultimo.Idplato;
            item.Numero    = mesaAbierta.Numero;
            item.Plato     = ultimo.Descripcion;
            item.Precio    = ultimo.Precio;
            item.PrecioIva = ultimo.PrecioConIva;
            item.Total     = ultimo.Total;
            // f.platoAnulado = item;
            // f.ShowDialog();
            // if(f.DialogResult!= System.Windows.Forms.DialogResult.OK)
            // {
            //     return;
            // }
            using (var db = new VeneciaEntities())
            {
                item.Mesa     = mesaAbierta.Mesa;
                item.Mesonero = mesaAbierta.Mesonero;

                //    Basicas.ImprimirAnulacion(item);
                item.IdPlatoEliminado = FactoryContadores.GetMax("IdPlatoEliminado");
                db.MesasAbiertasPlatosAnulados.Add(item);
                db.SaveChanges();
                MesasAbiertasPlato ItemaElminar = (from x in db.MesasAbiertasPlatos
                                                   where x.IdMesaAbiertaPlato == ultimo.IdMesaAbiertaPlato
                                                   select x).FirstOrDefault();
                if (ItemaElminar != null)
                {
                    db.MesasAbiertasPlatos.Remove(ItemaElminar);
                }
                db.SaveChanges();
            }
            mesaAbiertaPlatos.Remove(ultimo);
            mesaAbierta.Totalizar(mesa.CobraServicio.GetValueOrDefault(false), mesaAbiertaPlatos, mesa.Descuento);
            Guardar();
        }
        /*
         * void MesaTextEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
         * {
         *  FrmBuscarEntidades f = new FrmBuscarEntidades();
         *  f.BuscarMesasDisponibles("");
         *  if (f.registro != null)
         *  {
         *      Mesa item = (Mesa)f.registro;
         *      mesaAbierta.IdMesa = item.IdMesa;
         *      mesaAbierta.Mesa = item.Descripcion;
         *  }
         * }*/
        void MesaTextEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            MesasAbierta       nuevaMesa = new MesasAbierta();
            FrmBuscarEntidades f         = new FrmBuscarEntidades();

            f.BuscarMesas("");
            Mesa item = (Mesa)f.registro;

            if (item != null)
            {
                VeneciaEntities newdb = new VeneciaEntities();
                nuevaMesa = newdb.MesasAbiertas.FirstOrDefault(x => x.IdMesa == item.IdMesa);
                if (nuevaMesa == null)
                {
                    mesaAbierta.IdMesa = item.IdMesa;
                    mesaAbierta.Mesa   = item.Descripcion;
                    return;
                }
                if (MessageBox.Show("Mesa ocupada desea unirlas ?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                {
                    return;
                }
                var q = from p in newdb.MesasAbiertasPlatos
                        where p.IdMesaAbierta == nuevaMesa.IdMesaAbierta
                        select p;
                List <MesasAbiertasPlato> nuevaMesaPlatos = q.ToList();
                foreach (var x in mesaAbiertaPlatos)
                {
                    x.IdMesaAbierta = nuevaMesa.IdMesaAbierta;
                }
                try
                {
                    db.MesasAbiertas.Remove(mesaAbierta);
                }
                catch { }
                //db.MesasAbiertas.Add(nuevaMesa);
                try
                {
                    db.SaveChanges();
                    mesaAbiertaPlatos = newdb.MesasAbiertasPlatos.Where(x => x.IdMesaAbierta == nuevaMesa.IdMesaAbierta).ToList();
                    nuevaMesa.Totalizar(mesa.CobraServicio.GetValueOrDefault(true), mesaAbiertaPlatos.ToList(), 0);
                    newdb.SaveChanges();
                    this.Close();
                }
                catch (Exception x)
                {
                    Basicas.ManejarError(x);
                }
            }
        }
 private void EliminarMesaAbierta(MesasAbierta mesaAbierta)
 {
     if (mesaAbierta.IdMesaAbierta == null)
     {
         return;
     }
     using (var db = new VeneciaEntities())
     {
         try
         {
             MesasAbierta m = (from x in db.MesasAbiertas
                               where x.IdMesaAbierta == mesaAbierta.IdMesaAbierta
                               select x).FirstOrDefault();
             db.MesasAbiertas.Remove(m);
             db.SaveChanges();
         }
         catch (Exception x)
         {
             MessageBox.Show(x.Message);
         }
     }
 }
        private void GuardarFactura()
        {
            using (var db = new VeneciaEntities())
            {
                cliente = FactoryClientes.Item(db, factura.CedulaRif);
                if (cliente == null)
                {
                    cliente             = new Cliente();
                    cliente.IdCliente   = FactoryContadores.GetMax("idcliente");
                    cliente.CedulaRif   = factura.CedulaRif;
                    cliente.RazonSocial = factura.RazonSocial;
                    cliente.Direccion   = factura.Direccion;
                    db.Clientes.Add(cliente);
                }
                else
                {
                    cliente.CedulaRif   = factura.CedulaRif;
                    cliente.RazonSocial = factura.RazonSocial;
                    cliente.Direccion   = factura.Direccion;
                }
                if (factura.IdFactura == null)
                {
                    esNuevo           = true;
                    factura.IdFactura = FactoryContadores.GetMax("IdFactura");
                }
                foreach (FacturasPlato p in factura.FacturasPlatos)
                {
                    if (p.IdFacturaPlato == null)
                    {
                        p.IdFacturaPlato = FactoryContadores.GetMax("IdFacturaPlato");
                    }
                }
                if (esNuevo)
                {
                    factura.Anulado          = false;
                    factura.Inventarios      = false;
                    factura.LibroVentas      = false;
                    factura.LibroInventarios = false;
                    db.Facturas.Add(factura);
                }
                try
                {
                    db.SaveChanges();

                    /*
                     * FactoryFacturas.DescontarInventario(factura);
                     * if (factura.Credito.GetValueOrDefault(0) > 0)
                     * {
                     *  FactoryCxC.CrearCxC(factura);
                     * }*/
                }
                catch (Exception x)
                {
                    if (x.InnerException != null)
                    {
                        MessageBox.Show(x.InnerException.Message);
                    }
                    else
                    {
                        MessageBox.Show(x.Message);
                    }
                }
            }
        }