public ActionResult AusenciaRemuneradaCreateConfirmed(AusenciaRemunerada ausenciaremunerada)
        {
            try
            {
                ausenciaremunerada = ObtemAusenciaRemuneradaForm(ausenciaremunerada, true);

                if (ModelState.IsValid)
                {
                    AusenciaRemunerada ausenciaremuneradaExiste = new AusenciaRemunerada();
                    ausenciaremuneradaExiste = null;

                    if (ausenciaremunerada.STATUS == "A")
                    {
                        ausenciaremuneradaExiste = AusenciaRemuneradaAtivaVigente(ausenciaremunerada);
                    }

                    if (ausenciaremuneradaExiste == null || ausenciaremunerada.STATUS == "I")
                    {
                        _ausenciaremuneradaAppService.Create(ausenciaremunerada);
                    }
                    else
                    {
                        throw new InvalidOperationException("Já existe um perído vigente e ativo que coincide com a tentativa de inclusão / alteração");
                    }
                    return RedirectToAction("AusenciaRemuneradaIndex");
                }
            }
            catch (RetryLimitExceededException /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.
                ModelState.AddModelError("", "Erro ao salvar. Tente novamente ou, se o problema persistir, entre em contato com o suporte.");
            }

            return View(ausenciaremunerada);
        }
        // GET: /AusenciaRemunerada/AusenciaRemuneradaCreate
        public ActionResult AusenciaRemuneradaCreate()
        {
            AusenciaRemunerada ausenciaremunerada = new AusenciaRemunerada();

            #region populaobjetos
            //var colaboradores = ObtemColaboradores(ausenciaremunerada.COLABORADORKEY);
            var colaboradores = ObtemColaboradores();
            IEnumerable<SelectListItem> colaboradoresSelectListItem = new SelectList(colaboradores, "Key", "Value");
            ViewBag.COLABORADORKEY = new SelectList(colaboradores, "Key", "Value");
            #endregion populaobjetos

            AusenciaRemuneradaViewModel ausenciaRemuneradaVM = new AusenciaRemuneradaViewModel(ausenciaremunerada, colaboradoresSelectListItem);

            return View(ausenciaRemuneradaVM);
        }
        private AusenciaRemunerada ObtemAusenciaRemuneradaForm(AusenciaRemunerada ar, bool insert = false)
        {
            ar.DESC_AUSENCIA = Request["AusenciaRemunerada.DESC_AUSENCIA"];
            ar.DT_INI = Convert.ToDateTime(Request["AusenciaRemunerada.DT_INI"]);
            ar.DT_FIM = Convert.ToDateTime(Request["AusenciaRemunerada.DT_FIM"]);
            ar.STATUS = Request["AusenciaRemunerada.STATUS"];

            ar.LAST_MODIFY_DATE = DateTime.Now;
            ar.LAST_MODIFY_USERNAME = _controleacessoAppService.ObtainCurrentLoginFromAd();

            if (insert)
            {
                ar.COLABORADORKEY = Convert.ToInt32(Request["AusenciaRemunerada.COLABORADORKEY"]);
                ar.CREATED_DATETIME = ar.LAST_MODIFY_DATE;
                ar.CREATED_USERNAME = ar.LAST_MODIFY_USERNAME;
            }

            return ar;
        }
 private AusenciaRemunerada AusenciaRemuneradaAtivaVigente(AusenciaRemunerada ar)
 {
     return _ausenciaremuneradaAppService.Find(t => t.COLABORADORKEY == ar.COLABORADORKEY
                                                 && t.DESC_AUSENCIA == ar.DESC_AUSENCIA
                                                 && t.STATUS == "A"
                                                 && (
                                                     (t.DT_INI <= ar.DT_INI && t.DT_FIM >= ar.DT_INI)
                                                     || (t.DT_FIM <= ar.DT_INI && t.DT_FIM >= ar.DT_FIM)
                                                     || (ar.DT_INI <= t.DT_INI && ar.DT_FIM >= t.DT_FIM)
                                                 )
                                             ).FirstOrDefault();
 }
        public ActionResult AusenciaRemuneradaEditConfirmed(int? id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                throw new Exception();
            }

            var ausenciaremuneradaToUpdate = _ausenciaremuneradaAppService.Get(id ?? default(int));

            ausenciaremuneradaToUpdate = ObtemAusenciaRemuneradaForm(ausenciaremuneradaToUpdate);

            if (ModelState.IsValid)
            {
                try
                {
                    AusenciaRemunerada ausenciaremuneradaExiste = new AusenciaRemunerada();
                    ausenciaremuneradaExiste = null;

                    if (ausenciaremuneradaToUpdate.STATUS == "A")
                    {
                        ausenciaremuneradaExiste = AusenciaRemuneradaAtivaVigente(ausenciaremuneradaToUpdate);
                    }

                    if (ausenciaremuneradaExiste == null || ausenciaremuneradaToUpdate.STATUS == "I")
                    {
                        _ausenciaremuneradaAppService.Update(ausenciaremuneradaToUpdate);
                    }
                    else
                    {
                        throw new InvalidOperationException("Já existe um perído vigente e ativo que coincide com a tentativa de inclusão / alteração");
                    }

                    return RedirectToAction("AusenciaRemuneradaIndex");
                }
                catch (RetryLimitExceededException /* dex */)
                {
                    //Log the error (uncomment dex variable name and add a line here to write a log.
                    ModelState.AddModelError("", "Erro na alteração. Tente novamente ou, se o problema persistir, entre em contato com o suporte.");
                }
            }

            return View(ausenciaremuneradaToUpdate);
        }
 public AusenciaRemuneradaViewModel(AusenciaRemunerada ausenciaRemunerada, string nomeCompleto)
 {
     AusenciaRemunerada = ausenciaRemunerada;
     NomeCompleto = nomeCompleto;
 }
 public AusenciaRemuneradaViewModel(AusenciaRemunerada ausenciaRemunerada, IEnumerable<SelectListItem> colaboradoresSelectListItem)
 {
     AusenciaRemunerada = ausenciaRemunerada;
     ColaboradoresSelectListItem = colaboradoresSelectListItem;
 }