public async Task <IActionResult> Create([Bind("Idomv,Idsus,Idoup,Apiestado,Apitransaccion,Usucre,Feccre,Usumod,Fecmod")] OpeMovimientos opeMovimientos)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //Buscamos si el Movimiento existe en estado ELIMINADO
                    var opeMovExistente = await _context.OpeMovimientos
                                          .SingleOrDefaultAsync(m => m.Idsus == opeMovimientos.Idsus &&
                                                                m.Idoup == opeMovimientos.Idoup);

                    if (opeMovExistente == null)
                    {
                        opeMovimientos.Usucre = this.GetLogin();
                        _context.Add(opeMovimientos);
                    }
                    else
                    {
                        opeMovExistente.Usumod         = this.GetLogin();
                        opeMovExistente.Apitransaccion = "HABILITAR";
                        _context.Update(opeMovExistente);
                    }
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception exp)
                {
                    if (exp.InnerException is NpgsqlException)
                    {
                        ViewBag.ErrorDb = exp.InnerException.Message;
                    }
                    else
                    {
                        ModelState.AddModelError("", exp.Message);
                    }
                    var Upms1 =
                        _context.OpeUpms
                        .Where(oup => oup.Idcde == GetDepartamentoId() && oup.Idopy == GetProyectoId())
                        .Select(s => new
                    {
                        IdUpm     = s.Idoup,
                        NombreUpm = $"{s.Codigo} - {s.Nombre}"
                    })
                        .ToList();
                    ViewData["Idoup"] = new SelectList(Upms1, "IdUpm", "NombreUpm");
                    ViewData["Idsus"] =
                        new SelectList(_context.SegUsuarios,
                                       SegUsuarios.Fields.Idsus.ToString(),
                                       SegUsuarios.Fields.Login.ToString());
                    return(View());
                }
            }
            var Upms2 =
                _context.OpeUpms
                .Where(oup => oup.Idcde == GetDepartamentoId() && oup.Idopy == GetProyectoId())
                .Select(s => new
            {
                IdUpm     = s.Idoup,
                NombreUpm = $"{s.Codigo} - {s.Nombre}"
            })
                .ToList();

            ViewData["Idoup"] = new SelectList(Upms2, "IdUpm", "NombreUpm");
            ViewData["Idsus"] = new SelectList(_context.SegUsuarios,
                                               SegUsuarios.Fields.Idsus.ToString(),
                                               SegUsuarios.Fields.Login.ToString(),
                                               opeMovimientos.Idsus);
            return(View(opeMovimientos));
        }
        public async Task <IActionResult> Edit(long id, [Bind("Idomv,Idsus,Idoup,Apiestado,Apitransaccion,Usucre,Feccre,Usumod,Fecmod")] OpeMovimientos opeMovimientos)
        {
            if (id != opeMovimientos.Idomv)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    opeMovimientos.Usumod         = this.GetLogin();
                    opeMovimientos.Apitransaccion = "MODIFICAR";
                    _context.Update(opeMovimientos);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!OpeMovimientosExists(opeMovimientos.Idomv))
                    {
                        return(NotFound());
                    }
                    throw;
                }
                catch (Exception exp)
                {
                    if (exp.InnerException is NpgsqlException)
                    {
                        ViewBag.ErrorDb = exp.InnerException.Message;
                    }
                    else
                    {
                        ModelState.AddModelError("", exp.Message);
                    }
                    var Upms1 =
                        _context.OpeUpms
                        .Where(oup => oup.Idcde == GetDepartamentoId() && oup.Idopy == GetProyectoId())
                        .Select(s => new
                    {
                        IdUpm     = s.Idoup,
                        NombreUpm = $"{s.Codigo} - {s.Nombre}"
                    })
                        .ToList();
                    ViewData["Idoup"] = new SelectList(Upms1, "IdUpm", "NombreUpm");
                    ViewData["Idsus"] =
                        new SelectList(_context.SegUsuarios,
                                       SegUsuarios.Fields.Idsus.ToString(),
                                       SegUsuarios.Fields.Login.ToString());
                    return(View(opeMovimientos));
                }
                return(RedirectToAction(nameof(Index)));
            }
            var Upms2 =
                _context.OpeUpms
                .Where(oup => oup.Idcde == GetDepartamentoId() && oup.Idopy == GetProyectoId())
                .Select(s => new
            {
                IdUpm     = s.Idoup,
                NombreUpm = $"{s.Codigo} - {s.Nombre}"
            })
                .ToList();

            ViewData["Idoup"] = new SelectList(Upms2, "IdUpm", "NombreUpm");
            ViewData["Idsus"] = new SelectList(_context.SegUsuarios,
                                               SegUsuarios.Fields.Idsus.ToString(),
                                               SegUsuarios.Fields.Login.ToString(),
                                               opeMovimientos.Idsus);
            return(View(opeMovimientos));
        }