예제 #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            ENTRADA eNTRADA = db.ENTRADA.Find(id);

            db.ENTRADA.Remove(eNTRADA);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #2
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            ENTRADA eNTRADA = await db.ENTRADA.FindAsync(id);

            db.ENTRADA.Remove(eNTRADA);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #3
0
 public ActionResult Edit([Bind(Include = "cod_entrada,cod_tipo_entrada,valor,data_entrada,observao")] ENTRADA eNTRADA)
 {
     if (ModelState.IsValid)
     {
         db.Entry(eNTRADA).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.cod_tipo_entrada = new SelectList(db.TIPO_ENTRADA, "ID_TIPO_ENTRADA", "TIPO", eNTRADA.cod_tipo_entrada);
     return(View(eNTRADA));
 }
예제 #4
0
        public async Task <ActionResult> Edit([Bind(Include = "id_registro,elemento,cant,fecha,usuario")] ENTRADA eNTRADA)
        {
            if (ModelState.IsValid)
            {
                db.Entry(eNTRADA).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.elemento = new SelectList(db.ELEMENTO, "id_elem", "elem_ref", eNTRADA.elemento);
            ViewBag.usuario  = new SelectList(db.USUARIO, "id_usuario", "usu_nombre", eNTRADA.usuario);
            return(View(eNTRADA));
        }
예제 #5
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ENTRADA eNTRADA = db.ENTRADA.Find(id);

            if (eNTRADA == null)
            {
                return(HttpNotFound());
            }
            return(View(eNTRADA));
        }
예제 #6
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ENTRADA eNTRADA = db.ENTRADA.Find(id);

            if (eNTRADA == null)
            {
                return(HttpNotFound());
            }
            ViewBag.cod_tipo_entrada = new SelectList(db.TIPO_ENTRADA, "ID_TIPO_ENTRADA", "TIPO", eNTRADA.cod_tipo_entrada);
            return(View(eNTRADA));
        }
예제 #7
0
        public async Task <IActionResult> Crear([FromBody] CrearViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var fechaHora = DateTime.Now;

            ENTRADA ingreso = new ENTRADA
            {
                ID_PROVEEDOR      = model.ID_PROVEEDOR,
                ID_USUARIO        = model.ID_USUARIO,
                TIPO_COMPROBANTE  = model.TIPO_COMPROBANTE,
                SERIE_COMPROBANTE = model.SERIE_COMPROBANTE,
                NUM_COMPROBANTE   = model.NUM_COMPROBANTE,
                FECHA_HORA        = fechaHora,
                IMPUESTO          = model.IMPUESTO,
                TOTAL             = model.TOTAL,
                ESTADO            = "Aceptado"
            };


            try
            {
                _context.Entrada.Add(ingreso);
                await _context.SaveChangesAsync();

                var id = ingreso.ID_ENTRADA;
                foreach (var det in model.detalles)
                {
                    DETALLE_ENTRADA detalle = new DETALLE_ENTRADA
                    {
                        ID_INGRESO  = id,
                        ID_ARTICULO = det.ID_ARTICULO,
                        CANTIDAD    = det.CANTIDAD,
                        PRECIO      = det.PRECIO
                    };
                    _context.detalle.Add(detalle);
                }
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }

            return(Ok());
        }
예제 #8
0
        // GET: ENTRADAS/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (Session["User"] != null)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                ENTRADA eNTRADA = await db.ENTRADA.FindAsync(id);

                if (eNTRADA == null)
                {
                    return(HttpNotFound());
                }
                return(View(eNTRADA));
            }
            return(RedirectToAction("index", "Home"));
        }
        protected string Borrar(string strID)
        {
            string sResul = "";
            string strId  = "";

            try
            {
                oConn = GESTAR.Capa_Negocio.Conexion.Abrir();
                tr    = GESTAR.Capa_Negocio.Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    GESTAR.Capa_Negocio.Conexion.Cerrar(oConn);
                }
                sResul = "N@@" + Errores.mostrarError("Error al abrir la conexión", ex);
                return(sResul);
            }

            try
            {
                string[] aID = Regex.Split(strID, ",");

                for (int j = 0; j < aID.Length; j++)
                {
                    strId = aID[j];
                    ENTRADA.Delete(tr, short.Parse(aID[j]));
                }

                GESTAR.Capa_Negocio.Conexion.CommitTransaccion(tr);
                sResul = "";
            }
            catch (Exception ex)
            {
                GESTAR.Capa_Negocio.Conexion.CerrarTransaccion(tr);
                sResul = "N@@" + Errores.mostrarError("Error al borrar la entrada " + strId, ex);
            }
            finally
            {
                GESTAR.Capa_Negocio.Conexion.Cerrar(oConn);
            }
            return(sResul);
        }
