| Quintiq file version 2.0 | 
| #parent: #root | 
| FunctionOverride CalcNumberOfViolation | 
| { | 
|   TextBody: | 
|   [* | 
|     // Get the total number of sanity check violations from all related object types, which amount to a truly large set | 
|     nrofviolation := // get the number of violations fro the UnitAvailabilities | 
|                      sum( this, InvalidUnitAvailability, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // get the number of violations for the Trips | 
|                      + sum( this, InvalidTrip, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and the TransportAvailabilities | 
|                      + sum( this, InvalidTransportAvailability, inv, inv.SanityCheckDataTotalViolationCount() )  | 
|                      // and the TransportCapacities | 
|                      + sum( this, InvalidTransportCapacity, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and the Units and UnitsOfMeasure, -Cost, -Capacity, -CalendarElement and -Account | 
|                      + sum( this, InvalidUnitOfMeasure_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidUnitCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidUnitCapacity, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidUnitCalendarElement, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidUnitAccount, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidUnit, inv, inv.SanityCheckDataTotalViolationCount() )  | 
|                      // and the SupplySpecification | 
|                      + sum( this, InvalidSupplySpecification, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and the StockingPoint and StockingPointUnit, -InPeriod, -InLane, -Cost, -Capacity and -Account | 
|                      + sum( this, InvalidStockingPointUnit, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidStockingPointInPeriod, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidStockingPointInLane, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidStockingPointCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidStockingPointCapacity, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidStockingPointAccount, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidStockingPoint_MP, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and ShiftPattern and -Day   | 
|                      + sum( this, InvalidShiftPattern, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidShiftDay, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and ServiceLevel | 
|                      + sum( this, InvalidServiceLevel, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and SalesSegment, -Level and -Demand | 
|                      + sum( this, InvalidSalesSegment_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidSalesLevel_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidSalesDemand, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and Routings and RoutingSteps | 
|                      + sum( this, InvalidRoutingStep, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidRouting, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and Product and ProductLevel, -InStockingPointInPeriod, -InStockingPoint and -InLane | 
|                      + sum( this, InvalidProductLevel_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidProductInStockingPointInPeriod, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidProductInStockingPoint_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidProductInLane, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidProduct_MP, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and Priorities | 
|                      + sum( this, InvalidPriority, inv, inv.SanityCheckDataTotalViolationCount() )  | 
|                      // and PostponedSalesDemandCost and -Specification                | 
|                      + sum( this, InvalidPostponedSalesDemandCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidPostponementSpecification, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and ProductInStockingPointAccount and -Specification | 
|                      + sum( this, InvalidPISPAccount, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidPISPSpecification, inv, inv.SanityCheckDataTotalViolationCount() )  | 
|                      // and all of the operation related objects | 
|                      + sum( this, InvalidPeriodTaskOperation, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationOutput, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationLink, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationInputSet, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationInputGroup, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationInput, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationInCampaignType, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperationCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidOperation, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and Lane and LaneLeg data | 
|                      + sum( this, InvalidLaneLegCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidLaneLeg, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidLaneCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidLane, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      // and Inventory data | 
|                      + sum( this, InvalidInventorySupply, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidInventorySpecification, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      + sum( this, InvalidSafetyStock, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and finally all other objects  | 
|                      + sum( this, InvalidIngredient, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidGroup, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidFulfillment, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidDependentDemand, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidCurrencyRate_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidCurrency_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidCampaignType_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidCampaign_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidBaseRecipeIngredient, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      // and Recipe and more product data | 
|                      + sum( this, InvalidRecipe, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidRecipeWithEffectiveDateInProduct, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      + sum( this, InvalidProductValueAndCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidProductInTrip, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidPeriodSpecification_MP, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + guard( this.InvalidMacroPlan().SanityCheckDataTotalViolationCount(), 0 )   | 
|                      // and some inventory and feedback data | 
|                      + sum( this, InvalidInventoryValueAndHoldingCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidInventorySupplyCost, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + guard( this.InvalidGlobalParameters_MP().SanityCheckDataTotalViolationCount(), 0 )    | 
|                      + sum( this, InvalidFeedbackProductInTrip, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidFeedbackPeriodTaskOperation, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidBaseConversionFactor, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidActualUnitPeriod, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidActualProductInStockingPointInPeriod, inv, inv.SanityCheckDataTotalViolationCount() )   | 
|                      + sum( this, InvalidAccount_MP, inv, inv.SanityCheckDataTotalViolationCount() )  | 
|                      // and some fulfillment data | 
|                      + sum( this, InvalidFulfillmentTarget, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      + sum( this, InvalidFulfillmentRestriction, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      + sum( this, InvalidCustomerOrder, inv, inv.SanityCheckDataTotalViolationCount() ) | 
|                      + sum( this, InvalidSubsetInOptimizerPuzzle, inv, inv.SanityCheckDataTotalViolationCount() ); | 
|      | 
|     this.NumberOfViolation( nrofviolation ); | 
|   *] | 
| } |