public JsonResult GetRequisitionTemplates()
        {
            List <RequisitionTemplateViewModel> result = DBRequestTemplates.GetAll().ParseToTemplateViewModel();

            //Apply User Dimensions Validations
            List <AcessosDimensões> userDimensions = DBUserDimensions.GetByUserId(User.Identity.Name);

            //Regions
            if (userDimensions.Where(y => y.Dimensão == (int)Dimensions.Region).Count() > 0)
            {
                result.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Dimensions.Region && y.ValorDimensão == x.RegionCode));
            }
            //FunctionalAreas
            if (userDimensions.Where(y => y.Dimensão == (int)Dimensions.FunctionalArea).Count() > 0)
            {
                result.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Dimensions.FunctionalArea && y.ValorDimensão == x.FunctionalAreaCode));
            }
            //ResponsabilityCenter
            if (userDimensions.Where(y => y.Dimensão == (int)Dimensions.ResponsabilityCenter).Count() > 0)
            {
                result.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Dimensions.ResponsabilityCenter && y.ValorDimensão == x.CenterResponsibilityCode));
            }

            return(Json(result.OrderByDescending(x => x.RequisitionNo)));
        }
 public JsonResult UpdateRequisition([FromBody] RequisitionTemplateViewModel item)
 {
     if (item != null)
     {
         item.CreateUser = User.Identity.Name;
         var updatedItem = DBRequestTemplates.Update(item.ParseToDB());
         if (updatedItem != null)
         {
             item             = updatedItem.ParseToTemplateViewModel();
             item.eReasonCode = 1;
             item.eMessage    = "Registo atualizado com sucesso.";
         }
         else
         {
             item             = new RequisitionTemplateViewModel();
             item.eReasonCode = 2;
             item.eMessage    = "Ocorreu um erro ao atualizar o registo.";
         }
     }
     else
     {
         item             = new RequisitionTemplateViewModel();
         item.eReasonCode = 2;
         item.eMessage    = "Ocorreu um erro: o modelo de requisição não pode ser nulo.";
     }
     return(Json(item));
 }
        public JsonResult CreateRequisition([FromBody] RequisitionTemplateViewModel item)
        {
            if (item != null)
            {
                //Get Numeration
                bool         autoGenId = false;
                Configuração conf      = DBConfigurations.GetById(1);
                int          entityNumerationConfId = conf.NumeracaoModelosRequisicao.Value;

                if (item.RequisitionNo == "" || item.RequisitionNo == null)
                {
                    autoGenId          = true;
                    item.RequisitionNo = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                }
                if (item.RequisitionNo != null)
                {
                    item.CreateUser = User.Identity.Name;
                    var createdItem = DBRequestTemplates.Create(item.ParseToDB());
                    if (createdItem != null)
                    {
                        item = createdItem.ParseToTemplateViewModel();
                        if (autoGenId)
                        {
                            ConfiguraçãoNumerações configNum = DBNumerationConfigurations.GetById(entityNumerationConfId);
                            configNum.ÚltimoNºUsado         = item.RequisitionNo;
                            configNum.UtilizadorModificação = User.Identity.Name;
                            DBNumerationConfigurations.Update(configNum);
                        }
                        item.eReasonCode = 1;
                        item.eMessage    = "Registo criado com sucesso.";
                    }
                    else
                    {
                        item             = new RequisitionTemplateViewModel();
                        item.eReasonCode = 2;
                        item.eMessage    = "Ocorreu um erro ao criar o registo.";
                    }
                }
                else
                {
                    item.eReasonCode = 5;
                    item.eMessage    = "A numeração configurada não é compativel com a inserida.";
                }
            }
            else
            {
                item             = new RequisitionTemplateViewModel();
                item.eReasonCode = 2;
                item.eMessage    = "Ocorreu um erro: o modelo de requisição não pode ser nulo.";
            }
            return(Json(item));
        }
        public JsonResult GetRequisition([FromBody] string id)
        {
            RequisitionTemplateViewModel item;

            if (!string.IsNullOrEmpty(id) && id != "0")
            {
                item = DBRequestTemplates.GetById(id).ParseToTemplateViewModel();
            }
            else
            {
                item = new RequisitionTemplateViewModel();
            }

            return(Json(item));
        }
 public JsonResult DeleteRequisition([FromBody] RequisitionTemplateViewModel item)
 {
     if (item != null)
     {
         if (DBRequestTemplates.Delete(item.ParseToDB()))
         {
             item.eReasonCode = 1;
             item.eMessage    = "Registo eliminado com sucesso.";
         }
         else
         {
             item             = new RequisitionTemplateViewModel();
             item.eReasonCode = 2;
             item.eMessage    = "Ocorreu um erro ao eliminar o registo.";
         }
     }
     else
     {
         item             = new RequisitionTemplateViewModel();
         item.eReasonCode = 2;
         item.eMessage    = "Ocorreu um erro: o modelo de requisição não pode ser nulo.";
     }
     return(Json(item));
 }