public ActionResult Interagindo(int id,
                                        string Obs
                                        )
        {
            CampanhaMarketing data_update = db.CampanhaMarketing.Find(id);

            data_update.dta_alteracao         = System.DateTime.Now;
            data_update.des_ult_obs           = Obs;
            data_update.cod_usuario_alteracao = cd_usuario;

            CampanhaMarketingEstagios altera_linha = AddDataSaidaEstagioAnterior(data_update.campanhaID);
            CampanhaMarketingEstagios nova_linha   = AddNovaLinhaTrocaEstagio(data_update.campanhaID, data_update.estagioId, data_update.estagioId, Obs);

            db.Entry(altera_linha).State = EntityState.Modified;
            db.Entry(data_update).State  = EntityState.Modified;
            db.CampanhaMarketingEstagios.Add(nova_linha);

            try
            {
                db.SaveChanges();
                return(Json(new { id = data_update.campanhaID, Msg = "Ok, Gerado OC com sucesso ", hasError = false }));
            }
            catch (Exception e)
            {
                return(Json(new { id = data_update.campanhaID, Msg = e.Message, hasError = true }));
            }
        }
        private CampanhaMarketingEstagios AddDataSaidaEstagioAnterior(int campanhaId)
        {
            int?num_seq = db.CampanhaMarketingEstagios.Where(a => a.campanhaId == campanhaId && a.dta_saida == null).Max(p => p.num_seq);
            CampanhaMarketingEstagios data = db.CampanhaMarketingEstagios.Find(num_seq, campanhaId);

            data.dta_saida = System.DateTime.Now;
            return(data);
        }
