Subversion Repositories SmartDukaan

Rev

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

Rev 23352 Rev 23366
Line 42... Line 42...
42
import com.spice.profitmandi.dao.entity.dtr.InsuranceProvider;
42
import com.spice.profitmandi.dao.entity.dtr.InsuranceProvider;
43
import com.spice.profitmandi.dao.entity.fofo.Customer;
43
import com.spice.profitmandi.dao.entity.fofo.Customer;
44
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
44
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
46
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
46
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
-
 
47
import com.spice.profitmandi.dao.entity.fofo.FofoOrderPaymentOption;
47
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
48
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
48
import com.spice.profitmandi.dao.entity.user.Address;
49
import com.spice.profitmandi.dao.entity.user.Address;
49
import com.spice.profitmandi.dao.enumuration.fofo.PaymentOptionType;
-
 
50
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
50
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
51
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
51
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
52
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
52
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
53
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
53
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
54
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
54
import com.spice.profitmandi.dao.repository.fofo.CustomerRepository;
55
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
55
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
-
 
56
import com.spice.profitmandi.dao.repository.fofo.FofoOrderPaymentOptionRepository;
56
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
57
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
-
 
58
import com.spice.profitmandi.dao.repository.fofo.FofoPartnerPaymentOptionRepository;
57
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
59
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
58
import com.spice.profitmandi.dao.repository.user.AddressRepository;
60
import com.spice.profitmandi.dao.repository.user.AddressRepository;
59
import com.spice.profitmandi.service.inventory.OrderService;
61
import com.spice.profitmandi.service.order.OrderService;
60
import com.spice.profitmandi.service.pricing.PricingService;
62
import com.spice.profitmandi.service.pricing.PricingService;
61
import com.spice.profitmandi.web.model.LoginDetails;
63
import com.spice.profitmandi.web.model.LoginDetails;
62
import com.spice.profitmandi.web.util.CookiesProcessor;
64
import com.spice.profitmandi.web.util.CookiesProcessor;
63
 
65
 
64
@Controller
66
@Controller
Line 102... Line 104...
102
	
104
	
103
	@Autowired
105
	@Autowired
104
	private AddressRepository addressRepository;
106
	private AddressRepository addressRepository;
105
	
107
	
106
	@Autowired
108
	@Autowired
-
 
109
	private FofoOrderPaymentOptionRepository fofoOrderPaymentOptionRepository;
-
 
110
	
-
 
111
	@Autowired
-
 
112
	private FofoPartnerPaymentOptionRepository fofoPartnerPaymentOptionRepository;
-
 
113
	
-
 
114
	@Autowired
107
	private ResponseSender<?> responseSender;
115
	private ResponseSender<?> responseSender;
108
	
116
	
109
	@RequestMapping(value = "/order")
117
	@RequestMapping(value = "/order")
110
	public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model) throws ProfitMandiBusinessException{
118
	public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model) throws ProfitMandiBusinessException{
111
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);;
119
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);;
Line 117... Line 125...
117
		Set<Integer> itemIds = new HashSet<>();
125
		Set<Integer> itemIds = new HashSet<>();
118
		for(CartFofo cartFofo : cartItems){
126
		for(CartFofo cartFofo : cartItems){
119
			itemIds.add(cartFofo.getItemId());
127
			itemIds.add(cartFofo.getItemId());
120
		}
128
		}
121
		Map<Integer, PriceModel> mopPriceMap = pricingService.getPurchasePriceMopPriceNotFound(itemIds, loginDetails.getFofoId());
129
		Map<Integer, PriceModel> mopPriceMap = pricingService.getPurchasePriceMopPriceNotFound(itemIds, loginDetails.getFofoId());
-
 
130
		List<Integer> paymentOptionIds = fofoPartnerPaymentOptionRepository.selectPaymentOptionIdsByFofoId(loginDetails.getFofoId());
-
 
131
		List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(new HashSet<>(paymentOptionIds));
122
		LOGGER.info("mopPriceMap {}", mopPriceMap);
132
		LOGGER.info("mopPriceMap {}", mopPriceMap);
123
		model.addAttribute("stateNames", Utils.getAllStateNames());
133
		model.addAttribute("stateNames", Utils.getAllStateNames());
124
		model.addAttribute("retailerStateName", address.getState());
134
		model.addAttribute("retailerStateName", address.getState());
125
		model.addAttribute("cartObj", cartItems);
135
		model.addAttribute("cartObj", cartItems);
126
		model.addAttribute("mopPriceMap", mopPriceMap);
136
		model.addAttribute("mopPriceMap", mopPriceMap);
127
		model.addAttribute("paymentOptionTypes", PaymentOptionType.values());
137
		model.addAttribute("paymentOptions", paymentOptions);
128
		return "order-index";
138
		return "order-index";
129
	}
139
	}
130
	
140
	
131
	
141
	
132
	@RequestMapping(value = "/insurancePrices", method = RequestMethod.GET)
