private void toolStripButton1_Click_1(object sender, EventArgs e)
        {
            int psaId = 0;


            PAR_FECHAR_PCP par = new PAR_FECHAR_PCP();

            if (grdElementos.SelectedRows.Count > 0)
            {
                EscolherData escolherData = new EscolherData();
                DialogResult resultado    = escolherData.inputar(ref diaProjecao, "Escolha o dia", ref continuar);
                foreach (DataGridViewRow row in grdElementos.SelectedRows)
                {
                    if (!continuar)
                    {
                        return;
                    }
                    par.ENOVO_TERMINO = diaProjecao;
                    par.EPSA_ID       = Convert.ToInt32(row.Cells["plan_servico_amo_id"].Value);
                    manipulacao.PRC_FECHAR_PCP(par);
                }
            }
            else
            {
                EscolherData escolherData = new EscolherData();
                DialogResult resultado    = escolherData.inputar(ref diaProjecao, "Escolha o dia", ref continuar);

                if (!continuar)
                {
                    return;
                }
                par.ENOVO_TERMINO = diaProjecao;
                par.EPSA_ID       = Convert.ToInt32(grdElementos.CurrentRow.Cells["plan_servico_amo_id"].Value);
                manipulacao.PRC_FECHAR_PCP(par);
            }

            psaId = Convert.ToInt32(grdElementos.CurrentRow.Cells["plan_servico_amo_id"].Value);

            dtCausa.Rows.Clear();
            dtCriterio.Rows.Clear();
            dtElemento.Rows.Clear();
            dtElemento.ida.Fill(dtElemento);
            dtCriterio.ida.Fill(dtCriterio);
            dtCausa.ida.Fill(dtCausa);
            bsElemento.Position = bsElemento.Find("PLAN_SERVICO_AMO_ID", psaId);
        }
        public FrmAnaliselookaHead(string idir, ExternalCommandData irevit, DataTable dtDownload)
        {
            revit = irevit;
            InitializeComponent();
            ConstruirQtdePSA();
            dtpInicio.Value = DateTime.Today.AddDays(-30);
            dtpTermino.Value = DateTime.Today;
            manipulacao = new Plan_servico_amoNegocio(idir);
            dtGrid.Columns.Add("INSUMO_ID", typeof(int));
            dtGrid.Columns.Add("INSUMO", typeof(string));
            dtGrid.Columns.Add("UNID", typeof(string));
            dtGrid.Columns.Add("QTDE_TOTAL_ENTRADA", typeof(double));
            dtGrid.Columns.Add("QTDE_CONSUMIDA", typeof(double));
            dtGrid.Columns.Add("QTDE_SOLICITADA_LOOK_A_HEAD", typeof(double));
            dtGrid.Columns.Add("SALDO", typeof(double));
            dtGrid.Columns["SALDO"].Expression = "QTDE_TOTAL_ENTRADA - QTDE_CONSUMIDA - QTDE_SOLICITADA_LOOK_A_HEAD";

            dtGrid.Columns.Add("SERVICO_ID", typeof(string));

            dtGrid.Columns.Add("CONSUMO_INSUMO", typeof(double));
            dtGrid.Columns.Add("ORIGEM", typeof(int));

            DataGridViewCellStyle formatoNumerico = new DataGridViewCellStyle();
            formatoNumerico.Format = "N2";
            ds.Tables.Add(dtGrid);
            bs.DataSource = ds;
            bs.DataMember = dtGrid.TableName;
            dataGridView1.DataSource = bs;
            dataGridView1.Columns["INSUMO_ID"].Width = 90;
            dataGridView1.Columns["INSUMO_ID"].HeaderText = "Insumo";
            dataGridView1.Columns["INSUMO"].Width = 200;
            dataGridView1.Columns["INSUMO"].HeaderText = "Desc. Inusmo";

            dataGridView1.Columns["QTDE_TOTAL_ENTRADA"].Width = 120;
            dataGridView1.Columns["QTDE_TOTAL_ENTRADA"].HeaderText = "Entrada";
            dataGridView1.Columns["QTDE_TOTAL_ENTRADA"].DefaultCellStyle = formatoNumerico;

            dataGridView1.Columns["QTDE_CONSUMIDA"].Width = 120;
            dataGridView1.Columns["QTDE_CONSUMIDA"].HeaderText = "Saída";
            dataGridView1.Columns["QTDE_CONSUMIDA"].DefaultCellStyle = formatoNumerico;

            dataGridView1.Columns["QTDE_SOLICITADA_LOOK_A_HEAD"].Width = 120;
            dataGridView1.Columns["QTDE_SOLICITADA_LOOK_A_HEAD"].HeaderText = "Lookahead";
            dataGridView1.Columns["QTDE_SOLICITADA_LOOK_A_HEAD"].DefaultCellStyle = formatoNumerico;

            dataGridView1.Columns["SALDO"].Width = 120;
            dataGridView1.Columns["SALDO"].HeaderText = "Saldo";
            dataGridView1.Columns["SALDO"].DefaultCellStyle = formatoNumerico;


            FrmProcurar procurar = new FrmProcurar();
            StringBuilder sb = new StringBuilder();

            sb.Append("    select ");
            sb.Append("   obra_id,  ");
            sb.Append("   obra  ");
            sb.Append("   ");
            sb.Append(" from obra ");
            ResultadoProcura rp = new ResultadoProcura();
            rp = procurar.Pesquisar(idir, "Escolher Obra",
                                      sb.ToString(), "Obra;Desc. Obra;",
                                                    "80;250;");



            EscolherData escolherData1 = new EscolherData();
            DialogResult resultado1 = escolherData1.inputar(ref mesAnalise, "Escolha o mes de análise", ref continuar);


            EscolherData escolherData = new EscolherData();
            DialogResult resultado = escolherData.inputar(ref diaAnalise, "Escolha o dia", ref continuar);

            if (continuar)
            {
                if (procurar.resultadoProcura.fResultadoProcura)
                {
                    atualizando = true;
                    cmbServico.SelectedItem = 0;
                    foreach (DataRow dr2 in dtDownload.Rows)
                    {
                        cmbServico.Items.Add(dr2["UAU_COMP"].ToString());
                    }
                    atualizando = false;
                    BuscarInsumoLookAHead(dtDownload, diaAnalise, Convert.ToInt32( rp.vCampo));
                    BuscarQtdePSA(dtDownload);                  
                }
            }
            escolherData.Dispose();
            uiApp = revit.Application;
            uiDoc = uiApp.ActiveUIDocument.Document;
            Selection sel = uiApp.ActiveUIDocument.Selection;
            Util.uiDoc = uiDoc;
            selecao = new revitDB.FilteredElementCollector(uiDoc).OfClass(typeof(Autodesk.Revit.DB.View));

            foreach (revitDB.View view in selecao)
            {
                try
                {
                    if (view.AreGraphicsOverridesAllowed())
                        if (view.LookupParameter("tocVistaAvanco").AsValueString() == "Sim")
                            vistasDeAvanco.Add(view);
                }
                catch
                {

                }

            }

            preenchimentoId = (Util.FindElementByName(typeof(revitDB.Material), "Previsto") as revitDB.Material).SurfacePatternId;
            /* orgRestricao= Util.GetOverrideGraphicSettings(Util.GetColorRevit(CorLinhaResticao),
                                                          Util.GetColorRevit(CorSuperficieRestricao),
                                                          preenchimentoId, 0);*/
        }
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            revitDB.FilteredElementCollector selecao;


            double percentAvanco;

            uiApp = revit.Application;
            uiDoc = uiApp.ActiveUIDocument.Document;
            Selection sel = uiApp.ActiveUIDocument.Selection;

            Util.uiDoc = uiDoc;



            preenchimentoId = (Util.FindElementByName(typeof(revitDB.Material), "Previsto") as revitDB.Material).SurfacePatternId;

            string p = comboBox1.SelectedItem.ToString();

            p = p.Replace("%", "");

            percentAvanco = Convert.ToDouble(p) / 100;
            EscolherData escolherData = new EscolherData();
            DialogResult resultado    = escolherData.inputar(ref diaProjecao, "Escolha o dia", ref continuar);

            if (!continuar)
            {
                return;
            }

            escolherData.Dispose();


            List <Autodesk.Revit.DB.ElementId> listaElemento = new List <revitDB.ElementId>();

            listaElemento.Clear();
            if (grdElementos.SelectedRows.Count > 0)
            {
                foreach (DataGridViewRow row in grdElementos.SelectedRows)

                {
                    listaElemento.Add(new Autodesk.Revit.DB.ElementId(Convert.ToInt32(row.Cells["DESCRICAO"].Value)));
                }
            }
            else
            {
                listaElemento.Add(new Autodesk.Revit.DB.ElementId(Convert.ToInt32(grdElementos.CurrentRow.Cells["DESCRICAO"].Value)));
            }

            Util.RodarPCP(manipulacao, uiApp, lista, CampoMark, diaProjecao, percentAvanco, GetOverrideGraficPorNome("orgProjecao"),
                          GetOverrideGraficPorNome("orgIniciadoComProjecao"), "", "", listaElemento);

            int psaId = Convert.ToInt32(grdElementos.CurrentRow.Cells["plan_servico_amo_id"].Value);

            dtCausa.Rows.Clear();
            dtCriterio.Rows.Clear();
            dtElemento.Rows.Clear();
            dtElemento.ida.Fill(dtElemento);
            dtCriterio.ida.Fill(dtCriterio);
            dtCausa.ida.Fill(dtCausa);

            bsElemento.Position = bsElemento.Find("PLAN_SERVICO_AMO_ID", psaId);
        }