Subversion Repositories SmartDukaan

Rev

Rev 21582 | Rev 21587 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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