142
	@RequestMapping(value = "/insurancePrices", method = RequestMethod.GET)
Line 144... Line 154...
144
		FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
154
		FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
145
		List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
155
		List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
146
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
156
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
147
		Customer customer  = customerRepository.selectById(fofoOrder.getCustomerId());
157
		Customer customer  = customerRepository.selectById(fofoOrder.getCustomerId());
148
		customerAddress.setPhoneNumber(customer.getMobileNumber());
158
		customerAddress.setPhoneNumber(customer.getMobileNumber());
149
		List<PaymentOption> paymentOptions = paymentOptionRepository.selectByOrderId(fofoOrder.getId());
159
		List<FofoOrderPaymentOption> fofoOrderPaymentOptions = fofoOrderPaymentOptionRepository.selectByFofoOrderId(fofoOrder.getId());
-
 
160
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this.paymentOptionIdPaymentOptionMap(fofoOrderPaymentOptions);
150
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
161
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
151
		this.addInsuranceProvider(insurancePolicies);
162
		this.addInsuranceProvider(insurancePolicies);
152
		model.addAttribute("fofoOrder", fofoOrder);
163
		model.addAttribute("fofoOrder", fofoOrder);
153
		model.addAttribute("fofoLineItems", fofoLineItems);
164
		model.addAttribute("fofoLineItems", fofoLineItems);
154
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
165
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
155
		model.addAttribute("customerBillingAddressObj", customerAddress);
166
		model.addAttribute("customerBillingAddressObj", customerAddress);
156
		model.addAttribute("paymentOptions", paymentOptions);
167
		model.addAttribute("fofoOrderPaymentOptions", fofoOrderPaymentOptions);
-
 
168
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
157
		model.addAttribute("insurancePolicies", insurancePolicies);
169
		model.addAttribute("insurancePolicies", insurancePolicies);
158
		return "order-details";
170
		return "order-details";
159
	}
171
	}
160
	
172
	
161
	private Map<Integer, InsuranceProvider> toInsuranceProviderIdInsuranceProvider(List<InsuranceProvider> insuranceProviders){
173
	private Map<Integer, InsuranceProvider> toInsuranceProviderIdInsuranceProvider(List<InsuranceProvider> insuranceProviders){
Line 188... Line 200...
188
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
200
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
189
		
201
		
190
		FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
202
		FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(fofoDetails.getFofoId(), orderId);
191
		List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
203
		List<FofoOrderItem> fofoLineItems = fofoLineItemRepository.selectByOrderId(fofoOrder.getId());
192
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
204
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
193
		List<PaymentOption> paymentOptions = paymentOptionRepository.selectByOrderId(fofoOrder.getId());
205
		List<FofoOrderPaymentOption> fofoOrderPaymentOptions = fofoOrderPaymentOptionRepository.selectByFofoOrderId(fofoOrder.getId());
-
 
206
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this.paymentOptionIdPaymentOptionMap(fofoOrderPaymentOptions);
194
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
207
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
195
		this.addInsuranceProvider(insurancePolicies);
208
		this.addInsuranceProvider(insurancePolicies);
196
		model.addAttribute("fofoOrder", fofoOrder);
209
		model.addAttribute("fofoOrder", fofoOrder);
197
		model.addAttribute("fofoLineItems", fofoLineItems);
210
		model.addAttribute("fofoLineItems", fofoLineItems);
198
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
211
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
199
		model.addAttribute("customerBillingAddressObj", customerAddress);
212
		model.addAttribute("customerBillingAddressObj", customerAddress);
200
		model.addAttribute("paymentOptions", paymentOptions);
213
		model.addAttribute("fofoOrderPaymentOptions", fofoOrderPaymentOptions);
-
 
214
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
201
		model.addAttribute("insurancePolicies", insurancePolicies);
215
		model.addAttribute("insurancePolicies", insurancePolicies);
202
		return "sale-details";
216
		return "sale-details";
203
	}
217
	}
204
	
218
	
-
 
219
	private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(List<FofoOrderPaymentOption> fofoOrderPaymentOptions){
-
 
220
		Set<Integer> paymentOptionIds = new HashSet<>();
-
 
221
		for(FofoOrderPaymentOption fofoOrderPaymentOption : fofoOrderPaymentOptions) {
-
 
222
			paymentOptionIds.add(fofoOrderPaymentOption.getPaymentOptionId());
-
 
223
		}
-
 
224
		List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(paymentOptionIds);
-
 
225
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = new HashMap<>();
-
 
226
		for(PaymentOption paymentOption : paymentOptions) {
-
 
227
			paymentOptionIdPaymentOptionMap.put(paymentOption.getId(), paymentOption);
-
 
228
		}
-
 
229
		return paymentOptionIdPaymentOptionMap;
-
 
230
	}
-
 
231
	
205
 
232
 
206
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
233
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
207
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest, Model model)  throws ProfitMandiBusinessException{
234
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest, Model model)  throws ProfitMandiBusinessException{
208
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
235
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
209
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
236
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);