예제 #10
0
        // GET: ENTRADAS/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (Session["User"] != null)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                ENTRADA eNTRADA = await db.ENTRADA.FindAsync(id);

                if (eNTRADA == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.elemento = new SelectList(db.ELEMENTO, "id_elem", "elem_ref", eNTRADA.elemento);
                ViewBag.usuario  = new SelectList(db.USUARIO, "id_usuario", "usu_nombre", eNTRADA.usuario);
                return(View(eNTRADA));
            }
            return(RedirectToAction("index", "Home"));
        }
        private string ObtenerEntradas(int intIdArea, byte intOrden, byte intAscDesc)
        {
            //Catalogo(Nullable<string> T074_DENOMINACION, Nullable<short> T075_ORIGEN, Nullable<int> T042_IDAREA, Nullable<int> T074_CREADOR, byte nOrden, byte nAscDesc)
            dr = null;
            dr = ENTRADA.Catalogo(intIdArea, intOrden, intAscDesc);

            int i = 0;

            System.Text.StringBuilder strBuilderCatalogo = new System.Text.StringBuilder();

            strBuilderCatalogo.Append("<table id='tblCatalogoEntrada' style='width: 830px;text-align:left'>" + (char)13);
            strBuilderCatalogo.Append("<colgroup><col style='width:45%;' /><col style='width:25%;' /><col style='width:30%;' /></colgroup>" + (char)13);

            while (dr.Read())
            {
                strBuilderCatalogo.Append("<tr id='" + dr["T074_CREADOR"].ToString() + "/" + dr["ID"].ToString() + "' ");

                //if (i % 2 == 0)
                //    strBuilderCatalogo.Append("class='FA' ");
                //else
                //    strBuilderCatalogo.Append("class='FB' ");

                i++;
                strBuilderCatalogo.Append(" onclick=mm(event); ");
                strBuilderCatalogo.Append(" ondblclick=this.className='FS';Det_Entrada(this); ");
                strBuilderCatalogo.Append(" style='cursor: pointer;height:16px'>");

                strBuilderCatalogo.Append("<td style='padding-left:5px'>&nbsp;&nbsp;" + dr["DESCRIPCION"].ToString() + "</td>");
                strBuilderCatalogo.Append("<td>&nbsp;&nbsp;" + dr["ORIGEN"].ToString() + "</td>");
                strBuilderCatalogo.Append("<td>&nbsp;&nbsp;" + dr["CREADOR"].ToString() + "</td>");
                strBuilderCatalogo.Append("</tr>" + (char)13);
            }

            dr.Close();
            dr.Dispose();

            strBuilderCatalogo.Append("</table>");
            return(strBuilderCatalogo.ToString());
        }
예제 #12
0
 public entradadt ActualizarEntrada(int id, entradadt entradadt)
 {
     return(ENTRADA.ActualizarEntrada(id, entradadt));
 }
예제 #13
0
 public entradadt AgregarEntrada(entradadt entradadt)
 {
     return(ENTRADA.AgregarEntrada(entradadt));
 }
