Subversion Repositories SmartDukaan

Rev

Rev 4555 | Rev 5185 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4500 mandeep.dh 1
/**
2
 * 
3
 */
4
package in.shop2020.warehouse.domain;
5
 
5110 mandeep.dh 6
import in.shop2020.generic.ExceptionType;
4555 mandeep.dh 7
import in.shop2020.purchase.LineItem;
8
import in.shop2020.purchase.PurchaseOrder;
9
import in.shop2020.purchase.PurchaseService.Client;
10
import in.shop2020.thrift.clients.PurchaseClient;
5110 mandeep.dh 11
import in.shop2020.warehouse.WarehouseServiceException;
4500 mandeep.dh 12
 
4555 mandeep.dh 13
import org.apache.commons.logging.Log;
14
import org.apache.commons.logging.LogFactory;
15
 
16
 
4500 mandeep.dh 17
/**
18
 * @author mandeep
19
 *
20
 */
21
public class InventoryItem {
4555 mandeep.dh 22
    private static Log logger = LogFactory.getLog(InventoryItem.class);
23
 
4500 mandeep.dh 24
    private long id;
25
    private long itemId;
26
    private String itemNumber;
27
    private String serialNumber;
28
    private long initialQuantity;
29
    private long currentQuantity;
30
    private long purchaseId;
31
 
32
    public static InventoryItem create(in.shop2020.warehouse.InventoryItem thriftInventoryItem) {
33
        InventoryItem inventoryItem = new InventoryItem();
34
        inventoryItem.id = thriftInventoryItem.getId();
35
        inventoryItem.itemId = thriftInventoryItem.getItemId();
36
        inventoryItem.itemNumber = thriftInventoryItem.getItemNumber();
37
        inventoryItem.serialNumber = thriftInventoryItem.getSerialNumber();
38
        inventoryItem.initialQuantity = thriftInventoryItem.getInitialQuantity();
39
        inventoryItem.currentQuantity = thriftInventoryItem.getCurrentQuantity();
40
        inventoryItem.purchaseId = thriftInventoryItem.getPurchaseId();
41
 
42
        return inventoryItem;
43
    }
44
 
5110 mandeep.dh 45
    public in.shop2020.warehouse.InventoryItem convert() throws WarehouseServiceException {
4500 mandeep.dh 46
        in.shop2020.warehouse.InventoryItem inventoryItem = new in.shop2020.warehouse.InventoryItem();
47
        inventoryItem.setId(id);
48
        inventoryItem.setItemId(itemId);
49
        inventoryItem.setCurrentQuantity(currentQuantity);
50
        inventoryItem.setInitialQuantity(initialQuantity);
51
        inventoryItem.setItemNumber(itemNumber);
52
        inventoryItem.setPurchaseId(purchaseId);
53
        inventoryItem.setSerialNumber(serialNumber);
4555 mandeep.dh 54
 
55
        // Setting derived fields
56
        try {
57
            Client client = new PurchaseClient().getClient();
58
            PurchaseOrder purchaseOrder = client.getPurchaseOrderForPurchase(purchaseId);
59
            inventoryItem.setSupplierId(purchaseOrder.getSupplierId());
60
            for (LineItem lineItem : purchaseOrder.getLineitems()) {
61
                if (lineItem.getItemId() == itemId) {
62
                    inventoryItem.setUnitPrice(lineItem.getUnitPrice());
63
                    break;
64
                }
65
            }
5110 mandeep.dh 66
        } catch (Exception e) {
4555 mandeep.dh 67
            logger.error("Could not fetch purchase order for purchase id: " + purchaseId, e);
5110 mandeep.dh 68
            throw new WarehouseServiceException(ExceptionType.DATABASE_ERROR, "Could not find item in PO.");
4555 mandeep.dh 69
        }
70
 
4500 mandeep.dh 71
        return inventoryItem;
4555 mandeep.dh 72
    }
4500 mandeep.dh 73
 
74
    public long getId() {
75
        return id;
76
    }
77
    public void setId(long id) {
78
        this.id = id;
79
    }
80
    public long getItemId() {
81
        return itemId;
82
    }
83
    public void setItemId(long itemId) {
84
        this.itemId = itemId;
85
    }
86
    public String getItemNumber() {
87
        return itemNumber;
88
    }
89
    public void setItemNumber(String itemNumber) {
90
        this.itemNumber = itemNumber;
91
    }
92
    public String getSerialNumber() {
93
        return serialNumber;
94
    }
95
    public void setSerialNumber(String serialNumber) {
96
        this.serialNumber = serialNumber;
97
    }
98
    public long getInitialQuantity() {
99
        return initialQuantity;
100
    }
101
    public void setInitialQuantity(long initialQuantity) {
102
        this.initialQuantity = initialQuantity;
103
    }
104
    public long getCurrentQuantity() {
105
        return currentQuantity;
106
    }
107
    public void setCurrentQuantity(long currentQuantity) {
108
        this.currentQuantity = currentQuantity;
109
    }
110
    public long getPurchaseId() {
111
        return purchaseId;
112
    }
113
    public void setPurchaseId(long purchaseId) {
114
        this.purchaseId = purchaseId;
115
    }
116
}