Subversion Repositories SmartDukaan

Rev

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

Rev 22860 Rev 22927
Line 39... Line 39...
39
import com.spice.profitmandi.common.util.StringUtils;
39
import com.spice.profitmandi.common.util.StringUtils;
40
import com.spice.profitmandi.common.web.util.ResponseSender;
40
import com.spice.profitmandi.common.web.util.ResponseSender;
41
import com.spice.profitmandi.dao.entity.dtr.InsurancePolicy;
41
import com.spice.profitmandi.dao.entity.dtr.InsurancePolicy;
42
import com.spice.profitmandi.dao.entity.fofo.Customer;
42
import com.spice.profitmandi.dao.entity.fofo.Customer;
43
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
43
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
44
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
-
 
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
44
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
-
 
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
46
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
46
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
47
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
47
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
48
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
48
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
49
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
49
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
50
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
50
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
51
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
51
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
52
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
52
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
-
 
53
import com.spice.profitmandi.service.inventory.OrderService;
53
import com.spice.profitmandi.service.pricing.PricingService;
54
import com.spice.profitmandi.service.pricing.PricingService;
54
import com.spice.profitmandi.service.sale.OrderService;
-
 
55
import com.spice.profitmandi.web.model.LoginDetails;
55
import com.spice.profitmandi.web.model.LoginDetails;
56
import com.spice.profitmandi.web.util.CookiesProcessor;
56
import com.spice.profitmandi.web.util.CookiesProcessor;
57
import com.spice.profitmandi.web.util.MVCResponseSender;
-
 
58
 
57
 
59
@Controller
58
@Controller
60
@Transactional(rollbackFor=Throwable.class)
59
@Transactional(rollbackFor=Throwable.class)
61
public class OrderController {
60
public class OrderController {
62
 
61
 
Line 79... Line 78...
79
	
78
	
80
	@Autowired
79
	@Autowired
81
	private InsurancePolicyRepository insurancePolicyRepository;
80
	private InsurancePolicyRepository insurancePolicyRepository;
82
 
81
 
83
	@Autowired
82
	@Autowired
84
	private MVCResponseSender mvcResponseSender;
-
 
85
 
-
 
86
	@Autowired
-
 
87
	private CookiesProcessor cookiesProcessor;
83
	private CookiesProcessor cookiesProcessor;
88
	
84
	
89
	@Autowired
85
	@Autowired
90
	private PricingService pricingService;
86
	private PricingService pricingService;
91
	
87
	
Line 95... Line 91...
95
	
91
	
96
	@Autowired
92
	@Autowired
97
	private ResponseSender<?> responseSender;
93
	private ResponseSender<?> responseSender;
98
	
94
	
99
	@RequestMapping(value = "/order")
95
	@RequestMapping(value = "/order")
100
	public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model) throws Throwable{
96
	public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model) throws ProfitMandiBusinessException{
101
		LoginDetails loginDetails = null;
-
 
102
		try {
-
 
103
			loginDetails = cookiesProcessor.getCookiesObject(request);
97
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);;
104
		} catch (ProfitMandiBusinessException e) {
-
 
105
			model.addAttribute("loginResponse", mvcResponseSender.createResponseString("RTLR_1009", false, "/login"));
-
 
106
			return "response";
-
 
107
		}
98
		
108
		List<CartFofo> cartItems = orderService.cartCheckout(cartData);
99
		List<CartFofo> cartItems = orderService.cartCheckout(cartData);
109
		Set<Integer> itemIds = new HashSet<>();
100
		Set<Integer> itemIds = new HashSet<>();
110
		for(CartFofo cartFofo : cartItems){
101
		for(CartFofo cartFofo : cartItems){
111
			itemIds.add(cartFofo.getItemId());
102
			itemIds.add(cartFofo.getItemId());
112
		}
103
		}
Line 117... Line 108...
117
		return "order-index";
108
		return "order-index";
118
	}
109
	}
119
	
110
	
120
	
111
	
121
	@RequestMapping(value = "/insurancePrices", method = RequestMethod.GET)
112
	@RequestMapping(value = "/insurancePrices", method = RequestMethod.GET)
