public static Proposals Insert(string sessionId, Proposals jsonObject) { if (PrimaveraEngine.InitializeCompany() == false) { throw new DatabaseConnectionException(); } var proposalInfo = new CrmBEPropostaOPV(); var proposalsTable = PrimaveraEngine.Engine.CRM.PropostasOPV; /*if (opportunitiesTable.Existe(opportunityId)) * { * throw new EntityExistsException("oportunidade", true); * }*/ SetFields(proposalInfo, jsonObject); proposalsTable.Actualiza(proposalInfo); /* for (int i = 0; i < jsonObject.ProposalsLines.Count; i++) * { * ProposalLinesIntegration.Insert(jsonObject.ProposalsLines[i]); * }*/ return(GenerateProposal(proposalInfo, jsonObject.ProposalsLines)); }
public static RespostaErro RemoveProduto(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(); for (short j = 1; j <= objLinhas.NumItens; j++) { var objLinha = objLinhas.get_Edita(j); var artigo = objLinha.get_Artigo(); if (artigo == dto.IdArtigo) { //artigo a eliminar objLinhas.Remove(objLinha.get_Linha()); break; } } //update proposta 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); } }
//so faz update das quantidades public static RespostaErro UpdOportunidade(PropostaDTO proposta) { 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(proposta.IdOportunidade)) { erro.Erro = 1; erro.Descricao = "Nao existe oportunidade"; return(erro); } //proposta objProp = PriEngine.Engine.CRM.PropostasOPV.Edita(proposta.IdOportunidade, proposta.Proposta.NumProposta, true); objProp.set_EmModoEdicao(true); //vai buscar os artigos desta proposta CrmBELinhasPropostaOPV objLinhas = objProp.get_Linhas(); List <OportunidadeLinha> artigos = proposta.Proposta.Artigos; foreach (var art in artigos) { short n = art.Linha; n--; var objLinha = objLinhas.get_Edita(n); objLinha.set_Quantidade(art.Quantidade); } //update 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); } }
public static RespostaErro CreateProposta(Oportunidade oportunidade) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); StdBELista props = PriEngine.Engine.Consulta(@"SELECT Count(*) AS N FROM PropostasOPV WHERE IdOportunidade = '" + oportunidade.ID + "' ;"); int n = props.Valor("N"); //maximo 4 propostas if (n >= 4) { erro.Erro = 1; erro.Descricao = "The maximum of proposals is four."; return(erro); } CrmBEPropostaOPV prop = 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) { prop.set_IdOportunidade(oportunidade.ID); prop.set_IdCabecOrigem(oportunidade.ID); short x = (short)n; x++; prop.set_NumProposta(x); prop.set_Valor(0); //var opp = PriEngine.Engine.CRM.OportunidadesVenda.EditaID(oportunidade.ID); PriEngine.Engine.CRM.PropostasOPV.Actualiza(prop); erro.Erro = 0; erro.Descricao = "Sucesso"; 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); } }
private static void SetFields(CrmBEPropostaOPV proposalInfo, Proposals jsonObject) { proposalInfo.set_IdOportunidade(jsonObject.idOportunidade); proposalInfo.set_DescontoEntidade(jsonObject.EntityDiscount); proposalInfo.set_NumProposta(jsonObject.ProposalNumber); proposalInfo.set_Descricao(jsonObject.Description); proposalInfo.set_ModoPagamento(jsonObject.PaymentMethod); proposalInfo.set_CondPagamento(jsonObject.PaymentCondition); proposalInfo.set_Custo(jsonObject.Cost); proposalInfo.set_Valor(jsonObject.Value); proposalInfo.set_ValorDesconto(jsonObject.DiscountValue); proposalInfo.set_Rentabilidade(jsonObject.Rentability); proposalInfo.set_Margem(jsonObject.Margin); proposalInfo.set_NaoTotalizadora(jsonObject.Totalize); proposalInfo.set_Observacoes(jsonObject.Observations); }
private static Proposals GenerateProposal(CrmBEPropostaOPV proposalInfo, List <ProposalsLine> lines) { return(new Proposals() { ProposalNumber = proposalInfo.get_NumProposta(), Description = proposalInfo.get_Descricao(), PaymentMethod = proposalInfo.get_ModoPagamento(), PaymentCondition = proposalInfo.get_CondPagamento(), Cost = proposalInfo.get_Custo(), Value = proposalInfo.get_Valor(), DiscountValue = proposalInfo.get_ValorDesconto(), Observations = proposalInfo.get_Observacoes(), Margin = proposalInfo.get_Margem(), EntityDiscount = proposalInfo.get_DescontoEntidade(), Rentability = proposalInfo.get_Rentabilidade(), ProposalsLines = lines, Totalize = proposalInfo.get_NaoTotalizadora() }); }
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); } }