STORAGE_RULE

Description: Limited to code invoked for custom storage rules.

Abstract Base Class: AbstractStorageRule

Interface: EStorageRule

Module: Inventory

Version Added: 2.2

Requires Code Extension Name or Name Pattern: No

Code Extension Name or Name Pattern: N/A

Where to specify code extensions of this type: In the Storage Rule Type form

 

Code examples

The following code implements a custom storage rule.

/*

* Copyright (c) 2011 Navis LLC, Part of Cargotec Corporation, All Rights Reserved.

* $Id: $

*/

 

import com.navis.inventory.external.inventory.AbstractStorageRule

import com.navis.external.framework.util.EFieldChanges

import com.navis.framework.portal.FieldChanges

import com.navis.inventory.InventoryField

import com.navis.inventory.business.units.Unit

 

/**

* 2010-11-24 psethuraman ARGO-27225: custom storage days calculation

**/

public class CustomCalculateStorageDays extends AbstractStorageRule {

 

  public Date calculateStorageStartDate(EFieldChanges inChanges) {

    Unit unit = (Unit)((FieldChanges) inChanges).getFieldChange(InventoryField.UFV_UNIT).getNewValue();

    String flexString = unit.getUnitFlexString01();

    log("executing groovy to set custom start day with unit flex string as " + flexString);

    return new Date();

  }

 

  public Date calculateStorageEndDate(EFieldChanges inChanges) {

    Unit unit = (Unit)((FieldChanges) inChanges).getFieldChange(InventoryField.UFV_UNIT).getNewValue();

    String flexString = unit.getUnitFlexString05();

    log("executing groovy to set custom end day with unit Flex string as " + flexString);

    return new Date()+1;

  }

}

The following code implements a custom calculation rule to override free days defined for a line operator.

import com.navis.inventory.business.units.UnitStorageCalculation

import com.navis.inventory.external.inventory.AbstractStorageCalculation

import org.apache.log4j.Logger

 

/*

* Copyright (c) 2014 Navis LLC. All Rights Reserved.

*

*/

 

/**

* Created by sundaga on 31/12/14.

*/

class TestStorageCalculation extends AbstractStorageCalculation {

 

  @Override

  public void unitStorageCalculationExtension(Map inMap) {

    //Do Nothing

  }

  @Override

  public void beforeUnitStorageCalculationExtension(Map inMap){

    UnitStorageCalculation unitStorageCalculation = inMap.get("UnitStorageCalculation");

    unitStorageCalculation._freeDaysAllowed = 3;

  }

private final Logger LOGGER = Logger.getLogger(TestStorageCalculation.class);

}