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)); }
/*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); }
private static ProposalsLine GenerateProposal(CrmBELinhaPropostaOPV proposalLineInfo) { return(new ProposalsLine() { idOportunidade = proposalLineInfo.get_IdOportunidade(), ProposalNumber = proposalLineInfo.get_NumProposta(), Line = proposalLineInfo.get_Linha(), Article = proposalLineInfo.get_Artigo(), Description = proposalLineInfo.get_Descricao(), Quantity = proposalLineInfo.get_Quantidade(), Unit = proposalLineInfo.get_Unidade(), FactorConv = proposalLineInfo.get_FactorConv(), CostPrice = proposalLineInfo.get_PrecoCusto(), SellsPrice = proposalLineInfo.get_PrecoVenda(), Discount1 = proposalLineInfo.get_Desconto1(), Discount2 = proposalLineInfo.get_Desconto2(), Discount3 = proposalLineInfo.get_Desconto3(), Discount = proposalLineInfo.get_Desconto(), DiscountValue = proposalLineInfo.get_ValorDesconto(), Rentability = proposalLineInfo.get_Rentabilidade(), Margin = proposalLineInfo.get_Margem(), Observations = proposalLineInfo.get_Observacoes(), }); }
public static RespostaErro AdicionaProduto(OportunidadeDTO dto) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); CrmBEPropostaOPV objProp = new CrmBEPropostaOPV(); try { if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true) { //oportunidade if (!PriEngine.Engine.CRM.OportunidadesVenda.ExisteID(dto.IdOportunidade)) { erro.Erro = 1; erro.Descricao = "Nao existe oportunidade"; return(erro); } //proposta objProp = PriEngine.Engine.CRM.PropostasOPV.Edita(dto.IdOportunidade, dto.NumProposta, true); objProp.set_EmModoEdicao(true); //vai buscar os artigos desta proposta CrmBELinhasPropostaOPV objLinhas = objProp.get_Linhas(); //nova linha a ser criada CrmBELinhaPropostaOPV objLinha = new CrmBELinhaPropostaOPV(); //artigo que vamos adicionar GcpBEArtigo objArtigo = PriEngine.Engine.Comercial.Artigos.Edita(dto.IdArtigo); objLinha.set_IdOportunidade(dto.IdOportunidade); objLinha.set_NumProposta(dto.NumProposta); objLinha.set_Artigo(dto.IdArtigo); short n = objLinhas.NumItens; n++; objLinha.set_Linha(n); objLinha.set_Descricao(objArtigo.get_Descricao()); objLinha.set_Quantidade(1); objLinha.set_Unidade(objArtigo.get_UnidadeVenda()); objLinha.set_PrecoCusto(objArtigo.get_PCMedio()); objLinha.set_Desconto(objArtigo.get_Desconto()); var objArtigoPreco = PriEngine.Engine.Comercial.ArtigosPrecos.Edita(dto.IdArtigo, "EUR", objArtigo.get_UnidadeVenda()); objLinha.set_PrecoVenda(objArtigoPreco.get_PVP1()); //update proposta objLinhas.Insere(objLinha); objProp.set_Linhas(objLinhas); PriEngine.Engine.CRM.PropostasOPV.Actualiza(objProp); erro.Erro = 0; erro.Descricao = "Success"; return(erro); } else { erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return(erro); } } catch (Exception ex) { erro.Erro = 1; erro.Descricao = ex.Message; return(erro); } }