コード例 #1
0
        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.Senas = 0;
            //UcTotalesVenta.CreditosDevolucion = 0;
            UcTotalesVenta.SenasDisp = _ventaNegocio.SenaAFavorCliente(_cliente.Id, Context.SucursalActual.Id);
            UcTotalesVenta.CreditosDevolucionDisp = _ventaNegocio.CreditosPorDevolucion(_cliente.Id, Context.SucursalActual.Id);

            // UcTotalesVenta.ActualizarMontosAFavor(UcTotalesVenta.Senas, UcTotalesVenta.CreditosDevolucion);
            UcTotalesVenta.ActualizarMontosAFavor(UcTotalesVenta.SenasDisp, UcTotalesVenta.CreditosDevolucionDisp);
            UcTotalesVenta.Senas = 0;
            UcTotalesVenta.CreditosDevolucion = 0;

            UcBuscadorConsignacion.ActualizarFormaPago(_cliente);
        }
コード例 #2
0
        private void ActualizarTotal()
        {
            var subTotal = UcTitulosConsignacionVenta.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 (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente)
                {
                    UcTotalesVenta.GenerarPagoAutoNuevo(UcTotalesVenta.TotalPagar - UcCuentaCorrienteInfo.Anticipo, FormaPago.CuentaCorriente);
                }
                else
                {
                    UcTotalesVenta.GenerarPagoAutoNuevo(UcTotalesVenta.TotalPagar, FormaPago.Efectivo);
                }
            }
            else
            {
                UcTotalesVenta.Pagos.Clear();
            }
        }
コード例 #3
0
 private void UcTotalesVentaOnFaltaPagarChanged(object sender, decimal?e)
 {
     if (UcTotalesVenta.FaltaPagar != 0)
     {
         UcTotalesVenta.EliminarPagoEfectivo();
         if (UcTotalesVenta.FaltaPagar > 0)
         {
             UcTotalesVenta.GenerarPagoAnticipoNuevo(UcTotalesVenta.FaltaPagar, FormaPago.Efectivo);
         }
     }
 }
コード例 #4
0
 private void UcTitulosVentaOnVentaTitulosChanged(object sender, IList <RemitosVentaDetalleDto> remitoTitulos)
 {
     if (UcTitulosConsignacionVenta.Titulos.Count == 0)
     {
         UcTotalesVenta.LimpiarPagos();
         UcTotalesVenta.SubTotal = 0;
         ActualizarTotal();
     }
     else
     {
         ActualizarTotal();
     }
 }
コード例 #5
0
        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)
            {
                UcBuscadorConsignacion.Foco();
            }
        }
コード例 #6
0
        private void UcBuscadorClienteOnFormaPagoChanged(object sender, FormaPago e)
        {
            UcTotalesVenta.Pagos.Clear();
            UcTotalesVenta.RefrescarPagos();

            if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente)
            {
                RPCtaccte.Visible = true;
                UcCuentaCorrienteInfo.Anticipo = 0;
            }
            else
            {
                RPCtaccte.Visible = false;
            }

            ActualizarTotal();
        }
コード例 #7
0
        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();
        }
コード例 #8
0
 private void UcCuentaCorrienteInfoOnAnticipoChanged(object sender, decimal?e)
 {
     UcTotalesVenta.GenerarPagoAutoNuevo(UcCuentaCorrienteInfo.Adeuda, FormaPago.CuentaCorriente);
 }