예제 #1
0
 protected override void AfterChange(DataColumn dc, DataRow dr)
 {
     SST.SSTDecisionRow sdr = (SST.SSTDecisionRow)dr;
     switch (dc.ColumnName)
     {
     case "OutcomeId":
     case "DecisionDate":
         if (sdr.DecisionType == 3 && !sdr.IsDecisionDateNull())
         {
             SST.SSTCaseRow scr = myA.DB.SSTCase.FindBySSTCaseId(sdr.SSTCaseId);
             scr.Received365Date = sdr.DecisionDate.AddDays(365);
             scr.EndEdit();
         }
         if (!sdr.IsOutcomeIdNull())
         {
             CodesDB.OutcomeRow orr = myA.AtMng.CodeDB.Outcome.FindByOutcomeId(sdr.OutcomeId);
             sdr.IsFinal = orr.IsFinal;
         }
         break;
     }
 }
예제 #2
0
        protected override void BeforeChange(DataColumn dc, DataRow dr)
        {
            SST.SSTDecisionRow sdr = (SST.SSTDecisionRow)dr;
            switch (dc.ColumnName)
            {
            case "IsCombined":
                if (sdr.IsCombined)
                {
                    //must be "allowed"
                    if (!sdr.IsOutcomeIdNull() && sdr.OutcomeId == 10 && sdr.DecisionType == 4)
                    {
                        throw new AtriumException(Properties.Resources.SSTDecisionIsCombined);
                    }
                }
                break;

            case "DecisionDate":
                if (!sdr.IsDecisionDateNull())
                {
                    myA.IsValidDate(dc.ColumnName, sdr.DecisionDate, true, sdr.SSTCaseRow.ReceivedDate, DateTime.Today, atriumBE.Properties.Resources.SSTAppealDate, atriumBE.Properties.Resources.ValidationToday);
                }
                break;

            case "DecisionSentDate":
                if (!sdr.IsDecisionSentDateNull())
                {
                    myA.IsValidDate(dc.ColumnName, sdr.DecisionSentDate, true, sdr.SSTCaseRow.ReceivedDate, DateTime.Today, atriumBE.Properties.Resources.SSTAppealDate, atriumBE.Properties.Resources.ValidationToday);
                }
                break;

            case "DecisionType":
                if (!sdr.IsNull(dc))
                {
                    CodesDB.DecisionTypeRow dtr = myA.AtMng.CodeDB.DecisionType.FindByDecisionTypeId(sdr.DecisionType);
                    if (dtr.OncePerFile)
                    {
                        //check to see if there is already a design of this type
                        foreach (SST.SSTDecisionRow xsdr in mySSTDecisionDT)
                        {
                            if (xsdr.SSTDecisionId != sdr.SSTDecisionId && xsdr.DecisionType == sdr.DecisionType)
                            {
                                string msg = String.Format(atriumBE.Properties.Resources.SSTDecisionTypeDup, dtr["DecType" + myA.AppMan.Language].ToString());
                                myA.FM.RaiseWarning(WarningLevel.Interrupt, msg, myA.AtMng.AppMan.AppName);
                            }
                        }
                    }
                }
                else
                {
                    throw new RequiredException(dc.ColumnName);
                }
                break;

            case "OutcomeId":
                if (!sdr.IsOutcomeIdNull())
                {
                    CodesDB.OutcomeRow orr = myA.AtMng.CodeDB.Outcome.FindByOutcomeId(sdr.OutcomeId);
                    if (orr.DecisionType != sdr.DecisionType)
                    {
                        throw new AtriumException("Not a valid outcome for this decision type");
                    }
                }
                break;
            }
        }