| Line 6... |
Line 6... |
| 6 |
import com.spice.profitmandi.common.util.Utils;
|
6 |
import com.spice.profitmandi.common.util.Utils;
|
| 7 |
import com.spice.profitmandi.common.web.client.RestClient;
|
7 |
import com.spice.profitmandi.common.web.client.RestClient;
|
| 8 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
8 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
| 9 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
9 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
| 10 |
import com.spice.profitmandi.dao.entity.transaction.Order;
|
10 |
import com.spice.profitmandi.dao.entity.transaction.Order;
|
| - |
|
11 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
| 11 |
import com.spice.profitmandi.dao.model.ImeiInoviceModel;
|
12 |
import com.spice.profitmandi.dao.model.ImeiInoviceModel;
|
| 12 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
13 |
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
|
| 13 |
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
|
14 |
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
|
| 14 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
15 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 15 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
16 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| Line 96... |
Line 97... |
| 96 |
imeiInoviceModel.getSerialNumbers().stream().forEach(x -> {
|
97 |
imeiInoviceModel.getSerialNumbers().stream().forEach(x -> {
|
| 97 |
imeiValidationMap.put(x, true);
|
98 |
imeiValidationMap.put(x, true);
|
| 98 |
});
|
99 |
});
|
| 99 |
if (serialNumbers.size() > 0) {
|
100 |
if (serialNumbers.size() > 0) {
|
| 100 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByFofoIdSerialNumbers(fofoId, new HashSet<>(serialNumbers), false);
|
101 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByFofoIdSerialNumbers(fofoId, new HashSet<>(serialNumbers), false);
|
| 101 |
Set<String> grnedSerialNumberSet = inventoryItems.stream().filter(x -> x.getPurchase().getPurchaseReference().equals(imeiInoviceModel.getInvoiceNumber()))
|
102 |
//Should consider sold out imeis from previous purchases as grned as well and considered invalidated.
|
| 102 |
.map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
103 |
Set<String> grnedSerialNumberSet = inventoryItems.stream().filter(x->(x.getGoodQuantity() + x.getBadQuantity())==1 || x.getLastScanType().equals(ScanType.SALE)).map(x->x.getSerialNumber()).collect(Collectors.toSet());
|
| 103 |
imeiInoviceModel.getSerialNumbers().stream().forEach(imei -> {
|
104 |
imeiInoviceModel.getSerialNumbers().stream().forEach(imei -> {
|
| 104 |
if (grnedSerialNumberSet.contains(imei)) {
|
105 |
if (grnedSerialNumberSet.contains(imei)) {
|
| 105 |
imeiValidationMap.put(imei, false);
|
106 |
imeiValidationMap.put(imei, false);
|
| 106 |
}
|
107 |
}
|
| 107 |
});
|
108 |
});
|
| 108 |
|
- |
|
| 109 |
}
|
109 |
}
|
| 110 |
return imeiValidationMap;
|
110 |
return imeiValidationMap;
|
| 111 |
}
|
111 |
}
|
| 112 |
|
112 |
|
| 113 |
@RequestMapping(value = "/purchase/grn-imeis", method = RequestMethod.POST)
|
113 |
@RequestMapping(value = "/purchase/grn-imeis", method = RequestMethod.POST)
|
| Line 199... |
Line 199... |
| 199 |
|
199 |
|
| 200 |
ByteArrayOutputStream fos = new ByteArrayOutputStream();
|
200 |
ByteArrayOutputStream fos = new ByteArrayOutputStream();
|
| 201 |
ZipOutputStream zipOut = new ZipOutputStream(fos);
|
201 |
ZipOutputStream zipOut = new ZipOutputStream(fos);
|
| 202 |
|
202 |
|
| 203 |
for (String singleInvoiceNumber : invoiceNumbers) {
|
203 |
for (String singleInvoiceNumber : invoiceNumbers) {
|
| - |
|
204 |
LOGGER.info("Single Invoice Number - {}", singleInvoiceNumber);
|
| 204 |
Order order = invoiceOrdersMap.get(invoiceNumber).get(0);
|
205 |
Order order = invoiceOrdersMap.get(singleInvoiceNumber).get(0);
|
| 205 |
File invoiceFile = invoiceService.getInvoiceFile(order);
|
206 |
File invoiceFile = invoiceService.getInvoiceFile(order);
|
| 206 |
this.addFileToZip(zipOut, new FileInputStream(invoiceFile), singleInvoiceNumber + ".pdf");
|
207 |
this.addFileToZip(zipOut, new FileInputStream(invoiceFile), singleInvoiceNumber + ".pdf");
|
| 207 |
}
|
208 |
}
|
| 208 |
zipOut.close();
|
209 |
zipOut.close();
|
| 209 |
byte[] byteArray = fos.toByteArray();
|
210 |
byte[] byteArray = fos.toByteArray();
|