| Line 11... |
Line 11... |
| 11 |
import java.util.List;
|
11 |
import java.util.List;
|
| 12 |
import java.util.Map;
|
12 |
import java.util.Map;
|
| 13 |
import java.util.Optional;
|
13 |
import java.util.Optional;
|
| 14 |
import java.util.Random;
|
14 |
import java.util.Random;
|
| 15 |
import java.util.Set;
|
15 |
import java.util.Set;
|
| - |
|
16 |
import java.util.AbstractMap.SimpleEntry;
|
| 16 |
import java.util.function.Function;
|
17 |
import java.util.function.Function;
|
| 17 |
import java.util.stream.Collectors;
|
18 |
import java.util.stream.Collectors;
|
| 18 |
|
19 |
|
| - |
|
20 |
import javax.persistence.criteria.CriteriaBuilder;
|
| - |
|
21 |
import javax.persistence.criteria.CriteriaQuery;
|
| - |
|
22 |
import javax.persistence.criteria.Predicate;
|
| - |
|
23 |
import javax.persistence.criteria.Root;
|
| - |
|
24 |
|
| 19 |
import org.apache.logging.log4j.LogManager;
|
25 |
import org.apache.logging.log4j.LogManager;
|
| 20 |
import org.apache.logging.log4j.Logger;
|
26 |
import org.apache.logging.log4j.Logger;
|
| - |
|
27 |
import org.hibernate.Session;
|
| - |
|
28 |
import org.hibernate.SessionFactory;
|
| 21 |
import org.json.JSONObject;
|
29 |
import org.json.JSONObject;
|
| 22 |
import org.springframework.beans.factory.annotation.Autowired;
|
30 |
import org.springframework.beans.factory.annotation.Autowired;
|
| 23 |
import org.springframework.beans.factory.annotation.Qualifier;
|
31 |
import org.springframework.beans.factory.annotation.Qualifier;
|
| 24 |
import org.springframework.cache.annotation.Cacheable;
|
32 |
import org.springframework.cache.annotation.Cacheable;
|
| 25 |
import org.springframework.stereotype.Component;
|
33 |
import org.springframework.stereotype.Component;
|
| 26 |
|
34 |
|
| - |
|
35 |
import com.mongodb.MongoClient;
|
| 27 |
import com.spice.profitmandi.common.enumuration.ItemType;
|
36 |
import com.spice.profitmandi.common.enumuration.ItemType;
|
| 28 |
import com.spice.profitmandi.common.enumuration.SearchType;
|
37 |
import com.spice.profitmandi.common.enumuration.SearchType;
|
| 29 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
38 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
| 30 |
import com.spice.profitmandi.common.model.BadReturnRequest;
|
39 |
import com.spice.profitmandi.common.model.BadReturnRequest;
|
| 31 |
import com.spice.profitmandi.common.model.CartFofo;
|
40 |
import com.spice.profitmandi.common.model.CartFofo;
|
| Line 85... |
Line 94... |
| 85 |
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
|
94 |
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
|
| 86 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
95 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
| 87 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
96 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| 88 |
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
|
97 |
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
|
| 89 |
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
|
98 |
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
|
| - |
|
99 |
import com.spice.profitmandi.dao.repository.dtr.Mongo;
|
| 90 |
import com.spice.profitmandi.dao.repository.dtr.PaymentOptionTransactionRepository;
|
100 |
import com.spice.profitmandi.dao.repository.dtr.PaymentOptionTransactionRepository;
|
| 91 |
import com.spice.profitmandi.dao.repository.dtr.PolicyNumberGenerationSequenceRepository;
|
101 |
import com.spice.profitmandi.dao.repository.dtr.PolicyNumberGenerationSequenceRepository;
|
| 92 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
|
102 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
|
| 93 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
103 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
| 94 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
104 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
| Line 116... |
Line 126... |
| 116 |
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
|
126 |
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
|
| 117 |
import com.spice.profitmandi.service.integrations.zest.InsuranceService;
|
127 |
import com.spice.profitmandi.service.integrations.zest.InsuranceService;
|
| 118 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
128 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
| 119 |
import com.spice.profitmandi.service.inventory.PurchaseReturnService;
|
129 |
import com.spice.profitmandi.service.inventory.PurchaseReturnService;
|
| 120 |
import com.spice.profitmandi.service.inventory.SaholicInventoryService;
|
130 |
import com.spice.profitmandi.service.inventory.SaholicInventoryService;
|
| - |
|
131 |
import com.spice.profitmandi.service.offers.ItemCriteria;
|
| - |
|
132 |
import com.spice.profitmandi.service.offers.PartnerCriteria;
|
| 121 |
import com.spice.profitmandi.service.pricing.PricingService;
|
133 |
import com.spice.profitmandi.service.pricing.PricingService;
|
| 122 |
import com.spice.profitmandi.service.scheme.SchemeService;
|
134 |
import com.spice.profitmandi.service.scheme.SchemeService;
|
| 123 |
import com.spice.profitmandi.service.user.RetailerService;
|
135 |
import com.spice.profitmandi.service.user.RetailerService;
|
| 124 |
import com.spice.profitmandi.service.wallet.WalletService;
|
136 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| 125 |
|
137 |
|
| Line 242... |
Line 254... |
| 242 |
|
254 |
|
| 243 |
@Autowired
|
255 |
@Autowired
|
| 244 |
private SchemeService schemeService;
|
256 |
private SchemeService schemeService;
|
| 245 |
|
257 |
|
| 246 |
private static final List<Integer> orderIdsConsumed = new ArrayList<>();
|
258 |
private static final List<Integer> orderIdsConsumed = new ArrayList<>();
|
| 247 |
|
259 |
|
| 248 |
@Autowired
|
260 |
@Autowired
|
| 249 |
@Qualifier("fofoInventoryService")
|
261 |
@Qualifier("fofoInventoryService")
|
| 250 |
private InventoryService inventoryService;
|
262 |
private InventoryService inventoryService;
|
| 251 |
|
263 |
|
| 252 |
@Autowired
|
264 |
@Autowired
|
| Line 256... |
Line 268... |
| 256 |
private OrderRepository orderRepository;
|
268 |
private OrderRepository orderRepository;
|
| 257 |
|
269 |
|
| 258 |
@Autowired
|
270 |
@Autowired
|
| 259 |
private HygieneDataRepository hygieneDataRepository;
|
271 |
private HygieneDataRepository hygieneDataRepository;
|
| 260 |
|
272 |
|
| - |
|
273 |
@Autowired
|
| - |
|
274 |
private SessionFactory sessionFactory;
|
| - |
|
275 |
|
| - |
|
276 |
@Autowired
|
| - |
|
277 |
private Mongo mongoClient;
|
| - |
|
278 |
|
| 261 |
@Override
|
279 |
@Override
|
| 262 |
public int createOrder(CreateOrderRequest createOrderRequest, int fofoId, boolean accessoriesDeals)
|
280 |
public int createOrder(CreateOrderRequest createOrderRequest, int fofoId, boolean accessoriesDeals)
|
| 263 |
throws ProfitMandiBusinessException {
|
281 |
throws ProfitMandiBusinessException {
|
| 264 |
LOGGER.info("fofoId -- {} Order Request -- {}", fofoId, createOrderRequest);
|
282 |
LOGGER.info("fofoId -- {} Order Request -- {}", fofoId, createOrderRequest);
|
| 265 |
CustomCustomer customCustomer = createOrderRequest.getCustomer();
|
283 |
CustomCustomer customCustomer = createOrderRequest.getCustomer();
|
| Line 633... |
Line 651... |
| 633 |
int itemId = warehouseInventoryItem.getItemId();
|
651 |
int itemId = warehouseInventoryItem.getItemId();
|
| 634 |
LocalDateTime grnDate = warehouseInventoryItem.getCreated();
|
652 |
LocalDateTime grnDate = warehouseInventoryItem.getCreated();
|
| 635 |
Random random = new Random();
|
653 |
Random random = new Random();
|
| 636 |
int randomDays = random.ints(2, 15).findFirst().getAsInt();
|
654 |
int randomDays = random.ints(2, 15).findFirst().getAsInt();
|
| 637 |
LocalDateTime saleDate = grnDate.plusDays(randomDays);
|
655 |
LocalDateTime saleDate = grnDate.plusDays(randomDays);
|
| 638 |
if(saleDate.isAfter(LocalDate.now().atStartOfDay())) {
|
656 |
if (saleDate.isAfter(LocalDate.now().atStartOfDay())) {
|
| 639 |
saleDate = LocalDateTime.now().minusDays(2);
|
657 |
saleDate = LocalDateTime.now().minusDays(2);
|
| 640 |
}
|
658 |
}
|
| 641 |
Random offsetRandom = new Random();
|
659 |
Random offsetRandom = new Random();
|
| 642 |
int offset = offsetRandom.ints(2, 100).findFirst().getAsInt();
|
660 |
int offset = offsetRandom.ints(2, 100).findFirst().getAsInt();
|
| 643 |
FofoOrder fofoOrder = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset);
|
661 |
FofoOrder fofoOrder = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset);
|
| 644 |
while (orderIdsConsumed.contains(fofoOrder.getId())) {
|
662 |
while (orderIdsConsumed.contains(fofoOrder.getId())) {
|
| 645 |
Random offsetRandom2 = new Random();
|
663 |
Random offsetRandom2 = new Random();
|
| 646 |
int offset2 = offsetRandom2.ints(2, 100).findFirst().getAsInt();
|
664 |
int offset2 = offsetRandom2.ints(2, 100).findFirst().getAsInt();
|
| 647 |
FofoOrder fofoOrder2 = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset2);
|
665 |
FofoOrder fofoOrder2 = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset2);
|
| 648 |
if(fofoOrder2 != null) {
|
666 |
if (fofoOrder2 != null) {
|
| 649 |
fofoOrder = fofoOrder2;
|
667 |
fofoOrder = fofoOrder2;
|
| 650 |
}
|
668 |
}
|
| 651 |
}
|
669 |
}
|
| 652 |
PdfModel pdfModel = this.getInvoicePdfModel(fofoOrder.getId());
|
670 |
PdfModel pdfModel = this.getInvoicePdfModel(fofoOrder.getId());
|
| 653 |
orderIdsConsumed.add(fofoOrder.getId());
|
671 |
orderIdsConsumed.add(fofoOrder.getId());
|
| Line 660... |
Line 678... |
| 660 |
throw new ProfitMandiBusinessException("Serial Number", serialNumber,
|
678 |
throw new ProfitMandiBusinessException("Serial Number", serialNumber,
|
| 661 |
"Serial Number does not exist in our warehouse");
|
679 |
"Serial Number does not exist in our warehouse");
|
| 662 |
}
|
680 |
}
|
| 663 |
}
|
681 |
}
|
| 664 |
|
682 |
|
| 665 |
void modifyDummyModel(FofoOrder fofoOrder, PdfModel pdfModel, int itemId, String serialNumber) throws ProfitMandiBusinessException {
|
683 |
void modifyDummyModel(FofoOrder fofoOrder, PdfModel pdfModel, int itemId, String serialNumber)
|
| - |
|
684 |
throws ProfitMandiBusinessException {
|
| 666 |
|
685 |
|
| 667 |
int retailerAddressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(fofoOrder.getFofoId());
|
686 |
int retailerAddressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(fofoOrder.getFofoId());
|
| 668 |
|
687 |
|
| 669 |
Address retailerAddress = addressRepository.selectById(retailerAddressId);
|
688 |
Address retailerAddress = addressRepository.selectById(retailerAddressId);
|
| 670 |
Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
|
689 |
Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
|
| 671 |
|
690 |
|
| 672 |
CustomerAddress customerAddress = customer.getCustomerAddress().stream()
|
691 |
CustomerAddress customerAddress = customer.getCustomerAddress().stream()
|
| 673 |
.filter(x -> x.getId() == fofoOrder.getCustomerAddressId()).findFirst().get();
|
692 |
.filter(x -> x.getId() == fofoOrder.getCustomerAddressId()).findFirst().get();
|
| 674 |
|
693 |
|
| 675 |
|
- |
|
| 676 |
Integer stateId = null;
|
694 |
Integer stateId = null;
|
| 677 |
if (customerAddress.getState().equals(retailerAddress.getState())) {
|
695 |
if (customerAddress.getState().equals(retailerAddress.getState())) {
|
| 678 |
try {
|
696 |
try {
|
| 679 |
stateId = Long.valueOf(Utils.getStateInfo(customerAddress.getState()).getId()).intValue();
|
697 |
stateId = Long.valueOf(Utils.getStateInfo(customerAddress.getState()).getId()).intValue();
|
| 680 |
} catch (Exception e) {
|
698 |
} catch (Exception e) {
|
| 681 |
LOGGER.error("Unable to get state rates");
|
699 |
LOGGER.error("Unable to get state rates");
|
| 682 |
}
|
700 |
}
|
| 683 |
}
|
701 |
}
|
| 684 |
CustomOrderItem cli = pdfModel.getOrderItems().stream().findFirst().get();
|
702 |
CustomOrderItem cli = pdfModel.getOrderItems().stream().findFirst().get();
|
| - |
|
703 |
List<FofoOrderItem> fofoOrderItems = Arrays
|
| 685 |
List<FofoOrderItem> fofoOrderItems = Arrays.asList(this.getDummyFofoOrderItem(itemId, fofoOrder.getId(), serialNumber, stateId));
|
704 |
.asList(this.getDummyFofoOrderItem(itemId, fofoOrder.getId(), serialNumber, stateId));
|
| 686 |
pdfModel.setPaymentOptions(pdfModel.getPaymentOptions().stream().limit(1).collect(Collectors.toList()));
|
705 |
pdfModel.setPaymentOptions(pdfModel.getPaymentOptions().stream().limit(1).collect(Collectors.toList()));
|
| 687 |
CustomPaymentOption paymentOption = pdfModel.getPaymentOptions().get(0);
|
706 |
CustomPaymentOption paymentOption = pdfModel.getPaymentOptions().get(0);
|
| 688 |
paymentOption.setAmount(fofoOrderItems.get(0).getMop());
|
707 |
paymentOption.setAmount(fofoOrderItems.get(0).getMop());
|
| 689 |
Set<CustomOrderItem> customerFofoOrderItems = new HashSet<>();
|
708 |
Set<CustomOrderItem> customerFofoOrderItems = new HashSet<>();
|
| 690 |
for (FofoOrderItem fofoOrderItem : fofoOrderItems) {
|
709 |
for (FofoOrderItem fofoOrderItem : fofoOrderItems) {
|
| Line 721... |
Line 740... |
| 721 |
customFofoOrderItem.setHsnCode(fofoOrderItem.getHsnCode());
|
740 |
customFofoOrderItem.setHsnCode(fofoOrderItem.getHsnCode());
|
| 722 |
customerFofoOrderItems.add(customFofoOrderItem);
|
741 |
customerFofoOrderItems.add(customFofoOrderItem);
|
| 723 |
}
|
742 |
}
|
| 724 |
pdfModel.setTotalAmount(paymentOption.getAmount());
|
743 |
pdfModel.setTotalAmount(paymentOption.getAmount());
|
| 725 |
pdfModel.setOrderItems(customerFofoOrderItems);
|
744 |
pdfModel.setOrderItems(customerFofoOrderItems);
|
| 726 |
|
745 |
|
| 727 |
}
|
746 |
}
|
| 728 |
|
747 |
|
| 729 |
private PdfModel getInvoicePdfModel(FofoOrder fofoOrder) throws ProfitMandiBusinessException {
|
748 |
private PdfModel getInvoicePdfModel(FofoOrder fofoOrder) throws ProfitMandiBusinessException {
|
| 730 |
|
749 |
|
| 731 |
List<PaymentOptionTransaction> paymentOptionTransactions = paymentOptionTransactionRepository
|
750 |
List<PaymentOptionTransaction> paymentOptionTransactions = paymentOptionTransactionRepository
|
| Line 1179... |
Line 1198... |
| 1179 |
fofoOrderItem.setColor(item.getColor());
|
1198 |
fofoOrderItem.setColor(item.getColor());
|
| 1180 |
fofoOrderItemRepository.persist(fofoOrderItem);
|
1199 |
fofoOrderItemRepository.persist(fofoOrderItem);
|
| 1181 |
return fofoOrderItem;
|
1200 |
return fofoOrderItem;
|
| 1182 |
}
|
1201 |
}
|
| 1183 |
|
1202 |
|
| 1184 |
private FofoOrderItem getDummyFofoOrderItem(int itemId, int fofoOrderId,
|
1203 |
private FofoOrderItem getDummyFofoOrderItem(int itemId, int fofoOrderId, String serialNumber, Integer stateId)
|
| 1185 |
String serialNumber, Integer stateId) throws ProfitMandiBusinessException {
|
1204 |
throws ProfitMandiBusinessException {
|
| 1186 |
Item item = itemRepository.selectById(itemId);
|
1205 |
Item item = itemRepository.selectById(itemId);
|
| 1187 |
TagListing tl = tagListingRepository.selectByItemId(itemId);
|
1206 |
TagListing tl = tagListingRepository.selectByItemId(itemId);
|
| 1188 |
FofoOrderItem fofoOrderItem = new FofoOrderItem();
|
1207 |
FofoOrderItem fofoOrderItem = new FofoOrderItem();
|
| 1189 |
fofoOrderItem.setItemId(itemId);
|
1208 |
fofoOrderItem.setItemId(itemId);
|
| 1190 |
fofoOrderItem.setQuantity(1);
|
1209 |
fofoOrderItem.setQuantity(1);
|
| Line 1666... |
Line 1685... |
| 1666 |
// This will remove the order and maintain order record and reverse inventory
|
1685 |
// This will remove the order and maintain order record and reverse inventory
|
| 1667 |
// and scheme
|
1686 |
// and scheme
|
| 1668 |
@Override
|
1687 |
@Override
|
| 1669 |
public void cancelOrder(List<String> invoiceNumbers) throws Exception {
|
1688 |
public void cancelOrder(List<String> invoiceNumbers) throws Exception {
|
| 1670 |
for (String invoiceNumber : invoiceNumbers) {
|
1689 |
for (String invoiceNumber : invoiceNumbers) {
|
| 1671 |
//Cancel only when not cancelled
|
1690 |
// Cancel only when not cancelled
|
| 1672 |
FofoOrder fofoOrder = fofoOrderRepository.selectByInvoiceNumber(invoiceNumber);
|
1691 |
FofoOrder fofoOrder = fofoOrderRepository.selectByInvoiceNumber(invoiceNumber);
|
| 1673 |
if(fofoOrder.getCancelledTimestamp()==null) {
|
1692 |
if (fofoOrder.getCancelledTimestamp() == null) {
|
| 1674 |
fofoOrder.setCancelledTimestamp(LocalDateTime.now());
|
1693 |
fofoOrder.setCancelledTimestamp(LocalDateTime.now());
|
| 1675 |
fofoOrderRepository.persist(fofoOrder);
|
1694 |
fofoOrderRepository.persist(fofoOrder);
|
| 1676 |
List<PaymentOptionTransaction> paymentTransactions = paymentOptionTransactionRepository
|
1695 |
List<PaymentOptionTransaction> paymentTransactions = paymentOptionTransactionRepository
|
| 1677 |
.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
|
1696 |
.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
|
| 1678 |
for (PaymentOptionTransaction paymentOptionTransaction : paymentTransactions) {
|
1697 |
for (PaymentOptionTransaction paymentOptionTransaction : paymentTransactions) {
|
| Line 1680... |
Line 1699... |
| 1680 |
}
|
1699 |
}
|
| 1681 |
List<FofoOrderItem> fois = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
|
1700 |
List<FofoOrderItem> fois = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
|
| 1682 |
List<InventoryItem> inventoryItems = new ArrayList<>();
|
1701 |
List<InventoryItem> inventoryItems = new ArrayList<>();
|
| 1683 |
fois.stream().forEach(x -> {
|
1702 |
fois.stream().forEach(x -> {
|
| 1684 |
x.getFofoLineItems().stream().forEach(y -> {
|
1703 |
x.getFofoLineItems().stream().forEach(y -> {
|
| 1685 |
inventoryService.rollbackInventory(y.getInventoryItemId(), y.getQuantity(), fofoOrder.getFofoId());
|
1704 |
inventoryService.rollbackInventory(y.getInventoryItemId(), y.getQuantity(),
|
| - |
|
1705 |
fofoOrder.getFofoId());
|
| 1686 |
inventoryItems.add(inventoryItemRepository.selectById(y.getInventoryItemId()));
|
1706 |
inventoryItems.add(inventoryItemRepository.selectById(y.getInventoryItemId()));
|
| 1687 |
});
|
1707 |
});
|
| 1688 |
});
|
1708 |
});
|
| 1689 |
String reversalReason = "Order Rolledback/Cancelled for Invoice Number " + invoiceNumber;
|
1709 |
String reversalReason = "Order Rolledback/Cancelled for Invoice Number " + invoiceNumber;
|
| 1690 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.OUT);
|
1710 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.OUT);
|
| 1691 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.ACTIVATION);
|
1711 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.ACTIVATION);
|
| 1692 |
//If insured that no cancellation happens on next month
|
1712 |
// If insured that no cancellation happens on next month
|
| 1693 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.INVESTMENT);
|
1713 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.INVESTMENT);
|
| 1694 |
}
|
1714 |
}
|
| 1695 |
}
|
1715 |
}
|
| 1696 |
}
|
1716 |
}
|
| 1697 |
|
1717 |
|
| Line 1749... |
Line 1769... |
| 1749 |
return fofoOrder;
|
1769 |
return fofoOrder;
|
| 1750 |
} else {
|
1770 |
} else {
|
| 1751 |
throw new Exception(String.format("Could not find inventoryItemId - %s", inventoryItemId));
|
1771 |
throw new Exception(String.format("Could not find inventoryItemId - %s", inventoryItemId));
|
| 1752 |
}
|
1772 |
}
|
| 1753 |
}
|
1773 |
}
|
| - |
|
1774 |
|
| - |
|
1775 |
@Override
|
| - |
|
1776 |
public Map<Integer, Long> carryBagCreditCount(int fofoId) throws ProfitMandiBusinessException {
|
| - |
|
1777 |
|
| - |
|
1778 |
FofoStore fs = fofoStoreRepository.selectByRetailerId(fofoId);
|
| - |
|
1779 |
LocalDateTime lastCredit = fs.getBagsLastCredited();
|
| - |
|
1780 |
/*
|
| - |
|
1781 |
* long carryBagCount = 0; List<FofoOrder> fofoOrders =
|
| - |
|
1782 |
* fofoOrderRepository.selectByFofoIdBetweenCreatedTimeStamp(fofoId,
|
| - |
|
1783 |
* lastCredit.atStartOfDay(), LocalDate.now().plusDays(1).atStartOfDay()); for
|
| - |
|
1784 |
* (FofoOrder fo : fofoOrders) { carryBagCount +=
|
| - |
|
1785 |
* fofoOrderItemRepository.selectByOrderId(fo.getId()).stream() .filter(x ->
|
| - |
|
1786 |
* x.getSellingPrice() >= 12000).count();
|
| - |
|
1787 |
*
|
| - |
|
1788 |
* }
|
| - |
|
1789 |
*/
|
| - |
|
1790 |
|
| - |
|
1791 |
Session session = sessionFactory.getCurrentSession();
|
| - |
|
1792 |
CriteriaBuilder cb = session.getCriteriaBuilder();
|
| - |
|
1793 |
|
| - |
|
1794 |
CriteriaQuery<SimpleEntry> query = cb.createQuery(SimpleEntry.class);
|
| - |
|
1795 |
Root<FofoOrder> fofoOrder = query.from(FofoOrder.class);
|
| - |
|
1796 |
Root<FofoOrderItem> fofoOrderItem = query.from(FofoOrderItem.class);
|
| - |
|
1797 |
|
| - |
|
1798 |
Predicate p2 = cb.between(fofoOrder.get(ProfitMandiConstants.CREATE_TIMESTAMP), lastCredit,
|
| - |
|
1799 |
LocalDate.now().atStartOfDay());
|
| - |
|
1800 |
Predicate p3 = cb.isNull(fofoOrder.get("cancelledTimestamp"));
|
| - |
|
1801 |
Predicate p4 = cb.equal(fofoOrder.get(ProfitMandiConstants.ID),
|
| - |
|
1802 |
fofoOrderItem.get(ProfitMandiConstants.ORDER_ID));
|
| - |
|
1803 |
Predicate p5 = cb.equal(fofoOrder.get(ProfitMandiConstants.FOFO_ID), fofoId);
|
| - |
|
1804 |
ItemCriteria itemCriteria = new ItemCriteria();
|
| - |
|
1805 |
itemCriteria.setBrands(mongoClient.getMongoBrands(fofoId, null, 3).stream().map(x -> (String) x.get("name"))
|
| - |
|
1806 |
.collect(Collectors.toList()));
|
| - |
|
1807 |
float startValue = 12000;
|
| - |
|
1808 |
itemCriteria.setStartPrice(startValue);
|
| - |
|
1809 |
itemCriteria.setEndPrice(0);
|
| - |
|
1810 |
itemCriteria.setFeaturedPhone(false);
|
| - |
|
1811 |
itemCriteria.setSmartPhone(true);
|
| - |
|
1812 |
itemCriteria.setCatalogIds(new ArrayList<>());
|
| - |
|
1813 |
itemCriteria.setExcludeCatalogIds(new ArrayList<>());
|
| - |
|
1814 |
Predicate itemPredicate = itemRepository.getItemPredicate(itemCriteria, query, cb, fofoOrderItem, "dp");
|
| - |
|
1815 |
Predicate finalPredicate = cb.and(itemPredicate, p2, p3, p4, p5);
|
| - |
|
1816 |
query = query.multiselect(fofoOrder.get(ProfitMandiConstants.FOFO_ID), cb.count(fofoOrder))
|
| - |
|
1817 |
.where(finalPredicate).groupBy(fofoOrder.get(ProfitMandiConstants.FOFO_ID));
|
| - |
|
1818 |
List<SimpleEntry> simpleEntries = session.createQuery(query).getResultList();
|
| - |
|
1819 |
Map<Integer, Long> returnMap = new HashMap<>();
|
| - |
|
1820 |
|
| - |
|
1821 |
for (SimpleEntry simpleEntry : simpleEntries) {
|
| - |
|
1822 |
returnMap.put((Integer) simpleEntry.getKey(), (Long) simpleEntry.getValue());
|
| - |
|
1823 |
}
|
| - |
|
1824 |
return returnMap;
|
| - |
|
1825 |
|
| - |
|
1826 |
}
|
| 1754 |
}
|
1827 |
}
|
| 1755 |
|
1828 |
|