private void Anular()
 {
     if (string.IsNullOrWhiteSpace(txtmotivo.Text))
     {
         MessageBox.Show("Favor de colocar una descripcion del Motivo por el cual se esta Anulando el Recibo.");
         txtmotivo.Focus();
     }
     else if (string.IsNullOrWhiteSpace(txtnumerorecibo.Text))
     {
         MessageBox.Show("Favor de colocar el numero del Recibo Fisico que sera Anulando.");
         txtnumerorecibo.Focus();
     }
     else if (string.IsNullOrWhiteSpace(txtserie.Text))
     {
         MessageBox.Show("Favor de colocar la Serie del Recibo Fisico que sera Anulando.");
         txtserie.Focus();
     }
     else
     {
         REC01_ANULACION objAnulacion = new REC01_ANULACION();
         objAnulacion.RECIBO           = Convert.ToDecimal(txtrecibo.Text);
         objAnulacion.USUARIO_CREACION = txtusuario.Text;
         objAnulacion.MOTIVO           = txtmotivo.Text;
         objAnulacion.RECIBO_FISICO    = Convert.ToDecimal(txtnumerorecibo.Text);
         objAnulacion.SERIE            = txtserie.Text;
         Recibo           objRecibo = new Recibo();
         Mensaje <Recibo> resp      = objRecibo.AnularRecibo(objAnulacion);
         MessageBox.Show(resp.mensaje);
         frmReciboEvento fre = new frmReciboEvento();
         this.Hide();
         fre.ShowDialog();
         this.Close();
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Metodo para Anular recibo
        /// </summary>
        /// <param name="re"></param>
        /// <returns></returns>
        public Mensaje <Recibo> AnularRecibo(REC01_ANULACION re)
        {
            Mensaje <Recibo> result = new Mensaje <Recibo>();

            result.codigo  = 1;
            result.mensaje = "Ocurrio un error en base de datos al tratar de Anular el Recibo";
            result.data    = new Recibo();

            try
            {
                using (var trans = new TransactionScope())
                {
                    using (var db = new EsquemaREC01())
                    {
                        //Se valida que exista el Reicibo
                        REC01_RECIBO validaRecibo = (from r in db.REC01_RECIBO
                                                     where r.RECIBO == re.RECIBO &&
                                                     r.USUARIO_CREACION.ToUpper() == re.USUARIO_CREACION.ToUpper()
                                                     select r).FirstOrDefault();
                        if (validaRecibo == null)
                        {
                            result.codigo  = -1;
                            result.mensaje = "No existe el recibo indicado";
                            return(result);
                        }

                        validaRecibo.ESTADO_REGISTRO      = "N";
                        validaRecibo.USUARIO_MODIFICACION = Global.usuariologueado;
                        validaRecibo.FECHA_MODIFICACION   = DateTime.Now;
                        //Se procede a modificar el estado_registro del Recibo
                        int res = db.SaveChanges();
                        if (res <= 0)
                        {
                            Transaction.Current.Rollback();
                            result.codigo  = 2;
                            result.mensaje = "No fue posible Cambiar el estado del Recibo";
                            return(result);
                        }

                        //Se obtiene el valor del correlativo de la tabla REC01_ANULACION para ser utilizado como identificador de Anulacion
                        var     valAnulado  = (from a in db.REC01_ANULACION select a.ANULACION).ToList();
                        decimal corrAnulado = 0;

                        if (valAnulado.Count > 0)
                        {
                            corrAnulado = valAnulado.Max() + 1;
                        }
                        else
                        {
                            corrAnulado = 1;
                        }

                        REC01_ANULACION nuevaAnulacion = new REC01_ANULACION()
                        {
                            ANULACION         = corrAnulado,
                            RECIBO            = re.RECIBO,
                            USUARIO_CREACION  = re.USUARIO_CREACION,
                            MOTIVO            = re.MOTIVO,
                            RECIBO_FISICO     = re.RECIBO_FISICO,
                            SERIE             = re.SERIE.ToUpper(),
                            ESTADO_REGISTRO   = "A",
                            USUARIO_ANULACION = Global.usuariologueado,
                            FECHA_ANULACION   = DateTime.Now
                        };

                        db.REC01_ANULACION.Add(nuevaAnulacion);
                        res = db.SaveChanges();
                        if (res <= 0)
                        {
                            Transaction.Current.Rollback();
                            result.codigo  = 2;
                            result.mensaje = "No fue posible registrar la Anulacion";
                            return(result);
                        }
                    }
                    trans.Complete();
                    result.codigo  = 0;
                    result.mensaje = "Se Anulo el Recibo de forma Exitosa...!!!";
                    return(result);
                }
            }
            catch (Exception ex)
            {
                result.codigo       = -1;
                result.mensaje      = "Ocurrio una excepcion al tratar de Anular el Recibo, Referencia " + ex.ToString();
                result.mensajeError = ex.ToString();
                return(result);
            }
        }