public void OldCriarKARepresentante(MetadaUnidadeporTrimestre mMetadaUnidadeporTrimestre, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado)
        {
            var lstOrcamentoporSegmento = (from x in lstOrcamentoDetalhado
                                           group x by string.Format("{0}", x.Segmento.Id));

            foreach (var OrcaSegmento in lstOrcamentoporSegmento)
            {
                MetadaUnidadeporSegmento mMetadaUnidadeporSegmento;
                mMetadaUnidadeporSegmento = RepositoryService.MetadaUnidadeporSegmento.Obter(OrcaSegmento.First().Segmento.Id, mMetadaUnidadeporTrimestre.ID.Value);
                if (mMetadaUnidadeporSegmento == null)
                {
                    mMetadaUnidadeporSegmento      = new MetadaUnidadeporSegmento(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                    mMetadaUnidadeporSegmento.ID   = Guid.NewGuid();
                    mMetadaUnidadeporSegmento.Nome = mMetadaUnidadeporTrimestre.Nome + " - " + OrcaSegmento.First().Segmento.Name;
                    mMetadaUnidadeporSegmento.UnidadedeNegocios = mMetadaUnidadeporTrimestre.UnidadedeNegocio;
                    mMetadaUnidadeporSegmento.Ano       = mMetadaUnidadeporTrimestre.Ano;
                    mMetadaUnidadeporSegmento.Trimestre = mMetadaUnidadeporTrimestre.Trimestre;
                    //mMetadaUnidadeporSegmento.Segmento = new Lookup(item.Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName<Model.Segmento>());
                    mMetadaUnidadeporSegmento.Segmento         = new Lookup(OrcaSegmento.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>());
                    mMetadaUnidadeporSegmento.MetaporTrimestre = new Lookup(mMetadaUnidadeporTrimestre.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.OrcamentodaUnidadeporTrimestre>());

                    RepositoryService.MetadaUnidadeporSegmento.Create(mMetadaUnidadeporSegmento);
                }

                ServiceMetadaUnidadeporFamilia.Criar(mMetadaUnidadeporTrimestre.MetadaUnidade.Id, mMetadaUnidadeporSegmento, OrcaSegmento.ToList(), OrcaSegmento.First().Segmento.Id);
            }
        }
        public void OldCriar(OrcamentodaUnidadeporTrimestre mOrcamentodaUnidadeporTrimestre, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, bool addLinha)
        {
            var lstOrcamentoporSegmento = (from x in lstOrcamentoDetalhado
                                           group x by string.Format("{0}", x.Segmento.Id));

            foreach (var OrcaSegmento in lstOrcamentoporSegmento)
            {
                OrcamentodaUnidadeporSegmento mOrcamentodaUnidadeporSegmento;
                mOrcamentodaUnidadeporSegmento = RepositoryService.OrcamentodaUnidadeporSegmento.ObterOrcamentoSegmento(OrcaSegmento.First().Segmento.Id, mOrcamentodaUnidadeporTrimestre.ID.Value);
                if (mOrcamentodaUnidadeporSegmento == null)
                {
                    mOrcamentodaUnidadeporSegmento                  = new OrcamentodaUnidadeporSegmento(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                    mOrcamentodaUnidadeporSegmento.ID               = Guid.NewGuid();
                    mOrcamentodaUnidadeporSegmento.Nome             = mOrcamentodaUnidadeporTrimestre.Nome + " - " + OrcaSegmento.First().Segmento.Name;
                    mOrcamentodaUnidadeporSegmento.UnidadedeNegocio = mOrcamentodaUnidadeporTrimestre.UnidadedeNegocio;
                    mOrcamentodaUnidadeporSegmento.Ano              = mOrcamentodaUnidadeporTrimestre.Ano;
                    mOrcamentodaUnidadeporSegmento.Trimestre        = mOrcamentodaUnidadeporTrimestre.Trimestre;
                    mOrcamentodaUnidadeporSegmento.Segmento         = new Lookup(OrcaSegmento.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Segmento>());
                    mOrcamentodaUnidadeporSegmento.OrcamentoporTrimestredaUnidade = new Lookup(mOrcamentodaUnidadeporTrimestre.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <OrcamentodaUnidadeporTrimestre>());

                    RepositoryService.OrcamentodaUnidadeporSegmento.Create(mOrcamentodaUnidadeporSegmento);
                }

                ServiceOrcamentodaUnidadeporFamilia.Criar(mOrcamentodaUnidadeporTrimestre.OrcamentoporUnidade.Id, mOrcamentodaUnidadeporSegmento, lstOrcamentoDetalhado, OrcaSegmento.First().Segmento.Id);
            }
        }
        public void Criar(OrcamentoPorCanal mOrcamentodoCanal, Model.OrcamentodaUnidade mOrcamentodaUnidade, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado)
        {
            OrcamentodoCanalporSegmento mOrcamentodoCanalporSegmento;
            var lstOrcamentoporSegmento = (from x in lstOrcamentoDetalhado
                                           group x by string.Format("{0}", x.Segmento.Id));

            foreach (var OrcaSegmento in lstOrcamentoporSegmento)
            {
                mOrcamentodoCanalporSegmento = RepositoryService.OrcamentodoCanalporSegmento.ObterPor(mOrcamentodoCanal.ID.Value, OrcaSegmento.First().Canal.Id, mOrcamentodoCanal.Trimestre.Value, OrcaSegmento.First().Segmento.Id);
                if (mOrcamentodoCanalporSegmento == null)
                {
                    mOrcamentodoCanalporSegmento                  = new OrcamentodoCanalporSegmento(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                    mOrcamentodoCanalporSegmento.ID               = Guid.NewGuid();
                    mOrcamentodoCanalporSegmento.Nome             = mOrcamentodoCanal.Nome + " - " + OrcaSegmento.First().Segmento.Name;
                    mOrcamentodoCanalporSegmento.UnidadedeNegocio = mOrcamentodoCanal.UnidadedeNegocio;
                    mOrcamentodoCanalporSegmento.Ano              = mOrcamentodaUnidade.Ano;
                    mOrcamentodoCanalporSegmento.Canal            = new Lookup(OrcaSegmento.First().Canal.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>());
                    mOrcamentodoCanalporSegmento.Trimestre        = mOrcamentodoCanal.Trimestre;
                    mOrcamentodoCanalporSegmento.Segmento         = new Lookup(OrcaSegmento.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>());
                    mOrcamentodoCanalporSegmento.OrcamentodoCanal = new Lookup(mOrcamentodoCanal.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.OrcamentoPorCanal>());

                    RepositoryService.OrcamentodoCanalporSegmento.Create(mOrcamentodoCanalporSegmento);
                }
                ServiceOrcamentodoCanalporFamilia.Criar(mOrcamentodoCanalporSegmento, OrcaSegmento.ToList(), OrcaSegmento.First().Segmento.Id, OrcaSegmento.First().Canal.Id);
            }
        }
        public void Criar(PotencialdoKAporTrimestre mPotencialdoKATrimestre, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid representanteId, int numTrimestre)
        {
            PotencialdoKAporSegmento mPotencialdoKAporSegmento = null;
            var lstOrcamentoporSegmento = (from x in lstOrcamentoDetalhado
                                           group x by string.Format("{0}", x.Familia.Id));



            foreach (var OrcaSegmento in lstOrcamentoporSegmento)
            {
                mPotencialdoKATrimestre = RepositoryService.PotencialdoKAporTrimestre.Retrieve(mPotencialdoKATrimestre.ID.Value);
                List <PotencialdoKAporSegmento> tempSegmento = RepositoryService.PotencialdoKAporSegmento.__Obter(mPotencialdoKATrimestre.UnidadedeNegocio.Id, representanteId, numTrimestre, mPotencialdoKATrimestre.ID.Value, OrcaSegmento.First().Segmento.Id);
                if (tempSegmento.Count == 0)
                {
                    PortfoliodoKeyAccountRepresentantes portfolioKA = RepositoryService.PortfoliodoKeyAccountRepresentantes.ObterPor(mPotencialdoKATrimestre.UnidadedeNegocio.Id, representanteId);

                    if (portfolioKA.Segmento != null)
                    {
                        if (OrcaSegmento.First().Segmento.Id != portfolioKA.Segmento.Id)
                        {
                            continue;
                        }
                    }

                    mPotencialdoKAporSegmento                      = new PotencialdoKAporSegmento(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                    mPotencialdoKAporSegmento.ID                   = Guid.NewGuid();
                    mPotencialdoKAporSegmento.Nome                 = mPotencialdoKATrimestre.Nome + " - " + OrcaSegmento.First().Segmento.Name;
                    mPotencialdoKAporSegmento.UnidadedeNegocio     = mPotencialdoKATrimestre.UnidadedeNegocio;
                    mPotencialdoKAporSegmento.Ano                  = mPotencialdoKATrimestre.Ano;
                    mPotencialdoKAporSegmento.KAouRepresentante    = new Lookup(representanteId, SDKore.Crm.Util.Utility.GetEntityName <Model.Contato>());
                    mPotencialdoKAporSegmento.Segmento             = new Lookup(OrcaSegmento.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>());
                    mPotencialdoKAporSegmento.Trimestre            = numTrimestre;
                    mPotencialdoKAporSegmento.PotencialKaTrimestre = new Lookup(mPotencialdoKATrimestre.ID.Value, SDKore.Crm.Util.Utility.GetEntityName <Model.PotencialdoKAporTrimestre>());

                    RepositoryService.PotencialdoKAporSegmento.Create(mPotencialdoKAporSegmento);

                    ServicePotencialdoKAporFamilia.Criar(mPotencialdoKAporSegmento, OrcaSegmento.ToList(), representanteId, numTrimestre);
                }
                else
                {
                    ServicePotencialdoKAporFamilia.Criar(tempSegmento[0], OrcaSegmento.ToList(), representanteId, numTrimestre);
                }
            }
        }
        public void OldCriar(Model.OrcamentodaUnidadeporTrimestre mOrcamentodaUnidadeporTrimestre, Model.OrcamentodaUnidade mOrcamentodaUnidade, List <Model.OrcamentoDetalhado> lstOrcamentoDetalhado, Guid canalid, Guid orcamentodocanalId)
        {
            var lstOrcamentoporSegmento = (from x in lstOrcamentoDetalhado
                                           where x.Canal.Id == canalid
                                           group x by string.Format("{0}", x.Segmento.Id));

            foreach (var OrcaSegmento in lstOrcamentoporSegmento)
            {
                OrcamentodoCanalporSegmento mOrcamentodoCanalporSegmento = new OrcamentodoCanalporSegmento(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider);
                mOrcamentodoCanalporSegmento.ID               = Guid.NewGuid();
                mOrcamentodoCanalporSegmento.Nome             = mOrcamentodaUnidadeporTrimestre.Nome + " - " + OrcaSegmento.First().Segmento.Name;
                mOrcamentodoCanalporSegmento.UnidadedeNegocio = mOrcamentodaUnidadeporTrimestre.UnidadedeNegocio;
                mOrcamentodoCanalporSegmento.Ano              = mOrcamentodaUnidade.Ano;
                mOrcamentodoCanalporSegmento.Canal            = new Lookup(OrcaSegmento.First().Canal.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Conta>());
                mOrcamentodoCanalporSegmento.Trimestre        = mOrcamentodaUnidadeporTrimestre.Trimestre;
                mOrcamentodoCanalporSegmento.Segmento         = new Lookup(OrcaSegmento.First().Segmento.Id, SDKore.Crm.Util.Utility.GetEntityName <Model.Segmento>());
                mOrcamentodoCanalporSegmento.OrcamentodoCanal = new Lookup(orcamentodocanalId, SDKore.Crm.Util.Utility.GetEntityName <Model.OrcamentodaUnidadeporTrimestre>());

                RepositoryService.OrcamentodoCanalporSegmento.Create(mOrcamentodoCanalporSegmento);
                ServiceOrcamentodoCanalporFamilia.Criar(mOrcamentodoCanalporSegmento, lstOrcamentoDetalhado, OrcaSegmento.First().Segmento.Id, OrcaSegmento.First().Canal.Id);
            }
        }