/* * This program is part of the OpenLMIS logistics management information * system platform software. * * Copyright © 2015 ThoughtWorks, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. This program is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Affero General Public License for more details. You should * have received a copy of the GNU Affero General Public License along with * this program. If not, see http://www.gnu.org/licenses. For additional * information contact info@OpenLMIS.org */ package org.openlmis.core.network.model; import org.joda.time.DateTime; import org.joda.time.format.ISODateTimeFormat; import org.openlmis.core.model.LotMovementItem; import org.openlmis.core.model.StockMovementItem; import org.openlmis.core.utils.DateUtil; import org.roboguice.shaded.goole.common.base.Function; import org.roboguice.shaded.goole.common.collect.FluentIterable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor public class StockMovementEntry { String facilityId; String productCode; long quantity; String reasonName; String occurred; String referenceNumber; String type; String createdTime; Long requestedQuantity; HashMap<String, String> customProps = new HashMap<>(); List<LotMovementEntry> lotEventList = new ArrayList<>(); public StockMovementEntry(StockMovementItem stockMovementItem, String facilityId) { this.setProductCode(stockMovementItem.getStockCard().getProduct().getCode()); this.setQuantity(stockMovementItem.getMovementQuantity()); this.setReasonName(stockMovementItem.getReason()); this.setFacilityId(facilityId); this.setType("ADJUSTMENT"); this.setOccurred(DateUtil.formatDate(stockMovementItem.getMovementDate(), DateUtil.DB_DATE_FORMAT)); this.setCreatedTime(new DateTime(stockMovementItem.getCreatedTime()).toString(ISODateTimeFormat.basicDateTime())); this.setReferenceNumber(stockMovementItem.getDocumentNumber()); this.setRequestedQuantity(stockMovementItem.getRequested()); this.getCustomProps().put("signature", stockMovementItem.getSignature()); this.getCustomProps().put("SOH", String.valueOf(stockMovementItem.getStockOnHand())); if (stockMovementItem.getLotMovementItemListWrapper() != null) { lotEventList.addAll(FluentIterable.from(stockMovementItem.getLotMovementItemListWrapper()).transform(new Function<LotMovementItem, LotMovementEntry>() { @Override public LotMovementEntry apply(LotMovementItem lotMovementItem) { return new LotMovementEntry(lotMovementItem); } }).toList()); } } }