private void DeleteItem() { ListViewItem item = this.lstVwNiveisAssoc.SelectedItems[0]; GISADataset.DocumentosMovimentadosRow dmRow = (GISADataset.DocumentosMovimentadosRow)item.Tag; var args = new PersistencyHelper.ValidateMovimentoDeleteItemPreConcArguments(); args.IDMovimento = dmRow.IDMovimento; args.IDNivel = dmRow.IDNivel; args.CatCode = dmRow.MovimentoRow.CatCode.Equals("REQ") ? "DEV" : "REQ"; dmRow.Delete(); PersistencyHelper.SaveResult successfulSave = PersistencyHelper.save(ValidateMovimentoDelete, args); PersistencyHelper.cleanDeletedData(); if (!args.continueSave) { var message = dmRow.MovimentoRow.CatCode.Equals("REQ") ? "Não é permitido eliminar a associação de documentos a requisições com devolução posterior" : "Não é permitido eliminar a associação de documentos a devoluções com requisições posteriores mas sem devolução"; MessageBox.Show(message, "Eliminar a associação de documento com a requisição/devolução", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } this.lstVwNiveisAssoc.Items.Remove(item); UpdateListButtonsState(); }
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(); } }