Exemple #1
0
        public CanalVerde Persistir(CanalVerde objCanalVerde)
        {
            if (objCanalVerde.ID.HasValue)
            {
                CanalVerde tmpCanalVerde = RepositoryService.CanalVerde.ObterPor(objCanalVerde.ID.Value);

                if (tmpCanalVerde != null)
                {
                    tmpCanalVerde.ID = tmpCanalVerde.ID;

                    RepositoryService.CanalVerde.Update(tmpCanalVerde);

                    //Altera Status - Se necessário
                    if (tmpCanalVerde.Status.HasValue && !tmpCanalVerde.Status.Equals(objCanalVerde.Status))
                    {
                        this.MudarStatus(tmpCanalVerde.ID.Value, objCanalVerde.Status.Value);
                    }

                    return(tmpCanalVerde);
                }
                else
                {
                    objCanalVerde.ID = RepositoryService.CanalVerde.Create(tmpCanalVerde);
                    return(objCanalVerde);
                }
            }
            else
            {
                objCanalVerde.ID = RepositoryService.CanalVerde.Create(objCanalVerde);
                return(objCanalVerde);
            }
        }
        public string CriarCanaisVerdesConta(string organizationName, string contaId, string familiasIds)
        {
            string[]              lstRegitrosId        = familiasIds.Split(';');
            CanalVerdeService     canalVerdeService    = new CanalVerdeService(organizationName, false);
            RepositoryService     RepositoryService    = new RepositoryService(organizationName, false);
            DomainExecuteMultiple multipleCreateReturn = null;

            var jsSerializer = new JavaScriptSerializer();

            try
            {
                List <CanalVerde> canalVerdeList = new List <CanalVerde>();
                foreach (var familiaIdTmp in lstRegitrosId)
                {
                    string[]   segmentoEFamiliaIdsLst = familiaIdTmp.Split('|');
                    CanalVerde canalVerdeTmp          = new CanalVerde(organizationName, false);

                    canalVerdeTmp.Segmento       = new Lookup(new Guid(segmentoEFamiliaIdsLst[0]), "");
                    canalVerdeTmp.FamiliaProduto = new Lookup(new Guid(segmentoEFamiliaIdsLst[1]), "");
                    canalVerdeTmp.Canal          = new Lookup(new Guid(contaId), "");

                    canalVerdeList.Add(canalVerdeTmp);
                }

                multipleCreateReturn = RepositoryService.CanalVerde.Create(canalVerdeList);
            }
            catch (Exception e)
            {
                jsSerializer.MaxJsonLength = Int32.MaxValue;

                Dictionary <string, string> retornoMapErr = new Dictionary <string, string>();

                retornoMapErr.Add("return", "FALSE");
                retornoMapErr.Add("message", e.Message);
                var jsonErr = jsSerializer.Serialize(retornoMapErr);

                return(jsonErr.ToString());
            }


            jsSerializer.MaxJsonLength = Int32.MaxValue;
            Dictionary <string, string> retornoMap = new Dictionary <string, string>();

            if (multipleCreateReturn.IsFaulted)
            {
                retornoMap.Add("return", "FALSE");
            }
            else
            {
                retornoMap.Add("return", "TRUE");
            }

            var json = jsSerializer.Serialize(retornoMap);

            return(json.ToString());
        }
Exemple #3
0
        public void AtualizaSegmentos(ContaSegmento contaSegmento)
        {
            CanalVerdeService     canalverdeService     = new CanalVerdeService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);
            FamiliaProdutoService familiaProdutoService = new FamiliaProdutoService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);
            ContaService          contaService          = new ContaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline);

            var listaVerde          = canalverdeService.listarPorContaTodos(contaSegmento.Conta.Id);
            var listaFamiliaProduto = familiaProdutoService.ListarPorSegmento(contaSegmento.Segmento.Id, true, null, null);
            var conta = contaService.BuscaConta(contaSegmento.Conta.Id);

            //MaisVerde = Sim
            if (contaSegmento.MaisVerde)
            {
                //percorre a lista de produtos
                foreach (var item in listaFamiliaProduto)
                {
                    var verde = listaVerde.Where(x => x.FamiliaProduto.Id.Equals(item.ID)).FirstOrDefault();
                    if (verde != null)
                    {
                        //se esta inativo, ativa e salva
                        if (verde.Status.Equals(1))
                        {
                            verde.Status = 0;
                            canalverdeService.Persistir(verde);
                        }
                    }
                    else
                    {
                        //cria um novo registro
                        CanalVerde canalVerde = new CanalVerde();
                        canalVerde.Canal          = contaSegmento.Conta;
                        canalVerde.Segmento       = item.Segmento;
                        canalVerde.FamiliaProduto = new SDKore.DomainModel.Lookup()
                        {
                            Id = item.Id
                        };
                        canalVerde.Nome   = conta.CodigoMatriz + " | " + item.Segmento.Name + " | " + item.Nome;
                        canalVerde.Status = 0;

                        canalverdeService.Persistir(canalVerde);
                    }
                }
            }
            else
            {
                //percorre a lista de produtos
                foreach (var item in listaFamiliaProduto)
                {
                    var verde = listaVerde.Where(x => x.FamiliaProduto.Id.Equals(item.ID)).FirstOrDefault();
                    if (verde != null)
                    {
                        //se esta ativo, inativa e salva
                        if (verde.Status.Equals(0))
                        {
                            verde.Status = 1;
                            canalverdeService.Persistir(verde);
                        }
                    }
                }
            }
        }