示例#1
0
        public void Criar(OrcamentodoCanalporSegmento mOrcamentodoCanalporSegmento, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid SegmentoId, Guid canalId)
        {
            OrcamentodoCanalporFamilia mOrcamentodoCanalporFamilia;
            var lstorcamentoporsegfamilia = (from x in lstOrcamentoDetalhado
                                             //where x.Segmento.Id == SegmentoId && x.Canal.Id == canalId
                                             group x by string.Format("{0}/{1}", x.Familia.Id, x.Segmento.Id));

            foreach (var OrcaSegFamilia in lstorcamentoporsegfamilia)
            {
                mOrcamentodoCanalporFamilia = RepositoryService.OrcamentodoCanalporFamilia.ObterOrcamentoCanalFamilia(canalId, mOrcamentodoCanalporSegmento.ID.Value, OrcaSegFamilia.First().Segmento.Id, OrcaSegFamilia.First().Familia.Id, mOrcamentodoCanalporSegmento.Trimestre.Value);
                if (mOrcamentodoCanalporFamilia == null)
                {
                    mOrcamentodoCanalporFamilia                             = new OrcamentodoCanalporFamilia(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                    mOrcamentodoCanalporFamilia.ID                          = Guid.NewGuid();
                    mOrcamentodoCanalporFamilia.Canal                       = new Lookup(canalId, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>());
                    mOrcamentodoCanalporFamilia.UnidadedeNegocio            = mOrcamentodoCanalporSegmento.UnidadedeNegocio;
                    mOrcamentodoCanalporFamilia.Ano                         = mOrcamentodoCanalporSegmento.Ano;
                    mOrcamentodoCanalporFamilia.Trimestre                   = mOrcamentodoCanalporSegmento.Trimestre;
                    mOrcamentodoCanalporFamilia.Segmento                    = new Lookup(OrcaSegFamilia.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>());
                    mOrcamentodoCanalporFamilia.FamiliadeProduto            = new Lookup(OrcaSegFamilia.First().Familia.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.FamiliaProduto>());
                    mOrcamentodoCanalporFamilia.OrcamentodoCanalporSegmento = new Lookup(mOrcamentodoCanalporSegmento.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.OrcamentodoCanalporSegmento>());

                    mOrcamentodoCanalporFamilia.Nome = (mOrcamentodoCanalporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name).ToString().Length > 99 ?
                                                       (mOrcamentodoCanalporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name).Substring(1, 99)
                        : (mOrcamentodoCanalporSegmento.Nome + " - " + OrcaSegFamilia.First().Familia.Name);

                    RepositoryService.OrcamentodoCanalporFamilia.Create(mOrcamentodoCanalporFamilia);
                }
                ServiceOrcamentodoCanalporSubFamilia.Criar(mOrcamentodoCanalporFamilia, OrcaSegFamilia.ToList(), OrcaSegFamilia.First().Familia.Id, canalId);
            }
        }
示例#2
0
        public void RetornoDWCanalFamilia(int ano, int trimestre)
        {
            List <OrcamentodaUnidade> lstOrcamentodaUnidade = RepositoryService.OrcamentodaUnidade.ListarOrcamentos(ano);

            if (lstOrcamentodaUnidade.Count == 0)
            {
                return;
            }

            DataTable dtOrcamentoCanalFamilia = RepositoryService.OrcamentodoCanalporFamilia.ListarCanalFamiliaDW(ano, trimestre, lstOrcamentodaUnidade);

            foreach (DataRow item in dtOrcamentoCanalFamilia.Rows)
            {
                UnidadeNegocio mUnidadeNegocio = RepositoryService.UnidadeNegocio.ObterPorChaveIntegracao(item["cd_unidade_negocio"].ToString());
                Segmento       mSegmento       = RepositoryService.Segmento.ObterPor(item["cd_segmento"].ToString());
                FamiliaProduto mFamiliaProduto = RepositoryService.FamiliaProduto.ObterPor(item["CD_familia"].ToString());
                Conta          mConta          = RepositoryService.Conta.ObterCanal(item["CD_Emitente"].ToString());

                if (mUnidadeNegocio != null && mSegmento != null && mFamiliaProduto != null && mConta != null)
                {
                    OrcamentodoCanalporFamilia mOrcamentodoCanalporFamilia = RepositoryService.OrcamentodoCanalporFamilia.Obter(mUnidadeNegocio.ID.Value, ano, trimestre, mConta.ID.Value, mSegmento.ID.Value, mFamiliaProduto.ID.Value);

                    if (mOrcamentodoCanalporFamilia != null)
                    {
                        mOrcamentodoCanalporFamilia.OrcamentoRealizado = decimal.Parse(item["vlr"].ToString());
                        RepositoryService.OrcamentodoCanalporFamilia.Update(mOrcamentodoCanalporFamilia);
                    }
                }
            }
        }