122
	public ResponseEntity<?> getInsurancePrices(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.PRICE) float price){
113
	public ResponseEntity<?> getInsurancePrices(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.PRICE) float price) throws ProfitMandiBusinessException{
123
		LOGGER.info("Request received at url : {}", request.getRequestURI());
114
		LOGGER.info("Request received at url : {}", request.getRequestURI());
124
		try{
-
 
125
			Set<Float> prices = new HashSet<>();
115
		Set<Float> prices = new HashSet<>();
126
			prices.add(price);
116
		prices.add(price);
127
			return responseSender.ok(pricingService.getInsurancePrices(prices, ProfitMandiConstants.GADGET_COPS));
117
		return responseSender.ok(pricingService.getInsurancePrices(prices, ProfitMandiConstants.GADGET_COPS));
128
		}catch(ProfitMandiBusinessException profitMandiBusinessException){
-
 
129
			return responseSender.notFound(profitMandiBusinessException);
-
 
130
		}
-
 
131
	}
118
	}
132
	
119
	
133
	
120
	
134
	@RequestMapping(value = "/get-order", method = RequestMethod.GET)
121
	@RequestMapping(value = "/get-order", method = RequestMethod.GET)
135
	public String getOrder(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId, Model model) throws ProfitMandiBusinessException, Exception{
122
	public String getOrder(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId, Model model) throws ProfitMandiBusinessException{
136
		LoginDetails fofoDetails;
-
 
137
		try {
-
 
138
			fofoDetails = cookiesProcessor.getCookiesObject(request);
123
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
139
		} catch (ProfitMandiBusinessException e) {
-
 
140
			model.addAttribute("loginResponse", mvcResponseSender.createResponseString("RTLR_1009", false, "/login"));
-
 
141
			return "response";
-
 
142
		}
-
 
143
		try{
-
 
144
			FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
124
		FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
145
			List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
125
		List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
146
			CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
126
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
147
			Customer customer  = customerRepository.selectById(fofoOrder.getCustomerId());
127
		Customer customer  = customerRepository.selectById(fofoOrder.getCustomerId());
148
			customerAddress.setPhoneNumber(customer.getMobileNumber());
128
		customerAddress.setPhoneNumber(customer.getMobileNumber());
149
			List<PaymentOption> paymentOptions = paymentOptionRepository.selectByOrderId(fofoOrder.getId());
129
		List<PaymentOption> paymentOptions = paymentOptionRepository.selectByOrderId(fofoOrder.getId());
150
			List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
130
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
151
			model.addAttribute("fofoOrder", fofoOrder);
131
		model.addAttribute("fofoOrder", fofoOrder);
152
			model.addAttribute("fofoLineItems", fofoLineItems);
132
		model.addAttribute("fofoLineItems", fofoLineItems);
153
			model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
133
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
154
			model.addAttribute("customerBillingAddressObj", customerAddress);
134
		model.addAttribute("customerBillingAddressObj", customerAddress);
155
			model.addAttribute("paymentOptions", paymentOptions);
135
		model.addAttribute("paymentOptions", paymentOptions);
156
			model.addAttribute("insurancePolicies", insurancePolicies);
136
		model.addAttribute("insurancePolicies", insurancePolicies);
157
			return "order-details";
137
		return "order-details";
158
		}catch (Exception e) {
-
 
159
			LOGGER.error("Unable to get Order details...", e);
-
 
160
			return "error";
-
 
161
		}
-
 
162
	}
138
	}
163
	
139
	
164
	
140
	
165
	@RequestMapping(value = "/saleDetails", method = RequestMethod.GET)
141
	@RequestMapping(value = "/saleDetails", method = RequestMethod.GET)
