示例#1
0
        public JsonResult GetLinhasPreEncomendaDetails([FromBody] LinhasPreEncomendaView data)
        {
            try
            {
                if (data != null)
                {
                    LinhasPreEncomenda Linhas = DBEncomendas.GetLinhasPreEncomenda(data.NumLinhaPreEncomenda);

                    if (Linhas != null)
                    {
                        LinhasPreEncomendaView linhasView = DBEncomendas.CastLinhasPreEncomendaToView(Linhas);
                        linhasView.NomeFornecedor_Show = DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, linhasView.NumFornecedor).Count > 0 ? DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, linhasView.NumFornecedor).FirstOrDefault().Name : string.Empty;
                        return(Json(linhasView));
                    }

                    return(Json(new LinhasPreEncomendaView()));
                }
            }
            catch (Exception e)
            {
                return(null);
            }

            return(Json(false));
        }
示例#2
0
        //Listagem das Folhas de Horas consoante o estado
        public JsonResult GetListComprasByEstado([FromBody] Compras ML)
        {
            UserAccessesViewModel UPerm = DBUserAccesses.GetByUserAreaFunctionality(User.Identity.Name, Enumerations.Features.MercadoLocal);

            if (UPerm != null && UPerm.Read.Value)
            {
                ViewBag.UPermissions = UPerm;

                List <ComprasViewModel> result = new List <ComprasViewModel>();
                if (ML.Estado == 0)
                {
                    result = DBCompras.GetAll();
                }
                else
                {
                    result = DBCompras.GetAllByEstado((int)ML.Estado);
                }

                if (result != null)
                {
                    List <NAVProjectsViewModel>  AllProjects = DBNAV2017Projects.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, "");
                    List <LinhasRequisição>      AllLines    = DBRequestLine.GetAll();
                    List <NAVSupplierViewModels> AllSupliers = DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, "");

                    result.ForEach(Compras =>
                    {
                        Compras.RegiaoMercadoLocalTexto = Compras.RegiaoMercadoLocal == null ? "" : EnumerablesFixed.LocalMarketRegions.Where(y => y.Id == Compras.RegiaoMercadoLocal).FirstOrDefault().Value;
                        Compras.CodigoProdutoTexto      = Compras.CodigoProduto == null ? "" : Compras.CodigoProduto;
                        Compras.EstadoTexto             = Compras.Estado == null ? "" : EnumerablesFixed.ComprasEstado.Where(y => y.Id == Compras.Estado).FirstOrDefault().Value;

                        if (!string.IsNullOrEmpty(Compras.NoFornecedor))
                        {
                            Compras.NoFornecedorTexto = Compras.NoFornecedor == null ? "" : Compras.NoFornecedor + " - " + AllSupliers.Where(x => x.No_ == Compras.NoFornecedor).FirstOrDefault() != null ? AllSupliers.Where(x => x.No_ == Compras.NoFornecedor).FirstOrDefault().Name : "";
                        }

                        if (!string.IsNullOrEmpty(Compras.NoRequisicao) && Compras.NoLinhaRequisicao != null)
                        {
                            Compras.RecusadoComprasTexto = AllLines.Where(x => x.NºRequisição == Compras.NoRequisicao && x.NºLinha == Compras.NoLinhaRequisicao).FirstOrDefault() != null ? AllLines.Where(x => x.NºRequisição == Compras.NoRequisicao && x.NºLinha == Compras.NoLinhaRequisicao).FirstOrDefault().RecusadoCompras == true ? "Sim" : "Não" : "";
                        }

                        if (!string.IsNullOrEmpty(Compras.NoProjeto))
                        {
                            Compras.NoProjetoTexto = AllProjects.Where(x => x.No == Compras.NoProjeto).FirstOrDefault() != null ? AllProjects.Where(x => x.No == Compras.NoProjeto).FirstOrDefault().Description : "";
                        }
                    });
                }

                return(Json(result.OrderByDescending(x => x.ID)));
            }

            return(Json(null));
        }
示例#3
0
        public JsonResult GetAllLinhas()
        {
            List <LinhasPreEncomenda>     result = DBEncomendas.GetAllLinhasPreEncomendaToList().Where(linha => linha.Tratada == false).ToList();
            List <LinhasPreEncomendaView> list   = new List <LinhasPreEncomendaView>();
            int _contador = -1;

            foreach (LinhasPreEncomenda lin in result)
            {
                _contador += 1;
                list.Add(DBEncomendas.CastLinhasPreEncomendaToView(lin));
                list[_contador].NomeFornecedor_Show = DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, list[_contador].NumFornecedor).Count > 0 ? DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, list[_contador].NumFornecedor).FirstOrDefault().Name : string.Empty;
            }

            return(Json(list));
        }
示例#4
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);
        }