private async void Crear() { if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado")) { if (Cheque != null) { await Servicios.ApiProcessor.PostApi(Cheque, "Cheque/Cobrar"); var Caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalleCaja = new DetalleCajaDto { CajaId = Caja.Id, Monto = Cheque.Monto, TipoMovimiento = Constantes.TipoMovimiento.Ingreso, TipoPago = Constantes.TipoPago.Cheque }; } else { MessageBox.Show("Por favor seleccione un cheque"); } } else { MessageBox.Show("Por favor abra la caja"); } }
public async Task Insertar(DetalleCajaDto dto) { using (var context = new DataContext()) { var detalleCaja = _mapper.Map <Dominio.Entidades.DetalleCaja>(dto); await _detalleCajaRepositorio.Create(detalleCaja); } }
private void btnCobro_Click(object sender, EventArgs e) { if (cajaServicio.BuscarCajaAbierta() != null) { if (nudCobro.Value > 0) { if (MessageBox.Show("Esta Por Cobrar Un Adelanto, Desea Continuar?", "Adelanto", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { arregloServicio.Cobrar(_ArregloId, nudCobro.Value); //caja var detalle = new DetalleCajaDto { Descripcion = $"{lblCliente.Text} - Cobro Adelanto", Fecha = DateTime.Now.ToLongDateString(), Total = _Debe, CajaId = detalleCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detalleCajaServicio.AgregarDetalleCaja(detalle); cajaServicio.SumarDineroACaja(nudCobro.Value); var venta = new VentaDto { ClienteId = _ArregloDto.ClienteId, Descuento = 0, Fecha = DateTime.Now, Total = nudCobro.Value }; ventaServicio.NuevaVenta(venta); Datos(); //limpieza nudCobro.Value = 0; VerificarSiEstaPagado(); var mensaje = new Afirmacion("Adelanto Cobrado", "Continue Con Las Ventas"); mensaje.ShowDialog(); } return; } else { MessageBox.Show("Error El Valor Tiene Que Ser Mayor a 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("La Caja Esta Cerrada", "Caja Cerrada", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }
private void btnCobro_Click(object sender, EventArgs e) { if (nudCobro.Value > 0) { if (MessageBox.Show("Esta Por Cobrar Un Adelanto, Desea Continuar?", "Adelanto", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var pedido = pedidoServicio.Buscar(PedidoId); //Total Cta Cte var cuentaId = new CtaCteDto(); cuentaId = ctaCteServicio.ObtenerPorIdDePedidosId(pedido.Id); ctaCteServicio.Pagar(nudCobro.Value, pedido.ClienteId, cuentaId.Id); //caja var detalle = new DetalleCajaDto { Descripcion = $"{lblPersona.Text} - Adelanto de Pedido", Fecha = DateTime.Now.ToLongDateString(), Total = nudCobro.Value, CajaId = detalleCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detalleCajaServicio.AgregarDetalleCaja(detalle); cajaServicio.SumarDineroACaja(nudCobro.Value); pedidoServicio.CambiarRamas(nudCobro.Value, PedidoId); var venta = new VentaDto { ClienteId = pedido.ClienteId, Descuento = 0, Fecha = DateTime.Now, Total = nudCobro.Value }; ventaServicio.NuevaVenta(venta); #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var completado = new Afirmacion("Felicidades!", $"Completado \nSe obtuvo de ganancias $ {nudCobro.Value}\nTipo de Pago: {detalle.TipoPago}"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. completado.ShowDialog(); nudCobro.Value = 0; Datos(PedidoId); } } }
public void TipoPago(DetalleCajaDto detalle) { if (ckbNormal.Checked) { detalle.TipoPago = AccesoDatos.TipoPago.Contado; } if (ckbTarjeta.Checked) { detalle.TipoPago = AccesoDatos.TipoPago.Tarjeta; } }
public async Task Modificar(DetalleCajaDto dto) { using (var context = new DataContext()) { var detalleCaja = context.DetalleCajas.FirstOrDefault(x => x.Id == dto.Id); detalleCaja.CajaId = dto.CajaId; detalleCaja.Monto = dto.Monto; detalleCaja.TipoMovimiento = dto.TipoMovimiento; detalleCaja.TipoPago = dto.TipoPago; await _detalleCajaRepositorio.Update(detalleCaja); } }
private async void ExtraerDinero() { if (Extraccion > 0) { if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado")) { var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{Banco.Id}"); Operacion.CuentaCorrienteId = cuentaCorriente.Id; Operacion.FechaVencimiento = Operacion.FechaEmision; Operacion.TipoOperacion = TipoOperacion.Deposito; Operacion.DePara = "Gonelec"; Operacion.Concepto = "Extraccion"; Operacion.Debe = 0; Operacion.Haber = Extraccion; Operacion.Referencia = 0; Operacion.ReferenciaPlus = ""; var deposito = new DepositoDto(); deposito.BancoId = Banco.Id; deposito.Usado = UsadoEn.Banco; deposito.Entrada = false; deposito.DePara = Operacion.DePara; deposito.Concepto = "Extraccion"; deposito.Fecha = (DateTime)Operacion.FechaEmision; deposito.Numero = long.Parse(Operacion.CodigoCausal); deposito.Monto = (decimal)Operacion.Haber; await ApiProcessor.PostApi(deposito, "Deposito/Insert"); await ApiProcessor.PostApi(Operacion, "Operacion/Insert"); Operacion = new OperacionDto(); var Caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalleCaja = new DetalleCajaDto { CajaId = Caja.Id, Monto = Extraccion, TipoMovimiento = Constantes.TipoMovimiento.Ingreso, TipoPago = Constantes.TipoPago.Efectivo }; await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalleCaja, "DetalleCaja/Insert"); MessageBox.Show("Se completo la extraccion!"); Extraccion = 0; Banco = null; } else { MessageBox.Show("Por favor abra la caja"); } } }
private void btnRestar_Click(object sender, EventArgs e) { if (nudCobro.Value > 0) { var pedido = pedidoServicio.Buscar(PedidoId); if (nudCobro.Value > pedido.Adelanto) { MessageBox.Show("No Se Puedo Restar Dinero, Lo Que Quiere Restar Es Mayor Al Adelanto", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (MessageBox.Show("Esta Seguro De Restar Dinero A La Cuenta?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var Resto = nudCobro.Value * -1; //Total Cta Cte var cuentaId = ctaCteServicio.ObtenerPorIdDePedidosId(pedido.Id); ctaCteServicio.SumarLoQueDebe(nudCobro.Value, pedido.ClienteId, cuentaId.Id); //caja var detalle = new DetalleCajaDto { Descripcion = $"{lblPersona.Text} - Dinero Devuelto", Fecha = DateTime.Now.ToLongDateString(), Total = Resto, CajaId = detalleCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detalleCajaServicio.AgregarDetalleCaja(detalle); cajaServicio.RestarDineroDeCaja(nudCobro.Value); pedidoServicio.RestarAdelanto(nudCobro.Value, PedidoId); MessageBox.Show("Dinero Regresado Al Cliente...", "Devuelto", MessageBoxButtons.OK, MessageBoxIcon.Information); nudCobro.Value = 0; Datos(PedidoId); } } }
public void InsertarDetalle(DetalleCajaDto dto) { using (var context = new ModeloXCommerceContainer()) { var nuevoDetalle = new DetalleCaja(); nuevoDetalle.Id = dto.Id; nuevoDetalle.CajaId = dto.CajaId; nuevoDetalle.Monto = dto.Monto; nuevoDetalle.TipoPago = dto.FormaPago; context.DetalleCajas.Add(nuevoDetalle); context.SaveChanges(); } }
private async void CobrarEfec() { if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado")) { if (ComprobanteEntrada.Monto > 0 && ComprobanteEntrada.TipoComprobanteEntrada > 0) { ComprobanteEntrada.Fecha = Fecha; ComprobanteEntrada.UsuarioId = UsuarioGral.UsuarioId; ComprobanteEntrada.Usado = UsadoEn.Venta; await ApiProcessor.PostApi <ComprobanteEntradaDto>(ComprobanteEntrada, "ComprobanteEntrada/Insert"); var Caja = await ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalleCaja = new DetalleCajaDto { CajaId = Caja.Id, Monto = ComprobanteEntrada.Monto, TipoMovimiento = TipoMovimiento.Ingreso, TipoPago = TipoPago.Efectivo }; await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalleCaja, "DetalleCaja/Insert"); ComprobanteEntrada = new ComprobanteEntradaDto(); Presupuesto.Cobrado += Cobrar; if (Total == Presupuesto.Cobrado) { Presupuesto.EstadoDeCobro = Constantes.EstadoDeCobro.Cobrado; } await ApiProcessor.PutApi(Presupuesto, $"Presupuesto/{Presupuesto.Id}"); Cobrar = 0; if (Presupuesto.EstadoDeCobro == EstadoDeCobro.Cobrado) { await Inicializar(); } Presupuesto = new PresupuestoDto(); Efectivo = false; } else { MessageBox.Show("Faltan datos que rellenar"); } } else { MessageBox.Show("Por favor abra la caja"); } }
private void btnCerrarCaja_Click(object sender, EventArgs e) { if (MessageBox.Show("Esta Seguro de Cerrar Caja?", "Opcion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var caja = new DetalleCajaDto { Fecha = DateTime.Now.ToLongDateString(), Total = _Total }; _cajaServicio.CerrarCaja(caja.Total, caja.Fecha); MessageBox.Show("Caja Cerrada, Exitosamente!", "Caja Cerrar", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } }
public async void CargaComprobante() { if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado")) { ComprobanteSalida.Monto = Subtotal; if (ComprobanteSalida.Monto > 0 && ComprobanteSalida.NumeroComprobante > 0 && ComprobanteSalida.SubRubro != null && ComprobanteSalida.TipoComprobanteSalida > 0) { ComprobanteSalida.UsuarioId = UsuarioGral.UsuarioId; ComprobanteSalida.Interes = Recargos; ComprobanteSalida.Descuento = Descuento; ComprobanteSalida.Retenciones = Retencion; ComprobanteSalida.Percepciones = Percepcion; ComprobanteSalida.Iva = IVA; ComprobanteSalida.SubRubroId = ComprobanteSalida.SubRubro.Id; await ApiProcessor.PostApi <ComprobanteSalidaDto>(ComprobanteSalida, "ComprobanteSalida/Insert"); var Caja = await ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalleCaja = new DetalleCajaDto { CajaId = Caja.Id, Monto = ComprobanteSalida.Monto, TipoMovimiento = Constantes.TipoMovimiento.Egreso, TipoPago = Constantes.TipoPago.Efectivo }; await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalleCaja, "DetalleCaja/Insert"); var diccionario = new Dictionary <string, bool>(); diccionario.Add("ComprobanteSalida", false); eventAggregator.GetEvent <PubSubEvent <bool> >().Publish(true); eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario); ComprobanteSalida = new ComprobanteSalidaDto(); Subtotal = 0; IVA = 0; Recargos = 0; Descuento = 0; Percepcion = 0; Retencion = 0; ActivarSubtotal = true; } else { MessageBox.Show("Faltan datos que rellenar"); } } else { MessageBox.Show("Por favor abra la caja"); } }
public void AgregarDetalleCaja(DetalleCajaDto detalleCajaDto) { using (var context = new KosakoDBEntities()) { var detalleCaja = new AccesoDatos.DetalleCaja { Descripcion = detalleCajaDto.Descripcion, Fecha = detalleCajaDto.Fecha, Total = detalleCajaDto.Total, CajaId = detalleCajaDto.CajaId, TipoPago = detalleCajaDto.TipoPago }; context.DetalleCajas.Add(detalleCaja); context.SaveChanges(); } }
private async void ExtraerDineros() { if (Extraccion > 0) { var caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalle = new DetalleCajaDto() { TipoMovimiento = Constantes.TipoMovimiento.Egreso, Monto = Extraccion, CajaId = caja.Id, TipoPago = Constantes.TipoPago.Efectivo }; await Servicios.ApiProcessor.PostApi(detalle, $"DetalleCaja/Insert"); ExtraccionPopUp = false; } }
private async void DepositarDinero() { if (Deposito > 0) { var caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalle = new DetalleCajaDto() { TipoMovimiento = Constantes.TipoMovimiento.Ingreso, Monto = Deposito, CajaId = caja.Id, TipoPago = Constantes.TipoPago.Efectivo }; await Servicios.ApiProcessor.PostApi(detalle, $"DetalleCaja/Insert"); DepositarPopUp = false; } }
private async void CrearCaja() { DetalleCajaDto detalle; Caja.UsuarioAperturaId = UsuarioGral.UsuarioId; await Servicios.ApiProcessor.PostApi(Caja, "Caja/AbrirCaja"); var caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); detalle = new DetalleCajaDto() { TipoMovimiento = Constantes.TipoMovimiento.Ingreso, Monto = Caja.MontoApertura, CajaId = caja.Id, TipoPago = Constantes.TipoPago.Efectivo }; AbrirCajaPopUp = false; Caja = new CajaDto(); CerrarCajaVisibilidad = Visibility.Visible; AbrirCajaVisibilidad = Visibility.Collapsed; await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalle, $"DetalleCaja/Insert"); }
private void btnTerminar_Click(object sender, EventArgs e) { if (cajaServicio.BuscarCajaAbierta() != null) { if (MessageBox.Show("Esta por Terminar el Pedido, Esta Seguro?", "Preguntar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var pedido = pedidoServicio.Buscar(PedidoId); pedidoServicio.CambiarProcesoRetirado(pedido.Id); pedidoServicio.CambiarFechaRetirado(pedido.Id); producto_Pedido_Servicio.CambiarEstado(pedido.Id); //Total Cta Cte var cuentaId = new CtaCteDto(); if (pedido.ClienteId != 1) { cuentaId = ctaCteServicio.ObtenerPorIdDePedidosId(pedido.Id); ctaCteServicio.Pagar(_Debe, pedido.ClienteId, cuentaId.Id); } //Fin Cta Cte btnTerminar.Visible = false; //caja var detalle = new DetalleCajaDto { Descripcion = $"{lblPersona.Text} - Pedido Terminado", Fecha = DateTime.Now.ToLongDateString(), Total = _Debe, CajaId = detalleCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detalleCajaServicio.AgregarDetalleCaja(detalle); cajaServicio.SumarDineroACaja(_Debe); pedidoServicio.CambiarRamas(_Debe, PedidoId); var venta = new VentaDto { ClienteId = pedido.ClienteId, Descuento = 0, Fecha = DateTime.Now, Total = _Debe }; ventaServicio.NuevaVenta(venta); #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var completado = new Afirmacion("Felicidades!", $"Completado \nse obtuvo de ganancias $ {_Debe}\nTipo de Pago: {detalle.TipoPago}"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. completado.ShowDialog(); Datos(PedidoId); lblVendido.Visible = true; btnAgregarProductos.Visible = false; btnVolverPedidoNoRetirado.Visible = true; btnEliminarPedidoSeleccionado.Visible = false; } } else { MessageBox.Show("la Caja se encuentra cerrada", "Cerrada", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void btnCobrar_Click(object sender, EventArgs e) { if (dgvGrilla.RowCount > 0) { if (ckbTarjeta.Checked == false && ckbPedido.Checked == false && ckbNormal.Checked == false && ckbCtaCte.Checked == false && ckbGuardar.Checked == false) { MessageBox.Show("Seleccione el Tipo de Pago, Tarjeta, Contado, Pedido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (ckbNormal.Checked || ckbTarjeta.Checked) { if (MessageBox.Show("Esta Seguro de Continuar?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { if (ventaDto.ClienteId == 0) { ventaDto.ClienteId = 0; } ventaDto.Fecha = DateTime.Now; ventaDto.Total = _total; var ventaId = ventaServicio.NuevaVenta(ventaDto); string descripcion = string.Empty; foreach (var item in ListaVenta) { var producto = productoServicio.ObtenerPorId(item.Id); var producto_venta = new Producto_Venta_Dto { Cantidad = item.Cantidad, Descripcion = item.Descripcion, Estado = AccesoDatos.EstadoPedido.Terminado, ProductoId = item.Id, Talle = item.Talle, Precio = item.Precio * item.Cantidad, VentaId = ventaId, TalleId = ((TalleDto)cmbTalle.SelectedItem).Id }; // descontar stock productoServicio.BajarStock(producto.Id, item.Cantidad); // descripcion = $"{descripcion} - {producto_venta.Descripcion}"; producto_vent.NuevoProductoVenta(producto_venta); } var detalle = new DetalleCajaDto { Fecha = DateTime.Now.ToLongDateString(), Total = _total, Descripcion = $"Venta {descripcion}", CajaId = detalleCajaServicio.BuscarCajaAbierta(), }; TipoPago(detalle); detalleCajaServicio.AgregarDetalleCaja(detalle); cajaServicio.SumarDineroACaja(_total); //MessageBox.Show("Felicidades, Cobro Aceptado!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information); #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var mensaje = new Afirmacion("Genial", $"Cobro Aceptado!\n\nGanancia: $ {_total}\n{detalle.TipoPago}"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. mensaje.ShowDialog(); foreach (var item in ListaVenta) { item.Precio = item.Cantidad * item.Precio; } if (ckbTicket.Checked) { VerTicket(ListaVenta.ToList()); } //limpiar btnLimpiar.PerformClick(); } } else { if (ckbPedido.Checked) { bool Bandera = false; foreach (var item in ListaVenta) { if (productoServicio.ObtenerPorId(item.ProductoId).Creacion) { Bandera = true; } } if (!Bandera) { if (MessageBox.Show("Esta Por Crear Un Pedido Sin Ninguna Prenda Para Fabricar, Desea Continuar?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } var pedidos = new Pedido.Pedido(ListaVenta, _total, ventaServicio.ObtenerClienteName(ventaDto.ClienteId), _clienteId, txtDescripcion.Text); pedidos.ShowDialog(); if (pedidos.semaforo) { if (ckbTicket.Checked) { VerTicket(ListaVenta.ToList()); } btnLimpiar.PerformClick(); } } if (ckbCtaCte.Checked || ckbGuardar.Checked) { foreach (var item in ListaVenta) { var producto = productoServicio.ObtenerPorId(item.Id); var producto_venta = new Producto_Venta_Dto { Cantidad = item.Cantidad, Descripcion = item.Descripcion, Estado = AccesoDatos.EstadoPedido.Terminado, ProductoId = item.Id, Talle = item.Talle, Precio = item.Precio * item.Cantidad, VentaId = 0, TalleId = ((TalleDto)cmbTalle.SelectedItem).Id }; ListaCtaCte.Add(producto_venta); } var cuenta = new CtaCteClientePedido(_clienteId, _total, ListaCtaCte, ListaVenta); cuenta.ShowDialog(); if (cuenta.semaforo) { if (ckbTicket.Checked) { VerTicket(ListaVenta.ToList()); } btnLimpiar.PerformClick(); } } } } else { MessageBox.Show("Cargue la Grilla", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } btnSeleccionProducto.Select(); }
private void BtnCobrar_Click_1(object sender, EventArgs e) { var _cliente = _clienteServicio.ObtenerPorDni("99999999"); //---------------------------------------------------------// //---------------------------------------------------------// var ObtenerComprobante = _comprobanteSalonServicio.ObtenerComprobantePorId(_comprobanteId); var FacturacionMesa = new ComprobanteCierreDto { Id = ObtenerComprobante.ComprobanteId, MesaId = ObtenerComprobante.MesaId, UsuarioId = UsuarioLogueadoId, ClienteId = _cliente.Id, Descuento = nudDescuento.Value, Fecha = dtpFechaFactura.Value, Numero = (int)nudNumero.Value, TipoDeComprobante = ((TipoComprobante)cmbTipoComprobante.SelectedItem), EstadoComprobante = EstadoComprobanteSalon.Enviado, Total = nudTotal.Value, SubTotal = nudTotal.Value, MozoId = ObtenerComprobante.MozoId, Comensales = ObtenerComprobante.Comensales, }; var Cliente = _clienteServicio.ObtenerPorDni(txtDni.Text); if (Cliente == null) { MessageBox.Show("Por favor seleccione un medio de pago o un cliente valido", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } txtApyNom.Text = Cliente.ApyNom; nudMontoActual.Value = Cliente.MontoMaximoCtaCte; if (nudTotal.Value > 0) { if (RadioCuentaCorriente.Checked) { Cliente.MontoDeudaCtaCte += nudTotal.Value; nudMontoRestar.Value = nudTotal.Value; if (Cliente.MontoDeudaCtaCte <= Cliente.MontoMaximoCtaCte) { RestanteCuentaCorriente.Value = Cliente.MontoMaximoCtaCte - nudTotal.Value; var ClienteModificar = new ClienteDto() { Id = Cliente.Id, MontoDeudaCtaCte = Cliente.MontoDeudaCtaCte, MontoMaximoCtaCte = Cliente.MontoMaximoCtaCte }; _clienteServicio.ModificarCuentaCorriente(ClienteModificar); _comprobanteSalonServicio.GenerarComprobanteCierre(FacturacionMesa); var nuevoMovimiento = new MovimientoDto() { CajaId = CajaAbiertaId, ComprobanteId = FacturacionMesa.Id, TipoMovimiento = TipoMovimiento.Ingreso, UsuarioId = FacturacionMesa.UsuarioId, Monto = FacturacionMesa.Total, Fecha = FacturacionMesa.Fecha, Descripcion = "FAC_" + FacturacionMesa.TipoDeComprobante + "_" + FacturacionMesa.Numero + "_" + FacturacionMesa.Fecha.ToShortDateString().Replace("/", string.Empty) + "_SALON" }; _movimientoServicio.Insertar(nuevoMovimiento); _cajaServicio.ActualizarMontoDelSistema(nuevoMovimiento.Monto, nuevoMovimiento.CajaId); var nuevoDetalle = new DetalleCajaDto() { CajaId = CajaAbiertaId, Monto = FacturacionMesa.Total, FormaPago = TipoPago.CtaCte }; _detalleCajaServicio.InsertarDetalle(nuevoDetalle); MessageBox.Show(@"Operacion realizada con Exito.", @"Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Close(); } else { MessageBox.Show(@"Monto Cuenta Corriente Insuficiente , seleccione otra forma de pago", @"Atención", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { _comprobanteSalonServicio.GenerarComprobanteCierre(FacturacionMesa); var nuevoMovimiento = new MovimientoDto() { CajaId = CajaAbiertaId, ComprobanteId = FacturacionMesa.Id, TipoMovimiento = TipoMovimiento.Ingreso, UsuarioId = FacturacionMesa.UsuarioId, Monto = FacturacionMesa.Total, Fecha = FacturacionMesa.Fecha, Descripcion = "FAC_" + FacturacionMesa.TipoDeComprobante + "_" + FacturacionMesa.Numero + "_" + FacturacionMesa.Fecha.ToShortDateString().Replace("/", string.Empty) + "_SALON" }; _movimientoServicio.Insertar(nuevoMovimiento); _cajaServicio.ActualizarMontoDelSistema(nuevoMovimiento.Monto, nuevoMovimiento.CajaId); var nuevoDetalle = new DetalleCajaDto() { CajaId = CajaAbiertaId, Monto = FacturacionMesa.Total, FormaPago = TipoPago.Efectivo }; _detalleCajaServicio.InsertarDetalle(nuevoDetalle); MessageBox.Show(@"Operacion realizada con Exito.", @"Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); _mesaServicio.CambiarEstado(_mesaId, EstadoMesa.Cerrada); this.Close(); } } else { MessageBox.Show("Por favor ingrese un articulo.", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Error); _mesaServicio.CambiarEstado(_mesaId, EstadoMesa.Abierta); } }
private void btnGuardar_Click(object sender, EventArgs e) { if (VerificarDatosObligatorios()) { if (nudTotal.Value <= 0) { MessageBox.Show("El Total No Puede Ser Cero", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtDescripcion.Text == string.Empty) { MessageBox.Show("Agregue Una Descripcion Para Poder Continuar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (MessageBox.Show("Esta Seguro de Continuar?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var arreglo = new ArregloDto { Adelanto = nudAdelanto.Value, Total = nudTotal.Value, Apellido = txtApellido.Text, Nombre = txtNombre.Text, ClienteId = _ClienteId, Descripcion = txtDescripcion.Text, Estado = AccesoDatos.EstadoArreglo.EnEspera, FechaPedido = DateTime.Now, Horario = cmbHorario.Text, FechaRetirado = null, FechaEntrega = dtpFechaEntrega.Value.Date }; arregloServicio.Insertar(arreglo); var detalle = new DetalleCajaDto { Descripcion = "Arreglo de" + " " + txtApellido.Text + " " + txtNombre.Text, Fecha = DateTime.Now.ToLongDateString(), Total = nudAdelanto.Value, CajaId = detallCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detallCajaServicio.AgregarDetalleCaja(detalle); //dinero a caja cajaServicio.SumarDineroACaja(nudAdelanto.Value); #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var mensaje = new Afirmacion("-- Arreglo Creado --", "Se Guardo Su Arreglo"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. mensaje.ShowDialog(); LimpiarArreglo(); } } else { MessageBox.Show("Verifique Apellido, Titulo, Total: Mayor a 0", "Problemas", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnCargar_Click(object sender, EventArgs e) { if (AsignarControles()) { if (ckbNormal.Checked == false && ckbCtaCte.Checked == false && ckbTarjeta.Checked == false) { MessageBox.Show("Seleccione el Tipo de Pago: Contado, CtaCte, Tarjeta.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (MessageBox.Show("Esta Seguro de Continuar? Puede ser un Cobro para Despues", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var pedido = new PedidoDto { Adelanto = nudAdelanto.Value, Apellido = txtApellido.Text, FechaPedido = DateTime.Now, Nombre = txtNombre.Text, Proceso = AccesoDatos.Proceso.InicioPedido, FechaEntrega = dtpFechaEntrega.Value.Date, Total = _total, ClienteId = ClienteId, Descripcion = txtDescripcion.Text, Horario = cmbHorario.Text, DiasHastaRetiro = null }; var pedidoId = pedidoServicio.NuevoPedido(pedido); ProductoDto producto = new ProductoDto(); string segunda = string.Empty; foreach (var item in ListaVentas) { producto = productoServicio.ObtenerPorId(item.Id); segunda += " " + producto.Descripcion + " "; //stock productoServicio.BajarStock(producto.Id, item.Cantidad); } foreach (var item in ListaVentas) { var aux = new Producto_Pedido_Dto { Cantidad = item.Cantidad, ProductoId = productoServicio.ObtenerPorId(item.Id).Id, Estado = AccesoDatos.EstadoPedido.Esperando, Talle = item.Talle, PedidoId = pedidoId, Descripcion = segunda, TalleId = talleServicio.BuscarNombreDevuelveId(item.Talle), Precio = item.Precio }; var _Id_Pedido = producto_Pedido_Servicio.NuevoProductoPedido(aux); //datos if (productoServicio.ObtenerPorId(item.Id).Creacion) { for (int i = 0; i < item.Cantidad; i++) { var dato = new Producto_Dato_Dto { EstadoPorPedido = AccesoDatos.EstadoPorPedido.EnEspera, Producto_PedidoId = _Id_Pedido }; producto_Dato_Servicio.Insertar(dato); } } } var cuenta = new CtaCteDto { ClienteId = ClienteId, Estado = AccesoDatos.CtaCteEstado.EnEspera, Fecha = dtpFechaEntrega.Value, Total = _total, Debe = _total - nudAdelanto.Value, Descripcion = $"{segunda}", PedidoId = pedidoId }; ctaCteServicio.Agregar(cuenta); var detalle = new DetalleCajaDto { Descripcion = txtApellido.Text + " " + txtNombre.Text + " - " + segunda, Fecha = DateTime.Now.ToLongDateString(), Total = nudAdelanto.Value, CajaId = detallCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detallCajaServicio.AgregarDetalleCaja(detalle); //dinero a caja cajaServicio.SumarDineroACaja(nudAdelanto.Value); // #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var mensaje = new Afirmacion("Agregado a la Cuenta!", $"Dinero Cobrado Por Adelanto $ {nudAdelanto.Value}\nTipo de Pago: {detalle.TipoPago}"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. mensaje.ShowDialog(); if (ckbNormal.Checked || ckbTarjeta.Checked) { if (nudAdelanto.Value == _total) { foreach (var item in ListaVentas) { item.Precio = item.Cantidad * item.Precio; } //ticket var fecha = new FechaDto { Fecha = DateTime.Now.ToShortDateString(), Hora = DateTime.Now.ToShortTimeString() }; var factura = new Comprobante(ListaVentas.ToList(), fecha); factura.ShowDialog(); } } semaforo = true; this.Close(); return; } } else { #pragma warning disable CS0436 // El tipo 'Negativo' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs' está en conflicto con el tipo importado 'Negativo' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs'. var mens = new Negativo("Error", "Apellido y Nombre \nno puede estar vacio"); #pragma warning restore CS0436 // El tipo 'Negativo' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs' está en conflicto con el tipo importado 'Negativo' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Negativo.cs'. mens.ShowDialog(); //MessageBox.Show("El Campo Apellido y Nombre no puede estar vacio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnCobrar_Click(object sender, EventArgs e) { if (_CtaCteId != 0) { if (nudCobro.Value > 0) { if (ckbNormal.Checked == false && ckbTarjeta.Checked == false) { MessageBox.Show("Seleccione Tipo de Pago: Contado o Tarjeta", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (MessageBox.Show("Esta Seguro de Cobrar?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { _ctaCteServicio.Pagar(nudCobro.Value, _ClienteId, _CtaCteId); //Inicio Pedido var ctacte = _ctaCteServicio.ObtenerPorId(_CtaCteId); var pedido = pedidoServicio.BuscarIDPedidos(ctacte.PedidoId); pedidoServicio.CambiarRamas(nudCobro.Value, ctacte.PedidoId); if (pedido.Adelanto == pedido.Total) { pedidoServicio.CambiarProcesoTerminado(pedido.Id); } //caja var detalle = new DetalleCajaDto { Fecha = DateTime.Now.ToLongDateString(), Total = nudCobro.Value, Descripcion = $"Cobro a {_clienteDto.Apellido} {_clienteDto.Nombre}", CajaId = detalleCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detalleCajaServicio.AgregarDetalleCaja(detalle); cajaServicio.SumarDineroACaja(nudCobro.Value); //---// DebeYTotal(_ctaCteServicio.Lista(_ClienteId)); //Fin Pedido #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var mensaje = new Afirmacion("Cobrado", $"Se Le Cobro $ {nudCobro.Value} Exitosamente!\nTipo de Pago: {detalle.TipoPago}"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. mensaje.ShowDialog(); Grilla(); Datos(); nudCobro.Value = 0; //nudCobroMaximo(); } } } }
public async void CargarChequeSalida() { if (ChequeEntrada.Banco != null && ChequeEntrada.Monto > 0 && !string.IsNullOrWhiteSpace(ChequeEntrada.Serie) && (Dia > 0 && Dia < 32) && (Mes > 0 && Mes < 13) && Ano > 1900 && !string.IsNullOrWhiteSpace(ChequeEntrada.EmitidoPor) && ChequeEntrada.Numero > 0) { ChequeEntrada.FechaHasta = new DateTime(Ano, Mes, Dia); ChequeEntrada.BancoId = ChequeEntrada.Banco.Id; await Servicios.ApiProcessor.PostApi(ChequeEntrada, "ChequeEntrada/Insert"); if (ChequeEntrada.Usado != UsadoEn.Caja && ChequeEntrada.Usado != UsadoEn.Proveedor) { var cuentaCorriente = await ApiProcessor.GetApi <CuentaCorrienteDto>($"CuentaCorriente/Banco/{ChequeEntrada.BancoId}"); var op = new OperacionDto { CuentaCorrienteId = cuentaCorriente.Id, Debe = ChequeEntrada.Monto, EstaEnResumen = true, FechaEmision = ChequeEntrada.FechaDesde, TipoOperacion = Constantes.TipoOperacion.Cheque, DePara = ChequeEntrada.EmitidoPor, Descontado = ChequeEntrada.MontoContado, Concepto = ChequeEntrada.Concepto, FechaVencimiento = ChequeEntrada.FechaHasta, CodigoCausal = ChequeEntrada.Serie, Haber = 0, Referencia = ChequeEntrada.Numero, ReferenciaPlus = $"{ChequeEntrada.Numero}" }; await ApiProcessor.PostApi(op, "Operacion/Insert"); } else { if (await Servicios.ApiProcessor.GetApi <bool>("Caja/CajasEstado")) { var Caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta"); var detalleCaja = new DetalleCajaDto { CajaId = Caja.Id, Monto = ChequeEntrada.Monto, TipoMovimiento = Constantes.TipoMovimiento.Ingreso, TipoPago = Constantes.TipoPago.Cheque }; await Servicios.ApiProcessor.PostApi <DetalleCajaDto>(detalleCaja, "DetalleCaja/Insert"); } else { MessageBox.Show("Por favor abra la caja"); } } var diccionario = new Dictionary <string, bool>(); diccionario.Add("ChequeSalida", true); eventAggregator.GetEvent <PubSubEvent <Dictionary <string, bool> > >().Publish(diccionario); ChequeEntrada = new ChequeEntradaDto(); MessageBox.Show("El cheque a sido registrado con exito!"); } else { MessageBox.Show("Faltan datos para realizar la carga!"); } }
private void btnGuardar_Click(object sender, EventArgs e) { if (txtApellido.Text == string.Empty) { MessageBox.Show("Coloque El Nombre o el Apellido", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!ckbTarjeta.Checked && !ckbNormal.Checked) { MessageBox.Show("Seleccione Contado o Tarjeta", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (MessageBox.Show("Seguro de Continuar?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { ventaDto.ClienteId = _Cliente.Id; ventaDto.Fecha = DateTime.Now; ventaDto.Total = nudAdelanto.Value; var ventaId = ventaServicio.NuevaVenta(ventaDto); string descripcion = string.Empty; foreach (var item in ListaVenta) { var producto = productoServicio.ObtenerPorId(item.ProductoId); item.VentaId = ventaId; descripcion += " " + item.Descripcion + " "; // descontar stock productoServicio.BajarStock(producto.Id, item.Cantidad); producto_vent.NuevoProductoVenta(item); } AccesoDatos.Proceso _Proceso; if (_Cliente.Id == 1) { _Proceso = AccesoDatos.Proceso.Guardado; } else { _Proceso = AccesoDatos.Proceso.CtaCte; } var pedido = new PedidoDto { Adelanto = nudAdelanto.Value, Apellido = txtApellido.Text, FechaPedido = DateTime.Now, Nombre = txtNombre.Text, Proceso = _Proceso, FechaEntrega = dtpFechaEntrega.Value, Total = _Total, ClienteId = _Cliente.Id, Descripcion = $"Espera de Pago - {txtApellido.Text} {txtNombre.Text}", Horario = $"Sera Retirado a la {cmbHorario.Text}" }; var pedidoId = pedidoServicio.NuevoPedido(pedido); foreach (var item in ListaVentasDto2) { var aux = new Producto_Pedido_Dto { Cantidad = item.Cantidad, ProductoId = productoServicio.ObtenerPorId(item.Id).Id, Estado = AccesoDatos.EstadoPedido.Esperando, Talle = item.Talle, PedidoId = pedidoId, Descripcion = descripcion, TalleId = talleServicio.BuscarNombreDevuelveId(item.Talle), Precio = item.Precio }; producto_Pedido_Servicio.NuevoProductoPedido(aux); } var cuenta = new CtaCteDto { ClienteId = _Cliente.Id, Estado = AccesoDatos.CtaCteEstado.EnEspera, Fecha = DateTime.Now, Total = _Total, Debe = _Total - nudAdelanto.Value, Descripcion = $"Prenda Guardada", PedidoId = pedidoId }; ctaCteServicio.Agregar(cuenta); var detalle = new DetalleCajaDto { Descripcion = txtApellido.Text + " " + txtNombre.Text, Fecha = DateTime.Now.ToLongDateString(), Total = nudAdelanto.Value, CajaId = detallCajaServicio.BuscarCajaAbierta() }; TipoPago(detalle); detallCajaServicio.AgregarDetalleCaja(detalle); //dinero a caja cajaServicio.SumarDineroACaja(nudAdelanto.Value); // #pragma warning disable CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. var NewPrenda = new Afirmacion("Prenda Guardada", $"A Esperar...\nAdelanto de Cobro: $ {nudAdelanto.Value}\n\nTipo de Pago: {detalle.TipoPago}"); #pragma warning restore CS0436 // El tipo 'Afirmacion' de 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs' está en conflicto con el tipo importado 'Afirmacion' de 'Presentacion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Se usará el tipo definido en 'C:\Users\Pepe\Source\Repos\JoseSabeckis\KosakoJean\Presentacion.Core\Mensaje\Afirmacion.cs'. NewPrenda.ShowDialog(); semaforo = true; this.Close(); } }