private void BtnFacturar_Click(object sender, EventArgs e) { if (_cliente == null) { _messageBoxDisplayService.ShowError(Resources.ErrorMessageSeleccionarCliente); return; } if (!UcTitulosVenta.Titulos.Any()) { _messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros); return; } if (!UcTotalesVenta.Validar()) { return; } if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente && UcTotalesVenta.SubTotal.Value <= UcTotalesVenta.Descuento.GetValueOrDefault()) { _messageBoxDisplayService.ShowError("El descuento no puede superar al importe total de la venta"); return; } if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente && UcCuentaCorrienteInfo.Cuotas == null) { _messageBoxDisplayService.ShowError("Debe indicar la cantidad de cuotas del plan"); return; } if (UcTitulosVenta.Titulos.Count > Context.SucursalActual.MaximoNroLineasPorVenta) { _messageBoxDisplayService.ShowError("Se ha superado el límite máximo de líneas por venta."); return; } //Ahora calculo el porcentaje de descuento para ver si no supera el maximo permitido //var porcentaje = (UcTotalesVenta.Descuento.GetValueOrDefault() * 100) / UcTotalesVenta.SubTotal.Value; var porcentaje = UcTotalesVenta.Descuento.GetValueOrDefault(); var porcentajeNoAutorizado = porcentaje > Context.SucursalActual.MaximoPorcentajeDescuento; var importeNoAutorizado = UcTotalesVenta.SubTotal.Value >= Context.SucursalActual.MaximoImporteVenta; if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.Contado) importeNoAutorizado = false; if (porcentajeNoAutorizado || importeNoAutorizado) { var operador = this.ObtenerOperadorAdministrador(); if (operador == null) { return; } } //Vuelto if (ChkVuelto.IsChecked && UcTotalesVenta.HayPagoEnEfectivo) { using (var frmVuelto = new FrmVuelto()) { frmVuelto.APagar = UcTotalesVenta.TotalEnEfectivo; frmVuelto.Paga = UcTotalesVenta.TotalEnEfectivo; frmVuelto.ShowDialog(); } } RealizarVenta(); }
private void BtnFacturar_Click(object sender, EventArgs e) { if (_cliente == null) { _messageBoxDisplayService.ShowError(Resources.ErrorMessageSeleccionarCliente); return; } if (!UcTitulosVenta.Titulos.Any()) { _messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros); return; } if (!UcTotalesVenta.Validar()) { return; } if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente && UcTotalesVenta.SubTotal.Value <= UcTotalesVenta.Descuento.GetValueOrDefault()) { _messageBoxDisplayService.ShowError("El descuento no puede superar al importe total de la venta"); return; } if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente && UcCuentaCorrienteInfo.Cuotas == null) { _messageBoxDisplayService.ShowError("Debe indicar la cantidad de cuotas del plan"); return; } if (UcTitulosVenta.Titulos.Count > Context.SucursalActual.MaximoNroLineasPorVenta) { _messageBoxDisplayService.ShowError("Se ha superado el límite máximo de líneas por venta."); return; } //Ahora calculo el porcentaje de descuento para ver si no supera el maximo permitido //var porcentaje = (UcTotalesVenta.Descuento.GetValueOrDefault() * 100) / UcTotalesVenta.SubTotal.Value; var porcentaje = UcTotalesVenta.Descuento.GetValueOrDefault(); var porcentajeNoAutorizado = porcentaje > Context.SucursalActual.MaximoPorcentajeDescuento; var importeNoAutorizado = UcTotalesVenta.SubTotal.Value >= Context.SucursalActual.MaximoImporteVenta; if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.Contado) { importeNoAutorizado = false; } if (porcentajeNoAutorizado || importeNoAutorizado) { var operador = this.ObtenerOperadorAdministrador(); if (operador == null) { return; } } //Vuelto if (ChkVuelto.IsChecked && UcTotalesVenta.HayPagoEnEfectivo) { using (var frmVuelto = new FrmVuelto()) { frmVuelto.APagar = UcTotalesVenta.TotalEnEfectivo; frmVuelto.Paga = UcTotalesVenta.TotalEnEfectivo; frmVuelto.ShowDialog(); } } RealizarVenta(); }
private void BtnRendirConsignacion_Click(object sender, EventArgs e) { if (UcTitulosConsignacionVenta.Titulos.Sum(t => t.CntARendir) == 0 && UcTitulosConsignacionVenta.Titulos.Sum(t => t.CntADevolver) == 0) { _messageBoxDisplayService.ShowError("Debe seleccionar libros a facturar"); return; } if (_cliente == null) { _messageBoxDisplayService.ShowError(Resources.ErrorMessageSeleccionarCliente); return; } if (!UcTitulosConsignacionVenta.Titulos.Any()) { _messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros); return; } if (!UcTotalesVenta.Validar()) { return; } if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente && UcTotalesVenta.SubTotal.HasValue && UcTotalesVenta.SubTotal.Value > 0 && UcTotalesVenta.SubTotal.Value <= UcTotalesVenta.Descuento.GetValueOrDefault()) { _messageBoxDisplayService.ShowError("El descuento no puede superar al importe total de la venta"); return; } if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente && UcCuentaCorrienteInfo.Cuotas == null) { _messageBoxDisplayService.ShowError("Debe indicar la cantidad de cuotas del plan"); return; } if (UcTitulosConsignacionVenta.Titulos.Count > Context.SucursalActual.MaximoNroLineasPorVenta) { _messageBoxDisplayService.ShowError("Se ha superado el límite máximo de líneas por venta."); return; } //Ahora calculo el porcentaje de descuento para ver si no supera el maximo permitido //var porcentaje = (UcTotalesVenta.Descuento.GetValueOrDefault() * 100) / UcTotalesVenta.SubTotal.Value; var porcentaje = UcTotalesVenta.Descuento.GetValueOrDefault(); var porcentajeNoAutorizado = porcentaje > Context.SucursalActual.MaximoPorcentajeDescuento; var importeNoAutorizado = UcTotalesVenta.SubTotal.Value >= Context.SucursalActual.MaximoImporteVenta; if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.Contado) importeNoAutorizado = false; if (porcentajeNoAutorizado || importeNoAutorizado) { using (var login = FormFactory.Create<FrmLogin>()) { login.RolesAceptados = new List<string>() { "Admin", "SuperAdmin" }; login.CambiarIdentity = false; if (login.ShowDialog() != DialogResult.OK) { //_messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros); return; } } } //Vuelto if (ChkVuelto.IsChecked) { decimal? efectivo = 0; foreach (VentaPago pago in this.UcTotalesVenta.Pagos) { if (pago.TipoPago == FormaPago.Efectivo) efectivo = pago.Importe; } using (var frmVuelto = new FrmVuelto()) { frmVuelto.APagar = efectivo; frmVuelto.Paga = efectivo; frmVuelto.ShowDialog(); } } RealizarVenta(); }