Esempio n. 1
0
        public override Lfx.Types.OperationResult Ok()
        {
            if (Lui.LogOn.LogOnData.ValidateAccess(typeof(Lbl.Comprobantes.Recibo), Lbl.Sys.Permisos.Operaciones.Eliminar) == false)
            {
                return(new Lfx.Types.NoAccessOperationResult());
            }

            Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("Una vez anulado, el comprobante deberá ser archivado en todas sus copias y no podrá ser rehabilitado ni reutilizado.", "¿Está seguro de que desea anular el comprobante?");
            Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo;

            if (Pregunta.ShowDialog() == DialogResult.OK)
            {
                int Numero = Lfx.Types.Parsing.ParseInt(EntradaNumero.Text);
                int PV     = Lfx.Types.Parsing.ParseInt(EntradaPV.Text);
                Lbl.Comprobantes.Recibo Rec = null;

                int IdRecibo = 0;
                if (Numero > 0)
                {
                    IdRecibo = this.Connection.FieldInt("SELECT id_recibo FROM recibos WHERE tipo_fac='" + EntradaTipo.TextKey + "' AND pv=" + PV.ToString() + " AND numero=" + Numero.ToString());
                }
                if (IdRecibo != 0)
                {
                    Rec = new Lbl.Comprobantes.Recibo(this.Connection, IdRecibo);
                }

                if (Rec != null && Rec.Existe)
                {
                    IDbTransaction Trans = Rec.Connection.BeginTransaction(IsolationLevel.Serializable);
                    Rec.Anular();
                    Trans.Commit();
                }

                EntradaNumero.Text = "";
                EntradaNumero.Focus();

                return(new Lfx.Types.SuccessOperationResult());
            }
            else
            {
                return(new Lfx.Types.CancelOperationResult());
            }
        }