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); }
protected void OnComprobanteAutorizando(object sender, ComprobanteAutorizandoArgs args) { ComprobanteAutorizando?.Invoke(sender, args); }