예제 #1
0
        public void Criar(PotencialdoKARepresentante mPotencialdoKARepresentante, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado)
        {
            int numTrimestreFormatado = 0;
            PotencialdoKAporTrimestre mPotencialdoKAporTrimestre;

            for (int cont = 1; cont <= 4; cont++)
            {
                #region monta trimeste
                switch (cont)
                {
                case 1:
                    numTrimestreFormatado = (int)Enum.OrcamentodaUnidade.Trimestres.Trimestre1;
                    break;

                case 2:
                    numTrimestreFormatado = (int)Enum.OrcamentodaUnidade.Trimestres.Trimestre2;
                    break;

                case 3:
                    numTrimestreFormatado = (int)Enum.OrcamentodaUnidade.Trimestres.Trimestre3;
                    break;

                case 4:
                    numTrimestreFormatado = (int)Enum.OrcamentodaUnidade.Trimestres.Trimestre4;
                    break;
                }
                #endregion

                Console.WriteLine("Trimestre " + (int)numTrimestreFormatado + " em  " + cont + "/ " + cont + " as " + DateTime.Now.ToString());


                mPotencialdoKAporTrimestre = RepositoryService.PotencialdoKAporTrimestre.ObterPor(mPotencialdoKARepresentante.ID.Value, mPotencialdoKARepresentante.KeyAccountRepresentante.Id, numTrimestreFormatado);
                if (mPotencialdoKAporTrimestre == null)
                {
                    mPotencialdoKAporTrimestre                            = new PotencialdoKAporTrimestre(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                    mPotencialdoKAporTrimestre.ID                         = Guid.NewGuid();
                    mPotencialdoKAporTrimestre.Nome                       = "Trimestre " + numTrimestreFormatado + " / " + mPotencialdoKARepresentante.Ano + "  -  Unidade de Negocio " + mPotencialdoKARepresentante.UnidadedeNegocio.Name;
                    mPotencialdoKAporTrimestre.UnidadedeNegocio           = mPotencialdoKARepresentante.UnidadedeNegocio;
                    mPotencialdoKAporTrimestre.Ano                        = mPotencialdoKARepresentante.Ano;
                    mPotencialdoKAporTrimestre.Trimestre                  = numTrimestreFormatado;
                    mPotencialdoKAporTrimestre.PotencialdoKARepresentante = new Lookup(mPotencialdoKARepresentante.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoKARepresentante>());

                    RepositoryService.PotencialdoKAporTrimestre.Create(mPotencialdoKAporTrimestre);
                }

                ServicePotencialdoKAporSegmento.Criar(mPotencialdoKAporTrimestre, lstOrcamentoDetalhado, mPotencialdoKARepresentante.KeyAccountRepresentante.Id, numTrimestreFormatado);
            }
        }
예제 #2
0
        public List <PotencialdoKARepresentante> ListarValoresPorUnidadeNegocio(Guid unidadeNegocioId, int ano)
        {
            var lista = new List <PotencialdoKARepresentante>();

            string fetch = @"<fetch aggregate='true' no-lock='true' returntotalrecordcount='true' >
                              <entity name='itbc_metatrimestreka' >
                                <attribute name='itbc_metaplanejada' alias='valor_planejado' aggregate='sum' />
                                <attribute name='itbc_metarealizada' alias='valor_realizado' aggregate='sum' />
                                <link-entity name='itbc_metakeyaccount' from='itbc_metakeyaccountid' to='itbc_metadokarepresentanteid' alias='ka' >
                                  <attribute name='itbc_metakeyaccountid' alias='id' groupby='true' />
                                  <filter type='and' >
                                    <condition attribute='itbc_ano' operator='eq' value='{0}' />
                                    <condition attribute='itbc_unidadedenegocioid' operator='eq' value='{1}' />
                                  </filter>
                                </link-entity>
                              </entity>
                            </fetch>";


            fetch = string.Format(fetch, ano, unidadeNegocioId);

            var retrieveMultiple = new RetrieveMultipleRequest()
            {
                Query = new FetchExpression(fetch)
            };

            EntityCollection collection = ((RetrieveMultipleResponse)this.Execute(retrieveMultiple)).EntityCollection;

            foreach (var item in collection.Entities)
            {
                var potencialRepresentante = new PotencialdoKARepresentante(OrganizationName, IsOffline, Provider)
                {
                    ID = (Guid)((AliasedValue)(item.Attributes["id"])).Value,
                    PotencialPlanejado = ((Money)((AliasedValue)item.Attributes["valor_planejado"]).Value).Value,
                    PotencialRealizado = ((Money)((AliasedValue)item.Attributes["valor_realizado"]).Value).Value
                };

                lista.Add(potencialRepresentante);
            }

            return(lista);
        }