private Boolean CanAddElement(CompensationProvision element, DateValidationType dateValidationType) { Boolean isValid = false; switch (dateValidationType) { case DateValidationType.ALL: isValid = true; break; case DateValidationType.HISTORICAL: if (DateTime.Compare(element.ValidTo, DateTime.Now) < 0) { isValid = true; } break; case DateValidationType.ACTIVE: if (!element.IsClosed && DateTime.Compare(element.ValidFrom, DateTime.Now) < 0 && DateTime.Compare(element.ValidTo, DateTime.Now) > 0) { isValid = true; } break; case DateValidationType.ACTIVE_AND_FUTURE: if (!element.IsClosed) { if (DateTime.Compare(element.ValidFrom, DateTime.Now) < 0 && DateTime.Compare(element.ValidTo, DateTime.Now) > 0) //Active { isValid = true; } if (DateTime.Compare(element.ValidFrom, DateTime.Now) > 0) //Future { isValid = true; } } break; case DateValidationType.FUTURE: if (!element.IsClosed && DateTime.Compare(element.ValidFrom, DateTime.Now) > 0) { isValid = true; } break; default: isValid = false; break; } return isValid; }
/// <summary> /// /// </summary> /// <param name="newKind"></param> /// <param name="persistentObject"></param> /// <param name="conditionQuantity"></param> /// <param name="validFrom"></param> /// <param name="validTo"></param> /// <returns></returns> public CompensationProvision NewCompensationProvision( CompensationProvision.Kind newKind, Something persistentObject, Decimal conditionQuantity, DateTime validFrom, DateTime validTo) { CompensationProvision compensationProvision; //New instance of the specified type. if (newKind != null) { compensationProvision = (CompensationProvision)newKind.New(); } else { compensationProvision = new CompensationProvision(); } //Initiate. compensationProvision.ConditionQuantity = conditionQuantity; compensationProvision.SetAppliesTo(persistentObject); compensationProvision.ValidFrom = validFrom; compensationProvision.ValidTo = validTo; compensationProvision.IsClosed = false; return compensationProvision; }
/// <summary> /// /// </summary> /// <param name="wantedType"></param> /// <param name="includedIn"></param> /// <param name="persistentObject"></param> /// <param name="percent"></param> /// <param name="quantity"></param> /// <param name="validFrom"></param> /// <param name="validTo"></param> /// <returns></returns> public CompensationProvision NewRelativeDeduction( CompensationProvision.Kind wantedType, AgreedCompensation includedIn, Something persistentObject, Decimal percent, Decimal quantity, DateTime validFrom, DateTime validTo) { //Instantiate the new charge. CompensationProvision compensationProvision = NewCompensationProvision( wantedType, persistentObject, quantity, validFrom, validTo); //Initiate compensationProvision.SetAppliesTo(persistentObject); compensationProvision.SetAgreedCompensation(includedIn); compensationProvision.AddPercent = -percent; compensationProvision.IsRelative = true; return compensationProvision; }
/// <summary> /// /// </summary> /// <param name="wantedType"></param> /// <param name="includedIn"></param> /// <param name="persistentObject"></param> /// <param name="amount"></param> /// <param name="quantity"></param> /// <param name="currencyKind"></param> /// <param name="validFrom"></param> /// <param name="validTo"></param> /// <returns></returns> public CompensationProvision NewCharge( CompensationProvision.Kind wantedType, AgreedCompensation includedIn, Something persistentObject, Decimal amount, Decimal quantity, Currency.Kind currencyKind, DateTime validFrom, DateTime validTo) { //Instantiate the new charge. CompensationProvision compensationProvision = NewCompensationProvision(wantedType, persistentObject, quantity, validFrom, validTo); //Initiate compensationProvision.CurrencyKind = currencyKind; compensationProvision.SetAppliesTo(persistentObject); compensationProvision.SetAgreedCompensation(includedIn); compensationProvision.Amount = amount; compensationProvision.IsRelative = false; return compensationProvision; }