Subversion Repositories SmartDukaan

Rev

Rev 5185 | Rev 7410 | 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;
5185 mandeep.dh 11
import in.shop2020.warehouse.ScanType;
5110 mandeep.dh 12
import in.shop2020.warehouse.WarehouseServiceException;
4500 mandeep.dh 13
 
4555 mandeep.dh 14
import org.apache.commons.logging.Log;
15
import org.apache.commons.logging.LogFactory;
16
 
17
 
4500 mandeep.dh 18
/**
19
 * @author mandeep
20
 *
21
 */
22
public class InventoryItem {
4555 mandeep.dh 23
    private static Log logger = LogFactory.getLog(InventoryItem.class);
24
 
4500 mandeep.dh 25
    private long id;
26
    private long itemId;
27
    private String itemNumber;
28
    private String serialNumber;
29
    private long initialQuantity;
30
    private long currentQuantity;
31
    private long purchaseId;
6467 amar.kumar 32
    private long purchaseReturnId;
5185 mandeep.dh 33
    private long currentWarehouseId;
34
    private ScanType lastScanType;
35
 
4500 mandeep.dh 36
    public static InventoryItem create(in.shop2020.warehouse.InventoryItem thriftInventoryItem) {
37
        InventoryItem inventoryItem = new InventoryItem();
38
        inventoryItem.id = thriftInventoryItem.getId();
39
        inventoryItem.itemId = thriftInventoryItem.getItemId();
40
        inventoryItem.itemNumber = thriftInventoryItem.getItemNumber();
41
        inventoryItem.serialNumber = thriftInventoryItem.getSerialNumber();
42
        inventoryItem.initialQuantity = thriftInventoryItem.getInitialQuantity();
43
        inventoryItem.currentQuantity = thriftInventoryItem.getCurrentQuantity();
44
        inventoryItem.purchaseId = thriftInventoryItem.getPurchaseId();
6467 amar.kumar 45
        inventoryItem.purchaseReturnId = thriftInventoryItem.getPurchaseReturnId();
5185 mandeep.dh 46
        inventoryItem.currentWarehouseId = thriftInventoryItem.getCurrentWarehouseId();
47
        inventoryItem.lastScanType = thriftInventoryItem.getLastScanType();
4500 mandeep.dh 48
 
49
        return inventoryItem;
50
    }
51
 
5110 mandeep.dh 52
    public in.shop2020.warehouse.InventoryItem convert() throws WarehouseServiceException {
4500 mandeep.dh 53
        in.shop2020.warehouse.InventoryItem inventoryItem = new in.shop2020.warehouse.InventoryItem();
54
        inventoryItem.setId(id);
55
        inventoryItem.setItemId(itemId);
56
        inventoryItem.setCurrentQuantity(currentQuantity);
57
        inventoryItem.setInitialQuantity(initialQuantity);
58
        inventoryItem.setItemNumber(itemNumber);
59
        inventoryItem.setPurchaseId(purchaseId);
6467 amar.kumar 60
        inventoryItem.setPurchaseReturnId(purchaseReturnId);
4500 mandeep.dh 61
        inventoryItem.setSerialNumber(serialNumber);
5185 mandeep.dh 62
        inventoryItem.setCurrentWarehouseId(currentWarehouseId);
63
        inventoryItem.setLastScanType(lastScanType);        
4555 mandeep.dh 64
 
65
        // Setting derived fields
66
        try {
67
            Client client = new PurchaseClient().getClient();
68
            PurchaseOrder purchaseOrder = client.getPurchaseOrderForPurchase(purchaseId);
69
            inventoryItem.setSupplierId(purchaseOrder.getSupplierId());
70
            for (LineItem lineItem : purchaseOrder.getLineitems()) {
71
                if (lineItem.getItemId() == itemId) {
72
                    inventoryItem.setUnitPrice(lineItem.getUnitPrice());
73
                    break;
74
                }
75
            }
5110 mandeep.dh 76
        } catch (Exception e) {
4555 mandeep.dh 77
            logger.error("Could not fetch purchase order for purchase id: " + purchaseId, e);
5110 mandeep.dh 78
            throw new WarehouseServiceException(ExceptionType.DATABASE_ERROR, "Could not find item in PO.");
4555 mandeep.dh 79
        }
80
 
4500 mandeep.dh 81
        return inventoryItem;
4555 mandeep.dh 82
    }
4500 mandeep.dh 83
 
84
    public long getId() {
85
        return id;
86
    }
87
    public void setId(long id) {
88
        this.id = id;
89
    }
90
    public long getItemId() {
91
        return itemId;
92
    }
93
    public void setItemId(long itemId) {
94
        this.itemId = itemId;
95
    }
96
    public String getItemNumber() {
97
        return itemNumber;
98
    }
99
    public void setItemNumber(String itemNumber) {
100
        this.itemNumber = itemNumber;
101
    }
102
    public String getSerialNumber() {
103
        return serialNumber;
104
    }
105
    public void setSerialNumber(String serialNumber) {
106
        this.serialNumber = serialNumber;
107
    }
108
    public long getInitialQuantity() {
109
        return initialQuantity;
110
    }
111
    public void setInitialQuantity(long initialQuantity) {
112
        this.initialQuantity = initialQuantity;
113
    }
114
    public long getCurrentQuantity() {
115
        return currentQuantity;
116
    }
117
    public void setCurrentQuantity(long currentQuantity) {
118
        this.currentQuantity = currentQuantity;
119
    }
120
    public long getPurchaseId() {
121
        return purchaseId;
122
    }
123
    public void setPurchaseId(long purchaseId) {
124
        this.purchaseId = purchaseId;
125
    }
5185 mandeep.dh 126
 
6467 amar.kumar 127
    public long getPurchaseReturnId() {
128
		return purchaseReturnId;
129
	}
130
 
131
	public void setPurchaseReturnId(long purchaseReturnId) {
132
		this.purchaseReturnId = purchaseReturnId;
133
	}
134
 
135
	public long getCurrentWarehouseId() {
5185 mandeep.dh 136
        return currentWarehouseId;
137
    }
138
 
139
    public void setCurrentWarehouseId(long currentWarehouseId) {
140
        this.currentWarehouseId = currentWarehouseId;
141
    }
142
 
143
    public ScanType getLastScanType() {
144
        return lastScanType;
145
    }
146
 
147
    public void setLastScanType(ScanType lastScanType) {
148
        this.lastScanType = lastScanType;
149
    }
4500 mandeep.dh 150
}