Beispiel #1
0
        public static bool Delete(Requisição ObjectToDelete)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    //if (ObjectToDelete.DiárioDeProjeto.Count() > 0)
                    //    ctx.DiárioDeProjeto.RemoveRange(ObjectToDelete.DiárioDeProjeto);

                    //if (ObjectToDelete.LinhasPEncomendaProcedimentosCcp.Count() > 0)
                    //    ctx.LinhasPEncomendaProcedimentosCcp.RemoveRange(ObjectToDelete.LinhasPEncomendaProcedimentosCcp);

                    if (ObjectToDelete.LinhasRequisição.Count() > 0)
                    {
                        ctx.LinhasRequisição.RemoveRange(ObjectToDelete.LinhasRequisição);
                    }

                    if (ObjectToDelete.LinhasRequisiçãoHist.Count() > 0)
                    {
                        ctx.LinhasRequisiçãoHist.RemoveRange(ObjectToDelete.LinhasRequisiçãoHist);
                    }

                    if (ObjectToDelete.LinhasRequisiçõesSimplificadas.Count() > 0)
                    {
                        ctx.LinhasRequisiçõesSimplificadas.RemoveRange(ObjectToDelete.LinhasRequisiçõesSimplificadas);
                    }

                    //if (ObjectToDelete.MovimentosDeProjeto.Count() > 0)
                    //    ctx.MovimentosDeProjeto.RemoveRange(ObjectToDelete.MovimentosDeProjeto);

                    //if (ObjectToDelete.PréMovimentosProjeto.Count() > 0)
                    //    ctx.PréMovimentosProjeto.RemoveRange(ObjectToDelete.PréMovimentosProjeto);

                    if (ObjectToDelete.RequisicoesRegAlteracoes.Count() > 0)
                    {
                        ctx.RequisicoesRegAlteracoes.RemoveRange(ObjectToDelete.RequisicoesRegAlteracoes);
                    }

                    ctx.Requisição.Remove(ObjectToDelete);
                    ctx.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Beispiel #2
0
        public static Requisição Create(Requisição ObjectToCreate)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    ObjectToCreate.DataHoraCriação = DateTime.Now;
                    ctx.Requisição.Add(ObjectToCreate);
                    ctx.SaveChanges();
                }

                return(ObjectToCreate);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Beispiel #3
