| ♥ 0 | Existe algum exemplo de como criar AgendamentosFacturacao. Sempre que tento gravar tenho uma excepção com a mensagem “1) O Plano de Faturação não contém ocorrências.” Obrigado Código try
{
GcpBEAgendamentoFacturacao gcpBEAgendamentoFacturacao;
gcpBEAgendamentoFacturacao = new GcpBEAgendamentoFacturacao();
gcpBEAgendamentoFacturacao.set_Codigo(erpBS.Comercial.AgendamentosFacturacao.DaProximoCodigo());
gcpBEAgendamentoFacturacao.set_Cambio(1);
gcpBEAgendamentoFacturacao.set_CambioMAlt(1);
gcpBEAgendamentoFacturacao.set_CambioMBase(1);
gcpBEAgendamentoFacturacao.set_ContratoID(null);
gcpBEAgendamentoFacturacao.set_Descricao("Quota");
gcpBEAgendamentoFacturacao.set_DocVendaID(null);
gcpBEAgendamentoFacturacao.set_DocVendaSerie(null);
gcpBEAgendamentoFacturacao.set_DocVendaTipoDoc(null);
gcpBEAgendamentoFacturacao.set_Entidade(gcpBECliente.get_Cliente());
gcpBEAgendamentoFacturacao.set_EstadoPlano(false);
gcpBEAgendamentoFacturacao.set_FixarCambios(false);
gcpBEAgendamentoFacturacao.set_Moeda(erpBS.Contexto.MoedaBase);
gcpBEAgendamentoFacturacao.set_NumLinha(0);
gcpBEAgendamentoFacturacao.set_ObjetoID(null);
gcpBEAgendamentoFacturacao.set_OrigemItensFacturar(GcpOrigemItensFacturar.Plano);
gcpBEAgendamentoFacturacao.set_TipoCalenderizacao(GcpTipoCalenderizacao.Recorrente);
StdBECalendarioGeral stdBECalendarioGeral = new StdBECalendarioGeral();
// stdBECalendarioGeral.set_Activa(true);
stdBECalendarioGeral.DurComDataFim = true;
stdBECalendarioGeral.DurDataFim = new DateTime(2030, 12, 31);
stdBECalendarioGeral.DurDataInicio = new DateTime(2020, 1, 1);
stdBECalendarioGeral.FreqRecHoraInicio = new DateTime(1899, 12, 30);
stdBECalendarioGeral.FreqRecHoraFim = new DateTime(1899, 12, 30);
stdBECalendarioGeral.FreqRecPeriodo = EnumCalendTipoPeriodoHorario.cphHoras;
stdBECalendarioGeral.FreqRecQdePeriodo = 0;
stdBECalendarioGeral.Frequencia = EnumCalendTipoFrequencia.cfqUnica;
stdBECalendarioGeral.FreqUnicaHora = new DateTime(1899, 12, 30);
stdBECalendarioGeral.Periodo = EnumCalendTipoPeriodo.cprMensal;
stdBECalendarioGeral.PrDiarioDias = 1;
stdBECalendarioGeral.PrMensalDia = 1;
stdBECalendarioGeral.PrMensalDiaSemana = EnumCalendTipoDiasSemana.cdsDomingo;
stdBECalendarioGeral.PrMensalMes = 0;
stdBECalendarioGeral.PrMensalMeses = 1;
stdBECalendarioGeral.PrMensalNumDia = EnumCalendTipoNumDia.cndPrimeiro;
stdBECalendarioGeral.PrMensalTipo = EnumCalendTipoMensal.cmsPorDia;
stdBECalendarioGeral.ProximaOcorrencia = new DateTime(1899, 12, 30);
stdBECalendarioGeral.PrSemanalDomingo = false;
stdBECalendarioGeral.PrSemanalQuarta = false;
stdBECalendarioGeral.PrSemanalQuinta = false;
stdBECalendarioGeral.PrSemanalSabado = false;
stdBECalendarioGeral.PrSemanalSegunda = false;
stdBECalendarioGeral.PrSemanalSexta = false;
stdBECalendarioGeral.PrSemanalTerca = false;
stdBECalendarioGeral.RecuperaExecucoes = false;
stdBECalendarioGeral.UltimaOcorrencia = new DateTime(1899, 12, 12);
if (sOC_SociosRow.tipoQuota == "A" || sOC_SociosRow.tipoQuota == "M")
{
stdBECalendarioGeral.PrMensalMeses = 12;
}
else if (sOC_SociosRow.tipoQuota == "S")
{
stdBECalendarioGeral.PrMensalMeses = 6;
}
gcpBEAgendamentoFacturacao.set_CalendarioGeral(stdBECalendarioGeral);
GcpBeArtigoAgendamentoFact gcpBeArtigoAgendamentoFact = new GcpBeArtigoAgendamentoFact();
gcpBeArtigoAgendamentoFact.set_Artigo("200100006");
gcpBeArtigoAgendamentoFact.set_Desconto(0);
gcpBeArtigoAgendamentoFact.set_Descricao(erpBS.Comercial.Artigos.DaValorAtributo(ArtigoQuota, "Descricao").ToString());
if (sOC_SociosRow.tipoQuota == "A" || sOC_SociosRow.tipoQuota == "M")
{
gcpBeArtigoAgendamentoFact.set_Preco((double)sOC_SociosRow.valorQuota);
}
else if (sOC_SociosRow.tipoQuota == "S")
{
gcpBeArtigoAgendamentoFact.set_Preco((double)sOC_SociosRow.valorQuota / 2);
}
gcpBeArtigoAgendamentoFact.set_Quantidade(1);
gcpBEAgendamentoFacturacao.get_ArtigosAgendamentoFacturacao().Insere(gcpBeArtigoAgendamentoFact);
GcpBEEntidAgendFacturacao gcpBEEntidAgendFacturacao = new GcpBEEntidAgendFacturacao();
gcpBEEntidAgendFacturacao.set_Entidade(gcpBECliente.get_Cliente());
gcpBEEntidAgendFacturacao.set_Percentagem(100);
gcpBEEntidAgendFacturacao.set_TipoEntidade("C");
gcpBEAgendamentoFacturacao.get_EntidadesFacturacao().Insere(gcpBEEntidAgendFacturacao);
string avisos = "";
GcpBEAgendamentoFacturacao gcpBEAgendamentoFacturacao2 = erpBS.Comercial.AgendamentosFacturacao.EditaCodigo("20200075");
erpBS.Comercial.AgendamentosFacturacao.GerarPlanoFactOcorrencias(gcpBEAgendamentoFacturacao);
erpBS.Comercial.AgendamentosFacturacao.Actualiza(gcpBEAgendamentoFacturacao, avisos);
return true;
}
catch (Exception ex)
{
Log.Add(new LogEntry(EventLogEntryType.Information, ex.Message, sOC_SociosRow.numSocio, ex.ToString()));
throw;
}
Marcado como spam |
2 respostas
| Resposta privada Recebi apoio do suporte técnico e a única diferença que observei foi nos IDs e no CalendárioInterop.StdBE900.EnumCalendTipoFrequencia.cfqRecorrente
GcpBEAgendamentoFacturacao gcpBEAgendamentoFacturacao = new GcpBEAgendamentoFacturacao();
GcpBEEntidAgendFacturacao gcpBEEntidAgendFacturacao = new GcpBEEntidAgendFacturacao();
gcpBEAgendamentoFacturacao.set_ID(objplat.FuncoesGlobais.CriaGuid(true).ToUpper());
gcpBEAgendamentoFacturacao.set_Codigo(MotorERP.Comercial.AgendamentosFacturacao.DaProximoCodigo());
gcpBEAgendamentoFacturacao.set_Descricao("teste de motores");
gcpBEAgendamentoFacturacao.set_Entidade("SOFRIO");
gcpBEAgendamentoFacturacao.set_TipoCalenderizacao(GcpTipoCalenderizacao.Recorrente);
gcpBEAgendamentoFacturacao.set_OrigemItensFacturar(GcpOrigemItensFacturar.Plano);
GcpBeArtigoAgendamentoFact gcpBeArtigoAgendamentoFact = new GcpBeArtigoAgendamentoFact();
gcpBeArtigoAgendamentoFact.set_Artigo("A0001");
gcpBeArtigoAgendamentoFact.set_Desconto(0);
gcpBeArtigoAgendamentoFact.set_Descricao("Artigo 1");
gcpBeArtigoAgendamentoFact.set_Preco(1000);
gcpBeArtigoAgendamentoFact.set_Quantidade(1);
gcpBEAgendamentoFacturacao.get_ArtigosAgendamentoFacturacao().Insere(gcpBeArtigoAgendamentoFact);
gcpBEAgendamentoFacturacao.set_Moeda("EUR");
gcpBEAgendamentoFacturacao.set_Cambio(1);
gcpBEAgendamentoFacturacao.set_CambioMAlt(1);
gcpBEAgendamentoFacturacao.set_CambioMBase(1);
gcpBEAgendamentoFacturacao.get_CalendarioGeral().set_Activa(true);
gcpBEAgendamentoFacturacao.get_CalendarioGeral().Periodo = Interop.StdBE900.EnumCalendTipoPeriodo.cprMensal;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().Frequencia = Interop.StdBE900.EnumCalendTipoFrequencia.cfqRecorrente;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().FreqRecPeriodo = Interop.StdBE900.EnumCalendTipoPeriodoHorario.cphHoras;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().DurDataInicio = DateTime.Now;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().DurDataFim = new DateTime(2021, 12, 31);
gcpBEAgendamentoFacturacao.get_CalendarioGeral().DurComDataFim = true;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().PrDiarioDias = 1;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().PrMensalDia = 1;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().PrMensalMeses = 1;
gcpBEAgendamentoFacturacao.get_CalendarioGeral().FreqRecQdePeriodo = 1;
gcpBEEntidAgendFacturacao.set_ID(objplat.FuncoesGlobais.CriaGuid(true).ToUpper());
gcpBEEntidAgendFacturacao.set_AgendamentoID(gcpBEAgendamentoFacturacao.get_ID());
gcpBEEntidAgendFacturacao.set_TipoEntidade("C");
gcpBEEntidAgendFacturacao.set_Entidade("SOFRIO");
gcpBEEntidAgendFacturacao.set_Percentagem(100);
gcpBEAgendamentoFacturacao.get_EntidadesFacturacao().Insere(gcpBEEntidAgendFacturacao);
gcpBEAgendamentoFacturacao.set_PlanoFactOcorrencias(MotorERP.Comercial.AgendamentosFacturacao.GerarPlanoFactOcorrencias(gcpBEAgendamentoFacturacao));
MotorERP.Comercial.AgendamentosFacturacao.Actualiza(gcpBEAgendamentoFacturacao);
Marcado como spam | |