private void BtnCobrar_Click(object sender, EventArgs e) { if (dgvGrilla.DataSource == null) { MessageBox.Show(@"No hay Productos Cargados.", @"Atención", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((TipoFormaPago)cmbFormaPago.SelectedItem == TipoFormaPago.Efectivo) { var ultimoComprobante = _comprobanteKioskoServicio.UltimoComprobanteId(); var caja = _cajaServicio.Obtener(CajaAbiertaId).Id; var ClienteId = _clienteServicio.ObtenerPorDni(txtClienteDni.Text).Id; var fecha = dtpFecha.Value; var comprobante = new ComprobanteKioskoDto { Numero = (int)ultimoComprobante, Fecha = fecha, SubTotal = nudSubTotal.Value, Descuento = nudDescuento.Value, Total = nudTotal.Value, UsuarioId = (long)UsuarioLogueadoId, ClienteId = ClienteId, TipoComprobante = (TipoComprobante)cmbTipoComprobante.SelectedItem, Items = _listaDetalles }; _comprobanteKioskoServicio.GenerarComprobante(comprobante, caja); var traerComprobante = _comprobanteKioskoServicio.traerComprobantePorNumero(comprobante.Numero); var nuevoMovimiento = new MovimientoDto { CajaId = caja, ComprobanteId = traerComprobante.Id, TipoMovimiento = TipoMovimiento.Ingreso, UsuarioId = UsuarioLogueadoId, Monto = nudTotal.Value, Fecha = dtpFecha.Value, Descripcion = "FAC_" + cmbTipoComprobante.Text + "_" + $"{_comprobanteKioskoServicio.UltimoComprobanteId()}" + "_" + DateTime.Now.ToShortDateString().Replace("/", string.Empty) + "_KIOSCO" }; _movimientoServicio.Insertar(nuevoMovimiento); _cajaServicio.RealizarMovimiento(nuevoMovimiento); foreach (var items in _comprobanteKioskoDto.Items) { //descontar stock _articuloServicio.DescontarStock(items.ProductoId, items.Cantidad); } MessageBox.Show("Facturacion Realizada Correctamente", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); LimpiarFormulario(); } }
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); } }