public JsonResult MantemPileline(int id, string origem, int idcliente, string contatonome, string contatoemail, string contatotelefones, string nomeprojeto, int idstatus, int idtipo, int idproduto, DateTime previsaocontrato, double valorlicenca, int qtlicenca, int prazocontrato, string obs)
        {
            var retorno = "";

            var obj = new Indigo_Pipeline
            {
                pip_Id                 = id,
                pipCl_Id               = idcliente,
                pipCl_ContatoNome      = contatonome,
                pipCl_ContatoEmail     = contatoemail,
                pipCl_ContatoTelefones = contatotelefones,
                pippj_Desc             = nomeprojeto,
                pip_Status             = idstatus,
                pip_Tipo               = idtipo,
                pipprd_Id              = idproduto,
                pip_PrevContrato       = previsaocontrato,
                pip_ValorLicenca       = Convert.ToDecimal(valorlicenca),
                pip_QtLicenca          = qtlicenca,
                pip_TotalLicenca       = Convert.ToDecimal(valorlicenca) * qtlicenca,
                pip_prazo              = prazocontrato,
                pip_Obs                = obs,
                pip_Prospec            = DateTime.Now,
                pip_Origem             = origem,
                pip_userPipecria       = Convert.ToInt32(Session["IDUSUARIO"])
            };

            retorno = this.dataInterface.MantemPipeline(obj, null, "salva");


            return(base.Json(new { Result = retorno }, 0));
        }
        public JsonResult MantemPilelineObs(int id, string obs)
        {
            var            retorno = "";
            int            idu     = Convert.ToInt32(Session["IDUSUARIO"].ToString());
            Indigo_Usuario user    = this.dataInterface.BuscaUsuario().FirstOrDefault(x => x.usr_Id == idu);

            var obj = new Indigo_Pipeline
            {
                pip_Id  = id,
                pip_Obs = obs
            };

            if (user.usr_PermissaoPipe == 1)
            {
                retorno = this.dataInterface.MantemPipeline(obj, null, "obs");
            }

            return(base.Json(new { Result = retorno }, 0));
        }
        public JsonResult MantemPilelineStatus(int id, int status)
        {
            var            retorno = "";
            int            idu     = Convert.ToInt32(Session["IDUSUARIO"].ToString());
            Indigo_Usuario user    = this.dataInterface.BuscaUsuario().FirstOrDefault(x => x.usr_Id == idu);

            var obj = new Indigo_Pipeline();

            obj.pip_Id     = id;
            obj.pip_Status = status;

            if (status == 1)
            {
                obj.pip_Aguardando = DateTime.Now;
            }
            else if (status == 2)
            {
                obj.pip_Cancelado = DateTime.Now;
            }
            else if (status == 3)
            {
                obj.pip_Proposta = DateTime.Now;
            }
            else if (status == 4)
            {
                obj.pip_Contrato = DateTime.Now;
            }
            else if (status == 5)
            {
                obj.pip_Contrato = DateTime.Now;
            }

            if (user.usr_PermissaoPipe == 1)
            {
                retorno = this.dataInterface.MantemPipeline(obj, null, "status");
            }


            return(base.Json(new { Result = retorno }, 0));
        }
        public ActionResult ImportarPipeline()
        {
            var arquivo = "";

            if (Request != null)
            {
                HttpPostedFileBase file = Request.Files["arquivos"];

                arquivo = Server.MapPath("~/Documents/" + file.FileName);

                file.SaveAs(arquivo);


                if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
                {
                    int noOfCol = 0;
                    int noOfRow = 0;

                    string fileName        = file.FileName;
                    string fileContentType = file.ContentType;
                    byte[] fileBytes       = new byte[Request.ContentLength];
                    var    data            = Request.InputStream.Read(fileBytes, 0, Convert.ToInt32(Request.ContentLength));

                    var Arquivo = new FileInfo(arquivo);

                    using (var package = new ExcelPackage(Arquivo))
                    {
                        var currentSheet = package.Workbook.Worksheets;
                        var workSheet    = currentSheet.First();
                        noOfCol = workSheet.Dimension.End.Column;
                        noOfRow = workSheet.Dimension.End.Row;


                        for (int i = 2; i <= noOfRow; i++)
                        {
                            try
                            {
                                if (workSheet.Cells[i, 1] != null)
                                {
                                    if (workSheet.Cells[i, 1].Value.ToString() != "")
                                    {
                                        var retorno = "";

                                        int status = 0;

                                        if (workSheet.Cells[i, 5].Value.ToString() == "Prospecção")
                                        {
                                            status = 0;
                                        }
                                        else if (workSheet.Cells[i, 5].Value.ToString() == "Aguardando")
                                        {
                                            status = 1;
                                        }
                                        else if (workSheet.Cells[i, 5].Value.ToString() == "Cancelado")
                                        {
                                            status = 2;
                                        }
                                        else if (workSheet.Cells[i, 5].Value.ToString() == "Proposta")
                                        {
                                            status = 3;
                                        }
                                        else if (workSheet.Cells[i, 5].Value.ToString() == "Contrato")
                                        {
                                            status = 4;
                                        }
                                        else if (workSheet.Cells[i, 5].Value.ToString() == "Concluído")
                                        {
                                            status = 5;
                                        }
                                        else if (workSheet.Cells[i, 5].Value.ToString() == "Concluído e aprovado")
                                        {
                                            status = 6;
                                        }


                                        int tipo = 0;

                                        if (workSheet.Cells[i, 6].Value.ToString() == "PoC")
                                        {
                                            tipo = 0;
                                        }
                                        else if (workSheet.Cells[i, 6].Value.ToString() == "Try and Buy")
                                        {
                                            tipo = 1;
                                        }
                                        else if (workSheet.Cells[i, 6].Value.ToString() == "Venda")
                                        {
                                            tipo = 2;
                                        }

                                        decimal ValorLicenca = Convert.ToDecimal(workSheet.Cells[i, 8].Value.ToString());
                                        int     QtLicenca    = Convert.ToInt32(workSheet.Cells[i, 9].Value.ToString());
                                        decimal TotalLicenca = (Convert.ToInt32(workSheet.Cells[i, 9].Value.ToString()) * Convert.ToDecimal(workSheet.Cells[i, 8].Value.ToString()));

                                        var obj = new Indigo_Pipeline
                                        {
                                            pip_Id           = Convert.ToInt32(workSheet.Cells[i, 1].Value),
                                            pip_Status       = status,
                                            pip_Tipo         = tipo,
                                            pip_PrevContrato = Convert.ToDateTime(workSheet.Cells[i, 7].Value.ToString()),
                                            pip_ValorLicenca = ValorLicenca,
                                            pip_QtLicenca    = QtLicenca,
                                            pip_TotalLicenca = TotalLicenca,
                                            pip_Obs          = workSheet.Cells[i, 11].Value.ToString()
                                        };

                                        retorno = this.dataInterface.MantemPipeline(obj, null, "importa");
                                    }
                                }
                            }
                            catch {  }
                        }
                    }
                }
            }


            return(View("Pipeline"));
        }
        public JsonResult IniciarProjeto(int id, int responsavel, int qtpas, string objprojeto)
        {
            var retorno = "";

            var obj = new Indigo_Pipeline
            {
                pip_Id          = id,
                pip_Status      = 6,
                pip_userResp    = responsavel,
                pip_Qtpas       = qtpas,
                pip_DtAprovacao = DateTime.Now,
                pip_Objetivo    = objprojeto
            };

            var projetos = this.dataInterface.BuscaProjeto().Count();

            var Id      = "";
            var produto = this.dataInterface.BuscaPipeline().OrderByDescending(y => y.pip_Id).FirstOrDefault(x => x.pip_Id == id);

            Id = Id + DateTime.Now.Year + "-" + DateTime.Now.Month.ToString().PadLeft(2, '0') + "-" + produto.Indigo_ClienteFinal.clf_Sigla + "-" + produto.Indigo_Produto.prd_Sigla + "-" + (projetos + 1).ToString().PadLeft(3, '0');

            retorno = this.dataInterface.MantemPipeline(obj, Id, "envia");


            var user  = this.dataInterface.BuscaUsuario().FirstOrDefault(x => x.usr_Id == responsavel);
            var pipe  = this.dataInterface.BuscaPipeline().FirstOrDefault(x => x.pip_Id == id);
            var userc = this.dataInterface.BuscaUsuario().FirstOrDefault(x => x.usr_Id == pipe.pip_userPipecria);

            StringBuilder pagina = new StringBuilder();

            string trataHora = "";

            if (DateTime.Now.Hour < 12)
            {
                trataHora = "Bom dia";
            }
            else if (DateTime.Now.Hour > 12 && DateTime.Now.Hour < 18)
            {
                trataHora = "Boa tarde";
            }
            else if (DateTime.Now.Hour > 18)
            {
                trataHora = "Boa noite";
            }

            pagina.Append(@"<!DOCTYPE html>
                            <html>
                            <head>
                                <title> Pipeline de projetos </title>
                            </head>
                            <body>
                            <style>

                            .Aceitar {
                                        color: white;
                                            font - size: 16px;
                                            text - transform: uppercase;
                                        background: #1886cf;

                            }

                            .Negar {
                                            margin - top: 40px;
                                        width: 150px;
                                        height: 50px;
                                        color: white;
                                            font - size: 16px;
                                            text - transform: uppercase;
                                        background: #e52525;
	
                            }
                            </style>
                            <p>" + user.usr_Nome + ", " + trataHora + @" </p>
                               <p> Você tem um projeto para iniciar, enviado por " + userc.usr_Nome + @".</p>
                                  <table align = ""center"">
                                            <th> Cliente </th>
                                            <th> Produto </th>
                                            <th> Projeto </th>
                                            <th> Tipo </th>
                                            <th> Objetivo </th>
                                            <tr>
                                            <td>" + pipe.Indigo_ClienteFinal.clf_Descricao + @"</td>
                                            <td>" + pipe.Indigo_Produto.prd_Descricao + @"</td>
                                            <td>" + pipe.pippj_Desc + @"</td>
                                            <td>" + pipe.pip_Tipo.Value.ToString().Replace("0", "PoC").Replace("1", "Try and buy").Replace("2", "Venda") + @"</td>
                                            <td>" + pipe.pip_Objetivo + @"</td>
                                            </tr>
                                            </table>
                                            <table align = ""center"">
                                                 <tr>
                                             <td>
                                             <a class=""Aceitar"" href =""http://admin.indigosoft.biz/Pipeline/Aceitar?id=" + pipe.pip_Id + @"&a=1"" style=""text-decoration:none;"">ACEITAR</a>
                                            </td>
                                            <td>
                                            <a class=""Negar"" href =""http://admin.indigosoft.biz/Pipeline/Aceitar?id=" + pipe.pip_Id + @"&a=0"" style=""text-decoration:none;"">RECUSAR(Necessário inserir texto de justificativa)</a>
                                            </td>
                                            </tr>
                                            </table>
                                            </body>
                                            </html>");


            var respEmail = EnviaEmail("*****@*****.**", "indigo.2017", user.usr_Email, "Pipeline de projetos", pagina.ToString());


            return(base.Json(new { Result = retorno }, 0));
        }
Esempio n. 6
0
        public string MantemPipeline(Indigo_Pipeline pipeline, string id, string acao)
        {
            try
            {
                var             context          = new Indigo_Controle_Licenca();
                Indigo_Pipeline pipelineTemp     = context.Indigo_Pipeline.FirstOrDefault(x => x.pip_Id == pipeline.pip_Id);
                Indigo_Produto  pipelineTempProd = new Indigo_Produto();
                int             id_prod          = 0;

                if (pipelineTemp != null)
                {
                    pipelineTempProd = context.Indigo_Produto.FirstOrDefault(x => x.prd_ClfId == pipelineTemp.pipCl_Id && x.prd_Descricao == pipelineTemp.Indigo_Produto.prd_Descricao);

                    if (pipelineTempProd != null)
                    {
                        id_prod = pipelineTempProd.prd_Id;
                    }
                }

                if (pipelineTemp != null && acao == "importa")
                {
                    pipelineTemp.pip_Id           = pipeline.pip_Id;
                    pipelineTemp.pip_Status       = pipeline.pip_Status;
                    pipelineTemp.pip_Tipo         = pipeline.pip_Tipo;
                    pipelineTemp.pip_PrevContrato = pipeline.pip_PrevContrato;
                    pipelineTemp.pip_ValorLicenca = pipeline.pip_ValorLicenca;
                    pipelineTemp.pip_QtLicenca    = pipeline.pip_QtLicenca;
                    pipelineTemp.pip_TotalLicenca = pipeline.pip_TotalLicenca;
                    pipelineTemp.pip_Obs          = pipeline.pip_Obs;
                    context.Indigo_Pipeline.AddOrUpdate(pipelineTemp);
                    context.SaveChanges();
                }
                else if (pipelineTemp != null && acao == "obs")
                {
                    pipelineTemp.pip_Obs = pipeline.pip_Obs;
                    context.Indigo_Pipeline.AddOrUpdate(pipelineTemp);
                    context.SaveChanges();
                }
                else if (pipelineTemp != null && acao == "status")
                {
                    pipelineTemp.pip_Status = pipeline.pip_Status;

                    if (pipeline.pip_Status == 1 && pipelineTemp.pip_Aguardando == null)
                    {
                        pipelineTemp.pip_Aguardando = DateTime.Now;
                    }
                    else if (pipeline.pip_Status == 2 && pipelineTemp.pip_Cancelado == null)
                    {
                        pipelineTemp.pip_Cancelado = DateTime.Now;
                    }
                    else if (pipeline.pip_Status == 3 && pipelineTemp.pip_Proposta == null)
                    {
                        pipelineTemp.pip_Proposta = DateTime.Now;
                    }
                    else if (pipeline.pip_Status == 4 && pipelineTemp.pip_Contrato == null)
                    {
                        pipelineTemp.pip_Contrato = DateTime.Now;
                    }
                    else if (pipeline.pip_Status == 5 && pipelineTemp.pip_Concluido == null)
                    {
                        pipelineTemp.pip_Concluido = DateTime.Now;
                    }

                    context.Indigo_Pipeline.AddOrUpdate(pipelineTemp);
                    context.SaveChanges();
                }
                else if (pipelineTemp != null && acao == "tipo")
                {
                    pipelineTemp.pip_Tipo = pipeline.pip_Tipo;
                    context.Indigo_Pipeline.AddOrUpdate(pipelineTemp);
                    context.SaveChanges();
                }
                else if (pipelineTemp != null && acao == "aceita")
                {
                    context.Indigo_Pipeline.AddOrUpdate(pipeline);
                    context.SaveChanges();
                }
                else if (pipelineTemp == null && acao == "salva")
                {
                    context.Indigo_Pipeline.AddOrUpdate(pipeline);
                    context.SaveChanges();
                }
                else if (pipelineTemp != null && acao == "envia")
                {
                    pipelineTemp.pip_Status   = pipeline.pip_Status;
                    pipelineTemp.pip_userResp = pipeline.pip_userResp;
                    pipelineTemp.pip_Qtpas    = pipeline.pip_Qtpas;

                    if (pipelineTemp.pip_DtAprovacao == null)
                    {
                        pipelineTemp.pip_DtAprovacao = pipeline.pip_DtAprovacao;
                    }

                    pipelineTemp.pip_Objetivo = pipeline.pip_Objetivo;

                    context.Indigo_Pipeline.AddOrUpdate(pipelineTemp);
                    context.SaveChanges();



                    if (pipelineTempProd == null)
                    {
                        var obj_pd = new Indigo_Produto
                        {
                            prd_ClfId     = pipelineTemp.pipCl_Id,
                            prd_Descricao = pipelineTemp.Indigo_Produto.prd_Descricao,
                            prd_ativo     = 0
                        };

                        context.Indigo_Produto.AddOrUpdate(obj_pd);
                        context.SaveChanges();

                        id_prod = obj_pd.prd_Id;
                    }



                    var obj_pj = new Indigo_Projeto
                    {
                        prj_idusr      = pipelineTemp.pip_userResp,
                        prj_Descricao  = pipelineTemp.pippj_Desc,
                        prj_PrdId      = id_prod,
                        prj_IdControle = id
                    };


                    context.Indigo_Projeto.AddOrUpdate(obj_pj);
                    context.SaveChanges();

                    pipelineTemp.pipprd_Id = id_prod;
                    context.Indigo_Pipeline.AddOrUpdate(pipelineTemp);
                    context.SaveChanges();
                }
                else if (pipelineTemp != null && acao == "inicia")
                {
                    pipeline.pip_Aceito = DateTime.Now;
                    context.Indigo_Pipeline.AddOrUpdate(pipeline);
                    context.SaveChanges();
                }


                return("sucesso");
            }
            catch (Exception ex)
            {
                return(String.Format("Erro ao salvar o Produto {0}", ex.Message));
            }
        }