package org.kuali.ole.deliver.checkout import org.kuali.ole.OLEConstants import org.kuali.ole.deliver.bo.OleLoanDocument import org.kuali.ole.deliver.bo.OlePatronDocument import org.kuali.ole.deliver.util.OleItemRecordForCirc import org.kuali.ole.deliver.util.DroolsResponse import org.kuali.ole.deliver.drools.DroolsConstants rule "Check out Circ Policy Set Games-M" agenda-group "checkout validation" activation-group "checkout validation" when $l: OleLoanDocument() $i: OleItemRecordForCirc(getItemType() in ("games"), getItemLibraryLocation() in ("JCL"), getItemLocation() not in ("Resup", "ResupC","ResupD","ResupE","ResupS")) $p: OlePatronDocument(getBorrowerTypeCode() in ("QALUM25","QNONUC25"), getLoanedItemsCountByItemType($i.getItemType()) < 3,getTotalLoanedItemsCount() < 25) then $l.setCirculationPolicyId("Check out Circ Policy Set Games-M"); $l.loanPeriod(OLEConstants.FIXED_DUE_DATE, "7-D"); // This method takes due date and recall period as arguments. end rule "Check out Circ Policy Set Games-M for Games EG 3 All LT 25" agenda-group "checkout validation" activation-group "checkout validation" when $l: OleLoanDocument() $i: OleItemRecordForCirc(getItemType() in ("games"), getItemLibraryLocation() in ("JCL"), getItemLocation() not in ("Resup", "ResupC","ResupD","ResupE","ResupS")) $p: OlePatronDocument(getBorrowerTypeCode() in ("QALUM25","QNONUC25"), getLoanedItemsCountByItemType($i.getItemType()) >= 3,getTotalLoanedItemsCount() < 25) $d: DroolsResponse() then $l.setCirculationPolicyId("Check out Circ Policy Set Games-M"); $l.loanPeriod(OLEConstants.FIXED_DUE_DATE, "7-D"); $d.addErrorMessage("Patron has 3 or more games checked out;total loans less than 25"); $d.addErrorMessageCode("ErrorMessageFromRule"); $d.addOverridePermissions(DroolsConstants.GENERAL_BLOCK_PERMISSION); end rule "Check out Circ Policy Set Games-M for Games LT 3 All EG 25" agenda-group "checkout validation" activation-group "checkout validation" when $l: OleLoanDocument() $i: OleItemRecordForCirc(getItemType() in ("games"), getItemLibraryLocation() in ("JCL"), getItemLocation() not in ("Resup", "ResupC","ResupD","ResupE","ResupS")) $p: OlePatronDocument(getBorrowerTypeCode() in ("QALUM25","QNONUC25"), getLoanedItemsCountByItemType($i.getItemType()) < 3,getTotalLoanedItemsCount() >= 25) $d: DroolsResponse() then $l.setCirculationPolicyId("Check out Circ Policy Set Games-M"); $l.loanPeriod(OLEConstants.FIXED_DUE_DATE, "7-D"); $d.addErrorMessage("Patron has 25 total items checked out;fewer than 3 games"); $d.addErrorMessageCode("ErrorMessageFromRule"); $d.addOverridePermissions(DroolsConstants.GENERAL_BLOCK_PERMISSION); end rule "Check out Circ Policy Set Games-M for Games EG 3 All EG 25" agenda-group "checkout validation" activation-group "checkout validation" when $l: OleLoanDocument() $i: OleItemRecordForCirc(getItemType() in ("games"), getItemLibraryLocation() in ("JCL"), getItemLocation() not in ("Resup", "ResupC","ResupD","ResupE","ResupS")) $p: OlePatronDocument(getBorrowerTypeCode() in ("QALUM25","QNONUC25"), getLoanedItemsCountByItemType($i.getItemType()) >= 3,getTotalLoanedItemsCount() >= 25) $d: DroolsResponse() then $l.setCirculationPolicyId("Check out Circ Policy Set Games-M"); $l.loanPeriod(OLEConstants.FIXED_DUE_DATE, "7-D"); $d.addErrorMessage("Patron has 25 total items checked out including 3 games"); $d.addErrorMessageCode("ErrorMessageFromRule"); $d.addOverridePermissions(DroolsConstants.GENERAL_BLOCK_PERMISSION); end