166
	public String getSaleDetails(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId, Model model) throws ProfitMandiBusinessException, Exception{
142
	public String getSaleDetails(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId, Model model) throws ProfitMandiBusinessException{
167
		LoginDetails fofoDetails;
-
 
168
		try {
-
 
169
			fofoDetails = cookiesProcessor.getCookiesObject(request);
143
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
170
		} catch (ProfitMandiBusinessException e) {
-
 
171
			model.addAttribute("loginResponse", mvcResponseSender.createResponseString("RTLR_1009", false, "/login"));
-
 
172
			return "response";
-
 
173
		}
144
		
174
		try{
-
 
175
			FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
145
		FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
176
			List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
146
		List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
177
			CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
147
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
178
			List<PaymentOption> paymentOptions = paymentOptionRepository.selectByOrderId(fofoOrder.getId());
148
		List<PaymentOption> paymentOptions = paymentOptionRepository.selectByOrderId(fofoOrder.getId());
179
			List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
149
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
180
			model.addAttribute("fofoOrder", fofoOrder);
150
		model.addAttribute("fofoOrder", fofoOrder);
181
			model.addAttribute("fofoLineItems", fofoLineItems);
151
		model.addAttribute("fofoLineItems", fofoLineItems);
182
			model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
152
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
183
			model.addAttribute("customerBillingAddressObj", customerAddress);
153
		model.addAttribute("customerBillingAddressObj", customerAddress);
184
			model.addAttribute("paymentOptions", paymentOptions);
154
		model.addAttribute("paymentOptions", paymentOptions);
185
			model.addAttribute("insurancePolicies", insurancePolicies);
155
		model.addAttribute("insurancePolicies", insurancePolicies);
186
			return "sale-details";
156
		return "sale-details";
187
		}catch (Exception e) {
-
 
188
			LOGGER.error("Unble to fetch sale details... ", e);
-
 
189
			return "error";
-
 
190
		}
-
 
191
	}
157
	}
192
	
158
	
193
 
159
 
194
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
160
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
195
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest, Model model)  throws Throwable{
161
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest, Model model)  throws ProfitMandiBusinessException{
196
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
162
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
197
		LoginDetails fofoDetails;
-
 
198
		try {
-
 
199
			fofoDetails = cookiesProcessor.getCookiesObject(request);
163
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
200
		} catch (ProfitMandiBusinessException e) {
-
 
201
			model.addAttribute("loginResponse", mvcResponseSender.createResponseString("RTLR_1009", false, "/login"));
-
 
202
			return "response";
-
 
203
		}
164
		
204
		int fofoOrderId = orderService.createOrder(createOrderRequest, fofoDetails.getFofoId());
165
		int fofoOrderId = orderService.createOrder(createOrderRequest, fofoDetails.getFofoId());
205
		LOGGER.info("Order has been created successfully...");
166
		LOGGER.info("Order has been created successfully...");
206
		return "redirect:/get-order/?orderId="+fofoOrderId;
167
		return "redirect:/get-order/?orderId="+fofoOrderId;
207
	}
168
	}
208
 
169
 
209
 
170
 
210
	@RequestMapping(value = "/generateInvoice")
171
	@RequestMapping(value = "/generateInvoice")
211
	public ResponseEntity<?> generateInvoice(HttpServletRequest request, HttpServletResponse response, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId) throws Throwable{
172
	public ResponseEntity<?> generateInvoice(HttpServletRequest request, HttpServletResponse response, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId) throws ProfitMandiBusinessException{
212
		LOGGER.info("Request received at url {} with params [{}={}] ", request.getRequestURI(), ProfitMandiConstants.ORDER_ID, orderId);
173
		LOGGER.info("Request received at url {} with params [{}={}] ", request.getRequestURI(), ProfitMandiConstants.ORDER_ID, orderId);
213
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
174
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
214
 
175
 
215
		PdfModel pdfModel = orderService.getInvoicePdfModel(fofoDetails.getFofoId(), orderId);
176
		PdfModel pdfModel = orderService.getInvoicePdfModel(fofoDetails.getFofoId(), orderId);
216
		
177
		
Line 225... Line 186...
225
        final InputStreamResource inputStreamResource=new InputStreamResource(inputStream);
186
        final InputStreamResource inputStreamResource=new InputStreamResource(inputStream);
226
        return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
187
        return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
227
	}
188
	}
228
	
189
	
229
	@RequestMapping(value = "/saleHistory")
190
	@RequestMapping(value = "/saleHistory")