Example #3
0
        public ActionResult Input(CampanhaMarketing data, bool continueAdd, FormCollection form, IEnumerable <HttpPostedFileBase> files)
        {
            ViewBag.cod_representante = new SelectList(db.Ps_Representantes.Where(a => a.ind_inativo == 0), "cod_pessoa", "des_pessoa", data.cod_representante);
            ViewBag.cod_pessoa        = new SelectList(db.Ps_Pessoas.Where(a => a.cod_pessoa == data.cod_pessoa), "cod_pessoa", "des_pessoa", data.cod_pessoa);
            ViewBag.segmentoid        = new SelectList(db.Segmentos, "segmentoid", "des_segmento", data.segmentoid);
            ViewBag.tipoacaoid        = new SelectList(db.TipoAcao.Where(a => a.tipoacaoid == data.tipoacaoid), "tipoacaoid", "des_acao", data.tipoacaoid);
            ViewBag.formapgtoid       = new SelectList(db.FormaPgto, "formapgtoid", "des_forma", data.formapgtoid);

            ModelState.Clear();
            data.dta_inclusao = System.DateTime.Now;
            Estagio estagioinicial = db.Estagio.Where(a => a.ind_inicio == "S").FirstOrDefault();

            data.estagioId  = estagioinicial.estagioId;
            data.statusId   = Convert.ToInt32(estagioinicial.statusid);
            data.ind_renova = (string.IsNullOrEmpty(data.ind_renova) ? "S" : "N");


            if (data.cod_representante == 0)
            {
                ModelState.AddModelError("cod_representante", "Representante deve ser informado");
                return(View(data));
            }

            if (data.cod_pessoa == 0)
            {
                ModelState.AddModelError("", "Cliente deve ser informado");
                return(View(data));
            }

            if (string.IsNullOrEmpty(data.des_nome))
            {
                ModelState.AddModelError("des_nome", "Nome deve ser informado");
                return(View(data));
            }

            if (string.IsNullOrEmpty(data.des_email))
            {
                ModelState.AddModelError("des_email", "Email deve ser informado");
                return(View(data));
            }

            if (data.segmentoid == 0)
            {
                ModelState.AddModelError("segmentoid", "Tipo deve ser informado");
                return(View(data));
            }

            if (data.tipoacaoid == 0)
            {
                ModelState.AddModelError("tipoacaoid", "Ação deve ser informado");
                return(View(data));
            }

            if (data.formapgtoid == 0)
            {
                ModelState.AddModelError("formapgtoid", "Forma Pgto deve ser informado");
                return(View(data));
            }

            if (!data.dta_inicial.HasValue)
            {
                ModelState.AddModelError("dta_inicial", "Data deve ser informado");
                return(View(data));
            }



            if (data.segmentoid == 1)
            {
                if (!data.vlr_custo_medio.HasValue)
                {
                    ModelState.AddModelError("", "Custo deve ser informado");
                    return(View(data));
                }
            }


            if (data.segmentoid == 3)
            {
                if ("V".Equals(data.tip_pgto_premiacao))
                {
                    if (!data.vlr_contrato.HasValue)
                    {
                        ModelState.AddModelError("", "Custo deve ser informado");
                        return(View(data));
                    }
                }


                if ("P".Equals(data.tip_pgto_premiacao))
                {
                    if (!data.per_contrato.HasValue)
                    {
                        ModelState.AddModelError("", "Custo deve ser informado");
                        return(View(data));
                    }
                }
            }


            if (data.segmentoid == 2)
            {
                if (!data.vlr_meta.HasValue)
                {
                    ModelState.AddModelError("", "Meta deve ser informado");
                    return(View(data));
                }
                if (!data.vlr_contrato.HasValue)
                {
                    ModelState.AddModelError("", "Meta deve ser informado");
                    return(View(data));
                }


                if (!data.dta_final.HasValue)
                {
                    ModelState.AddModelError("dta_final", "Data deve ser informado");
                    return(View(data));
                }
            }



            data.campanhaID        = db.Database.SqlQuery <Int32>("select CampanhaMarketing_Seq.NextVal from dual ").FirstOrDefault <Int32>();
            data.cod_pessoa_string = data.cod_pessoa.ToString();
            data.des_nome          = data.des_nome.ToUpper().FormatToB2y();

            // pega a pessoa do dados crm
            var dados_da_pessoa = db.Dados_crm.Find(data.cod_pessoa.ToString());

            if (dados_da_pessoa != null)
            {
                try
                {
                    data.cod_regional = Convert.ToInt32(dados_da_pessoa.cod_gerente);
                }catch
                {
                    data.cod_regional = 1001;
                }


                try
                {
                    data.cod_diretoria = Convert.ToInt32(dados_da_pessoa.cod_diretoria);
                }catch
                {
                    data.cod_diretoria = 2;
                }


                try
                {
                    data.des_segmento = dados_da_pessoa.segmento;
                }catch
                {
                    data.des_segmento = "ELETRICA";
                }
            }


            CampanhaMarketingEstagios nova_linha = AddNovaLinhaTrocaEstagio(data.campanhaID, null, data.estagioId, data.des_observacao);

            TryValidateModel(data);
            if (ModelState.IsValid)
            {
                db.CampanhaMarketingEstagios.Add(nova_linha);
                db.CampanhaMarketing.Add(data);
            }
            else
            {
                return(View(data));
            }


            if (files != null)
            {
                foreach (var a in files)
                {
                    if (a != null)
                    {
                        if (a.ContentLength > 0)
                        {
                            int    tamanho    = (int)a.InputStream.Length;
                            string contentype = a.ContentType;
                            byte[] arq        = new byte[tamanho];

                            a.InputStream.Read(arq, 0, tamanho);
                            byte[] arqUp = arq;


                            int    CampanhaDocId = db.Database.SqlQuery <Int32>("select CampanhaMarketingDoc_Seq.NextVal from dual ").FirstOrDefault <Int32>();
                            string NomeArquivo   = a.FileName; //data.campanhaID.ToString() + '_' + CampanhaDocId.ToString() + '_' + string.Format("{0}", Path.GetFileName(a.FileName));

                            //var path = Path.Combine(Server.MapPath("~/Arquivos/uploads"), NomeArquivo);


                            CampanhaMarketingDoc doc = new CampanhaMarketingDoc
                            {
                                CampanhaMarketingDocId = CampanhaDocId,
                                campanhaID             = data.campanhaID,
                                Caminho         = NomeArquivo,
                                des_contenttype = contentype,
                                des_imagem      = arqUp,
                                nome_arquivo    = NomeArquivo
                            };
                            db.CampanhaMarketingDoc.Add(doc);

                            //a.SaveAs(path);
                        }
                    }
                }
            }

            try
            {
                db.SaveChanges();
                string nome = "";

                try
                {
                    nome = data.Ps_Representantes.des_pessoa;
                }
                catch
                {
                    nome = data.des_email;
                }



                try
                {
                    _email.EnviarEmailCampanhaEntrada(data.campanhaID, "NovaCampanha.htm", data.des_email, nome);
                    _email.EnviarEmailCampanha(data.campanhaID, "ChangeCampanhaEstagio.htm");
                }catch (Exception e)
                {
                    _email.EnviarEmailCampanha(data.campanhaID, "ChangeCampanhaEstagio.htm");
                }


                return(RedirectToAction("Done"));
            }
            catch (Exception e)
            {
                Response.StatusCode = 500; // Replace .AddHeader
                return(Json(new { Error = e.Message }, JsonRequestBehavior.AllowGet));
            }
            return(View(data));
        }
        public ActionResult AprovaReprova(CampanhaMarketing_Model data, bool aprovado)
        {
            bool _ind_finalizada = false;

            if (_ind_finalizada)
            {
                return(RedirectToAction("Details", new { id = data.CampanhaMarketing.campanhaID }));
            }
            CampanhaMarketing data_update = db.CampanhaMarketing.Find(data.CampanhaMarketing.campanhaID);

            if (data_update == null)
            {
                return(View(data));
            }
            string ids = data.CampanhaMarketing.campanhaID.ToString();

            ViewBag.comentarios   = db.ListaComentarios.Where(a => a.cod_interno == ids && a.tipo_nota == "CAMPANHA").ToList();
            ViewBag.troca_estagio = db.CampanhaMarketingEstagios.Where(a => a.campanhaId == data.CampanhaMarketing.campanhaID).OrderBy(p => p.num_seq).ToList();
            if (ModelState.IsValid)
            {
                int     estagioId = 0;
                int     statusId  = 0;
                Estagio estagio   = db.Estagio.Where(a => a.estagioId == data_update.estagioId).FirstOrDefault();


                if (aprovado)
                {
                    estagioId = Convert.ToInt32(estagio.estagioid_proximo);
                    Estagio proximo_estagio = db.Estagio.Where(a => a.estagioId == estagioId).FirstOrDefault();
                    statusId = Convert.ToInt32(proximo_estagio.statusid);
                }
                else
                {
                    estagioId = Convert.ToInt32(estagio.estagioid_anterior);

                    if (data_update.estagioId == 23)
                    {
                        estagioId = 21;
                    }

                    statusId = 2;

                    Estagio estagio_anterior = db.Estagio.Where(a => a.estagioId == estagioId).FirstOrDefault();

                    if (estagio_anterior.ind_liberado == "S")
                    {
                        statusId = Convert.ToInt32(estagio_anterior.statusid);
                    }
                }
                CampanhaMarketingEstagios altera_linha = AddDataSaidaEstagioAnterior(data_update.campanhaID);
                CampanhaMarketingEstagios nova_linha   = AddNovaLinhaTrocaEstagio(data_update.campanhaID, data_update.estagioId, estagioId, data.Obs);
                data_update.dta_alteracao         = System.DateTime.Now;
                data_update.cod_usuario_alteracao = cd_usuario;
                data_update.estagioId             = estagioId;
                data_update.statusId    = statusId;
                data_update.des_ult_obs = data.Obs;
                try
                {
                    db.Entry(data_update).State  = EntityState.Modified;
                    db.Entry(altera_linha).State = EntityState.Modified;
                    db.CampanhaMarketingEstagios.Add(nova_linha);
                    db.SaveChanges();
                    _email.EnviarEmailCampanha(data_update.campanhaID, "NovaCampanha.htm");
                    return(RedirectToAction("WorkFlow"));
                }
                catch (Exception e)
                {
                    Response.StatusCode = 500; // Replace .AddHeader
                    return(Json(new { Error = e.Message }, JsonRequestBehavior.AllowGet));
                }
            }
            return(View(data));
        }