private void ActualizarCliente(Cliente cliente) { if (!cliente.Activo ?? true) { _messageBoxDisplayService.Show(this, string.Format(Resources.MensajeClienteInactivo, cliente.Denominacion, cliente.Cuit), Resources.LabelVentas); return; } _cliente = cliente; var deudaTotal = _clienteNegocio.DeudaTotal(_cliente.Id, this.Context.SucursalActual.Id); var deudaVencida = _clienteNegocio.DeudaVencida(_cliente.Id, this.Context.SucursalActual.Id); UcClienteDetalle.ActualizarCliente(_cliente, deudaTotal, deudaVencida); UcCuentaCorrienteInfo.ActualizarInfoCuentaCorriente(_cliente); UcTotalesVenta.SenasDisp = _ventaNegocio.SenaAFavorCliente(_cliente.Id, Context.SucursalActual.Id); UcTotalesVenta.CreditosDevolucionDisp = _ventaNegocio.CreditosPorDevolucion(_cliente.Id, Context.SucursalActual.Id); UcTotalesVenta.ActualizarMontosAFavor(UcTotalesVenta.SenasDisp, UcTotalesVenta.CreditosDevolucionDisp); UcTotalesVenta.Senas = 0; UcTotalesVenta.CreditosDevolucion = 0; UcBuscadorCliente.ActualizarFormaPago(_cliente); }
private void ActualizarTotal() { var subTotal = UcTitulosVenta.CalcularSubTotal(); UcTotalesVenta.SubTotal = subTotal; UcTotalesVenta.TotalPagar = UcTotalesVenta.SubTotal.GetValueOrDefault() - UcTotalesVenta.Senas.GetValueOrDefault() - UcTotalesVenta.CreditosDevolucion.GetValueOrDefault(); // UcTotalesVenta.TotalPagar -= UcTotalesVenta.TotalPagar * UcTotalesVenta.Descuento.GetValueOrDefault() / 100; UcTotalesVenta.FaltaPagar = UcTotalesVenta.TotalPagar - UcTotalesVenta.TotalPagos(); if (UcTotalesVenta.TotalPagar > 0) { if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente) { UcTotalesVenta.GenerarPagoAutoNuevo(UcTotalesVenta.TotalPagar - UcCuentaCorrienteInfo.Anticipo, FormaPago.CuentaCorriente); } else { UcTotalesVenta.GenerarPagoAutoNuevo(UcTotalesVenta.TotalPagar, FormaPago.Efectivo); } } else { UcTotalesVenta.Pagos.Clear(); } }
private void UcTotalesVentaOnFaltaPagarChanged(object sender, decimal?e) { if (UcTotalesVenta.FaltaPagar != 0) { UcTotalesVenta.EliminarPagoEfectivo(); if (UcTotalesVenta.FaltaPagar > 0) { UcTotalesVenta.GenerarPagoAnticipoNuevo(UcTotalesVenta.FaltaPagar, FormaPago.Efectivo); } } }
private void UcTitulosVentaOnVentaTitulosChanged(object sender, IList <VentaTitulo> ventaTitulos) { if (UcTitulosVenta.Titulos.Count == 0) { UcTotalesVenta.LimpiarPagos(); UcTotalesVenta.SubTotal = 0; ActualizarTotal(); } else { ActualizarTotal(); } }
private void FrmCrearVenta_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Insert) { UcTitulosVenta.BtnAgregarTitulo_Click(null, null); } if (e.KeyCode == Keys.F9) { UcTotalesVenta.BtnAgregarPago_Click(null, null); } if (e.KeyCode == Keys.F3) { UcBuscadorCliente.Foco(); } }
private void UcBuscadorClienteOnFormaPagoChanged(object sender, FormaPago e) { if (_cliente == null) { return; } UcTotalesVenta.Pagos.Clear(); UcTotalesVenta.RefrescarPagos(); if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente) { RPCtaccte.Visible = true; UcCuentaCorrienteInfo.Anticipo = 0; } else { RPCtaccte.Visible = false; } ActualizarTotal(); }
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 UcCuentaCorrienteInfoOnAnticipoChanged(object sender, decimal?e) { UcTotalesVenta.GenerarPagoAutoNuevo(UcCuentaCorrienteInfo.Adeuda, FormaPago.CuentaCorriente); }