private bool RegistrarListadoArticulos() { if (!VerificarDatosObligatorios()) { MessageBox.Show(@"Por favor ingrese los campos Obligatorios.", @"Atención", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } ///////////////// ///COMPROBANTE/// ///////////////// /// long clienteId = _clienteServicio.ObtenerClientePorDni("99999999").Id; long proveedorId = _proveedorServicio.ObtenerRazonSocial(txtRazonSocial.Text).Id; ComprobanteCompraDTO comprobante = new ComprobanteCompraDTO { Fecha = DateTime.Now, ProveedorId = proveedorId, UsuarioId = DatosSistema.UsuarioId, ClienteId = clienteId, Descuento = nudDescuento.Value, Items = detalles.Values.ToList() }; long comprobante_id; comprobante_id = _comprobanteServicio.GenerarComprobanteCompra(comprobante); DetalleCajaDTO detalleCaja = new DetalleCajaDTO { CajaId = DatosSistema.CajaId, Monto = comprobante.Total, TipoPago = TipoPago.Efectivo }; _detalleCajaServicio.Generar(detalleCaja); ////////////// //Movimiento// ////////////// MovimientoDTO movimiento = new MovimientoDTO { CajaID = DatosSistema.CajaId, ComprobanteID = comprobante_id, Tipo = TipoMovimiento.Egreso, UsuarioID = DatosSistema.UsuarioId, Monto = comprobante.Total, Fecha = DateTime.Now, }; _movimientoServicio.GenerarMovimiento(movimiento); Close(); return(true); }
private void cerrarLaMesa(long mesaId, int numeroMesa) { bool desea_imprimir = true; if (rdbCheque.Checked) { _tfPAgo = TipoFormaPago.Cheque; } if (rdbEfectivo.Checked) { _tfPAgo = TipoFormaPago.Efectivo; _tPago = TipoPago.Efectivo; } if (rdbTarjeta.Checked) { _tfPAgo = TipoFormaPago.Tarjeta; _tPago = TipoPago.Tarjeta; } if (rdbCtaCte.Checked) { _tfPAgo = TipoFormaPago.CuentaCorriente; _tPago = TipoPago.CtaCte; } var comprobanteMesaDto = _comprobanteSalonServicio.Obtener(mesaId); if (nudTotal.Value > 0) { if (_tfPAgo == TipoFormaPago.CuentaCorriente) { bool puede_continuar = _clienteServicio.DescontarDeCuenta(idCliente, comprobanteMesaDto.Total); if (!puede_continuar) { MessageBox.Show("La cuenta del cliente no tiene suficiente saldo"); return; } } else { if (_tfPAgo == TipoFormaPago.Cheque) { FormaPagoChequeDTO fp = new FormaPagoChequeDTO { TipoFormaPago = TipoFormaPago.Cheque, Monto = nudTotal.Value, ComprobanteId = idComprobante, BancoId = ((BancoDTO)cbBanco.SelectedItem).Id, Dias = (int)nudDiasCheque.Value, EnteEmisor = txtEnteCheque.Text, FechaEmision = dtFechaCheque.Value, Numero = txtNumeroCheque.Text, }; _formaPagoServicio.Generar(fp); } else { if (_tfPAgo == TipoFormaPago.Tarjeta) { FormaPagoTarjetaDTO fp = new FormaPagoTarjetaDTO { TipoFormaPago = TipoFormaPago.Tarjeta, Monto = nudTotal.Value, ComprobanteId = idComprobante, Numero = txtNumeroTarjeta.Text, Cupon = "", // PlanTarjetaId = ((PlanTarjetaDTO)cbPlan.SelectedItem).Id, NumeroTarjeta = txtClaveTarjeta.Text }; _formaPagoServicio.Generar(fp); } } } _comprobanteSalonServicio.FacturarComprobanteSalon(mesaId, comprobanteMesaDto); MovimientoDTO movimiento = new MovimientoDTO { CajaID = DatosSistema.CajaId, ComprobanteID = comprobanteMesaDto.ComprobanteId, Tipo = TipoMovimiento.Ingreso, UsuarioID = DatosSistema.UsuarioId, Monto = nudTotal.Value, Fecha = DateTime.Now, }; _movimientoServicio.GenerarMovimiento(movimiento); DetalleCajaDTO detalleCaja = new DetalleCajaDTO { CajaId = DatosSistema.CajaId, Monto = nudTotal.Value, TipoPago = _tPago }; _detalleCajaServicio.Generar(detalleCaja); } else { _comprobanteSalonServicio.Eliminar(comprobanteMesaDto.ComprobanteId); desea_imprimir = false; } var mesaParaCerrar = _mesaServicio.ObtenerPorId(mesaId); mesaParaCerrar.estadoMesa = EstadoMesa.Cerrada; _mesaServicio.Modificar(mesaParaCerrar); if (desea_imprimir) { const string message = "Desea imprimir/ver comprobante?"; const string caption = "Comprobante"; var result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { var f = new FormularioComprobante(comprobanteMesaDto.ComprobanteId); f.ShowDialog(); } } this.Close(); }
private long?Facturar() { if (!VerificarDatosObligatorios()) { MessageBox.Show("Error, complete los datos", "Error"); return(null); } if (rbCtaCte.Checked) { bool puede_continuar = _clienteServicio.DescontarDeCuenta(idCliente, nudTotal.Value); if (!puede_continuar) { MessageBox.Show("La cuenta del cliente no tiene suficiente saldo", "Adverencia"); return(null); } } ///////////////// ///COMPROBANTE/// ///////////////// ComprobanteDTO comprobante = new ComprobanteDTO { Fecha = DateTime.Now, UsuarioId = DatosSistema.UsuarioId, ClienteId = rbCtaCte.Checked ? idCliente : consumidorFinalId, Descuento = nudDescuento.Value, Items = detalles.Values.ToList() }; long comprobante_id; if (delivery) { comprobante_id = _comprobanteServicio.GenerarComprobanteDelivery(comprobante); } else { comprobante_id = _comprobanteServicio.Generar(comprobante); } //////////////// //Detalle Caja// //////////////// var formaDePago = TipoPago.Efectivo; if (rbCtaCte.Checked) { formaDePago = TipoPago.CtaCte; } if (rbTarjeta.Checked) { formaDePago = TipoPago.Tarjeta; } //Tipo pago propiedad de detalle caja no tiene cheque //asi que si es cheque no generamos detalle caja if (!rbCheque.Checked) { DetalleCajaDTO detalleCaja = new DetalleCajaDTO { CajaId = DatosSistema.CajaId, Monto = comprobante.Total, TipoPago = formaDePago }; _detalleCajaServicio.Generar(detalleCaja); } //////////////// ///FORMA PAGO/// //////////////// if (rbEfectivo.Checked) { FormaPagoEfectivoDTO fp = new FormaPagoEfectivoDTO { TipoFormaPago = TipoFormaPago.Efectivo, Monto = nudTotal.Value, ComprobanteId = comprobante_id, }; _formaPagoServicio.Generar(fp); } if (rbCtaCte.Checked) { //parte descontar cuenta ya está al principio FormaPagoCtaCteDTO fp = new FormaPagoCtaCteDTO { TipoFormaPago = TipoFormaPago.CuentaCorriente, Monto = nudTotal.Value, ComprobanteId = comprobante_id, ClienteId = idCliente, }; _formaPagoServicio.Generar(fp); } if (rbCheque.Checked) { FormaPagoChequeDTO fp = new FormaPagoChequeDTO { TipoFormaPago = TipoFormaPago.Cheque, Monto = nudTotal.Value, ComprobanteId = comprobante_id, BancoId = ((BancoDTO)cbBanco.SelectedItem).Id, Dias = (int)nudDiasCheque.Value, EnteEmisor = txtEnteCheque.Text, FechaEmision = dtFechaCheque.Value, Numero = txtNumeroCheque.Text, }; _formaPagoServicio.Generar(fp); } if (rbTarjeta.Checked) { FormaPagoTarjetaDTO fp = new FormaPagoTarjetaDTO { TipoFormaPago = TipoFormaPago.Tarjeta, Monto = nudTotal.Value, ComprobanteId = comprobante_id, Numero = txtNumeroTarjeta.Text, Cupon = "", //TODO ???? PlanTarjetaId = ((PlanTarjetaDTO)cbPlan.SelectedItem).Id, NumeroTarjeta = txtClaveTarjeta.Text }; _formaPagoServicio.Generar(fp); } ////////////// //Movimiento// ////////////// MovimientoDTO movimiento = new MovimientoDTO { CajaID = DatosSistema.CajaId, ComprobanteID = comprobante_id, Tipo = TipoMovimiento.Ingreso, UsuarioID = DatosSistema.UsuarioId, Monto = comprobante.Total, Fecha = DateTime.Now, }; _movimientoServicio.GenerarMovimiento(movimiento); foreach (var d in detalles) { //todo:producto tendria que tener si descuenta stock o no... _articuloServicio.DescontarStock(d.Value.ProductoId, d.Value.CantidadProducto); } MessageBox.Show("Factura exitosa.", delivery ? "Delivery" : "Kiosco"); return((long?)comprobante_id); //Close(); }