public static bool Delete(string sessionId, string proposalsId, ProposalsLine jsonObject)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            /*if (opportunitiesTable.Existe(opportunityId) == false)
             * {
             *  throw new NotFoundException("oportunidade", true);
             * }*/

            var proposalsTableAux = PrimaveraEngine.Engine.CRM.PropostasOPV;
            var proposalsTable    = PrimaveraEngine.Engine.CRM.PropostasOPV.Edita(jsonObject.idOportunidade, jsonObject.ProposalNumber);
            var proposalLines     = proposalsTable.get_Linhas();

            proposalsTable.set_EmModoEdicao(true);
            proposalLines.Remove(jsonObject.Line);
            proposalsTableAux.Actualiza(proposalsTable);

            /*if (CheckPermissions(opportunityInfo, sessionId) == false)
             * {
             *  return false;
             * }*/

            return(true);
        }
        public static ProposalsLine Insert(string sessionId, ProposalsLine jsonObject)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var proposalLineInfo   = new CrmBELinhaPropostaOPV();
            var opportunitiesTable = PrimaveraEngine.Engine.CRM.PropostasOPV;
            var proposalInfo       = opportunitiesTable.Edita(jsonObject.idOportunidade, jsonObject.ProposalNumber);
            var proposalLines      = proposalInfo.get_Linhas();

            /*if (opportunitiesTable.Existe(opportunityId))
             * {
             *  throw new EntityExistsException("oportunidade", true);
             * }*/

            proposalInfo.set_EmModoEdicao(true);
            SetFields(proposalLineInfo, jsonObject);
            proposalLines.Insere(proposalLineInfo);
            proposalInfo.set_Linhas(proposalLines);
            opportunitiesTable.Actualiza(proposalInfo);

            return(GenerateProposal(proposalLineInfo));
        }
Ejemplo n.º 3
0
        // PUT: api/ProposalLine/{$opportunityID}
        // FEATURE: Editar linhas da proposta
        public HttpResponseMessage Put(string id, [FromBody] ProposalsLine jsonObject)
        {
            if (Authentication.VerifyToken("?"))
            {
                try
                {
                    var operationResult = ProposalLinesIntegration.Update(Authentication.GetRepresentative(null), HttpUtility.UrlDecode(id), jsonObject);

                    if (operationResult == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotFound));
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, operationResult));
                    }
                }
                catch (Exception ex)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
                }
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden));
            }
        }
        public static ProposalsLine Update(string sessionId, string opportunityId, ProposalsLine jsonObject)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            /*if (opportunitiesTable.Existe(opportunityId) == false)
             * {
             *  throw new NotFoundException("oportunidade", true);
             * }
             *
             * if (CheckPermissions(opportunityInfo, sessionId) == false)
             * {
             *  return null;
             * }*/

            var opportunitiesTableAux = PrimaveraEngine.Engine.CRM.PropostasOPV;
            var opportunitiesTable    = PrimaveraEngine.Engine.CRM.PropostasOPV.Edita(jsonObject.idOportunidade, jsonObject.ProposalNumber);
            var proposalLines         = opportunitiesTable.get_Linhas();

            opportunitiesTable.set_EmModoEdicao(true);

            var line = proposalLines.get_Edita(jsonObject.Line);

            line.set_EmModoEdicao(true);
            line.set_Artigo(jsonObject.Article);
            line.set_Descricao(jsonObject.Description);
            line.set_Quantidade(jsonObject.Quantity);
            line.set_Unidade(jsonObject.Unit);
            line.set_FactorConv(jsonObject.FactorConv);
            line.set_PrecoCusto(jsonObject.CostPrice);
            line.set_PrecoVenda(jsonObject.SellsPrice);
            line.set_Desconto1(jsonObject.Discount1);
            line.set_Desconto2(jsonObject.Discount2);
            line.set_Desconto3(jsonObject.Discount3);
            line.set_Desconto(jsonObject.Discount);
            line.set_ValorDesconto(jsonObject.DiscountValue);
            line.set_Rentabilidade(jsonObject.Rentability);
            line.set_Margem(jsonObject.Margin);
            line.set_Observacoes(jsonObject.Observations);
            proposalLines.Insere(line);
            opportunitiesTable.set_Linhas(proposalLines);
            opportunitiesTableAux.Actualiza(opportunitiesTable);

            return(GenerateProposal(line));
        }
        /*private static Proposals GenerateProposal(CrmBELinhasPropostaOPV opportunityInfo)
         * {
         *      return new Proposals()
         *          {
         *              ProposalNumber = TypeParser.String(opportunityInfo.get_NumProposta()),
         *              Description = opportunityInfo.get_Descricao(),
         *              PaymentMethod = opportunityInfo.get_ModoPagamento(),
         *              PaymentCondition = opportunityInfo.get_CondPagamento(),
         *              Cost = opportunityInfo.get_Custo(),
         *              Value = opportunityInfo.get_Valor(),
         *              DiscountValue = opportunityInfo.get_ValorDesconto(),
         *              Rentability = opportunityInfo.get_Rentabilidade(),
         *              Margin = opportunityInfo.get_Margem()
         *          };
         * }*/

        private static void SetFields(CrmBELinhaPropostaOPV proposalLineInfo, ProposalsLine jsonObject)
        {
            proposalLineInfo.set_IdOportunidade(jsonObject.idOportunidade);
            proposalLineInfo.set_NumProposta(jsonObject.ProposalNumber);
            proposalLineInfo.set_Linha(jsonObject.Line);
            proposalLineInfo.set_Artigo(jsonObject.Article);
            proposalLineInfo.set_Descricao(jsonObject.Description);
            proposalLineInfo.set_Quantidade(jsonObject.Quantity);
            proposalLineInfo.set_Unidade(jsonObject.Unit);
            proposalLineInfo.set_FactorConv(jsonObject.FactorConv);
            proposalLineInfo.set_PrecoCusto(jsonObject.CostPrice);
            proposalLineInfo.set_PrecoVenda(jsonObject.SellsPrice);
            proposalLineInfo.set_Desconto1(jsonObject.Discount1);
            proposalLineInfo.set_Desconto2(jsonObject.Discount2);
            proposalLineInfo.set_Desconto3(jsonObject.Discount3);
            proposalLineInfo.set_Desconto(jsonObject.Discount);
            proposalLineInfo.set_ValorDesconto(jsonObject.DiscountValue);
            proposalLineInfo.set_Rentabilidade(jsonObject.Rentability);
            proposalLineInfo.set_Margem(jsonObject.Margin);
            proposalLineInfo.set_Observacoes(jsonObject.Observations);
        }