private void btnConfirmar_Click(object sender, EventArgs e) { try { if (nudVuelto.Value > 0) { if (MessageBox.Show("El total que esta por abonar es superior al monto a pagar.Desea continuar ? ", "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; } } else if (nudVuelto.Value < 0) { MessageBox.Show("El total que esta por abonar es inferior al monto a pagar", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } var _facturaNueva = new FacturaDto(); _facturaNueva.VieneVentas = _vieneDeVentas; if (_vieneDeVentas) { _facturaNueva.EmpleadoId = _factura.Vendedor.Id; _facturaNueva.ClienteId = _factura.Cliente.Id; _facturaNueva.TipoComprobante = _factura.TipoComprobante; _facturaNueva.Descuento = _factura.Descuento; _facturaNueva.SubTotal = _factura.SubTotal; _facturaNueva.Total = _factura.Total; _facturaNueva.Estado = Estado.Pagada; _facturaNueva.PuestoTrabajoId = _factura.PuntoVentaId; _facturaNueva.Fecha = DateTime.Now; _facturaNueva.Iva105 = 0; _facturaNueva.Iva21 = 0; _facturaNueva.UsuarioId = _factura.UsuarioId; foreach (var item in _factura.Items) { _facturaNueva.Items.Add(new DetalleComprobanteDto { Cantidad = item.Cantidad, Iva = item.Iva, Descripcion = item.Descripcion, Precio = item.Precio, ArticuloId = item.ArticuloId, Codigo = item.CodigoBarra, SubTotal = item.SubTotal, Eliminado = false, }); } } else { _facturaNueva.Id = _facturaPendiente.Id; _facturaNueva.Estado = Estado.Pendiente; _facturaNueva.VieneVentas = false; _facturaNueva.TipoComprobante = _facturaPendiente.TipoComprobante; _facturaNueva.UsuarioId = Identidad.UsuarioId; _facturaNueva.Fecha = DateTime.Now; _facturaNueva.Total = _facturaPendiente.MontoPagar; } // Formas de Pago if (nudTotalEfectivo.Value > 0) { _facturaNueva.FormasDePagos.Add(new FormaPagoDto { Monto = nudTotalEfectivo.Value, TipoPago = TipoPago.Efectivo, Eliminado = false }); } if (nudTotalTarjeta.Value > 0) { _facturaNueva.FormasDePagos.Add(new FormaPagoTarjetaDto { TipoPago = TipoPago.Tarjeta, CantidadCuotas = (int)nudCantidadCuotas.Value, CuponPago = txtCuponPago.Text, Monto = nudTotalTarjeta.Value, NumeroTarjeta = txtNumeroTarjeta.Text, TarjetaId = (long)cmbTarjeta.SelectedValue, Eliminado = false }); } if (nudTotalCheque.Value > 0) { _facturaNueva.FormasDePagos.Add(new FormaPagoChequeDto { BancoId = (long)cmbBanco.SelectedValue, ClienteId = _factura.Cliente.Id, FechaVencimiento = dtpFechaVencimientoCheque.Value, Monto = nudTotalCheque.Value, Numero = txtNumeroCheque.Text, TipoPago = TipoPago.Cheque, Eliminado = false }); } if (nudTotalCtaCte.Value > 0) { var deuda = _cuentaCorrienteServicio.ObtenerDeudaCliente(_factura.Cliente.Id); if (_vieneDeVentas) { if (_factura.Cliente.ActivarCtaCte) { if (_factura.Cliente.TieneLimiteCompra && _factura.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value) { var menssajeCtaCte = $"El cliente {_factura.Cliente.ApyNom} esta por arriba del limite Permitido." + Environment.NewLine + $" El limite es { _factura.Cliente.MontoMaximoCtaCte.ToString("C")}"; MessageBox.Show(menssajeCtaCte, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } _facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto { TipoPago = TipoPago.CtaCte, ClienteId = _factura.Cliente.Id, Monto = nudTotalCtaCte.Value, Eliminado = false, }); } } else // Si viene de Pendiente { if (_facturaPendiente.Cliente.ActivarCtaCte) { if (_facturaPendiente.Cliente.TieneLimiteCompra && _facturaPendiente.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value) { var menssajeCtaCte = $"El cliente {_facturaPendiente.Cliente.ApyNom} esta por arriba del limite Permitido." + Environment.NewLine + $" El limite es { _facturaPendiente.Cliente.MontoMaximoCtaCte.ToString("C")}"; MessageBox.Show(menssajeCtaCte, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } _facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto { TipoPago = TipoPago.CtaCte, ClienteId = _facturaPendiente.Cliente.Id, Monto = nudTotalCtaCte.Value, Eliminado = false, }); } }//TODO PRE PARCIAL } if (!_vieneDeVentas) { _facturaServicio.Modificar(_facturaNueva); MessageBox.Show("Los datos se grabaron correctamente"); RealizoVenta = true; Close(); } else { _facturaServicio.Insertar(_facturaNueva); MessageBox.Show("Los datos se grabaron correctamente"); RealizoVenta = true; Close(); } } catch (Exception exception) { MessageBox.Show(exception.Message); RealizoVenta = false; } }
private void btnFacturar_Click(object sender, EventArgs e) { _factura.Cliente = _clienteSeleccionado; _factura.Vendedor = _vendedorSeleccionado; _factura.TipoComprobante = (TipoComprobante)cmbTipoComprobante.SelectedItem; _factura.PuntoVentaId = (long)cmbPuestoVenta.SelectedValue; _factura.UsuarioId = Identidad.UsuarioId; if (_configuracion.PuestoCajaSeparado) { try { var nuevoComprobante = new FacturaDto() { EmpleadoId = _factura.Vendedor.Id, ClienteId = _factura.Cliente.Id, TipoComprobante = _factura.TipoComprobante, Descuento = _factura.Descuento, SubTotal = _factura.SubTotal, Fecha = DateTime.Now, Estado = Estado.Pendiente, PuestoTrabajoId = _factura.PuntoVentaId, Iva105 = 0, Iva21 = 0, Total = _factura.Total, UsuarioId = _factura.UsuarioId, VieneVentas = true, Eliminado = false }; foreach (var item in _factura.Items) { nuevoComprobante.Items.Add(new DetalleComprobanteDto { Cantidad = item.Cantidad, Iva = item.Iva, Descripcion = item.Descripcion, Precio = item.Precio, ArticuloId = item.ArticuloId, Codigo = item.CodigoBarra, SubTotal = item.SubTotal, Eliminado = false, }); } _facturaServicio.Insertar(nuevoComprobante); MessageBox.Show("Los datos se grabaron correctamente"); LimpiarParaNuevoFactura(); } catch (DbEntityValidationException ex) { var error = ex.EntityValidationErrors.SelectMany(v => v.ValidationErrors) .Aggregate(string.Empty, (current, validationError) => current + ($"Property: {validationError.PropertyName} Error: {validationError.ErrorMessage}. {Environment.NewLine}" )); throw new Exception($"Ocurrio un error grave al grabar la Factura. Error: {error}"); } } else { var fFormaDePago = new _00044_FormaPago(_factura); fFormaDePago.ShowDialog(); if (fFormaDePago.RealizoVenta) { LimpiarParaNuevoFactura(); txtCodigo.Focus(); } } }
private void btnConfirmar_Click(object sender, EventArgs e) { try { if (nudTotal.Value > _factura.Total) { if (MessageBox.Show("El total que esta por abonar es superior al monto a pagar.Desea continuar ? ", "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; } } else if (nudTotal.Value < _factura.Total) { MessageBox.Show("El total que esta por abonar es inferior al monto a pagar", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } var _facturaNueva = new FacturaDto(); { if (_vieneDeVentas) { _facturaNueva.EmpleadoId = _factura.Vendedor.Id; _facturaNueva.ClienteId = _factura.Cliente.Id; _facturaNueva.TipoComprobante = _factura.TipoComprobante; _facturaNueva.Descuento = _factura.Descuento; _facturaNueva.SubTotal = _factura.SubTotal; _facturaNueva.Total = _factura.Total; _facturaNueva.Estado = Estado.Pagada; _facturaNueva.PuestoTrabajoId = _factura.PuntoVentaId; _facturaNueva.Fecha = DateTime.Now; _facturaNueva.Iva105 = 0; _facturaNueva.Iva21 = 0; _facturaNueva.UsuarioId = _factura.UsuarioId; foreach (var item in _factura.Items) { _facturaNueva.Items.Add(new DetalleComprobanteDto { Cantidad = item.Cantidad, Iva = item.Iva, Descripcion = item.Descripcion, Precio = item.Precio, ArticuloId = item.ArticuloId, Codigo = item.CodigoBarra, SubTotal = item.SubTotal, Eliminado = false, }); } } else { // TODO pendiente de Pago } if (nudTotalEfectivo.Value > 0) { _facturaNueva.FormasDePagos.Add(new FormaPagoDto { Monto = nudTotalEfectivo.Value, TipoPago = TipoPago.Efectivo, Eliminado = false }); } if (nudTotalCtaCte.Value > 0) { if (_vieneDeVentas) { // TODO: Falta ver deuda del Cliente var deuda = 0; if (_factura.Cliente.ActivarCtaCte) { if (_factura.Cliente.TieneLimiteCompra && _factura.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value) { var menssajeCtaCte = $"El cliente {_factura.Cliente.ApyNom} esta por arriba del limite Permitido." + Environment.NewLine + $" El limite es {_factura.Cliente.MontoMaximoCtaCte.ToString("C")}"; MessageBox.Show(menssajeCtaCte, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } _facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto { TipoPago = TipoPago.CtaCte, ClienteId = _factura.Cliente.Id, Monto = nudTotalCtaCte.Value, Eliminado = false, }); } } else { // TODO: Facturas Pendientes de Pago } } _facturaServicio.Insertar(_facturaNueva); MessageBox.Show("Los datos se grabaron correctamente"); RealizoVenta = true; Close(); } } catch (Exception exception) { MessageBox.Show(exception.Message); RealizoVenta = false; } }
private void btnConfirmar_Click(object sender, EventArgs e) { try { if (nudTotal.Value > _factura.Total) { if (MessageBox.Show("El total que esta por abonar es superior al monto a pagar. ¿Desea continuar?", "Atencion", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; } } else if (nudTotal.Value < _factura.Total) { MessageBox.Show("El total que esta por abonar es inferior al monto a pagar.", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } var facturaNueva = new FacturaDto(); if (_vieneDeVentas) { facturaNueva.EmpleadoId = _factura.Vendedor.Id; facturaNueva.ClienteId = _factura.Cliente.Id; facturaNueva.TipoComprobante = _factura.TipoComprobante; facturaNueva.Descuento = _factura.Descuento; facturaNueva.SubTotal = _factura.SubTotal; facturaNueva.Total = _factura.Total; facturaNueva.Estado = Estado.Pagada; facturaNueva.PuestoTrabajoId = _factura.PuntoVentaId; facturaNueva.Fecha = DateTime.Now; facturaNueva.Iva105 = 0; facturaNueva.Iva21 = 0; facturaNueva.UsuarioId = _factura.UsuarioId; foreach (var item in _factura.Items) { facturaNueva.Items.Add(new DetalleComprobanteDto() { Cantidad = item.Cantidad, Iva = item.Iva, Descripcion = item.Descripcion, Precio = item.Precio, ArticuloId = item.ArticuloId, Codigo = item.CodigoBarra, SubTotal = item.SubTotal, Eliminado = false }); } } else { //Pendiente de pago } //FORMAS DE PAGO //EFECTIVO if (nudTotalEfectivo.Value > 0) { facturaNueva.FormasDePagos.Add(new FormaPagoDto() { Monto = nudTotalEfectivo.Value, TipoPago = TipoPago.Efectivo, Eliminado = false }); } //TARJETA if (nudTotalTarjeta.Value > 0) { facturaNueva.FormasDePagos.Add(new FormaPagoTarjetaDto() { NumeroTarjeta = txtNumeroTarjeta.Text, TipoPago = TipoPago.Tarjeta, CantidadCuotas = (int)nudCantidadCuotas.Value, CuponPago = txtCuponPago.Text, Monto = nudTotalTarjeta.Value, TarjetaId = (long)cmbTarjeta.SelectedValue, Eliminado = false }); } //CHEQUE if (nudTotalCheque.Value > 0) { facturaNueva.FormasDePagos.Add(new FormaPagoChequeDto() { BancoId = (long)cmbBanco.SelectedValue, Monto = nudTotalCheque.Value, ClienteId = _factura.Cliente.Id, FechaVencimiento = dtpFechaVencimientoCheque.Value, Numero = txtNumeroCheque.Text, TipoPago = TipoPago.Cheque, Eliminado = false }); } //CTA CTE if (nudTotalCtaCte.Value > 0) { if (_vieneDeVentas) { var deuda = 0; //Corregir if (_factura.Cliente.ActivarCtaCte) { if (_factura.Cliente.TieneLimiteCompra && _factura.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value) { var mensajeCtaCte = $"El cliente {_factura.Cliente.ApyNom} esta exediendo el limite permitido." + Environment.NewLine + $"El limite es {_factura.Cliente.MontoMaximoCtaCte.ToString("C")}"; MessageBox.Show(mensajeCtaCte); } facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto() { TipoPago = TipoPago.CtaCte, ClienteId = _factura.Cliente.Id, Monto = nudTotalCtaCte.Value, Eliminado = false }); } } else // Si viene de Pendiente { } } _facturaServicio.Insertar(facturaNueva); MessageBox.Show("Los datos se grabaron correctamente."); RealizoVenta = true; this.Close(); } catch (Exception exception) { MessageBox.Show(exception.Message); RealizoVenta = false; } }