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(""));
        }
예제 #2
0
        public JsonResult ValidateNumeration([FromBody] ContactViewModel item)
        {
            //Get Project Numeration
            Configuração conf = DBConfigurations.GetById(1);

            if (conf != null)
            {
                int contactsNumerationConfId = conf.NumeraçãoContactos.Value;

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

                //Validate if id is valid
                if (!(item.No == "" || item.No == null) && !numConf.Manual.Value)
                {
                    return(Json("A numeração configurada para contactos não permite inserção manual."));
                }
                else if (item.No == "" && !numConf.Automático.Value)
                {
                    return(Json("É obrigatório inserir o Nº de Contacto."));
                }
            }
            else
            {
                return(Json("Não foi possivel obter as configurações base de numeração."));
            }
            return(Json(""));
        }
예제 #3
0
        public static ConfiguraçãoNumerações Update(ConfiguraçãoNumerações ObjectToUpdate)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    //Check if need to clear Last Used Numeration
                    ConfiguraçãoNumerações OldNumerationObject = GetById(ObjectToUpdate.Id);
                    if (OldNumerationObject.Prefixo != ObjectToUpdate.Prefixo || OldNumerationObject.NºDígitosIncrementar != ObjectToUpdate.NºDígitosIncrementar)
                    {
                        ObjectToUpdate.ÚltimoNºUsado = "";
                    }

                    ObjectToUpdate.DataHoraModificação = DateTime.Now;
                    ctx.ConfiguraçãoNumerações.Update(ObjectToUpdate);
                    ctx.SaveChanges();
                }

                return(ObjectToUpdate);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public BillingReceptionModel Create(BillingReceptionModel item)
        {
            bool autoGenId = false;
            bool isRec     = true;
            int  Cfg       = (int)DBUserConfigurations.GetById(item.CriadoPor).PerfilNumeraçãoRecDocCompras;

            item.DataCriacao       = DateTime.Now;
            item.IdAreaPendente    = (int)BillingReceptionAreas.Contabilidade;
            item.AreaPendente      = BillingReceptionAreas.Contabilidade.ToString();
            item.Estado            = BillingReceptionStates.Rececao;
            item.DataCriacao       = DateTime.Now;
            item.DescricaoProblema = "Entrada fatura em receção";

            if (item.Id == "" || item.Id == null)
            {
                ConfiguraçãoNumerações CfgNumeration = DBNumerationConfigurations.GetById(Cfg);

                autoGenId = true;

                item.Id = DBNumerationConfigurations.GetNextNumeration(Cfg, autoGenId, isRec);
            }
            if (item.Id != "" && item.Id != null)
            {
                item = repo.Create(item);

                RececaoFaturacaoWorkflow wfItem = new RececaoFaturacaoWorkflow();
                wfItem.IdRecFaturacao = item.Id;
                wfItem.AreaWorkflow   = Data.EnumHelper.GetDescriptionFor(typeof(BillingReceptionAreas), (int)BillingReceptionAreas.Contabilidade);
                wfItem.Descricao      = "Entrada fatura em receção";
                wfItem.CriadoPor      = item.CriadoPor;
                wfItem.Data           = DateTime.Now;
                wfItem.DataCriacao    = DateTime.Now;
                wfItem.Estado         = (int)BillingReceptionStates.Rececao;//TODO: Identificar estados possivels “Receção/Conferência”

                repo.Create(wfItem);

                try
                {
                    repo.SaveChanges();

                    //Update Last Numeration Used
                    ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(Cfg);
                    ConfigNumerations.ÚltimoNºUsado         = wfItem.IdRecFaturacao;
                    ConfigNumerations.UtilizadorModificação = item.CriadoPor;
                    DBNumerationConfigurations.Update(ConfigNumerations);
                }
                catch (Exception ex)
                {
                    return(null);
                }
                return(item);
            }
            else
            {
                return(item);
            }
        }
