Subversion Repositories SmartDukaan

Rev

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

Rev 23973 Rev 24087
Line 57... Line 57...
57
import com.spice.profitmandi.dao.entity.fofo.CustomerReturnItem;
57
import com.spice.profitmandi.dao.entity.fofo.CustomerReturnItem;
58
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
58
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
59
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
59
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
60
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
60
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
61
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
61
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
62
import com.spice.profitmandi.dao.entity.fofo.PrebookingOrderItem;
-
 
63
import com.spice.profitmandi.dao.entity.user.Address;
62
import com.spice.profitmandi.dao.entity.user.Address;
64
import com.spice.profitmandi.dao.enumuration.dtr.PaymentOptionReferenceType;
63
import com.spice.profitmandi.dao.enumuration.dtr.PaymentOptionReferenceType;
65
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
64
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
66
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
65
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
67
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
66
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
68
import com.spice.profitmandi.dao.repository.dtr.PaymentOptionTransactionRepository;
67
import com.spice.profitmandi.dao.repository.dtr.PaymentOptionTransactionRepository;
69
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
68
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
70
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
69
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
71
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
70
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
72
import com.spice.profitmandi.dao.repository.fofo.CustomerReturnItemRepository;
71
import com.spice.profitmandi.dao.repository.fofo.CustomerReturnItemRepository;
73
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
-
 
74
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
72
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
75
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
73
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
76
import com.spice.profitmandi.dao.repository.fofo.FofoPartnerPaymentOptionRepository;
74
import com.spice.profitmandi.dao.repository.fofo.FofoPartnerPaymentOptionRepository;
77
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
75
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
78
import com.spice.profitmandi.dao.repository.fofo.PrebookingOrderItemRepository;
-
 
79
import com.spice.profitmandi.dao.repository.user.AddressRepository;
76
import com.spice.profitmandi.dao.repository.user.AddressRepository;
80
import com.spice.profitmandi.service.authentication.RoleManager;
77
import com.spice.profitmandi.service.authentication.RoleManager;
81
import com.spice.profitmandi.service.order.OrderService;
78
import com.spice.profitmandi.service.order.OrderService;
82
import com.spice.profitmandi.service.pricing.PricingService;
79
import com.spice.profitmandi.service.pricing.PricingService;
83
import com.spice.profitmandi.web.model.LoginDetails;
80
import com.spice.profitmandi.web.model.LoginDetails;
Line 140... Line 137...
140
	private PaymentOptionTransactionRepository fofoOrderPaymentOptionRepository;
137
	private PaymentOptionTransactionRepository fofoOrderPaymentOptionRepository;
141
 
138
 
142
	@Autowired
139
	@Autowired
143
	private FofoPartnerPaymentOptionRepository fofoPartnerPaymentOptionRepository;
140
	private FofoPartnerPaymentOptionRepository fofoPartnerPaymentOptionRepository;
144
 
141
 
145
	@Autowired
-
 
146
	private PrebookingOrderItemRepository prebookingOrderItemRepository;
-
 
147
 
142
 
148
	@Autowired
143
	@Autowired
149
	private ResponseSender<?> responseSender;
144
	private ResponseSender<?> responseSender;
150
 
145
 
151
	@RequestMapping(value = "/order")
146
	@RequestMapping(value = "/order")
Line 200... Line 195...
200
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this
195
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this
201
				.paymentOptionIdPaymentOptionMap(paymentOptionTransactions);
196
				.paymentOptionIdPaymentOptionMap(paymentOptionTransactions);
202
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
197
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
203
				.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
198
				.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
204
		this.addInsuranceProvider(insurancePolicies);
199
		this.addInsuranceProvider(insurancePolicies);
205
		List<PrebookingOrderItem> prebookingOrderItems = prebookingOrderItemRepository.selectByOrderId(orderId);
-
 
206
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItemMap = this
-
 
207
				.prebookingOrderItemToItemIdPrebookingOrderItem(prebookingOrderItems);
-
 
-
 
200
 
208
		model.addAttribute("fofoOrder", fofoOrder);
201
		model.addAttribute("fofoOrder", fofoOrder);
209
		model.addAttribute("fofoLineItems", fofoLineItems);
202
		model.addAttribute("fofoLineItems", fofoLineItems);
210
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
203
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
211
		model.addAttribute("customerBillingAddressObj", customerAddress);
204
		model.addAttribute("customerBillingAddressObj", customerAddress);
