コード例 #1
0
        public JsonResult CreateActividadePorFornecedor([FromBody] ActividadesPorFornecedorView item)
        {
            if (item != null)
            {
                ActividadesPorFornecedor actividadesPorFornecedor = DBConsultaMercado.GetDetalheActividadesPorFornecedor(item.Id.ToString());

                if (actividadesPorFornecedor != null)
                {
                    item.eReasonCode = -1;
                    item.eMessage    = string.Format("Já existe uma Actividade por Fornecedor com o mesmo ID!");
                }
                else
                {
                    ActividadesPorFornecedor novo = new ActividadesPorFornecedor()
                    {
                        CodFornecedor = item.CodFornecedor,
                        CodActividade = item.CodActividade
                    };

                    try
                    {
                        DBConsultaMercado.Create(novo);
                    }
                    catch
                    {
                        item.eReasonCode = -1;
                        item.eMessage    = "Ocorreu um erro ao criar a Actividade por Fornecedor!";
                        return(Json(item));
                    }

                    actividadesPorFornecedor = DBConsultaMercado.GetDetalheActividadesPorFornecedor(novo.Id.ToString());
                    item = DBConsultaMercado.CastActividadesPorFornecedorToView(actividadesPorFornecedor);

                    item.eReasonCode = 1;
                    item.eMessage    = "Actividade por Fornecedor criada com sucesso!";
                }
            }

            return(Json(item));
        }
コード例 #2
0
        public JsonResult CreateActividade([FromBody] ActividadesView item)
        {
            if (item != null)
            {
                Actividades actividades = DBConsultaMercado.GetDetalheActividades(item.CodActividade);

                if (actividades != null)
                {
                    item.eReasonCode = -1;
                    item.eMessage    = string.Format("Já existe uma Actividade com o mesmo Código!");
                }
                else
                {
                    Actividades novo = new Actividades()
                    {
                        CodActividade = item.CodActividade,
                        Descricao     = item.Descricao
                    };

                    try
                    {
                        DBConsultaMercado.Create(novo);
                    }
                    catch
                    {
                        item.eReasonCode = -1;
                        item.eMessage    = "Ocorreu um erro ao criar a Actividade!";
                        return(Json(item));
                    }

                    actividades = DBConsultaMercado.GetDetalheActividades(item.CodActividade);
                    item        = DBConsultaMercado.CastActividadesToView(actividades);

                    item.eReasonCode = 1;
                    item.eMessage    = "Actividade criada com sucesso!";
                }
            }

            return(Json(item));
        }
コード例 #3
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);
        }