예제 #5
0
        public JsonResult CreateRecordTechnicalOfPlates([FromBody] RecordTechnicalOfPlatesModelView data)
        {
            if (data != null)
            {
                //Get Numeration
                bool         autoGenId = false;
                Configuração conf      = DBConfigurations.GetById(1);
                int          entityNumerationConfId = conf.NumeraçãoFichasTécnicasDePratos.Value;

                if (data.PlateNo == "" || data.PlateNo == null)
                {
                    autoGenId    = true;
                    data.PlateNo = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                }
                if (data.PlateNo != null)
                {
                    data.CreateUser = User.Identity.Name;
                    var createdItem = DBRecordTechnicalOfPlates.Create(data.ParseToDB());
                    if (createdItem != null)
                    {
                        data = createdItem.ParseToViewModel();

                        //Update Last Numeration Used
                        if (autoGenId)
                        {
                            ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId);
                            ConfigNumerations.ÚltimoNºUsado         = data.PlateNo;
                            ConfigNumerations.UtilizadorModificação = User.Identity.Name;
                            DBNumerationConfigurations.Update(ConfigNumerations);
                        }

                        data.eReasonCode = 1;
                        data.eMessage    = "Registo criado com sucesso.";
                    }
                    else
                    {
                        data             = new RecordTechnicalOfPlatesModelView();
                        data.eReasonCode = 2;
                        data.eMessage    = "Ocorreu um erro ao editar o registo.";
                    }
                }
                else
                {
                    data.eReasonCode = 2;
                    data.eMessage    = "A numeração configurada não é compativel com a inserida.";
                }
            }
            else
            {
                data             = new RecordTechnicalOfPlatesModelView();
                data.eReasonCode = 2;
                data.eMessage    = "Ocorreu um erro: a linha não pode ser nula.";
            }
            return(Json(data));
        }
        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 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));
        }
예제 #8
0
        public static bool Delete(ConfiguraçãoNumerações ObjectToDelete)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    ctx.ConfiguraçãoNumerações.Remove(ObjectToDelete);
                    ctx.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #9
0
        public JsonResult ValidateNumeration([FromBody] SimplifiedRequisitionViewModel data)
        {
            //Get Project Numeration
            Configuração Cfg = DBConfigurations.GetById(1);
            int          ProjectNumerationConfigurationId = 0;

            ProjectNumerationConfigurationId = Cfg.NumeraçãoRequisiçõesSimplificada.Value;

            ConfiguraçãoNumerações CfgNumeration = DBNumerationConfigurations.GetById(ProjectNumerationConfigurationId);

            //Validate if ProjectNo is valid
            if (!CfgNumeration.Automático.Value)
            {
                return(Json("É obrigatório inserir o Nº Requisição."));
            }

            return(Json(""));
        }
예제 #10
0
        public static ConfiguraçãoNumerações Create(ConfiguraçãoNumerações ObjectToCreate)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    ObjectToCreate.DataHoraCriação = DateTime.Now;
                    ctx.ConfiguraçãoNumerações.Add(ObjectToCreate);
                    ctx.SaveChanges();
                }

                return(ObjectToCreate);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
예제 #11
0
        public JsonResult CreateSimplifiedRequisition([FromBody] SimplifiedRequisitionViewModel item)
        {
            if (item != null)
            {
                item.CreateUser        = User.Identity.Name;
                item.CreateResponsible = User.Identity.Name;
                item.RequisitionDate   = DateTime.Now.ToString();
                item.RegistrationDate  = DateTime.Now.ToString("dd/MM/yyyy");
                item.RequisitionTime   = DateTime.Now.ToString("HH:mm:ss");

                if (DBSimplifiedRequisitions.GetById(item.RequisitionNo) != null)
                {
                    item.eReasonCode = 101;
                    item.eMessage    = "O Nº " + item.RequisitionNo + " já existe!";
                }
                else
                {
                    if (DBSimplifiedRequisitions.Create(DBSimplifiedRequisitions.ParseToDatabase(item)) != null)
                    {
                        //Update Last Numeration Used
                        Configuração           conf = DBConfigurations.GetById(1);
                        int                    entityNumerationConfId = conf.NumeraçãoRequisiçõesSimplificada.Value;
                        ConfiguraçãoNumerações ConfigNumerations      = DBNumerationConfigurations.GetById(entityNumerationConfId);
                        ConfigNumerations.ÚltimoNºUsado         = item.RequisitionNo;
                        ConfigNumerations.UtilizadorModificação = User.Identity.Name;
                        DBNumerationConfigurations.Update(ConfigNumerations);

                        item.eReasonCode = 100;
                        item.eMessage    = "Requisição Simplificada criada com sucesso.";
                    }
                    else
                    {
                        item.eReasonCode = 101;
                        item.eMessage    = "Ocorreu um erro ao criar a Requisição Simplificada.";
                    }
                }
            }
            return(Json(item));
        }
