private ListViewItem DmToItem(MovimentoRule.DocumentoMovimentado dm) { //ListViewItem item = new ListViewItem(dm.Designacao); ListViewItem item = new ListViewItem(dm.IDNivel.ToString()); item.Tag = GisaDataSetHelper.GetInstance().DocumentosMovimentados.Select(string.Format("IDMovimento={0} AND IDNivel={1}", CurrentMovimento.ID, dm.IDNivel))[0]; //item.SubItems.Add(new ListViewItem.ListViewSubItem(item, dm.IDNivel.ToString())); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, dm.Designacao)); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, dm.CodigoCompleto)); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, dm.NivelDescricao)); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, GISA.Utils.GUIHelper.FormatDateInterval(dm.AnoInicio, dm.MesInicio, dm.DiaInicio, dm.AnoFim, dm.MesFim, dm.DiaFim))); return(item); }
private void AcceptItem(ListViewItem item) { GISADataset.NivelRow nRow = (GISADataset.NivelRow)(((ListViewItem)item).Tag); LoadNivelDocumental(nRow.ID); // validar a associação: só se pode associar documentos e subdocumentos if (!(nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].IDTipoNivelRelacionado == TipoNivelRelacionado.D || nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].IDTipoNivelRelacionado == TipoNivelRelacionado.SD)) { MessageBox.Show("Só é permitido associar documentos e subdocumentos.", "Requisição/Devolução de documentos", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } GISADataset.DocumentosMovimentadosRow[] docMovRows = (GISADataset.DocumentosMovimentadosRow[]) (GisaDataSetHelper.GetInstance().DocumentosMovimentados.Select(string.Format("IDMovimento={0} AND IDNivel={1}", CurrentMovimento.ID, nRow.ID))); // aceitar o drop apenas se se tratar de um Nivel ainda não associado if (docMovRows.Length == 0) { MovimentoRule.DocumentoMovimentado dm = new MovimentoRule.DocumentoMovimentado(); GISADataset.DocumentosMovimentadosRow[] docMovDelRows = (GISADataset.DocumentosMovimentadosRow[]) (GisaDataSetHelper.GetInstance().DocumentosMovimentados.Select(string.Format("IDMovimento={0} AND IDNivel={1}", CurrentMovimento.ID, nRow.ID), "", DataViewRowState.Deleted)); string nCod = GetCodigoCompleto(item); if (docMovDelRows.Length > 0) { if (docMovDelRows[0].NivelRow.GetFRDBaseRows().Length > 0 && docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows().Length > 0) { dm.AnoFim = GisaDataSetHelper.GetDBNullableText(docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimAno"); dm.MesFim = GisaDataSetHelper.GetDBNullableText(docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimMes"); dm.DiaFim = GisaDataSetHelper.GetDBNullableText(docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimDia"); dm.AnoInicio = GisaDataSetHelper.GetDBNullableText(docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "InicioAno"); dm.MesInicio = GisaDataSetHelper.GetDBNullableText(docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "InicioMes"); dm.DiaInicio = GisaDataSetHelper.GetDBNullableText(docMovDelRows[0].NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimDia"); } dm.CodigoCompleto = nCod; dm.NivelDescricao = docMovDelRows[0].NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].TipoNivelRelacionadoRow.Designacao; dm.IDNivel = docMovDelRows[0].NivelRow.ID; dm.Designacao = docMovDelRows[0].NivelRow.GetNivelDesignadoRows()[0].Designacao; docMovDelRows[0].RejectChanges(); } else { GISADataset.DocumentosMovimentadosRow newDocMovRow = GisaDataSetHelper.GetInstance().DocumentosMovimentados.NewDocumentosMovimentadosRow(); newDocMovRow.NivelRow = nRow; newDocMovRow.MovimentoRow = CurrentMovimento; newDocMovRow.Versao = new byte[] { }; GisaDataSetHelper.GetInstance().DocumentosMovimentados.AddDocumentosMovimentadosRow(newDocMovRow); if (newDocMovRow.NivelRow.GetFRDBaseRows().Length > 0 && newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows().Length > 0) { dm.AnoFim = GisaDataSetHelper.GetDBNullableText(newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimAno"); dm.MesFim = GisaDataSetHelper.GetDBNullableText(newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimMes"); dm.DiaFim = GisaDataSetHelper.GetDBNullableText(newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimDia"); dm.AnoInicio = GisaDataSetHelper.GetDBNullableText(newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "InicioAno"); dm.MesInicio = GisaDataSetHelper.GetDBNullableText(newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "InicioMes"); dm.DiaInicio = GisaDataSetHelper.GetDBNullableText(newDocMovRow.NivelRow.GetFRDBaseRows()[0].GetSFRDDatasProducaoRows()[0], "FimDia"); } dm.CodigoCompleto = nCod; dm.NivelDescricao = newDocMovRow.NivelRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0].TipoNivelRelacionadoRow.Designacao; dm.IDNivel = newDocMovRow.NivelRow.ID; dm.Designacao = newDocMovRow.NivelRow.GetNivelDesignadoRows()[0].Designacao; } ListViewItem newItem = this.DmToItem(dm); this.lstVwNiveisAssoc.Items.Insert(0, newItem); newItem.EnsureVisible(); } }