212
		model.addAttribute("paymentOptionTransactions", paymentOptionTransactions);
205
		model.addAttribute("paymentOptionTransactions", paymentOptionTransactions);
213
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
206
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
214
		model.addAttribute("insurancePolicies", insurancePolicies);
207
		model.addAttribute("insurancePolicies", insurancePolicies);
215
		model.addAttribute("itemIdPrebookingOrderItemMap", itemIdPrebookingOrderItemMap);
-
 
216
		return "order-details";
208
		return "order-details";
217
	}
209
	}
218
 
210
 
219
	@RequestMapping(value = "/generateOtp", method = RequestMethod.POST)
-
 
220
	public ResponseEntity<?> generateOtp(@RequestBody Map<Integer, Float> itemIdAdvanceAmount,
-
 
221
			@RequestParam(name = ProfitMandiConstants.CUSTOMER_EMAIL_ID) String customerEmailId,
-
 
222
			@RequestParam(name = ProfitMandiConstants.CUSTOMER_MOBILE_NUMBER) String customerMobileNumber)
-
 
223
			throws ProfitMandiBusinessException {
-
 
224
 
-
 
225
		int response = orderService.generatePrebookingOrdersOtp(customerEmailId, customerMobileNumber,
-
 
226
				itemIdAdvanceAmount);
-
 
227
 
-
 
228
		return responseSender.ok(response);
-
 
229
	}
-
 
230
 
-
 
231
	@RequestMapping(value = "/validateOtp", method = RequestMethod.GET)
-
 
232
	public ResponseEntity<?> validateOtp(
-
 
233
			@RequestParam(name = ProfitMandiConstants.CUSTOMER_EMAIL_ID) String customerEmailId,
-
 
234
			@RequestParam(name = ProfitMandiConstants.CUSTOMER_MOBILE_NUMBER) String customerMobileNumber,
-
 
235
			@RequestParam("otpId") int otpId, @RequestParam("otpValue") String otpValue)
-
 
236
			throws ProfitMandiBusinessException {
-
 
237
 
-
 
238
		String responseString = orderService.validateOtp(customerEmailId, customerMobileNumber, otpId, otpValue);
-
 
239
 
-
 
240
		return responseSender.ok(responseString);
-
 
241
	}
-
 
242
 
-
 
