public static void SetCodigo(PersistencyHelper.PreSaveArguments args) { PersistencyHelper.IsCodigoUFBeingUsedPreSaveArguments psa = null; psa = (PersistencyHelper.IsCodigoUFBeingUsedPreSaveArguments)args; GISADataset.NivelUnidadeFisicaCodigoRow codRow = null; // a atribuição de um código de referência ocorre quando se cria uma // UF nova ou se está a mudar a ED de uma UF e é atribuído só se não houver // qualquer conflito de concorrência if (!psa.cancelSetNewCodigo) { GISADataset.NivelRow nivelUFRow = (GISADataset.NivelRow)(GisaDataSetHelper.GetInstance().Nivel.Select("ID=" + psa.nivelUFRowID.ToString())[0]); codRow = UnidadesFisicasHelper.GetNewCodigoRow(nivelUFRow, System.DateTime.Now.Year); decimal newCounterValue = DBAbstractDataLayer.DataAccessRules.UFRule.Current.IsCodigoUFBeingUsed(codRow.ID, codRow.Ano, psa.tran); if (newCounterValue != 0M) { nivelUFRow.Codigo = "UF" + codRow.Ano.ToString() + "-" + newCounterValue.ToString(); } else { nivelUFRow.Codigo = "UF" + codRow.Ano.ToString() + "-" + codRow.Contador.ToString(); } //quer tenha sido adicionada uma entrada na tabela NivelUnidadeFisicaCodigo quer so tenha sido actualizado //o contador de uma das linhas, essa operação foi executada directamente na base de dados pelo que para //manter a coerência é necessário confirmar a mesma operação do lado do dataset codRow.AcceptChanges(); DBAbstractDataLayer.DataAccessRules.UFRule.Current.ReloadNivelUFCodigo(GisaDataSetHelper.GetInstance(), codRow.ID, codRow.Ano, psa.tran); } }
private void AvaliaDocumentosTabela(PersistencyHelper.PreSaveArguments args) { PersistencyHelper.AvaliaDocumentosTabelaPreSaveArguments adtPsa = null; adtPsa = (PersistencyHelper.AvaliaDocumentosTabelaPreSaveArguments)args; if (adtPsa.frdID > long.MinValue) { FRDRule.Current.ExecuteAvaliaDocumentosTabela(adtPsa.frdID, adtPsa.modeloAvaliacaoID, adtPsa.avaliacaoTabela, adtPsa.preservar, adtPsa.prazoConservacao, adtPsa.tran); } }
private void PublishSubDocumentos(PersistencyHelper.PreSaveArguments args) { PersistencyHelper.PublishSubDocumentosPreSaveArguments psdPsa = null; psdPsa = (PersistencyHelper.PublishSubDocumentosPreSaveArguments)args; if (psdPsa.DocsID.Count > 0) { psdPsa.idsToUpdate = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.ExecutePublishSubDocumentos(psdPsa.DocsID, PermissoesHelper.GrpAcessoPublicados.ID, psdPsa.tran); } }
private void AvaliacaoPublicacao(PersistencyHelper.PreSaveArguments args) { PersistencyHelper.PublishSubDocumentosPreSaveArguments psdPsa = null; psdPsa = (PersistencyHelper.PublishSubDocumentosPreSaveArguments)(((PersistencyHelper.AvaliacaoPublicacaoPreSaveArguments)args).psArgs1); psdPsa.tran = args.tran; PublishSubDocumentos(psdPsa); PersistencyHelper.AvaliaDocumentosTabelaPreSaveArguments adtPsa = null; adtPsa = (PersistencyHelper.AvaliaDocumentosTabelaPreSaveArguments)(((PersistencyHelper.AvaliacaoPublicacaoPreSaveArguments)args).psArgs2); adtPsa.tran = args.tran; AvaliaDocumentosTabela(adtPsa); }
public static void createNewCodigoSerie(PersistencyHelper.PreSaveArguments args) { try { GISADataset.NivelRow nRow = null; nRow = (GISADataset.NivelRow)(GisaDataSetHelper.GetInstance().Nivel.Select("ID=" + ((PersistencyHelper.FetchLastCodigoSeriePreSaveArguments)args).nRowID.ToString())[0]); // antes de obter o código verificar se adição de um novo nível ainda é possível (por razões de concorrência) bool RHNivelUpperExists = ((PersistencyHelper.VerifyIfRHNivelUpperExistsPreConcArguments)(((PersistencyHelper.FetchLastCodigoSeriePreSaveArguments)args).pcArgs)).RHNivelUpperExists; if (RHNivelUpperExists) { NivelRule.Current.FillTipoNivelRelacionadoCodigo(GisaDataSetHelper.GetInstance(), args.tran); nRow.Codigo = NiveisHelper.getNextSeriesCodigo(true); // estamos dentro de um save e de uma transaccao por isso podemos fazer um update DBAbstractDataLayer.DataAccessRules.PersistencyHelperRule.Current.saveRows(GisaDataSetHelper.GetInstance().TipoNivelRelacionadoCodigo, GisaDataSetHelper.GetInstance().TipoNivelRelacionadoCodigo.Select(), args.tran); } } catch (Exception ex) { Trace.WriteLine(ex); throw; } }
public static void SetNewCodigos(PersistencyHelper.PreSaveArguments args) { PersistencyHelper.SetNewCodigosPreSaveArguments sncPsa = null; sncPsa = (PersistencyHelper.SetNewCodigosPreSaveArguments)args; if (sncPsa.createNewNivelCodigo) { sncPsa.argsNivel.tran = sncPsa.tran; createNewCodigoSerie(sncPsa.argsNivel); } if (sncPsa.createNewUFCodigo) { sncPsa.argsUF.tran = sncPsa.tran; SetCodigo(sncPsa.argsUF); } if (sncPsa.argsNivelDocSimples != null) { sncPsa.argsNivelDocSimples.tran = sncPsa.tran; SetOrdemDocSimples(sncPsa.argsNivelDocSimples.nRowID, sncPsa.argsNivelDocSimples.nRowIDUpper, sncPsa.argsNivelDocSimples.tran); } }
public static void validateCANewTermo(PersistencyHelper.PreSaveArguments args) { PersistencyHelper.NewControloAutPreSaveArguments ncaPsa = null; ncaPsa = (PersistencyHelper.NewControloAutPreSaveArguments)args; GISADataset.DicionarioRow dicionarioRow = (GISADataset.DicionarioRow)(GisaDataSetHelper.GetInstance().Dicionario.Select(string.Format("ID={0} OR Termo='{1}'", ncaPsa.dID.ToString(), ncaPsa.dTermo))[0]); GISADataset.ControloAutRow caRow = (GISADataset.ControloAutRow)(GisaDataSetHelper.GetInstance().ControloAut.Select("ID=" + ncaPsa.caID.ToString())[0]); //É usado a coluna ID do dicionarioRow uma vez que, se a execução deste método corresponder a uma re-execução da transacção na qual está inserida, o valor do ID passado como argumento pode já ter sido alterado no algoritmo de detecção de conflitos de concorrência (neste caso concreto já existir na base de dados o termo na tabela Dicionario) GISADataset.ControloAutDicionarioRow cadRow = null; if (GisaDataSetHelper.GetInstance().ControloAutDicionario.Select(string.Format("IDControloAut={0} AND IDDicionario={1} AND IDTipoControloAutForma={2}", caRow.ID, dicionarioRow.ID, ncaPsa.cadIDTipoControloAutForma)).Length > 0) { cadRow = (GISADataset.ControloAutDicionarioRow)(GisaDataSetHelper.GetInstance().ControloAutDicionario.Select(string.Format("IDControloAut={0} AND IDDicionario={1} AND IDTipoControloAutForma={2}", caRow.ID, dicionarioRow.ID, ncaPsa.cadIDTipoControloAutForma))[0]); } else if (GisaDataSetHelper.GetInstance().ControloAutDicionario.Select(string.Format("IDControloAut={0} AND IDDicionario={1} AND IDTipoControloAutForma={2}", ncaPsa.cadIDControloAut, ncaPsa.cadIDDicionario, ncaPsa.cadIDTipoControloAutForma)).Length > 0) { cadRow = (GISADataset.ControloAutDicionarioRow)(GisaDataSetHelper.GetInstance().ControloAutDicionario.Select(string.Format("IDControloAut={0} AND IDDicionario={1} AND IDTipoControloAutForma={2}", ncaPsa.cadIDControloAut, ncaPsa.cadIDDicionario, ncaPsa.cadIDTipoControloAutForma))[0]); } else { Debug.Assert(false, "Situação imprevista!!"); } GISADataset.NivelControloAutRow ncaRow = null; GISADataset.NivelRow nRow = null; if (caRow.TipoNoticiaAutRow.ID == Convert.ToInt64(TipoNoticiaAut.EntidadeProdutora)) { ncaRow = (GISADataset.NivelControloAutRow)(GisaDataSetHelper.GetInstance().NivelControloAut.Select("ID=" + ncaPsa.nID.ToString())[0]); nRow = (GISADataset.NivelRow)(GisaDataSetHelper.GetInstance().Nivel.Select("ID=" + ncaPsa.nID.ToString())[0]); } if (!(DBAbstractDataLayer.DataAccessRules.DiplomaModeloRule.Current.isTermoUsedByOthers(caRow.ID, dicionarioRow.CatCode, dicionarioRow.Termo.Trim().Replace("'", "''"), false, caRow.TipoNoticiaAutRow.ID, ncaPsa.tran))) { ncaPsa.successTermo = true; } if (caRow.TipoNoticiaAutRow.ID == Convert.ToInt64(TipoNoticiaAut.EntidadeProdutora) && DBAbstractDataLayer.DataAccessRules.NivelRule.Current.isUniqueCodigo(nRow.Codigo, nRow.ID, ncaPsa.tran)) { ncaPsa.successCodigo = true; } if (!ncaPsa.successTermo || (caRow.TipoNoticiaAutRow.ID == Convert.ToInt64(TipoNoticiaAut.EntidadeProdutora) && !ncaPsa.successCodigo)) { cadRow.RejectChanges(); if (caRow.TipoNoticiaAutRow.ID == Convert.ToInt64(TipoNoticiaAut.EntidadeProdutora)) { ncaRow.RejectChanges(); nRow.GetTrusteeNivelPrivilegeRows().ToList().ForEach(r => r.RejectChanges()); nRow.GetFRDBaseRows().ToList().ForEach(r => r.RejectChanges()); nRow.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquicaUpper().ToList().ForEach(r => r.RejectChanges()); nRow.RejectChanges(); caRow.GetControloAutEntidadeProdutoraRows().ToList().ForEach(r => r.RejectChanges()); caRow.GetControloAutDatasExistenciaRows().ToList().ForEach(r => r.RejectChanges()); } GisaDataSetHelper.GetInstance().ControloAutDataDeDescricao.Cast <GISADataset.ControloAutDataDeDescricaoRow>().Where(r => r.IDControloAut == caRow.ID).ToList().ForEach(r => r.RejectChanges()); caRow.GetInteg_RelacaoExternaControloAutRows().ToList().ForEach(r => r.RejectChanges()); caRow.GetIndexFRDCARows().ToList().ForEach(r => r.RejectChanges()); caRow.RejectChanges(); dicionarioRow.RejectChanges(); } }
public static void DeleteNivelXInDataBase(PersistencyHelper.PreSaveArguments args) { DBAbstractDataLayer.DataAccessRules.NivelRule.Current.DeleteNivelInDataBase(((PersistencyHelper.DeleteIDXPreSaveArguments)args).ID, args.tran); }
private static void DeleteFRDBaseXInDataBase(PersistencyHelper.PreSaveArguments args) { NivelRule.Current.DeleteFRDBaseInDataBase(((PersistencyHelper.DeleteIDXPreSaveArguments)args).ID, args.tran); }