Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
 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;
     }
 }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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();
            }
        }
Пример #8
0
		public static void DeleteNivelXInDataBase(PersistencyHelper.PreSaveArguments args)
		{
			DBAbstractDataLayer.DataAccessRules.NivelRule.Current.DeleteNivelInDataBase(((PersistencyHelper.DeleteIDXPreSaveArguments)args).ID, args.tran);
		}
Пример #9
0
		private static void DeleteFRDBaseXInDataBase(PersistencyHelper.PreSaveArguments args)
		{
			NivelRule.Current.DeleteFRDBaseInDataBase(((PersistencyHelper.DeleteIDXPreSaveArguments)args).ID, args.tran);
		}