Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
21561 ashik.ali 1
package com.spice.profitmandi.web.controller;
21555 kshitij.so 2
 
21583 ashik.ali 3
import java.util.ArrayList;
4
import java.util.HashSet;
5
import java.util.List;
6
import java.util.Set;
7
 
21574 ashik.ali 8
import javax.servlet.http.HttpServletRequest;
9
 
10
import org.slf4j.Logger;
11
import org.slf4j.LoggerFactory;
12
import org.springframework.beans.factory.annotation.Autowired;
21555 kshitij.so 13
import org.springframework.stereotype.Controller;
21574 ashik.ali 14
import org.springframework.ui.Model;
21555 kshitij.so 15
import org.springframework.web.bind.annotation.RequestMapping;
16
import org.springframework.web.bind.annotation.RequestMethod;
21583 ashik.ali 17
import org.springframework.web.bind.annotation.RequestParam;
21555 kshitij.so 18
 
21583 ashik.ali 19
import com.spice.profitmandi.common.model.CustomItem;
20
import com.spice.profitmandi.common.model.CustomLineItem;
21
import com.spice.profitmandi.common.model.ProfitMandiConstants;
22
import com.spice.profitmandi.dao.repository.InventoryItemRepository;
21574 ashik.ali 23
import com.spice.profitmandi.dao.repository.OrderRepository;
24
import com.spice.profitmandi.web.model.FofoDetails;
21582 kshitij.so 25
import com.spice.profitmandi.web.util.CookiesFetcher;
21574 ashik.ali 26
import com.spice.profitmandi.web.util.MVCResponseSender;
21555 kshitij.so 27
 
21583 ashik.ali 28
import in.shop2020.model.v1.catalog.ItemType;
29
 
21555 kshitij.so 30
@Controller
21582 kshitij.so 31
public class PurchaseController {
21555 kshitij.so 32
 
21582 kshitij.so 33
	private static final Logger LOGGER = LoggerFactory.getLogger(PurchaseController.class);
21574 ashik.ali 34
 
35
	@Autowired
36
	OrderRepository orderRepository;
37
 
38
	@Autowired
21583 ashik.ali 39
	InventoryItemRepository inventoryItemRepository;
21582 kshitij.so 40
 
41
	@Autowired
21574 ashik.ali 42
	MVCResponseSender mvcResponseSender;
43
 
21583 ashik.ali 44
	@Autowired
45
	CookiesFetcher cookiesFetcher;
46
 
21591 kshitij.so 47
	@RequestMapping(value = "/purchase", method = RequestMethod.POST)
21587 kshitij.so 48
	public String orderByAirwayBillOrInvoiceNumber(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.AIRWAY_BILL_OR_INVOICE_NUMBER) String airwayBillOrInvoiceNumber, Model model)  throws Throwable{
21582 kshitij.so 49
		FofoDetails fofoDetails = cookiesFetcher.getCookiesObject(request);
21583 ashik.ali 50
		List<Object[]> rows = orderRepository.selectByAirwayBillOrInvoiceNumber(airwayBillOrInvoiceNumber, fofoDetails.getFofoId());
51
		Set<Integer> itemIds = new HashSet<>();
52
		String invoiceNumber = null;
53
		for(Object[] row : rows){
54
			itemIds.add((int)row[0]);
55
			invoiceNumber = (String)row[9];
56
		}
57
		List<Object[]> itemIdCounts = inventoryItemRepository.selectScannedCount(itemIds, fofoDetails.getFofoId(), invoiceNumber);
58
		List<CustomItem> customItems = new ArrayList<>();
59
		for(Object[] itemIdCount : itemIdCounts){
60
			for(Object[] row : rows){
61
				if((int)itemIdCount[0] == (int)row[0]){
62
					customItems.add(this.createCustomLineItem(row, (int)row[1] == (int)itemIdCount[1] ? true : false));
63
				}
64
			}
65
		}
66
		model.addAttribute("customItems", customItems);
21587 kshitij.so 67
		return "purchase";
21555 kshitij.so 68
	}
69
 
21587 kshitij.so 70
	@RequestMapping(value = "/purchase", method = RequestMethod.GET)
71
	public String orderByAirwayBillOrInvoiceNumber(HttpServletRequest request)  throws Exception{
72
		return "purchase";
73
	}
21583 ashik.ali 74
 
21587 kshitij.so 75
 
21583 ashik.ali 76
	private CustomItem createCustomLineItem(Object[] row, boolean scanned){
77
		CustomItem customItem = new CustomItem();
78
		customItem.setItemId((int)row[0]);
79
		CustomLineItem customLineItem = new CustomLineItem();
80
		customLineItem.setBrand((String)row[1]);
81
		customLineItem.setModelName((String)row[2]);
82
		customLineItem.setModelNumber((String)row[3]);
83
		customLineItem.setColor((String)row[4]);
84
		customLineItem.setQuantity((float)row[5]);
85
		customLineItem.setUnitPrice((float)row[6]);
86
		customItem.setItemDetail(customLineItem);
21592 ashik.ali 87
		customItem.setType(ItemType.valueOf((String)row[7]));
21583 ashik.ali 88
		customItem.setScanned(scanned);
89
		return customItem;
21582 kshitij.so 90
	}
91
 
21555 kshitij.so 92
}