示例#1
0
        public virtual void ConfirmarComprobante(ComprobanteBase comprobante)
        {
            //Validaciones
            if (comprobante.Estado == ComprobanteEstado.Confirmado)
            {
                throw new UserFriendlyException("Comprobante ya confirmado");
            }

            if (comprobante.Estado == ComprobanteEstado.Anulado)
            {
                throw new UserFriendlyException("Comprobante anulado");
            }

            ConfirmarComprobanteValidar(comprobante);

            if (comprobante.Talonario != null)
            {
                comprobante.NumerarAutomatico();
                comprobante.Talonario.UltimoNumero = comprobante.Numero;
            }

            var args = new ComprobanteAutorizandoArgs {
                Autorizado = true, Comprobante = comprobante
            };

            OnComprobanteAutorizando(comprobante, args);

            if (!args.Autorizado)
            {
                return;
            }

            comprobante.Estado = ComprobanteEstado.Confirmado;

            ConfirmarComprobanteAfter(comprobante);
        }
示例#2
0
 protected void OnComprobanteAutorizando(object sender, ComprobanteAutorizandoArgs args)
 {
     ComprobanteAutorizando?.Invoke(sender, args);
 }