230
	public String saleHistory(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.START_TIME, required = false) String startTimeString, @RequestParam(name = ProfitMandiConstants.END_TIME, required = false) String endTimeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, @RequestParam(name = ProfitMandiConstants.INVOICE_NUMBER, defaultValue = "") String invoiceNumber, @RequestParam(name = "searchType",defaultValue="") String searchType, Model model) throws Exception{
191
	public String saleHistory(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.START_TIME, required = false) String startTimeString, @RequestParam(name = ProfitMandiConstants.END_TIME, required = false) String endTimeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, @RequestParam(name = ProfitMandiConstants.INVOICE_NUMBER, defaultValue = "") String invoiceNumber, @RequestParam(name = "searchType",defaultValue="") String searchType, Model model) throws ProfitMandiBusinessException{
231
		LoginDetails loginDetails = null;
-
 
232
		try {
-
 
233
			loginDetails = cookiesProcessor.getCookiesObject(request);
192
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
234
		} catch (ProfitMandiBusinessException e) {
-
 
235
			model.addAttribute("loginResponse", mvcResponseSender.createResponseString("RTLR_1009", false, "/login"));
-
 
236
			return "response";
-
 
237
		}
-
 
238
		
193
		
239
		LocalDateTime startDateTime = StringUtils.toDateTime(startTimeString);
194
		LocalDateTime startDateTime = StringUtils.toDateTime(startTimeString);
240
		LocalDateTime endDateTime = StringUtils.toDateTime(endTimeString);
195
		LocalDateTime endDateTime = StringUtils.toDateTime(endTimeString);
241
		long countItems = 0;
196
		long countItems = 0;
242
		List<FofoOrder> fofoOrders = new ArrayList<>();
197
		List<FofoOrder> fofoOrders = new ArrayList<>();
Line 268... Line 223...
268
		return "sale-history";
223
		return "sale-history";
269
	}
224
	}
270
	
225
	
271
	
226
	
272
	@RequestMapping(value = "/getPaginatedSaleHistory")
227
	@RequestMapping(value = "/getPaginatedSaleHistory")
273
	public String getSaleHistoryPaginated(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.START_TIME, required = false) String startTimeString, @RequestParam(name = ProfitMandiConstants.END_TIME, required = false) String endTimeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue="10") int limit, @RequestParam(name = ProfitMandiConstants.INVOICE_NUMBER, defaultValue="") String invoiceNumber, @RequestParam(name = "searchType", defaultValue = "") String searchType, Model model) throws Exception{
228
	public String getSaleHistoryPaginated(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.START_TIME, required = false) String startTimeString, @RequestParam(name = ProfitMandiConstants.END_TIME, required = false) String endTimeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue="10") int limit, @RequestParam(name = ProfitMandiConstants.INVOICE_NUMBER, defaultValue="") String invoiceNumber, @RequestParam(name = "searchType", defaultValue = "") String searchType, Model model) throws ProfitMandiBusinessException{
274
		LoginDetails loginDetails;
-
 
275
		try {
-
 
276
			loginDetails = cookiesProcessor.getCookiesObject(request);
229
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
277
		} catch (ProfitMandiBusinessException e) {
-
 
278
			model.addAttribute("loginResponse", mvcResponseSender.createResponseString("RTLR_1009", false, "/login"));
-
 
279
			return "response";
-
 
280
		}
230
		
281
		LocalDateTime startDateTime = StringUtils.toDateTime(startTimeString);
231
		LocalDateTime startDateTime = StringUtils.toDateTime(startTimeString);
282
		LocalDateTime endDateTime = StringUtils.toDateTime(endTimeString);
232
		LocalDateTime endDateTime = StringUtils.toDateTime(endTimeString);
283
 
233
 
284
		List<FofoOrder> saleHistories = fofoOrderRepository.selectByFofoId(loginDetails.getFofoId(), startDateTime, endDateTime, offset, limit);
234
		List<FofoOrder> saleHistories = fofoOrderRepository.selectByFofoId(loginDetails.getFofoId(), startDateTime, endDateTime, offset, limit);
285
		model.addAttribute("saleHistories", saleHistories);
235
		model.addAttribute("saleHistories", saleHistories);