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); } }