001 package market.swing;
002
003 import sale.SaleProcess;
004 import sale.SalesPoint;
005 import data.Catalog;
006 import data.CatalogItem;
007 import data.CountingStock;
008 import data.DataBasket;
009 import data.NotEnoughElementsException;
010 import data.stdforms.twotableformsheet.CCSStrategy;
011
012 /**
013 * Defines the behaviour of the shifting buttons in the manager's Purchase-TwoTableFormSheet
014 */
015 public class CCSStrategyMarket extends CCSStrategy {
016
017 /**
018 * ID for serialization.
019 */
020 private static final long serialVersionUID = 3612670945973595950L;
021
022 public CCSStrategyMarket() {
023 super();
024 }
025
026 /**
027 * Removes at most as much items as are left in the stock.
028 * @param p the current SaleProcess.
029 * @param sp the SalesPoint on which the TTFS is displayed.
030 * @param cSource the source Catalog.
031 * @param csDest the destination CountingStock.
032 * @param db the transaction's DataBasket.
033 * @param ci the affected CatalogItem
034 * @param nCount the amount of Items to be shifted.
035 */
036 protected void moveToSource (SaleProcess p, SalesPoint sp, Catalog cSource,
037 CountingStock csDest, DataBasket db, CatalogItem ci, int nCount) {
038 int count = csDest.countItems(ci.getName(),db);
039 count = Math.min(count, nCount);
040 try {
041 csDest.remove (ci.getName(), count, db);
042 }
043 catch (NotEnoughElementsException nee) {
044 error (p, NOT_ENOUGH_ELEMENTS_ERROR);
045 }
046 catch (data.events.VetoException ve) {
047 error (p, REMOVE_VETO_EXCEPTION);
048 }
049 catch (Exception e) {
050 System.out.println(e);
051 }
052 }
053 }