Exemplo n.º 1
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(""));
        }
        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(""));
        }
Exemplo n.º 3
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));
        }
Exemplo n.º 6
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(""));
        }
Exemplo n.º 7
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));
        }
Exemplo n.º 8
0
        public JsonResult GetSimplifiedRequisitionData([FromBody] SimplifiedRequisitionViewModel item)
        {
            ConfigUtilizadores             utilizador = DBUserConfigurations.GetById(User.Identity.Name);
            SimplifiedRequisitionViewModel result     = new SimplifiedRequisitionViewModel();

            result.Status     = 1;
            result.EmployeeNo = utilizador.EmployeeNo;
            if (item != null && !string.IsNullOrEmpty(item.RequisitionNo))
            {
                result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetById(item.RequisitionNo));
            }
            else
            {
                //Get Numeration
                string       entityId  = "";
                bool         autoGenId = false;
                Configuração conf      = DBConfigurations.GetById(1);
                int          entityNumerationConfId = conf.NumeraçãoRequisiçõesSimplificada.Value;
                autoGenId            = true;
                entityId             = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                result.RequisitionNo = entityId;
            }
            return(Json(result));
        }
Exemplo n.º 9
0
        public RequisitionViewModel CreatePurchaseOrderFor(RequisitionViewModel requisition)
        {
            if (requisition != null && requisition.Lines != null && requisition.Lines.Count > 0)
            {
                if (string.IsNullOrEmpty(requisition.ReceivedDate))
                {
                    requisition.eReasonCode = 4;
                    requisition.eMessage    = "É obrigatório o preenchimento do campo Data Receção no Geral.";
                    return(requisition);
                }

                //use for database update later
                var requisitionLines = requisition.Lines;

                requisitionLines.RemoveAll(x => x.CriarNotaEncomenda == null || x.CriarNotaEncomenda == false);
                requisitionLines.RemoveAll(x => x.CreatedOrderNo != "" && x.CreatedOrderNo != null);
                //FIM

                if (requisitionLines.Any(x => string.IsNullOrEmpty(x.SupplierNo) || !x.UnitCost.HasValue || x.UnitCost.Value == 0))
                {
                    throw new Exception("É obrigatório o preenchimento do fornecedor e do custo unitário nas linhas");
                }


                List <PurchOrderDTO> purchOrders = new List <PurchOrderDTO>();
                List <DBNAV2017SupplierProductRef.SuppliersProductsRefs> supplierProductRef = new List <DBNAV2017SupplierProductRef.SuppliersProductsRefs>();

                try
                {
                    purchOrders = requisitionLines.GroupBy(x =>
                                                           x.SupplierNo,
                                                           x => x,
                                                           (key, items) => new PurchOrderDTO
                    {
                        SupplierId               = key,
                        RequisitionId            = requisition.RequisitionNo,
                        CenterResponsibilityCode = requisition.CenterResponsibilityCode,
                        FunctionalAreaCode       = requisition.FunctionalAreaCode,
                        RegionCode               = requisition.RegionCode,
                        LocalMarketRegion        = requisition.LocalMarketRegion,
                        InAdvance          = requisition.InAdvance.HasValue ? requisition.InAdvance.Value : false,
                        PricesIncludingVAT = requisition.PricesIncludingVAT.HasValue ? requisition.PricesIncludingVAT.Value : false,
                        LocationCode       = requisition.LocalCode,
                        Purchaser_Code     = requisition.NumeroMecanografico,


                        Lines = items.Select(line => new PurchOrderLineDTO()
                        {
                            LineId                   = line.LineNo,
                            Type                     = line.Type,
                            Code                     = line.Code,
                            Description              = line.Description,
                            Description2             = line.Description2,
                            ProjectNo                = line.ProjectNo,
                            QuantityRequired         = line.QuantityRequired,
                            UnitCost                 = line.UnitCost,
                            LocationCode             = line.LocalCode,
                            OpenOrderNo              = line.OpenOrderNo,
                            OpenOrderLineNo          = line.OpenOrderLineNo,
                            CenterResponsibilityCode = line.CenterResponsibilityCode,
                            FunctionalAreaCode       = line.FunctionalAreaCode,
                            RegionCode               = line.RegionCode,
                            UnitMeasureCode          = line.UnitMeasureCode,
                            VATBusinessPostingGroup  = line.VATBusinessPostingGroup,
                            VATProductPostingGroup   = line.VATProductPostingGroup,
                            DiscountPercentage       = line.DiscountPercentage.HasValue ? line.DiscountPercentage.Value : 0,
                        })
                                .ToList()
                    })
                                  .ToList();

                    supplierProductRef = DBNAV2017SupplierProductRef.GetSuplierProductRefsForRequisition(_config.NAVDatabaseName, _config.NAVCompanyName, requisition.RequisitionNo);
                }
                catch
                {
                    throw new Exception("Ocorreu um erro ao agrupar as linhas.");
                }

                if (purchOrders.Count() > 0)
                {
                    purchOrders.ForEach(purchOrder =>
                    {
                        try
                        {
                            purchOrder.Lines.ForEach(line =>
                                                     line.SupplierProductCode = supplierProductRef
                                                                                .Where(x => x.ProductId == line.Code &&
                                                                                       x.SupplierNo == purchOrder.SupplierId &&
                                                                                       x.UnitOfMeasureCode == line.UnitMeasureCode)
                                                                                .FirstOrDefault()
                                                                                ?.SupplierProductId
                                                     );

                            //Novo código que adiciona + linhas mas só para requisições do tipo nutrição
                            if (requisition.RequestNutrition == true)
                            {
                                string codFornecedor = purchOrder.SupplierId;
                                List <ConfigLinhasEncFornecedor> LinhasEncFornecedor = DBConfigLinhasEncFornecedor.GetAll().Where(x => x.VendorNo == codFornecedor).ToList();

                                if (LinhasEncFornecedor != null && LinhasEncFornecedor.Count > 0)
                                {
                                    foreach (ConfigLinhasEncFornecedor linha in LinhasEncFornecedor)
                                    {
                                        string ProjectNo                = string.Empty;
                                        string RegionCode               = string.Empty;
                                        string FunctionalAreaCode       = string.Empty;
                                        string CenterResponsibilityCode = string.Empty;
                                        string ArmazemCompraDireta      = string.Empty;

                                        Configuração Config = DBConfigurations.GetById(1);
                                        if (Config != null)
                                        {
                                            ArmazemCompraDireta = Config.ArmazemCompraDireta;
                                        }

                                        UnidadesProdutivas UnidProd = DBProductivityUnits.GetAll().Where(x => x.NºCliente == codFornecedor).FirstOrDefault();
                                        if (UnidProd != null)
                                        {
                                            ProjectNo = UnidProd.ProjetoMatSubsidiárias;
                                        }

                                        if (!string.IsNullOrEmpty(ProjectNo))
                                        {
                                            NAVProjectsViewModel Project = DBNAV2017Projects.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, ProjectNo).FirstOrDefault();
                                            if (Project != null)
                                            {
                                                RegionCode               = Project.RegionCode;
                                                FunctionalAreaCode       = Project.AreaCode;
                                                CenterResponsibilityCode = Project.CenterResponsibilityCode;
                                            }
                                        }

                                        PurchOrderLineDTO purchOrderLine = new PurchOrderLineDTO()
                                        {
                                            LineId                   = null,
                                            Type                     = 2, //PRODUTO
                                            Code                     = linha.No,
                                            Description              = linha.Description,
                                            Description2             = linha.Description2,
                                            ProjectNo                = ProjectNo,
                                            QuantityRequired         = linha.Quantity,
                                            UnitCost                 = linha.Valor,
                                            LocationCode             = ArmazemCompraDireta,
                                            OpenOrderNo              = "",   //line.OpenOrderNo,
                                            OpenOrderLineNo          = null, //line.OpenOrderLineNo,
                                            CenterResponsibilityCode = CenterResponsibilityCode,
                                            FunctionalAreaCode       = FunctionalAreaCode,
                                            RegionCode               = RegionCode,
                                            UnitMeasureCode          = linha.UnitOfMeasure,
                                            VATBusinessPostingGroup  = "", //line.VATBusinessPostingGroup,
                                            VATProductPostingGroup   = "", //line.VATProductPostingGroup,
                                            DiscountPercentage       = 0   //line.DiscountPercentage.HasValue ? line.DiscountPercentage.Value : 0,
                                        };
                                        purchOrder.Lines.Add(purchOrderLine);
                                    }
                                }
                            }

                            //var result = CreateNAVPurchaseOrderFor(purchOrder, Convert.ToDateTime(requisition.ReceivedDate), requisition.Comments);
                            var result = CreateNAVPurchaseOrderFor(purchOrder, Convert.ToDateTime(requisition.ReceivedDate));
                            if (result.CompletedSuccessfully)
                            {
                                //Update req
                                requisition.OrderNo = result.ResultValue;

                                //Update Requisition Lines
                                requisition.Lines.ForEach(line =>
                                {
                                    if (line.SupplierNo == purchOrder.SupplierId)
                                    {
                                        line.CreatedOrderNo = result.ResultValue;
                                        line.UpdateUser     = this.changedByUserName;
                                    }
                                });
                                //Commit to DB
                                var updatedReq = DBRequest.Update(requisition.ParseToDB(), true);
                                //bool linesUpdated = DBRequestLine.Update(requisition.Lines.ParseToDB());
                                //if (linesUpdated)
                                if (updatedReq != null)
                                {
                                    requisition.eMessages.Add(new TraceInformation(TraceType.Success, "Criada encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; "));
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            requisition.eMessages.Add(new TraceInformation(TraceType.Error, "Ocorreu um erro ao criar encomenda para o fornecedor núm. " + purchOrder.SupplierId + ": " + ex.Message));
                            //requisition.eMessages.Add(new TraceInformation(TraceType.Exception, purchOrder.SupplierId + " " + ex.Message));
                        }
                    });

                    if (requisition.eMessages.Any(x => x.Type == TraceType.Success))
                    {
                        //Refresh lines - Get from db
                        var updatedLines = DBRequestLine.GetByRequisitionId(requisition.RequisitionNo);
                        if (updatedLines != null)
                        {
                            requisition.Lines = updatedLines.ParseToViewModel();
                        }
                    }

                    if (requisition.eMessages.Any(x => x.Type == TraceType.Error))
                    {
                        requisition.eReasonCode = 2;
                        requisition.eMessage    = "Ocorram erros ao criar encomenda de compra.";
                    }
                    else
                    {
                        requisition.eReasonCode = 1;
                        requisition.eMessage    = "Encomenda de compra criada com sucesso.";
                    }
                }
                else
                {
                    requisition.eReasonCode = 3;
                    requisition.eMessage    = "Não existem linhas que cumpram os requisitos de criação de encomenda.";
                }
            }
            return(requisition);
        }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
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));
        }