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);
}