public JsonResult DeleteReqTemplate([FromBody] SimplifiedReqTemplateViewModel item)
        {
            ErrorHandler errorHandler = new ErrorHandler()
            {
                eReasonCode = 2,
                eMessage    = "Ocorreu um erro ao eliminar o registo."
            };

            try
            {
                if (item != null)
                {
                    bool sucess = DBSimplifiedReqTemplates.Delete(item.ParseToDB());
                    if (sucess)
                    {
                        item.eReasonCode = 1;
                        item.eMessage    = "Registo eliminado com sucesso.";
                    }
                }
                else
                {
                    item = new SimplifiedReqTemplateViewModel();
                }
            }
            catch
            {
                item.eReasonCode = errorHandler.eReasonCode;
                item.eMessage    = errorHandler.eMessage;
            }
            return(Json(item));
        }
        public JsonResult UpdateReqTemplate([FromBody] SimplifiedReqTemplateViewModel item)
        {
            if (item != null)
            {
                item.UpdateUser = User.Identity.Name;
                var updatedItem = DBSimplifiedReqTemplates.Update(item.ParseToDB());

                if (updatedItem != null)
                {
                    item             = updatedItem.ParseToViewModel();
                    item.eReasonCode = 1;
                    item.eMessage    = "Registo atualizado com sucesso.";
                }
                else
                {
                    item.eReasonCode = 2;
                    item.eMessage    = "Ocorreu um erro ao atualizar o modelo de requisição simplificada.";
                }
            }
            else
            {
                item = new SimplifiedReqTemplateViewModel()
                {
                    eReasonCode = 3,
                    eMessage    = "Ocorreu um erro ao atualizar. O modelo de requisição simplificado não pode ser nulo."
                };
            }
            return(Json(item));
        }
        public JsonResult ValidateNumeration([FromBody] SimplifiedReqTemplateViewModel item)
        {
            //Get Project Numeration
            Configuração conf = DBConfigurations.GetById(1);

            if (conf != null)
            {
                int numModReqSimplificadas = conf.NumeraçãoModReqSimplificadas.Value;

                ConfiguraçãoNumerações numConf = DBNumerationConfigurations.GetById(numModReqSimplificadas);

                //Validate if id is valid
                if (!(item.RequisitionTemplateId == "" || item.RequisitionTemplateId == null) && !numConf.Manual.Value)
                {
                    return(Json("A numeração configurada para os modelos de requisição simplificada não permite inserção manual."));
                }
                else if (item.RequisitionTemplateId == "" && !numConf.Automático.Value)
                {
                    return(Json("É obrigatório inserir o Nº Modelo."));
                }
            }
            else
            {
                return(Json("Não foi possivel obter as configurações base de numeração."));
            }
            return(Json(""));
        }
        public JsonResult CreateReqTemplate([FromBody] SimplifiedReqTemplateViewModel item)
        {
            try
            {
                if (item != null)
                {
                    //Get Numeration
                    bool         autoGenId = false;
                    Configuração conf      = DBConfigurations.GetById(1);
                    int          entityNumerationConfId = conf.NumeraçãoModReqSimplificadas.Value;

                    if (item.RequisitionTemplateId == "" || item.RequisitionTemplateId == null)
                    {
                        autoGenId = true;
                        item.RequisitionTemplateId = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                    }
                    if (item.RequisitionTemplateId != null)
                    {
                        item.CreateUser = User.Identity.Name;
                        var createdItem = DBSimplifiedReqTemplates.Create(item.ParseToDB());
                        if (createdItem != null)
                        {
                            item = createdItem.ParseToViewModel();
                            if (autoGenId)
                            {
                                ConfiguraçãoNumerações configNum = DBNumerationConfigurations.GetById(entityNumerationConfId);
                                configNum.ÚltimoNºUsado         = item.RequisitionTemplateId;
                                configNum.UtilizadorModificação = User.Identity.Name;
                                DBNumerationConfigurations.Update(configNum);
                            }
                            item.eReasonCode = 1;
                            item.eMessage    = "Registo criado com sucesso.";
                        }
                        else
                        {
                            item.eReasonCode = 3;
                            item.eMessage    = "Ocorreu um erro ao inserir os dados na base de dados.";
                        }
                    }
                    else
                    {
                        item.eReasonCode = 5;
                        item.eMessage    = "A numeração configurada não é compativel com a inserida.";
                    }
                }
            }
            catch (Exception)
            {
                item.eReasonCode = 2;
                item.eMessage    = "Ocorreu um erro ao criar o modelo de requisição simplificado.";
            }
            return(Json(item));
        }
        public JsonResult GetReqTemplate([FromBody] string requisitionTemplateId)
        {
            SimplifiedReqTemplateViewModel item;

            if (!string.IsNullOrEmpty(requisitionTemplateId) && requisitionTemplateId != "0")
            {
                item = DBSimplifiedReqTemplates.GetById(requisitionTemplateId).ParseToViewModel();
            }
            else
            {
                item = new SimplifiedReqTemplateViewModel();
            }

            return(Json(item));
        }
 public static RequisiçõesSimplificadas ParseToDB(this SimplifiedReqTemplateViewModel item)
 {
     if (item != null)
     {
         return(new RequisiçõesSimplificadas()
         {
             NºRequisição = item.RequisitionTemplateId,
             Observações = item.Description,
             CódigoRegião = item.CodeRegion,
             CódigoÁreaFuncional = item.CodeFunctionalArea,
             CódLocalização = item.LocationCode,
             CódigoCentroResponsabilidade = item.CodeResponsabilityCenter,
             DataHoraCriação = string.IsNullOrEmpty(item.CreateDate) ? (DateTime?)null : DateTime.Parse(item.CreateDate),
             DataHoraModificação = string.IsNullOrEmpty(item.UpdateDate) ? (DateTime?)null : DateTime.Parse(item.UpdateDate),
             UtilizadorCriação = item.CreateUser,
             UtilizadorModificação = item.UpdateUser,
             LinhasRequisiçõesSimplificadas = item.Lines.ParseToDB()
         });
     }
     return(null);
 }