| Line 14... |
Line 14... |
| 14 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
14 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
| 15 |
import com.spice.profitmandi.dao.entity.dtr.InsurancePolicy;
|
15 |
import com.spice.profitmandi.dao.entity.dtr.InsurancePolicy;
|
| 16 |
import com.spice.profitmandi.dao.entity.dtr.InsuranceProvider;
|
16 |
import com.spice.profitmandi.dao.entity.dtr.InsuranceProvider;
|
| 17 |
import com.spice.profitmandi.dao.entity.dtr.PaymentOptionTransaction;
|
17 |
import com.spice.profitmandi.dao.entity.dtr.PaymentOptionTransaction;
|
| 18 |
import com.spice.profitmandi.dao.entity.fofo.*;
|
18 |
import com.spice.profitmandi.dao.entity.fofo.*;
|
| 19 |
import com.spice.profitmandi.dao.entity.transaction.LineItem;
|
- |
|
| 20 |
import com.spice.profitmandi.dao.entity.transaction.Order;
|
- |
|
| 21 |
import com.spice.profitmandi.dao.entity.transaction.Transaction;
|
- |
|
| 22 |
import com.spice.profitmandi.dao.entity.transaction.TransactionApproval;
|
19 |
import com.spice.profitmandi.dao.entity.transaction.TransactionApproval;
|
| - |
|
20 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
| 23 |
import com.spice.profitmandi.dao.entity.user.Address;
|
21 |
import com.spice.profitmandi.dao.entity.user.Address;
|
| 24 |
import com.spice.profitmandi.dao.enumuration.dtr.PaymentOptionReferenceType;
|
22 |
import com.spice.profitmandi.dao.enumuration.dtr.PaymentOptionReferenceType;
|
| 25 |
import com.spice.profitmandi.dao.enumuration.transaction.OrderStatus;
|
23 |
import com.spice.profitmandi.dao.enumuration.transaction.OrderStatus;
|
| 26 |
import com.spice.profitmandi.dao.enumuration.transaction.TransactionApprovalStatus;
|
24 |
import com.spice.profitmandi.dao.enumuration.transaction.TransactionApprovalStatus;
|
| 27 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
25 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| 28 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
26 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| 29 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
27 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
| 30 |
import com.spice.profitmandi.dao.repository.dtr.*;
|
28 |
import com.spice.profitmandi.dao.repository.dtr.*;
|
| 31 |
import com.spice.profitmandi.dao.repository.fofo.*;
|
29 |
import com.spice.profitmandi.dao.repository.fofo.*;
|
| 32 |
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
|
30 |
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
|
| 33 |
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
|
- |
|
| 34 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
31 |
import com.spice.profitmandi.dao.repository.transaction.*;
|
| 35 |
import com.spice.profitmandi.dao.repository.transaction.TransactionApprovalRepository;
|
- |
|
| 36 |
import com.spice.profitmandi.dao.repository.transaction.TransactionRepository;
|
- |
|
| 37 |
import com.spice.profitmandi.dao.repository.user.AddressRepository;
|
32 |
import com.spice.profitmandi.dao.repository.user.AddressRepository;
|
| - |
|
33 |
import com.spice.profitmandi.dao.repository.user.CartRepository;
|
| 38 |
import com.spice.profitmandi.service.EmailService;
|
34 |
import com.spice.profitmandi.service.EmailService;
|
| 39 |
import com.spice.profitmandi.service.NotificationService;
|
35 |
import com.spice.profitmandi.service.NotificationService;
|
| 40 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
36 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 41 |
import com.spice.profitmandi.service.integrations.zest.InsuranceService;
|
37 |
import com.spice.profitmandi.service.integrations.zest.InsuranceService;
|
| 42 |
import com.spice.profitmandi.service.integrations.zest.MobileInsurancePlan;
|
38 |
import com.spice.profitmandi.service.integrations.zest.MobileInsurancePlan;
|
| 43 |
import com.spice.profitmandi.service.order.BulkOrderService;
|
39 |
import com.spice.profitmandi.service.order.BulkOrderService;
|
| 44 |
import com.spice.profitmandi.service.order.OrderService;
|
40 |
import com.spice.profitmandi.service.order.OrderService;
|
| 45 |
import com.spice.profitmandi.service.pricing.PricingService;
|
41 |
import com.spice.profitmandi.service.pricing.PricingService;
|
| 46 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
42 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
| 47 |
import com.spice.profitmandi.service.user.RetailerService;
|
43 |
import com.spice.profitmandi.service.user.RetailerService;
|
| - |
|
44 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| 48 |
import com.spice.profitmandi.service.whatsapp.WhatsappMessageService;
|
45 |
import com.spice.profitmandi.service.whatsapp.WhatsappMessageService;
|
| 49 |
import com.spice.profitmandi.service.whatsapp.WhatsappMessageType;
|
46 |
import com.spice.profitmandi.service.whatsapp.WhatsappMessageType;
|
| 50 |
import com.spice.profitmandi.web.model.LoginDetails;
|
47 |
import com.spice.profitmandi.web.model.LoginDetails;
|
| 51 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
48 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
| 52 |
import com.spice.profitmandi.web.util.MVCResponseSender;
|
49 |
import com.spice.profitmandi.web.util.MVCResponseSender;
|
| - |
|
50 |
import in.shop2020.model.v1.order.WalletReferenceType;
|
| 53 |
import org.apache.logging.log4j.LogManager;
|
51 |
import org.apache.logging.log4j.LogManager;
|
| 54 |
import org.apache.logging.log4j.Logger;
|
52 |
import org.apache.logging.log4j.Logger;
|
| 55 |
import org.json.JSONArray;
|
53 |
import org.json.JSONArray;
|
| 56 |
import org.json.JSONObject;
|
54 |
import org.json.JSONObject;
|
| 57 |
import org.springframework.beans.factory.annotation.Autowired;
|
55 |
import org.springframework.beans.factory.annotation.Autowired;
|
| Line 64... |
Line 62... |
| 64 |
import org.springframework.transaction.annotation.Transactional;
|
62 |
import org.springframework.transaction.annotation.Transactional;
|
| 65 |
import org.springframework.ui.Model;
|
63 |
import org.springframework.ui.Model;
|
| 66 |
import org.springframework.web.bind.annotation.*;
|
64 |
import org.springframework.web.bind.annotation.*;
|
| 67 |
import org.springframework.web.multipart.MultipartFile;
|
65 |
import org.springframework.web.multipart.MultipartFile;
|
| 68 |
|
66 |
|
| - |
|
67 |
import javax.mail.MessagingException;
|
| 69 |
import javax.servlet.http.HttpServletRequest;
|
68 |
import javax.servlet.http.HttpServletRequest;
|
| 70 |
import javax.servlet.http.HttpServletResponse;
|
69 |
import javax.servlet.http.HttpServletResponse;
|
| 71 |
import java.io.ByteArrayInputStream;
|
70 |
import java.io.ByteArrayInputStream;
|
| 72 |
import java.io.ByteArrayOutputStream;
|
71 |
import java.io.ByteArrayOutputStream;
|
| - |
|
72 |
import java.io.IOException;
|
| 73 |
import java.io.InputStream;
|
73 |
import java.io.InputStream;
|
| 74 |
import java.nio.charset.StandardCharsets;
|
74 |
import java.nio.charset.StandardCharsets;
|
| 75 |
import java.time.LocalDateTime;
|
75 |
import java.time.LocalDateTime;
|
| 76 |
import java.time.format.DateTimeFormatter;
|
76 |
import java.time.format.DateTimeFormatter;
|
| 77 |
import java.time.temporal.ChronoUnit;
|
77 |
import java.time.temporal.ChronoUnit;
|
| Line 167... |
Line 167... |
| 167 |
private MouRepository mouRepository;
|
167 |
private MouRepository mouRepository;
|
| 168 |
@Autowired
|
168 |
@Autowired
|
| 169 |
private WhatsappMessageService whatsappMessageService;
|
169 |
private WhatsappMessageService whatsappMessageService;
|
| 170 |
@Autowired
|
170 |
@Autowired
|
| 171 |
private TransactionRepository transactionRepository;
|
171 |
private TransactionRepository transactionRepository;
|
| - |
|
172 |
@Autowired
|
| - |
|
173 |
WalletService walletService;
|
| - |
|
174 |
@Autowired
|
| - |
|
175 |
CartRepository cartRepository;
|
| - |
|
176 |
@Autowired
|
| - |
|
177 |
UserWalletRepository userWalletRepository;
|
| - |
|
178 |
|
| 172 |
|
179 |
|
| 173 |
@RequestMapping(value = "/order")
|
180 |
@RequestMapping(value = "/order")
|
| 174 |
public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model)
|
181 |
public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model)
|
| 175 |
throws ProfitMandiBusinessException {
|
182 |
throws ProfitMandiBusinessException {
|
| 176 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
183 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| Line 1262... |
Line 1269... |
| 1262 |
Map<Integer, JSONObject> contentMap = commonSolrService.getContentByCatalogIds(catalogIds);
|
1269 |
Map<Integer, JSONObject> contentMap = commonSolrService.getContentByCatalogIds(catalogIds);
|
| 1263 |
JSONObject jsonObj = contentMap.get(item.getCatalogItemId());
|
1270 |
JSONObject jsonObj = contentMap.get(item.getCatalogItemId());
|
| 1264 |
pendingOrderItem.setImgUrl(jsonObj.getString("imageUrl_s"));
|
1271 |
pendingOrderItem.setImgUrl(jsonObj.getString("imageUrl_s"));
|
| 1265 |
pendingOrder.setPendingOrderItems(Arrays.asList(pendingOrderItem));
|
1272 |
pendingOrder.setPendingOrderItems(Arrays.asList(pendingOrderItem));
|
| 1266 |
CustomerAddress customerAddress = customerAddressRepository.selectById(pendingOrder.getCustomerAddressId());
|
1273 |
CustomerAddress customerAddress = customerAddressRepository.selectById(pendingOrder.getCustomerAddressId());
|
| 1267 |
|
- |
|
| 1268 |
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy h:mm a");
|
1274 |
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy h:mm a");
|
| 1269 |
|
- |
|
| 1270 |
Map<String, Object> emailModel = new HashMap<>();
|
1275 |
Map<String, Object> emailModel = new HashMap<>();
|
| 1271 |
emailModel.put("customer", customerAddress);
|
1276 |
emailModel.put("customer", customerAddress);
|
| 1272 |
emailModel.put("pendingOrder", pendingOrder);
|
1277 |
emailModel.put("pendingOrder", pendingOrder);
|
| 1273 |
emailModel.put("date", dateTimeFormatter);
|
1278 |
emailModel.put("date", dateTimeFormatter);
|
| 1274 |
Customer customer = customerRepository.selectById(pendingOrder.getCustomerId());
|
1279 |
Customer customer = customerRepository.selectById(pendingOrder.getCustomerId());
|
| Line 1384... |
Line 1389... |
| 1384 |
return "online-order-item";
|
1389 |
return "online-order-item";
|
| 1385 |
}
|
1390 |
}
|
| 1386 |
|
1391 |
|
| 1387 |
//TODO Tejus
|
1392 |
//TODO Tejus
|
| 1388 |
@RequestMapping(value = "/getBulkOrder")
|
1393 |
@RequestMapping(value = "/getBulkOrder")
|
| 1389 |
public String getBulkOrder(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
|
1394 |
public String getBulkOrder(HttpServletRequest request, Model model) throws ProfitMandiBusinessException, MessagingException, IOException {
|
| 1390 |
return "bulk-order";
|
1395 |
return "bulk-order";
|
| 1391 |
}
|
1396 |
}
|
| 1392 |
|
1397 |
|
| 1393 |
@PostMapping(value = "/bulkOrder/upload")
|
1398 |
@PostMapping(value = "/bulkOrder/upload")
|
| 1394 |
public String uploadCatalog(HttpServletRequest request, @RequestPart("file") MultipartFile file, Model model)
|
1399 |
public String uploadCatalog(HttpServletRequest request, @RequestPart("file") MultipartFile file, Model model)
|
| Line 1403... |
Line 1408... |
| 1403 |
|
1408 |
|
| 1404 |
// This method is use for sending all pending transaction to Transation Approval menu
|
1409 |
// This method is use for sending all pending transaction to Transation Approval menu
|
| 1405 |
@RequestMapping(value = "/transaction/pendingApprovals", method = RequestMethod.GET)
|
1410 |
@RequestMapping(value = "/transaction/pendingApprovals", method = RequestMethod.GET)
|
| 1406 |
public String getTransactionApproval(HttpServletRequest request, Model model) throws Exception {
|
1411 |
public String getTransactionApproval(HttpServletRequest request, Model model) throws Exception {
|
| 1407 |
List<TransactionApproval> transactionApprovals = transactionApprovalRepository.selectAllPending();
|
1412 |
List<TransactionApproval> transactionApprovals = transactionApprovalRepository.selectAllPending();
|
| 1408 |
// List<Integer> transactionAppprovalIds= Arrays.asList( 1135352, 1135353, 1135354);
|
- |
|
| 1409 |
LOGGER.info("list of Approval transaction Id " + transactionApprovals);
|
1413 |
LOGGER.info("list of Approval transaction Id " + transactionApprovals);
|
| 1410 |
List<TransctionApprovalModel> approvalModelList = new ArrayList<>();
|
1414 |
List<TransactionApprovalModel> approvalModelList = bulkOrderService.getAllPendingTransactionApproval();
|
| 1411 |
for (TransactionApproval transactionApproval : transactionApprovals) {
|
- |
|
| 1412 |
List<Order> orderList = orderRepository.selectAllByTransactionId(transactionApproval.getId());
|
- |
|
| 1413 |
Transaction transaction = transactionRepository.selectById(transactionApproval.getId());
|
- |
|
| 1414 |
List<LineItemModel> lineItemModelList = new ArrayList<>();
|
- |
|
| 1415 |
for (Order order : orderList) {
|
- |
|
| 1416 |
LineItem lineItem = order.getLineItem();
|
- |
|
| 1417 |
LineItemModel lineItemModel = new LineItemModel();
|
- |
|
| 1418 |
lineItemModel.setItemId(lineItem.getItemId());
|
- |
|
| 1419 |
lineItemModel.setItemName(lineItem.getItem().getItemDescription());
|
- |
|
| 1420 |
lineItemModel.setItemQuantity(lineItem.getQuantity());
|
- |
|
| 1421 |
lineItemModel.setSellingPrice(lineItem.getUnitPrice());
|
- |
|
| 1422 |
lineItemModel.setDp(tagListingRepository.selectByItemId(lineItem.getItemId()).getSellingPrice());
|
- |
|
| 1423 |
lineItemModelList.add(lineItemModel);
|
- |
|
| 1424 |
}
|
- |
|
| 1425 |
AuthUser authUser = authRepository.selectById(transaction.getCreatedBy());
|
- |
|
| 1426 |
TransctionApprovalModel transactionApprovalModel = new TransctionApprovalModel();
|
- |
|
| 1427 |
String retailerName = " ";
|
- |
|
| 1428 |
retailerName = orderList.get(0).getRetailerName();
|
- |
|
| 1429 |
transactionApprovalModel.setRetailerName(retailerName);
|
- |
|
| 1430 |
transactionApprovalModel.setCreatedBy(authUser.getFullName());
|
- |
|
| 1431 |
transactionApprovalModel.setCreatedOn(transaction.getCreateTimestamp());
|
- |
|
| 1432 |
transactionApprovalModel.setTransactionId(transactionApproval.getId());
|
- |
|
| 1433 |
transactionApprovalModel.setLineItemModels(lineItemModelList);
|
- |
|
| 1434 |
approvalModelList.add(transactionApprovalModel);
|
- |
|
| 1435 |
|
- |
|
| 1436 |
|
- |
|
| 1437 |
}
|
- |
|
| 1438 |
|
- |
|
| 1439 |
model.addAttribute("approvalModelList", approvalModelList);
|
1415 |
model.addAttribute("approvalModelList", approvalModelList);
|
| 1440 |
return "transaction/transaction-approvals";
|
1416 |
return "transaction/transaction-approvals";
|
| 1441 |
}
|
1417 |
}
|
| 1442 |
|
1418 |
|
| 1443 |
@RequestMapping(value = "transaction/approval", method = RequestMethod.PUT)
|
1419 |
@RequestMapping(value = "transaction/approval", method = RequestMethod.PUT)
|
| Line 1457... |
Line 1433... |
| 1457 |
|
1433 |
|
| 1458 |
}
|
1434 |
}
|
| 1459 |
|
1435 |
|
| 1460 |
private void updateApprovalStatus(int transactionId, int approvalId, String approvedBy, LocalDateTime approvedOn, String remark, TransactionApprovalStatus transactionApprovalStatus) throws Exception {
|
1436 |
private void updateApprovalStatus(int transactionId, int approvalId, String approvedBy, LocalDateTime approvedOn, String remark, TransactionApprovalStatus transactionApprovalStatus) throws Exception {
|
| 1461 |
TransactionApproval transactionApproval = transactionApprovalRepository.selectById(transactionId);
|
1437 |
TransactionApproval transactionApproval = transactionApprovalRepository.selectById(transactionId);
|
| - |
|
1438 |
int retailerId = transactionRepository.selectById(transactionId).getRetailerId();
|
| 1462 |
if (!transactionApproval.getStatus().equals(TransactionApprovalStatus.PENDING)) {
|
1439 |
if (!transactionApproval.getStatus().equals(TransactionApprovalStatus.PENDING)) {
|
| 1463 |
throw new ProfitMandiBusinessException("Transaction already Processed", "Transaction already Processed", "Transaction already Processed");
|
1440 |
throw new ProfitMandiBusinessException("Transaction already Processed", "Transaction already Processed", "Transaction already Processed");
|
| 1464 |
}
|
1441 |
}
|
| 1465 |
transactionApproval.setStatus(transactionApprovalStatus);
|
1442 |
transactionApproval.setStatus(transactionApprovalStatus);
|
| 1466 |
transactionApproval.setRemark(remark);
|
1443 |
transactionApproval.setRemark(remark);
|
| 1467 |
transactionApproval.setApprovalId(approvalId);
|
1444 |
transactionApproval.setApprovalId(approvalId);
|
| 1468 |
transactionApproval.setApprovedBy(approvedBy);
|
1445 |
transactionApproval.setApprovedBy(approvedBy);
|
| 1469 |
transactionApproval.setApprovedOn(approvedOn);
|
1446 |
transactionApproval.setApprovedOn(approvedOn);
|
| 1470 |
if (transactionApprovalStatus.equals(TransactionApprovalStatus.APPROVED)) {
|
1447 |
if (transactionApprovalStatus.equals(TransactionApprovalStatus.APPROVED)) {
|
| 1471 |
transactionService.processTransaction(transactionId);
|
1448 |
transactionService.processTransaction(transactionId);
|
| - |
|
1449 |
} else {
|
| - |
|
1450 |
float totalAmount = 0;
|
| - |
|
1451 |
// referense id = transaction id
|
| - |
|
1452 |
// here refund the amount of an order
|
| - |
|
1453 |
List<UserWalletHistory> uwhList = walletService.getAllByReference(retailerId, transactionId, WalletReferenceType.PURCHASE);
|
| - |
|
1454 |
// Do is negative so that add amount in wallet
|
| - |
|
1455 |
totalAmount = -uwhList.get(0).getAmount();
|
| - |
|
1456 |
walletService.refundToWallet(retailerId, totalAmount, transactionId, WalletReferenceType.PURCHASE, "Order canceled");
|
| 1472 |
}
|
1457 |
}
|
| 1473 |
}
|
1458 |
}
|
| 1474 |
|
1459 |
|
| 1475 |
@RequestMapping(value = "/bulkOrderTemplate", method = RequestMethod.GET)
|
1460 |
@RequestMapping(value = "/bulkOrderTemplate", method = RequestMethod.GET)
|
| 1476 |
public ResponseEntity<?> bulkOrderTemplate() throws Exception {
|
1461 |
public ResponseEntity<?> bulkOrderTemplate() throws Exception {
|