/* * Jika input adalah reception, maka data reception dihari yang sama tidak dihitung * namun deletion dan consumption akan dihitung. Tidak berlaku untuk kombinasi lainnya. * * Sementara, untuk konsumsi, jika time stampnya menunjukan waktu input paling baru, maka bisa di edit * * Mengembalikan nilai true jika ada entry baru setelah entry yang di input * * jika true: tidak bisa diedit jumlahnya dan tidak bisa dihapus */ public boolean isAnyNewestItem(GoodsConsumption consumption) { return isAnyNewestItem( consumption.getConsumptionDate(), consumption.getGoods().getIdGoods(), StockType.CONSUMPTION, consumption.getTimestamp()); }
// Untuk menentukan suatu konsumsi merupakan yang terakhir di input private boolean isConsumptionNotLastOfTheDay(DateTime day, Goods goods, Date timestamp) { Date startDate = day.withMillisOfDay(0).toDate(); Date endDate = day.withMillisOfDay(day.millisOfDay().getMaximumValue()).toDate(); List<GoodsConsumption> goodList = server .find(GoodsConsumption.class) .where() .between("consumptionDate", startDate, endDate) .eq("goods", goods) .findList(); for (GoodsConsumption consumption : goodList) { DateTime consumptionTimeStamp = new DateTime(consumption.getTimestamp()); DateTime currentTimeStamp = new DateTime(timestamp); if (consumptionTimeStamp.isAfter(currentTimeStamp)) { return true; } } return false; }