예제 #1
0
        public void JuntarMesas(long primeraMesa, long segundaMesa)
        {
            var mesa1 = _comprobanteSalon.ObtenerComprobantePorMesa(primeraMesa);
            var mesa2 = _comprobanteSalon.ObtenerComprobantePorMesa(segundaMesa);


            foreach (var detalle in mesa1.ComprobanteSalonDetalleDtos)
            {
                var dto = _productoServicio.ObtenerPorId(detalle.ProductoId);

                var id = _listaPrecioProducto.ObtenerListaPorProductoId(dto.Id);

                var producto = _listaPrecioProducto.ObtnerProducto(dto.Codigo.ToString(), id.ListaPrecioId);

                _comprobanteSalon.AgregarItem(mesa2.Id, detalle.Cantidad, producto, id.ListaPrecioId);
                // _comprobanteSalon.SeleccionarMozo(mesa1.Id, empleadoMozo);
            }
            foreach (var detalle in mesa1.ComprobanteSalonDetalleDtos)
            {
                var dto      = _productoServicio.ObtenerPorId(detalle.ProductoId);
                var id       = _listaPrecioProducto.ObtenerListaPorProductoId(dto.Id);
                var producto = _listaPrecioProducto.ObtnerProducto(dto.Codigo.ToString(), id.ListaPrecioId);
                _comprobanteSalon.DisminuirCantidadItem(mesa1.Id, producto, detalle.Cantidad);
            }

            _comprobanteSalon.QuitarComprobante(primeraMesa);
            _mesaServicio.CambiarEstado(_mesa2Id, EstadoMesa.Combinada);
            _mesaServicio.CambiarEstado(_mesa1Id, EstadoMesa.Libre);
            MessageBox.Show(@"Se combino la mesa con exito", @"Advertencia", MessageBoxButtons.OK,
                            MessageBoxIcon.Asterisk);
            this.Close();
        }
예제 #2
0
        private void btnPagar_Click(object sender, EventArgs e)
        {
            var MontoDispinobleCtaCte = _cliente.MontoMaximoCtaCte;

            if (MontoDispinobleCtaCte >= totalAPagar)
            {
                var ctacteId = _CtaCteServicio.ObtenerCuentaCorrientePorClienteId(_cliente.Id).Id;

                _clienteServicio.ModificarMontoCtaCte(totalAPagar, _cliente.Id);

                _facturaServicio.EmitirFactura(_cliente.Id, totalAPagar, _comprobante.MozoId, ctacteId, _comprobante.Id, 0m);

                _comprobanteSalon.Cerrar(_comprobante.Id);

                _mesaServicio.CambiarEstado(_mesaId, EstadoMesa.Facturada);

                _clienteServicio.ClienteDesocupado(_comprobante.ClienteId);

                _clienteServicio.AgregarGastoActual(_cliente.Id, totalAPagar);

                _realizoAlgunaOperacion = true;

                var form = new _104_EmisionFactura_CtaCte(_cliente.Id, _comprobante).ShowDialog();

                Close();
            }

            else
            {
                Mensaje.Mostrar("No se puede emitir la factura por fondos insuficientes de la Cuenta Corriente", Mensaje.Tipo.Stop);

                Close();
            }
        }
예제 #3
0
 private void VerificarReserva()
 {
     if (_comprobante != null)
     {
         Mensaje.Mostrar("Se reservo la mesa", Mensaje.Tipo.Informacion);
         _mesaServicio.CambiarEstado(_id, EstadoMesa.Reservada);
         EstadoMesa = EstadoMesa.Reservada;
     }
 }
예제 #4
0
        private void btnPagar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtEfectivo.Text))
            {
                Mensaje.Mostrar("Ingrese un valor en el campo efectivo.", Mensaje.Tipo.Informacion);

                txtEfectivo.Focus();
            }

            else
            {
                if (decimal.Parse(txtEfectivo.Text) >= totalAPagar)
                {
                    var vuelto = decimal.Parse(txtEfectivo.Text) - totalAPagar;

                    _facturaServicio.EmitirFactura(_comprobante.ClienteId, totalAPagar, _comprobante.MozoId, null, _comprobante.Id, totalAPagar);

                    var facturaId = _facturaServicio.ObtenerUltimaFacturaEmitida().Id;

                    _movimientoServicio.EmitirMovimiento(_comprobante.ClienteId, totalAPagar, TipoMovimiento.Ingreso, facturaId, null);

                    _comprobanteSalon.Cerrar(_comprobante.Id);

                    _mesaServicio.CambiarEstado(_mesaId, EstadoMesa.Facturada);

                    _clienteServicio.ClienteDesocupado(_comprobante.ClienteId);

                    _realizoAlgunaOperacion = true;

                    var form = new _105_EmisionFactura_Efectivo(decimal.Parse(txtEfectivo.Text), vuelto, _comprobante).ShowDialog();

                    Close();
                }

                else
                {
                    Mensaje.Mostrar("No se puede abonar la factura por fondos insuficientes.", Mensaje.Tipo.Stop);

                    txtEfectivo.Clear();
                    txtEfectivo.Focus();
                }
            }
        }
        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);
            }
        }
예제 #6
0
        private void lblNumeroMesa_DoubleClick(object sender, System.EventArgs e)
        {
            switch (_estado)
            {
            case EstadoMesa.Ocupada:

                var comprobante = _comprobanteSalon.ObtenerComprobantePorMesaSinFacturar(_id);

                var cliente = _clienteServicio.obtenerPorId(comprobante.ClienteId);

                Total = comprobante.Total;

                var formulario = new _10002_Venta(_id, cliente, comprobante.MozoId);

                formulario.ShowDialog();

                if (formulario.RealizoAlgunaOperacion)
                {
                    _mesaServicio.CambiarEstado(_id, EstadoMesa.Facturada);
                    EstadoMesa = EstadoMesa.Facturada;
                    Total      = _mesaServicio.ObtenerPorId(_id).Total;
                }

                else
                {
                    var comprobante1 = _comprobanteSalon.ObtenerComprobantePorMesaSinFacturar(_id);

                    var cliente2 = _clienteServicio.obtenerPorId(comprobante.ClienteId);

                    Total = comprobante1.Total;
                }

                break;

            case EstadoMesa.Libre:

                Mensaje.Mostrar("La mesa no esta abierta.", Mensaje.Tipo.Informacion);

                break;

            case EstadoMesa.Reservada:

                Mensaje.Mostrar("La mesa se encuentra reservada pero no abierta.", Mensaje.Tipo.Informacion);

                break;

            case EstadoMesa.Reparacion:

                Mensaje.Mostrar("La mesa se encuentra en reparacion, no se puede abrir.", Mensaje.Tipo.Informacion);

                break;

            case EstadoMesa.Facturada:

                Mensaje.Mostrar("La mesa ya ha sido facturada, cerrarla para poder abrirla.", Mensaje.Tipo.Informacion);

                break;
            }
        }