예제 #14
0
 public entradadt ObtenerEntrada(int id)
 {
     return(ENTRADA.ObtenerEntrada(id));
 }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (!Page.IsCallback)
            {
                try
                {
                    hdnIDArea.Text = Request.QueryString["IDAREA"].ToString();

                    Utilidades.SetEventosFecha(this.txtFechaAnalisis);

                    if (Request.QueryString["bNueva"].ToString() == "false")
                    {
                        hdnIDEntrada.Text = Request.QueryString["IDENTRADA"].ToString();
                        dr_resultado      = null;
                        dr_resultado      = ENTRADA.Select(null, short.Parse(Request.QueryString["IDENTRADA"]));
                        if (dr_resultado.Read())
                        {
                            txtDenominacion.Text = (string)dr_resultado["T074_DENOMINACION"];
                            txtCreador.Text      = (string)dr_resultado["CREADOR"];
                            txtOrigen.Text       = (string)dr_resultado["ORIGEN"];
                            txtComunicante.Text  = (string)dr_resultado["T074_COMUNICANTE"];
                            txtMedio.Text        = (string)dr_resultado["T074_MEDIO"];
                            txtOrganizacion.Text = (string)dr_resultado["T074_ORGANIZACION"];
                            txtAnalista.Text     = (string)dr_resultado["ANALISTA"];
                            hdnAnalista.Text     = dr_resultado["T074_ANALISTA"].ToString();
                            hdnOrigen.Text       = dr_resultado["T075_ORIGEN"].ToString();
                            txtOrden.Text        = dr_resultado["T074_ORDEN"].ToString();

                            if (dr_resultado["T074_FECHAANAL"] == System.DBNull.Value)
                            {
                                txtFechaAnalisis.Text = "";
                            }
                            else
                            {
                                txtFechaAnalisis.Text = ((DateTime)dr_resultado["T074_FECHAANAL"]).ToShortDateString();
                            }

                            txtDescripcion.Text = (string)dr_resultado["T074_DESCRIPCION"];
                            txtNotas.Text       = (string)dr_resultado["T074_NOTAS"];
                        }
                        dr_resultado.Close();
                        dr_resultado.Dispose();
                        dr_resultado = null;

                        hdnModoLectura.Text = Session["MODOLECTURA"].ToString();

                        if (hdnModoLectura.Text == "1")
                        {
                            Control Area = this.FindControl("frmDatos");
                            ModoLectura.Poner(Area.Controls);
                        }
                    }
                    else
                    {
                    }
                }
                catch (Exception ex)
                {
                    hdnErrores.Text = Errores.mostrarError("Error al obtener los datos", ex);
                }

                //1º Se indican (por este orden) la función a la que se va a devolver el resultado
                //   y la función que va a acceder al servidor
                string cbRespuesta = Page.ClientScript.GetCallbackEventReference(this, "arg", "RespuestaCallBack", "context");
                string cbLlamada   = "function RealizarCallBack(arg, context)" + "{" + cbRespuesta + ";" + "}";

                //2º Se "registra" la función que va a acceder al servidor.
                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RealizarCallBack", cbLlamada, true);
            }
            //this.txtIdEntrada.Attributes.Add("readonly", "readonly");
            //txtDescripcion.Attributes.Add("readonly", "readonly");
            //txtFechaInicio.Attributes.Add("readonly", "readonly");
            //txtFechaFin.Attributes.Add("readonly", "readonly");


            // Put user code to initialize the page here
            //if(!this.IsPostBack){
            //    dr_resultado = null;
            //    Provincia objProvincia = new Provincia();
            //    dr_resultado = objProvincia.Catalogo();

            //    ddlProvincia.DataSource = dr_resultado;
            //    ddlProvincia.DataTextField = "DESCRIPCION";
            //    ddlProvincia.DataValueField = "CODIGO";
            //    ddlProvincia.DataBind();
            //    ddlProvincia.Items.Insert(0, new ListItem("", "0"));

            //    if (Request.QueryString["bNueva"]=="false"){
            //        lblTituloEnlace.Visible=false;
            //        lblTituloSinEnlace.Visible=true;
            //        btnBorrarTitulo.Visible=false;
            //    }

            //    imgbtnGrabar.Attributes.Add("onclick", "return false");
            //    imgbtnCancelar.Attributes["onclick"] = "javascript:salir();";
            //    hdnbNueva.Text = Request.QueryString["bNueva"].ToString();
            //    if (hdnbNueva.Text == "false")
            //    {
            //        dr_resultado = null;
            //        Formacion objFormacion = new Formacion();
            //        dr_resultado = objFormacion.LeerUnRegistro(Request.QueryString["IDFICEPI"],int.Parse(Request.QueryString["IDCODTITULO"]));
            //        dr_resultado.Read();

            //        txtDescripcion.Text = (string)dr_resultado["T019_DESCRIPCION"];
            //        txtEspecialidad.Text = (string)dr_resultado["T012_ESPECIALIDAD"];

            //        if (dr_resultado["T012_FECINICIO"]==System.DBNull.Value)
            //            txtFechaInicio.Text = "";
            //        else
            //            txtFechaInicio.Text = ((DateTime)dr_resultado["T012_FECINICIO"]).ToShortDateString();

            //        if (dr_resultado["T012_FECFIN"]==System.DBNull.Value)
            //            txtFechaFin.Text = "";
            //        else
            //            txtFechaFin.Text = ((DateTime)dr_resultado["T012_FECFIN"]).ToShortDateString();

            //        txtCentroFormacion.Text = (string)dr_resultado["T012_CENTROFORMACION"];
            //        txtExpediente.Text = (string)dr_resultado["T012_EXPEDIENTE"];
            //        txtObservaciones.Text =(string)dr_resultado["T012_OBSERVACIONES"];
            //        ddlProvincia.SelectedValue = dr_resultado["T002_IDPROVIN"].ToString();
            //        lblFecultmodif.Text = dr_resultado["T012_FECULTMODIF"].ToString();
            //        chkIbermatica.Checked = (bool)dr_resultado["T012_IBERMATICA"];
            //        dr_resultado.Close();

            //        SqlDataReader dr_resultado2 = null;
            //        dr_resultado2 = null;
            //        Formacion objFormacion2 = new Formacion();
            //        dr_resultado2 = objFormacion2.LeerFUMA(Request.QueryString["IDFICEPI"]);
            //        dr_resultado2.Read();
            //        lblFecultmodifApar.Text = dr_resultado2["T012_FECULTMODIFA"].ToString();
            //        dr_resultado.Close();
            //        dr_resultado.Dispose();
            //    }
            //    else
            //    {
            //        lblFecultmodif.Width = Unit.Pixel(93);
            //    }
            //}

            //strPerfilCV = Session["PERFIL_CV"].ToString();

            //if ( Session["PERFIL_CV"].ToString()!="4")
            //{
            //    ModoLectura.Poner(this.Controls);
            //}
            //btnBorrarTitulo.Attributes.Add("hidefocus","true");
            //btnBorrarFechaInicio.Attributes.Add("hidefocus","true");
            //btnBorrarFechaFin.Attributes.Add("hidefocus","true");
        }
        private string Grabar(byte byteNueva, string sDenominacion, string sComunicante, string sMedio,
                              string sOrganizacion, string sDescripcion, string sNotas, string sFechaAnalisis, string sOrigen,
                              string sAnalista, string sIDEntrada, string sOrden)
        {
            string sResul;

            if (sIDEntrada == "-1")
            {
                sIDEntrada = hdnIDEntrada.Text;
            }
            ;

            try
            {
                oConn = GESTAR.Capa_Negocio.Conexion.Abrir();
                tr    = GESTAR.Capa_Negocio.Conexion.AbrirTransaccion(oConn);
            }
            catch (Exception ex)
            {
                if (oConn.State == ConnectionState.Open)
                {
                    GESTAR.Capa_Negocio.Conexion.Cerrar(oConn);
                }
                return("N@@" + Errores.mostrarError("Error al abrir la conexión", ex));
            }

            int?intAnalista = null;

            if (sAnalista != "")
            {
                intAnalista = int.Parse(sAnalista);
            }
            short?intOrigen = null;

            if (sOrigen != "")
            {
                intOrigen = short.Parse(sOrigen);
            }

            DateTime?dFechaAnalisis = null;

            if (sFechaAnalisis != "")
            {
                dFechaAnalisis = DateTime.Parse(sFechaAnalisis);
            }

            if (byteNueva == 0)
            {
                try
                {
                    ENTRADA.Update(tr, short.Parse(sIDEntrada), sDenominacion,
                                   intOrigen, int.Parse(hdnIDArea.Text),
                                   sComunicante, sMedio, sOrganizacion,
                                   sDescripcion, intAnalista, dFechaAnalisis, sNotas,
                                   int.Parse(Session["IDFICEPI"].ToString()),
                                   short.Parse(sOrden));
                    intContador = int.Parse(hdnIDEntrada.Text);
                }
                catch (System.Exception objError)
                {
                    sResul = Errores.mostrarError("Error al modificar el área.", objError);
                    GESTAR.Capa_Negocio.Conexion.CerrarTransaccion(tr, oConn);
                    return("N@@" + sResul);
                }
            }
            else
            {
                try
                {
                    intContador = ENTRADA.Insert(tr, sDenominacion,
                                                 intOrigen, int.Parse(hdnIDArea.Text),
                                                 sComunicante, sMedio, sOrganizacion,
                                                 sDescripcion, intAnalista, dFechaAnalisis, sNotas,
                                                 int.Parse(Session["IDFICEPI"].ToString()),
                                                 short.Parse(sOrden));
                    hdnIDEntrada.Text = intContador.ToString();
                    sIDEntrada        = hdnIDEntrada.Text;
                }
                catch (System.Exception objError)
                {
                    sResul = Errores.mostrarError("Error al crear el área.", objError);
                    GESTAR.Capa_Negocio.Conexion.CerrarTransaccion(tr, oConn);
                    return("N@@" + sResul);
                }
            }

            try
            {
                GESTAR.Capa_Negocio.Conexion.CommitTransaccion(tr);

                sResul = "";
            }
            catch (Exception ex)
            {
                GESTAR.Capa_Negocio.Conexion.CerrarTransaccion(tr);
                sResul = "N@@" + Errores.mostrarError("Error al grabar los datos ( commit )", ex);
            }
            finally
            {
                GESTAR.Capa_Negocio.Conexion.Cerrar(oConn);
            }

            return(sResul);
        }
        private string ObtenerDatos()
        {
            string sResul = "";

            try
            {
                StringBuilder strBuilder = new StringBuilder();
                int           i          = 0;

                strBuilder.Append("<table id='tblDatos' class='texto' style='width: 396px;'>");
                strBuilder.Append("<colgroup><col style='width:396px;' /></colgroup>");
                if (hdnOpcion.Text == "Area")
                {
                    dr = Areas.Listado(int.Parse(Session["IDFICEPI"].ToString()), Session["ADMIN"].ToString());
                }
                else if (hdnOpcion.Text == "Tipo")
                {
                    dr = TIPO.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Entrada")
                {
                    dr = ENTRADA.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Alcance")
                {
                    dr = ALCANCE.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Proceso")
                {
                    dr = PROCESO.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Producto")
                {
                    dr = PRODUCTO.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Requisito")
                {
                    dr = REQUISITO.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "CR")
                {
                    dr = CR.Catalogo();
                }
                else if (hdnOpcion.Text == "CR_TEXTO")
                {
                    dr = CR.Catalogo(short.Parse(hdnIDArea.Text));
                }
                else if (hdnOpcion.Text == "Cliente")
                {
                    dr = Cliente.Catalogo(short.Parse(hdnIDArea.Text));
                }
                else if (hdnOpcion.Text == "Proveedor")
                {
                    dr = Proveedor.Catalogo(short.Parse(hdnIDArea.Text));
                }
                else if (hdnOpcion.Text == "Causa")
                {
                    dr = CAUSA.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Origen")
                {
                    dr = ORIGEN.Catalogo(null, short.Parse(hdnIDArea.Text), "", null, 4, 0);
                }
                else if (hdnOpcion.Text == "Coordinadores")
                {
                    dr = Areas.CoordinadoresArea(int.Parse(hdnIDArea.Text));
                }
                else if (hdnOpcion.Text == "Solicitantes")
                {
                    dr = Areas.SolicitantesArea(int.Parse(hdnIDArea.Text));
                }
                else if (hdnOpcion.Text == "Especialistas")
                {
                    dr = Areas.LeerTecnicosArea(int.Parse(hdnIDArea.Text));
                }
                else if (hdnOpcion.Text == "Deficiencias")
                {
                    dr = Areas.DeficienciasArea(int.Parse(hdnIDArea.Text));
                }

                while (dr.Read())
                {
                    //if (i % 2 == 0) strBuilder.Append("<tr class=FA ");
                    //else strBuilder.Append("<tr class=FB ");
                    i++;
                    strBuilder.Append("<tr ");
                    if (hdnOpcion.Text == "Cliente" || hdnOpcion.Text == "Proveedor" || hdnOpcion.Text == "CR_TEXTO")
                    {
                        strBuilder.Append("id='" + i.ToString() + "'");
                    }
                    else
                    {
                        strBuilder.Append("id='" + dr["ID"].ToString() + "'");
                    }
                    strBuilder.Append(" onclick='ms(this)' ondblclick='aceptarClick(this);' onmousemove='TTip(event);' style='cursor:pointer;height:16px'>");
                    //strBuilder.Append("<td width='15%'>" + (int.Parse(dr["ID"].ToString())).ToString("#,###,##0") + "</td>");

                    if (hdnOpcion.Text == "Cliente" || hdnOpcion.Text == "Proveedor" || hdnOpcion.Text == "CR_TEXTO")
                    {
                        strBuilder.Append("<td style='padding-left:5px'><label class=texto id='lbl" + i.ToString() + "' style='width:315px;text-overflow:ellipsis;overflow:hidden'");
                    }
                    else
                    {
                        strBuilder.Append("<td style='padding-left:5px'><label class=texto id='lbl" + dr["ID"].ToString() + "' style='width:315px;text-overflow:ellipsis;overflow:hidden'");
                    }
                    if (dr["DESCRIPCION"].ToString().Length > 80)
                    {
                        strBuilder.Append(" title='" + dr["DESCRIPCION"].ToString() + "'");
                    }
                    strBuilder.Append("><nobr class='NBR W395'>" + dr["DESCRIPCION"] + "</nobr></label></td></tr>");
                }

                dr.Close();
                dr.Dispose();

                strBuilder.Append("</table>");

                sResul = "OK@@" + strBuilder.ToString();
            }
            catch (Exception ex)
            {
                sResul = "Error@@" + Errores.mostrarError("Error al obtener los datos", ex);
            }
            return(sResul);
        }