0
 public static Requisição Create(Requisição item)
 {
     try
     {
         using (var ctx = new SuchDBContext())
         {
             item.ModeloDeRequisição = true;
             item.DataHoraCriação    = DateTime.Now;
             ctx.Requisição.Add(item);
             ctx.SaveChanges();
         }
         return(item);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Beispiel #4
0
 public static bool Delete(Requisição item)//, bool updateLines = false)
 {
     try
     {
         using (var ctx = new SuchDBContext())
         {
             var itemToDelete = ctx.Requisição
                                .Include(x => x.LinhasRequisição)
                                .FirstOrDefault(x => x.NºRequisição == item.NºRequisição);
             ctx.LinhasRequisição.RemoveRange(itemToDelete.LinhasRequisição);
             ctx.Requisição.Remove(itemToDelete);
             ctx.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Beispiel #5
0
        public static Requisição Update(Requisição item)//, bool updateLines = false)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    //if (updateLines && item.LinhasRequisição != null)
                    //    DBRequestLine.Update(item.LinhasRequisição.ToList(), ctx);

                    item.ModeloDeRequisição  = true;
                    item.DataHoraModificação = DateTime.Now;
                    ctx.Requisição.Update(item);
                    ctx.SaveChanges();
                }
                return(item);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Beispiel #6
0
        public static Requisição Update(Requisição objectToUpdate, bool updateLines = false, bool addLogEntry = false)
        {
            try
            {
                using (var ctx = new SuchDBContext())
                {
                    if (updateLines && objectToUpdate.LinhasRequisição != null)
                    {
                        DBRequestLine.Update(objectToUpdate.LinhasRequisição.ToList(), ctx);
                    }
                    if (addLogEntry)
                    {
                        var logEntry = new RequisicoesRegAlteracoes();
                        logEntry.ModificadoEm  = DateTime.Now;
                        logEntry.ModificadoPor = objectToUpdate.UtilizadorModificação;
                        logEntry.NºRequisição  = objectToUpdate.NºRequisição;
                        if (objectToUpdate.Estado.HasValue)
                        {
                            logEntry.Estado = objectToUpdate.Estado.Value;
                        }

                        ctx.RequisicoesRegAlteracoes.Add(logEntry);
                    }
                    objectToUpdate.DataHoraModificação = DateTime.Now;
                    ctx.Requisição.Update(objectToUpdate);
                    ctx.SaveChanges();

                    objectToUpdate = GetById(objectToUpdate.NºRequisição);
                }

                return(objectToUpdate);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Beispiel #7
0
        public RequisitionViewModel CreateMarketConsultFor(RequisitionViewModel requisition)
        {
            try
            {
                //Verificar se pode criar uma consulta de mercado
                if (requisition.Lines.Where(p => p.CreateMarketSearch == true).Where(p => string.IsNullOrEmpty(p.QueryCreatedMarketNo)).Count() <= 0)
                {
                    requisition.eReasonCode = -1;
                    requisition.eMessage    = "Consulta ao Mercado não pode ser criada! As linhas devem estar marcadas com 'Criar Consulta Mercado' e não ter 'Nº de Consulta Mercado Criada'";
                    return(requisition);
                }

                //Criar nova Consulta Mercado - Obtenção do novo NumConsultaMercado e incrementar Numerações
                ConsultaMercado consultaMercado = DBConsultaMercado.Create(changedByUserName);

                //Ir Buscar o Nº Mecanográfico do utilizado
                ConfigUtilizadores UC = DBUserConfigurations.GetById(changedByUserName);

                //Actualizar o registo com os dados possiveis
                consultaMercado.CodProjecto               = requisition.ProjectNo == "" ? null : requisition.ProjectNo;
                consultaMercado.Descricao                 = "Consulta Mercado - " + requisition.RequisitionNo;
                consultaMercado.CodRegiao                 = requisition.RegionCode;
                consultaMercado.CodAreaFuncional          = requisition.FunctionalAreaCode;
                consultaMercado.CodCentroResponsabilidade = requisition.CenterResponsibilityCode;
                consultaMercado.DataPedidoCotacao         = DateTime.Now;
                consultaMercado.CodLocalizacao            = requisition.LocalCode;
                consultaMercado.Destino = 0;
                consultaMercado.Estado  = 0;
                consultaMercado.UtilizadorRequisicao = requisition.CreateUser;
                consultaMercado.Fase                   = 0;
                consultaMercado.Modalidade             = 0;
                consultaMercado.PedidoCotacaoCriadoEm  = DateTime.Now;
                consultaMercado.PedidoCotacaoCriadoPor = changedByUserName;
                consultaMercado.NumRequisicao          = requisition.RequisitionNo;
                consultaMercado.Urgente                = requisition.Urgent;
                consultaMercado.CodComprador           = !string.IsNullOrEmpty(UC.EmployeeNo) ? UC.EmployeeNo : null;

                consultaMercado = DBConsultaMercado.Update(consultaMercado);

                //Para cada linha da requisição
                foreach (RequisitionLineViewModel requisitionLine in requisition.Lines.Where(p => p.CreateMarketSearch == true).Where(p => p.QueryCreatedMarketNo == null))
                {
                    decimal _qty            = requisitionLine.QuantityToRequire != null ? requisitionLine.QuantityToRequire.Value : 0;
                    decimal _custo          = requisitionLine.UnitCost != null ? requisitionLine.UnitCost.Value : 0;
                    decimal _custoTotalPrev = Math.Round(_qty * _custo * 100) / 100;

                    DateTime?_dataEntrega;

                    try
                    {
                        _dataEntrega = DateTime.Parse(requisitionLine.ExpectedReceivingDate);
                    }
                    catch
                    {
                        _dataEntrega = null;
                    }

                    //Inserir Linhas na tabela "Linhas_Consulta_Mercado"
                    LinhasConsultaMercado linhasConsultaMercado = new LinhasConsultaMercado()
                    {
                        NumConsultaMercado        = consultaMercado.NumConsultaMercado,
                        CodProduto                = requisitionLine.Code,
                        Descricao                 = requisitionLine.Description,
                        Descricao2                = requisitionLine.Description2,
                        NumProjecto               = requisitionLine.ProjectNo,
                        CodRegiao                 = requisitionLine.RegionCode,
                        CodAreaFuncional          = requisitionLine.FunctionalAreaCode,
                        CodCentroResponsabilidade = requisitionLine.CenterResponsibilityCode,
                        CodLocalizacao            = requisitionLine.LocalCode,
                        Quantidade                = requisitionLine.QuantityToRequire,
                        CustoUnitarioPrevisto     = requisitionLine.UnitCost,
                        CustoTotalPrevisto        = _custoTotalPrev,
                        CodUnidadeMedida          = requisitionLine.UnitMeasureCode,
                        DataEntregaPrevista       = _dataEntrega,
                        NumRequisicao             = requisition.RequisitionNo,
                        LinhaRequisicao           = requisitionLine.LineNo,
                        CriadoEm  = DateTime.Now,
                        CriadoPor = changedByUserName
                    };
                    linhasConsultaMercado = DBConsultaMercado.Create(linhasConsultaMercado);


                    //Verificar se tem Fornecedor identificado
                    if (requisitionLine.SupplierNo != null)
                    {
                        //Verificar se na tabela "Seleccao_Entidades" já temos este Fornecedor para esta Consulta Mercado
                        SeleccaoEntidades seleccaoEntidades = DBConsultaMercado.GetSeleccaoEntidadesPorNumConsultaFornecedor(consultaMercado.NumConsultaMercado, requisitionLine.SupplierNo);

                        if (seleccaoEntidades == null)
                        {
                            seleccaoEntidades = new SeleccaoEntidades()
                            {
                                NumConsultaMercado = consultaMercado.NumConsultaMercado,
                                CodFornecedor      = requisitionLine.SupplierNo,
                                NomeFornecedor     = !string.IsNullOrEmpty(requisitionLine.SupplierNo) ? DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, requisitionLine.SupplierNo).FirstOrDefault().Name : "",
                                Selecionado        = true,
                                Preferencial       = true
                            };

                            seleccaoEntidades = DBConsultaMercado.Create(seleccaoEntidades);
                        }
                    }

                    requisitionLine.QueryCreatedMarketNo = consultaMercado.NumConsultaMercado;

                    DBRequestLine.Update(DBRequestLine.ParseToDB(requisitionLine));
                }

                requisition.MarketInquiryNo = consultaMercado.NumConsultaMercado;

                Requisição requisição = DBRequest.ParseToDB(requisition);
                DBRequest.Update(requisição);
                requisition = DBRequest.ParseToViewModel(requisição);

                requisition.eReasonCode = 1;
                requisition.eMessage    = "Consulta ao Mercado " + consultaMercado.NumConsultaMercado + " criada com sucesso";
            }
            catch (Exception ex)
            {
                requisition.eReasonCode = -1;
                requisition.eMessage    = ex.Message;
            }

            return(requisition);
        }
Beispiel #8
0
        public static RequisitionViewModel ParseToViewModel(this Requisição item)
        {
            if (item != null)
            {
                return(new RequisitionViewModel()
                {
                    RequisitionNo = item.NºRequisição,
                    TipoReq = item.TipoReq,
                    Area = item.Área,
                    State = item.Estado.HasValue && Enum.IsDefined(typeof(RequisitionStates), item.Estado.Value) ? (RequisitionStates)item.Estado.Value : (RequisitionStates?)null,
                    ProjectNo = item.NºProjeto,
                    RegionCode = item.CódigoRegião,
                    FunctionalAreaCode = item.CódigoÁreaFuncional,
                    CenterResponsibilityCode = item.CódigoCentroResponsabilidade,
                    LocalCode = item.CódigoLocalização,
                    EmployeeNo = item.NºFuncionário,
                    Vehicle = item.Viatura,
                    ReceivedDate = !item.DataReceção.HasValue ? "" : item.DataReceção.Value.ToString("yyyy-MM-dd"),
                    ReceivedDateHour = !item.DataReceção.HasValue ? "" : item.DataReceção.Value.ToString("HH:mm"),
                    Urgent = item.Urgente,
                    Sample = item.Amostra,
                    Attachment = item.Anexo,
                    Immobilized = item.Imobilizado,
                    BuyCash = item.CompraADinheiro,
                    LocalCollectionCode = item.CódigoLocalRecolha,
                    LocalDeliveryCode = item.CódigoLocalEntrega,
                    Comments = item.Observações,
                    NoDocumento = item.NoDocumento,
                    RejeicaoMotivo = item.RejeicaoMotivo,
                    RequestModel = item.ModeloDeRequisição,
                    CreateDate = !item.DataHoraCriação.HasValue ? "" : item.DataHoraCriação.Value.ToString("yyyy-MM-dd HH:mm:ss"),
                    CreateUser = item.UtilizadorCriação,
                    UpdateDate = item.DataHoraModificação,
                    UpdateUser = item.UtilizadorModificação,
                    RelatedSearches = item.CabimentoOrçamental,
                    Exclusive = item.Exclusivo,
                    AlreadyPerformed = item.JáExecutado,
                    Equipment = item.Equipamento,
                    StockReplacement = item.ReposiçãoDeStock,
                    Reclamation = item.Reclamação,
                    RequestReclaimNo = item.NºRequisiçãoReclamada,
                    ResponsibleCreation = item.ResponsávelCriação,
                    ResponsibleApproval = item.ResponsávelAprovação,
                    ResponsibleValidation = item.ResponsávelValidação,
                    ResponsibleReception = item.ResponsávelReceção,
                    ApprovalDate = item.DataAprovação,
                    ApprovalDateText = !item.DataAprovação.HasValue ? "" : item.DataAprovação.Value.ToString("yyyy-MM-dd"),
                    ApprovalDateHour = !item.DataAprovação.HasValue ? "" : item.DataAprovação.Value.ToString("HH:mm"),
                    ValidationDate = item.DataValidação,
                    ValidationDateText = !item.DataValidação.HasValue ? "" : item.DataValidação.Value.ToString("yyyy-MM-dd"),
                    ValidationDateHour = !item.DataValidação.HasValue ? "" : item.DataValidação.Value.ToString("HH:mm"),
                    UnitFoodProduction = item.UnidadeProdutivaAlimentação,
                    RequestNutrition = item.RequisiçãoNutrição,
                    RequestNutritionText = !item.RequisiçãoNutrição.HasValue ? "" : item.RequisiçãoNutrição == true ? "Sim" : "Não",
                    RequestforDetergents = item.RequisiçãoDetergentes,
                    ProcedureCcpNo = item.NºProcedimentoCcp,
                    Approvers = item.Aprovadores,
                    LocalMarket = item.MercadoLocal,
                    LocalMarketRegion = item.RegiãoMercadoLocal,
                    RepairWithWarranty = item.ReparaçãoComGarantia,
                    Emm = item.Emm,
                    WarehouseDeliveryDate = !item.DataEntregaArmazém.HasValue ? "" : item.DataEntregaArmazém.Value.ToString("yyyy-MM-dd"),
                    LocalCollection = item.LocalDeRecolha,
                    CollectionAddress = item.MoradaRecolha,
                    Collection2Address = item.Morada2Recolha,
                    CollectionPostalCode = item.CódigoPostalRecolha,
                    CollectionLocality = item.LocalidadeRecolha,
                    CollectionContact = item.ContatoRecolha,
                    CollectionResponsibleReception = item.ResponsávelReceçãoRecolha,
                    LocalDelivery = item.LocalEntrega,
                    DeliveryAddress = item.MoradaEntrega,
                    Delivery2Address = item.Morada2Entrega,
                    DeliveryPostalCode = item.CódigoPostalEntrega,
                    LocalityDelivery = item.LocalidadeEntrega,
                    DeliveryContact = item.ContatoEntrega,
                    ResponsibleReceptionReception = item.ResponsávelReceçãoReceção,
                    InvoiceNo = item.NºFatura,
                    LocalMarketDate = item.DataMercadoLocal,
                    RequisitionDate = !item.DataRequisição.HasValue ? "" : item.DataRequisição.Value.ToString("yyyy-MM-dd"),
                    MarketInquiryNo = item.NºConsultaMercado,
                    OrderNo = item.NºEncomenda,
                    Budget = item.Orçamento,
                    EstimatedValue = item.ValorEstimado,
                    PricesIncludingVAT = item.PrecoIvaincluido.HasValue ? item.PrecoIvaincluido.Value : false,
                    InAdvance = item.Adiantamento.HasValue ? item.Adiantamento.Value : false,
                    PedirOrcamento = item.PedirOrcamento,
                    ValorTotalDocComIVA = item.ValorTotalDocComIVA,

                    Lines = item.LinhasRequisição.ToList().ParseToViewModel(),
                    //AROMAO 01/10/2018
                    ChangeLog = item.RequisicoesRegAlteracoes.ToList().ParseToViewModel()
                });
            }
            return(null);
        }
Beispiel #9
0
 public static Requisição UpdateHeaderAndLines(Requisição item, bool addLogEntry)
 {
     return(Update(item, true, addLogEntry));
 }
Beispiel #10
0
        public JsonResult CriarEncomendaCabimento([FromBody] List <LinhasPreEncomendaView> item)
        {
            //if (item != null)
            //{
            //    try
            //    {
            //        RequisitionService serv = new RequisitionService(configws, HttpContext.User.Identity.Name);
            //        item = serv.CreatePurchaseOrderFor(item);


            //    }
            //    catch (Exception ex)
            //    {
            //        item.eReasonCode = 2;
            //        item.eMessage = "Ocorreu um erro ao criar encomenda de compra (" + ex.Message + ")";
            //    }
            //}
            //else
            //{
            //    item = new LinhasPreEncomendaView()
            //    {
            //        eReasonCode = 3,
            //        eMessage = "Não é possivel criar encomenda de compra. A requisição não pode ser nula."
            //    };
            //}
            //return Json(item);



            /*
             * 1º - filtrar os itens que chegam aqui, ficando apenas com os que são:
             *  --> Documento a Criar = Encomenda (1)
             *  --> Criar Documento = true
             *  --> Nº Encomenda Aberto = ''
             *  --> Nº Linha Encomenda Aberto = ''
             * 2º - Criar Encomenda
             * 3º - As linhas da Requisição devem ficar marcadas  com o Nº da Encomenda criada (cada item tem um Nº Linha Requisição)
             * 4º - Colocar as linhas com Tratadas = 1
             */

            ErrorHandler resultado = new ErrorHandler
            {
                eReasonCode = 1,
                eMessage    = "Criada Encomenda com sucesso."
            };

            if (item != null)
            {
                try
                {
                    List <LinhasPreEncomendaView> list = item.Where(it => it.DocumentoACriar == 1).Where(it => it.CriarDocumento == true).Where(it => it.NumEncomendaAberto == string.Empty).Where(it => !it.NumLinhaEncomendaAberto.HasValue).ToList();

                    List <PurchOrderDTO> purchOrders = new List <PurchOrderDTO>();

                    try
                    {
                        if (list != null && list.Count() > 0)
                        {
                            purchOrders = list.GroupBy(x =>
                                                       x.NumFornecedor,
                                                       x => x,
                                                       (key, items) => new PurchOrderDTO
                            {
                                SupplierId               = key,
                                RequisitionId            = list.Where(f => f.NumFornecedor == key).FirstOrDefault().NumRequisicao,
                                CenterResponsibilityCode = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoCentroResponsabilidade,
                                FunctionalAreaCode       = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoAreaFuncional,
                                RegionCode               = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoRegiao,
                                LocalMarketRegion        = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoLocalizacao,
                                Lines = items.Select(line => new PurchOrderLineDTO()
                                {
                                    LineId                   = line.NumLinhaPreEncomenda,
                                    Type                     = null,
                                    Code                     = line.CodigoProduto,
                                    Description              = line.DescricaoProduto,
                                    ProjectNo                = line.NumProjeto,
                                    QuantityRequired         = line.QuantidadeDisponibilizada,
                                    UnitCost                 = line.CustoUnitario,
                                    LocationCode             = line.CodigoLocalizacao,
                                    OpenOrderNo              = line.NumEncomendaAberto,
                                    OpenOrderLineNo          = line.NumLinhaEncomendaAberto,
                                    CenterResponsibilityCode = line.CodigoCentroResponsabilidade,
                                    FunctionalAreaCode       = line.CodigoAreaFuncional,
                                    RegionCode               = line.CodigoRegiao,
                                    UnitMeasureCode          = line.CodigoUnidadeMedida,
                                    VATBusinessPostingGroup  = string.Empty,
                                    VATProductPostingGroup   = string.Empty,
                                }).ToList()
                            }).ToList();
                        }
                    }
                    catch
                    {
                        throw new Exception("Ocorreu um erro ao agrupar as linhas.");
                    }

                    if (purchOrders != null && purchOrders.Count() > 0)
                    {
                        purchOrders.ForEach(purchOrder =>
                        {
                            RequisitionViewModel requisition = DBRequest.GetById(purchOrder.RequisitionId).ParseToViewModel();

                            try
                            {
                                //purchOrder.Purchaser_Code = User.Identity.Name;
                                purchOrder.Purchaser_Code = string.IsNullOrEmpty(DBUserConfigurations.GetById(User.Identity.Name).EmployeeNo) ? "" : DBUserConfigurations.GetById(User.Identity.Name).EmployeeNo;

                                var result = CreateNAVPurchaseOrderFor(purchOrder, Convert.ToDateTime(requisition.ReceivedDate));
                                if (result.CompletedSuccessfully)
                                {
                                    foreach (PurchOrderLineDTO Linha in purchOrder.Lines)
                                    {
                                        LinhasPreEncomenda LinhaPre = DBEncomendas.GetLinhasPreEncomenda((int)Linha.LineId);

                                        if (LinhaPre != null)
                                        {
                                            string ReqNo   = LinhaPre.NºRequisição;
                                            int ReqNoLinha = (int)LinhaPre.NºLinhaRequisição;

                                            Requisição Req = DBRequest.GetById(ReqNo);
                                            if (Req != null)
                                            {
                                                Req.NºEncomenda           = result.ResultValue;
                                                Req.UtilizadorModificação = User.Identity.Name;
                                                Req.DataHoraModificação   = DateTime.Now;
                                                if (DBRequest.Update(Req) != null)
                                                {
                                                    LinhasRequisição ReqLinha = DBRequestLine.GetByRequisicaoNoAndLineNo(ReqNo, ReqNoLinha);
                                                    if (ReqLinha != null)
                                                    {
                                                        ReqLinha.NºEncomendaCriada     = result.ResultValue;
                                                        ReqLinha.UtilizadorModificação = User.Identity.Name;
                                                        ReqLinha.DataHoraModificação   = DateTime.Now;
                                                        DBRequestLine.Update(ReqLinha);
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    foreach (LinhasPreEncomendaView Linha in list)
                                    {
                                        if (Linha.NumFornecedor == purchOrder.SupplierId)
                                        {
                                            Linha.NumPreEncomenda       = result.ResultValue;
                                            Linha.DocumentoACriar       = null;
                                            Linha.CriarDocumento        = false;
                                            Linha.Tratada               = true;
                                            Linha.UtilizadorModificacao = User.Identity.Name;
                                            Linha.DataHoraModificacao   = DateTime.Now;
                                            DBEncomendas.Update(DBEncomendas.CastLinhasPreEncomendaToDB(Linha));
                                        }
                                    }

                                    resultado.eMessages.Add(new TraceInformation(TraceType.Success, "Criada encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; "));

                                    //Update req
                                    //requisition.OrderNo = result.ResultValue;

                                    //Update Requisition Lines
                                    //requisition.Lines.Where(x => x.LineNo == purchOrder.OpenOrderLineNo).ToList().ForEach(line =>
                                    //{
                                    //    line.CreatedOrderNo = result.ResultValue;
                                    //    line.UpdateUser = User.Identity.Name;
                                    //    line.UpdateDateTime = DateTime.Now;
                                    //});
                                    //Commit to DB
                                    //var updatedReq = DBRequest.Update(requisition.ParseToDB(), true);



                                    //bool linesUpdated = DBRequestLine.Update(requisition.Lines.ParseToDB());
                                    //if (linesUpdated)
                                    //if (updatedReq != null)
                                    //{
                                    //    resultado.eMessages.Add(new TraceInformation(TraceType.Success, "Criada encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; "));
                                    //}
                                }
                            }
                            catch (Exception ex)
                            {
                                resultado.eMessages.Add(new TraceInformation(TraceType.Error, "Ocorreu um erro ao criar encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; "));
                                resultado.eMessages.Add(new TraceInformation(TraceType.Exception, purchOrder.SupplierId + " " + ex.Message));
                            }

                            if (resultado.eMessages.Any(x => x.Type == TraceType.Error))
                            {
                                resultado.eReasonCode = 2;
                                //resultado.eMessage = "Ocorreram erros ao criar encomenda de compra.";

                                resultado.eMessage = "Ocorreram erros ao criar encomenda de compra." + Environment.NewLine + resultado.eMessages[resultado.eMessages.Count() - 1].Message;
                            }
                            else
                            {
                                resultado.eReasonCode = 1;
                                resultado.eMessage    = "Encomenda de compra criada com sucesso.";
                            }
                        });
                    }
                    else
                    {
                        resultado.eReasonCode = 3;
                        resultado.eMessage    = "Não existem linhas que cumpram os requisitos de validação do mercado local.";
                    }
                }
                catch (Exception ex)
                {
                    resultado.eReasonCode = -1;
                    resultado.eMessage    = "Erro desconhecido.";
                }
            }

            return(Json(resultado));
        }