243
	private Map<Integer, InsuranceProvider> toInsuranceProviderIdInsuranceProvider(
211
	private Map<Integer, InsuranceProvider> toInsuranceProviderIdInsuranceProvider(
244
			List<InsuranceProvider> insuranceProviders) {
212
			List<InsuranceProvider> insuranceProviders) {
245
		Map<Integer, InsuranceProvider> insuranceProviderIdInsuranceProviderMap = new HashMap<>();
213
		Map<Integer, InsuranceProvider> insuranceProviderIdInsuranceProviderMap = new HashMap<>();
246
		for (InsuranceProvider insuranceProvider : insuranceProviders) {
214
		for (InsuranceProvider insuranceProvider : insuranceProviders) {
247
			insuranceProviderIdInsuranceProviderMap.put(insuranceProvider.getId(), insuranceProvider);
215
			insuranceProviderIdInsuranceProviderMap.put(insuranceProvider.getId(), insuranceProvider);
Line 293... Line 261...
293
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this
261
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this
294
				.paymentOptionIdPaymentOptionMap(paymentOptionTransactions);
262
				.paymentOptionIdPaymentOptionMap(paymentOptionTransactions);
295
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
263
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
296
				.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
264
				.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
297
		this.addInsuranceProvider(insurancePolicies);
265
		this.addInsuranceProvider(insurancePolicies);
298
		List<PrebookingOrderItem> prebookingOrderItems = prebookingOrderItemRepository.selectByOrderId(orderId);
-
 
299
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItemMap = this
-
 
300
				.prebookingOrderItemToItemIdPrebookingOrderItem(prebookingOrderItems);
-
 
301
		Map<Integer, Item> itemsMap = fofoOrderItems.stream().collect(Collectors.toMap(x -> x.getItemId(), x -> {
266
		Map<Integer, Item> itemsMap = fofoOrderItems.stream().collect(Collectors.toMap(x -> x.getItemId(), x -> {
302
			try {
267
			try {
303
				return itemRepository.selectById(x.getItemId());
268
				return itemRepository.selectById(x.getItemId());
304
			} catch (ProfitMandiBusinessException e) {
269
			} catch (ProfitMandiBusinessException e) {
305
				// TODO Auto-generated catch block
270
				// TODO Auto-generated catch block
Line 338... Line 303...
338
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
303
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
339
		model.addAttribute("customerBillingAddressObj", customerAddress);
304
		model.addAttribute("customerBillingAddressObj", customerAddress);
340
		model.addAttribute("paymentOptionTransactions", paymentOptionTransactions);
305
		model.addAttribute("paymentOptionTransactions", paymentOptionTransactions);
341
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
306
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
342
		model.addAttribute("insurancePolicies", insurancePolicies);
307
		model.addAttribute("insurancePolicies", insurancePolicies);
343
		model.addAttribute("itemIdPrebookingOrderItemMap", itemIdPrebookingOrderItemMap);
-
 
344
		model.addAttribute("markDoa", this.markDoa(fofoOrder));
308
		model.addAttribute("markDoa", this.markDoa(fofoOrder));
345
		model.addAttribute("markDefective", this.markDefective(fofoOrder));
309
		model.addAttribute("markDefective", this.markDefective(fofoOrder));
346
		return "sale-details";
310
		return "sale-details";
347
	}
311
	}
348
 
312
 
Line 386... Line 350...
386
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this
350
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this
387
				.paymentOptionIdPaymentOptionMap(paymentOptionTransactions);
351
				.paymentOptionIdPaymentOptionMap(paymentOptionTransactions);
388
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
352
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
389
				.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
353
				.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
390
		this.addInsuranceProvider(insurancePolicies);
354
		this.addInsuranceProvider(insurancePolicies);
391
		List<PrebookingOrderItem> prebookingOrderItems = prebookingOrderItemRepository
-
 
392
				.selectByOrderId(fofoOrder.getId());
-
 
393
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItemMap = this
-
 
394
				.prebookingOrderItemToItemIdPrebookingOrderItem(prebookingOrderItems);
-
 
395
		model.addAttribute("fofoOrder", fofoOrder);
355
		model.addAttribute("fofoOrder", fofoOrder);
396
		model.addAttribute("fofoLineItems", fofoLineItems);
356
		model.addAttribute("fofoLineItems", fofoLineItems);
397
		model.addAttribute("customer", customer);
357
		model.addAttribute("customer", customer);
398
		model.addAttribute("customerAddress", customerAddress);
358
		model.addAttribute("customerAddress", customerAddress);
399
		model.addAttribute("paymentOptionTransactions", paymentOptionTransactions);
359
		model.addAttribute("paymentOptionTransactions", paymentOptionTransactions);
400
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
360
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
401
		model.addAttribute("insurancePolicies", insurancePolicies);
361
		model.addAttribute("insurancePolicies", insurancePolicies);
402
		model.addAttribute("itemIdPrebookingOrderItemMap", itemIdPrebookingOrderItemMap);
-
 
403
		model.addAttribute("stateNames", Utils.getAllStateNames());
362
		model.addAttribute("stateNames", Utils.getAllStateNames());
404
		return "search-order-details";
363
		return "search-order-details";
405
	}
364
	}
406
 
365
 
407
	private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(
366
	private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(
Line 416... Line 375...
416
			paymentOptionIdPaymentOptionMap.put(paymentOption.getId(), paymentOption);
375
			paymentOptionIdPaymentOptionMap.put(paymentOption.getId(), paymentOption);
417
		}
376
		}
418
		return paymentOptionIdPaymentOptionMap;
377
		return paymentOptionIdPaymentOptionMap;
419
	}
378
	}
420
 
379
 
421
	private Map<Integer, PrebookingOrderItem> prebookingOrderItemToItemIdPrebookingOrderItem(
-
 
422
			List<PrebookingOrderItem> prebookingOrderItems) {
-
 
423
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItem = new HashMap<>();
-
 
424
		for (PrebookingOrderItem prebookingOrderItem : prebookingOrderItems) {
-
 
425
			itemIdPrebookingOrderItem.put(prebookingOrderItem.getItemId(), prebookingOrderItem);
-
 
426
		}
-
 
427
		return itemIdPrebookingOrderItem;
-
 
428
	}
-
 
429
 
-
 
430
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
380
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
431
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest,
381
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest,
432
			Model model) throws ProfitMandiBusinessException {
382
			Model model) throws ProfitMandiBusinessException {
433
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
383
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
434
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
384
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);