Fórum
Ver pergunta

Exemplo de Código para AgendamentosFacturacao   

149 visualizações
0
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;

            }

 

 

 

Faça login para poder traduzir
Integração
Marcado como spam
Criado há 5 anos e 3 meses jorgecosta-2
j
jorgecosta-2 Iniciante
2 respostas
0
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);

 

Faça login para poder traduzir
Marcado como spam
Criado há 5 anos e 3 meses jorgecosta-2
j
jorgecosta-2 Iniciante
    0
    Resposta privada
    Marcado como spam
    Criado há 5 anos e 3 meses jorgecosta-2
    j
    jorgecosta-2 Iniciante