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(); } }
/// <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); } }