public int InsertarVenta(Venta venta)
 {
     if (venta.Cliente==string.Empty)
         throw new ValidationException("Indique el Nombre del cliente");
     if (venta.TotalVenta==0)
         throw new ValidationException("Indique los Articulos a Vender");
     if (venta.TipoVenta=="Apartado" && venta.Enganche==0)
         throw new ValidationException("Indique cuando es el enganche de la venta");
     _entidades.Ventas.InsertOnSubmit(venta);
     _entidades.SubmitChanges();
     return venta.Clave;
 }
		private void detach_Ventas(Venta entity)
		{
			this.SendPropertyChanging();
			entity.Usuario = null;
		}
		private void attach_Ventas(Venta entity)
		{
			this.SendPropertyChanging();
			entity.Usuario = this;
		}
 partial void DeleteVenta(Venta instance);
 partial void UpdateVenta(Venta instance);
 partial void InsertVenta(Venta instance);
        public void Guardar()
        {
            try
            {
                if (!ClsVerificarCaja.CajaEstado())
                {
                    MessageBox.Show("La Caja del Dia de hoy ya se ha cerrado\n SISTEMA BLOQUEADO", "Caja Cerrada",
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Application.Exit();
                }
                if ((int)txtCveVenta.EditValue== 0)
                {
                    Venta entity = new Venta
                    {
                        Cliente = txtCliente.Text,
                        TipoVenta = cboTipoVenta.Text,
                        FechaVenta = Convert.ToDateTime(dtpFechaVenta.EditValue),
                        TotalVenta = Convert.ToDecimal(txtTotalVenta.EditValue),
                        Enganche = Convert.ToDecimal(txtEnganche.EditValue),
                        Saldo = Convert.ToDecimal(txtSaldo.EditValue),
                        Estado = (cboTipoVenta.SelectedIndex == 0) ? "Pagado" : "Apartado",
                        CveUsuario = Convert.ToInt32(new clsModificarConfiguracion().configGetValue("IDUsuarioApp")),
                    };
                    txtCveVenta.EditValue = new LogicaVentas().InsertarVenta(entity);
                    foreach (DataRow t in _dtartic.Rows)
                    {
                        DetalleVenta detVenta = new DetalleVenta
                        {
                            CveVenta = Convert.ToInt32(txtCveVenta.EditValue),
                            CveArticulo = Convert.ToInt32(t["Clave"]),
                            PrecioCompra = Convert.ToDecimal(t["Precio"]),
                        };
                        new LogicaVentas().GuardarDetalleVenta(detVenta,(cboTipoVenta.SelectedIndex == 0) ? "Vendido" : "Apartado");
                    }
                    ImprimirTicketsVenta();
                        // (from vent in base.mapeoCasaEmpenios.BoletasDC select vent.Folio).Max<int>().ToString();
                    new ManejadorControles().DesectivarTextBox(gpoContenedor, true);

                }
                else
                {
                    XtraMessageBox.Show("Ya se ha guardado la Venta solo se puede Imprimir el Ticket ",
                        "Datos Guardados");
                    ImprimirTicketsVenta();
                }
            }
            catch (ValidationException vex)
            {
                XtraMessageBox.Show(vex.Message, "Validación de Datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Validación de Datos");
            }
        }