예제 #12
0
        public ErrorHandler CreateProposalFromContract(string contractId, int version, decimal percentageToApllyInLines = decimal.MinValue)
        {
            ErrorHandler result = new ErrorHandler()
            {
                eReasonCode = 2,
                eMessage    = "Não foi possivel criar a proposta",
            };
            //Get contract data
            var contractDb             = DBContracts.GetByIdAndVersion(contractId, version);
            ContractViewModel contract = DBContracts.ParseToViewModel(contractDb, string.Empty, string.Empty);

            contract.LoadLines();
            //Get Numeration
            Configuração conf = DBConfigurations.GetById(1);
            int          entityNumerationConfId = conf.NumeraçãoPropostas.Value;

            string proposalId = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, true, false);

            if (!string.IsNullOrEmpty(proposalId) && contract != null)
            {
                contract.ContractNo      = proposalId;
                contract.ContractType    = (int)ContractType.Proposal;
                contract.VersionNo       = 1;
                contract.Status          = 1;
                contract.RelatedContract = contractId;
                contract.CreateDate      = DateTime.Now.ToString();
                contract.CreateUser      = changedByUserName;
                contract.UpdateDate      = string.Empty;
                contract.UpdateUser      = string.Empty;

                //Add Proposal Header
                var proposal = ctx.Contratos.Add(DBContracts.ParseToDB(contract));

                //Add Proposal Lines
                contract.Lines.ForEach(x =>
                {
                    x.ContractType = (int)ContractType.Proposal;
                    x.ContractNo   = proposalId;
                    x.VersionNo    = 1;
                    x.LineNo       = 0;

                    if (percentageToApllyInLines > (-100))
                    {
                        x.UnitPrice = x.UnitPrice + ((percentageToApllyInLines * x.UnitPrice) / 100);
                        proposal.Entity.LinhasContratos.Add(DBContractLines.ParseToDB(x));
                    }
                    else
                    {
                        proposal.Entity.LinhasContratos.Add(DBContractLines.ParseToDB(x));
                    }
                });
                ctx.SaveChanges();

                result.eReasonCode = 1;
                result.eMessage    = "Foi criada a proposta " + proposalId + ".";
                try
                {
                    //Update Last Numeration Used
                    ConfiguraçãoNumerações configNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId);
                    if (configNumerations != null)
                    {
                        configNumerations.ÚltimoNºUsado         = proposalId;
                        configNumerations.UtilizadorModificação = changedByUserName;
                        DBNumerationConfigurations.Update(configNumerations);
                    }
                }
                catch
                {
                    result.eMessage += " Ocorreu um erro ao atualizar a numeração.";
                }
            }
            return(result);
        }
