Example #1
0
 private GISADataset.SFRDUnidadeFisicaRow AssociaNivel(GISADataset.NivelRow nRow)
 {
     GISADataset.SFRDUnidadeFisicaRow frdufRow = null;
     frdufRow            = GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.NewSFRDUnidadeFisicaRow();
     frdufRow.FRDBaseRow = nRow.GetFRDBaseRows()[0];
     frdufRow.NivelRow   = CurrentNivel;
     GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.AddSFRDUnidadeFisicaRow(frdufRow);
     return(frdufRow);
 }
Example #2
0
        private ListViewItem PopulateAssociacao(GISADataset.SFRDUnidadeFisicaRow sfrdufRow)
        {
            GISADataset.NivelRow                nRow   = null;
            GISADataset.TipoNivelRow            tnRow  = null;
            GISADataset.TipoNivelRelacionadoRow tnrRow = null;

            nRow   = sfrdufRow.FRDBaseRow.NivelRow;
            tnRow  = nRow.TipoNivelRow;
            tnrRow = (GISADataset.TipoNivelRelacionadoRow)(GisaDataSetHelper.GetInstance().TipoNivelRelacionado.Select(string.Format("ID = {0}", System.Convert.ToString(((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[1])))[0]);

            ListViewItem item = new ListViewItem(new string[] { string.Empty, string.Empty, string.Empty, string.Empty, string.Empty });

            GISADataset.FRDBaseRow frdbaseRow = nRow.GetFRDBaseRows()[0];

            item.SubItems.AddRange(new string[] { string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty });
            item.ImageIndex      = SharedResourcesOld.CurrentSharedResources.NivelImageBase(System.Convert.ToInt32(tnrRow.GUIOrder));
            item.StateImageIndex = 0;
            item.SubItems[chCodigo.Index].Text     = System.Convert.ToString(((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[8]);
            item.SubItems[chDesignacao.Index].Text = System.Convert.ToString(((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[0]);
            item.SubItems[chNivelDesc.Index].Text  = tnrRow.Designacao;
            item.SubItems[chDatasProd.Index].Text  = GISA.Utils.GUIHelper.FormatDate(((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[2].ToString(), ((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[3].ToString(), ((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[4].ToString(), false) + " - " + GISA.Utils.GUIHelper.FormatDate(((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[5].ToString(), ((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[6].ToString(), ((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[7].ToString(), false);
            item.SubItems[chCota.Index].Text       = sfrdufRow["Cota"] == DBNull.Value ? "" : sfrdufRow.Cota;

            if (this.lstVwNiveisAssoc.Columns.Contains(this.chRequisitado))
            {
                if (System.Convert.ToBoolean(((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[10]))
                {
                    item.SubItems[this.chRequisitado.Index].Text = "Sim";
                }
                else
                {
                    item.SubItems[this.chRequisitado.Index].Text = "Não";
                }
            }

            item.Tag = sfrdufRow;
            return(item);
        }
 private void AcceptNivelRow(GISADataset.NivelRow NivelRow)
 {
     // aceitar o drop apenas se se tratar de uma UF ainda não associada
     if (GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", CurrentFRDBase.ID, NivelRow.ID), "", DataViewRowState.Deleted).Length > 0)
     {
         // prever o caso de a associação ter sido apagada ainda antes de ser gravada na BD e com isso evitar
         // erros durante o save (linhas com o rowstate deleted sao mudadas para modified e é mudado
         // o booleano isDeleted para True e havendo uma linha com a mesma chave primária com estado added
         // ocorre um erro de conflito de chaves primárias)
         GISADataset.SFRDUnidadeFisicaRow frdufRow = null;
         frdufRow = (GISADataset.SFRDUnidadeFisicaRow)(GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", CurrentFRDBase.ID, NivelRow.ID), "", DataViewRowState.Deleted)[0]);
         frdufRow.RejectChanges();
         var aeAssociadas = LoadUFAutosAssociados(NivelRow);
         PopulateAssociacao(frdufRow, aeAssociadas);
     }
     else if (GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", CurrentFRDBase.ID, NivelRow.ID)).Length == 0)
     {
         GISADataset.SFRDUnidadeFisicaRow frdufRow = null;
         frdufRow = AssociaUnidadeFisica(NivelRow);
         var aeAssociadas = LoadUFAutosAssociados(NivelRow);
         PopulateAssociacao(frdufRow, aeAssociadas);
     }
 }
Example #4
0
        private void RepopulateNiveisAssociados()
        {
            lstVwNiveisAssoc.BeginUpdate();
            lstVwNiveisAssoc.Items.Clear();
            GISADataset.TrusteeUserRow cUser = SessionHelper.GetGisaPrincipal().TrusteeUserOperator;

            long[]    lUser = { System.Convert.ToInt64(cUser.ID) };
            ArrayList items = new ArrayList();

            GISADataset.SFRDUnidadeFisicaRow sfrdufRow = null;

            if ((filter.Count == 0) && (!filtered))
            {
                foreach (Int64 ID in ordem)
                {
                    sfrdufRow = (GISADataset.SFRDUnidadeFisicaRow)(GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDNivel={0} AND IDFRDBase={1}", CurrentNivel.ID, ID))[0]);
                    if (((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[9].ToString() == "1")
                    {
                        items.Add(PopulateAssociacao(sfrdufRow));
                    }
                }
            }
            else
            {
                foreach (Int64 ID in filter)
                {
                    sfrdufRow = (GISADataset.SFRDUnidadeFisicaRow)(GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDNivel={0} AND IDFRDBase={1}", CurrentNivel.ID, ID))[0]);
                    if (((ArrayList)(detalhes[sfrdufRow.FRDBaseRow.IDNivel]))[9].ToString() == "1")
                    {
                        items.Add(PopulateAssociacao(sfrdufRow));
                    }
                }
            }

            lstVwNiveisAssoc.Items.AddRange((ListViewItem[])(items.ToArray(typeof(ListViewItem))));
            lstVwNiveisAssoc.EndUpdate();
        }
        private void AddAssociacao(GISADataset.SFRDUnidadeFisicaRow sfrdufRow, string aeAssociados)
        {
            GISADataset.FRDBaseRow[] frdbaseRows = null;
            GISADataset.SFRDUFDescricaoFisicaRow[] sfrddfRows = null;
            GISADataset.SFRDUFDescricaoFisicaRow   sfrddfRow  = null;
            GISADataset.SFRDDatasProducaoRow[]     sfrddpRows = null;
            GISADataset.SFRDDatasProducaoRow       sfrddpRow  = null;
            GISADataset.SFRDUFCotaRow[]            sfrdcRows  = null;
            GISADataset.SFRDUFCotaRow sfrdcRow = null;

            frdbaseRows = sfrdufRow.NivelRow.GetFRDBaseRows();
            if (frdbaseRows.Length > 0)             // embora o teste seja "> 0" nunca poderá ser mais do que uma...
            {
                sfrddfRows = frdbaseRows[0].GetSFRDUFDescricaoFisicaRows();
                if (sfrddfRows.Length > 0)
                {
                    sfrddfRow = sfrddfRows[0];
                }

                sfrddpRows = frdbaseRows[0].GetSFRDDatasProducaoRows();
                if (sfrddpRows.Length > 0)
                {
                    sfrddpRow = sfrddpRows[0];
                }

                sfrdcRows = frdbaseRows[0].GetSFRDUFCotaRows();
                if (sfrdcRows.Length > 0)
                {
                    sfrdcRow = sfrdcRows[0];
                }
            }

            // Verificar se foi eliminado (NivelUnidadeFisica):
            GISADataset.NivelDesignadoRow[]     ndRows  = sfrdufRow.NivelRow.GetNivelDesignadoRows();
            GISADataset.NivelUnidadeFisicaRow[] nufRows = null;
            GISADataset.NivelUnidadeFisicaRow   nufRow  = null;
            if (ndRows.Length > 0)
            {
                nufRows = ndRows[0].GetNivelUnidadeFisicaRows();
                if (nufRows.Length > 0)
                {
                    nufRow = nufRows[0];
                }
            }

            var codNivel = sfrdufRow.NivelRow.Codigo;
            var codED    = sfrdufRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().NivelRowByNivelRelacaoHierarquicaUpper.Codigo;

            var r = UFsRelacionadasDataTable.NewRow();

            r[ID]         = sfrdufRow.NivelRow.ID.ToString();
            r[CODIGO]     = codED + '/' + codNivel;
            r[DESIGNACAO] = sfrdufRow.NivelRow.GetNivelDesignadoRows()[0].Designacao;
            if (sfrddfRow != null)
            {
                r[TIPO]      = sfrddfRow.TipoAcondicionamentoRow.Designacao;
                r[DIMENSOES] = GUIHelper.GUIHelper.FormatDimensoes(sfrddfRow);
            }
            if (sfrdcRow != null && !(sfrdcRow.IsCotaNull()))
            {
                r[COTA] = sfrdcRow.Cota;
            }
            if (sfrddpRow != null)
            {
                r[PRODUCAO] = GUIHelper.GUIHelper.FormatDateInterval(sfrdufRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0]);
            }
            if (nufRow != null && nufRow["Eliminado"] != DBNull.Value && nufRow.Eliminado)
            {
                r[ELIMINADA] = aeAssociados;
                if (!sfrddfRow.IsMedidaLarguraNull())
                {
                    larguraTotal += sfrddfRow.MedidaLargura;
                }

                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0].Style.Font = new Font(dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0].Style.Font, FontStyle.Strikeout);
            }
            else
            {
                r[ELIMINADA] = "Não";
            }
            UFsRelacionadasDataTable.Rows.Add(r);
        }
 private void PopulateAssociacao(GISADataset.SFRDUnidadeFisicaRow sfrdufRow, string aeAssociadas)
 {
     AddAssociacao(sfrdufRow, aeAssociadas);
     UpdateInfoSuporte();
 }
Example #7
0
        private void acceptAssociation(GISADataset.NivelRow nRow, string codigoCompleto)
        {
            // validar a associação: só se pode associar um nível que pertença à mesma entidade detentadora da unidade física
            //ArrayList entidadesDetentoras = new ArrayList();
            //GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
            //try
            //{
            //    entidadesDetentoras = DBAbstractDataLayer.DataAccessRules.UFRule.Current.GetEntidadeDetentoraForNivel(nRow.ID, ho.Connection);
            //}
            //catch (Exception ex)
            //{
            //    Trace.WriteLine(ex);
            //    throw;
            //}
            //finally
            //{
            //    ho.Dispose();
            //}

            //if (! (entidadesDetentoras.Contains(CurrentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].IDUpper)))
            //{
            //    MessageBox.Show("Não é permitido associar uma unidade de descrição de uma " + System.Environment.NewLine + "entidade detentora diferente da unidade física seleccionada.", "Adicionar Unidades de Descrição", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            //    return;
            //}

            // aceitar o drop apenas se se tratar de um Nivel ainda não associado
            if (nRow.GetFRDBaseRows().Length > 0)
            {
                GISADataset.SFRDUnidadeFisicaRow[] frdufRows = (GISADataset.SFRDUnidadeFisicaRow[])(GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", nRow.GetFRDBaseRows()[0].ID, CurrentNivel.ID), "", DataViewRowState.Deleted));
                if (frdufRows.Length > 0)
                {
                    frdufRows[0].RejectChanges();
                    AddDetalhe(nRow, nCod);
                    ListViewItem item = PopulateAssociacao(frdufRows[0]);
                    lstVwNiveisAssoc.Items.Insert(0, item);
                    item.EnsureVisible();
                }
                else
                {
                    if (GisaDataSetHelper.GetInstance().SFRDUnidadeFisica.Select(string.Format("IDFRDBase={0} AND IDNivel={1}", nRow.GetFRDBaseRows()[0].ID, CurrentNivel.ID)).Length == 0)
                    {
                        GISADataset.SFRDUnidadeFisicaRow frdufRow = null;
                        frdufRow = AssociaNivel(nRow);
                        AddDetalhe(nRow, nCod);
                        ordem.Insert(0, frdufRow.IDFRDBase);
                        ListViewItem item = PopulateAssociacao(frdufRow);
                        lstVwNiveisAssoc.Items.Insert(0, item);
                        item.EnsureVisible();
                    }
                }
            }
            else
            {
                var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
                try
                {
                    FRDRule.Current.LoadFRD(GisaDataSetHelper.GetInstance(), nRow.ID, ho.Connection);
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex);
                    throw;
                }
                finally
                {
                    ho.Dispose();
                }

                if (nRow.GetFRDBaseRows().Length > 0 && nRow.GetFRDBaseRows()[0].isDeleted == 1)
                {
                    MessageBox.Show("O nível selecionado foi apagado por outro utilizador " + System.Environment.NewLine + "motivo pelo qual não é possível terminar a associação", "Unidades de Descrição", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    if (nRow.GetFRDBaseRows().Length == 0)
                    {
                        // Criar uma nova FRD para o nível em questão.
                        GISADataset.FRDBaseRow frdRow = GisaDataSetHelper.GetInstance().FRDBase.NewFRDBaseRow();
                        frdRow.NivelRow           = nRow;
                        frdRow.TipoFRDBaseRow     = (GISADataset.TipoFRDBaseRow)(GisaDataSetHelper.GetInstance().TipoFRDBase.Select(string.Format("ID={0:d}", TipoFRDBase.FRDOIRecolha))[0]);
                        frdRow.NotaDoArquivista   = string.Empty;
                        frdRow.RegrasOuConvencoes = string.Empty;
                        GisaDataSetHelper.GetInstance().FRDBase.AddFRDBaseRow(frdRow);
                    }

                    GISADataset.SFRDUnidadeFisicaRow frdufRow = null;
                    frdufRow = AssociaNivel(nRow);
                    AddDetalhe(nRow, codigoCompleto);
                    ordem.Insert(0, frdufRow.IDFRDBase);
                    ListViewItem item = PopulateAssociacao(frdufRow);
                    lstVwNiveisAssoc.Items.Insert(0, item);
                    item.EnsureVisible();
                }
            }
        }