예제 #13
0
        public JsonResult CreateContact([FromBody] ContactViewModel item)
        {
            if (item != null)
            {
                //Get Numeration
                bool         autoGenId = false;
                Configuração conf      = DBConfigurations.GetById(1);
                int          entityNumerationConfId = conf.NumeraçãoContactos.Value;

                if (item.No == "" || item.No == null)
                {
                    autoGenId = true;
                    item.No   = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                }

                if (item.No != null)
                {
                    //Ensure contact Id doesn't exist
                    var existingContact = DBContacts.GetById(item.No);
                    if (existingContact == null)
                    {
                        item.CriadoPor = User.Identity.Name;

                        var newItem = DBContacts.Create(item.ParseToDB()).ParseToViewModel();
                        if (newItem != null)
                        {
                            //Inserted, update item to return
                            item = newItem;

                            //Task<WSContacts.Create_Result> createContactTask = NAVContactsService.CreateAsync(item, _configws);
                            //try
                            //{
                            //    createContactTask.Wait();
                            //}
                            //catch (Exception ex)
                            //{
                            //    item.eReasonCode = 3;
                            //    item.eMessage = "Ocorreu um erro ao criar o contacto no NAV.";
                            //    item.eMessages.Add(new TraceInformation(TraceType.Error, ex.Message));
                            //}


                            //if (!createContactTask.IsCompletedSuccessfully)
                            //{
                            //    //Delete Created Project on Database
                            //    DBContacts.Delete(item.No);

                            //    item.eReasonCode = 3;
                            //    item.eMessage = "Ocorreu um erro ao criar o contacto no NAV.";
                            //}
                            //else
                            //{
                            //Update Last Numeration Used
                            ConfiguraçãoNumerações configNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId);
                            if (configNumerations != null && autoGenId)
                            {
                                configNumerations.ÚltimoNºUsado         = item.No;
                                configNumerations.UtilizadorModificação = User.Identity.Name;
                                DBNumerationConfigurations.Update(configNumerations);
                            }
                            item.eReasonCode = 1;
                            item.eMessage    = "Contacto criado com sucesso.";
                            //}
                        }
                        else
                        {
                            item.eReasonCode = 3;
                            item.eMessage    = "Ocorreu um erro ao criar o contacto no portal.";
                        }
                    }
                    else
                    {
                        item.eReasonCode = 4;
                        item.eMessage    = "Já existe um contacto com o Nº " + item.No;
                    }
                }
                else
                {
                    item.eReasonCode = 5;
                    item.eMessage    = "A numeração configurada não é compativel com a inserida.";
                }
            }
            return(Json(item));
        }
예제 #14
0
        public static string GetNextNumeration(int id, bool isAuto, bool isRec)
        {
            try
            {
                ConfiguraçãoNumerações ConfNumeration = null;
                using (var ctx = new SuchDBContext())
                {
                    ConfNumeration = ctx.ConfiguraçãoNumerações.Where(x => x.Id == id).FirstOrDefault();

                    if (ConfNumeration.Automático == isAuto)
                    {
                        string NextNumeration = ConfNumeration.Prefixo;

                        //Check if is first numeration
                        if (ConfNumeration.ÚltimoNºUsado != null && ConfNumeration.ÚltimoNºUsado != "")
                        {
                            int LastUsedNumber = int.Parse(ConfNumeration.ÚltimoNºUsado.Replace(ConfNumeration.Prefixo, ""));

                            LastUsedNumber += ConfNumeration.QuantidadeIncrementar.Value;
                            if (isRec)
                            {
                                int    year    = DateTime.Today.Year % 100;
                                string lastNum = year + LastUsedNumber.ToString().PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0');
                                lastNum         = lastNum.Substring(2);
                                NextNumeration += lastNum;
                            }
                            else
                            {
                                NextNumeration += LastUsedNumber.ToString().PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0');
                            }
                        }
                        else
                        {
                            if (isRec)
                            {
                                int year = DateTime.Today.Year % 100;

                                NextNumeration += year + "1".PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0');
                            }
                            else
                            {
                                NextNumeration += "1".PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0');
                            }
                        }

                        ConfNumeration.ÚltimoNºUsado = NextNumeration;
                        ctx.ConfiguraçãoNumerações.Update(ConfNumeration);
                        ctx.SaveChanges();

                        return(NextNumeration);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }